.has-layout>main.roster-page{max-width:none;padding:30px 28px 100px}.roster-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:25px}.roster-heading h1{font-size:28px;letter-spacing:-.7px;margin:0}.eyebrow{color:#c3a4d5;text-transform:uppercase;font-size:10px;letter-spacing:.12em;margin:0 0 7px}.roster-toolbar{display:flex;gap:12px;align-items:center;margin-bottom:18px}.roster-toolbar>.field{width:auto;flex:1;min-width:130px;max-width:260px}.month-nav{display:flex;align-items:center;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.month-nav input{color:var(--text);background:none;border:0;font:inherit;width:164px;padding:10px 4px}.month-nav button{border:0;background:none;color:#e9d4f5;font-size:25px;width:34px;cursor:pointer}.roster-caption{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:#ff85c5}.muted,.roster-help{color:var(--muted);font-size:12px}.roster-help{margin-top:18px}#status{min-height:20px;margin:12px 0;color:#ffc0dd;font-size:13px}.roster-section{margin:0 0 25px}.roster-section>header{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px;gap:12px}.roster-section h2{font-size:16px;margin:0}.roster-section h2 small{font-weight:400;color:var(--muted);font-size:12px;margin-left:10px}.section-add{border:0;color:#e6b7f7;background:transparent;font:inherit;font-size:12px;cursor:pointer;padding:8px}.roster-scroll{overflow:auto;max-height:68vh;border:1px solid var(--line);border-radius:12px;scrollbar-color:#734787 #231b2c}.roster-table{border-collapse:separate;border-spacing:0;width:100%;font-size:12px;background:#211a2b}.roster-table th,.roster-table td{border-bottom:1px solid #362840;border-right:1px solid #30243b;text-align:center;padding:0;min-width:36px;height:46px}.roster-table thead th{position:sticky;top:0;z-index:3;background:#30223b;font-weight:500;height:52px}.roster-table th small{display:block;color:#ac96bc;font-size:10px}.roster-table .person{position:sticky;left:0;z-index:2;text-align:left;min-width:204px;max-width:204px;padding:9px 14px;background:#241c2f;box-shadow:3px 0 6px #100c1522}.roster-table thead .person{z-index:4;background:#30223b}.person a,.person span.name{color:#f3eaf7;text-decoration:none;font-size:12px;font-weight:600;display:block;overflow:hidden;text-overflow:ellipsis}.person a:hover{text-decoration:underline}.person small{font-weight:400;font-size:10px;color:#aa96b7;display:block;margin-top:3px}.roster-table .weekend{background:#2a1e34}.roster-table thead .weekend{background:#392541}.roster-table .today{box-shadow:inset 0 2px #f0188c}.roster-table .sum{min-width:82px;color:#e3c0f6;font-weight:600}.roster-table .sum small{display:block;color:#a48cae;font-weight:400}.day-button{display:block;border:0;background:transparent;width:100%;height:45px;color:#ff65b7;font-size:24px;cursor:pointer;line-height:1}.day-button:hover:not(:disabled){background:#7b356448}.day-button:disabled{cursor:default}.day-button.busy{opacity:.35}.day-button.has-shift{background:#5b2e6440}.day-button.other-shift{color:#82708e;font-size:14px}.roster-table tr:last-child td,.roster-table tr:last-child th{border-bottom:0}.empty-roster{padding:24px;color:var(--muted)}
dialog{background:#241b2f;color:var(--text);border:1px solid #614472;border-radius:18px;padding:24px;width:min(680px,calc(100% - 24px));max-height:90vh}dialog::backdrop{background:#09050db3}dialog header{display:flex;justify-content:space-between;align-items:start;gap:12px;margin-bottom:18px}dialog h2{font-size:22px;margin:0}dialog h3{font-size:16px}dialog label{display:block;font-size:12px;color:#ceb9dc;margin-bottom:12px}dialog label>.field{display:block;width:100%;margin-top:6px}dialog .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}dialog .close-dialog{font-size:25px;color:#d7bde6;background:none;border:0;cursor:pointer;line-height:1;padding:2px 6px}dialog fieldset{border:1px solid var(--line);border-radius:10px;margin:12px 0;padding:12px}dialog legend{font-size:12px;padding:0 6px}.pick-tools{display:flex;gap:6px;flex-wrap:wrap}.pick-tools input{flex:1;min-width:130px}.pick-tools .btn{font-size:11px;padding:8px}#gen-employees,#add-people{max-height:180px;overflow:auto;margin-top:10px}.employee-choice{display:flex!important;align-items:center;gap:10px;padding:8px;margin:0!important;border-bottom:1px solid #392c44}.employee-choice input{accent-color:var(--pink)}.employee-choice span{flex:1}.employee-choice small{display:block;color:var(--muted);font-size:10px}#preview{border-top:1px solid var(--line);margin-top:20px;padding-top:12px}#preview-list{max-height:200px;overflow:auto;font-size:12px;margin:12px 0}#preview-list p{border-bottom:1px solid var(--line);padding:8px 0;margin:0}#gen-status{font-size:13px;color:#ffbbd7;white-space:pre-wrap}.add-choice{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:none;color:var(--text);padding:12px;cursor:pointer}.add-choice:hover{background:#443050}
@media(max-width:759px){.has-layout>main.roster-page{padding:80px 12px 95px}.roster-heading{align-items:start;margin-bottom:18px}.roster-heading h1{font-size:22px}.roster-heading>.btn{padding:11px;font-size:12px;max-width:140px}.roster-toolbar{flex-wrap:wrap;gap:8px}.roster-toolbar .month-nav{flex:1}.month-nav input{width:145px}.roster-toolbar>.field{max-width:none;min-width:100px;width:120px}.roster-toolbar #search{flex-basis:100%}.roster-caption{font-size:11px;flex-direction:column;gap:3px}.roster-table .person{min-width:146px;max-width:146px;padding:8px}.roster-table th,.roster-table td{min-width:38px}.person a,.person span.name{font-size:11px;white-space:normal}.roster-section h2{font-size:14px}.roster-section h2 small{display:block;margin-left:0;font-size:11px}.roster-scroll{max-height:65vh}dialog{padding:18px}.roster-help{font-size:11px}}
@media(min-width:1200px){.roster-table th,.roster-table td{min-width:28px}}
.roster-table .sum{position:sticky;right:0;min-width:68px;background:#30213c;z-index:2;border-left:1px solid #654375}.roster-table thead .sum{z-index:4}@media(max-width:759px){.roster-table .sum{min-width:58px}}

.day-button.timed-shift{font-size:10px;line-height:1.5;white-space:pre;min-width:44px}.shift-actions{display:flex;gap:12px;flex-wrap:wrap}#shift-error{color:#ff9dbd}#shift-duration{min-height:22px}.roster-table .sum small{white-space:normal;max-width:90px}
