.roster-app{color:#102a43;background:#f3f7fc;min-height:100vh;font-family:Arial,Helvetica,sans-serif;font-size:16px}.roster-header{color:#fff;background:#0b223c;flex-wrap:wrap;align-items:center;gap:40px;padding:22px max(24px,50vw - 660px);display:flex}.roster-brand{letter-spacing:.03em;white-space:nowrap;font-size:24px}.roster-brand strong{font-weight:900}.roster-header nav{gap:25px;font-size:14px;display:flex}.roster-header nav a{padding:8px 0}.roster-header nav a[aria-current]{border-bottom:3px solid #2997ff;font-weight:700}.roster-lock{align-items:center;gap:8px;margin-left:auto;font-size:14px;display:flex}.roster-main{max-width:1368px;margin:auto;padding:36px 24px}.roster-title-row{justify-content:space-between;align-items:center;gap:20px;display:flex}.roster-eyebrow{letter-spacing:.16em;color:#0876df;margin-bottom:8px;font-size:12px;font-weight:700}.roster-title-row h1{letter-spacing:-.025em;font-size:36px;font-weight:800;line-height:1.2}.roster-period{color:#51667c;margin-top:10px;font-size:19px}.roster-actions{flex-wrap:wrap;gap:10px;display:flex}.roster-primary{color:#fff!important;background:#0869ee!important;border-color:#0869ee!important}.roster-primary:hover{background:#0052c2!important}.roster-toolbar{flex-wrap:wrap;align-items:center;gap:18px;margin:30px 0 18px;font-size:14px;display:flex}.roster-week-picker,.roster-week-picker label{align-items:center;gap:8px;display:flex}.roster-week-picker input{background:#fff;border:1px solid #cad8e7;border-radius:7px;max-width:160px;padding:8px}.roster-week-picker button{border-radius:7px;padding:7px}.roster-week-picker button:hover{background:#e2ebf7}.roster-refresh{color:#2469a9;align-items:center;gap:7px;display:flex}.roster-updated{color:#607287;margin-left:auto}.roster-days [data-slot=tabs-list]{background:#eaf1fa;border:1px solid #d4e0ee;border-radius:8px;grid-template-columns:repeat(8,1fr);width:100%;height:auto;padding:0;display:grid;overflow:hidden}.roster-days [data-slot=tabs-trigger]{height:auto;box-shadow:none;border:0;border-radius:0;padding:12px 8px;font-size:14px}.roster-days [data-slot=tabs-trigger][data-state=active]{color:#fff;background:#0869ee}.roster-filters{align-items:center;gap:12px;margin:20px 0;display:flex}.roster-filters select{background:#fff;border:1px solid #cad8e7;border-radius:7px;max-width:290px;padding:10px 35px 10px 12px;font-size:14px}.roster-add{margin-left:auto}.roster-day{background:#fff;border:1px solid #cedcea;border-radius:10px;margin-bottom:22px;overflow:hidden}.roster-day-heading{background:#f8fbff;border-bottom:1px solid #dce6f1;justify-content:space-between;align-items:center;gap:12px;padding:17px 18px;display:flex}.roster-day-heading h2{text-transform:uppercase;letter-spacing:.03em;font-size:15px;font-weight:800}.roster-day-heading button{color:#0065db;align-items:center;gap:4px;font-size:14px;display:flex}.roster-grid{grid-template-columns:105px 1.2fr 1.15fr 1.6fr .8fr 1.2fr 40px;align-items:start;gap:16px;padding:15px 18px;font-size:14px;line-height:1.5;display:grid}.roster-grid>div{overflow-wrap:anywhere;white-space:pre-wrap;min-width:0}.roster-grid-head{color:#526a81;text-transform:uppercase;letter-spacing:.06em;background:#eaf1f9;padding-top:10px;padding-bottom:10px;font-size:12px;font-weight:700}.roster-shift{position:relative}.roster-shift:nth-child(2n){background:#f2f7fd}.roster-shift.editable:hover{background:#e4f0ff}.roster-edit-overlay{z-index:1;width:100%;position:absolute;inset:0}.roster-edit-overlay:focus-visible{outline-offset:-3px;outline:3px solid #0869ee}.roster-time{font-variant-numeric:tabular-nums;font-weight:700}.roster-task small{color:#55738f;margin-top:4px;font-size:12px;display:block}.roster-vehicle{color:#0966c4}.roster-notes{color:#4e6277}.roster-empty{text-align:center;color:#516c85;background:#fff;border:1px dashed #b8cee3;border-radius:12px;flex-direction:column;align-items:center;gap:16px;padding:52px 24px;display:flex}.roster-empty h2{color:#153551;font-size:22px;font-weight:700}.roster-footer{color:#6c7d8d;letter-spacing:.04em;justify-content:space-between;gap:18px;margin:36px 0 12px;font-size:12px;display:flex}.roster-error{color:#972929;background:#fff0f0;border:1px solid #f4b1b1;border-radius:7px;margin:12px 0;padding:14px;line-height:1.5}.roster-error button{text-decoration:underline}.roster-success{color:#18643e;background:#e5f5ed;border-radius:7px;margin:12px 0;padding:12px 16px}.roster-gate{text-align:center;background:#fff;border:1px solid #cedcea;border-radius:14px;max-width:460px;margin:52px auto;padding:32px}.roster-gate-icon{color:#0968dd;background:#e8f2ff;border-radius:12px;place-items:center;width:52px;height:52px;margin:0 auto 18px;display:grid}.roster-gate h2{margin-bottom:12px;font-size:23px;font-weight:800}.roster-gate p{color:#566b7e;line-height:1.6}.roster-gate form{text-align:left;gap:12px;margin:26px 0;display:grid}.roster-gate label{font-size:14px;font-weight:700}.roster-gate input,.roster-dialog input,.roster-dialog select,.roster-dialog textarea{color:#16304a;background:#fff;border:1px solid #bdcddd;border-radius:7px;width:100%;min-width:0;padding:10px 12px;font-size:16px}.roster-gate .roster-muted{font-size:14px}.roster-dialog{color:#102a43;max-height:90dvh;overflow-y:auto;background:#fff!important;max-width:min(650px,100% - 24px)!important}.roster-form{gap:17px;display:grid}.roster-form label{gap:7px;font-size:14px;font-weight:600;display:grid}.roster-form-row{grid-template-columns:1.2fr 1fr 1fr;gap:12px;display:grid}.roster-form legend{margin-bottom:9px;font-size:14px;font-weight:600}.roster-hint{color:#5a6e81;font-size:13px;font-weight:400;line-height:1.5}.roster-hint button{color:#0969db;text-decoration:underline}.roster-chips{flex-wrap:wrap;gap:7px;margin-bottom:8px;display:flex}.roster-chips span{color:#144c89;background:#eaf2fe;border-radius:6px;align-items:center;gap:7px;padding:6px 9px;font-size:14px;display:flex}.roster-crew-input{gap:8px;display:flex}.roster-suggestions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.roster-suggestions button{border:1px solid #d0dce8;border-radius:5px;padding:4px 7px;font-size:13px}.roster-form-actions{border-top:1px solid #e0e8f1;flex-wrap:wrap;gap:10px;padding-top:18px;display:flex}.roster-form-actions button:last-child{margin-left:auto}.roster-confirm{background:#fff;border:1px solid #cedcea;border-radius:10px;justify-content:space-between;align-items:center;gap:20px;margin:24px 0;padding:24px;display:flex}.roster-confirm h2{font-size:18px;font-weight:700}.roster-confirm p{color:#5c7185;margin-top:6px;font-size:14px}.roster-confirm-list{flex-wrap:wrap;gap:8px;margin-top:15px;font-size:13px;display:flex}.roster-confirm-list span{background:#f1f4f8;border-radius:6px;align-items:center;padding:6px 9px;display:flex}.roster-confirm-list .is-confirmed{color:#18633b;background:#e4f5ea}@media (width<=1000px){.roster-grid{grid-template-columns:85px 1fr 1fr 1.4fr .8fr 40px;gap:12px}.roster-grid-head>span:nth-child(6){display:none}.roster-notes{grid-column:2/-2;font-size:13px}.roster-notes:empty{display:none}.roster-title-row{align-items:flex-start}.roster-title-row h1{font-size:30px}.roster-header{gap:24px}.roster-updated{margin-left:0}}@media (width<=640px){.roster-header{justify-content:space-between;gap:12px;padding:18px 20px}.roster-brand{font-size:20px}.roster-header nav{order:3;gap:16px;width:100%}.roster-main{padding:24px 16px}.roster-title-row{display:block}.roster-title-row h1{font-size:29px}.roster-period{font-size:16px}.roster-actions{margin-top:18px}.roster-actions button{flex:1;font-size:14px}.roster-toolbar{gap:12px;margin-top:24px}.roster-updated{width:100%;font-size:12px}.roster-days [data-slot=tabs-list]{grid-template-columns:repeat(4,1fr)}.roster-days [data-slot=tabs-trigger]{padding:10px 7px}.roster-filters{flex-wrap:wrap}.roster-filters label{flex:1;min-width:140px}.roster-filters select{width:100%;max-width:none}.roster-add{width:100%}.roster-grid-head{display:none}.roster-grid{grid-template-columns:80px minmax(0,1fr) 40px;gap:5px 12px;padding:17px 15px;display:grid}.roster-time{grid-row:1/6;font-size:14px;line-height:1.6}.roster-location{grid-area:1/2;font-size:16px;font-weight:700}.roster-task{grid-area:2/2}.roster-crew{color:#577087;grid-area:3/2;font-size:13px}.roster-vehicle{grid-area:4/2;font-size:13px}.roster-notes{grid-area:5/2;font-size:13px}.roster-shift{border-top:1px solid #e4edf6}.roster-day-heading{padding:15px}.roster-footer{flex-direction:column;gap:8px}.roster-form-row{grid-template-columns:1fr 1fr}.roster-form-row label:first-child{grid-column:1/-1}.roster-confirm{flex-direction:column;align-items:stretch}.roster-dialog{padding:22px}.roster-gate{margin-top:28px;padding:24px}.roster-week-picker{gap:3px}.roster-week-picker input{max-width:147px}.roster-week-picker button{font-size:13px}}.roster-app.lux-dark{color:#f4f4f5;background-color:#090a0d;font-family:inherit}.roster-app .roster-header{background:#111318;border-bottom:1px solid #ffffff1a;padding-top:16px;padding-bottom:16px}.roster-app .roster-brand{align-items:center;display:flex}.roster-brand img{width:auto;max-width:230px;height:48px}.roster-app .roster-main{max-width:1280px}.roster-app .roster-title-row h1{letter-spacing:-.03em;font-weight:900}.roster-app .roster-eyebrow{color:#2997ff}.roster-app .roster-period,.roster-app .roster-updated,.roster-app .roster-footer{color:#a6abb5}.roster-app .roster-primary,.roster-dialog .roster-primary{background:#2997ff!important;border-color:#2997ff!important}.roster-app .roster-primary:hover,.roster-dialog .roster-primary:hover{background:#1478d4!important}.roster-app .roster-day,.roster-app .roster-confirm,.roster-app .roster-gate{background:#10151af2;border-color:#2997ff33;border-radius:24px;box-shadow:0 18px 45px #00000026}.roster-app .roster-day-heading{background:linear-gradient(90deg,#102847dd,#10151a);border-color:#ffffff1a}.roster-app .roster-grid-head{color:#b9c3d0;background:#1c1e25}.roster-app .roster-shift:nth-child(2n){background:#14161cee}.roster-app .roster-shift{border-color:#ffffff12}.roster-app .roster-shift.editable:hover{background:#173a5e}.roster-app .roster-task small,.roster-app .roster-notes,.roster-app .roster-crew{color:#b5bdc9}.roster-app .roster-vehicle,.roster-app .roster-day-heading button,.roster-app .roster-refresh{color:#62b2ff}.roster-app .roster-days [data-slot=tabs-list]{background:#14161c;border-color:#ffffff1a}.roster-app .roster-days [data-slot=tabs-trigger][data-state=active]{background:#2997ff}.roster-app .roster-filters select,.roster-app .roster-week-picker input,.roster-app .roster-gate input{color:#f4f4f5;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#1c1e25;border-color:#ffffff26}.roster-app .roster-week-picker button:hover{background:#173a5e}.roster-app [data-slot=button][data-variant=outline]{color:#f4f4f5;background:#ffffff0d;border-color:#ffffff26}.roster-app [data-slot=button][data-variant=outline]:hover{background:#ffffff18}.roster-app .roster-empty{color:#a6abb5;background:#10151aeb;border-color:#2997ff55;border-radius:24px}.roster-app .roster-empty h2{color:#f4f4f5}.roster-app .roster-confirm p,.roster-app .roster-gate p{color:#a6abb5}.roster-app .roster-gate-icon{color:#2997ff;background:#2997ff22}.roster-app .roster-confirm-list span{color:#c5c8cf;background:#252832}.roster-app .roster-confirm-list .is-confirmed,.roster-app .roster-success{color:#6ee7b7;background:#10b98122}.roster-app .roster-error,.roster-dialog .roster-error{color:#fca5a5;background:#ef44441a;border-color:#ef44444d}.roster-dialog{--background:#10151a;--foreground:#f4f4f5;--muted-foreground:#a6abb5;--border:#ffffff26;--secondary:#252832;--accent:#252832;--accent-foreground:#fff;color:#f4f4f5!important;background:#10151a!important;border-color:#ffffff26!important;border-radius:24px!important}.roster-dialog input,.roster-dialog select,.roster-dialog textarea{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#f4f4f5!important;background:#1c1e25!important;border-color:#ffffff26!important}.roster-dialog .roster-hint{color:#a6abb5}.roster-dialog .roster-hint button{color:#62b2ff}.roster-dialog .roster-chips span{color:#93c5fd;background:#2997ff22}.roster-dialog .roster-suggestions button,.roster-dialog .roster-form-actions{border-color:#ffffff26}.roster-dialog .roster-all-jobs{align-items:center;gap:10px;display:flex}.roster-dialog .roster-all-jobs input{accent-color:#2997ff;width:18px;height:18px}.roster-location-label{justify-content:space-between;align-items:center;gap:12px;display:flex}.roster-workshop{color:#93c5fd;background:#2997ff1a;border:1px solid #2997ff66;border-radius:7px;padding:6px 12px;font-size:14px}.roster-workshop:hover{background:#2997ff33}.roster-workshop:focus-visible{outline-offset:2px;outline:2px solid #2997ff}.roster-delivery{background:#10151a;border:1px solid #2b3845;border-radius:14px;margin:24px 0;padding:24px}.roster-delivery h2{font-size:19px;font-weight:600}.roster-delivery p{color:#aab3bf;margin:8px 0}.roster-delivery-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.roster-delivery-warning{background:#332b1d;border-left:3px solid #f3b85c;padding:12px;color:#f3cf96!important}.roster-send-dialog{max-width:760px!important}.roster-send-dialog label{margin:10px 0;display:block}.roster-send-dialog select,.roster-send-dialog input:not([type=checkbox]){color:#fff;background:#1d2229;border:1px solid #40464e;border-radius:7px;width:100%;margin-top:5px;padding:10px}.roster-send-dialog details{border:1px solid #35404d;border-radius:8px;margin:10px 0;padding:12px}.roster-send-dialog summary{cursor:pointer;font-weight:600}.roster-send-options{flex-wrap:wrap;gap:8px;display:flex}.roster-recipient{border-bottom:1px solid #35404d;padding:14px 0}.roster-recipient-check{align-items:flex-start;gap:12px;display:flex!important}.roster-recipient-check input{accent-color:#2997ff;width:18px;height:18px;margin-top:5px}.roster-recipient small{color:#aab3bf;margin-top:4px;display:block}.roster-recipient pre{white-space:pre-wrap;font:inherit;margin-top:12px;line-height:1.6}.roster-whatsapp{color:#71e3a3;margin:12px 0 0;text-decoration:underline;display:inline-block}.roster-email-preview{padding:18px;line-height:1.6}.roster-contact-picker{border:1px solid #35404d;border-radius:8px;margin-bottom:16px;padding:12px}.roster-contact-picker select{width:100%}.roster-send-dialog .roster-error{color:#ffb4b4}.roster-send-dialog .roster-success{color:#8cdbad}@media (width<=600px){.roster-delivery-heading{flex-direction:column;align-items:stretch}.roster-delivery{padding:16px}.roster-send-dialog{padding:18px!important}}.roster-job-planner{background:#10151a;border:1px solid #2b3845;border-radius:14px;margin:8px 0 24px;padding:22px}.roster-planner-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.roster-planner-heading h2{margin:0 0 5px;font-size:21px;font-weight:650}.roster-planner-heading p:not(.roster-eyebrow){color:#aab3bf;font-size:13px}.roster-planner-actions{gap:8px;display:flex}.roster-planner-scroll{border:1px solid #303a46;border-radius:8px;margin:12px 0;overflow-x:auto}.roster-planner-grid{min-width:820px}.roster-planner-days,.roster-planner-row{grid-template-columns:220px repeat(7,minmax(0,1fr));display:grid}.roster-planner-days{color:#aab3bf;background:#182432;font-size:12px}.roster-planner-days>div{text-align:center;border-left:1px solid #303a46;padding:12px 4px}.roster-planner-days>span{padding:18px 12px}.roster-planner-days strong{color:#fff;font-size:13px;display:block}.roster-planner-days .is-today{background:#204667}.roster-planner-row{border-top:1px solid #303a46;min-height:64px}.roster-planner-job{text-align:left;padding:10px 12px;overflow:hidden}.roster-planner-job strong{font-size:13px;line-height:1.4;display:block}.roster-planner-job small{color:#aab3bf;margin-top:4px;font-size:11px;display:block}.roster-planner-track{grid-column:2/9;grid-template-columns:repeat(7,minmax(0,1fr));align-items:center;display:grid;position:relative}.roster-planner-cell{border-left:1px solid #27323e;grid-row:1;height:100%;min-height:64px}.roster-planner-bar{z-index:1;text-align:left;color:#fff;background:#235d8e;border-radius:5px;grid-row:1;min-width:0;margin:5px;padding:10px 8px;font-size:12px;overflow:hidden;box-shadow:inset 3px 0 #54b4ff}.roster-planner-bar span{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.roster-planner-bar[aria-pressed=true]{outline-offset:1px;outline:2px solid #fff}.planner-colour-1{background:#38586a;box-shadow:inset 3px 0 #89c8dd}.planner-colour-2{background:#4d4370;box-shadow:inset 3px 0 #b4a0ed}.planner-colour-3{background:#365d53;box-shadow:inset 3px 0 #86d2b7}.roster-planner-detail{background:#192530;border-radius:8px;margin:12px 0;padding:14px;font-size:13px}.roster-planner-detail>span{color:#aab3bf;margin-left:12px}.roster-planner-detail p{margin-top:6px}.roster-planner-empty{color:#aab3bf;padding:20px}@media (width<=600px){.roster-job-planner{padding:16px}.roster-planner-heading{flex-direction:column;align-items:flex-start}.roster-planner-actions{width:100%}}.roster-shift-type{z-index:2;background:#10151a;gap:10px;padding:8px 0;display:flex;position:sticky;top:-24px}.roster-off-selected{color:#fff!important;background:#ae5b17!important;border-color:#f8a54d!important}.roster-day-off{background:#352515!important;border-left:4px solid #f5a14b!important}.roster-day-off .roster-time,.roster-day-off .roster-task,.roster-day-off .roster-location{color:#ffc888}.roster-day-off .roster-task{font-weight:700}.roster-day-off .roster-grid{background:0 0}.roster-quick-crew{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.roster-quick-crew button{color:#c0e0ff;background:#182c40;border-color:#3b6590}.roster-quick-crew button:hover{background:#254463}.roster-suggested-crew{background:#8b5cf610;border:1px solid #8b5cf655;border-radius:9px;gap:10px;margin:0 0 14px;padding:12px;display:grid}.roster-suggested-crew>div:first-child{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.roster-suggested-crew>div:first-child>strong{color:#efe9ff;font-size:14px}.roster-suggested-crew>div:first-child>small{color:#aaa1ba;text-align:right;font-size:12px}.roster-suggested-crew-list{flex-wrap:wrap;gap:7px;display:flex}.roster-suggested-crew-list button{color:#efe9ff;text-align:left;background:#251c35;border:1px solid #8b5cf666;border-radius:8px;gap:2px;padding:8px 10px;display:grid}.roster-suggested-crew-list button:hover,.roster-suggested-crew-list button:focus-visible{background:#35264e;border-color:#a78bfa}.roster-suggested-crew-list button:disabled{opacity:.55}.roster-suggested-crew-list button span{font-size:13px;font-weight:700}.roster-suggested-crew-list button small{color:#c5b9d8;font-size:11px}@media (width<=600px){.roster-suggested-crew>div:first-child{flex-direction:column;align-items:flex-start;gap:3px}.roster-suggested-crew>div:first-child>small{text-align:left}.roster-suggested-crew-list{grid-template-columns:1fr;display:grid}.roster-suggested-crew-list button{width:100%}}.roster-calendar-buttons{z-index:2;pointer-events:none;grid-area:1/-2/auto/-1;justify-content:center;padding:0;font-size:12px;display:flex;position:relative}.roster-calendar-buttons a,.roster-calendar-buttons button{pointer-events:auto;color:#82c5ff;text-decoration:underline}.roster-contact-results{gap:4px;max-height:250px;display:grid;overflow-y:auto}.roster-contact-results button{text-align:left;background:#182431;border:1px solid #35404d;border-radius:7px;padding:10px 12px}.roster-contact-results button:hover,.roster-contact-results button:focus-visible{background:#254766}.roster-contact-results small{color:#aab3bf;display:block}.roster-person-picker{background:#152332;border:1px solid #345375;border-radius:12px;margin:16px 0;padding:20px}.roster-person-picker h2{margin-bottom:12px;font-size:20px;font-weight:600}.roster-person-picker>div{flex-wrap:wrap;gap:10px;display:flex}.roster-manual-shares table{border-collapse:collapse;width:100%;margin:12px 0}.roster-manual-shares th,.roster-manual-shares td{text-align:left;border-bottom:1px solid #35404d;padding:10px}.roster-manual-shares label,.roster-activities label{align-items:center;gap:10px;display:flex}.roster-manual-shares input,.roster-activities input{accent-color:#4cc88b;width:18px;height:18px}.manually-shared{color:#90e5b7;background:#163727}.roster-activities{background:#10151a;border:1px solid #35404d;border-radius:12px;margin:20px 0;padding:20px}.roster-activities summary{cursor:pointer;font-weight:600}.roster-activities p,.roster-activities label{margin:12px 0}.roster-shift-response{z-index:2;border-top:1px solid #ffffff12;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 18px;font-size:14px;display:flex;position:relative}.roster-shift-response>span{border-radius:6px;padding:6px 10px}.roster-shift-response .response-accepted{color:#6ee7b7;background:#10b98122}.roster-shift-response .response-declined{color:#fca5a5;background:#ef444422}.roster-shift-response .response-pending{color:#b5bdc9;background:#ffffff0d}.roster-response-manager small{white-space:pre-wrap;overflow-wrap:anywhere;max-width:500px;margin-top:5px;display:block}@media (width<=640px){.roster-shift-response-controls{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px 15px;display:grid}.roster-shift-response-controls>span,.roster-shift-response-controls>p{grid-column:1/-1}.roster-shift-response-controls>[data-slot=button]{width:100%;min-width:0}.roster-shift-response-controls>[data-slot=button]:only-of-type{grid-column:1/-1}}.roster-declined-summary{background:#10151a;border:1px solid #35404d;border-radius:14px;margin:20px 0;padding:20px 24px}.roster-declined-summary h2{font-size:19px;font-weight:700}.roster-declined-summary>p{color:#a6abb5;margin-top:8px}.roster-declined-summary.has-declines{border-color:#ef444466 #ef444466 #ef444466 #ef4444;border-left-style:solid;border-left-width:4px}.roster-declined-summary.has-declines h2{color:#fca5a5}.roster-declined-item{border-top:1px solid #ffffff1a;justify-content:space-between;align-items:center;gap:20px;margin-top:16px;padding:16px 0;display:flex}.roster-declined-item p{color:#b5bdc9;margin-top:5px;font-size:14px}.roster-declined-item small{color:#a6abb5;margin-top:8px;display:block}.roster-declined-reason{white-space:pre-wrap;overflow-wrap:anywhere}@media (width<=600px){.roster-declined-item{flex-direction:column;align-items:stretch}.roster-declined-summary{padding:16px}}.roster-decline-resolution{justify-items:end;gap:8px;display:grid}.roster-declined-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.roster-declined-actions svg{width:16px}.roster-acknowledge-decline{color:#fca5a5!important;border-color:#ef444477!important}.roster-acknowledge-decline:hover{background:#ef444422!important}.roster-replacement-dialog{max-width:min(680px,100% - 24px)!important}.roster-replacement-summary{background:#171320;border:1px solid #4d4160;border-radius:10px;gap:5px;padding:14px;display:grid}.roster-replacement-summary strong{color:#fff}.roster-replacement-summary span{color:#b9c0ca;font-size:14px}.roster-manual-replacement-message{gap:7px;display:grid}.roster-manual-replacement-message textarea{color:#fff;resize:vertical;background:#14161c;border:1px solid #455365;border-radius:8px;width:100%;padding:11px}@media (width<=760px){.roster-decline-resolution{justify-items:stretch}.roster-declined-actions{justify-content:stretch}.roster-declined-actions button{flex:180px}}@media (width<=600px){.roster-declined-actions{grid-template-columns:1fr;display:grid}.roster-declined-actions button{width:100%}}.roster-calendar-buttons .roster-calendar-icon{color:#82c5ff;cursor:pointer;background:#162633;border:1px solid #38556c;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;padding:0;text-decoration:none;display:inline-flex}.roster-calendar-buttons .roster-calendar-icon:hover,.roster-calendar-buttons .roster-calendar-icon[data-state=open]{background:#24415a}.roster-calendar-icon:focus-visible{outline-offset:3px;outline:2px solid #82c5ff}.roster-calendar-menu{color:#eef4fa;background:#10151a;border-color:#38556c}.roster-calendar-menu [role=menuitem]{cursor:pointer;min-height:40px}.roster-calendar-menu [role=menuitem]:focus{color:#fff;background:#24415a}.roster-view-range{color:#b5bdc9;justify-content:space-between;align-items:center;gap:12px;margin:12px 0;font-size:14px;display:flex}.roster-view-range button{color:#82c5ff;white-space:nowrap;background:#162633;border:1px solid #38556c;border-radius:8px;padding:8px 12px}.roster-view-range button:hover{background:#24415a}.roster-view-range button:focus-visible{outline-offset:3px;outline:2px solid #82c5ff}.roster-manager-response{text-align:left;cursor:pointer;border-radius:6px;padding:6px 10px}.roster-manager-response:hover,.roster-manager-response:focus-visible{outline-offset:2px;outline:1px solid #82c5ff}.roster-response-popover{color:#f4f4f5;background:#10151a;border-color:#38556c;width:320px;max-width:calc(100vw - 24px)}.roster-response-popover p{color:#b5bdc9;margin:8px 0;font-size:14px}.roster-response-popover label{gap:6px;margin:12px 0;font-size:14px;display:grid}.roster-response-popover textarea{background:#1c1e25;border:1px solid #38556c;border-radius:6px;min-height:65px;padding:8px}.roster-response-popover>div{flex-wrap:wrap;gap:8px;display:flex}.roster-response-popover>button{color:#82c5ff;margin-top:12px}.roster-history-button{margin-left:auto}.roster-history-list{gap:18px;display:grid}.roster-history-list li{overflow-wrap:anywhere;border-bottom:1px solid #35404d;padding:12px 0}.roster-history-list time{color:#82c5ff;font-size:13px}.roster-history-list p{white-space:pre-wrap;margin:6px 0;font-size:14px}.roster-crew-history{background:#141b23;border:1px solid #35404d;border-radius:10px;padding:14px}.roster-crew-history h3{margin-bottom:10px;font-size:15px;font-weight:600}.roster-crew-history-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.roster-crew-history-heading h3{margin-bottom:0}.roster-crew-history-heading [data-slot=button] svg{width:15px}.roster-crew-history ul{gap:10px;display:grid}.roster-crew-history li{flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:14px;display:flex}.roster-crew-history li>span{background:#ffffff0d;border-radius:5px;padding:3px 8px}.roster-crew-history li>[data-slot=button]{margin-left:auto}.roster-crew-history li>[data-slot=button] svg{width:15px}.roster-crew-history .response-declined{color:#fca5a5;background:#ef444422}.roster-crew-history .response-accepted{color:#6ee7b7;background:#10b98122}.roster-crew-history small{color:#a6abb5;overflow-wrap:anywhere;white-space:pre-wrap;width:100%}.roster-crew-history>p{margin-top:10px}@media (width<=520px){.roster-crew-history-heading{flex-direction:column;align-items:stretch}.roster-crew-history-heading [data-slot=button],.roster-crew-history li>[data-slot=button]{width:100%;margin-left:0}}.roster-shift-update-share{background:#21171a;border:1px solid #ef444466;border-radius:10px;gap:13px;margin:-2px -2px 18px;padding:16px;display:grid}.roster-shift-update-share>div:first-child p{color:#c8b7ba;font-size:14px;line-height:1.45}.roster-shift-update-share dl{border:1px solid #4f3b40;border-radius:8px;overflow:hidden}.roster-shift-update-share dl>div{border-bottom:1px solid #4f3b40;grid-template-columns:118px minmax(0,1fr);display:grid}.roster-shift-update-share dl>div:last-child{border-bottom:0}.roster-shift-update-share dt,.roster-shift-update-share dd{padding:10px 12px}.roster-shift-update-share dt{color:#b8a5aa;font-size:13px}.roster-shift-update-share dd{overflow-wrap:anywhere;align-items:center;gap:12px;min-width:0;display:flex}.roster-shift-update-share del{color:#b9bfc7;text-decoration-color:#ff3b30;text-decoration-thickness:2px}.roster-shift-update-share ins{color:#ff6b61;font-weight:800;text-decoration:none}.roster-shift-update-share>[data-slot=button]{width:max-content}.roster-shift-update-results{gap:8px;margin-top:14px;display:grid}.roster-shift-update-results>div{background:#10151a;border:1px solid #35404d;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.roster-shift-update-results span{gap:3px;display:grid}.roster-shift-update-results span small{width:auto}.roster-shift-update-results a{color:#86efac;border:1px solid #22c55e77;border-radius:6px;flex:none;padding:8px 10px;font-size:13px;font-weight:700}@media (width<=520px){.roster-shift-update-share dl>div{grid-template-columns:1fr}.roster-shift-update-share dt{padding-bottom:0}.roster-shift-update-share dd{flex-direction:column;align-items:flex-start}.roster-shift-update-share>[data-slot=button]{width:100%}.roster-shift-update-results>div{flex-direction:column;align-items:stretch}.roster-shift-update-results a{text-align:center}}.roster-crew-name{z-index:2;color:inherit;font:inherit;text-align:left;cursor:pointer;text-underline-offset:4px;background:0 0;border:0;border-radius:0;padding:2px 0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;display:inline;position:relative}.roster-crew-name.response-accepted,.roster-crew-status.response-accepted{color:#6ee7b7}.roster-crew-name.response-declined,.roster-crew-status.response-declined{color:#fca5a5}.roster-crew-name.response-pending,.roster-crew-status.response-pending{color:#e7c583}.roster-crew-name:focus-visible{outline-offset:3px;outline:2px solid #82c5ff}.roster-crew-person{white-space:nowrap;align-items:center;min-width:0;margin-bottom:4px;display:flex}.roster-crew-person:last-child{margin-bottom:0}.roster-version{color:#a6abb5;letter-spacing:0;border:1px solid #38556c;border-radius:5px;margin-left:10px;padding:3px 7px;font-size:12px;display:inline-block}.roster-crew-number{font-variant-numeric:tabular-nums;color:#a6abb5;flex:none}.roster-day-navigation{align-items:stretch;gap:6px;display:flex}.roster-day-navigation .roster-days{flex:1;min-width:0}.roster-day-navigation .roster-days [data-slot=tabs-list]{grid-template-columns:repeat(9,minmax(0,1fr))}.roster-week-arrow{color:#82c5ff;background:#14161c;border:1px solid #ffffff26;border-radius:8px;flex:0 0 36px;justify-content:center;align-items:center;display:flex}.roster-week-arrow:hover{background:#173a5e}.roster-week-arrow:focus-visible{outline-offset:2px;outline:2px solid #82c5ff}@media (width<=900px){.roster-day-navigation .roster-days [data-slot=tabs-list]{grid-template-columns:repeat(3,minmax(0,1fr))}}.roster-week-picker button:disabled,.roster-week-arrow:disabled{cursor:not-allowed;opacity:.35}.roster-week-picker button:disabled:hover,.roster-week-arrow:disabled:hover{background:0 0}.roster-crew-week-picker{background:#10151a;border:1px solid #ffffff26;border-radius:10px;padding:5px}.roster-crew-week-picker strong{text-align:center;color:#eef4fa;min-width:125px;font-size:14px}.roster-shift.crew-viewable{cursor:pointer;transition:border-color .15s,background .15s}.roster-shift.crew-viewable:hover,.roster-shift.crew-viewable:focus-visible{outline-offset:-2px;background:#162633;outline:2px solid #2997ff}.roster-open-job{font-weight:700;color:#82c5ff!important;margin-top:7px!important}.roster-shift-detail{border:1px solid #35404d;border-radius:12px;gap:0;display:grid;overflow:hidden}.roster-shift-detail>div{border-bottom:1px solid #35404d;grid-template-columns:90px 1fr;gap:14px;padding:12px 14px;display:grid}.roster-shift-detail>div:last-child{border-bottom:0}.roster-shift-detail dt{color:#a6abb5;font-size:13px}.roster-shift-detail dd{white-space:pre-wrap;overflow-wrap:anywhere}.roster-shift-links{grid-template-columns:1fr 1fr;gap:10px;margin-top:18px;display:grid}.roster-shift-links a{width:100%}@media (width<=640px){.roster-crew-week-picker{justify-content:space-between;width:100%}.roster-crew-week-picker strong{flex:1}.roster-shift-links{grid-template-columns:1fr}.roster-shift-detail>div{grid-template-columns:1fr;gap:4px}}.roster-view-actions{gap:10px;margin-left:auto;display:flex}.roster-view-actions svg{width:17px}.roster-crew-mode{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.roster-crew-mode>span{color:#a6abb5;margin-right:3px;font-size:13px}.roster-crew-mode button svg{width:15px}.roster-pencilled-selected{color:#fff!important;background:#694aa0!important;border-color:#a78bfa!important}.roster-crew-group-label{color:#a6abb5;text-transform:uppercase;letter-spacing:.07em;margin:10px 0 7px;font-size:12px;font-weight:700}.roster-dialog .roster-pencilled-chips span{color:#c4b5fd;background:#8b5cf626}.roster-chips span button{display:inline-flex}.roster-crew-status.response-pencilled{color:#c4b5fd;align-items:center;gap:4px;display:inline-flex}.response-pencilled{color:#c4b5fd}.roster-calendar{background:#10151a;border:1px solid #2b3845;border-radius:16px;margin:18px 0 28px;padding:22px;box-shadow:0 18px 45px #00000026}.roster-calendar-heading{justify-content:space-between;align-items:center;gap:18px;margin-bottom:14px;display:flex}.roster-calendar-heading h2{font-size:22px;font-weight:750}.roster-calendar-heading p:not(.roster-eyebrow){color:#aab3bf;margin-top:5px;font-size:14px}.roster-calendar-legend{flex-wrap:wrap;gap:8px;margin:10px 0 14px;display:flex}.roster-calendar-legend span,.roster-calendar-crew span{border:1px solid #0000;border-radius:6px;padding:5px 8px;font-size:12px}.roster-calendar-legend .response-accepted,.roster-calendar-crew .response-accepted{color:#6ee7b7;background:#10b98122;border-color:#10b98155}.roster-calendar-legend .response-pending,.roster-calendar-crew .response-pending{color:#f4cd81;background:#d99d3126;border-color:#d99d3155}.roster-calendar-legend .response-declined,.roster-calendar-crew .response-declined{color:#fca5a5;background:#ef444422;border-color:#ef444455}.roster-calendar-legend .response-pencilled,.roster-calendar-crew .response-pencilled{color:#c4b5fd;background:#8b5cf626;border-color:#8b5cf566}.roster-calendar-scroll{overscroll-behavior:contain;background:#0c1117;border:1px solid #303a46;border-radius:10px;max-height:72vh;overflow:auto}.roster-calendar-grid{min-height:120px;position:relative}.roster-calendar-days,.roster-calendar-row{grid-template-columns:240px 2520px;display:grid}.roster-calendar-days{z-index:12;background:#182432;border-bottom:1px solid #3b4654;height:72px;position:sticky;top:0}.roster-calendar-days>div:first-child{z-index:14;color:#aab3bf;text-transform:uppercase;letter-spacing:.07em;background:#182432;align-items:center;padding:0 15px;font-size:12px;font-weight:700;display:flex;position:sticky;left:0}.roster-calendar-day-track{height:72px;position:relative}.roster-calendar-day-track>div{text-align:center;color:#aab3bf;border-left:1px solid #3b4654;height:72px;padding:10px 10px 8px;position:absolute;top:0}.roster-calendar-day-track>div.is-today{background:#204667}.roster-calendar-day-track strong{color:#fff;font-size:14px;display:block}.roster-calendar-day-track span{margin-top:2px;font-size:12px;display:block}.roster-calendar-day-track small{color:#8290a0;justify-content:space-between;padding:0 3px;font-size:9px;display:flex;position:absolute;bottom:4px;left:0;right:0}.roster-calendar-day-track i{font-style:normal}.roster-calendar-row{border-bottom:1px solid #28323d}.roster-calendar-job{z-index:8;background:#121a23;border-right:1px solid #3b4654;align-self:stretch;padding:13px 38px 10px 14px;position:sticky;left:0;overflow:hidden}.roster-calendar-job strong{font-size:13px;line-height:1.35;display:block}.roster-calendar-job small{color:#9da9b6;margin-top:5px;font-size:11px;display:block}.roster-calendar-job a{color:#82c5ff;position:absolute;top:13px;right:13px}.roster-calendar-track{width:2520px;min-height:100%;position:relative}.roster-calendar-cell{background-image:linear-gradient(90deg,#0000 24.8%,#ffffff09 25%,#0000 25.2% 49.8%,#ffffff0c 50%,#0000 50.2% 74.8%,#ffffff09 75%,#0000 75.2%);border-left:1px solid #27323e;position:absolute;inset-block:0}.roster-calendar-cell.is-today{background-color:#16324a33}.roster-calendar-job-window{background:#2997ff0c;border:1px solid #62b2ff24;border-radius:7px;position:absolute;top:5px;bottom:5px}.roster-calendar-shift{z-index:4;color:#fff;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#59441e;border:1px solid #d99d3166;border-radius:7px;align-items:center;height:36px;display:flex;position:absolute;box-shadow:inset 3px 0 #f4cd81,0 3px 9px #0007}.roster-calendar-shift:active{cursor:grabbing}.roster-calendar-shift:focus-visible{outline-offset:2px;outline:2px solid #fff}.roster-calendar-shift>span{text-overflow:ellipsis;white-space:nowrap;pointer-events:none;min-width:0;padding:0 11px;font-size:12px;overflow:hidden}.roster-calendar-shift>span strong{font-variant-numeric:tabular-nums}.roster-calendar-shift.response-accepted{background:#1c644d;border-color:#10b98166;box-shadow:inset 3px 0 #6ee7b7,0 3px 9px #0007}.roster-calendar-shift.response-declined{background:#6a292c;border-color:#ef444466;box-shadow:inset 3px 0 #fca5a5,0 3px 9px #0007}.roster-calendar-shift.response-pencilled{background:#49366b;border-color:#8b5cf688;box-shadow:inset 3px 0 #c4b5fd,0 3px 9px #0007}.roster-calendar-shift.is-saving{opacity:.65}.roster-calendar-handle{z-index:2;cursor:ew-resize;opacity:0;background:#ffffff38;border-radius:4px;width:10px;position:absolute;top:3px;bottom:3px}.roster-calendar-shift:hover .roster-calendar-handle,.roster-calendar-shift:focus-within .roster-calendar-handle{opacity:1}.roster-calendar-handle.is-start{left:3px}.roster-calendar-handle.is-end{right:3px}.roster-calendar-popover{--popover:#10151a;--popover-foreground:#f4f4f5;width:310px;color:#f4f4f5!important;background:#10151a!important;border-color:#38556c!important}.roster-calendar-popover>p{color:#b5bdc9;margin-top:7px;font-size:13px;line-height:1.4}.roster-calendar-popover>small{color:#e7c583;margin-top:10px;display:block}.roster-calendar-crew{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.roster-calendar-empty{color:#aab3bf;padding:38px}.roster-calendar .roster-error{margin-bottom:14px}@media (width<=700px){.roster-view-actions{width:100%;margin-left:0}.roster-view-actions button{flex:1}.roster-calendar{margin-inline:-4px;padding:14px}.roster-calendar-heading{flex-direction:column;align-items:flex-start}.roster-calendar-heading button{width:100%}.roster-calendar-scroll{max-height:68vh}.roster-calendar-days,.roster-calendar-row{grid-template-columns:190px 2520px}.roster-calendar-days>div:first-child,.roster-calendar-job{width:190px}.roster-calendar-job{padding-left:11px}.roster-calendar-popover{width:min(310px,100vw - 24px)}}.roster-calendar-shift>span strong{font-variant-numeric:normal;font-weight:750}.roster-calendar-shift>span small{font-variant-numeric:tabular-nums;color:#ffffffc7;font-size:11px}.roster-calendar-shift>span small:before{content:" · "}.roster-planner-detail-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.roster-planner-services{border-top:1px solid #344351;margin-top:14px;padding-top:13px}.roster-planner-services h3{color:#eef5fb;font-size:14px;font-weight:750}.roster-planner-service-list{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px;margin-top:9px;display:grid}.roster-planner-service{background:#111a22;border:1px solid #344351;border-radius:8px;padding:11px 12px}.roster-planner-service>div{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.roster-planner-service>div>strong{color:#fff;font-size:13px;line-height:1.4}.roster-planner-service>div>span{color:#9fd2ff;background:#233f59;border-radius:999px;flex:none;padding:3px 7px;font-size:11px;font-weight:750}.roster-planner-service small{color:#91a0af;margin-top:5px;font-size:11px;line-height:1.4;display:block}.roster-planner-service p{color:#d9e1e8;white-space:pre-wrap;margin-top:7px;line-height:1.45}.roster-planner-service p.is-empty{color:#798895;font-style:italic}@media (width<=600px){.roster-planner-detail-actions>*{flex:180px}}.roster-subscription-dialog{gap:18px;display:grid}.roster-subscription-loading{color:#b5bdc9;align-items:center;gap:9px;display:flex}.roster-subscription-loading svg{width:18px}.roster-subscription-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.roster-subscription-actions>*{width:100%}.roster-subscription-link{color:#a6abb5;gap:7px;font-size:13px;display:grid}.roster-subscription-link input{font-size:13px}.roster-subscription-help{background:#141b23;border:1px solid #35404d;border-radius:10px;padding:15px}.roster-subscription-help h3{font-size:15px;font-weight:700}.roster-subscription-help p{color:#b5bdc9;margin:7px 0;font-size:14px;line-height:1.5}.roster-subscription-help a{color:#82c5ff;align-items:center;gap:6px;font-size:14px;display:inline-flex}.roster-subscription-help a svg{width:14px}.roster-subscription-private{border-top:1px solid #35404d;justify-content:space-between;align-items:center;gap:14px;padding-top:14px;display:flex}.roster-subscription-private p{color:#b5bdc9;font-size:13px}.roster-subscription-private strong{color:#eef4fa}@media (width<=640px){.roster-subscription-actions{grid-template-columns:1fr}.roster-subscription-private{flex-direction:column;align-items:stretch}}.roster-subscription-confirm{background:#172431;border:1px solid #3d5368;border-radius:10px;justify-content:space-between;align-items:center;gap:16px;padding:15px;display:flex}.roster-subscription-confirm.is-confirmed{background:#123126;border-color:#10b98166}.roster-subscription-confirm strong{color:#fff;align-items:center;gap:7px;font-size:15px;display:flex}.roster-subscription-confirm strong svg{color:#6ee7b7;width:18px}.roster-subscription-confirm small{color:#b5bdc9;margin-top:5px;font-size:13px;display:block}.roster-calendar-manager-dialog{max-width:min(980px,100% - 24px)!important}.roster-manager-feed{background:#141b23;border:1px solid #35404d;border-radius:12px;grid-template-columns:minmax(180px,1fr) minmax(330px,1.6fr);gap:12px 22px;padding:17px;display:grid}.roster-manager-feed h3,.roster-crew-subscriptions h3{font-size:17px;font-weight:700}.roster-manager-feed p,.roster-crew-subscriptions-heading p{color:#aab3bf;margin-top:5px;font-size:14px}.roster-manager-feed-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.roster-manager-feed>input{color:#b8c7d8;background:#10151a;border:1px solid #35404d;border-radius:7px;grid-column:1/-1;width:100%;padding:9px 11px;font-size:13px}.roster-crew-subscriptions{gap:12px;display:grid}.roster-crew-subscriptions-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.roster-crew-subscription-list{gap:10px;display:grid}.roster-crew-subscription-row{background:#141b23;border:1px solid #35404d;border-radius:10px;grid-template-columns:minmax(190px,.9fr) minmax(260px,1.3fr) auto;align-items:center;gap:13px;padding:14px;display:grid}.roster-crew-subscription-person{gap:5px;display:grid}.roster-crew-subscription-person>strong{color:#fff;font-size:15px}.roster-crew-subscription-person>span{border-radius:5px;width:max-content;max-width:100%;padding:4px 7px;font-size:12px}.roster-crew-subscription-person>small{color:#a6abb5;overflow-wrap:anywhere;font-size:12px}.subscription-confirmed{color:#6ee7b7;background:#10b98122}.subscription-active{color:#82c5ff;background:#2997ff22}.subscription-pending{color:#b5bdc9;background:#ffffff0d}.roster-crew-subscription-actions{flex-wrap:wrap;justify-content:flex-end;gap:7px;display:flex}.roster-crew-subscription-actions button,.roster-crew-subscription-actions a{min-width:0}.roster-crew-subscription-actions svg{width:15px}@media (width<=800px){.roster-manager-feed{grid-template-columns:1fr}.roster-manager-feed-actions{justify-content:flex-start}.roster-manager-feed>input{grid-column:auto}.roster-crew-subscription-row{grid-template-columns:1fr}.roster-crew-subscription-actions{justify-content:flex-start}.roster-crew-subscriptions-heading,.roster-subscription-confirm{flex-direction:column;align-items:stretch}}.roster-pencil-button{color:#d8c8ff!important;border-color:#8b5cf688!important}.roster-pencil-reminder{background:linear-gradient(135deg,#241b35,#10151a 55%);border:1px solid #8b5cf688;border-left:4px solid #a78bfa;border-radius:14px;margin:20px 0;padding:20px 22px;box-shadow:0 14px 36px #0003}.roster-pencil-reminder-heading h2{color:#efe9ff;align-items:center;gap:8px;margin-top:4px;font-size:20px;font-weight:800;display:flex}.roster-pencil-reminder-heading h2 svg{color:#c4b5fd;width:20px}.roster-pencil-reminder-heading>div>p:last-child{color:#b8b0c6;margin-top:7px;font-size:14px}.roster-pencil-list{gap:10px;margin-top:16px;display:grid}.roster-pencil-item{background:#12151b;border:1px solid #4d4160;border-radius:11px;grid-template-columns:minmax(190px,1fr) minmax(360px,1.5fr) auto;align-items:center;gap:14px;padding:14px;display:grid}.roster-pencil-item.is-declined{background:#29191c;border-color:#ef444466}.roster-pencil-person{gap:4px;min-width:0;display:grid}.roster-pencil-person strong{color:#fff}.roster-pencil-person span{color:#c6cbd4;overflow-wrap:anywhere;font-size:13px}.roster-pencil-person small{color:#a6abb5;overflow-wrap:anywhere;font-size:12px}.roster-pencil-person small:first-of-type{color:#d8c8ff}.roster-pencil-item.is-declined .roster-pencil-person small:first-of-type{color:#fca5a5}.roster-pencil-hotkeys,.roster-pencil-decisions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.roster-pencil-hotkeys button{background:#1b2029}.roster-pencil-decisions{justify-content:flex-end}.roster-pencil-time-toggle{background:#151d27;border:1px solid #455365;border-radius:9px;align-items:center;padding:12px 14px;gap:9px!important;display:flex!important}.roster-pencil-time-toggle input{accent-color:#8b5cf6;height:18px;width:18px!important}.roster-pencil-time-toggle svg{color:#c4b5fd;width:18px}.roster-quick-pencil-dialog{max-width:min(680px,100% - 24px)!important}.roster-quick-pencil-form{gap:16px;padding-right:2px;display:grid;overflow:auto}.roster-quick-pencil-form>label{gap:7px;display:grid}.roster-quick-pencil-form fieldset{border:1px solid #35404d;border-radius:10px;padding:15px}.roster-pencil-channel-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.roster-pencil-channel-grid button{justify-content:flex-start}.roster-quick-pencil-form select,.roster-quick-pencil-form input{color:#f4f4f5;background:#14161c;border:1px solid #35404d;border-radius:7px;width:100%;padding:10px}.roster-offer-page{color:#eef4fa;min-height:100vh}.roster-offer-page>.roster-header>span{color:#a6abb5;margin-left:auto;font-size:13px}.roster-offer-main{width:min(680px,100% - 28px);margin:0 auto;padding:48px 0 72px}.roster-offer-card{background:#10151af2;border:1px solid #35404d;border-radius:18px;padding:28px;box-shadow:0 22px 60px #0007}.roster-offer-card h1{color:#fff;margin-top:7px;font-size:clamp(27px,5vw,38px);font-weight:850;line-height:1.12}.roster-offer-intro{color:#b5bdc9;margin:12px 0 22px}.roster-offer-comment{color:#e5e7eb;gap:7px;margin-top:20px;font-size:14px;display:grid}.roster-offer-comment textarea{color:#fff;resize:vertical;background:#14161c;border:1px solid #455365;border-radius:8px;min-height:105px;padding:11px}.roster-offer-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:13px;display:grid}.roster-offer-actions button{width:100%}.roster-offer-result{border:1px solid #35404d;border-radius:11px;align-items:flex-start;gap:12px;margin-top:20px;padding:16px;display:flex}.roster-offer-result svg{flex:0 0 22px}.roster-offer-result strong{color:#fff;display:block}.roster-offer-result p{color:#b5bdc9;margin-top:4px}.roster-offer-result.accepted{background:#123126;border-color:#10b98166}.roster-offer-result.accepted svg{color:#6ee7b7}.roster-offer-result.declined{background:#321a1d;border-color:#ef444466}.roster-offer-result.declined svg{color:#fca5a5}.roster-offer-private{color:#8f98a5;border-top:1px solid #35404d;margin-top:22px;padding-top:18px;font-size:12px}.roster-offer-card .roster-shift-detail{margin-top:18px}.roster-offer-card a{color:#82c5ff;text-decoration:underline}.roster-booking-status-options{grid-template-columns:1fr 1fr;gap:9px;margin-top:10px;display:grid}.roster-booking-status-options button{color:#d5dbe3;text-align:left;background:#14161c;border:1px solid #455365;border-radius:10px;align-items:flex-start;gap:10px;padding:13px;display:flex}.roster-booking-status-options button svg{color:#8f98a5;flex:0 0 20px}.roster-booking-status-options button span{gap:3px;display:grid}.roster-booking-status-options button strong{color:#fff}.roster-booking-status-options button small{color:#a6abb5;line-height:1.35}.roster-booking-status-options button.is-selected{background:#102847;border-color:#2997ff}.roster-booking-status-options button.is-selected svg{color:#62b2ff}.roster-booking-status-options button.is-selected.quote{background:#35260f;border-color:#f59e0b}.roster-booking-status-options button.is-selected.quote svg{color:#fbbf24}.roster-pencil-item.is-available{background:#11291f;border-color:#22c55e88}.roster-pencil-item.is-available .roster-pencil-person small:first-of-type{color:#86efac}.roster-quote-waiting{color:#fbbf24;align-items:center;gap:5px;font-size:12px;font-weight:700;display:inline-flex}.roster-quote-waiting svg{width:16px}.roster-quote-banner{background:linear-gradient(135deg,#35260f,#10151a 58%);border:1px solid #f59e0b88;border-left:4px solid #f59e0b;border-radius:14px;margin:20px 0;padding:20px 22px;box-shadow:0 14px 36px #0003}.roster-quote-banner-heading{align-items:flex-start;gap:12px;display:flex}.roster-quote-banner-heading>svg{color:#fbbf24;width:24px}.roster-quote-banner-heading h2{color:#fff;margin-top:4px;font-size:20px}.roster-quote-banner-heading p:last-child{color:#c9bda8;margin-top:6px;font-size:14px}.roster-quote-ready,.roster-quote-email-problem{background:#12151b;border:1px solid #6c5325;border-radius:10px;justify-content:space-between;align-items:center;gap:14px;margin-top:14px;padding:14px;display:flex}.roster-quote-ready>div,.roster-quote-email-problem>div{gap:4px;display:grid}.roster-quote-ready>div:last-child{justify-items:end}.roster-quote-ready strong,.roster-quote-email-problem strong{color:#fff}.roster-quote-ready span{color:#e5e7eb;font-size:13px}.roster-quote-ready small,.roster-quote-email-problem small{color:#a6abb5}.roster-quote-ready a{color:#82c5ff;font-size:12px}.roster-quote-email-problem{background:#29191c;border-color:#ef444466}@media (width<=900px){.roster-pencil-item{grid-template-columns:1fr}.roster-pencil-decisions{justify-content:flex-start}.roster-pencil-hotkeys button{flex:120px}}@media (width<=640px){.roster-pencil-reminder,.roster-quote-banner{padding:16px}.roster-pencil-channel-grid,.roster-offer-actions,.roster-booking-status-options{grid-template-columns:1fr}.roster-offer-main{padding-top:26px}.roster-offer-card{padding:20px}.roster-pencil-hotkeys{grid-template-columns:1fr 1fr;display:grid}.roster-pencil-hotkeys button{width:100%}.roster-pencil-decisions button{flex:1}.roster-view-actions{grid-template-columns:1fr 1fr;display:grid}.roster-view-actions>*{width:100%}.roster-view-actions>.roster-primary{grid-column:1/-1}.roster-quote-ready,.roster-quote-email-problem{flex-direction:column;align-items:stretch}.roster-quote-ready>div:last-child{justify-items:stretch}.roster-quote-ready button,.roster-quote-email-problem button{width:100%}}.roster-header .roster-product-nav{grid-template-columns:repeat(5,minmax(0,1fr));gap:0;width:min(680px,100%);padding:4px;font-size:14px;display:grid}.roster-header .roster-product-nav a{white-space:nowrap;border-bottom:0;padding:8px 10px}.roster-header .roster-product-nav a[aria-current]{border-bottom:0;font-weight:700}.roster-header{gap:28px}@media (width<=640px){.roster-header .roster-product-nav{order:3;width:100%;font-size:11px}.roster-header .roster-product-nav a{padding:8px 4px}.roster-lock{margin-left:auto}}.roster-prepared-list{gap:10px;display:grid}.roster-prepared-list>div{background:#141b23;border:1px solid #35404d;border-radius:10px;justify-content:space-between;align-items:center;gap:14px;padding:13px 14px;display:flex}.roster-prepared-list strong{color:#fff}.roster-prepared-list a{color:#82c5ff;border:1px solid #4b6279;border-radius:7px;padding:9px 12px;font-size:14px;font-weight:700}.roster-offer-update{color:#fde68a;background:#3b2a12;border:1px solid #f59e0b88;border-radius:11px;align-items:flex-start;gap:12px;margin-bottom:18px;padding:15px;display:flex}.roster-offer-update>svg{flex:0 0 21px;margin-top:2px}.roster-offer-update strong{color:#fff;display:block}.roster-offer-update p{color:#f6d89a;margin-top:4px;font-size:14px;line-height:1.45}.roster-shift-detail>div.is-updated{background:#3b1c22}.roster-shift-detail>div.is-updated dt{color:#fda4af;font-weight:700}.roster-shift-detail dd del{color:#9ca3af;margin-bottom:5px;text-decoration-color:#f87171;text-decoration-thickness:2px;display:block}.roster-shift-detail dd ins{color:#ff7b84;font-weight:800;text-decoration:none;display:block}.roster-offer-review{color:#f8d58b;background:#2b2113;border:1px solid #f59e0b66;border-radius:10px;gap:10px;margin-top:14px;padding:14px;display:grid}.roster-offer-review button{width:max-content;max-width:100%}.roster-offer-review.is-reviewed{color:#a7f3d0;background:#123126;border-color:#10b98166;align-items:center;display:flex}.roster-offer-review.is-reviewed svg{flex:0 0 20px;width:20px}@media (width<=640px){.roster-prepared-list>div{flex-direction:column;align-items:stretch}.roster-prepared-list a,.roster-prepared-list button{text-align:center;width:100%}.roster-offer-review button{width:100%}}.roster-task-picker{gap:8px;display:grid}.roster-task-picker legend{font-size:14px;font-weight:600}.roster-task-hotkeys{flex-wrap:wrap;gap:8px;display:flex}.roster-task-hotkeys button{min-width:88px}.roster-task-picker>input{width:100%}@media (width<=480px){.roster-task-hotkeys{grid-template-columns:1fr 1fr;display:grid}.roster-task-hotkeys button{width:100%;min-width:0}}.roster-crew-person{white-space:normal;align-items:flex-start}.roster-crew-person>:not(.roster-crew-number){white-space:normal;overflow-wrap:anywhere;min-width:0;max-width:100%}.roster-crew-number{padding-top:2px}.roster-crew-status.response-pencilled{align-items:flex-start}.roster-crew-status.response-pencilled svg{flex:none;margin-top:3px}.roster-offer-reply{border-top:1px solid #35404d;margin-top:20px;padding-top:18px}.roster-offer-reply h2{color:#fff;font-size:18px;font-weight:800}.roster-offer-reply .roster-offer-comment{margin-top:13px}.roster-offer-tabs{background:#0b1016;border:1px solid #35404d;border-radius:12px;grid-template-columns:1fr 1fr;gap:6px;margin:-10px -10px 26px;padding:5px;display:grid}.roster-offer-tabs button{color:#9fa8b5;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;gap:7px;min-height:42px;padding:9px 12px;font-size:14px;font-weight:750;display:flex}.roster-offer-tabs button:hover{color:#fff;background:#18202a}.roster-offer-tabs button.is-active{color:#fff;background:#183a5d;box-shadow:0 2px 10px #0005}.roster-offer-tabs button svg{width:17px}.roster-offer-tabs button span{color:#fff;background:#2997ff;border-radius:999px;place-items:center;min-width:21px;height:21px;padding:0 6px;font-size:11px;display:inline-grid}.roster-request-list{gap:11px;display:grid}.roster-request-card{color:#c8d0da;text-align:left;cursor:pointer;background:#141b23;border:1px solid #35404d;border-radius:12px;gap:5px;width:100%;padding:16px 48px 16px 16px;display:grid;position:relative}.roster-request-card:hover,.roster-request-card:focus-visible{background:#172331;border-color:#2997ff;outline:none;box-shadow:0 0 0 2px #2997ff33}.roster-request-card.is-current{border-color:#53687d}.roster-request-card>svg{color:#82c5ff;width:20px;position:absolute;top:50%;right:15px;transform:translateY(-50%)}.roster-request-card strong{color:#fff;font-size:17px}.roster-request-card small{color:#fbbf24;margin-top:3px;font-weight:700}.roster-request-card-top{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:4px;display:flex}.roster-request-date{color:#dce8f4;font-size:13px;font-weight:750}.roster-request-job{color:#9fb7cc;font-weight:650}.roster-request-status{color:#d2dae3;background:#25303c;border-radius:999px;flex:none;padding:4px 8px;font-size:11px;font-weight:800;line-height:1.25}.roster-request-status.is-accepted,.roster-request-status.is-available{color:#86efac;background:#123d2d}.roster-request-status.is-declined{color:#fca5a5;background:#462026}.roster-request-status.is-updated{color:#fde68a;background:#493312}.roster-request-status.is-pending{color:#93c5fd;background:#172f4c}.roster-request-status.is-inactive{color:#a6abb5;background:#292d33}.roster-request-empty{color:#9fa8b5;text-align:center;border:1px dashed #455365;border-radius:12px;justify-items:center;gap:7px;padding:36px 20px;display:grid}.roster-request-empty svg{color:#82c5ff;width:30px;height:30px}.roster-request-empty strong{color:#fff}.roster-request-empty p{font-size:14px}@media (width<=640px){.roster-offer-tabs{margin:-4px -4px 22px}.roster-request-card{padding:14px 40px 14px 14px}.roster-request-card-top{flex-direction:column;align-items:flex-start}.roster-request-status{order:-1}}.roster-request-status.is-booked{color:#86efac;background:#123d2d}.roster-request-sections{gap:24px;display:grid}.roster-request-sections>section>h2{color:#fff;align-items:center;gap:8px;margin-bottom:10px;font-size:16px;font-weight:800;display:flex}.roster-request-sections>section>h2 span{color:#cbd5e1;background:#25303c;border-radius:999px;place-items:center;min-width:22px;height:22px;padding:0 6px;font-size:11px;display:inline-grid}.roster-offer-job-links{margin-top:16px}.roster-offer-job-links a{text-decoration:none}@media (width<=640px){.roster-offer-job-links{grid-template-columns:1fr}}.roster-crew-name.response-pencilled{color:#c4b5fd;align-items:flex-start;gap:4px;display:inline-flex}.roster-crew-name.response-pencilled>svg{flex:0 0 13px;margin-top:4px}.roster-crew-name.response-pencilled>span{white-space:normal;overflow-wrap:anywhere}.roster-declined-crew{background:#ef44440d;border:1px solid #ef444455;border-radius:9px;margin-top:12px;padding:12px}.roster-declined-crew>div{gap:8px;display:grid}.roster-declined-crew article{background:#ef444412;border-radius:7px;justify-content:space-between;align-items:center;gap:12px;padding:10px;display:flex}.roster-declined-crew article>span{gap:4px;min-width:0;display:grid}.roster-declined-crew strong{color:#fca5a5;font-size:14px}.roster-declined-crew small{color:#c7b1b1;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}.roster-declined-crew [data-slot=button]{flex:none}.roster-declined-crew [data-slot=button] svg{width:15px}@media (width<=520px){.roster-declined-crew article{flex-direction:column;align-items:stretch}.roster-declined-crew [data-slot=button]{width:100%}}.roster-date-reminder{color:#ff3b30;white-space:nowrap;align-self:center;margin-left:auto;font-size:15px;font-weight:750}.roster-form-actions .roster-date-reminder+button{margin-left:0}.roster-date-reminder-request{text-align:right;margin:10px 0 3px;font-size:17px}@media (width<=520px){.roster-date-reminder{text-align:center;width:100%;margin-left:0}.roster-form-actions .roster-date-reminder+button{width:100%}.roster-date-reminder-request{text-align:center}}.roster-shift-editor-header{justify-content:space-between;align-items:flex-start;gap:16px;padding-right:32px;flex-direction:row!important;display:flex!important}.roster-shift-editor-header>div{gap:7px;display:grid}.roster-shift-editor-header>button{flex:none}.roster-confirmed-contacts{background:#111820;border:1px solid #35404d;border-radius:11px;gap:11px;margin:14px 0 5px;padding:14px;display:grid}.roster-confirmed-contacts>header{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.roster-confirmed-contacts h3{color:#fff;font-size:15px;font-weight:800}.roster-confirmed-contacts header p{color:#a6abb5;margin-top:4px;font-size:13px;line-height:1.4}.roster-confirmed-contacts header button svg{width:15px}.roster-confirmed-contact-list{gap:8px;display:grid}.roster-confirmed-contact{background:#171f28;border:1px solid #344351;border-radius:9px;grid-template-columns:minmax(145px,1fr) auto;align-items:center;gap:10px;padding:11px;display:grid}.roster-confirmed-contact>div{gap:3px;min-width:0;display:grid}.roster-confirmed-contact strong{color:#fff;overflow-wrap:anywhere;font-size:14px}.roster-confirmed-contact span,.roster-confirmed-contact>small{color:#aeb8c5;overflow-wrap:anywhere;font-size:12px}.roster-confirmed-contact nav{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.roster-confirmed-contact nav a{color:#badeff;background:#172a3c;border:1px solid #46617c;border-radius:7px;align-items:center;gap:5px;min-height:34px;padding:7px 9px;font-size:12px;font-weight:750;display:inline-flex}.roster-confirmed-contact nav a:hover,.roster-confirmed-contact nav a:focus-visible{color:#fff;background:#204568;border-color:#2997ff}.roster-confirmed-contact nav a:last-child{color:#9df0c1;background:#143626;border-color:#287a55}.roster-confirmed-contact nav a:last-child:hover,.roster-confirmed-contact nav a:last-child:focus-visible{color:#fff;background:#1d5037}.roster-confirmed-contact nav svg{width:15px;height:15px}@media (width<=640px){.roster-shift-editor-header{align-items:stretch;padding-right:28px;flex-direction:column!important}.roster-shift-editor-header>button{width:100%}.roster-confirmed-contacts>header,.roster-confirmed-contact{grid-template-columns:1fr;align-items:stretch}.roster-confirmed-contacts>header{display:grid}.roster-confirmed-contact nav{grid-template-columns:1fr 1fr 1fr;justify-content:stretch;display:grid}.roster-confirmed-contact nav a{justify-content:center;padding-inline:6px}}.roster-offer-actions button[data-variant=outline],.roster-offer-job-links a[data-variant=outline]{color:#eef4fa;-webkit-text-fill-color:#eef4fa;background:#17202a;border-color:#526171}.roster-offer-actions button[data-variant=outline]:hover,.roster-offer-job-links a[data-variant=outline]:hover{color:#fff;-webkit-text-fill-color:#fff;background:#223142}.roster-offer-actions button:disabled,.roster-offer-job-links a[aria-disabled=true]{color:#aeb8c4!important;-webkit-text-fill-color:#aeb8c4!important;opacity:1!important;background:#222a33!important;border-color:#3c4753!important}.roster-offer-actions .roster-primary:disabled{color:#b9dbff!important;-webkit-text-fill-color:#b9dbff!important;background:#174c82!important}.roster-confirmed-contact-heading-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:7px;display:flex}.roster-confirmed-contact-heading-actions svg{width:15px}.roster-whatsapp-group-button{-webkit-text-fill-color:#fff;color:#fff!important;background:#157347!important;border-color:#1f9d62!important}.roster-whatsapp-group-button:hover,.roster-whatsapp-group-button:focus-visible{background:#1b8b58!important}.roster-whatsapp-group-setup{background:#10281d;border:1px solid #287a55;border-radius:10px;gap:15px;padding:16px;display:grid}.roster-whatsapp-group-setup h4{color:#fff;font-size:16px;font-weight:850}.roster-whatsapp-group-setup>div:first-child p{color:#b8c9c0;margin-top:5px;font-size:13px;line-height:1.45}.roster-whatsapp-group-setup ol{color:#d9e4de;gap:6px;padding-left:21px;font-size:13px;line-height:1.45;display:grid}.roster-whatsapp-group-field{gap:7px;display:grid}.roster-whatsapp-group-field>span{color:#fff;font-size:13px;font-weight:800}.roster-whatsapp-group-field>div:not(.roster-whatsapp-group-actions){grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:8px;display:grid}.roster-whatsapp-group-field input,.roster-whatsapp-group-field textarea{border:1px solid #3d6552;border-radius:7px;width:100%;min-width:0;font-size:14px;color:#eef8f2!important;background:#111820!important}.roster-whatsapp-group-field textarea{resize:vertical;padding:11px;line-height:1.45}.roster-whatsapp-group-crew pre{color:#eef8f2;white-space:pre-wrap;overflow-wrap:anywhere;background:#111820;border:1px solid #3d6552;border-radius:7px;min-width:0;margin:0;padding:11px;font:13px/1.55 inherit}.roster-whatsapp-group-missing{color:#fbbf24;font-size:12px;line-height:1.4}.roster-whatsapp-group-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.roster-whatsapp-group-actions svg,.roster-whatsapp-group-field button svg{width:15px}.roster-whatsapp-group-setup>.roster-success{margin:0}.roster-whatsapp-group-setup>.roster-hint{color:#aebdb5}@media (width<=640px){.roster-confirmed-contact-heading-actions{grid-template-columns:1fr 1fr;width:100%;display:grid}.roster-confirmed-contact-heading-actions button{width:100%}.roster-whatsapp-group-field>div:not(.roster-whatsapp-group-actions),.roster-whatsapp-group-crew{grid-template-columns:1fr}.roster-whatsapp-group-actions{grid-template-columns:1fr 1fr;display:grid}.roster-whatsapp-group-actions>*{width:100%}}
