:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#17233b;background:#f5f7fb;color-scheme:light;--surface:#fff;--muted:#72809a;--border:#e4e9f2;--accent:#436bd0;--hover:#edf2ff}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:1px solid var(--border);background:var(--surface);color:inherit;border-radius:10px;padding:10px 13px}button:hover{background:var(--hover)}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #91b3ff;outline-offset:2px}.shell{min-height:100vh;display:grid;grid-template-columns:245px minmax(0,1fr)}.sidebar{background:var(--surface);border-right:1px solid var(--border);padding:28px 18px;display:flex;flex-direction:column;gap:45px}.brand{display:flex;align-items:center;gap:11px;font-size:21px;font-weight:800}.brand small{display:block;font-size:9px;letter-spacing:.14em;color:var(--muted);margin-top:3px}.mark{display:grid;place-items:center;background:var(--accent);color:white;border-radius:11px;width:38px;height:38px}.sidebar nav{display:grid;gap:7px}.nav{width:100%;text-align:left;border:0;background:transparent;color:var(--muted);padding:14px;font-weight:600}.nav.active{background:var(--hover);color:var(--accent)}.sidebar-bottom{margin-top:auto;font-size:13px;color:var(--muted);line-height:1.8}.sidebar-bottom small{font-size:11px}.connection-dot{display:inline-block;width:8px;height:8px;background:#d59d4e;border-radius:50%;margin-right:5px}main{width:100%;max-width:1480px;margin:0 auto;padding:clamp(18px,3.8vw,55px)}.topbar,.top-actions,.section-head,.calendar-toolbar,.calendar-title,.button-row,.dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.topbar{margin-bottom:28px}.eyebrow{font-size:11px;letter-spacing:.16em;font-weight:800;color:#7593d6}.topbar h1{font-size:clamp(28px,3vw,38px);margin:4px 0}.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:700}.primary:hover{background:#3155b5}.page{display:none}.page.active{display:block}.hero{background:linear-gradient(110deg,#253d7a,#5477c1);border-radius:20px;color:white;padding:clamp(25px,4vw,42px);display:flex;justify-content:space-between;align-items:center}.hero .eyebrow{color:#cad9ff}.hero h2{font-size:clamp(25px,3vw,36px);margin:8px 0}.hero p{max-width:550px;line-height:1.7}.hero-btn{background:#fff;color:#28457f;font-weight:700;margin-top:10px}.hero-art{font-size:110px;opacity:.14}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:20px 0}.panel{background:var(--surface);border:1px solid var(--border);border-radius:17px;padding:24px;min-width:0}.stats .panel{display:flex;flex-direction:column;gap:13px}.stats span{font-weight:700;font-size:13px}.stats strong{font-size:23px}.stats small,.muted,footer{color:var(--muted);line-height:1.6}.panel h2,.panel h3{margin-top:0}.section-head h3{margin:0}.section-head button{border:0;color:var(--accent)}.event-list{display:grid;gap:10px;margin-top:18px}.event{display:flex;align-items:center;gap:13px;border:1px solid var(--border);padding:14px;border-radius:12px;background:var(--surface);width:100%;text-align:left}.event .event-detail{flex:1}.event small{display:block;color:var(--muted);margin-top:5px}.event-dot{height:11px;width:11px;border-radius:50%;background:#507bd4;flex-shrink:0}.event-dot.overtime{background:#e8a34b}.event-dot.training{background:#9c76d6}.event-dot.leave{background:#4cb6a0}.event-dot.other{background:#8494aa}.empty{color:var(--muted);padding:24px;text-align:center}.calendar-toolbar{margin-bottom:20px}.calendar-title h2{font-size:21px;margin:0;min-width:170px;text-align:center}.calendar-title button{font-size:17px}.view-switch{display:flex;background:var(--hover);border-radius:11px;padding:4px}.view-switch button{border:0;background:transparent}.view-switch button.selected{background:var(--surface);box-shadow:0 1px 5px #0002;font-weight:700}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--border);border-left:1px solid var(--border)}.weekday{text-align:center;padding:10px 0;color:var(--muted);font-size:12px;font-weight:700}.day{min-height:112px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:8px;overflow:hidden;cursor:pointer}.day.outside{background:color-mix(in srgb,var(--surface),var(--muted) 5%);opacity:.58}.day.today .day-number{background:var(--accent);color:#fff}.day-number{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;font-size:13px}.day-chip{display:block;width:100%;border:0;text-align:left;padding:5px 7px;margin-top:5px;border-radius:6px;background:#dfeaff;color:#24478c;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-chip.overtime{background:#fff0d7;color:#81520a}.day-chip.leave{background:#dcf6ef;color:#176f5c}.day-chip.training{background:#eee3ff;color:#6846a0}.day-chip.other{background:#e6eaf0;color:#42536b}.agenda-date{font-size:14px;color:var(--muted);font-weight:750;margin:20px 0 8px}.settings-panel{max-width:850px}.settings-panel label:not(.file-button),dialog label{display:block;font-size:13px;font-weight:700;margin:22px 0 8px}input:not([type=file]),select{width:100%;max-width:380px;padding:12px;border-radius:9px;border:1px solid var(--border);background:var(--surface);color:inherit}.settings-panel h3{margin-top:34px}.file-button{display:inline-block;background:var(--accent);color:white;padding:11px 14px;border-radius:10px;cursor:pointer;font-weight:700}.button-row{justify-content:flex-start}footer{font-size:12px;margin-top:32px}dialog{border:1px solid var(--border);border-radius:18px;padding:25px;background:var(--surface);color:inherit;width:min(540px,calc(100vw - 24px));box-shadow:0 22px 90px #0005}dialog::backdrop{background:#0b152a99}dialog h2{margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid input{max-width:100%}.dialog-actions{margin-top:28px}.spacer{flex:1}.danger{color:#b93b48}.event:hover{background:var(--hover)}:root[data-theme=dark]{color-scheme:dark;--surface:#19263a;--border:#30405a;--muted:#9cabc4;--hover:#263d65;--accent:#7da5ff;background:#101827;color:#eef3ff}:root[data-theme=dark] .primary,:root[data-theme=dark] .file-button{color:#101827}:root[data-theme=dark] .day-chip{background:#284675;color:#e3edff}:root[data-theme=dark] .day-chip.overtime{background:#5a421d;color:#ffe1a9}:root[data-theme=dark] .day-chip.leave{background:#1b5148;color:#c3ffef}:root[data-theme=dark] .day-chip.training{background:#473363;color:#e9d8ff}@media(prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]){color-scheme:dark;--surface:#19263a;--border:#30405a;--muted:#9cabc4;--hover:#263d65;--accent:#7da5ff;background:#101827;color:#eef3ff}}@media(max-width:850px){.shell{grid-template-columns:1fr}.sidebar{padding:13px 18px;gap:12px}.sidebar nav{display:flex;overflow:auto}.nav{white-space:nowrap;padding:10px}.sidebar-bottom{display:none}.stats{grid-template-columns:1fr}.hero-art{display:none}.day{min-height:80px;padding:4px}.day-chip{font-size:9px;padding:4px}.calendar-toolbar{align-items:flex-start}.calendar-title h2{min-width:125px;font-size:18px}}@media(max-width:480px){.topbar{align-items:flex-start}.top-actions button{font-size:12px}.panel{padding:14px}.day{min-height:68px}.day-number{width:22px;height:22px}.form-grid{grid-template-columns:1fr}}

