:root{--primary:#155eef;--primary-dark:#0d46bd;--ink:#172033;--muted:#667085;--bg:#f5f7fb;--surface:#fff;--border:#dfe4ec;--success:#12805c;--success-bg:#e9f8f2;--warning:#9a6700;--warning-bg:#fff5d6;--danger:#b42318;--danger-bg:#feeceb;--info:#175cd3;--info-bg:#eaf2ff;--shadow:0 8px 24px rgba(16,24,40,.08);--radius:14px;--space-1:.35rem;--space-2:.65rem;--space-3:1rem;--space-4:1.5rem;--space-5:2.2rem;--font:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
*{box-sizing:border-box}html{color-scheme:light;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:1rem;line-height:1.55}a{color:var(--primary);text-decoration-thickness:.08em;text-underline-offset:.18em}img{max-width:100%}button,input,select,textarea{font:inherit}.container{width:min(100% - 2rem,1180px);margin-inline:auto}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:1rem;top:1rem;z-index:99;background:#fff;padding:.75rem}.site-header{position:sticky;top:0;z-index:20;background:#0e1930;color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.15)}.nav-wrap{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{color:#fff;font-size:1.25rem;font-weight:800;text-decoration:none}.nav-toggle{background:transparent;color:#fff;border:1px solid #536079;border-radius:8px;padding:.45rem .75rem}.main-nav{display:none;position:absolute;top:64px;left:0;right:0;background:#0e1930;padding:1rem}.main-nav.is-open{display:grid;gap:.8rem}.main-nav a,.link-button{color:#fff;text-decoration:none}.main-nav form{margin:0}.link-button{border:0;background:none;padding:0;cursor:pointer}.page{min-height:calc(100vh - 130px);padding-block:var(--space-4) var(--space-5)}.site-footer{border-top:1px solid var(--border);color:var(--muted);padding:1rem 0;background:var(--surface)}h1,h2,h3{line-height:1.2;margin-top:0}h1{font-size:clamp(1.8rem,6vw,2.7rem)}h2{font-size:clamp(1.25rem,4vw,1.65rem)}p{margin-top:0}.muted,.hint,small{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--primary);font-size:.78rem;font-weight:800;margin-bottom:.35rem}.page-header{display:flex;flex-direction:column;gap:1rem;margin-bottom:var(--space-4)}.page-header>div>p:last-child{max-width:70ch}.card,.panel,.auth-card,.stat,.shift-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card,.panel,.shift-card{padding:var(--space-4)}.card-grid,.shift-grid,.stats-grid{display:grid;gap:var(--space-3)}.card-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}.shift-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}.stats-grid{grid-template-columns:repeat(2,1fr);margin-bottom:var(--space-4)}.stat{padding:1rem;display:grid;gap:.25rem}.stat span{color:var(--muted);font-size:.85rem}.stat strong{font-size:1.7rem}.stat--success{border-left:5px solid var(--success)}.stat--warning{border-left:5px solid var(--warning)}.stat--danger{border-left:5px solid var(--danger)}.event-card{display:flex;flex-direction:column}.event-card .button{margin-top:auto}.meta{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.meta dt{font-size:.78rem;color:var(--muted)}.meta dd{margin:0;font-weight:650}.shift-card{border-top-width:6px;display:flex;flex-direction:column;gap:.75rem}.shift-card--empty{border-top-color:var(--danger)}.shift-card--partial{border-top-color:var(--warning)}.shift-card--full{border-top-color:var(--success)}.shift-card header,.shift-card footer{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.shift-card footer{margin-top:auto;align-items:center}.occupancy{display:inline-grid;place-items:center;min-width:58px;padding:.45rem;background:#eef2f8;border-radius:999px;font-weight:800}.name-list{margin:.35rem 0 0;padding-left:1.25rem}.note{background:var(--info-bg);border-radius:9px;padding:.7rem}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);background:#fff;color:var(--ink);border-radius:9px;padding:.65rem 1rem;font-weight:700;text-decoration:none;cursor:pointer;min-height:42px}.button:hover{border-color:#aeb7c5;background:#f8fafc}.button--primary{background:var(--primary);border-color:var(--primary);color:#fff}.button--primary:hover{background:var(--primary-dark)}.button--danger{color:var(--danger);border-color:#f3aaa5;background:#fff}.button--small{padding:.4rem .7rem;min-height:34px;font-size:.88rem}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.actions form{margin:0}.badge{display:inline-flex;padding:.25rem .6rem;border-radius:999px;background:#eef2f8;font-size:.78rem;font-weight:800}.badge--success{color:var(--success);background:var(--success-bg)}.badge--warning{color:var(--warning);background:var(--warning-bg)}.badge--danger{color:var(--danger);background:var(--danger-bg)}.badge--neutral{color:var(--muted)}.alert{border-radius:10px;padding:.85rem 1rem;margin-bottom:1rem;border:1px solid}.alert--success{background:var(--success-bg);border-color:#9be1c8;color:#086044}.alert--error{background:var(--danger-bg);border-color:#f3aaa5;color:#8f1c13}.alert--info{background:var(--info-bg);border-color:#b2ccff;color:#123f8b}.empty-state{background:#fff;border:1px dashed #b8c1cf;border-radius:var(--radius);padding:2rem;text-align:center;color:var(--muted)}.stack{display:grid;gap:1rem}.form-grid{display:grid;gap:1rem}label{display:grid;gap:.35rem;font-weight:650}input,select,textarea{width:100%;border:1px solid #b8c1cf;background:#fff;color:var(--ink);border-radius:9px;padding:.68rem .75rem;min-height:44px}textarea{min-height:90px;resize:vertical}input[type="checkbox"],input[type="radio"]{width:auto;min-height:auto;accent-color:var(--primary)}label:has(>input[type="checkbox"]),label:has(>input[type="radio"]){display:flex;align-items:center;gap:.6rem}input:focus,select:focus,textarea:focus,button:focus,a:focus{outline:3px solid rgba(21,94,239,.28);outline-offset:2px}.auth-card{width:min(100%,560px);margin:3vh auto;padding:clamp(1.25rem,5vw,2.5rem)}.auth-links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;margin-top:1rem}.filter-bar,.admin-nav{display:flex;flex-wrap:wrap;gap:.7rem;margin-bottom:1rem}.filter-bar input{flex:1 1 240px}.filter-bar select{flex:0 1 200px}.admin-nav{background:#fff;border:1px solid var(--border);border-radius:12px;padding:.6rem}.admin-nav a{padding:.45rem .7rem;text-decoration:none;font-weight:700}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1.25rem}table{border-collapse:collapse;width:100%;min-width:700px}th,td{text-align:left;padding:.8rem;border-bottom:1px solid var(--border);vertical-align:top}th{background:#f0f3f8;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}tr:last-child td{border-bottom:0}.dashboard-columns{display:grid;gap:1rem;margin-block:1rem}.list-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--border)}.list-row>div{display:grid}.list-row:last-child{border-bottom:0}details{position:relative}summary{list-style:none}.popover{margin-top:.75rem;padding:.8rem;background:#fff;border:1px solid var(--border);border-radius:10px;min-width:min(330px,80vw)}.toast{position:fixed;right:1rem;bottom:1rem;max-width:360px;padding:.8rem 1rem;border-radius:10px;background:#172033;color:#fff;box-shadow:var(--shadow);opacity:0;pointer-events:none;transform:translateY(10px);transition:.2s}.toast.is-visible{opacity:1;transform:none}.toast.is-error{background:var(--danger)}
@media(min-width:760px){.nav-toggle{display:none}.main-nav{display:flex;position:static;align-items:center;gap:1rem;background:transparent;padding:0}.page{padding-top:2rem}.page-header{flex-direction:row;align-items:flex-start;justify-content:space-between}.stats-grid{grid-template-columns:repeat(4,1fr)}.form-grid{grid-template-columns:repeat(2,1fr)}.dashboard-columns{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1050px){.stats-grid{grid-template-columns:repeat(7,1fr)}}
@media print{body{background:#fff;font-size:10pt}.site-header,.site-footer,.button,button,.alert{display:none!important}.container{width:100%}.page{padding:0}.card,.panel,.shift-card{box-shadow:none;break-inside:avoid}table{min-width:0}.print-page{padding:1cm}.print-header button{display:none}}
