:root{color-scheme:light;font-family:Avenir Next,Segoe UI,sans-serif;line-height:1.4;font-weight:400;background:radial-gradient(circle at top left,rgba(125,211,252,.35),transparent 28%),radial-gradient(circle at top right,rgba(251,191,36,.2),transparent 32%),linear-gradient(180deg,#eef6ff,#e6eef8 45%,#eff4fb);color:#10233b;--panel: rgba(255, 255, 255, .78);--panel-border: rgba(148, 163, 184, .22);--muted: #5f738c;--text: #10233b;--accent: #f59e0b;--danger: #fb7185}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button{border:0;border-radius:14px;padding:.8rem 1rem;background:linear-gradient(135deg,#f59e0b,#ea580c);color:#fff7ed;cursor:pointer;transition:transform .12s ease,opacity .12s ease}button:hover{transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.5;transform:none}input,select,textarea{width:100%;border-radius:12px;border:1px solid rgba(148,163,184,.28);background:#fffffff5;color:#14253d;padding:.85rem .95rem}input::placeholder,textarea::placeholder{color:#778aa4}textarea{resize:vertical}label{display:grid;gap:.45rem;color:var(--muted);font-size:.92rem}.login-shell,.app-shell{min-height:100vh}.login-shell{display:grid;place-items:center;padding:2rem}.login-card,.panel{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:var(--panel);border:1px solid var(--panel-border);box-shadow:0 24px 70px #1f29371a}.login-card{max-width:540px;padding:2.3rem;border-radius:28px}.login-card h1,.topbar h1{margin:.2rem 0 .5rem;font-family:Iowan Old Style,Palatino Linotype,serif;font-size:clamp(2rem,4vw,3.2rem);font-weight:700;letter-spacing:-.03em}.eyebrow{margin:0;color:#b45309;text-transform:uppercase;letter-spacing:.18em;font-size:.75rem}.lede,.week-label,.selection-meta,.chart-header p{color:var(--muted)}.login-form{display:grid;gap:1rem;margin-top:1.75rem}.error-text,.error-card{color:#fecdd3;background:#7f1d1d59;border:1px solid rgba(251,113,133,.35)}.error-card{padding:1rem;border-radius:16px;margin-bottom:1rem}.app-shell{display:grid;gap:1rem;padding:1.4rem}.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:flex-start}.topbar-main{display:grid;gap:.9rem}.topbar-actions{display:grid;gap:.75rem;justify-items:end}.button-row{display:flex;gap:.6rem;flex-wrap:wrap}.segmented{background:#94a3b824;padding:.25rem;border-radius:16px}.segmented button,.ghost-button{background:#94a3b81a;color:var(--text)}.segmented button.active{background:#fbbf243d;color:#fde68a}.sync-pill{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem .9rem;border-radius:999px;background:#ffffffb3;color:var(--muted)}.role-pill{display:inline-flex;align-items:center;padding:.65rem .9rem;border-radius:999px;font-weight:600;background:#94a3b81f}.role-pill.admin{color:#92400e;background:#fbbf242e}.role-pill.viewer{color:#0f766e;background:#2dd4bf2e}.sync-dot{width:10px;height:10px;border-radius:999px;background:#94a3b8}.sync-pill.saving .sync-dot{background:#f59e0b}.sync-pill.saved .sync-dot{background:#34d399}.sync-pill.error .sync-dot{background:#fb7185}.content-grid{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) 320px;align-items:start}.content-grid.viewer-mode{grid-template-columns:minmax(0,1fr)}.top-controls{display:grid;gap:1rem;grid-template-columns:260px minmax(340px,420px) minmax(260px,320px);align-items:start}.top-card{min-height:100%}.panel{border-radius:26px;padding:1rem}.right-rail{display:grid;gap:1rem}.panel-section{display:grid;gap:.8rem}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.selection-summary{display:grid;gap:.2rem;padding:.85rem .95rem;border-radius:16px;background:#f1f5f9f5;border:1px solid rgba(148,163,184,.24);color:#14253d}.selection-summary span{color:#5f738c;font-size:.85rem}.panel-section h2,.chart-header h2{margin:0;font-size:1.05rem}.legend-list,.stats-grid{display:grid;gap:.65rem}.tag-manager-list{display:grid;gap:.6rem;max-height:300px;overflow:auto}.tag-row,.tag-add-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 58px auto;gap:.5rem;align-items:center}.checkbox-label{display:inline-flex;align-items:center;gap:.5rem;color:var(--muted)}.checkbox-label input{width:auto}.legend-item{display:flex;gap:.75rem;align-items:center}.legend-swatch{width:14px;height:14px;border-radius:999px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{padding:.9rem;border-radius:18px;background:#f1f5f9e6;border:1px solid rgba(148,163,184,.14)}.stat-card span{color:var(--muted);display:block;font-size:.84rem}.stat-card strong{font-size:1.35rem}.schedule-region{overflow:hidden}.editor-panel{position:sticky;top:1rem}.loading-state{margin-bottom:1rem;color:var(--muted)}.week-grid{display:grid;grid-template-columns:72px repeat(7,minmax(140px,1fr));overflow:auto;border-radius:22px;background:linear-gradient(180deg,#e0e8f2f5,#d8e2eef5)}.time-column,.day-column{display:grid;grid-template-rows:82px repeat(48,22px)}.time-header,.day-header{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:.75rem;background:#e8eff7f5;border-bottom:1px solid rgba(148,163,184,.24)}.day-header{align-items:stretch;gap:.45rem}.day-header-meta{display:grid;justify-items:start;gap:.12rem}.day-header span,.day-header small{color:#5f738c}.day-header strong{color:#14253d}.day-total{align-self:flex-start;font-size:.75rem}.day-column.today .day-header{background:#fcf3ddf5}.time-cell,.schedule-cell{border-right:1px solid rgba(148,163,184,.14);border-bottom:1px solid rgba(148,163,184,.14)}.time-cell{padding:.15rem .35rem;color:#5f738c;font-size:.68rem;background:#edf2f8f5}.time-cell.hour,.schedule-cell.hour{border-top:1px solid rgba(251,191,36,.18)}.schedule-cell{padding:.18rem .35rem;text-align:left;border-radius:0;background:#f7fafce6;color:#14253d;overflow:hidden}.schedule-cell span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.68rem}.schedule-cell.dimmed{opacity:.32}.schedule-cell.selected{outline:2px solid #fbbf24;outline-offset:-2px;box-shadow:inset 0 0 0 999px #fbbf241f}.schedule-cell.empty{background:#f4f7faeb}.day-view{display:grid;gap:1rem}.day-view-header{display:flex;gap:.65rem;flex-wrap:wrap}.day-chip{background:#e8eff7fa;color:#344861}.day-chip.active{background:#fcf3ddfa;color:#9a5b00}.day-group-list{display:grid;gap:.9rem;max-height:70vh;overflow:auto}.day-group-card{display:grid;gap:.85rem;background:#ffffffbf;border:1px solid rgba(148,163,184,.18);border-radius:18px;padding:.95rem}.day-group-toggle{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:#94a3b81a;color:var(--text);text-align:left}.day-group-toggle div{display:grid;gap:.2rem}.day-group-toggle span,.day-group-toggle small{color:var(--muted)}.day-slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.day-slot-card{display:grid;gap:.32rem;min-height:92px;padding:.8rem;text-align:left;background:#f8fafcfa;border:1px solid rgba(148,163,184,.18)}.day-slot-card strong,.day-slot-card span{color:#14253d}.day-slot-card small{color:#667891}.slot-select-hint{font-size:.7rem;color:#667891}.day-slot-card.selected{outline:2px solid #fbbf24;outline-offset:-2px}.analytics-grid{display:grid;gap:1rem;grid-template-columns:repeat(3,minmax(0,1fr))}.chart-card{min-height:360px}.chart-header{margin-bottom:1rem}.heatmap{display:grid;gap:.35rem}.heatmap-row{display:grid;grid-template-columns:70px repeat(7,1fr);gap:.35rem;align-items:center}.heatmap-row span,.heatmap-row strong{color:var(--muted);font-size:.78rem}.heatmap-cell{height:16px;border-radius:999px;background:linear-gradient(90deg,#f59e0b,#fb7185)}.modal-shell{position:fixed;inset:0;background:#0f172a47;display:grid;place-items:center;padding:2rem;z-index:20}.modal-panel{width:min(1100px,100%);max-height:88vh;overflow:auto;border-radius:28px;padding:1.25rem;background:#fffffff0;border:1px solid rgba(148,163,184,.22);box-shadow:0 30px 80px #0f172a29}.tag-table{display:grid;gap:.75rem;margin-top:1rem}.tag-table-head{display:grid;grid-template-columns:1.1fr 1.3fr 90px 120px;gap:.75rem;color:var(--muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.06em}.tag-manager-list.admin{max-height:none}.tag-row.admin,.tag-add-row.admin{grid-template-columns:1.1fr 1.3fr 90px 180px}.tag-actions{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.danger-button{color:#991b1b;background:#fee2e2eb;border:1px solid rgba(248,113,113,.24)}@media(max-width:1280px){.top-controls,.topbar,.content-grid,.analytics-grid,.day-slot-grid,.tag-row,.tag-add-row,.tag-table-head,.tag-row.admin,.tag-add-row.admin{grid-template-columns:1fr}.tag-actions{justify-content:flex-start}}
