:root{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color-scheme:dark;background:#0b1220;color:#edf2fa}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% -10%,#172b44 0,#0b1220 48%)}button,input,select{font:inherit}button{cursor:pointer;border:0;border-radius:10px;padding:11px 14px;font-weight:650}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.top{display:flex;align-items:center;justify-content:space-between;padding:15px max(18px,calc((100vw - 1150px)/2));border-bottom:1px solid #273349;background:#101827ec;gap:12px}.brand{display:flex;align-items:center;gap:11px}.brand strong,.brand small{display:block}.brand small{font-size:11px;color:#92a4be;margin-top:3px}.logo{display:grid;place-items:center;background:linear-gradient(135deg,#3b82f6,#16a6b8);border-radius:11px;width:42px;height:42px;font-weight:800}.actions{display:flex;align-items:center;gap:10px}.status{font-size:12px;color:#a6b6d1}.secondary,.iconbtn,.upload{background:#243249;color:#edf2fa;border:1px solid #3b4b63}.primary{background:#3980ef;color:white}.danger{background:#442332;color:#ffc7cf}.full{width:100%;margin-top:10px}.iconbtn{min-width:42px;font-size:26px;padding:4px 12px}main{max-width:1186px;margin:auto;padding:25px 18px}.intro{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:22px}h1{font-size:clamp(24px,3vw,34px);margin:0 0 5px}h2,h3{margin:0}h3{font-size:16px;margin-bottom:16px}p{margin:6px 0}.intro p,.subtext,.hint,footer{color:#9eacc0;font-size:13px}.controls{display:flex;align-items:end;gap:9px}.controls label{min-width:150px}label{display:block;font-size:13px;color:#cbd5e1}input,select{width:100%;background:#172337;border:1px solid #40506a;color:#f2f5fb;border-radius:9px;padding:11px;margin-top:7px}option{background:#172337}.dashboard{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:16px}.panel{background:#141f30;border:1px solid #2b3a50;border-radius:15px;padding:18px;margin-bottom:16px;box-shadow:0 8px 20px #00000015}.month-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.month-bar h2{font-size:21px;text-transform:capitalize}.weekdays,.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.weekdays div{text-align:center;font-size:12px;color:#aab7ca;padding:8px 0}.day{display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;text-align:left;min-height:80px;background:#1a2a40;border:1px solid #304158;border-radius:10px;color:#dae5f4;padding:9px 7px;gap:10px}.day.out{opacity:.24}.day.today{box-shadow:inset 0 0 0 1px #61a4ff}.day.selected{outline:2px solid #88aaff;outline-offset:0}.date-num{font-size:13px;font-weight:700}.shift{font-size:10px;font-weight:800;letter-spacing:.02em;padding:5px 3px;border-radius:6px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#253852}.MATIN .shift{background:#204c68;color:#b9ebff}.APM .shift{background:#4d4027;color:#ffe0a0}.NUIT .shift{background:#41375f;color:#d9c6ff}.REPOS .shift{background:#273a40;color:#d0e1e5}.CONGE .shift,.RTT .shift,.RTTMAJ .shift,.RECUP .shift{background:#1c5745;color:#bcf4d5}.MALADIE .shift{background:#5b3b52;color:#ffd5ef}.HS .shift{background:#63313d;color:#ffb4c5}.stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stat{border-radius:9px;background:#1c2b41;padding:11px}.stat strong{font-size:21px;display:block}.stat span{font-size:12px;color:#a8b7ca}.upload{display:block;border-radius:10px;padding:12px;text-align:center;cursor:pointer;font-weight:650;margin-top:10px}.hint{margin-top:15px}footer{text-align:center;padding:22px}dialog{border:1px solid #3c4d66;border-radius:16px;max-width:420px;width:calc(100% - 32px);color:#edf2fa;background:#172337}dialog::backdrop{background:#000a}.modal{padding:8px}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.modal label{margin:12px 0}.authbuttons{display:flex;gap:10px}.authbuttons button{flex:1}.notice{min-height:22px;color:#a5d7fb;line-height:1.5}.toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:#2f4663;padding:13px 18px;border-radius:9px;max-width:90vw;text-align:center;box-shadow:0 4px 22px #0008;z-index:5}@media(max-width:800px){.dashboard{grid-template-columns:1fr}.side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.side .panel{margin:0}.side .panel:last-child{grid-column:1/-1}.intro{align-items:start}.day{min-height:73px}}@media(max-width:550px){.top{padding:12px}.status{display:none}main{padding:20px 9px}.intro{display:block;padding:0 5px}.controls{margin-top:16px}.controls label{flex:1}.panel{padding:11px;border-radius:12px}.weekdays,.calendar{gap:3px}.day{min-height:62px;padding:6px 3px;gap:8px;border-radius:7px}.date-num{font-size:11px}.shift{font-size:8px;padding:5px 1px;letter-spacing:0}.month-bar h2{font-size:18px}.side{grid-template-columns:1fr}.side .panel:last-child{grid-column:auto}.stats{grid-template-columns:repeat(3,1fr)}.brand small{font-size:10px}}@media(prefers-reduced-motion:no-preference){button{transition:filter .15s}button:hover{filter:brightness(1.12)}}
