:root{--bg:#f4f7fb;--bg-elev:#ffffff;--text:#0f1e33;--text-muted:#5f6b7a;--border:#dbe3ed;--accent:#01579b;--accent-strong:#004375;--danger:#c62828;--shadow:0 8px 24px rgba(15,30,51,0.08)}:root[data-theme=dark]{--bg:#0f1c2b;--bg-elev:#1b2a3b;--text:#e6edf6;--text-muted:#afbecf;--border:#32465d;--accent:#58a6ff;--accent-strong:#85bdff;--danger:#ff6b6b;--shadow:0 8px 24px rgba(0,0,0,0.35)}*{box-sizing:border-box}body{margin:0;font-family:Avenir Next,Segoe UI,sans-serif;background:radial-gradient(circle at 20% 0,rgba(1,87,155,.1),transparent 40%),var(--bg);color:var(--text);overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:280px minmax(0,1fr);position:relative}.app-shell.collapsed{grid-template-columns:88px minmax(0,1fr)}.sidebar{border-right:1px solid var(--border);background:linear-gradient(160deg,var(--bg-elev),color-mix(in srgb,var(--bg-elev),var(--accent) 7%));padding:1.5rem;position:-webkit-sticky;position:sticky;top:0;height:100vh;z-index:20}.sidebar-top{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.sidebar-collapse{min-width:2.2rem;padding-inline:.4rem}.brand{font-size:1.2rem;font-weight:700;margin-bottom:1rem}.nav-list{display:flex;flex-direction:column;gap:.5rem}.nav-link{border:1px solid transparent;border-radius:10px;padding:.65rem .8rem;color:var(--text-muted);text-align:left}.nav-link.active,.nav-link:hover{border-color:var(--border);background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--text)}.content{padding:1.2rem;min-width:0;overflow-x:hidden}.sidebar-hamburger{display:none;position:fixed;top:.7rem;left:.7rem;z-index:32}.sidebar-backdrop{display:none}.app-shell.collapsed .nav-link{text-align:center;padding-inline:.45rem}.app-shell.collapsed .nav-label{display:inline-block;width:100%}.page-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.grid{display:grid;grid-gap:1rem;gap:1rem;min-width:0}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.card{border:1px solid var(--border);border-radius:14px;background:var(--bg-elev);box-shadow:var(--shadow);padding:1rem;min-width:0}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:.7rem .6rem;border-bottom:1px solid var(--border);vertical-align:top}th{color:var(--text-muted);font-size:.85rem;text-transform:uppercase}.form-grid{display:grid;grid-gap:.7rem;gap:.7rem;grid-template-columns:repeat(2,minmax(0,1fr))}.field{display:flex;flex-direction:column;gap:.3rem}.field.full{grid-column:1/-1}input,select,textarea{border:1px solid var(--border);background:var(--bg-elev);border-radius:10px;color:var(--text);padding:.6rem .7rem}.btn{background:var(--accent);color:#fff;border:0;border-radius:10px;padding:.6rem .9rem;cursor:pointer}.btn.secondary{background:transparent;color:var(--text);border:1px solid var(--border)}.btn.danger{background:var(--danger)}.inline-actions{display:flex;flex-wrap:wrap;gap:.5rem}.badge{display:inline-flex;border-radius:999px;padding:.2rem .55rem;border:1px solid var(--border);font-size:.78rem}.login-shell{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{width:min(460px,100%)}.calendar-matrix-wrap{width:100%;max-width:100%;height:min(65vh,720px);overflow-x:auto;overflow-y:auto;overscroll-behavior:contain;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable both-edges;border:1px solid var(--border);border-radius:10px}.calendar-matrix{width:max-content;min-width:100%;border-collapse:collapse}.calendar-matrix td,.calendar-matrix th{min-width:120px}.calendar-matrix .sticky-col{position:-webkit-sticky;position:sticky;left:0;z-index:2;background:var(--bg-elev);min-width:220px}.calendar-cell{vertical-align:top}.status-chip{display:flex;flex-direction:column;gap:.1rem;margin-bottom:.3rem;padding:.3rem .45rem;border-radius:8px;border:1px solid transparent;font-size:.75rem}.status-chip strong{font-size:.72rem;letter-spacing:.02em}.status-called{background:color-mix(in srgb,#ffb300 25%,var(--bg-elev));border-color:color-mix(in srgb,#ffb300 45%,var(--border))}.status-message_sent{background:color-mix(in srgb,#29b6f6 20%,var(--bg-elev));border-color:color-mix(in srgb,#29b6f6 40%,var(--border))}.status-not_available{background:color-mix(in srgb,#ef5350 20%,var(--bg-elev));border-color:color-mix(in srgb,#ef5350 40%,var(--border))}.status-penciled{background:color-mix(in srgb,#ab47bc 20%,var(--bg-elev));border-color:color-mix(in srgb,#ab47bc 40%,var(--border))}.status-booked{background:color-mix(in srgb,#66bb6a 20%,var(--bg-elev));border-color:color-mix(in srgb,#66bb6a 45%,var(--border))}@media (max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;height:100vh;width:min(300px,82vw);transform:translateX(-104%);transition:transform .2s ease;box-shadow:var(--shadow)}.app-shell.mobile-open .sidebar{transform:translateX(0)}.sidebar-hamburger{display:inline-flex}.sidebar-backdrop{display:block;position:fixed;inset:0;z-index:18;border:0;background:rgba(0,0,0,.25)}.content{padding:3.6rem .9rem .9rem}.app-shell.collapsed,.form-grid,.grid.cols-3{grid-template-columns:1fr}}