:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#172d49;background:#f0f4f9;color-scheme:light;--surface:#fff;--muted:#53657c;--line:#d8e1ed;--accent:#215ed0;--soft:#e9f0fd}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:inherit;padding:11px 16px;min-height:44px;font-weight:650}button:hover{border-color:var(--accent)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #487ffc;outline-offset:3px}button:disabled{opacity:.5;cursor:wait}a{color:var(--accent)}.top{background:#122b50;color:#fff;padding:18px max(22px,calc((100% - 1240px)/2));display:flex;align-items:center;justify-content:space-between;gap:10px}.brand{display:flex;align-items:center;gap:11px;font-size:23px;letter-spacing:-.7px}.brand b{color:#9cbeff}.top-actions{display:flex;gap:8px}.quiet{background:#ffffff12;border-color:#ffffff25;color:#fff;font-size:14px}.top .quiet:hover{border-color:#fff}main{max-width:1840px;padding:32px 22px 20px;margin:auto}.heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:26px}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:800;color:var(--accent)}h1{font-size:27px;letter-spacing:-1px;margin:7px 0 0;line-height:1.25}.publication{display:flex;flex-direction:column;gap:6px;font-size:14px}.publication span{color:var(--muted)}.publication strong{font-weight:600}.tabs{display:flex;gap:5px;background:#dfe7f2;border-radius:13px;padding:5px;width:max-content;margin-bottom:22px}.tabs button{border:0;background:transparent;padding:12px 25px}.tabs [aria-pressed=true]{background:var(--surface);color:var(--accent);box-shadow:0 2px 7px #122b5012}.toolbar{display:flex;gap:28px;justify-content:space-between;padding:22px;border:1px solid var(--line);background:var(--surface);border-radius:16px;margin-bottom:22px}.picker{display:grid;grid-template-columns:1fr 1fr;gap:9px 12px;max-width:650px;flex:1}.picker label{grid-column:1/-1}label{font-size:14px;font-weight:650;color:var(--muted)}input,select{width:100%;min-width:0;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:inherit;min-height:46px;padding:9px 12px;font-size:16px}.month-tools{min-width:260px}.month-row{display:flex;gap:8px;margin-top:9px;align-items:center}.month-row button{font-size:24px;line-height:1;padding:8px 14px}.month-row input{width:190px}.month-shortcuts{display:flex;justify-content:space-between;margin-top:4px}.text-button{border:0;background:transparent;color:var(--accent);padding:8px 2px;font-size:14px;min-height:40px}.person-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:25px 0 18px}.person-head h2{font-size:24px;letter-spacing:-.7px;margin:0 0 6px}.muted,.small{color:var(--muted);font-size:14px;line-height:1.6}.badge{display:inline-block;border-radius:6px;padding:3px 7px;background:var(--soft);color:var(--accent);font-size:12px;letter-spacing:.6px;font-weight:800}.calendar-panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px}.calendar-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.calendar-top h3{margin:0;font-size:18px;text-transform:capitalize}.stats{font-size:14px;color:var(--muted)}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.weekday{text-align:center;color:var(--muted);font-size:14px;font-weight:650;padding-bottom:6px}.day{min-height:110px;border-radius:10px;border:1px solid #172d4918;padding:12px;color:#172637;position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:10px;text-align:left;font-weight:500}.day:hover{filter:brightness(.98)}.day .num{font-size:16px;font-weight:750}.day .code{font-size:18px;font-weight:750;line-height:1.3;overflow-wrap:anywhere}.day .secondary{font-size:12px;line-height:1.3}.day.blank{background:var(--soft);border-color:transparent;min-height:110px;opacity:.5}.day.today{outline:3px solid var(--accent);outline-offset:1px}.today .num:after{content:" •";color:var(--accent)}.unassigned{background:#edf2f7}.week{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));gap:8px;overflow-x:auto;padding:4px}.week .day{min-height:100px}.week-title{display:flex;align-items:center;gap:12px;margin:24px 0 10px;font-size:18px}.table-wrap{overflow:auto;max-height:70vh;border:1px solid var(--line);border-radius:14px;background:var(--surface);overscroll-behavior:contain}.team-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:14px}.team-table th,.team-table td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:8px;text-align:center;min-width:52px;max-width:110px;height:55px;white-space:normal;overflow-wrap:anywhere}.team-table thead th{position:sticky;top:0;background:var(--surface);z-index:3;font-size:16px}.team-table thead small{display:block;font-size:12px;color:var(--muted);margin-top:4px}.team-table th:first-child{position:sticky;left:0;background:var(--surface);z-index:2;text-align:left;min-width:150px;max-width:150px;padding:12px}.team-table thead th:first-child{z-index:4}.team-table th:first-child small{display:block;font-size:12px;color:var(--muted);line-height:1.4}.team-table .today{box-shadow:inset 2px 0 var(--accent),inset -2px 0 var(--accent)}.team-table thead .today{background:var(--accent);color:white}.team-table thead .today small{color:white}.table-hint{font-size:14px;color:var(--muted);margin:10px 0}.legend-panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px;margin-top:22px}summary{font-weight:700;cursor:pointer}.legend{display:flex;flex-wrap:wrap;gap:12px 22px;margin-top:18px}.legend-item{display:flex;align-items:center;gap:8px;font-size:14px}.swatch{min-width:45px;min-height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;color:#172637;border:1px solid #172d4925;font-size:12px;font-weight:750;padding:4px}.legend-panel .small{margin-bottom:0}footer{display:flex;gap:20px;flex-wrap:wrap;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px;padding:20px 0}footer a{font-size:14px}dialog{background:var(--surface);color:inherit;border:1px solid var(--line);border-radius:18px;max-width:520px;width:calc(100% - 32px);padding:26px;line-height:1.6}dialog::backdrop{background:#0a192980}.close{float:right}.message{padding:20px;background:var(--surface);border:1px solid #f2a93b;border-radius:12px;margin-bottom:20px}.empty{padding:50px 20px;text-align:center;border:1px dashed var(--line);border-radius:14px;background:var(--surface)}.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}[hidden]{display:none!important}.day-detail{padding:15px;border:1px solid var(--line);border-radius:10px;margin-top:16px;background:var(--soft)}
@media(max-width:720px){.top{padding:14px 16px}.brand{font-size:21px}.top-actions button{padding:9px 11px}.top-actions #print{display:none}main{padding:22px 14px 14px}.heading{display:block;margin-bottom:20px}h1{font-size:24px}.publication{margin-top:15px;font-size:14px}.tabs{width:100%}.tabs button{flex:1;padding:12px 8px}.toolbar{flex-direction:column;padding:16px;gap:18px}.picker{grid-template-columns:1fr;max-width:none}.month-tools{min-width:0}.month-row input{flex:1;width:auto}.person-head{align-items:flex-start;flex-wrap:wrap;margin-top:20px}.person-head h2{font-size:22px}.person-head button{font-size:14px}.calendar-panel{padding:12px 8px}.calendar{gap:4px}.weekday{font-size:12px}.day{padding:7px 3px;min-height:89px;border-radius:8px;gap:8px}.day .code{font-size:14px;letter-spacing:-.4px}.day .num{font-size:14px}.day .secondary{font-size:12px}.day.blank{min-height:89px}.calendar-top{padding:0 4px;flex-wrap:wrap}.calendar-top h3{font-size:17px}.stats{font-size:12px}.legend-panel{padding:16px}.team-table th:first-child{min-width:110px;max-width:110px}.team-table th:first-child small{display:none}.week .day{padding:10px;min-height:105px}.week .day .code{font-size:16px}.top-actions{gap:4px}footer{gap:8px}.legend{gap:10px 16px}.heading .eyebrow{font-size:12px}}
@media(prefers-color-scheme:dark){:root{color:#e7edf6;background:#0c1728;color-scheme:dark;--surface:#15243a;--muted:#a8bad0;--line:#30415a;--accent:#92b6ff;--soft:#223755}.tabs{background:#223755}.top{background:#10233e}.day.blank{background:#223755}.unassigned{background:#eef2f7}.team-table thead .today{background:#315da7}.badge{background:#223755}.message{background:#15243a}}
@media print{.top,.tabs,.toolbar,footer,.person-head button,.table-hint,#week-section{display:none!important}body{background:white;color:black}.heading h1{display:none}main{max-width:none;padding:0}.calendar-panel,.legend-panel{break-inside:avoid}.table-wrap{max-height:none;overflow:visible;border:0}.team-table{font-size:8px;width:100%;min-width:0}.team-table th,.team-table td{min-width:0;max-width:none;padding:2px;height:28px}.team-table th:first-child{min-width:65px;max-width:65px;font-size:9px}.team-table th:first-child small{display:none}.team-table thead th{font-size:9px}.team-table th{position:static!important}.day{min-height:85px}.day,.team-table td,.swatch{print-color-adjust:exact;-webkit-print-color-adjust:exact}.calendar-panel{padding:10px}@page{size:A4 landscape;margin:10mm}}