/* Responsive parity: desktop retains sidebar, phones get a compact app shell. */
html,body{width:100%;max-width:100%;overflow-x:hidden}
.shell,main,.panel,.topbar,.calendar-toolbar,.calendar-grid{min-width:0}
@media (min-width:851px){
 .sidebar{position:sticky;top:0;height:100vh}
 .top-actions{justify-content:flex-end}
}
@media (max-width:850px){
 .shell{display:block;padding-bottom:72px}
 .sidebar{position:relative;display:block;padding:12px 16px;border-right:0;border-bottom:1px solid var(--border)}
 .brand{font-size:18px}.brand small{font-size:8px}
 .sidebar nav{position:fixed;bottom:0;left:0;right:0;z-index:20;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;padding:8px 8px max(8px,env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);box-shadow:0 -5px 24px #00000012;overflow:visible}
 .sidebar .nav{font-size:12px;text-align:center;padding:12px 3px;white-space:normal;line-height:1.2}
 main{padding:20px 16px 24px;max-width:100%}
 .topbar{display:flex;align-items:center;gap:10px;margin-bottom:20px}
 .topbar h1{font-size:27px}
 .top-actions{margin-left:auto;gap:7px}
 .top-actions button{font-size:12px;padding:10px 9px;white-space:nowrap}
 .hero{padding:23px;border-radius:16px}
 .hero h2{font-size:26px}
 .hero p{font-size:14px}
 .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .stats .panel{padding:16px;gap:9px}
 .stats .panel:last-child{grid-column:1/-1}
 .stats strong{font-size:18px;overflow-wrap:anywhere}
 .calendar-toolbar{gap:12px}
 .calendar-title{width:100%;justify-content:space-between}
 .calendar-title h2{flex:1;min-width:0;text-align:center}
 .view-switch{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
 .view-switch button{font-size:13px}
 .day{min-height:82px;min-width:0}
 .day-chip{white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
 .event{min-width:0}.event-detail{min-width:0;overflow-wrap:anywhere}
}
@media (max-width:480px){
 main{padding:16px 12px 24px}
 .topbar{flex-wrap:wrap}
 .topbar>div:first-child{flex:1}
 .top-actions{justify-content:flex-end}
 .topbar h1{font-size:25px}
 .hero h2{font-size:24px}
 .stats{grid-template-columns:1fr}
 .stats .panel:last-child{grid-column:auto}
 .panel{padding:14px;border-radius:13px}
 .calendar-title{gap:4px}
 .calendar-title button{padding:8px 10px}
 .calendar-title h2{font-size:17px}
 .calendar-grid{width:100%}
 .weekday{font-size:10px;padding:9px 0}
 .day{min-height:64px;padding:3px}
 .day-number{font-size:11px;width:22px;height:22px}
 .day-chip{font-size:9px;padding:4px 2px;margin-top:3px}
 .day small{font-size:9px}
 .form-grid{grid-template-columns:1fr}
 dialog{max-height:calc(100dvh - 32px);overflow:auto}
}
