@theme{ --color-primary: #062843; --color-primary-deep: #0b2a4a; --color-surface: #08314f; --color-accent: #fcb600; --color-accent-deep: #e0a200; --font-sans: "Poppins", system-ui, -apple-system, "Segoe UI", sans-serif; --radius-pill: 999px; --radius-card: 24px; --radius-panel: 32px; }:root{--color-primary: #062843;--color-primary-deep: #0b2a4a;--color-surface: #08314f;--color-accent: #fcb600;--color-accent-deep: #e0a200;--font-sans: "Poppins", system-ui, -apple-system, "Segoe UI", sans-serif;--radius-pill: 999px;--radius-card: 24px;--radius-panel: 32px}:root{--color-primary-dark: #041d30;--color-primary-tint: #dbe6f2;--color-accent-hover: var(--color-accent-deep);--color-contactable-bg: #e3f1ee;--color-contactable: #155e50;--color-text: #212121;--color-text-secondary: #666666;--color-text-muted: #999999;--color-text-on-primary: #ffffff;--color-text-on-accent: #ffffff;--color-surface: #ffffff;--color-bg: #072843;--color-bg-alt: #f0f2f5;--color-border: #cccccc;--color-border-focus: #062843;--color-error: #d32f2f;--color-error-bg: #fdecea;--color-success: #2e7d32;--color-success-bg: #e8f5e9;--color-warning: #e65100;--color-warning-bg: #fff3e0;--color-warning-text: #b23c00;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--shadow-card: 0 2px 12px rgba(15, 34, 64, .1);--shadow-card-hover: 0 4px 20px rgba(15, 34, 64, .16);--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-base: 1.5;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--content-max-width: 1120px;--nav-height: 56px;--fs-neutral-bg: #eceff1;--fs-scheduled: #546e7a;--fs-open: #0b2a4a;--fs-open-bg: #dbe6f2;--fs-checkin: #00695c;--fs-checkin-bg: #e0f2f1;--fs-boarding: #8a5200;--fs-boarding-bg: #fff3e0;--fs-departed: #3b3ea8;--fs-departed-bg: #e8e9f7;--fs-arrived: #1b5e20;--fs-arrived-bg: #e8f5e9;--fs-completed: #455a64;--fs-cancelled: #c62828;--fs-cancelled-bg: #fdecea;--fs-diverted: #6a1b9a;--fs-diverted-bg: #f3e5f5}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-sans);font-size:16px;line-height:var(--line-height-base);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}body{min-height:100dvh}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border:none;border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:background .15s,box-shadow .15s,opacity .15s;text-decoration:none;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:var(--color-text-on-accent)}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn-secondary{background:transparent;color:var(--color-primary);border:1.5px solid var(--color-primary)}.btn-secondary:hover:not(:disabled){background:#0f22400d}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.field input,.field select,.field textarea{width:100%;padding:var(--space-3) var(--space-4);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-surface);outline:none;transition:border-color .15s}.field input:focus,.field select:focus{border-color:var(--color-border-focus)}.card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-8)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.alert-error{background:var(--color-error-bg);color:var(--color-error)}.alert-success{background:var(--color-success-bg);color:var(--color-success)}.alert-warning{background:var(--color-warning-bg);color:var(--color-warning)}.badge{display:inline-block;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.04em}.admin-portal-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.admin-portal-header{display:flex;align-items:center;flex-wrap:wrap;padding:var(--space-5) var(--space-8);border-bottom:1px solid var(--color-border);background:var(--color-primary);gap:var(--space-3);border-radius:var(--radius-lg) var(--radius-lg) 0 0}@media(max-width:480px){.admin-portal-header__title{flex-basis:100%;white-space:nowrap}.admin-portal-header__logo{height:1.25rem}.admin-portal-header__identity{display:none}}.admin-portal-header__title{display:inline-flex;align-items:center;gap:var(--space-3);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-on-primary);letter-spacing:.01em}.admin-portal-header__logo{display:block;height:1.75rem;width:auto}.admin-tabs{display:flex;gap:0;border-bottom:1px solid var(--color-border);padding:0 var(--space-8);background-color:var(--color-surface);overflow-x:auto;scrollbar-width:none}.admin-tabs::-webkit-scrollbar{display:none}.admin-tab{padding:var(--space-4) var(--space-5);background:none;border:none;border-bottom:2.5px solid transparent;margin-bottom:-1px;font-family:var(--font-sans);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap;text-decoration:none}.admin-tab[aria-selected=true]{color:var(--color-primary);border-bottom-color:var(--color-accent)}.admin-tab:hover:not([aria-selected=true]){color:var(--color-text)}.admin-panel{padding:var(--space-8);display:flex;flex-direction:column;gap:var(--space-8);min-width:0}.admin-section{display:flex;flex-direction:column;gap:var(--space-6);min-width:0}.admin-section h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-primary)}.admin-section h3{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-primary);margin-top:var(--space-2);margin-bottom:0}.admin-section h4{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-primary)}.admin-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--color-border);border-radius:var(--radius-md)}.admin-table-scroll-hint{display:none}@media(max-width:640px){.admin-table-scroll-hint{display:block;margin:0;padding-top:var(--space-1);text-align:right;font-size:var(--font-size-xs);color:var(--color-text-secondary)}}.admin-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.admin-table th{text-align:left;padding:var(--space-3) var(--space-4);background:var(--color-bg-alt);color:var(--color-text-secondary);font-weight:var(--font-weight-semibold);border-bottom:1px solid var(--color-border)}.admin-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);color:var(--color-text);vertical-align:middle;white-space:nowrap}.admin-table tr:last-child td{border-bottom:none}.admin-table tbody tr:hover{background:var(--color-bg-alt)}.admin-form{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:flex-end;padding:var(--space-5) var(--space-6);background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:var(--radius-md)}.admin-form h3{width:100%;margin:0}.admin-form>.alert{width:100%;margin:0}.admin-form>div{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.admin-form:before{content:"";order:1;flex:0 0 100%;height:0}.admin-form>button{order:2}.admin-form>.alert{order:3;flex:0 0 100%;margin:0}.admin-form input,.admin-form select{padding:var(--space-2) var(--space-3);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-text);background:var(--color-surface);outline:none;transition:border-color .15s;min-width:6rem}.admin-form input:focus,.admin-form select:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px #06284314}.admin-form label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.admin-empty{color:var(--color-text-secondary);font-size:var(--font-size-sm);text-align:center;padding:var(--space-8) 0}.admin-badge{display:inline-block;padding:2px var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.admin-badge--warning{background:var(--color-warning-bg);color:var(--color-warning)}.admin-btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-sm);border:none;cursor:pointer;transition:background .15s,opacity .15s;white-space:nowrap}.admin-btn-sm:disabled{opacity:.5;cursor:not-allowed}.admin-btn-primary,.admin-btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border-radius:var(--radius-pill);font-family:var(--font-sans);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;white-space:nowrap;transition:background .15s,box-shadow .15s,opacity .15s}.admin-btn-primary:disabled,.admin-btn-secondary:disabled{opacity:.5;cursor:not-allowed}.admin-btn-primary{background:var(--color-accent);color:var(--color-text-on-accent);border:none;box-shadow:0 2px 8px #0f22401f}.admin-btn-primary:hover:not(:disabled){background:var(--color-accent-hover);box-shadow:var(--shadow-card-hover)}.admin-btn-secondary{background:transparent;color:var(--color-primary);border:1.5px solid var(--color-primary)}.admin-btn-secondary:hover:not(:disabled){background:#0628430f}.admin-btn-sm.admin-btn-primary,.admin-btn-sm.admin-btn-secondary{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-sm);box-shadow:none}.admin-btn-sm.admin-btn-secondary{border-width:1px}.admin-btn-danger{background:transparent;color:var(--color-error);border:1px solid var(--color-error)}.admin-btn-danger:hover:not(:disabled){background:var(--color-error-bg)}.admin-btn-sm.admin-btn-danger{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-sm);border-width:1px}.admin-subtabs{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-1);padding:var(--space-1) 0}.admin-subtabs .admin-tab{padding:var(--space-2) var(--space-4);border:0;border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);margin-bottom:0}.admin-subtabs .admin-tab[aria-selected=true]{background:var(--color-primary);color:var(--color-text-on-primary)}.admin-subtabs .admin-tab:hover:not([aria-selected=true]){color:var(--color-text)}.admin-badge--active{background:var(--color-success-bg);color:var(--color-success)}.admin-badge--inactive{background:var(--color-bg-alt);color:var(--color-text-secondary)}.admin-badge--info{color:#164f91;background:#e8f2fc}.admin-badge--neutral{color:var(--color-text-secondary);background:var(--color-bg-alt)}.rowacts{white-space:nowrap;display:flex;gap:var(--space-2);align-items:center}.rowacts .admin-btn-sm[aria-pressed=true]{background:var(--color-primary);color:var(--color-text-on-primary);border-color:var(--color-primary);font-weight:var(--font-weight-semibold)}.admin-table .crew-actions-cell{position:sticky;right:0;background:var(--color-surface);box-shadow:inset 1px 0 0 var(--color-border)}.admin-table th.crew-actions-cell,.admin-table tbody tr:hover .crew-actions-cell{background:var(--color-bg-alt)}@media(max-width:640px){.crew-actions-cell .rowacts{flex-direction:column;align-items:stretch}}.crew-directory-table .crew-actions-cell .rowacts{flex-direction:column;align-items:stretch}.crew-directory-table .crew-contact-line{display:block}.admin-table .crew-pin-1{position:sticky;left:0;z-index:1;background:var(--color-surface);min-width:8.5rem;width:8.5rem;box-shadow:inset -1px 0 0 var(--color-border)}.admin-table th.crew-pin-1,.admin-table tbody tr:hover .crew-pin-1{background:var(--color-bg-alt)}.admin-table tbody tr.qual-selected .crew-pin-1{background:var(--color-primary-tint)}@media(max-width:640px){.admin-table .crew-pin-1{min-width:7.5rem;width:7.5rem;padding-left:var(--space-2);padding-right:var(--space-2);white-space:normal}.admin-table .crew-actions-cell{position:static;box-shadow:none;background:transparent}}.crew-travel{border-top:3px solid var(--color-primary)}.crew-travel h3{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.crew-travel-who{min-width:0;overflow-wrap:anywhere}.crew-travel .admin-badge--warning{color:var(--color-warning-text)}.admin-form>div.crew-travel-summary{flex:1 1 100%;gap:var(--space-3)}.admin-form>div.crew-travel-history{order:4}.crew-travel-history h4{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary);margin:0}.crew-travel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:var(--space-3) var(--space-6);margin:0}.crew-travel-grid dt{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.crew-travel-grid dd{margin:0;font-size:var(--font-size-sm);color:var(--color-text);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.crew-travel-grid dd.is-masked{letter-spacing:.06em}.crew-travel-meta{margin:0;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.crew-travel-help{font-size:var(--font-size-xs);color:var(--color-text-secondary);max-width:16rem}.crew-travel-note{flex:1 1 100%;margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.admin-form>p.crew-travel-note{order:0}.crew-travel-empty{flex:1 1 100%;text-align:left;padding:0}.admin-form input[aria-invalid=true],.admin-form select[aria-invalid=true]{border-color:var(--color-error)}.crew-travel-confirm{color:var(--color-warning-text);border:1px solid var(--color-warning)}.admin-form>div.crew-travel-confirm{gap:var(--space-3)}.crew-travel-confirm p{margin:0}.crew-travel-confirm strong{font-weight:var(--font-weight-semibold)}.crew-travel-confirm-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}@media(max-width:640px){.crew-travel-confirm-actions>button{min-height:44px;flex:1 1 9rem}}.crew-travel-meta--revealed{display:block;color:var(--color-primary);font-weight:var(--font-weight-semibold)}.crew-reveal-reasons{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin:0;min-width:0;display:flex;flex-direction:column;gap:var(--space-2)}.crew-reveal-reasons legend{padding:0 var(--space-1);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary)}.crew-reveal-reasons label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);min-height:32px;cursor:pointer}.crew-reveal-note{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.crew-reveal-note input{width:100%;min-height:42px;padding:var(--space-2) var(--space-3);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font:inherit}.crew-reveal-note input[aria-invalid=true]{border-color:var(--color-error)}.crew-reveal-note small{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-normal)}.crew-reveal-log{margin:0;font-size:var(--font-size-sm);color:var(--color-text);background:var(--color-primary-tint);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}.admin-modal-overlay{position:fixed;inset:0;z-index:200;background:#091629b8;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding:var(--space-4);overflow-y:auto}.admin-modal-card{position:static;margin:var(--space-8) auto;border:none;outline:none;box-sizing:border-box;width:100%;max-width:560px;background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);box-shadow:var(--shadow-panel, 0 8px 28px rgba(15, 34, 64, .16))}.schedule-panel{gap:var(--space-5)}.schedule-heading,.schedule-controls,.schedule-period-controls{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.schedule-heading p{margin-top:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.schedule-boundary-note{padding:var(--space-3) var(--space-4);border-left:3px solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-primary-tint);color:var(--color-primary);font-size:var(--font-size-sm)}.admin-form.schedule-create-form{align-items:flex-start}.schedule-create-form>.schedule-form-actions{order:2;flex-direction:row;flex-wrap:wrap}.schedule-controls{flex-wrap:wrap;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-alt)}.schedule-period-controls{justify-content:center;min-width:17rem}.schedule-period-controls strong{min-width:12rem;text-align:center;color:var(--color-primary);font-size:var(--font-size-sm)}.schedule-status-filter,.schedule-date-filter{display:flex;align-items:center;gap:var(--space-2)}.schedule-status-filter label,.schedule-date-filter label{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.04em}.schedule-status-filter select,.schedule-date-filter input,.schedule-assignment-table input{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font:inherit}.schedule-workspace{min-width:0}.schedule-board,.schedule-detail{min-width:0;min-height:17rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.schedule-board{padding:var(--space-4)}.schedule-detail{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5)}.schedule-sector-card{display:flex;flex-direction:column;gap:var(--space-1);width:100%;min-width:0;padding:var(--space-3);border:1px solid var(--color-border);border-left:4px solid var(--color-accent);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-xs);text-align:left;cursor:pointer}.schedule-sector-card:hover,.schedule-sector-card.is-selected{border-color:var(--color-primary);background:var(--color-primary-tint)}.schedule-sector-card__topline{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);color:var(--color-primary)}.schedule-sector-card .admin-badge{max-width:100%;overflow:hidden;text-overflow:ellipsis}.schedule-sector-card__route{color:var(--color-text);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.sector-hover{position:fixed;z-index:20;padding:1rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-card-hover);color:var(--color-text);pointer-events:none;white-space:normal;max-width:min(350px,calc(100vw - 24px))}.sector-hover__title{display:block;font-size:1rem;line-height:1.25;color:var(--color-primary)}.sector-hover__meta{margin:.35rem 0 .8rem;color:var(--color-text-secondary);font-size:.875rem}.sector-hover__optype{margin:-.55rem 0 .8rem;color:var(--color-text-secondary);font-size:.875rem}.sector-hover__times{display:grid;gap:.3rem;margin:0}.sector-hover__times>div{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:1rem}.sector-hover__times dt{color:var(--color-text-secondary);font-size:.875rem}.sector-hover__times dd{margin:0;font-size:.875rem;font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;white-space:nowrap}.sector-hover__summary{margin:.8rem 0 0;padding-top:.7rem;border-top:1px solid var(--color-border);color:var(--color-text-secondary);font-size:.875rem;line-height:1.4}.sector-hover__group{margin:.8rem 0 0;padding-top:.7rem;border-top:1px solid var(--color-border)}.sector-hover__group-title{margin:0 0 .35rem;color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.04em}.sector-hover__group .sector-hover__times dd{text-align:right;white-space:normal}.sector-hover__group .sector-hover__times dt{white-space:nowrap}.slot-flag{color:var(--color-warning-text);font-weight:var(--font-weight-semibold)}.sector-hover__note{margin:0;color:var(--color-text-secondary);font-size:.875rem}.sector-hover__group .sector-hover__note+.sector-hover__times{margin-top:.35rem}@media(max-width:640px){.sector-hover{display:none}}.schedule-grid-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.schedule-board .schedule-scroll-hint{display:none}.schedule-scroll-hint{margin-top:var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-xs);text-align:right}.schedule-day-timeline,.schedule-week-table{min-width:0;border-top:1px solid var(--color-border);border-left:1px solid var(--color-border)}.schedule-day-row{display:grid;grid-template-columns:10rem minmax(0,1fr);min-height:6.5rem}.schedule-day-row>div,.schedule-week-row>div{border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.schedule-day-row--header{min-height:auto;background:var(--color-bg-alt);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.schedule-day-row--header>div,.schedule-week-row--header>div{padding:var(--space-2)}.schedule-time-axis{position:relative;min-height:1.25rem}.schedule-time-axis span{position:absolute;transform:translate(-50%);white-space:nowrap}.schedule-time-axis span:first-child{transform:none}.schedule-time-axis span:last-child{transform:translate(-100%)}.schedule-row-label{padding:var(--space-3);overflow-wrap:anywhere;background:var(--color-bg-alt);color:var(--color-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.schedule-day-track{position:relative;min-height:6.5rem}.schedule-day-gridline{position:absolute;top:0;bottom:0;width:1px;background:var(--color-border);pointer-events:none}.schedule-timeline-sector{position:absolute;display:flex;flex-direction:column;gap:2px;min-width:5.5rem;max-width:calc(100% - var(--space-2));padding:var(--space-2);overflow:hidden;border:1px solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-primary-tint);color:var(--color-primary);font:inherit;font-size:.625rem;text-align:left;cursor:pointer}.schedule-timeline-sector:hover,.schedule-timeline-sector.is-selected{border-color:var(--color-primary);box-shadow:0 0 0 2px #0628431f}.schedule-timeline-sector .admin-badge{align-self:flex-start}.schedule-timeline-sector span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-week-row{display:grid;grid-template-columns:8rem repeat(7,minmax(0,1fr))}.schedule-week-row--header{background:var(--color-bg-alt);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-align:center}.schedule-week-row .schedule-period-cell{min-height:9rem}.schedule-period-cell{display:flex;flex-direction:column;gap:var(--space-2);min-width:0;padding:var(--space-2);border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.schedule-period-cell>h3{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-xs)}.schedule-eyebrow{margin-bottom:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.05em;text-transform:uppercase}.schedule-detail h3{margin:0}.schedule-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-bg-alt)}.schedule-facts div{min-width:0}.schedule-facts dt{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase}.schedule-facts dd{overflow-wrap:anywhere;color:var(--color-text);font-size:var(--font-size-sm)}.schedule-facts>.schedule-facts__wide{grid-column:1 / -1}.schedule-assignment-table{min-width:34rem}.schedule-assignment-table td:first-child{white-space:normal}.schedule-assignment-table th,.schedule-assignment-table td{padding-inline:var(--space-3)}@media(max-width:640px){.schedule-assignment-table{min-width:0}.schedule-assignment-table th,.schedule-assignment-table td{padding:var(--space-3) var(--space-2);white-space:normal}.schedule-assignment-table .rowacts{flex-direction:column;align-items:stretch}.schedule-assignment-table .crew-code{flex-wrap:wrap;white-space:normal}.schedule-assignment-table input{width:100%;min-width:0}}.schedule-assignment-form{padding:var(--space-4)}.movement-drawer.schedule-detail-drawer{width:min(40rem,100%)}.schedule-detail-drawer .schedule-detail{flex-shrink:0;min-height:0;padding:0;border:0;border-radius:0}.schedule-detail-drawer .movement-drawer__head .schedule-eyebrow{margin:0 0 var(--space-1)}.schedule-detail-drawer__tools{display:flex;flex:0 0 auto;align-items:center;gap:var(--space-2)}@media(max-width:899px){.schedule-day-timeline,.schedule-week-table{min-width:64rem}.schedule-board .schedule-scroll-hint{display:block}}@media(min-width:641px)and (max-width:1279px){.schedule-week-row .schedule-sector-card{padding:var(--space-2)}.schedule-week-row .schedule-sector-card__topline{flex-wrap:nowrap}.schedule-week-row .schedule-sector-card .admin-badge{flex:0 0 auto;width:.625rem;height:.625rem;padding:0;border-radius:50%;background:currentColor;font-size:0}}@media(max-width:640px){.admin-panel{padding:var(--space-4)}.schedule-heading,.schedule-controls{align-items:stretch;flex-direction:column}.schedule-heading .admin-btn-primary{width:100%}.schedule-period-controls,.schedule-period-controls strong{min-width:0}.schedule-status-filter,.schedule-date-filter{justify-content:space-between}.schedule-status-filter select,.schedule-date-filter input{flex:1}.schedule-board,.schedule-detail{padding:var(--space-3)}.schedule-facts{grid-template-columns:1fr}.schedule-detail-drawer .movement-drawer__head{flex-wrap:wrap}}.admin-modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.admin-modal-head h2{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-primary);margin:0}.admin-modal-close{background:none;border:none;cursor:pointer;color:var(--color-text-secondary);padding:var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-lg);line-height:1}.admin-modal-close:hover{color:var(--color-text);background:var(--color-border)}.admin-modal-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:flex-end}.admin-confirm-message{margin:0;color:var(--color-text-secondary);line-height:1.5}.slot-operations-panel{gap:var(--space-4)}.slot-operations-notice{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);color:#513b00;background:#fff8db;border:1px solid #e9c84e;border-left:5px solid var(--color-accent-deep);border-radius:var(--radius-md)}.slot-operations-notice strong,.slot-operations-notice span{display:block}.slot-operations-workspace{display:grid;grid-template-columns:minmax(300px,340px) minmax(0,1fr);gap:var(--space-4);min-width:0}.slot-queue,.slot-detail{min-width:0;overflow:hidden;border:1px solid var(--color-border)}.slot-queue>header,.slot-detail>header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--color-border)}.slot-queue>header h2,.slot-detail>header h2{margin:0;font-size:var(--font-size-lg)}.slot-queue>header p,.slot-detail>header p,.slot-detail-body>p{margin-top:3px;color:var(--color-text-secondary);font-size:var(--font-size-xs)}.slot-seasons>header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--color-border)}.slot-seasons>header h2{margin:0;font-size:var(--font-size-lg)}.slot-seasons>header p{margin-top:3px;max-width:62ch;color:var(--color-text-secondary);font-size:var(--font-size-xs)}.slot-seasons-body{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);min-width:0}.season-code{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-weight:var(--font-weight-semibold);color:var(--color-primary);white-space:nowrap}.season-date{font-variant-numeric:tabular-nums;white-space:nowrap}td.season-source{min-width:26ch;color:var(--color-text-secondary);font-size:var(--font-size-xs);white-space:normal;overflow-wrap:anywhere}.slot-empty{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-5) var(--space-4);background:var(--color-bg-alt);border:1px dashed var(--color-border);border-radius:var(--radius-md)}.slot-empty strong{color:var(--color-text);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.slot-empty p{max-width:64ch;color:var(--color-text-secondary);font-size:var(--font-size-xs)}td.slot-seat-cell{min-width:15rem;white-space:normal}.slot-seat-edit{display:flex;align-items:center;gap:var(--space-2)}.slot-seat-edit input{width:5.5rem;min-height:44px;padding:var(--space-2) var(--space-3);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--font-size-base);font-variant-numeric:tabular-nums;color:var(--color-text);background:var(--color-surface)}.slot-seat-edit input:focus{border-color:var(--color-border-focus);outline:3px solid rgba(6,40,67,.12);outline-offset:1px}.slot-seat-edit input[aria-invalid=true]{border-color:var(--color-error)}.slot-seat-edit .admin-btn-sm{min-height:44px}td.slot-seat-cell .slot-form-error{margin-top:var(--space-1)}.slot-seat-message{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-weight:var(--font-weight-semibold);color:var(--color-primary)}.slot-seat-table small{color:var(--color-text-secondary)}.slot-seat-note{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.slot-seat-warn{padding:var(--space-3);color:#513b00;background:#fff8db;border-left:4px solid var(--color-accent-deep);border-radius:var(--radius-md)}.slot-seat-warn p{margin-top:3px;color:var(--color-text)}.slot-seat-figures.is-target{box-shadow:0 0 0 3px var(--color-accent)}.slot-seat-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media(max-width:640px){.slot-seat-scroll{overflow:visible}.slot-seat-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.slot-seat-table,.slot-seat-table tbody,.slot-seat-table tr,.slot-seat-table td{display:block;width:100%}.slot-seat-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2) var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.slot-seat-table tr:last-child{border-bottom:0}.slot-seat-table td{padding:0;border:0;white-space:normal}.slot-seat-table td.slot-seat-code{text-align:right}.slot-seat-table td.slot-seat-msg,.slot-seat-table td.slot-seat-cell{grid-column:1 / -1;min-width:0}.slot-seat-table td[data-label]:before{content:attr(data-label);display:block;color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.slot-seat-table tbody tr:hover{background:none}.slot-seat-edit input{flex:1 1 auto;width:auto;font-size:16px}.slot-seat-edit .admin-btn-sm{flex:0 0 auto;min-width:88px}}.slot-filter{display:grid;grid-template-columns:repeat(3,1fr);margin:0;padding:var(--space-3) var(--space-4);background:var(--color-bg-alt);border:0;border-bottom:1px solid var(--color-border)}.slot-filter legend{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.slot-filter button{min-height:40px;padding:var(--space-1);color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-right:0;font:inherit;font-size:var(--font-size-xs);cursor:pointer}.slot-filter button:first-of-type{border-radius:var(--radius-md) 0 0 var(--radius-md)}.slot-filter button:last-of-type{border-right:1px solid var(--color-border);border-radius:0 var(--radius-md) var(--radius-md) 0}.slot-filter button[aria-pressed=true]{color:var(--color-text-on-primary);background:var(--color-primary);font-weight:var(--font-weight-semibold)}.slot-queue-list{display:grid;gap:var(--space-2);padding:var(--space-2)}.slot-queue-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2);width:100%;padding:var(--space-3);color:inherit;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font:inherit;text-align:left;cursor:pointer}.slot-queue-item:hover{border-color:var(--color-primary)}.slot-queue-item[aria-current=true]{padding:calc(var(--space-3) - 1px);background:#f5f9fc;border:2px solid var(--color-primary)}.slot-queue-item>strong{color:var(--color-primary)}.slot-queue-item>small{grid-column:1 / -1;color:var(--color-text-secondary);line-height:1.5}.slot-detail>header{align-items:center}.slot-detail-actions,.slot-dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2)}.slot-detail-body{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);min-width:0}.slot-facts{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:var(--space-3)}.slot-facts>div{padding:var(--space-3);background:var(--color-bg-alt);border-radius:var(--radius-md)}.slot-facts dt{color:var(--color-text-muted);font-size:.6875rem;font-weight:var(--font-weight-semibold);letter-spacing:.05em;text-transform:uppercase}.slot-facts dd{margin-top:3px;font-weight:var(--font-weight-semibold)}.slot-detail .admin-table{min-width:820px}.slot-detail .admin-table td{vertical-align:top}.slot-detail .admin-table td:nth-child(5){min-width:230px;white-space:normal}.slot-detail .admin-table[aria-label="Current slot holdings"] td:nth-child(3),.slot-detail .admin-table[aria-label="Current slot holdings"] td:nth-child(4){min-width:200px;white-space:normal}.slot-callout{padding:var(--space-3);color:#164f91;background:#e8f2fc;border-left:4px solid #2877bd;border-radius:var(--radius-md)}.slot-callout p{margin-top:3px;color:var(--color-text)}.slot-flag-notice{padding:var(--space-3);color:#513b00;background:#fff8db;border-left:4px solid var(--color-accent-deep);border-radius:var(--radius-md)}.slot-detail-body>section[aria-label="Stored evidence"]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.slot-detail-body>section[aria-label="Stored evidence"]>h3{grid-column:1 / -1}.slot-evidence{min-width:0;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md)}.slot-evidence h4{margin-bottom:var(--space-2);color:var(--color-primary);font-size:var(--font-size-sm)}.slot-evidence p{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.slot-evidence pre{max-height:150px;margin-top:var(--space-2);padding:var(--space-3);overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;color:#dbe8f4;background:var(--color-primary-dark);border-radius:var(--radius-md);font:.75rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.slot-message-outcomes{margin-top:var(--space-3);font-size:var(--font-size-xs)}.slot-message-outcomes>strong{color:var(--color-primary)}.slot-message-outcomes ul{display:grid;gap:var(--space-2);margin-top:var(--space-2);padding-left:var(--space-5)}.slot-message-outcomes li>span{display:block;color:var(--color-text-secondary)}.slot-message-outcomes code{white-space:pre-wrap}.slot-dialog-backdrop{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:var(--space-4);overflow:hidden;background:#041d30ad}.slot-dialog{position:fixed;inset:0;width:min(720px,100%);max-height:calc(100dvh - 32px);margin:auto;padding:0;overflow:hidden;color:var(--color-text);background:var(--color-surface);border:0;border-radius:var(--radius-lg);box-shadow:0 12px 40px #041d3047}.slot-dialog::backdrop{background:transparent}.slot-dialog[open]{display:block}.slot-dialog-content{display:flex;flex-direction:column;gap:var(--space-3);max-height:calc(100dvh - 32px);padding:var(--space-5);overflow-y:auto}.slot-dialog-head{position:sticky;top:calc(var(--space-5) * -1);z-index:1;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin:calc(var(--space-5) * -1) calc(var(--space-5) * -1) 0;padding:var(--space-4) var(--space-5);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.slot-dialog-head h2{margin:0;font-size:var(--font-size-lg)}.slot-dialog-close{flex:0 0 auto;width:36px;height:36px;color:var(--color-primary);background:var(--color-surface);border:1px solid var(--color-primary);border-radius:var(--radius-md);font:inherit;font-size:var(--font-size-lg);cursor:pointer}.slot-dialog-content>p,.slot-dialog-content>label,.slot-dialog fieldset label{font-size:var(--font-size-sm)}.slot-dialog-content>label,.slot-dialog fieldset label:not(:first-of-type){display:flex;flex-direction:column;gap:var(--space-1);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.slot-dialog textarea,.slot-dialog input:not([type=checkbox]),.slot-dialog select{width:100%;min-height:42px;padding:var(--space-2) var(--space-3);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font:inherit}.slot-dialog textarea{min-height:118px;resize:vertical}.slot-dialog :is(textarea,input,select):focus{border-color:var(--color-border-focus);outline:3px solid rgba(6,40,67,.12);outline-offset:1px}.slot-dialog :is(textarea,input,select)[aria-invalid=true]{border-color:var(--color-error)}.slot-dialog fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);padding:var(--space-3);background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:var(--radius-md)}.slot-dialog fieldset legend{padding:0 var(--space-1);color:var(--color-primary);font-weight:var(--font-weight-bold)}.slot-dialog fieldset label:first-of-type{display:flex;grid-column:1 / -1;align-items:flex-start;gap:var(--space-2);color:var(--color-primary);font-weight:var(--font-weight-semibold)}.slot-dialog fieldset input[type=checkbox]{margin-top:4px}.slot-dialog :disabled{opacity:.55;cursor:not-allowed}.slot-form-error{color:var(--color-error);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.slot-no-correction{padding:var(--space-2) var(--space-3);color:var(--color-text-secondary);background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm)}@media(max-width:980px){.slot-operations-workspace{grid-template-columns:1fr}.slot-queue-list{grid-template-columns:repeat(3,minmax(240px,1fr));overflow-x:auto}.slot-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.slot-operations-notice{flex-wrap:wrap}.slot-queue>header,.slot-detail>header,.slot-seasons>header{flex-direction:column}.slot-detail-actions{width:100%;justify-content:stretch}.slot-detail-actions>button{flex:1 1 120px}.slot-detail-body>section[aria-label="Stored evidence"],.slot-dialog fieldset{grid-template-columns:1fr}.slot-dialog-actions{flex-direction:column-reverse}.slot-dialog-actions>button{width:100%}.slot-dialog textarea,.slot-dialog input:not([type=checkbox]),.slot-dialog select{font-size:16px}}@media(max-width:390px){.slot-facts{grid-template-columns:1fr}}.slot-operations-panel .admin-btn-sm,.slot-operations-panel .admin-btn-primary,.slot-operations-panel .admin-btn-secondary,.slot-operations-panel .slot-filter button,.slot-operations-panel .admin-subtabs .admin-tab{min-height:44px}.slot-operations-panel :where(button,input,select,textarea,a,summary):focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.slot-detail .slot-sec{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.slot-detail .slot-sec>header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2)}.slot-detail .slot-sec>header span{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.slot-detail .slot-note{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.slot-detail .slot-build{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.slot-detail .slot-build .slot-build-fields{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.slot-detail .slot-warn{padding:var(--space-3);color:#513b00;background:#fff8db;border-left:4px solid var(--color-accent-deep);border-radius:var(--radius-md)}.slot-detail .slot-warn p{margin-top:3px;color:var(--color-text)}.slot-detail .slot-stop{padding:var(--space-3);color:var(--color-error);background:var(--color-error-bg);border-left:4px solid var(--color-error);border-radius:var(--radius-md)}.slot-detail .slot-stop p{margin-top:3px;color:var(--color-text)}.slot-detail .slot-stop a{color:var(--color-error);font-weight:600}.slot-detail .admin-table td.wrap{white-space:normal;min-width:200px}.slot-detail .slot-svc{display:flex;flex-wrap:wrap;gap:var(--space-2);max-width:33rem}.slot-detail .admin-table td select{width:16rem;max-width:100%;min-height:44px;padding:var(--space-2);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font:inherit;font-size:var(--font-size-base);background:#fff}.slot-detail .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.slot-detail .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.slot-scr{min-width:0;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.slot-scr>header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-bg-alt);border-bottom:1px solid var(--color-border)}.slot-scr>header h4{color:var(--color-primary);font-size:var(--font-size-sm)}.slot-scr-badges{display:flex;flex-wrap:wrap;gap:var(--space-1)}.slot-scr-body{overflow-x:auto;padding:var(--space-3);color:#dbe8f4;background:var(--color-primary-dark)}.slot-scr-body pre{margin:0;white-space:pre;font:.8125rem/1.85 ui-monospace,SFMono-Regular,Menlo,monospace}.slot-scr-body pre.f-refused{margin-top:var(--space-2)}.f-action{color:#ffd479;font-weight:700}.f-flight{color:#9fd2ff}.f-period,.f-days{color:#b9f0c4}.f-equip{color:#e6d4ff}.f-route{color:#ffd0b0}.f-service{color:#ffd479}.f-omi{color:#ff9f9f;font-weight:700;text-decoration:underline}.f-head{color:#9fb3c6}.f-foot{color:#c9d6e2}.f-bad{color:#ffb4b4;text-decoration:underline wavy #ff7a7a}.f-space{background:#fcb60059;border-bottom:2px solid var(--color-accent);border-radius:2px 2px 0 0}.f-refused{color:#ffb4b4;font-style:italic;-webkit-user-select:none;user-select:none}.legend-swatch{display:inline-block;width:1ch;height:14px;vertical-align:-3px;background:#fcb60059;border-bottom:2px solid var(--color-accent);border-radius:2px 2px 0 0}.slot-scr-legend{padding:var(--space-2) var(--space-3);color:var(--color-text-secondary);font-size:var(--font-size-xs);background:var(--color-bg-alt);border-top:1px solid var(--color-border)}.slot-scr-section{padding:var(--space-3);border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.slot-scr-section textarea{width:100%;min-height:220px;padding:var(--space-3);white-space:pre;overflow-x:auto;overflow-wrap:normal;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font:.875rem/1.7 ui-monospace,SFMono-Regular,Menlo,monospace;resize:vertical}.slot-scr-section textarea:focus{border-color:var(--color-border-focus)}.slot-detail .slot-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.slot-handoff{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:var(--space-3)}.slot-handoff .field input[readonly]{background:var(--color-bg-alt)}.slot-confirm{padding:var(--space-3);background:#fff8db;border:1px solid #e9c84e;border-radius:var(--radius-md);font-size:var(--font-size-sm);display:flex;flex-direction:column;gap:var(--space-2)}.slot-sent{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.1fr) minmax(0,1.8fr) minmax(0,1fr);gap:var(--space-2)}.slot-sent>div{padding:var(--space-2) var(--space-3);background:var(--color-success-bg);border-radius:var(--radius-md);min-width:0}.slot-sent dt{color:var(--color-text-secondary);font-size:.6875rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.slot-sent dd{font-size:var(--font-size-sm);font-weight:600;overflow-wrap:anywhere}details.slot-explain{border-top:1px solid var(--color-border)}details.slot-explain>summary{min-height:44px;display:flex;align-items:center;padding:var(--space-2) var(--space-3);color:var(--color-primary);cursor:pointer;font-size:var(--font-size-xs);font-weight:600}details.slot-explain .admin-table-scroll{border:0;border-radius:0;border-top:1px solid var(--color-border)}details.slot-explain .slot-explain-body{padding:0 var(--space-3) var(--space-3)}.slot-diff{margin:0;overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff}.slot-diff pre{margin:0;padding:var(--space-2) 0;white-space:pre;font:.8125rem/1.7 ui-monospace,SFMono-Regular,Menlo,monospace}.slot-diff .d{display:block;padding:0 var(--space-3);min-width:max-content}.slot-diff .d-del{background:#fdecea;color:#8d1f1f}.slot-diff .d-add{background:#e8f5e9;color:#1b5e20}.slot-diff .d-eq{color:var(--color-text-secondary)}.slot-checks{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.slot-check{display:flex;gap:var(--space-3);padding:var(--space-3);border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm)}.slot-check:last-child{border-bottom:0}.slot-check-mark{flex:0 0 auto;width:22px;height:22px;border-radius:var(--radius-pill);color:#fff;font-size:12px;font-weight:700;line-height:22px;text-align:center}.slot-check--open .slot-check-mark{background:var(--color-error)}.slot-check--pass .slot-check-mark{background:var(--color-success)}.slot-check--note .slot-check-mark{background:var(--color-accent-deep)}.slot-check p+p{margin-top:2px;color:var(--color-text-secondary);font-size:var(--font-size-xs)}.slot-check>div{min-width:0}.slot-check .admin-btn-secondary,.slot-check .admin-btn-sm{margin-top:var(--space-2);white-space:normal;text-align:left}.slot-toast{display:block;padding:var(--space-3) var(--space-4);color:var(--color-success);background:var(--color-success-bg);border-radius:var(--radius-md);font-size:var(--font-size-sm)}@media(max-width:980px){.slot-sent{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.slot-scr-section textarea,.slot-scr-section input,.slot-detail .admin-table td select,.slot-build-fields select,.slot-build-fields input{font-size:16px}.slot-handoff{grid-template-columns:1fr}.slot-detail .slot-actions>button,.slot-detail .slot-actions>a{flex:1 1 100%}}.slot-detail .admin-table.slot-frozen{min-width:0}@media(max-width:390px){.slot-sent{grid-template-columns:1fr}}.admin-portal-header{position:relative}.build-ref{position:absolute;top:4px;right:var(--space-4);margin:0;font-size:.625rem;line-height:1;color:var(--color-text-muted);opacity:.55;font-variant-numeric:tabular-nums;pointer-events:none;-webkit-user-select:all;user-select:all}.crew-import>header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--color-border)}.crew-import>header h3{margin:0;font-size:var(--font-size-lg)}.crew-import>header p{margin-top:3px;max-width:62ch;color:var(--color-text-secondary);font-size:var(--font-size-xs)}.crew-import-body{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4);min-width:0}.ci-counts{display:flex;flex-wrap:wrap;gap:var(--space-2)}.ci-count{flex:1 1 8.5rem;min-width:0;display:flex;flex-direction:column;gap:2px;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-alt)}.ci-count b{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-primary);font-variant-numeric:tabular-nums;line-height:1.1}.ci-count span{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.ci-count--skip{border-color:var(--color-warning);background:var(--color-warning-bg)}.ci-count--skip b{color:var(--color-warning)}.ci-count--refuse{border-color:var(--color-error);background:var(--color-error-bg)}.ci-count--refuse b{color:var(--color-error)}.ci-group th{background:var(--color-primary-tint);color:var(--color-primary);font-size:var(--font-size-xs);letter-spacing:.04em;text-transform:uppercase}td.ci-key{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;color:var(--color-primary);white-space:pre}.ci-ws{color:var(--color-accent-deep);font-weight:var(--font-weight-bold)}td.ci-reason{white-space:normal;min-width:26ch;max-width:44ch;color:var(--color-text-secondary);font-size:var(--font-size-xs)}td.ci-row-no{font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}td.ci-name{white-space:normal;min-width:16ch}.ci-arrow{color:var(--color-text-muted);padding:0 2px}.ci-outcome{display:inline-flex;align-items:center;gap:var(--space-1)}.ci-confirm{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-4);border:1.5px solid var(--color-warning);border-radius:var(--radius-md);background:var(--color-warning-bg)}.ci-confirm input{margin-top:3px;width:1.15rem;height:1.15rem;accent-color:var(--color-warning);flex:none}.ci-confirm label{font-size:var(--font-size-sm);color:#7a3600}.ci-confirm label b{display:block;font-weight:var(--font-weight-semibold);color:#5f2a00}.ci-confirm ul{margin:var(--space-2) 0 0;padding-left:1.1rem;font-size:var(--font-size-xs)}.ci-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.ci-actions .admin-btn-primary,.ci-actions .admin-btn-secondary{min-height:44px}.ci-actions p{flex:1 1 20ch;min-width:0;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.ci-progress{height:6px;border-radius:var(--radius-pill);background:var(--color-bg-alt);overflow:hidden}.ci-progress>i{display:block;height:100%;background:var(--color-accent);border-radius:var(--radius-pill)}@media(max-width:640px){.ci-count{flex:1 1 100%}}.movement-drawer-backdrop{position:fixed;inset:0;z-index:300;display:flex;justify-content:flex-end;background:#041d30ad}.movement-drawer{position:fixed;inset:0 0 0 auto;width:min(1040px,100%);max-width:100%;height:100dvh;max-height:100dvh;margin:0;padding:0;overflow:hidden;color:var(--color-text);background:var(--color-surface);border:0;box-shadow:-12px 0 40px #041d3047}.movement-drawer[open]{display:block}.movement-drawer::backdrop{background:transparent}.movement-drawer__content{display:flex;flex-direction:column;gap:var(--space-4);height:100%;padding:0 var(--space-5) var(--space-6);overflow-y:auto}.movement-drawer__head{position:sticky;top:0;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);margin:0 calc(var(--space-5) * -1);padding:var(--space-4) var(--space-5);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.movement-drawer__head h2{margin:0;font-size:var(--font-size-lg)}.movement-drawer__close{flex:0 0 auto;width:36px;height:36px;color:var(--color-primary);background:var(--color-surface);border:1px solid var(--color-primary);border-radius:var(--radius-md);font:inherit;font-size:var(--font-size-lg);cursor:pointer}.movement-drawer__body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-5);align-items:start}.movement-record,.movement-message{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.movement-record fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);min-width:0;margin:0;padding:var(--space-3);background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:var(--radius-md)}.movement-record legend{padding:0 var(--space-1);color:var(--color-primary);font-weight:var(--font-weight-bold)}.movement-field{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.movement-field>label,.movement-field__label{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:.04em;text-transform:uppercase}.movement-record input,.movement-record select,.movement-message textarea{width:100%;min-width:0;min-height:42px;padding:var(--space-2) var(--space-3);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font:inherit;font-size:var(--font-size-sm)}.movement-record :is(input,select):focus,.movement-message textarea:focus{border-color:var(--color-border-focus);outline:3px solid rgba(6,40,67,.12);outline-offset:1px}.movement-record :disabled:not(fieldset){opacity:.55;cursor:not-allowed}.movement-time-inputs{display:grid;grid-template-columns:1fr;gap:var(--space-1)}.movement-utc{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums}.movement-record input[aria-invalid=true]{border-color:var(--color-error)}.movement-delay{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.movement-chip{grid-column:1 / -1;justify-self:start;padding:var(--space-1) var(--space-3);color:var(--color-primary);background:var(--color-primary-tint);border:1px solid var(--color-primary);border-radius:var(--radius-pill);font:inherit;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);cursor:pointer}.movement-holds{display:flex;flex-direction:column;grid-column:1 / -1;gap:var(--space-2)}.movement-hold-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) auto;gap:var(--space-2);align-items:end}.movement-record-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.movement-notice{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.movement-notice--warning{color:var(--color-warning);background:var(--color-warning-bg)}.movement-notice--success{color:var(--color-success);background:var(--color-success-bg)}.movement-notice--error{color:var(--color-error);background:var(--color-error-bg)}.movement-notice textarea{flex:1 1 100%}.movement-tabs{display:flex;gap:var(--space-2);border-bottom:1px solid var(--color-border)}.movement-tabs [role=tab]{padding:var(--space-2) var(--space-3);color:var(--color-text-secondary);background:transparent;border:0;border-bottom:3px solid transparent;font:inherit;font-weight:var(--font-weight-semibold);cursor:pointer}.movement-tabs [role=tab][aria-selected=true]{color:var(--color-primary);border-bottom-color:var(--color-accent)}.movement-message__head,.movement-message__text{margin:0;padding:var(--space-3);overflow-x:auto;color:var(--color-text);background:var(--color-bg-alt);border:1px dashed var(--color-border);border-radius:var(--radius-md);font:.8125rem/1.5 ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;white-space:pre}.movement-message textarea{min-height:180px;overflow-x:auto;font:.8125rem/1.5 ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;white-space:pre;resize:vertical}.movement-caption,.movement-send-reason{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-xs)}.movement-issues{display:flex;flex-direction:column;gap:var(--space-1);margin:0;padding:0;font-size:var(--font-size-sm);list-style:none}.movement-issue--error{color:var(--color-error)}.movement-issue--warning{color:var(--color-warning)}.movement-send{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.movement-history ol{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0;list-style:none}.movement-history summary{font-size:var(--font-size-sm);cursor:pointer}.movement-sent-item{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-2)}@media(max-width:980px){.movement-drawer__body{grid-template-columns:1fr}.movement-time-inputs{grid-template-columns:minmax(9.5rem,1fr) minmax(6.5rem,auto);gap:var(--space-2)}}@media(max-width:640px){.movement-drawer{width:100%}.movement-record fieldset{grid-template-columns:1fr}.movement-hold-row{grid-template-columns:repeat(3,minmax(0,1fr))}.movement-hold-row>button{grid-column:1 / -1}}.ofp{display:grid;gap:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.ofp h4{font-size:var(--font-size-base);color:var(--color-primary)}.ofp p:not(.alert){font-size:var(--font-size-sm);color:var(--color-text-secondary)}.ofp-document{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);min-width:0;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md)}.ofp-document strong{display:block;overflow-wrap:anywhere;font-size:var(--font-size-sm)}.ofp-document span{display:block;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.ofp-badge{display:inline-block;width:max-content;padding:var(--space-1) var(--space-2);border-radius:999px;background:var(--color-success-bg);color:var(--color-success);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.ofp-badge.pending{background:var(--color-warning-bg);color:var(--color-warning)}.ofp-badge.rejected{background:var(--color-error-bg);color:var(--color-error)}.ofp-accepted{display:grid;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md)}.ofp-accepted h5{font-size:var(--font-size-sm);color:var(--color-primary)}.ofp-accepted dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}.ofp-accepted dt{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.ofp-accepted dd{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.ofp-fields{display:grid;gap:var(--space-3)}.ofp-field{display:grid;gap:var(--space-1);min-width:0}.ofp-field label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase}.ofp-field input{width:100%;min-width:0;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);font:inherit}.ofp-field input:read-only,.ofp-field input:disabled{background:var(--color-bg-alt)}.ofp-field small{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.ofp-field small strong{color:var(--color-primary)}.ofp-note{padding:var(--space-3);border-left:3px solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-primary-tint);font-size:var(--font-size-xs);color:var(--color-primary)}.ofp-note-warning{border-left-color:var(--color-warning);background:var(--color-warning-bg);color:var(--color-warning)}.ofp-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.ofp-actions button{flex:1 1 auto}@media(max-width:640px){.ofp-document{flex-direction:column}.ofp-actions button{width:100%}}.duty-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-4);justify-content:space-between}.duty-date{display:flex;align-items:flex-end;gap:var(--space-2);flex-wrap:wrap}.duty-field{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.duty-input{height:40px;min-width:0;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--color-text);background:var(--color-surface)}.duty-field--reason{flex:1 1 320px;max-width:560px}.duty-field--reason .duty-input{width:100%}.duty-input--time{width:92px;font-variant-numeric:tabular-nums}.duty-input--date{width:172px}.duty-input:focus{outline:2px solid var(--color-border-focus);outline-offset:1px}.duty-input--edited{border-color:var(--color-primary);background:var(--color-primary-tint)}.duty-iconbtn{height:40px;min-width:40px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-primary);font-size:var(--font-size-sm);cursor:pointer;padding:0 var(--space-3)}.duty-counts{display:flex;gap:var(--space-2);flex-wrap:wrap;font-size:var(--font-size-sm);color:var(--color-text-secondary);align-items:center}.duty-workspace{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--space-6);align-items:start}.duty-rows{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.duty-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"head actions" "body body";align-items:center;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-width:0}.duty-row--confirmed{border-color:var(--color-success);box-shadow:inset 4px 0 0 var(--color-success)}.duty-row--recorded{background:var(--color-bg-alt)}.duty-row--voided{background:var(--color-bg-alt);border-style:dashed}.duty-row--returned{border-color:var(--color-warning);box-shadow:inset 4px 0 0 var(--color-warning)}.duty-row__head{grid-area:head;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-3) var(--space-4);min-width:0}.duty-row__who{display:flex;flex-direction:column;min-width:180px;flex:1 1 200px}.duty-row__name{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-primary)}.duty-row__meta{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.duty-code{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:24px;padding:0 var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);background:var(--color-primary-tint);color:var(--color-primary)}.duty-kind{height:32px;padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-xs);background:var(--color-surface);color:var(--color-text)}.duty-row__actions{grid-area:actions;display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;padding:var(--space-3) var(--space-4) var(--space-3) 0}.duty-row__body{grid-area:body;border-top:1px solid var(--color-border);padding:var(--space-3) var(--space-4) var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.duty-row__body:empty{display:none}.duty-fields{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-4);align-items:flex-end}.duty-sectors{width:100%;border-collapse:collapse;font-size:var(--font-size-xs)}.duty-sectors th{text-align:left;color:var(--color-text-secondary);font-weight:var(--font-weight-semibold);padding:var(--space-1) var(--space-2);border-bottom:1px solid var(--color-border);white-space:nowrap}.duty-sectors td{padding:var(--space-2);border-bottom:1px solid var(--color-bg-alt);white-space:nowrap;font-variant-numeric:tabular-nums;vertical-align:middle}.duty-sectors .duty-input--time{height:32px;width:80px}.duty-q{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-3);align-items:center;font-size:var(--font-size-sm)}.duty-q__label{font-weight:var(--font-weight-medium)}.duty-seg{display:inline-flex;border:1px solid var(--color-primary);border-radius:var(--radius-pill);overflow:hidden}.duty-seg button{min-height:32px;min-width:56px;padding:0 var(--space-3);border:0;background:var(--color-surface);color:var(--color-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);cursor:pointer}.duty-seg button+button{border-left:1px solid var(--color-primary)}.duty-seg button[aria-pressed=true]{background:var(--color-primary);color:var(--color-text-on-primary)}.duty-reveal{border-left:3px solid var(--color-primary-tint);padding-left:var(--space-3);display:flex;flex-direction:column;gap:var(--space-3)}.duty-hint{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.duty-hint--block{color:var(--color-warning-text);font-weight:var(--font-weight-medium)}.duty-hint--error{color:var(--color-error);font-weight:var(--font-weight-medium)}.duty-hints{display:contents}.duty-flag{display:inline-flex;gap:var(--space-1);align-items:center;padding:2px var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);background:var(--color-warning-bg);color:var(--color-warning)}.duty-recall{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2)}.duty-recall .duty-fields{align-self:stretch}.duty-recall__pick{min-width:min(100%,320px)}.duty-linknote{font-size:var(--font-size-xs);color:var(--color-text-secondary);background:var(--color-bg-alt);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3)}.duty-history{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin:0;padding-left:var(--space-4)}.duty-sectorwait{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);display:flex;flex-direction:column;gap:var(--space-2)}.duty-sectorwait__row{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}@media(min-width:641px){html:has(.duty-savebar){scroll-padding-bottom:var(--duty-savebar-height, 9rem)}}.duty-savebar{position:sticky;bottom:0;display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-4);align-items:flex-end;justify-content:space-between;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 -4px 16px #0f224014}.duty-savebar__count{flex:1 1 200px;min-width:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary)}.duty-savebar__note,.duty-savebar__status{display:block;font-weight:var(--font-weight-normal)}.duty-savebar__ref{flex:1 1 260px;max-width:360px}.duty-savebar__ref .duty-input{width:100%}.duty-backlog{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);display:flex;flex-direction:column;min-width:0}.duty-backlog__head{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-2)}.duty-backlog__head h3{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary)}.duty-backlog__sec{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--space-2)}.duty-backlog__sec:last-child{border-bottom:0}.duty-backlog__sec h4{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);font-weight:var(--font-weight-semibold);margin:0}.duty-backlog__crew{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-primary);margin-top:var(--space-1)}.duty-backlog__item{display:grid;grid-template-columns:76px minmax(0,1fr);gap:var(--space-2);align-items:start;min-height:32px;padding:var(--space-1) 0;font-size:var(--font-size-xs);text-decoration:none;color:var(--color-text);border-radius:var(--radius-sm)}.duty-backlog__item:hover{background:var(--color-bg-alt)}.duty-backlog__date{font-weight:var(--font-weight-semibold);color:var(--color-primary);text-decoration:underline;font-variant-numeric:tabular-nums}.duty-backlog__cause{color:var(--color-text-secondary)}.duty-readonly{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.duty-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}.duty-step{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--font-size-sm)}.duty-step__n{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.duty-step--done{border-color:var(--color-success)}.duty-blank{color:var(--color-text-secondary);font-style:italic}.duty-summary{display:flex;flex-wrap:wrap;gap:var(--space-2)}.duty-time{display:inline-flex;align-items:center;gap:var(--space-1)}.duty-offset{height:28px;padding:0 var(--space-2);border:1px dashed var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);cursor:pointer;white-space:nowrap}.duty-offset[aria-pressed=true]{border-style:solid;border-color:var(--color-primary);background:var(--color-primary);color:var(--color-text-on-primary)}@media(max-width:980px){.duty-workspace{grid-template-columns:minmax(0,1fr)}}@media(max-width:640px){.duty-row{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "body" "actions"}.duty-row__actions{padding:var(--space-3) var(--space-4) var(--space-4)}.duty-row__body:has(+.duty-row__actions){padding-bottom:0}.duty-field--reason{flex-basis:100%;max-width:none}.duty-offset,.duty-kind,.duty-backlog__item{min-height:44px}.duty-row__actions .admin-btn-sm{min-height:44px;flex:1;font-size:var(--font-size-sm)}.duty-row__body .admin-btn-sm,.duty-step .admin-btn-sm,.duty-seg button{min-height:44px}.duty-input{height:44px}.duty-input--date,.duty-date{width:100%}.duty-date .duty-field{flex:1}.duty-iconbtn{min-width:44px;height:44px}.duty-sectors .duty-input--time{height:44px;width:72px}.duty-subtabs .admin-tab{display:inline-flex;align-items:center;min-height:44px}.duty-hints{display:flex;flex-direction:column;gap:var(--space-1);min-height:1lh;font-size:var(--font-size-xs)}.duty-savebar{position:static;box-shadow:none}.duty-sectors__route,.duty-sectors__source{display:none}.duty-sectors__sector:after{content:attr(data-route);display:block;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.duty-savebar .admin-btn-primary{width:100%;min-height:44px}.duty-savebar .duty-field,.duty-savebar .duty-input{width:100%}.duty-steps{grid-template-columns:minmax(0,1fr)}}.planning-month-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-left:3px solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-primary-tint);color:var(--color-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.planning-select{display:inline-flex;align-items:center;gap:var(--space-2)}.planning-select input{width:18px;height:18px;margin:0;accent-color:var(--color-primary);cursor:pointer}.planning-select-spacer{display:inline-block;width:18px}.admin-table tr.is-selected td{background:var(--color-primary-tint)}.planning-selection-bar{border-left-color:var(--color-primary)}.planning-selection-bar .rowacts{display:flex;flex-wrap:wrap;gap:var(--space-2)}.planning-selected-list{margin:0;flex-basis:100%;color:var(--color-text-secondary);font-size:var(--font-size-sm);white-space:normal}.admin-table .planning-group-row td{background:var(--color-bg-alt);color:var(--color-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.04em}.admin-table .planning-detail-row td{white-space:normal;padding-top:0}.admin-table .planning-detail-row .alert{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2)}.planning-scroll{container-type:inline-size}.admin-table .planning-detail-row .alert{position:sticky;left:var(--space-4);box-sizing:border-box;width:calc(100cqw - 2 * var(--space-4))}.admin-table tbody tr.planning-has-detail td{border-bottom:none}.planning-slot-states{display:inline-flex;flex-direction:column;align-items:flex-start;gap:var(--space-1)}.planning-sub{display:block;color:var(--color-text-secondary);font-size:var(--font-size-xs)}.planning-optype{display:block;width:max-content;margin-top:var(--space-1);font-weight:var(--font-weight-medium)}.admin-table tr.planning-withdrawn td{color:var(--color-text-secondary)}.admin-form.planning-inline-form{padding:var(--space-4) var(--space-5);gap:var(--space-3) var(--space-5);white-space:normal}.admin-form.planning-inline-form>.schedule-form-actions{order:2;flex-direction:row;flex-wrap:wrap;gap:var(--space-2)}.planning-airports{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);min-width:0;margin:0;padding:0;border:0}.planning-airports legend{float:left;margin-right:var(--space-3);padding:0;color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.04em}.admin-form .planning-airport{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-text);font-size:var(--font-size-sm);text-transform:none;letter-spacing:normal}.admin-form .planning-airport input{min-width:0;margin:0;padding:0}.planning-inline-form input[type=text],.planning-inline-form input:not([type]){min-width:16rem}@media(max-width:640px){.planning-inline-form input[type=text],.planning-inline-form input:not([type]){min-width:0;width:100%}}.form-source{max-width:16rem;font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:normal}.form-field-error{max-width:16rem;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-error);white-space:normal}.form-source--suggested{color:var(--color-primary);font-weight:var(--font-weight-medium)}.slot-outbound{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.slot-outbound>h3,.slot-outbound>.slot-callout{grid-column:1 / -1}@media(max-width:640px){.slot-outbound{grid-template-columns:1fr}}.occ-heading{flex-wrap:wrap;align-items:flex-end;text-align:left}.occ-read{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.occ-read .admin-btn-secondary[aria-disabled=true]{opacity:.5;cursor:progress}.occ-read span{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.occ-dim{color:var(--color-text-muted)}.occ-optype{margin-left:var(--space-2);font-weight:var(--font-weight-medium)}@media(max-width:640px){.occ-optype{display:block;width:max-content;max-width:9.5rem;white-space:normal;margin:var(--space-1) 0 0}}.occ-flight{padding:0;border:0;background:none;font:inherit;font-weight:var(--font-weight-semibold);color:var(--color-primary);cursor:pointer}.occ-role{padding:0 var(--space-2);border-radius:var(--radius-sm);background:var(--color-bg-alt);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.occ-note{font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:normal}.occ-unsourced{display:inline-block;padding:1px var(--space-2);border:1px dashed var(--color-text-muted);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-style:italic;color:var(--color-text-secondary)}.occ-flag{display:inline-flex;align-items:center;gap:var(--space-1)}.occ-flag:before{content:"!";font-weight:var(--font-weight-bold)}.admin-badge--warning.occ-flag{color:var(--color-warning-text)}.occ-legend{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);font-size:var(--font-size-xs);color:var(--color-text-secondary)}@media(max-width:640px){.occ-heading{align-items:stretch}.occ-read{width:100%;justify-content:space-between}}.admin-table tbody tr.qual-selected td{background:var(--color-primary-tint)}.qual-panel{display:flex;flex-direction:column;gap:var(--space-5);min-width:0;padding:var(--space-5) var(--space-6);border:1px solid var(--color-border);border-top:3px solid var(--color-accent);border-radius:var(--radius-md)}.qual-head{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--space-3)}.qual-head>div{flex:1 1 16rem;min-width:0}.qual-head h3{margin-top:0}.qual-meta{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.qual-summary{display:flex;flex-direction:column;gap:var(--space-1)}.qual-summary strong{font-weight:var(--font-weight-semibold)}.qual-summary ul{margin-left:var(--space-5)}.qual-block{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.qual-block-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2)}.qual-note{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.qual-sub{display:block;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.qual-badge--danger{background:var(--color-error-bg);color:var(--color-error)}.qual-history summary{cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-primary);padding:var(--space-1) 0}.qual-history[open] summary{margin-bottom:var(--space-2)}.qual-history .admin-table td{color:var(--color-text-secondary)}.admin-form .qual-form-context{order:0;flex:0 0 100%;font-size:var(--font-size-sm);color:var(--color-text-secondary)}@media(max-width:640px){.qual-panel{padding:var(--space-4)}}@media(max-width:640px){.qual-table thead{display:none}.qual-table,.qual-table tbody,.qual-table tr{display:block}.qual-table tr{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.qual-table tr:last-child{border-bottom:none}.qual-table td{display:flex;gap:var(--space-3);justify-content:space-between;align-items:baseline;padding:var(--space-1) 0;border-bottom:none;white-space:normal;text-align:right}.qual-table td:before{content:attr(data-label);flex:0 0 auto;text-align:left;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.qual-table td:first-child{display:block;font-weight:var(--font-weight-semibold);text-align:left}.qual-table td:first-child:before{content:none}.admin-table.qual-table .crew-actions-cell{position:static;box-shadow:none;background:transparent;padding-top:var(--space-2)}.admin-table.qual-table .crew-actions-cell:before{content:none}.qual-table .crew-actions-cell .rowacts{flex-direction:row}.qual-panel .admin-table-scroll-hint{display:none}}.crew-code{position:relative;display:inline-flex;align-items:center;gap:var(--space-1);white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:var(--radius-sm)}.crew-code__rk{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-text-secondary)}.crew-code__nc{font-weight:var(--font-weight-semibold);color:var(--color-text);letter-spacing:.02em}.crew-code--chip{gap:var(--space-2)}.crew-code--chip .crew-code__rk{padding:0 var(--space-2);border-radius:var(--radius-sm);background:var(--color-bg-alt);font-weight:var(--font-weight-semibold)}.crew-code[tabindex]{cursor:help}.crew-code:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.crew-code__tip{position:absolute;z-index:20;left:0;top:calc(100% + 6px);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:var(--color-primary-dark);color:var(--color-text-on-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:0;box-shadow:var(--shadow-card-hover);pointer-events:none;display:none}.crew-code:hover .crew-code__tip,.crew-code:focus-visible .crew-code__tip,.crew-code.is-open .crew-code__tip{display:block}.crew-code--right .crew-code__tip{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}.admin-table-scroll .crew-code:not(.crew-code--right) .crew-code__tip{top:auto;bottom:calc(100% + 6px)}@media(max-width:640px){.crew-code--right .crew-code__tip{left:0;top:calc(100% + 6px);transform:none}.crew-code__tip{white-space:normal;width:max-content;max-width:calc(100vw - 3rem)}.admin-table-scroll .crew-code__tip{top:auto;bottom:calc(100% + 6px);transform:none;max-width:min(11rem,calc(100vw - 3rem))}.admin-table-scroll td:not(:first-child) .crew-code__tip{left:auto;right:0}}.roster-screen .roster-grid tbody th.name-col:hover,.roster-screen .roster-grid tbody th.name-col:focus-within{z-index:4}.crew-code-fallback{font-weight:var(--font-weight-medium)}.crew-link-btn{background:none;border:0;padding:0;font:inherit;font-weight:var(--font-weight-semibold);color:var(--color-primary);text-decoration:underline;cursor:pointer}.crew-notice{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3)}.admin-table tbody tr.crew-row--left td,.admin-table tbody tr.crew-row--left .crew-code__nc{color:var(--color-text-secondary)}.crew-code-input{width:6rem;text-transform:uppercase;letter-spacing:.12em;font-weight:var(--font-weight-semibold)}.admin-form input.crew-code-input[aria-invalid=true]{border-color:var(--color-error)}.crew-code-help{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.crew-code-field{max-width:30rem}.alert.crew-not-told{color:var(--color-warning-text);border:1px solid var(--color-warning)}.crew-not-told__list{list-style:none;margin:var(--space-2) 0 0;padding:0;display:grid;gap:var(--space-1)}.crew-not-told__list li{padding-left:var(--space-3);border-left:2px solid var(--color-warning)}.crew-not-told__codes{font-variant-numeric:tabular-nums;white-space:nowrap}.crew-not-told__codes b{font-weight:var(--font-weight-semibold)}.crew-not-told__after{margin:var(--space-2) 0 0}.occ-phase-summary{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:0;list-style:none}.occ-phase-count{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--fs-neutral-bg);color:var(--fs-scheduled);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.occ-phase-count:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}.occ-phase-count strong{font-variant-numeric:tabular-nums}.occ-phase-count--live{background:var(--fs-departed);color:#fff}.occ-phase-count--settled{background:var(--fs-arrived-bg);color:var(--fs-arrived)}.occ-phase-count--cancelled{background:var(--fs-cancelled-bg);color:var(--fs-cancelled)}.occ-phase-count.is-zero{background:var(--fs-neutral-bg);color:var(--color-text-secondary)}.occ-today .cards,.occ-today .flights-band{display:grid;gap:var(--space-3)}.occ-today .flights-band-head{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;justify-content:space-between}.occ-today .sector{display:grid;min-width:0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;text-align:left}.occ-today .sector.is-live{border-color:var(--fs-departed);box-shadow:inset 4px 0 0 var(--fs-departed)}.occ-today .sector.is-settled{background:#fcfcfd}.occ-today .sector.is-cancelled{background:#fdf8f8}.occ-today .sector button:focus-visible,.occ-today .sector a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.occ-today .s-top{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-bg-alt)}.occ-flight.flt,.occ-today .flt{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-primary);font-variant-numeric:tabular-nums}.occ-today .sector.is-settled .flt{color:var(--color-text-secondary)}.occ-today .sector.is-cancelled .flt{text-decoration:line-through;color:var(--fs-cancelled)}.occ-today .rte{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:0 6px;font-size:var(--font-size-sm)}.occ-today .rte b{font-size:var(--font-size-base)}.occ-today .rte .icao{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.occ-phase{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.occ-phase--upcoming{background:var(--fs-neutral-bg);color:var(--fs-scheduled)}.occ-phase--live{background:var(--fs-departed);color:#fff;font-weight:var(--font-weight-bold)}.occ-phase--live:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}.occ-phase--arrived{background:var(--fs-arrived-bg);color:var(--fs-arrived)}.occ-phase--completed{background:var(--fs-neutral-bg);color:var(--fs-completed)}.occ-phase--cancelled{background:var(--fs-cancelled-bg);color:var(--fs-cancelled)}.occ-today .gate{display:inline-flex;align-items:center;gap:6px;padding:2px 8px 2px 4px;border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.occ-today .gate .code{padding:0 6px;border-radius:var(--radius-pill);background:#ffffffb3;font-size:11px;letter-spacing:.03em}.occ-today .gate time{font-variant-numeric:tabular-nums;font-weight:var(--font-weight-medium)}.occ-today .g-ci{background:var(--fs-checkin-bg);color:var(--fs-checkin)}.occ-today .g-bd{background:var(--fs-boarding-bg);color:var(--fs-boarding)}.occ-today .g-op{background:var(--fs-open-bg);color:var(--fs-open)}.occ-today .g-dep{background:var(--fs-departed-bg);color:var(--fs-departed)}.occ-today .g-arr{background:var(--fs-arrived-bg);color:var(--fs-arrived)}.occ-today .g-cnx{background:var(--fs-cancelled-bg);color:var(--fs-cancelled)}.occ-today .g-div{background:var(--fs-diverted-bg);color:var(--fs-diverted)}.occ-today .g-sch,.occ-today .g-unk{background:var(--fs-neutral-bg);color:var(--fs-scheduled)}.occ-today .rel{margin-left:auto;display:inline-flex;align-items:center;gap:var(--space-2)}.occ-today .rel-st{padding:2px 8px;border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.occ-today .rel-ready{background:var(--color-success-bg);color:var(--color-success)}.occ-today .rel-not{background:var(--color-warning-bg);color:var(--color-warning-text)}.occ-today .rel-none{background:var(--fs-neutral-bg);color:var(--color-text-secondary)}.occ-today .rel-ready:before{content:"✓ "}.occ-today .rel-not:before{content:"! "}.occ-today .rel a.admin-btn-sm{display:inline-flex;align-items:center;text-decoration:none}.occ-today .s-actions{display:inline-flex;flex-wrap:wrap;gap:var(--space-2)}.occ-today .s-expander{min-height:2rem}.occ-today .s-body{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,.8fr);gap:var(--space-4);padding:var(--space-3) var(--space-4)}.occ-today .col-label{margin:0 0 4px;font-size:11px;font-weight:var(--font-weight-semibold);letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-secondary)}.occ-today .ribbon{position:relative;height:34px;margin:18px 0 22px}.occ-today .ribbon .axis{position:absolute;inset:15px 0 auto;height:1px;background:var(--color-border)}.occ-today .ribbon .plan{position:absolute;top:8px;height:16px;border:1.5px dashed var(--fs-scheduled);border-radius:4px}.occ-today .ribbon .blk{position:absolute;top:8px;height:16px;background:var(--fs-departed-bg);border:1.5px solid var(--fs-departed);border-radius:4px}.occ-today .ribbon .flt-core{position:absolute;top:11px;height:10px;background:var(--fs-departed);border-radius:3px}.occ-today .ribbon .open-end{border-right:none;border-radius:4px 0 0 4px;background:linear-gradient(90deg,var(--fs-departed-bg),transparent)}.occ-today .ribbon .tick{position:absolute;top:-16px;transform:translate(-50%);font-size:10px;color:var(--color-text-secondary);white-space:nowrap;font-variant-numeric:tabular-nums}.occ-today .ribbon .tick.lane-1{top:28px}.occ-today .ribbon .tick.lane-2{top:41px}.occ-today .ribbon.ribbon--deep{margin-bottom:36px}.occ-today .ribbon .now{position:absolute;top:0;bottom:0;width:2px;background:var(--color-error)}.occ-today .ribbon .now:after{content:"now";position:absolute;top:30px;left:4px;font-size:10px;color:var(--color-error);font-weight:600}.occ-today .times{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px var(--space-3);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}.occ-today .times div{display:grid}.occ-today .times dt{font-size:11px;color:var(--color-text-secondary)}.occ-today .times dd{margin:0;font-weight:var(--font-weight-medium)}.occ-today .times dd .late{color:var(--color-warning-text);font-weight:var(--font-weight-semibold)}.occ-today .times dd.big{font-size:var(--font-size-lg);color:var(--fs-departed);font-weight:var(--font-weight-bold)}.occ-today .gate-trail{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-2);margin:var(--space-2) 0 0;padding:0;list-style:none}.occ-today .gate-trail li{padding:0 var(--space-2);border-radius:var(--radius-pill);font-size:11px;font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.occ-today .ac{margin:0 0 var(--space-2);font-size:var(--font-size-sm)}.occ-today .ac b{font-variant-numeric:tabular-nums}.occ-today .flags{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-2);margin-bottom:var(--space-2)}.occ-today .crew{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px var(--space-2);font-size:var(--font-size-sm);align-items:center}.occ-today .crew-member{display:contents}.occ-today .crew .occ-role{min-width:3.4rem;text-align:center}.occ-role--cpt{background:var(--color-primary-tint);color:var(--color-primary)}.occ-role--fo{background:var(--fs-checkin-bg);color:var(--fs-checkin)}.occ-role--cc{background:var(--fs-diverted-bg);color:var(--fs-diverted)}.occ-role--none{background:var(--color-bg-alt);color:var(--color-text-secondary)}.occ-today .pax{display:grid;gap:4px;font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}.occ-today .pax .big{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-primary);line-height:1.1}.occ-today .pax .row{display:flex;justify-content:space-between;gap:var(--space-2)}.occ-today .pax .row span:first-child{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.occ-today .pax-note{font-size:var(--font-size-xs);font-style:italic;color:var(--color-text-secondary)}.occ-today .s-foot{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4) var(--space-3);border-top:1px solid var(--color-bg-alt)}.occ-today .s-cancel{margin:0;padding:var(--space-2) var(--space-4) var(--space-3);border-top:1px solid var(--color-bg-alt);font-size:var(--font-size-sm);color:var(--color-text);white-space:normal;overflow-wrap:anywhere}.occ-today .s-cancel b{color:var(--fs-cancelled);font-weight:var(--font-weight-semibold)}@media(max-width:700px){.occ-today .s-cancel{padding:var(--space-2) var(--space-3) var(--space-3)}}.occ-today .msg{padding:2px 8px;border-radius:var(--radius-sm);background:var(--color-bg-alt);color:var(--color-text-secondary);font-size:var(--font-size-xs)}.occ-today .msg.sent{background:var(--color-success-bg);color:var(--color-success)}.occ-today .msg.draft{background:var(--color-primary-tint);color:var(--color-primary)}.occ-today .msg.due{background:var(--fs-boarding-bg);color:var(--fs-boarding);font-weight:var(--font-weight-semibold)}.occ-today .msg.due:before{content:"! "}@media(max-width:1000px){.occ-today .s-body{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.occ-today .s-body>:first-child{grid-column:1 / -1}}@media(max-width:700px){.occ-today .s-body{grid-template-columns:minmax(0,1fr)}.occ-today .times{grid-template-columns:repeat(3,minmax(0,1fr))}.occ-today .rel{margin-left:0}.occ-today .s-top{padding:var(--space-3)}.occ-today .s-top .occ-flight,.occ-today .s-top .rel a.admin-btn-sm,.occ-today .s-expander{min-height:44px;min-width:44px}.occ-today .s-top .occ-flight{display:inline-flex;align-items:center}}.occ-today .tiles-band{display:grid;gap:var(--space-3)}.occ-today .band-title{margin:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);letter-spacing:.04em;text-transform:uppercase}.occ-today .tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3)}.occ-today .tile{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);display:grid;gap:var(--space-2);align-content:start;min-width:0}.occ-today .tile-body{display:grid;gap:var(--space-2);align-content:start;min-width:0}.occ-today .tile h4{margin:0;font-size:var(--font-size-sm);color:var(--color-primary);display:flex;align-items:baseline;gap:var(--space-2)}.occ-today .tile h4 a{margin-left:auto;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-primary)}.occ-today .tile-toggle{display:none}.occ-today .kv{display:grid;grid-template-columns:auto 1fr;gap:2px var(--space-3);font-size:var(--font-size-sm);align-items:baseline;margin:0}.occ-today .kv dt{color:var(--color-text-secondary);font-size:var(--font-size-xs);white-space:nowrap}.occ-today .kv dd{margin:0;font-variant-numeric:tabular-nums;min-width:0}.occ-today .expiry-line{display:block}.occ-today .expiry-note{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.occ-today .tail{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm)}.occ-today .tail-group{display:grid;gap:2px}.occ-today .tail b{font-variant-numeric:tabular-nums}.occ-today .st{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);padding:1px 6px;border-radius:var(--radius-sm)}.occ-today .st-ok{background:var(--color-success-bg);color:var(--color-success)}.occ-today .st-mx{background:var(--color-warning-bg);color:var(--color-warning-text)}.occ-today .chips{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-2)}.occ-today .cchip{display:inline-flex;gap:4px;align-items:baseline;font-size:var(--font-size-xs);padding:2px 8px;border-radius:var(--radius-pill);background:var(--color-bg-alt);color:var(--color-text)}.occ-today .cchip b{font-variant-numeric:tabular-nums}.occ-today .cchip.fly{background:var(--color-primary-tint);color:var(--color-primary)}.occ-today .cchip.sb{background:var(--fs-open-bg, #dbe6f2);color:var(--fs-open, #0b2a4a)}.occ-today .cchip.ct{background:var(--color-contactable-bg);color:var(--color-contactable)}.occ-today .cchip.not-told{background:var(--color-warning-bg);color:var(--color-warning-text)}.occ-today .sev{display:flex;gap:var(--space-2);flex-wrap:wrap}.occ-today .sev span{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);padding:2px 8px;border-radius:var(--radius-sm);font-variant-numeric:tabular-nums}.occ-today .sev .b{background:var(--color-error-bg);color:var(--color-error)}.occ-today .sev .w{background:var(--color-warning-bg);color:var(--color-warning-text)}.occ-today .sev .u{background:var(--fs-neutral-bg, #eceff1);color:var(--fs-scheduled, #546e7a);border:1px dashed var(--color-text-muted)}.occ-today .tile .line{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin:0}.occ-today .tile .line.tile-error{color:var(--color-error)}.occ-today .tile .line.not-told-line{color:var(--color-warning-text)}.occ-today .tile .line .st{white-space:nowrap}.occ-today .mini{display:grid;gap:2px;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.occ-today .mini b{font-size:var(--font-size-lg);color:var(--color-primary);font-variant-numeric:tabular-nums}.occ-today .mini b.mini-alert{color:var(--color-error)}@media(max-width:1000px){.occ-today .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.occ-today .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.occ-today .tile{padding:var(--space-3)}.occ-today .tile-toggle{display:block;width:100%;padding:0;border:0;background:none;font:inherit;text-align:left;cursor:pointer}.occ-today .tile-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.occ-today .tile .tile-body{display:none}.occ-today .tile[data-expanded=true]{grid-column:1 / -1;border-color:var(--color-primary)}.occ-today .tile[data-expanded=true] .tile-body{display:grid}}.occ-today .inbox-band{display:grid;gap:var(--space-3)}.occ-today .inboxes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);align-items:start}.occ-today .inbox{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-width:0}.occ-today .inbox.watch{background:#fbfcfe}.occ-today .inbox>summary{list-style:none;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);cursor:pointer}.occ-today .inbox>summary::-webkit-details-marker{display:none}.occ-today .inbox>summary:after{content:"▾";margin-left:var(--space-2);color:var(--color-text-secondary);transition:transform .15s}.occ-today .inbox:not([open])>summary:after{transform:rotate(-90deg)}.occ-today .inbox>summary:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px;border-radius:var(--radius-md)}.occ-today .inbox>summary>div{flex:1;min-width:0}.occ-today .inbox h3{margin:0;font-size:var(--font-size-base);color:var(--color-primary)}.occ-today .inbox .who{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.occ-today .inbox .count{margin-left:auto;min-width:1.75rem;height:1.75rem;padding:0 .5rem;display:inline-grid;place-items:center;border-radius:var(--radius-pill);font-weight:var(--font-weight-bold);font-variant-numeric:tabular-nums;background:var(--color-error);color:#fff}.occ-today .inbox .count.zero{background:var(--fs-neutral-bg);color:var(--color-text-secondary)}.occ-today .inbox .count.watch{background:var(--color-primary-tint);color:var(--color-primary)}.occ-today .inbox .count.warn{background:var(--color-warning-bg);color:var(--color-warning-text, var(--color-warning));border:1px solid var(--color-warning)}.occ-today .inbox ul{list-style:none;margin:0;padding:0 var(--space-4) var(--space-3);display:grid;gap:var(--space-2)}.occ-today .inbox li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2) var(--space-3);align-items:center;padding-top:var(--space-2);border-top:1px solid var(--color-bg-alt)}.occ-today .inbox li .what{font-size:var(--font-size-sm);overflow-wrap:anywhere}.occ-today .inbox li .meta{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.occ-today .inbox li .acts,.occ-today .inbox .inbox-refuse .acts,.occ-today .inbox .inbox-confirm .acts{display:flex;gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end}.occ-today .inbox .admin-btn-sm{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-family:inherit}.occ-today .inbox .btn-solid{background:var(--color-primary);color:var(--color-text-on-primary);border:1px solid var(--color-primary)}.occ-today .inbox .btn-out{background:var(--color-surface);color:var(--color-primary);border:1px solid var(--color-primary)}.occ-today .inbox .btn-out-red{background:var(--color-surface);color:var(--fs-cancelled);border:1px solid var(--fs-cancelled)}.occ-today .inbox .admin-btn-sm:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.occ-today .inbox .inbox-empty,.occ-today .inbox .inbox-note,.occ-today .inbox .inbox-error,.occ-today .inbox .inbox-warn{margin:0;padding:0 var(--space-4) var(--space-3);font-size:var(--font-size-sm)}.occ-today .inbox .inbox-empty,.occ-today .inbox .inbox-note{color:var(--color-text-secondary)}.occ-today .inbox .inbox-error{color:var(--color-error)}.occ-today .inbox li .inbox-error{padding:0;font-size:var(--font-size-xs)}.occ-today .inbox .inbox-warn{color:var(--color-warning-text, var(--color-warning))}.occ-today .inbox .inbox-staffno{white-space:nowrap}.occ-today .inbox .inbox-blocked{color:var(--color-warning-text, var(--color-warning))}.occ-today .inbox li .inbox-blocked{grid-column:1 / -1}.occ-today .inbox .inbox-confirm{display:grid;gap:var(--space-2);margin:var(--space-2) 0 0;padding:0;border:0;min-width:0}.occ-today .inbox .inbox-confirm p{margin:0;font-size:var(--font-size-xs);overflow-wrap:anywhere}.occ-today .inbox .inbox-refuse{display:grid;gap:var(--space-2);margin-top:var(--space-2)}.occ-today .inbox .inbox-refuse label{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.occ-today .inbox .inbox-refuse input{min-width:0;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font:inherit;font-size:var(--font-size-sm)}.occ-today .inbox .inbox-refuse input[aria-invalid=true]{border-color:var(--color-error)}@media(max-width:700px){.occ-today .inboxes,.occ-today .inbox li{grid-template-columns:minmax(0,1fr)}.occ-today .inbox li .acts,.occ-today .inbox .inbox-refuse .acts,.occ-today .inbox .inbox-confirm .acts{justify-content:flex-start}.occ-today .inbox .admin-btn-sm{min-height:2.75rem;padding-inline:var(--space-4)}.occ-today .inbox .inbox-refuse input{min-height:2.75rem}}@media(prefers-reduced-motion:reduce){.occ-today .inbox>summary:after{transition:none}}:root{--crew-on-navy-muted: rgba(255, 255, 255, .72);--crew-on-navy-rule: rgba(255, 255, 255, .14);--crew-gold-tint: #fff4d6;--crew-gold-ink: #6b4a00;--crew-info: #164f91;--crew-info-bg: #e8f2fc;--crew-rule: #e3e7ec;--crew-shadow-pass: 0 12px 32px rgba(4, 29, 48, .45)}.crew-app :focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.crew-bar :focus-visible,.crew-hero :focus-visible{outline-color:var(--color-accent)}.crew-app{position:relative;min-height:100dvh;display:flex;flex-direction:column;background:var(--color-bg);font-family:var(--font-sans);color:var(--color-text)}.crew-bar{position:sticky;top:0;z-index:5;height:var(--nav-height);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:0 var(--space-4);background:var(--color-primary-dark);color:var(--color-text-on-primary);border-bottom:1px solid var(--crew-on-navy-rule)}.crew-mark{display:flex;align-items:center;gap:10px;min-width:0}.crew-mark__stripe{width:4px;height:22px;border-radius:2px;background:var(--color-accent);flex:0 0 4px}.crew-mark__text{font-size:var(--font-size-sm);letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crew-mark__text b{font-weight:var(--font-weight-semibold)}.crew-mark__text span{color:var(--crew-on-navy-muted);font-weight:var(--font-weight-normal)}.crew-avatar{width:44px;height:44px;flex:0 0 44px;border:0;background:transparent;cursor:pointer;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.crew-avatar__disc{width:36px;height:36px;border-radius:50%;background:var(--color-accent);color:var(--color-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:.02em;display:inline-flex;align-items:center;justify-content:center}.crew-avatar[aria-expanded=true] .crew-avatar__disc{box-shadow:0 0 0 2px var(--color-primary-dark),0 0 0 4px var(--color-accent)}.crew-menu{position:absolute;right:var(--space-4);top:calc(var(--nav-height) - 4px);z-index:6;width:232px;background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-lg);box-shadow:var(--shadow-card-hover);padding:var(--space-4) var(--space-4) var(--space-2)}.crew-menu[hidden]{display:none}.crew-menu__name{font-weight:var(--font-weight-semibold);color:var(--color-primary)}.crew-menu__id{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.crew-menu__out{margin-top:var(--space-3);width:100%;min-height:44px;border:0;border-top:1px solid var(--crew-rule);background:transparent;color:var(--color-primary);font:inherit;font-weight:var(--font-weight-medium);text-align:left;cursor:pointer}.crew-main{flex:1;display:flex;flex-direction:column}.crew-hero{padding:var(--space-5) var(--space-4) var(--space-6);color:var(--color-text-on-primary);display:flex;flex-direction:column;gap:var(--space-4)}.crew-sheet{flex:1;background:var(--color-surface);border-radius:var(--radius-card) var(--radius-card) 0 0;padding:var(--space-5) var(--space-4) var(--space-8);display:flex;flex-direction:column;gap:var(--space-4)}@media(min-width:760px){.crew-bar{padding:0 var(--space-8)}.crew-menu{right:var(--space-8)}.crew-hero,.crew-sheet{padding-left:var(--space-8);padding-right:var(--space-8)}}:where(.crew-app) button{font:inherit;color:inherit}.crew-app .visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.mr-month-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);line-height:1.2;letter-spacing:-.01em}.mr-rev{display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--space-2);margin-top:2px}.mr-rev__line{font-size:var(--font-size-sm);color:var(--crew-on-navy-muted);font-variant-numeric:tabular-nums}.mr-rev__line b{color:var(--color-text-on-primary);font-weight:var(--font-weight-medium)}.mr-info{width:44px;height:44px;margin:-10px -10px -10px -8px;border:0;background:transparent;cursor:pointer;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--crew-on-navy-muted)}.mr-info svg{width:18px;height:18px}.mr-info[aria-expanded=true]{color:var(--color-accent)}.mr-rev__more{margin-top:var(--space-2);padding-left:var(--space-3);border-left:2px solid var(--color-accent);font-size:var(--font-size-xs);color:var(--crew-on-navy-muted);display:flex;flex-direction:column;gap:2px}.mr-rev__more[hidden]{display:none}.mr-changes{position:relative;align-self:flex-start;display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 var(--space-3);border:0;border-radius:var(--radius-pill);cursor:pointer;background:var(--crew-gold-tint);color:var(--crew-gold-ink);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.mr-changes:after{content:"";position:absolute;inset:-6px 0}.mr-changes__dot{width:8px;height:8px;border-radius:50%;background:var(--color-accent-deep)}.mr-pass{position:relative;background:var(--color-surface);color:var(--color-text);border-radius:20px;box-shadow:var(--crew-shadow-pass)}.mr-pass__top{padding:var(--space-4) var(--space-5) var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.mr-pass__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.mr-label{display:block;font-size:.6875rem;font-weight:var(--font-weight-semibold);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-secondary)}.mr-pass__date{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-primary);line-height:1.3}.mr-pass__duty{display:flex;align-items:center;gap:6px;font-size:var(--font-size-sm);color:var(--color-text);white-space:nowrap}.mr-route{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-3)}.mr-route__apt{font-size:1.875rem;font-weight:var(--font-weight-semibold);color:var(--color-primary);line-height:1;letter-spacing:.02em}.mr-route__time{display:block;margin-top:6px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);font-variant-numeric:tabular-nums}.mr-route__end{text-align:right}.mr-route__path{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;align-self:start;padding-top:6px}.mr-route__line{position:relative;width:100%;height:18px;display:flex;align-items:center;justify-content:center}.mr-route__line:before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1.5px solid var(--color-primary-tint)}.mr-route__line svg{position:relative;width:20px;height:20px;color:var(--color-primary);background:var(--color-surface);padding:0 3px;box-sizing:content-box}.mr-route__fn{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);white-space:nowrap}.mr-pass__window{font-size:1.875rem;font-weight:var(--font-weight-semibold);color:var(--color-primary);font-variant-numeric:tabular-nums;line-height:1.1}.mr-pass__notimes{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-style:italic}.mr-perf{position:relative;height:0;margin:0 var(--space-4);border-top:2px dashed var(--color-accent)}.mr-perf:before,.mr-perf:after{content:"";position:absolute;top:-12px;width:22px;height:22px;border-radius:50%;background:var(--color-bg)}.mr-perf:before{left:calc(-1 * var(--space-4) - 11px)}.mr-perf:after{right:calc(-1 * var(--space-4) - 11px)}.mr-pass__stub{padding:var(--space-4) var(--space-5) var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}.mr-facts{display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-3);align-items:end}.mr-facts dd{font-variant-numeric:tabular-nums;font-weight:var(--font-weight-semibold);color:var(--color-primary);font-size:var(--font-size-base);line-height:1.3;white-space:nowrap}.mr-facts .mr-fact--report dd{font-size:2rem;line-height:1.05}.mr-facts .mr-fact--end{text-align:right}.mr-code{display:inline-flex;align-items:center;justify-content:center;min-width:2.25rem;height:24px;padding:0 var(--space-2);border-radius:6px;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-transform:none;letter-spacing:0;font-variant-numeric:tabular-nums;line-height:1}.mr-code--duty{background:var(--color-primary);color:var(--color-text-on-primary)}.mr-code--sb{background:var(--color-primary-tint);color:var(--color-primary)}.mr-code--ct{background:var(--color-contactable-bg);color:var(--color-contactable)}.mr-code--t{background:var(--crew-info-bg);color:var(--crew-info)}.mr-code--rest{background:var(--color-bg-alt);color:var(--color-text-secondary)}.mr-code--unknown{background:var(--color-surface);color:var(--color-text);border:1px dashed var(--color-text-secondary)}.mr-code--tentative{background:var(--color-surface);color:var(--color-primary);border:1.5px dashed var(--color-primary)}.mr-change{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding:2px 10px 2px 8px;border-radius:var(--radius-pill);background:var(--crew-gold-tint);color:var(--crew-gold-ink);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.mr-change:before{content:"";flex:0 0 6px;width:6px;height:6px;border-radius:50%;background:var(--color-accent-deep)}.mr-changes-list{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1)}.mr-changes--detail{padding:6px var(--space-4) 6px var(--space-3);border-radius:var(--radius-lg);text-align:left}.mr-changes__text{display:flex;flex-direction:column;line-height:1.3}.mr-changes__sub{font-weight:var(--font-weight-medium);font-size:var(--font-size-xs)}.mr-outside{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding:2px 10px 2px 8px;border-radius:var(--radius-pill);background:var(--color-warning-bg);color:var(--color-text);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.mr-outside:before{content:"";flex:0 0 6px;width:6px;height:6px;border-radius:50%;background:var(--color-warning)}.mr-dot--outside{background:var(--color-warning)}.mr-pass__date+.mr-outside{margin-top:var(--space-1)}.mr-weeknav{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:var(--space-2)}.mr-arrow{width:44px;height:44px;border-radius:50%;border:1px solid var(--crew-rule);background:var(--color-surface);color:var(--color-primary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.mr-arrow svg{width:18px;height:18px}.mr-arrow:hover:not(:disabled){background:var(--color-bg-alt)}.mr-arrow:disabled{color:var(--color-text-muted);cursor:not-allowed;background:var(--color-surface)}.mr-week{text-align:center;line-height:1.25;font-variant-numeric:tabular-nums}.mr-week__span{display:block;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-primary)}.mr-week__of{display:block;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.mr-edge{font-size:var(--font-size-xs);color:var(--color-text-secondary);text-align:center}.mr-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.mr-chip{position:relative;min-height:64px;min-width:0;border:0;border-radius:12px;background:var(--color-bg-alt);color:var(--color-primary);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;cursor:pointer;font-variant-numeric:tabular-nums;line-height:1.15}.mr-chip__dow{font-size:.6875rem;color:var(--color-text-secondary)}.mr-chip__num{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.mr-chip__dot{width:8px;height:8px;border-radius:50%;margin-top:3px}.mr-dot--flying{background:var(--color-primary)}.mr-dot--tentative{border:1.5px dashed var(--color-primary)}.mr-dot--sb{background:var(--color-primary-tint);box-shadow:inset 0 0 0 1.5px var(--color-primary)}.mr-dot--ct{background:var(--color-contactable-bg);box-shadow:inset 0 0 0 1.5px var(--color-contactable)}.mr-dot--t{background:var(--crew-info-bg);box-shadow:inset 0 0 0 1.5px var(--crew-info)}.mr-dot--unknown{border:1.5px solid var(--color-text-secondary)}.mr-dot--none{visibility:hidden}.mr-chip.is-changed{box-shadow:inset 0 0 0 2px var(--color-accent-deep)}.mr-chip.is-today:after{content:"";position:absolute;left:30%;right:30%;bottom:5px;height:3px;border-radius:2px;background:var(--color-accent)}.mr-chip.is-today .mr-chip__dot{margin-bottom:4px}.mr-chip[aria-pressed=true]{background:var(--color-primary);color:var(--color-text-on-primary)}.mr-chip[aria-pressed=true] .mr-chip__dow{color:var(--crew-on-navy-muted)}.mr-chip[aria-pressed=true] .mr-dot--flying{background:var(--color-surface)}.mr-chip[aria-pressed=true] .mr-dot--tentative,.mr-chip[aria-pressed=true] .mr-dot--unknown{border-color:var(--color-surface)}.mr-chip[aria-pressed=true].is-changed{box-shadow:inset 0 0 0 2px var(--color-accent)}.mr-chip--out{cursor:default;background:transparent;border:1px dashed var(--crew-rule);color:var(--color-text-secondary)}.mr-chip--out .mr-chip__num{font-weight:var(--font-weight-normal);font-size:var(--font-size-base)}.mr-list{list-style:none;display:flex;flex-direction:column}.mr-day{display:grid;grid-template-columns:48px minmax(0,1fr);gap:var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--crew-rule);scroll-margin-top:72px;border-radius:var(--radius-md);transition:background-color .6s ease}.mr-day:first-child{border-top:0}.mr-day__date{text-align:center;font-variant-numeric:tabular-nums;line-height:1.15;padding-top:2px}.mr-day__dow{display:block;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.mr-day__num{display:block;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-primary)}.mr-day__body{min-width:0;display:flex;flex-direction:column;gap:var(--space-2)}.mr-day__top{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-2);min-height:28px}.mr-day__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.mr-today-tag{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-primary);background:var(--color-accent);border-radius:var(--radius-pill);padding:1px 8px}.mr-day--today .mr-day__num{box-shadow:inset 0 -3px 0 var(--color-accent);display:inline-block;padding:0 2px}.mr-day--compact{padding:var(--space-2) 0}.mr-day--compact .mr-day__date{display:flex;align-items:baseline;justify-content:center;gap:4px;padding-top:4px}.mr-day--compact .mr-day__dow{display:inline}.mr-day--compact .mr-day__num{display:inline-block;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.mr-day--compact .mr-day__label{color:var(--color-text-secondary);font-weight:var(--font-weight-normal)}.mr-day__label b{color:var(--color-text);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.mr-day__label--unset{font-style:italic}.mr-day--changed .mr-day__body{border-left:3px solid var(--color-accent-deep);padding-left:9px;margin-left:-12px}.mr-day.is-flash{background-color:var(--crew-gold-tint)}.mr-path{font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}.mr-path__edge{display:flex;justify-content:space-between;gap:var(--space-2);color:var(--color-text-secondary);padding:2px 0}.mr-path__edge b{color:var(--color-text);font-weight:var(--font-weight-semibold)}.mr-stops{list-style:none;position:relative;padding:4px 0 4px 22px}.mr-stops:before{content:"";position:absolute;left:5px;top:15px;bottom:15px;width:2px;background:var(--color-primary-tint)}.mr-stop{position:relative;font-weight:var(--font-weight-semibold);color:var(--color-primary);letter-spacing:.03em;line-height:22px}.mr-stop:before{content:"";position:absolute;left:-22px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--color-surface);box-shadow:inset 0 0 0 2.5px var(--color-primary)}.mr-stop:first-child:before,.mr-stop:last-child:before{background:var(--color-primary)}.mr-leg{display:flex;justify-content:space-between;gap:var(--space-2);padding:2px 0 4px;color:var(--color-text-secondary)}.mr-leg b{color:var(--color-text);font-weight:var(--font-weight-medium);white-space:nowrap}.mr-leg span{white-space:nowrap}.mr-notimes{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-style:italic}.mr-window{display:flex;justify-content:space-between;gap:var(--space-2);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.mr-window b{color:var(--color-text);font-weight:var(--font-weight-semibold)}.mr-state{margin:var(--space-8) auto;max-width:320px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.mr-state__icon{width:56px;height:56px;border-radius:50%;background:var(--color-bg-alt);color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center}.mr-state__icon svg{width:26px;height:26px}.mr-state__line{font-size:var(--font-size-base);color:var(--color-text)}.mr-state__sub{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.mr-state__cta{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary);background:var(--color-primary-tint);border-radius:var(--radius-pill);padding:6px 14px}.mr-state__retry{border:0;cursor:pointer;min-height:44px;padding:0 var(--space-5)}@media(min-width:760px){.crew-main{display:grid;grid-template-columns:minmax(320px,380px) minmax(0,560px);justify-content:center;align-items:start;gap:var(--space-8);padding:var(--space-8) var(--space-8) var(--space-10)}.crew-hero{padding:0;position:sticky;top:calc(var(--nav-height) + var(--space-8))}.crew-sheet{border-radius:var(--radius-card);padding:var(--space-6);min-height:0}.crew-main:has(>.crew-sheet>.mr-state){grid-template-columns:minmax(0,560px);align-content:start}}@media(prefers-reduced-motion:reduce){.crew-app *,.crew-app *:before,.crew-app *:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}:root{--crew-on-navy-muted: rgba(255, 255, 255, .72);--crew-on-navy-rule: rgba(255, 255, 255, .14);--crew-gold-tint: #fff4d6;--crew-gold-ink: #6b4a00;--crew-info: #164f91;--crew-info-bg: #e8f2fc;--crew-rule: #e3e7ec}.rl-page{background:var(--color-bg-alt);padding:var(--space-6)}.rl-wrap{max-width:var(--content-max-width);margin:0 auto;display:flex;flex-direction:column;gap:var(--space-5);min-width:0}.rl-crumb{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.rl-crumb a{color:var(--color-primary);font-weight:var(--font-weight-medium)}.ic{width:1em;height:1em;flex:0 0 1em;display:inline-block;vertical-align:-.125em}.rl-band{position:relative;overflow:hidden;border-radius:var(--radius-lg);background:var(--color-primary-dark);color:var(--color-text-on-primary);padding:var(--space-6) var(--space-6) 0;display:flex;flex-direction:column;gap:var(--space-5)}.rl-band:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--color-accent)}.rl-band__top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-4) var(--space-8);align-items:flex-end}.rl-flights{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-accent);letter-spacing:.02em;font-variant-numeric:tabular-nums}.rl-route{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-3);margin-top:var(--space-1);font-size:2.5rem;line-height:1.05;font-weight:var(--font-weight-semibold);letter-spacing:.03em}.rl-route .ic{width:1.5rem;height:1.5rem;flex-basis:1.5rem;color:var(--crew-on-navy-muted)}.rl-facts{display:grid;grid-template-columns:repeat(3,auto);gap:var(--space-1) var(--space-6)}.rl-facts dt{font-size:var(--font-size-xs);color:var(--crew-on-navy-muted)}.rl-facts dd{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);white-space:nowrap}.rl-legs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(13rem,100%),1fr));gap:1px;background:var(--crew-on-navy-rule);border-top:1px solid var(--crew-on-navy-rule);margin:0 calc(-1 * var(--space-6))}.rl-leg{background:var(--color-primary-dark);padding:var(--space-3) var(--space-6);display:grid;grid-template-columns:auto 1fr;gap:0 var(--space-3);align-items:baseline}.rl-leg b{font-size:var(--font-size-sm);color:var(--color-accent);font-variant-numeric:tabular-nums}.rl-leg span{font-size:var(--font-size-sm)}.rl-leg .t{grid-column:2;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.rl-leg .t small{font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);color:var(--crew-on-navy-muted);margin-left:var(--space-2)}.rl-status{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}.rl-status>div{padding:var(--space-5) var(--space-6);min-width:0}.rl-status>div+div{border-left:1px solid var(--color-bg-alt)}.rl-steps{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.rl-steps li{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);padding-right:var(--space-2)}.rl-steps li:after{content:"";position:absolute;top:13px;left:30px;right:4px;height:2px;background:var(--color-border)}.rl-steps li:last-child:after{display:none}.rl-steps .dot{position:relative;z-index:1;width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--font-size-xs)}.rl-steps .is-done{color:var(--color-success)}.rl-steps .is-done .dot{background:var(--color-success);border-color:var(--color-success);color:#fff}.rl-steps .is-done:after{background:var(--color-success)}.rl-steps .is-now{color:var(--color-primary)}.rl-steps .is-now .dot{background:var(--color-accent);border-color:var(--color-primary);color:var(--color-primary);box-shadow:0 0 0 4px var(--crew-gold-tint)}.rl-next{margin-top:var(--space-4);display:flex;gap:var(--space-2);align-items:baseline;font-size:var(--font-size-sm);color:var(--color-text)}.rl-next b{color:var(--color-primary)}.rl-next .ic{color:var(--color-accent-deep);align-self:center}.rl-ready__line{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-1) var(--space-4)}.rl-ready__num{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-primary);font-variant-numeric:tabular-nums}.rl-ready__num small{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.rl-meter{margin:var(--space-3) 0;height:10px;border-radius:var(--radius-pill);background:var(--color-bg-alt);display:flex;overflow:hidden}.rl-meter span{display:block;height:100%}.rl-meter .ok{background:var(--color-success)}.rl-meter .wait{background:var(--crew-info)}.rl-meter .out{background:var(--color-warning)}.rl-counts{display:flex;flex-wrap:wrap;gap:var(--space-2)}.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px 3px 8px;border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);white-space:nowrap;line-height:1.35}.pill--ready{background:var(--color-success-bg);color:var(--color-success)}.pill--wait{background:var(--crew-info-bg);color:var(--crew-info)}.pill--block{background:var(--color-error);color:#fff}.pill--warn{background:var(--color-warning-bg);color:var(--color-warning-text)}.pill--out{background:var(--color-warning-bg);color:var(--color-warning-text);box-shadow:inset 0 0 0 1px var(--color-warning)}.pill--gold{background:var(--crew-gold-tint);color:var(--crew-gold-ink)}.pill--none{background:var(--fs-neutral-bg);color:var(--fs-scheduled)}.chip{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:var(--radius-sm);font-size:.6875rem;font-weight:var(--font-weight-semibold);letter-spacing:.02em;white-space:nowrap}.chip--occ{background:var(--color-primary-tint);color:var(--color-primary)}.chip--station{background:var(--crew-info-bg);color:var(--crew-info)}.chip--gen{background:var(--fs-departed-bg);color:var(--fs-departed)}.chip--cad{background:transparent;color:var(--color-text-secondary);box-shadow:inset 0 0 0 1px var(--color-border)}.rl-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-width:0}.rl-card__head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-bg-alt)}.rl-card__icon{width:36px;height:36px;flex:0 0 36px;border-radius:var(--radius-md);background:var(--color-primary-tint);color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center;font-size:1.125rem}.rl-card__title{display:flex;flex-direction:column;min-width:0;flex:1 1 12rem}.rl-card__title h3{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-primary);line-height:1.3}.rl-card__title span{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.rl-card__body{padding:var(--space-2) var(--space-6) var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.rl-group{display:flex;flex-direction:column;min-width:0}.rl-group__head{display:flex;align-items:baseline;gap:var(--space-2);padding:var(--space-3) 0 var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.rl-group__head b{color:var(--color-primary);font-variant-numeric:tabular-nums}.rl-item{display:grid;grid-template-columns:minmax(0,1fr) 8.5rem minmax(15rem,auto);gap:var(--space-2) var(--space-5);align-items:center;padding:var(--space-3) var(--space-4);margin:0 calc(-1 * var(--space-4));border-top:1px solid var(--color-bg-alt);border-left:3px solid transparent}.rl-group__head+.rl-item{border-top-color:var(--color-border)}.rl-item.is-block{border-left-color:var(--color-error)}.rl-item.is-out{border-left-color:var(--color-warning);background:#fffaf3}.rl-item.is-quiet .rl-item__name{color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.rl-item__main{min-width:0;display:flex;flex-direction:column;gap:3px}.rl-item__name{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.rl-item__sub{font-size:var(--font-size-xs);color:var(--color-text-secondary);overflow-wrap:anywhere}.rl-item__why{display:flex;gap:6px;align-items:center;font-size:var(--font-size-xs);color:var(--color-warning-text);font-weight:var(--font-weight-semibold)}.rl-item__state{justify-self:start}.rl-item__acts{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:var(--space-2)}.rl-step{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:0;border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);white-space:nowrap;cursor:pointer;transition:background .15s}.rl-step:hover:not(:disabled){background:var(--color-accent-deep)}.rl-step:focus-visible,.rl-alt:focus-visible,.rl-undo:focus-visible,.rl-cta:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.rl-alt{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid var(--color-primary);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap;cursor:pointer}.rl-undo{display:inline-flex;align-items:center;gap:5px;padding:5px 6px;border:0;background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap;cursor:pointer;text-decoration:underline;text-decoration-color:var(--color-border);text-underline-offset:3px}.rl-undo:hover:not(:disabled){color:var(--color-primary);text-decoration-color:currentColor}.rl-undo:disabled{opacity:.45;cursor:not-allowed}.rl-cta{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border:0;border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);white-space:nowrap;cursor:pointer;box-shadow:0 2px 8px #0f22401f}.rl-cta:hover:not(:disabled){background:var(--color-accent-deep)}.rl-cta:disabled{background:var(--fs-neutral-bg);color:var(--fs-scheduled);box-shadow:none;cursor:not-allowed}.rl-cta--quiet{background:var(--color-surface);color:var(--color-primary);box-shadow:inset 0 0 0 1.5px var(--color-primary)}.rl-muted{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.rl-banner{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text)}.rl-banner .ic{width:1.25rem;height:1.25rem;flex-basis:1.25rem;margin-top:1px}.rl-banner b{display:block;font-size:var(--font-size-base)}.rl-banner--block{background:var(--color-error-bg);box-shadow:inset 4px 0 0 var(--color-error)}.rl-banner--block .ic{color:var(--color-error)}.rl-banner--block b{color:var(--color-text)}.rl-banner--pass{background:var(--color-success-bg);box-shadow:inset 4px 0 0 var(--color-success)}.rl-banner--pass .ic,.rl-banner--pass b{color:var(--color-success)}.rl-banner--warn{background:var(--color-warning-bg);box-shadow:inset 4px 0 0 var(--color-warning)}.rl-banner--warn .ic,.rl-banner--warn b{color:var(--color-warning-text)}.rl-checks{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-2)}.rl-gate{list-style:none;display:flex;flex-direction:column;gap:var(--space-2)}.rl-gate li{display:grid;grid-template-columns:1.25rem minmax(0,1fr);gap:2px var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text);border-left:3px solid transparent}.rl-gate li .ic{margin-top:3px}.rl-gate .is-block{background:var(--color-error-bg);border-left-color:var(--color-error)}.rl-gate .is-block .ic{color:var(--color-error)}.rl-gate .is-warn{background:var(--color-warning-bg);border-left-color:var(--color-warning)}.rl-gate .is-warn .ic{color:var(--color-warning-text)}.rl-gate small{grid-column:2;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.rl-gate-h{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin-top:var(--space-1)}.rl-ofps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(20rem,100%),1fr));gap:var(--space-4)}.rl-ofp{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;min-width:0}.rl-ofp__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-1) var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-bg-alt)}.rl-ofp__head b{color:var(--color-primary);font-variant-numeric:tabular-nums}.rl-ofp__head span{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.rl-ofp__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.rl-ofp__cell{padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:2px;min-width:0}.rl-ofp__cell+.rl-ofp__cell{border-left:1px solid var(--color-bg-alt)}.rl-ofp__cell dt{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.rl-ofp__cell dd{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-primary);font-variant-numeric:tabular-nums;line-height:1.25}.rl-ofp__cell dd.is-none{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.prov{align-self:flex-start;margin-top:2px;padding:0 6px;border-radius:var(--radius-sm);font-size:.6875rem;font-weight:var(--font-weight-semibold);white-space:nowrap}.prov--ofp{background:var(--fs-neutral-bg);color:var(--fs-scheduled)}.prov--entered{background:var(--crew-info-bg);color:var(--crew-info)}.rl-ofp__foot{padding:var(--space-2) var(--space-4);border-top:1px solid var(--color-bg-alt);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.rl-crew td.mask{letter-spacing:.06em;font-variant-numeric:tabular-nums}.rl-print{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:var(--space-2);counter-reset:pk}.rl-print li{counter-increment:pk;display:flex;gap:var(--space-2);align-items:baseline;font-size:var(--font-size-sm)}.rl-print li:before{content:counter(pk);flex:0 0 1.375rem;height:1.375rem;border-radius:50%;background:var(--color-primary-tint);color:var(--color-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);display:inline-flex;align-items:center;justify-content:center}.rl-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.rl-bar .spacer{flex:1}.rl-hand{display:flex;flex-direction:column;gap:var(--space-3);font-size:var(--font-size-sm)}.rl-handed{display:flex;gap:var(--space-3);align-items:center}.rl-avatar{width:40px;height:40px;flex:0 0 40px;border-radius:50%;background:var(--color-primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}@media(max-width:640px){.rl-page{padding:var(--space-4)}.rl-band{padding:var(--space-5) var(--space-5) 0;border-radius:var(--radius-md)}.rl-route{font-size:1.75rem}.rl-route .ic{width:1.125rem;height:1.125rem;flex-basis:1.125rem}.rl-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.rl-facts dd{white-space:normal}.rl-legs{margin:0 calc(-1 * var(--space-5));grid-template-columns:1fr}.rl-leg{padding:var(--space-3) var(--space-5)}.rl-status{grid-template-columns:1fr}.rl-status>div{padding:var(--space-4)}.rl-status>div+div{border-left:0;border-top:1px solid var(--color-bg-alt)}.rl-steps li{font-size:.6875rem}.rl-card__head{padding:var(--space-3) var(--space-4)}.rl-card__body{padding:var(--space-2) var(--space-4) var(--space-4)}.rl-item{grid-template-columns:minmax(0,1fr) auto;padding:var(--space-3);margin:0 calc(-1 * var(--space-3))}.rl-item__state{justify-self:end;align-self:start}.rl-item__acts{grid-column:1 / -1;justify-content:flex-start}.rl-step,.rl-alt{min-height:2.75rem;padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm)}.rl-undo{min-height:2.75rem;font-size:var(--font-size-sm)}.rl-ofp__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rl-ofp__cell:nth-child(3){border-left:0}.rl-ofp__cell:nth-child(n+3){border-top:1px solid var(--color-bg-alt)}.rl-bar>.rl-cta{flex:1 1 100%;min-height:3rem}.rl-bar .spacer{display:none}}.pc-hero-flights{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-accent);font-variant-numeric:tabular-nums}.pc-hero-route{display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--space-2);font-size:1.875rem;font-weight:var(--font-weight-semibold);line-height:1.1;letter-spacing:.03em}.pc-hero-route .ic{width:1.125rem;height:1.125rem;flex-basis:1.125rem;color:var(--crew-on-navy-muted)}.pc-hero-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);line-height:1.2}.pc-hero-sub{font-size:var(--font-size-sm);color:var(--crew-on-navy-muted)}.pc-hero-facts{display:flex;flex-wrap:wrap;gap:var(--space-2)}.pc-hero-facts span{padding:2px 10px;border-radius:var(--radius-pill);background:#ffffff1a;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap}.pc-back{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;background:none;border:0;color:var(--crew-on-navy-muted);font-size:var(--font-size-sm);min-height:44px;cursor:pointer}.pc-day{display:flex;flex-direction:column;gap:var(--space-2)}.pc-rel{display:grid;grid-template-columns:4px minmax(0,1fr) auto;gap:var(--space-1) var(--space-3);align-items:center;padding:var(--space-4) var(--space-4) var(--space-4) 0;border:1px solid var(--crew-rule);border-radius:var(--radius-lg);background:var(--color-surface);text-align:left;min-height:44px;cursor:pointer;width:100%;overflow:hidden}.pc-rel:before{content:"";grid-row:1 / span 3;align-self:stretch;margin:calc(-1 * var(--space-4)) 0;background:var(--crew-rule)}.pc-rel.is-ready:before{background:var(--color-accent)}.pc-rel__label{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-primary);font-variant-numeric:tabular-nums}.pc-rel__sub{grid-column:2;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.pc-rel .pill{grid-column:2;justify-self:start}.pc-rel__chev{grid-row:1 / span 3;grid-column:3;color:var(--color-primary);font-size:1.25rem}.pc-sec{display:flex;flex-direction:column;gap:var(--space-3);padding-bottom:var(--space-5);border-bottom:1px solid var(--crew-rule)}.pc-sec:last-child{border-bottom:0}.pc-sec h3{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-primary)}.pc-sec h3 .ic{color:var(--color-primary)}.pc-kv{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:var(--space-1) var(--space-4);font-size:var(--font-size-sm)}.pc-kv dt{color:var(--color-text-secondary)}.pc-kv dd{font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.pc-crew{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:var(--space-2)}.pc-crew li{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-bg-alt);font-size:var(--font-size-sm)}.pc-crew .rk{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-primary);min-width:2.25rem}.pc-ack{list-style:none;display:flex;flex-direction:column;gap:var(--space-2)}.pc-ack li{display:grid;grid-template-columns:1.25rem minmax(0,1fr);gap:2px var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-warning-bg);border-left:3px solid var(--color-warning);font-size:var(--font-size-sm);color:var(--color-text)}.pc-ack li .ic{color:var(--color-warning-text);margin-top:3px}.pc-ack li small{grid-column:2;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.pc-ack li.is-acked{background:var(--color-bg-alt);border-left-color:var(--color-success)}.pc-ack li.is-acked .ic{color:var(--color-success)}.pc-legs{display:flex;flex-direction:column;gap:var(--space-3)}.pc-approve{position:sticky;bottom:0;z-index:4;display:flex;flex-direction:column;gap:var(--space-2);margin:0 calc(-1 * var(--space-4)) calc(-1 * var(--space-8));padding:var(--space-4) var(--space-4) var(--space-5);background:var(--color-surface);box-shadow:0 -6px 20px #041d301f;border-top:1px solid var(--crew-rule)}.pc-approve .rl-cta{width:100%;min-height:52px;font-size:var(--font-size-base)}.pc-approve p{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.pc-approve p.is-block{display:flex;gap:6px;align-items:flex-start;color:var(--color-text);font-weight:var(--font-weight-medium)}.pc-approve p.is-block .ic{color:var(--color-error);margin-top:2px}.pc-done{display:flex;gap:var(--space-3);align-items:center;padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-success);color:#fff;font-size:var(--font-size-sm)}.pc-done .ic{width:1.75rem;height:1.75rem;flex-basis:1.75rem}.pc-done b{display:block;font-size:var(--font-size-lg)}.pc-note{display:flex;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--crew-info-bg);color:var(--crew-info);font-size:var(--font-size-sm)}.pc-note .ic{margin-top:3px}.pc-note.is-warn{background:var(--color-warning-bg);color:var(--color-warning-text)}.pc-cols,.pc-col{display:flex;flex-direction:column;gap:var(--space-5);min-width:0}.pc-sheet-pad{padding-bottom:0}@media(min-width:760px){.pc-cols{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:var(--space-8);align-items:start}.pc-approve{position:static;margin:0;padding:var(--space-5);border:1px solid var(--crew-rule);border-radius:var(--radius-lg);box-shadow:none}.pc-approve .rl-cta{width:auto;align-self:flex-start;padding:var(--space-3) var(--space-8)}.pc-hero-route{font-size:2.5rem}}.rl-settings td .note{display:block;font-size:.6875rem;color:var(--color-text-secondary)}.rl-settings select,.rl-settings input[type=checkbox]{font-size:var(--font-size-xs)}.rl-settings select{padding:2px 6px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff}.rl-help{font-size:var(--font-size-xs);color:var(--color-text-secondary);max-width:18rem}:root{--fs-neutral-bg: #eceff1;--fs-scheduled: #546e7a;--fs-open: #0b2a4a;--fs-open-bg: #dbe6f2;--fs-checkin: #00695c;--fs-checkin-bg: #e0f2f1;--fs-boarding: #8a5200;--fs-boarding-bg: #fff3e0;--fs-departed: #3b3ea8;--fs-departed-bg: #e8e9f7;--fs-arrived: #1b5e20;--fs-arrived-bg: #e8f5e9;--fs-completed: #455a64;--fs-delayed: #a34700;--fs-cancelled: #c62828;--fs-cancelled-bg: #fdecea;--fs-diverted: #6a1b9a;--fs-diverted-bg: #f3e5f5;--font-size-2xs: .625rem}.sched-grid-wrap{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:2rem;background:var(--color-surface);overflow-x:auto}.sched-grid-headers{display:grid;grid-template-columns:repeat(7,minmax(11rem,1fr));gap:var(--space-2)}.sched-grid-header{text-align:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}.sched-grid{display:grid;grid-template-columns:repeat(7,minmax(11rem,1fr));gap:var(--space-2);overscroll-behavior:contain}.sched-day{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:5px;min-width:44px;min-height:6rem;padding:var(--space-2) 9px 10px;border:1px solid transparent;border-radius:var(--radius-md);background:var(--color-bg-alt);text-align:left}.sched-day__hit{position:absolute;inset:0;z-index:1;width:100%;padding:0;border:0;border-radius:inherit;background:transparent;cursor:pointer;touch-action:manipulation}.sched-day__hit:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:1px}.sched-day__head,.sched-day__flights,.sched-day__count{position:relative;z-index:2;pointer-events:none}.sched-day--browse .sched-day__flights{pointer-events:auto}.sched-day:hover{border-color:var(--color-primary)}.sched-day--blank{border:none;background:transparent}.sched-day--today{border-width:2px;border-color:var(--color-accent-deep);background:var(--color-surface)}.sched-day--selected{border-width:2px;border-color:var(--color-primary);background:var(--color-surface)}.sched-day__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-1);min-height:18px}.sched-day__num{font-weight:var(--font-weight-semibold);font-size:1rem;line-height:1.2;color:var(--color-text)}.sched-day__meta{margin-left:auto;color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);white-space:nowrap}.sched-day__meta.is-cancelled{color:var(--fs-cancelled)}.sched-day__check{display:inline-flex;align-items:center;justify-content:center;flex:none;width:18px;height:18px;border-radius:50%;background:var(--color-primary);color:var(--color-surface);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);line-height:1}.sched-day__flights{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none}.sched-flight{display:block;min-width:0;padding:1px 0 1px 5px;border-left:3px solid var(--fs-scheduled);border-radius:0;font-size:.875rem;line-height:1.35;color:var(--color-text);white-space:nowrap}.sched-flight.is-selected{box-shadow:0 0 0 2px var(--color-accent)}.sched-flight__button{display:block;width:100%;min-width:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.sched-flight__button:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.sched-flight__main{display:flex;align-items:baseline;gap:4px;min-width:0}.sched-flight__route{display:block;overflow:hidden;color:var(--color-text-muted);font-size:var(--font-size-2xs);font-variant-numeric:tabular-nums;letter-spacing:.02em;text-overflow:ellipsis}.sched-flight__no{font-weight:var(--font-weight-semibold);overflow:hidden;text-overflow:ellipsis}.sched-flight__time{color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.sched-flight__route{overflow:hidden;color:var(--color-text-secondary);text-overflow:ellipsis}.sched-flight__charter{margin-left:auto;padding:0 3px;border-radius:var(--radius-sm);background:var(--color-bg-alt);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.03em}.sched-flight__code{margin-left:auto;padding:0 3px;border-radius:var(--radius-sm);background:var(--color-bg-alt);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.03em;text-decoration:none;color:var(--color-text)}.sched-flight__charter+.sched-flight__code{margin-left:3px}.sched-flight--open .sched-flight__code{background:var(--fs-open-bg);color:var(--fs-open)}.sched-flight--checkin .sched-flight__code{background:var(--fs-checkin-bg);color:var(--fs-checkin)}.sched-flight--boarding .sched-flight__code{background:var(--fs-boarding-bg);color:var(--fs-boarding)}.sched-flight--departed .sched-flight__code{background:var(--fs-departed-bg);color:var(--fs-departed)}.sched-flight--completed .sched-flight__code{background:transparent;color:var(--fs-completed);font-size:var(--font-size-sm)}.sched-flight--cancelled .sched-flight__code{background:var(--fs-cancelled-bg);color:var(--fs-cancelled)}.sched-flight--scheduled{border-left-color:var(--fs-scheduled)}.sched-flight--open{border-left-color:var(--fs-open)}.sched-flight--checkin{border-left-color:var(--fs-checkin)}.sched-flight--boarding{border-left-color:var(--fs-boarding)}.sched-flight--departed{border-left-color:var(--fs-departed)}.sched-flight--arrived{border-left-color:var(--fs-arrived)}.sched-flight--completed{border-left-color:var(--fs-completed)}.sched-flight--diverted{border-left-color:var(--fs-diverted)}.sched-flight--delayed{border-left-color:var(--fs-delayed)}.sched-flight--cancelled{border-left-color:var(--fs-cancelled)}.sched-flight--cancelled .sched-flight__no,.sched-flight--cancelled .sched-flight__time{text-decoration:line-through}.sched-day__more{padding:0 3px;font-size:var(--font-size-xs);line-height:1.35;color:var(--color-text-secondary)}.sched-day__count{display:none;align-self:flex-start;min-width:17px;padding:0 4px;border-radius:var(--radius-sm);background:var(--color-bg-alt);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:1.5;text-align:center;color:var(--color-text)}@media(max-width:640px){.sched-grid-wrap{gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-lg);overflow-x:visible}.sched-grid,.sched-grid-headers{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.sched-day{min-height:44px;padding:5px 6px 6px}.sched-day__flights,.sched-day__meta{display:none}.sched-day__count{display:block}}.admin-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.slot-paste textarea{width:100%;min-height:150px;padding:var(--space-3);white-space:pre;overflow-x:auto;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font:.875rem/1.6 ui-monospace,SFMono-Regular,Menlo,monospace}.slot-paste textarea:disabled{background:var(--color-bg-alt);cursor:not-allowed}.slot-paste .field{display:flex;flex-direction:column;gap:var(--space-1)}.slot-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:var(--space-2)}.slot-summary>div{min-width:0;padding:var(--space-3);background:var(--color-bg-alt);border-radius:var(--radius-md)}.slot-summary dt{color:var(--color-text-secondary);font-size:.6875rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.slot-summary dd{font-size:var(--font-size-xl);font-weight:700;color:var(--color-primary)}.slot-summary dd small{display:block;font-size:var(--font-size-xs);font-weight:500;color:var(--color-text-secondary);overflow-wrap:anywhere}.slot-summary .ok dd{color:var(--color-success)}.slot-summary .warn dd{color:var(--color-warning-text)}.slot-reading{margin:0;padding:0;list-style:none;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.slot-reading-row{display:grid;grid-template-columns:2.25rem minmax(0,1.15fr) minmax(0,1fr) 7.25rem;gap:var(--space-3);align-items:start;padding:var(--space-3);border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm)}.slot-reading-row:last-child{border-bottom:0}.slot-reading-row.is-head{background:var(--color-bg-alt);color:var(--color-text-secondary);padding-block:var(--space-2)}.slot-reading-no{padding-top:4px;color:var(--color-text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--font-size-xs)}.slot-reading-raw{min-width:0;overflow-x:auto;padding:var(--space-1) var(--space-2);color:#dbe8f4;background:var(--color-primary-dark);border-radius:var(--radius-sm)}.slot-reading-raw pre{margin:0;white-space:pre;font:.75rem/1.7 ui-monospace,SFMono-Regular,Menlo,monospace}.slot-reading-what{min-width:0;display:flex;flex-direction:column;gap:2px}.slot-reading-what small{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.slot-reading-legs{margin:0;padding:0;list-style:none;color:var(--color-text-secondary);font-size:var(--font-size-xs)}.slot-reading-legs strong{color:var(--color-text)}.slot-reading-act{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-1)}.slot-tier{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.slot-tier:before{content:"";width:9px;height:9px;border-radius:2px}.slot-tier--applied{color:#1c5e20}.slot-tier--applied:before{background:var(--color-success)}.slot-tier--hand{color:var(--color-warning-text)}.slot-tier--hand:before{background:var(--color-warning);border-radius:50%}.slot-tier--none{color:var(--color-error)}.slot-tier--none:before{background:var(--color-error);transform:rotate(45deg)}.slot-tier--text{color:#164f91}.slot-tier--text:before{background:#2877bd}.slot-history{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.slot-applied-box{padding:var(--space-3);background:var(--color-success-bg);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.slot-applied-box p+p{margin-top:2px;color:var(--color-text-secondary);font-size:var(--font-size-xs)}.slot-dialog fieldset.slot-times label{display:flex;flex-direction:column;gap:var(--space-1);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);grid-column:auto}.slot-replies-mount details.slot-explain{border:1px solid var(--color-border);border-radius:var(--radius-md)}.slot-fix-dialog .slot-dialog-actions{position:sticky;bottom:calc(var(--space-5) * -1);z-index:1;margin:0 calc(var(--space-5) * -1) calc(var(--space-5) * -1);padding:var(--space-3) var(--space-5);background:var(--color-surface);border-top:1px solid var(--color-border)}@media(max-width:980px){.slot-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:640px){.slot-reading-row{grid-template-columns:1.75rem minmax(0,1fr)}.slot-reading-row>.slot-reading-what,.slot-reading-row>.slot-reading-act{grid-column:2}.slot-reading-act{align-items:stretch}.slot-reading-row.is-head{display:none}.slot-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.slot-paste textarea{font-size:16px}}.slot-fix-dialog .slot-form-error{scroll-margin-bottom:160px}.roster-screen{--color-info: #164f91;--color-info-bg: #e8f2fc;--roster-weekend: #e4e9f0;--roster-f-bg: #0b3a66;--roster-f-fg: #ffffff;--roster-ns-bg: #3730a3;--roster-ns-fg: #ffffff;--roster-sb-bg: #bae6fd;--roster-sb-fg: #0c4a6e;--roster-ct-bg: #cffafe;--roster-ct-fg: #155e75;--roster-t-bg: #ddd6fe;--roster-t-fg: #4c1d95;--roster-ad-bg: #99f6e4;--roster-ad-fg: #134e4a;--roster-lv-bg: #bbf7d0;--roster-lv-fg: #14532d;--roster-ph-bg: #fbcfe8;--roster-ph-fg: #831843;--roster-off-bg: #f1f5f9;--roster-off-fg: #334155;--roster-unk-fg: #475569}.roster-screen :focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.roster-screen .num,.roster-screen .tab{font-variant-numeric:tabular-nums}.roster-screen .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.roster-screen .roster-head{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--space-3) var(--space-6)}.roster-screen .roster-head__title{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.roster-screen .roster-head__month{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-primary)}.roster-screen .roster-head__meta{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.roster-screen .roster-head__meta b{color:var(--color-text);font-weight:600}.roster-screen .roster-head__right{margin-left:auto;display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.roster-screen .pill-published{background:var(--color-success-bg);color:var(--color-success)}.roster-screen .pill-draft{background:var(--color-bg-alt);color:var(--color-text-secondary)}.roster-screen .pill-await{background:var(--color-info-bg);color:var(--color-info)}.roster-screen .banner{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.roster-screen .banner p{flex:1 1 260px}.roster-screen .alert-info{background:var(--color-info-bg);color:var(--color-info)}.roster-screen .stage-rail{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-2)}.roster-screen .stage{position:relative;display:grid;grid-template-columns:auto 1fr;gap:0 var(--space-2);align-items:start;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-width:0}.roster-screen .stage__n{grid-row:1 / 4;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:var(--font-size-xs);font-weight:700;background:var(--color-bg-alt);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.roster-screen .stage__name{font-size:var(--font-size-sm);font-weight:600;color:var(--color-primary);line-height:1.3}.roster-screen .stage__state{font-size:var(--font-size-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.roster-screen .stage__note{font-size:var(--font-size-xs);color:var(--color-text-secondary);line-height:1.35}.roster-screen .stage--applied{border-color:var(--color-success)}.roster-screen .stage--applied .stage__n{background:var(--color-success);color:#fff}.roster-screen .stage--applied .stage__state{color:var(--color-success)}.roster-screen .stage--proposed{border-color:var(--color-info);background:var(--color-info-bg)}.roster-screen .stage--proposed .stage__n{background:var(--color-info);color:#fff}.roster-screen .stage--proposed .stage__state{color:var(--color-info)}.roster-screen .stage--stale{border-color:var(--color-warning);border-style:dashed}.roster-screen .stage--stale .stage__n{background:var(--color-warning-bg);color:var(--color-warning)}.roster-screen .stage--stale .stage__state{color:var(--color-warning)}.roster-screen .stage--notrun .stage__state{color:var(--color-text-secondary)}.roster-screen .stage--unavailable{background:var(--color-error-bg);border-color:var(--color-error)}.roster-screen .stage--unavailable .stage__n{background:var(--color-surface);color:var(--color-error);border:1px solid var(--color-error)}.roster-screen .stage--unavailable .stage__state{color:var(--color-error)}.roster-screen .toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.roster-screen .toolbar__spacer{flex:1}.roster-screen .toolbar__note{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.roster-screen .run-status{display:grid;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-alt);font-size:var(--font-size-sm);color:var(--color-text)}.roster-screen .run-status__bar{position:relative;display:block;height:4px;overflow:hidden;border-radius:2px;background:var(--color-border)}.roster-screen .run-status__bar:after{content:"";position:absolute;inset:0 auto 0 0;width:35%;border-radius:2px;background:var(--color-primary);animation:run-status-slide 1.4s ease-in-out infinite}@keyframes run-status-slide{0%{transform:translate(-100%)}to{transform:translate(290%)}}.roster-screen .desktop-note{display:none}.roster-screen .legend-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2)}.roster-screen .legend-toggle{display:inline-flex;align-items:center;gap:var(--space-2);min-height:36px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm, 6px);background:var(--color-surface);color:var(--color-primary);font-size:var(--font-size-sm);font-weight:600;cursor:pointer}.roster-screen .legend-toggle:after{content:"";width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-1px,-1px)}.roster-screen .legend-toggle[aria-expanded=true]:after{transform:rotate(-135deg) translate(-1px,-1px)}@media(max-width:640px){.roster-screen .legend-toggle{min-height:44px}}.roster-screen .legend{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.roster-screen .legend span{display:inline-flex;align-items:center;gap:var(--space-1)}.roster-screen .legend .sw{display:inline-grid;place-items:center;min-width:36px;height:20px;border-radius:3px;font-weight:600;font-size:var(--font-size-xs);position:relative;padding:0 12px}.roster-screen .roster-main{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.roster-screen .roster-scroll{background:var(--color-surface)}.roster-screen .roster-grid{width:max-content;min-width:100%;font-variant-numeric:tabular-nums}.roster-screen .roster-grid thead th{padding:0;text-align:center;font-weight:600}.roster-screen .roster-grid .wk-row th{height:22px;font-size:var(--font-size-xs);color:var(--color-text-secondary);border-left:1px solid var(--color-border);text-align:left;padding-left:var(--space-1)}.roster-screen .roster-grid .dh{border-left:1px solid var(--color-border)}.roster-screen .roster-grid .dh.we{background:var(--roster-weekend)}.roster-screen .dh-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:40px;background:none;border:0;font:inherit;color:var(--color-text);cursor:pointer;line-height:1.15}.roster-screen .dh-btn:hover{background:var(--color-primary-tint)}.roster-screen .dh-btn .dow{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:500}.roster-screen .dh-btn .dnum{font-size:var(--font-size-sm);font-weight:700}.roster-screen .roster-grid .name-col{position:sticky;left:0;z-index:2;background:var(--color-surface);min-width:212px;max-width:212px;padding:0 var(--space-3);text-align:left;box-shadow:1px 0 0 var(--color-border),4px 0 6px -4px #041d3040}.roster-screen .roster-grid thead .name-col{background:var(--color-bg-alt);z-index:3;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.roster-screen .roster-grid tbody th.name-col{height:36px;border-bottom:1px solid var(--color-border);font-weight:400}.roster-screen .name-cell{display:flex;align-items:center;gap:var(--space-2);min-width:0;white-space:nowrap}.roster-screen .name-cell .rk{font-size:var(--font-size-xs);font-weight:700;color:var(--color-text-secondary);width:30px;flex:0 0 auto}.roster-screen .name-cell .nm{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;min-width:0}.roster-screen .nm-short{display:none}.roster-screen .name-cell .sid{font-size:var(--font-size-xs);color:var(--color-text-secondary);flex:0 0 auto}.roster-screen .odc{font-size:var(--font-size-xs);font-weight:700;padding:0 5px;border-radius:var(--radius-sm);background:var(--color-bg-alt);color:var(--color-text-secondary);flex:0 0 auto}.roster-screen .sec-row th.name-col,.roster-screen .sec-row td{background:var(--color-bg-alt);height:30px;font-size:var(--font-size-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary)}.roster-screen .sec-row th.name-col span{color:var(--color-text-secondary);letter-spacing:0;text-transform:none;font-weight:500;margin-left:var(--space-2)}.roster-screen .roster-grid.fit .sec-row th.name-col{position:static;width:auto;white-space:nowrap;overflow:visible;box-shadow:none}.roster-screen .roster-grid td.cell{position:relative;padding:0 2px;width:42px;min-width:42px;height:36px;text-align:center;cursor:default;font-size:var(--font-size-xs);font-weight:600;letter-spacing:-.01em;border-left:1px solid var(--color-bg-alt);color:var(--color-text)}.roster-screen .roster-grid td.cell.long{font-size:.625rem;line-height:1.1;letter-spacing:-.02em;white-space:normal;overflow-wrap:anywhere}.roster-screen .roster-grid td.cell.we{background:var(--roster-weekend)}.roster-screen .roster-grid td.cell.editable{cursor:pointer}.roster-screen .roster-grid td.cell:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:-2px;box-shadow:inset 0 0 0 4px var(--color-accent);z-index:1}.roster-screen .k-f{background:var(--roster-f-bg)!important;color:var(--roster-f-fg)!important}.roster-screen .k-ns{background:var(--roster-ns-bg)!important;color:var(--roster-ns-fg)!important}.roster-screen .k-sb{background:var(--roster-sb-bg)!important;color:var(--roster-sb-fg)!important}.roster-screen .k-t{background:var(--roster-t-bg)!important;color:var(--roster-t-fg)!important}.roster-screen .k-ad{background:var(--roster-ad-bg)!important;color:var(--roster-ad-fg)!important}.roster-screen .k-lv{background:var(--roster-lv-bg)!important;color:var(--roster-lv-fg)!important}.roster-screen .k-ph{background:var(--roster-ph-bg)!important;color:var(--roster-ph-fg)!important}.roster-screen .k-off{background:var(--roster-off-bg)!important;color:var(--roster-off-fg)!important}.roster-screen .k-unk{color:var(--roster-unk-fg)!important;box-shadow:inset 0 0 0 1px var(--roster-unk-fg);outline:1px dashed var(--roster-unk-fg);outline-offset:-4px}.roster-screen .k-ct{background:var(--roster-ct-bg)!important;color:var(--roster-ct-fg)!important;box-shadow:inset 0 -3px 0 var(--roster-ct-fg)}.roster-screen .tent{background:var(--color-surface)!important;color:var(--color-primary)!important;outline:1.5px dashed var(--color-primary);outline-offset:-4px}.roster-screen .d-add{background:var(--color-success-bg)!important}.roster-screen .d-chg{background:var(--color-warning-bg)!important}.roster-screen .d-rm{background:var(--color-error-bg)!important;color:var(--color-error)!important;text-decoration:line-through}.roster-screen .clr{background:var(--color-surface)!important;color:var(--color-text-secondary)!important;outline:1px dashed var(--color-text-secondary);outline-offset:-4px}.roster-screen .mk{position:absolute;line-height:1;font-size:9px;font-weight:700;pointer-events:none;text-decoration:none}.roster-screen .mk-pin{top:2px;left:2px;width:9px;height:9px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 1h6v2l-1 1v4l3 3v1H9v4H7v-4H3v-1l3-3V4L5 3z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 1h6v2l-1 1v4l3 3v1H9v4H7v-4H3v-1l3-3V4L5 3z'/%3E%3C/svg%3E") center / contain no-repeat}.roster-screen .mk-r{top:2px;right:2px;padding:1px 2px;border-radius:2px;background:var(--color-primary);color:var(--color-text-on-primary)}.roster-screen .mk-c{bottom:2px;right:3px;color:var(--color-info)}.roster-screen .mk-d{bottom:2px;left:3px}.roster-screen .d-add .mk-d{color:var(--color-success)}.roster-screen .d-chg .mk-d{color:var(--color-warning)}.roster-screen .d-rm .mk-d{color:var(--color-error)}.roster-screen .fl-blk{box-shadow:inset 0 0 0 2px var(--color-error)!important}.roster-screen .fl-wrn{box-shadow:inset 0 0 0 2px var(--color-warning)!important}.roster-screen .k-f.fl-blk,.roster-screen .k-ns.fl-blk{box-shadow:inset 0 0 0 2px var(--color-error),inset 0 0 0 4px #fff!important}.roster-screen .k-f.fl-wrn,.roster-screen .k-ns.fl-wrn{box-shadow:inset 0 0 0 2px var(--color-warning),inset 0 0 0 4px #fff!important}.roster-screen .fl-blk:after,.roster-screen .fl-wrn:after{content:"";position:absolute;top:0;right:0;border-style:solid;border-width:0 10px 10px 0}.roster-screen .fl-blk:after{border-color:transparent var(--color-error) transparent transparent}.roster-screen .fl-wrn:after{border-color:transparent var(--color-warning) transparent transparent}.roster-screen .hl{box-shadow:inset 0 0 0 3px var(--color-accent-deep)!important}.roster-screen .roster-grid tbody tr:hover th.name-col{background:var(--color-bg-alt)}@media(min-width:641px){.roster-screen .roster-grid.fit{--fit-name: clamp(141px, 9.17vw, 232px);width:100%;table-layout:fixed;min-width:calc(var(--fit-name) + var(--fit-days) * 30px)}.roster-screen .roster-grid.fit .name-col{width:var(--fit-name);min-width:0;max-width:none;padding:0 var(--space-2)}.roster-screen .roster-grid.fit td.cell{width:auto;min-width:0;padding:0 1px;letter-spacing:-.02em}.roster-screen .roster-grid.fit .name-cell{gap:var(--space-1)}.roster-screen .roster-grid.fit .name-cell .rk{width:32px}.roster-screen .roster-grid.fit .name-cell .nm{font-size:var(--font-size-xs)}.roster-screen .roster-grid.fit .dh-btn .dow{font-size:.6875rem}.roster-screen .roster-grid.fit .wk-row th{padding-left:2px}}@media(min-width:641px)and (max-width:1919px){.roster-screen .roster-grid.fit .name-cell .sid{display:none}}.roster-screen .card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.roster-screen .card--info{border-color:var(--color-info)}.roster-screen .card__head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3)}.roster-screen .card__head h3{margin:0!important}.roster-screen .card__head .sub{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.roster-screen .card p{font-size:var(--font-size-sm)}.roster-screen .diff-counts{display:flex;flex-wrap:wrap;gap:var(--space-2)}.roster-screen .unfilled{border-left:3px solid var(--color-error);padding-left:var(--space-3);display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--font-size-sm)}.roster-screen .unfilled ul{list-style:none;display:flex;flex-direction:column;gap:2px}.roster-screen .unfilled li{font-size:var(--font-size-sm)}.roster-screen .unfilled li b{font-weight:600}.roster-screen .unfilled li{display:flex;flex-direction:column}.roster-screen .unfilled__seat{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.roster-screen .unfilled__why{color:var(--color-text-secondary)}.roster-screen .unfilled ul.unfilled__why{gap:var(--space-1)}.roster-screen .refusals{border-left:3px solid var(--color-warning);padding-left:var(--space-3);display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--font-size-sm)}.roster-screen .refusals ul{list-style:none;display:flex;flex-direction:column;gap:var(--space-2)}.roster-screen .refusals li b{font-weight:600}.roster-screen .refusals .detail,.roster-screen .block-message{display:block;color:var(--color-text-secondary)}.roster-screen .entry-list{list-style:none;display:flex;flex-direction:column;gap:var(--space-2)}.roster-screen .entry{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);display:flex;flex-direction:column;gap:2px}.roster-screen .entry__top{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.roster-screen .entry__top b{font-weight:600}.roster-screen .entry__meta{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.roster-screen .entry--void{background:var(--color-bg-alt)}.roster-screen .entry--void .entry__top b,.roster-screen .entry--void .entry__dates{text-decoration:line-through;color:var(--color-text-secondary)}.roster-screen .entry .rowacts{margin-top:var(--space-1)}.roster-screen .mini-form{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);background:var(--color-bg-alt);border-radius:var(--radius-sm)}.roster-screen .mini-form label{font-size:var(--font-size-xs);font-weight:500;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.roster-screen .mini-form input,.roster-screen .mini-form select,.roster-screen .mini-form textarea{width:100%;padding:var(--space-2) var(--space-3);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font:inherit;font-size:var(--font-size-sm);color:var(--color-text);background:var(--color-surface)}.roster-screen .mini-form input:focus,.roster-screen .mini-form select:focus,.roster-screen .mini-form textarea:focus{border-color:var(--color-border-focus);outline:none;box-shadow:0 0 0 3px #06284314}.roster-screen .mini-form .row2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.roster-screen .mini-form .err{font-size:var(--font-size-xs);color:var(--color-error)}.roster-screen code.key{font-size:var(--font-size-xs);background:var(--color-bg-alt);padding:1px 4px;border-radius:3px;color:var(--color-primary);overflow-wrap:anywhere}.roster-screen .findings{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,.8fr);gap:var(--space-4)}.roster-screen .fcol{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.roster-screen .fcol h4{font-size:var(--font-size-sm)!important;display:flex;align-items:center;gap:var(--space-2)}.roster-screen .finding{display:grid;grid-template-columns:auto 1fr;gap:0 var(--space-3);text-align:left;width:100%;min-height:44px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-left-width:4px;border-radius:var(--radius-sm);background:var(--color-surface);font:inherit;font-size:var(--font-size-sm);color:var(--color-text);cursor:pointer}.roster-screen .finding--blk{border-left-color:var(--color-error)}.roster-screen .finding--wrn{border-left-color:var(--color-warning)}.roster-screen .finding--unev{border-left-color:var(--color-text-secondary);cursor:default}.roster-screen .unev-group{border:1px solid var(--color-border);border-left:4px solid var(--color-text-secondary);border-radius:var(--radius-sm);background:var(--color-surface);font-size:var(--font-size-sm)}.roster-screen .unev-group__summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:44px;padding:var(--space-2) var(--space-3);cursor:pointer;overflow-wrap:anywhere;list-style:none}.roster-screen .unev-group__summary::-webkit-details-marker{display:none}.roster-screen .unev-group__chevron{flex-shrink:0;width:8px;height:8px;border-right:2px solid var(--color-text-secondary);border-bottom:2px solid var(--color-text-secondary);transform:rotate(-45deg);transition:transform .15s ease}.roster-screen .unev-group[open]>.unev-group__summary .unev-group__chevron{transform:rotate(45deg)}.roster-screen .unev-group__summary .frule{flex:1}@media(prefers-reduced-motion:reduce){.roster-screen .unev-group__chevron{transition:none}}.roster-screen .unev-group__summary .admin-badge{flex-shrink:0;white-space:nowrap}.roster-screen .unev-group .finding--unev{border-width:1px 0 0;border-radius:0}.roster-screen .finding[aria-pressed=true]{background:var(--color-primary-tint);border-color:var(--color-primary)}.roster-screen .finding .fclause{font-weight:700;color:var(--color-primary);font-variant-numeric:tabular-nums}.roster-screen .finding .frule{font-weight:500}.roster-screen .finding .fwho{grid-column:2;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.roster-screen .finding .fcause{grid-column:2;color:var(--color-text);font-weight:600}.roster-screen .finding .fsev{grid-row:1 / 3;align-self:start}.roster-screen .not-compliant{font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-bg-alt)}.roster-screen .hours-bar{display:block;position:relative;height:10px;width:140px;background:var(--color-bg-alt);border-radius:2px;overflow:hidden}.roster-screen .hours-bar i{position:absolute;top:0;bottom:0}.roster-screen .hours-bar .act{left:0;background:var(--color-primary)}.roster-screen .hours-bar .proj{background:repeating-linear-gradient(-45deg,var(--color-info) 0 2px,var(--color-info-bg) 2px 5px);box-shadow:inset 0 0 0 1px var(--color-info)}.roster-screen .hrs-act{color:var(--color-primary);font-weight:700}.roster-screen .hrs-proj{color:var(--color-info);font-style:italic}.roster-screen .hours-key{display:flex;flex-wrap:wrap;gap:var(--space-4);font-size:var(--font-size-xs);color:var(--color-text-secondary);align-items:center}.roster-screen .hours-key i{display:inline-block;width:22px;height:10px;vertical-align:-1px;margin-right:4px;border-radius:2px}.roster-screen .record{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--font-size-sm)}.roster-screen .record .ev{display:flex;gap:var(--space-2);align-items:baseline}.roster-screen .record .ev:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--color-success);flex:0 0 auto;transform:translateY(-1px)}.roster-screen .record .ev.pending:before{background:var(--color-surface);box-shadow:inset 0 0 0 2px var(--color-info)}.roster-screen .authority{font-size:var(--font-size-sm);font-weight:600;color:var(--color-primary);padding:var(--space-2) var(--space-3);border-left:3px solid var(--color-accent);background:var(--color-bg-alt)}.roster-screen .blocked-reason{font-size:var(--font-size-sm);color:var(--color-error)}.roster-screen .blocked-reason ul{margin:var(--space-1) 0 0;padding-left:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.roster-screen .confirm{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border:1.5px solid var(--color-primary);border-radius:var(--radius-md);background:var(--color-bg-alt)}.roster-screen .confirm p{font-size:var(--font-size-sm)}.roster-screen .switch{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);cursor:pointer;min-height:44px}.roster-screen .switch input{width:36px;height:20px;accent-color:var(--color-primary)}.roster-screen .roster-panel{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.roster-screen .roster-panel--fom{border:2px solid var(--color-info)}.roster-screen .fom-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.roster-screen .fom-toggle{display:none!important}.roster-screen .fom-detail{display:flex;flex-direction:column;gap:var(--space-3)}.roster-screen .notice{display:inline-block;padding:2px var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600}.roster-screen .notice--warn{background:var(--color-warning-bg);color:var(--color-warning)}.roster-screen .notice--call{background:var(--color-info-bg);color:var(--color-info)}.roster-screen .notice--email{background:var(--color-bg-alt);color:var(--color-text-secondary)}.roster-screen .notice--violation{background:var(--color-error-bg);color:var(--color-error)}.roster-screen .notice+.notice{margin-top:var(--space-1)}.roster-screen .amendments-table td:nth-child(4),.roster-screen .amendments-table td:nth-child(7),.roster-screen .amendments-table td:nth-child(9){white-space:normal}.roster-screen .amendments-table .admin-badge--warning{color:var(--color-warning-text)}.roster-screen .xl-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.roster-screen .xl{border-collapse:collapse;font-family:Calibri,Segoe UI,system-ui,sans-serif;font-size:12px;font-variant-numeric:tabular-nums}.roster-screen .xl th,.roster-screen .xl td{border:1px solid #d4d4d4;padding:2px 6px;white-space:nowrap;text-align:center;color:#212121;background:#fff}.roster-screen .xl .col-letter,.roster-screen .xl .row-num{background:#eee;color:#666;font-weight:400}.roster-screen .xl .hdr{text-align:left;font-weight:700}.roster-screen .xl .hdr-sub{text-align:left}.roster-screen .xl .blk{text-align:left;font-weight:700;background:#f0f2f5}.roster-screen .xl td.left{text-align:left}.roster-screen .pop{position:fixed;z-index:250;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card-hover);padding:var(--space-2);display:grid;grid-template-columns:repeat(4,minmax(56px,1fr));gap:var(--space-1);width:272px}.roster-screen .pop h5{grid-column:1 / -1;font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:600;padding:2px 4px 4px}.roster-screen .pop button{min-height:36px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font:inherit;font-size:var(--font-size-xs);font-weight:600;cursor:pointer;color:var(--color-primary)}.roster-screen .pop button:hover{background:var(--color-primary-tint)}.roster-screen .pop .note{grid-column:1 / -1;font-size:var(--font-size-xs);color:var(--color-text-secondary);padding:2px 4px}.roster-screen .day-drawer{position:fixed;z-index:310;inset:0 0 0 auto;width:min(480px,100%);height:100dvh;background:var(--color-surface);color:var(--color-text);box-shadow:-12px 0 40px #041d3047;display:flex;flex-direction:column;animation:slidein .2s ease-out}@keyframes slidein{0%{transform:translate(24px);opacity:.4}to{transform:none;opacity:1}}.roster-screen .day-drawer__content{display:flex;flex-direction:column;gap:var(--space-4);height:100%;padding:0 var(--space-5) var(--space-6);overflow-y:auto}.roster-screen .day-drawer__src{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.roster-screen .dgroup h3{font-size:var(--font-size-sm)!important;margin:0 0 var(--space-2)!important;display:flex;gap:var(--space-2);align-items:center;color:var(--color-primary);font-weight:600}.roster-screen .dgroup ul{list-style:none;display:flex;flex-direction:column;gap:var(--space-1)}.roster-screen .dgroup li{display:flex;flex-direction:column;gap:2px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-bg-alt);font-size:var(--font-size-sm)}.roster-screen .dgroup li .who{font-weight:600}.roster-screen .dgroup li .what{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.roster-screen .dgroup--contactable h3{color:var(--color-contactable)}.roster-screen .dgroup--contactable li{background:var(--color-contactable-bg)}.roster-screen .chk{font-size:var(--font-size-xs);font-weight:600}.roster-screen .chk--ok{color:var(--color-success)}.roster-screen .chk--bad{color:var(--color-error)}.roster-screen .chk--unev{color:var(--color-text-secondary)}.roster-screen .panel-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.roster-screen .panel-bar .admin-btn-secondary{min-height:36px}.roster-screen .panel-bar .count{font-weight:500;color:var(--color-text-secondary)}.roster-screen .roster-panel__body{padding:0 var(--space-4) var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);font-size:var(--font-size-sm)}.roster-screen .panel-drawer .roster-panel__body{padding:0}.roster-screen .field{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.roster-screen .mini-form .req{text-transform:none;letter-spacing:0;font-weight:400}.roster-screen .mini-form .hint{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.roster-screen .mini-form [aria-invalid=true]{border-color:var(--color-error)}.roster-screen .mini-form .form-alert{font-size:var(--font-size-sm)}.roster-screen .mini-form .form-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.roster-screen .mini-form .form-head h4{font-size:var(--font-size-sm);color:var(--color-primary);font-weight:600}.roster-screen .mini-form fieldset{border:0;min-width:0}.roster-screen .choice{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4)}.roster-screen .choice label{display:inline-flex;align-items:center;gap:var(--space-2);min-height:36px;text-transform:none;letter-spacing:0;font-size:var(--font-size-sm);color:var(--color-text);cursor:pointer}.roster-screen .choice input{width:18px;height:18px;accent-color:var(--color-primary)}.roster-screen .month-nav{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3)}.roster-screen .month-nav__label{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-primary);min-width:9.5em;text-align:center;font-variant-numeric:tabular-nums}.roster-screen .month-nav .admin-btn-secondary{min-height:36px}.roster-screen .month-damaged{margin-top:var(--space-4);max-width:72ch}.roster-screen .month-damaged p+p{margin-top:var(--space-2)}.roster-screen .empty-month{align-items:flex-start;padding:var(--space-8) var(--space-6)}.roster-screen .empty-month h3{font-size:var(--font-size-lg)!important}.roster-screen .empty-month p{max-width:62ch}.roster-screen .empty-month .rowacts{flex-wrap:wrap}.roster-screen .pop.pop--staged{grid-template-columns:minmax(96px,auto) repeat(3,minmax(52px,1fr));width:336px}.roster-screen .pop .grp{grid-column:1;align-self:center;padding:0 4px;font-size:var(--font-size-xs);font-weight:600;color:var(--color-primary);line-height:1.25}.roster-screen .pop .grp span{display:block;color:var(--color-text-secondary);font-weight:500}.roster-screen .pop .span-rest{grid-column:2 / -1}.roster-screen .pop button[aria-current=true]{background:var(--color-primary-tint);border-color:var(--color-primary)}.roster-screen .pop button:disabled{opacity:.5;cursor:not-allowed}.roster-screen .pop .note--lv{color:var(--color-text-secondary)}.roster-screen .pop-breach ul{padding-left:1.2em}.roster-screen .swap-form{background:var(--color-bg-alt)}.roster-screen .swap-sides{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-3)}.roster-screen .swap-side{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border)!important;border-radius:var(--radius-md);background:var(--color-surface);min-width:0}.roster-screen .swap-side legend{padding:0 var(--space-1);font-size:var(--font-size-sm);font-weight:600;color:var(--color-primary)}.roster-screen .swap-side .row2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.roster-screen .roster-shows{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.roster-screen .roster-shows b{color:var(--color-text)}.roster-screen .changes{list-style:none;display:flex;flex-direction:column;gap:2px;font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}.roster-screen .changes li{overflow-wrap:anywhere}.roster-screen .swap-list{list-style:none;display:flex;flex-direction:column;gap:var(--space-3)}.roster-screen .swap{border:1px solid var(--color-border);border-left-width:4px;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);background:var(--color-surface);min-width:0}.roster-screen .swap--pending{border-left-color:var(--color-info)}.roster-screen .swap--approved{border-left-color:var(--color-success)}.roster-screen .swap--refused{border-left-color:var(--color-error)}.roster-screen .swap--withdrawn{border-left-color:var(--color-text-muted);background:var(--color-bg-alt)}.roster-screen .swap__pair{font-size:var(--font-size-sm)}.roster-screen .swap__pair b{font-weight:600}.roster-screen .swap-checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}.roster-screen .swap-checks h5{font-size:var(--font-size-xs);font-weight:600;color:var(--color-primary);margin-bottom:var(--space-1);display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.roster-screen .swap-checks .finding{cursor:default}.roster-screen .breach{border-left:3px solid var(--color-error);padding-left:var(--space-3);display:flex;flex-direction:column;gap:2px;font-size:var(--font-size-sm)}.roster-screen .breach .fclause{font-weight:700;color:var(--color-error)}.roster-screen .decision{font-size:var(--font-size-sm)}.roster-screen .swap .rowacts{flex-wrap:wrap}.roster-screen .no-perm{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.roster-screen .badge-refused{background:var(--color-error-bg);color:var(--color-error)}@media(max-width:1299px){.roster-screen .swap-checks{grid-template-columns:minmax(0,1fr)}}@media(max-width:1180px){.roster-screen .stage-rail{grid-template-columns:repeat(5,minmax(150px,1fr));overflow-x:auto}.roster-screen .findings{grid-template-columns:minmax(0,1fr)}}.roster-screen .admin-btn-sm{min-height:36px}@media(max-width:640px){.roster-screen .build-only{display:none!important}.roster-screen .desktop-note{display:block}.roster-screen .roster-grid .name-col{padding:0 var(--space-2)}.roster-screen .name-cell .sid,.roster-screen .name-cell .fn,.roster-screen .nm-full{display:none}.roster-screen .nm-short{display:inline!important}.roster-screen .name-cell .rk{width:auto}.roster-screen .roster-grid .name-col{min-width:150px;max-width:150px}.roster-screen .dh-btn{min-height:44px}.roster-screen .roster-grid td.cell{height:40px}.roster-screen .finding,.roster-screen .admin-btn-primary,.roster-screen .admin-btn-secondary,.roster-screen .admin-btn-danger{min-height:44px}.roster-screen .roster-head__right{margin-left:0}.roster-screen .panel-bar .admin-btn-secondary{flex:1 1 100%;justify-content:space-between;min-height:44px}.roster-screen .day-drawer{inset:auto 0 0;width:100%;height:auto;max-height:88dvh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;animation-name:sheetin}@keyframes sheetin{0%{transform:translateY(32px)}to{transform:none}}.roster-screen .day-drawer .movement-drawer__close{width:44px;height:44px}body.has-sheet{padding-bottom:240px}.roster-screen .pop{width:calc(100vw - 32px)}.roster-screen .roster-panel--fom{position:fixed;left:0;right:0;bottom:0;z-index:200;margin:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-height:80dvh;overflow-y:auto;box-shadow:0 -12px 32px #041d304d}.roster-screen .roster-panel--fom .admin-btn-primary,.roster-screen .roster-panel--fom .admin-btn-secondary{width:100%}.roster-screen .fom-detail:not(.open){display:none}.roster-screen .fom-toggle{display:inline-flex!important}.roster-screen .month-nav__label{min-width:0;flex:1 1 auto}.roster-screen .mini-form input,.roster-screen .mini-form select{min-height:44px}.roster-screen .mini-form .admin-btn-sm,.roster-screen .swap .admin-btn-sm,.roster-screen .roster-panel .admin-btn-sm{min-height:44px!important;padding-left:var(--space-4);padding-right:var(--space-4)}.roster-screen .choice label{min-height:44px}.roster-screen .swap-sides{grid-template-columns:minmax(0,1fr)}.roster-screen .pop button{min-height:44px}.roster-screen .pop.pop--staged{width:calc(100vw - 32px)}.roster-screen .empty-month{padding:var(--space-6) var(--space-4)}}@media(prefers-reduced-motion:reduce){.roster-screen,.roster-screen *,.roster-screen *:before,.roster-screen *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.roster-screen .rsec{display:flex;flex-direction:column;gap:var(--space-2)}.roster-screen .rsec__head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);min-height:44px;border-bottom:1px solid var(--color-border)}.roster-screen .rsec__toggle{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-2) 0 0;border:0;background:none;font:inherit;font-weight:700;font-size:var(--font-size-md, 1rem);color:var(--color-text);cursor:pointer}.roster-screen .rsec__chevron{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .15s ease}.roster-screen .rsec--open .rsec__chevron{transform:rotate(45deg)}.roster-screen .rsec__summary{display:flex;align-items:center;gap:var(--space-2);color:var(--color-text-secondary)}.roster-screen .rsec__body>.card>.card__head>h3,.roster-screen .rsec__body>.findings-filter>.card>.card__head>h3{display:none}.roster-screen .fcounts{display:flex;flex-wrap:wrap;gap:var(--space-2)}.roster-screen .fcount{min-height:44px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);font:inherit;font-size:var(--font-size-sm);color:var(--color-text);cursor:pointer}.roster-screen .fcount--blockers b{color:var(--color-error)}.roster-screen .fcount--warnings b{color:var(--color-warning, #b45309)}.roster-screen .fcount--active{border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary)}.roster-screen .findings-filter[data-level=blockers] .findings>.fcol:not(:nth-child(1)),.roster-screen .findings-filter[data-level=warnings] .findings>.fcol:not(:nth-child(2)),.roster-screen .findings-filter[data-level=unevaluated] .findings>.fcol:not(:nth-child(3)){display:none}.roster-screen .findings-filter:not([data-level=all]) .findings{grid-template-columns:1fr}.roster-screen .fpt-group{display:flex;flex-direction:column;gap:var(--space-1)}.roster-screen .fpt-head{margin:0;font:700 var(--font-size-sm) / 1.4 ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;letter-spacing:.02em;color:var(--color-text);overflow-wrap:anywhere}.roster-screen .fpt-head abbr{text-decoration:none}.roster-screen .fpt-list{display:flex;flex-direction:column;gap:var(--space-1);margin:0;padding:0;list-style:none}.roster-screen .finding.fpt-line{grid-template-columns:minmax(0,1fr);align-items:center}.roster-screen .fpt-text{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.roster-screen .fpt-detail{display:grid;grid-template-columns:auto 1fr;gap:0 var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-top:0;border-left-width:4px;border-radius:0 0 var(--radius-sm) var(--radius-sm);background:var(--color-bg-alt);font-size:var(--font-size-sm)}.roster-screen .fpt-detail.finding--blk{border-left-color:var(--color-error)}.roster-screen .fpt-detail.finding--wrn{border-left-color:var(--color-warning)}.roster-screen .fpt-detail .fclause{font-weight:700;color:var(--color-primary);font-variant-numeric:tabular-nums}.roster-screen .fpt-detail .frule{font-weight:500}.roster-screen .fpt-detail .fwho{grid-column:2;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.roster-screen .fpt-detail .fcause{grid-column:2;color:var(--color-text);font-weight:600}.roster-screen .fpt-detail .fsev{grid-row:1 / 3;align-self:start}.roster-screen .fpt-basis{margin:0;padding:var(--space-2) var(--space-3);border-top:1px solid var(--color-border);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.roster-screen .day-drawer.rs-drawer{width:min(720px,100%)}.rs-changed{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.rs-drawer h3{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-primary)}.rs-drawer .admin-form h3{width:100%;margin:0}.rs-settings{display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--radius-md)}.rs-setting{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--space-2) var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.rs-setting:last-child{border-bottom:none}.rs-setting__text{flex:1 1 16rem;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:var(--font-size-sm)}.rs-setting__name{font-weight:var(--font-weight-semibold);color:var(--color-text)}.rs-setting__value{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-primary)}.rs-setting__effect{color:var(--color-text-secondary)}.admin-form fieldset.rs-checks{border:0;display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.rs-checks legend{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--space-1)}.rs-checks__row{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4)}.admin-form .rs-checks__row label{display:inline-flex;align-items:center;gap:var(--space-2);min-height:2.25rem;font-size:var(--font-size-sm);text-transform:none;letter-spacing:0;color:var(--color-text);font-weight:var(--font-weight-normal)}.admin-form .rs-checks__row input{min-width:0;width:1.1rem;height:1.1rem}.admin-form input[aria-invalid=true]{border-color:var(--color-error)}.admin-form fieldset.rs-checks[aria-invalid=true] .rs-checks__row{outline:1.5px solid var(--color-error);outline-offset:4px;border-radius:var(--radius-sm)}.rs-field-error{font-size:var(--font-size-xs);color:var(--color-error);font-weight:var(--font-weight-medium)}.rs-confirm{display:flex;flex-direction:column;gap:var(--space-3)}.rs-confirm ul{margin-left:var(--space-5)}.rs-conflict{scroll-margin-top:6rem}.roster-screen .rs-head .roster-head__title{flex:1 1 24rem}@media(max-width:640px){.roster-screen .rs-head{position:relative}.roster-screen .rs-head .roster-head__title{flex:1 1 100%}.roster-screen .rs-head .roster-head__title h2{min-height:44px;display:flex;align-items:center;padding-right:10rem}.roster-screen .rs-head .roster-head__right{position:absolute;top:0;right:0}.rs-drawer .admin-form{padding:var(--space-4)}.rs-drawer .admin-form>div,.rs-drawer .admin-form>fieldset{flex:1 1 100%}.rs-drawer .admin-form input:not([type=checkbox]){min-height:44px}}
