:root{--ink-900:#171a22;--nav-950:#15151a;--purple-600:#6457e5;--purple-50:#f0eeff;--gray-50:#f7f8fa;--gray-200:#e7e9ef;--teal-600:#23887e;--amber-600:#c98318;--red-600:#d9485f;--focus:#265dff}*{box-sizing:border-box}html{background:var(--gray-50);color:var(--ink-900);font-family:Inter,Geist,system-ui,sans-serif}body{min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px}:focus-visible{outline:3px solid var(--focus)}.skip-link{z-index:100;background:#fff;border-radius:.5rem;padding:.75rem 1rem;position:fixed;top:-4rem;left:1rem}.skip-link:focus{top:1rem}.auth-shell{grid-template-columns:minmax(300px,42%) 1fr;min-height:100vh;display:grid}.auth-brand{background:var(--nav-950);color:#fff;flex-direction:column;justify-content:space-between;padding:clamp(2rem,7vw,7rem);display:flex}.brand-mark{background:var(--purple-600);border-radius:12px;place-items:center;width:44px;height:44px;font-weight:750;display:inline-grid}.auth-brand h1{max-width:9ch;margin:2rem 0 1rem;font-size:clamp(2.4rem,5vw,5rem);line-height:1}.auth-brand p{color:#c7c8d0;max-width:46ch;line-height:1.65}.auth-panel{place-items:center;padding:2rem;display:grid}.auth-card{border:1px solid var(--gray-200);background:#fff;border-radius:14px;width:min(100%,430px);padding:clamp(1.5rem,4vw,2.5rem);box-shadow:0 18px 50px #171a2214}.eyebrow{color:var(--purple-600);letter-spacing:.1em;text-transform:uppercase;font-size:.75rem;font-weight:750}.auth-card h2{margin:.4rem 0 .5rem;font-size:1.65rem}.muted{color:#666a76;line-height:1.5}.field{gap:.4rem;margin-top:1rem;display:grid}.field label{font-size:.85rem;font-weight:650}.field input{border:1px solid #cfd2dc;border-radius:7px;width:100%;height:42px;padding:0 .8rem}.field select,.field textarea{background:#fff;border:1px solid #cfd2dc;border-radius:7px;width:100%;padding:.65rem .8rem}.field input:focus{border-color:var(--purple-600)}.button{cursor:pointer;border:0;border-radius:7px;min-height:40px;padding:.65rem 1rem;font-weight:700}.button-primary{background:var(--purple-600);color:#fff;width:100%;margin-top:1.25rem}.button-secondary{color:var(--ink-900);border:1px solid var(--gray-200);background:#fff}.button:disabled{opacity:.55;cursor:wait}.form-error{border-left:4px solid var(--red-600);color:#92273a;background:#fff3f5;margin-top:1rem;padding:.75rem}.form-success{border-left:4px solid var(--teal-600);color:#17665e;background:#eefaf8;margin-top:1rem;padding:.75rem}.app-shell{grid-template-columns:248px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--nav-950);color:#fff;flex-direction:column;padding:1.25rem;display:flex}.sidebar-brand{align-items:center;gap:.7rem;font-weight:750;display:flex}.sidebar nav{gap:.35rem;margin-top:3rem;display:grid}.sidebar a{color:#d9d9df;border-radius:8px;padding:.75rem;text-decoration:none}.sidebar a[aria-current=page]{color:#fff;border-left:3px solid var(--purple-600);background:#2b2935}.sidebar-user{border-top:1px solid #34343b;margin-top:auto;padding-top:1rem}.workspace{min-width:0}.topbar{border-bottom:1px solid var(--gray-200);background:#fff;justify-content:space-between;align-items:center;gap:1rem;min-height:76px;padding:1rem 1.75rem;display:flex}.topbar h1{margin:0;font-size:1.3rem}.content{padding:1.5rem}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.metric-card,.panel{border:1px solid var(--gray-200);background:#fff;border-radius:12px}.metric-card{border-left:3px solid var(--purple-600);padding:1.25rem}.metric-card strong{margin-top:.5rem;font-size:1.8rem;display:block}.panel{margin-top:1rem;padding:1.25rem}.status-ok{color:var(--teal-600);font-weight:700}.definition-list{grid-template-columns:max-content 1fr;gap:.75rem 1.25rem;display:grid}.definition-list dt{color:#6b6e79}.definition-list dd{margin:0;font-weight:650}.page-heading{justify-content:space-between;align-items:end;gap:1rem;display:flex}.page-heading h2{margin:.25rem 0 0;font-size:1.8rem}.count-badge,.tag{background:var(--purple-50);color:#4c42b5;border-radius:999px;align-items:center;gap:.4rem;padding:.35rem .7rem;font-size:.8rem;font-weight:700;display:inline-flex}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1rem;max-width:780px;display:grid}.field-wide{grid-column:1/-1}.form-grid .button-primary{width:auto}.card-list{gap:.7rem;display:grid}.catalog-card{border:1px solid var(--gray-200);border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.9rem;padding:1rem;display:grid}.catalog-card p{color:#555a67;margin:.25rem 0}.catalog-card small{color:#717581}.catalog-card.is-archived{opacity:.62;background:var(--gray-50)}.color-dot{border-radius:999px;width:14px;height:44px}.tag-list{flex-wrap:wrap;gap:.6rem;margin-top:1rem;display:flex}.tag small{opacity:.72}.notice{color:#74500f;background:#fff9ec;border:1px solid #efcf98;border-radius:8px;padding:.75rem}.view-switch{flex-wrap:wrap;gap:.35rem;display:flex}.view-switch .button-primary{width:auto;margin:0}.view-switch a{text-decoration:none}.filter-grid{grid-template-columns:repeat(5,minmax(120px,1fr)) auto;align-items:end;gap:.75rem;display:grid}.filter-grid .field{margin:0}.schedule-list{gap:.75rem;display:grid}.schedule-card{border:1px solid var(--gray-200);border-left:4px solid var(--purple-600);border-radius:10px;grid-template-columns:minmax(145px,auto) minmax(0,1fr) auto auto;align-items:center;gap:1rem;padding:1rem;display:grid}.schedule-card.status-cancelled{opacity:.58;border-left-color:#8b8e98}.schedule-card h4,.schedule-card p{margin:.2rem 0}.schedule-time{gap:.25rem;display:grid}.schedule-time span{color:#676b76;font-size:.85rem}.conflict-override{background:#fffdf7;border:1px solid #efcf98;border-radius:8px;margin-top:1rem;padding:1rem}.conflict-override legend{color:#74500f;font-weight:700}.conflict-override>label{align-items:center;gap:.5rem;display:flex}.inline-form{flex-wrap:wrap;align-items:end;gap:1rem;display:flex}.inline-form .field{margin:0}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.88rem}th,td{text-align:left;border-bottom:1px solid var(--gray-200);white-space:nowrap;padding:.75rem}th{color:#5e626d;text-transform:uppercase;letter-spacing:.04em;font-size:.75rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.dense-panel{position:relative}.dense-scroll{border:1px solid var(--gray-200);background:#fff;border-radius:10px;max-height:700px;overflow:auto}.dense-header,.dense-grid{min-width:max-content;display:grid}.dense-header{z-index:8;border-bottom:1px solid var(--gray-200);background:#fff;position:sticky;top:0}.dense-header strong{text-align:center;text-transform:capitalize;min-width:150px;padding:.7rem;font-size:.8rem}.dense-day{border-right:1px solid var(--gray-200);background:repeating-linear-gradient(#0000 0 27px,#eceef3 28px);min-width:150px;height:1344px;position:relative}.dense-event{z-index:2;border:1px solid var(--purple-600);background:#f6f4ff;border-left-width:4px;border-radius:6px;min-height:28px;padding:.25rem .3rem;transition:box-shadow .12s;position:absolute;overflow:hidden;box-shadow:0 2px 6px #171a221a}.dense-event.is-dragging{z-index:20;opacity:.78;transition:none;box-shadow:0 12px 28px #171a223d}.dense-event a{color:var(--ink-900);font-size:.72rem;line-height:1.2;text-decoration:none;display:grid}.dense-event a strong,.dense-event a span,.dense-event a small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dense-drag-handle{z-index:2;color:#666a76;cursor:grab;touch-action:none;background:0 0;border:0;padding:0 .15rem;position:absolute;top:2px;right:2px}.dense-drag-handle:active{cursor:grabbing}.modal-backdrop{z-index:100;background:#0f101685;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;width:min(100%,480px);padding:1.5rem;box-shadow:0 20px 60px #00000040}.modal h3{margin-top:0}.dialog-actions{justify-content:flex-end;gap:.75rem;margin-top:1rem;display:flex}.dialog-actions .button-primary{width:auto;margin:0}@media (max-width:900px){.auth-shell{grid-template-columns:1fr}.auth-brand{min-height:260px;padding:2rem}.auth-brand h1{font-size:2.5rem}.app-shell{grid-template-columns:76px 1fr}.sidebar{padding:.8rem}.sidebar-brand span:last-child,.sidebar nav span,.sidebar-user{display:none}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.app-shell{display:block}.sidebar{z-index:20;flex-direction:row;height:64px;position:fixed;inset:auto 0 0}.sidebar-brand{display:none}.sidebar nav{width:100%;margin:0;display:flex;overflow-x:auto}.sidebar nav a{text-align:center;min-width:88px;padding:.6rem .25rem}.workspace{padding-bottom:64px}.topbar{padding:.85rem 1rem}.content{padding:1rem}.metric-grid,.form-grid{grid-template-columns:1fr}.field-wide{grid-column:auto}.catalog-card{grid-template-columns:auto minmax(0,1fr)}.catalog-card form,.catalog-card>.count-badge{grid-column:2;justify-self:start}.schedule-card{grid-template-columns:1fr auto}.schedule-card form{grid-column:1/-1}.filter-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
