:root{--bg:#0b1722;--sidebar:#0a141f;--panel:#122433;--panel-2:#18384f;--line:#31546b;--text:#f6f2ea;--muted:#b8c2ca;--accent:#d9c8a8;--accent-hover:#e7d9c0;--accent-soft:rgba(217,200,168,.12);--accent-border:rgba(217,200,168,.30);--accent-text:#13212d;--blue:#8fb9da;--blue-hover:#a8cbe5;--blue-soft:rgba(143,185,218,.13);--blue-border:rgba(143,185,218,.30);--good:#9ec3df;--amber:#dcc28f;--danger:#d99a9a}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a,button{font:inherit}button{cursor:pointer}a{color:inherit}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#1a3950 0,var(--bg) 50%)}.login-card{width:min(420px,100%);background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:32px;box-shadow:0 20px 70px rgba(0,0,0,.34);text-align:center}.brand-mark{width:56px;height:56px;border-radius:15px;background:var(--accent);color:var(--accent-text);font-weight:900;display:grid;place-items:center;margin:0 auto 20px}.login-card h1{margin:0;font-size:26px}.login-card p{color:var(--muted);margin:6px 0 26px}.login-card small{display:block;color:var(--muted);margin-top:18px}.primary-button{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:var(--accent-text);font-weight:800;text-decoration:none;border:1px solid transparent;border-radius:10px;padding:11px 16px;transition:background .16s ease,border-color .16s ease,transform .16s ease}.primary-button:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.primary-button:active{transform:translateY(1px)}.login-button{width:100%}.error-box{background:rgba(244,123,123,.1);border:1px solid var(--danger);padding:10px;border-radius:10px;margin-bottom:14px;font-size:13px}.app-shell{min-height:100vh;display:grid;grid-template-columns:238px minmax(0,1fr)}.sidebar{height:100vh;position:-webkit-sticky;position:sticky;top:0;overflow:auto;background:var(--sidebar);border-right:1px solid var(--line);padding:18px 12px;z-index:60}.sidebar-brand{padding:5px 8px 18px}.sidebar-brand b{display:block;font-size:16px}.sidebar-brand span{display:block;color:var(--muted);font-size:11px;margin-top:4px}.nav-group{font-size:10px;color:var(--muted);letter-spacing:.09em;text-transform:uppercase;margin:16px 10px 5px}.nav-item{width:100%;display:flex;align-items:center;gap:10px;background:transparent;border:1px solid transparent;color:#c5d2dc;padding:10px;border-radius:9px;text-align:left;margin:2px 0;transition:background .16s ease,border-color .16s ease,color .16s ease}.nav-item:hover{background:var(--blue-soft);border-color:rgba(143,185,218,.16)}.nav-item.active{background:var(--blue-soft);border-color:var(--blue-border);color:var(--text);box-shadow:inset 3px 0 0 var(--accent)}.nav-icon{font-size:10px;min-width:30px;color:var(--blue);font-weight:900}.workspace{min-width:0}.topbar{height:72px;position:-webkit-sticky;position:sticky;top:0;z-index:40;background:rgba(11,23,34,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:10px 20px;justify-content:space-between;gap:15px}.topbar,.topbar-left{display:flex;align-items:center}.topbar-left{gap:12px}.topbar h1{font-size:18px;margin:0}.topbar p{font-size:11px;color:var(--muted);margin:3px 0 0}.menu-button{display:none;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:9px;padding:8px 10px}.user-box{display:flex;align-items:center;gap:14px}.user-box div{text-align:right}.user-box b,.user-box span{display:block}.user-box b{font-size:12px}.user-box span{font-size:10px;color:var(--muted);margin-top:2px}.user-box a{font-size:11px;text-decoration:none;color:var(--blue)}.workspace-content{padding:18px 20px 40px}.metrics-grid{display:grid;grid-template-columns:repeat(6,minmax(145px,1fr));grid-gap:12px;gap:12px}.metric-card,.mobile-list-card,.panel-card{background:var(--panel);border:1px solid var(--line);border-radius:13px;box-shadow:0 12px 30px rgba(0,0,0,.12)}.metric-card{padding:14px}.metric-card span{font-size:11px;color:var(--muted)}.metric-card strong{font-size:22px;display:block;margin-top:6px}.metric-card small{font-size:10px;display:block;color:var(--muted);margin-top:5px;line-height:1.35}.dashboard-grid{display:grid;grid-template-columns:1.25fr .75fr;grid-gap:14px;gap:14px;margin-top:14px}.panel-card{padding:16px}.section-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.section-heading h2{font-size:15px;margin:0}.section-heading p{font-size:11px;color:var(--muted);margin:4px 0 0}.status-pill{font-size:10px;padding:4px 8px;border:1px solid var(--blue-border);border-radius:999px;color:#dcebf6;background:var(--blue-soft)}.alert-row{display:flex;align-items:center;gap:9px;border-top:1px solid var(--line);padding:12px 2px;font-size:12px}.alert-row:first-of-type{margin-top:12px}.dot{width:8px;height:8px;border-radius:50%}.dot.amber{background:var(--amber)}.dot.green{background:var(--blue)}.migration-list{margin:12px 0 0;padding-left:20px;color:var(--muted);font-size:12px;line-height:1.9}.migration-list li.done{color:var(--text)}.migration-list li.done::marker{color:var(--blue)}.placeholder-panel{min-height:280px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.placeholder-panel h2{font-size:24px;margin:14px 0 7px}.placeholder-panel p{max-width:720px;color:var(--muted);line-height:1.6;margin:0}.mobile-ops,.scrim{display:none}@media(max-width:1250px){.metrics-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:900px){.app-shell,.dashboard-grid{grid-template-columns:1fr}.sidebar{position:fixed;left:-255px;width:238px;transition:left .2s ease;box-shadow:0 20px 50px rgba(0,0,0,.45)}.sidebar.open{left:0}.scrim{display:block;position:fixed;inset:0;background:rgba(0,0,0,.5);border:0;z-index:50}.menu-button{display:inline-flex}.topbar{padding:10px 14px}.workspace-content{padding:14px}}@media(max-width:640px){.dashboard-grid,.metrics-grid{display:none}.mobile-ops{display:block}.topbar{height:64px}.topbar p,.user-box div{display:none}.workspace-content{padding:12px}.mobile-action-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:10px;gap:10px;margin-top:12px}.mobile-action-grid button{min-height:92px;text-align:left;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:13px;padding:13px}.mobile-action-grid b{display:block;font-size:22px}.mobile-action-grid span{display:block;font-size:11px;color:var(--muted);margin-top:4px}.mobile-list-card{margin-top:12px;padding:4px 12px}.mobile-list-card div{display:grid;grid-template-columns:55px 1fr;grid-gap:5px 10px;gap:5px 10px;padding:12px 0;border-bottom:1px solid var(--line)}.mobile-list-card div:last-child{border-bottom:0}.mobile-list-card b{font-size:12px}.mobile-list-card span{font-size:11px}.mobile-list-card em{grid-column:2;font-size:10px;color:var(--accent);font-style:normal}.section-heading h2{font-size:17px}.placeholder-panel{min-height:220px}.placeholder-panel h2{font-size:21px}.user-box a{font-size:10px}}.nav-item{text-decoration:none}.mobile-action-grid a{text-decoration:none;min-height:92px;text-align:left;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:13px;padding:13px}.mobile-action-grid a b{display:block;font-size:22px}.mobile-action-grid a span{display:block;font-size:11px;color:var(--muted);margin-top:4px}.page-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.date-jump,.date-nav{display:flex;align-items:center;gap:7px}.date-jump button,.date-nav>a{border:1px solid var(--line);background:var(--panel);color:var(--text);text-decoration:none;border-radius:8px;padding:7px 10px}.date-jump input,.live-form input,.live-form select{background:#102837;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:9px 10px;min-height:38px;transition:border-color .16s ease,box-shadow .16s ease}.date-jump input:focus,.live-form input:focus,.live-form select:focus,.row-actions select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(217,200,168,.12)}.schedule-entry-card{margin-bottom:14px}.live-form{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));grid-gap:10px;gap:10px;margin-top:14px;align-items:end}.live-form label span{display:block;font-size:10px;color:var(--muted);margin-bottom:4px}.live-form input,.live-form select{width:100%}.live-form .primary-button{border:0;min-height:38px}.live-table-wrap{overflow:auto;margin-top:13px;border:1px solid var(--line);border-radius:10px}.live-table{border-collapse:collapse;width:100%;min-width:1080px}.live-table td,.live-table th{padding:10px 11px;border-bottom:1px solid var(--line);font-size:11px;text-align:left;white-space:nowrap}.live-table th{color:#dce6ee;background:var(--panel-2);font-size:10px}.live-table tr:last-child td{border-bottom:0}.table-sub{font-size:9px;color:var(--muted);margin-top:2px}.appointment-status{font-size:9px;padding:4px 7px;border-radius:999px;border:1px solid var(--line)}.appointment-status.arrived,.appointment-status.completed{color:var(--good)}.appointment-status.cancelled,.appointment-status.no_show{color:var(--danger)}.row-actions{display:flex;gap:5px;align-items:center}.row-actions form{margin:0}.row-actions button{border:1px solid var(--line);background:var(--panel-2);color:var(--text);padding:5px 7px;border-radius:7px;font-size:10px}.row-actions .accent-action{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:800}.row-actions .accent-action:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.posted-label{color:var(--good);font-size:10px}.empty-live{padding:34px;text-align:center;color:var(--muted)}@media(max-width:1000px){.live-form{grid-template-columns:repeat(2,minmax(150px,1fr))}}@media(max-width:640px){.page-toolbar{align-items:flex-start;flex-direction:column}.date-nav{width:100%;flex-wrap:wrap}.date-jump{flex:1 1}.date-jump input{min-width:135px}.live-form{grid-template-columns:1fr}.appointment-list-card{padding:10px}.live-table-wrap{border:0;margin-left:-10px;margin-right:-10px;border-radius:0}.schedule-entry-card{padding:13px}}a.primary-button,button[type=submit].primary-button{background:var(--accent);color:var(--accent-text)}a.primary-button:hover,button[type=submit].primary-button:hover{background:var(--accent-hover)}.appointment-status.arrived,.appointment-status.completed{color:#dbeaf5;border-color:var(--blue-border);background:var(--blue-soft)}.posted-label{color:var(--blue)}.date-jump button,.date-nav>a,.row-actions button{border-color:var(--line);background:#132b3b;color:var(--text)}.date-jump button:hover,.date-nav>a:hover,.row-actions button:hover{border-color:var(--blue-border);background:var(--blue-soft)}.metric-card strong,.section-heading h2,.sidebar-brand b,.topbar h1{color:var(--text)}.metric-card,.mobile-list-card,.panel-card{border-color:#2d4d61}.live-table-wrap{border-color:#33566d}.primary-button,a.primary-button,button[type=submit].primary-button{background:var(--accent);color:var(--accent-text)}.primary-button:hover,a.primary-button:hover,button[type=submit].primary-button:hover{background:var(--accent-hover)}.notification-lane{padding:12px 20px 0}.notification-banner{min-height:54px;display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:11px 14px;box-shadow:0 10px 28px rgba(0,0,0,.14)}.notification-banner.success{background:rgba(67,138,94,.24);border-color:rgba(112,187,140,.58)}.notification-banner.info{background:rgba(143,185,218,.1);border-color:var(--blue-border)}.notification-banner.warning{background:rgba(220,194,143,.13);border-color:rgba(220,194,143,.38)}.notification-banner.error{background:rgba(217,154,154,.12);border-color:rgba(217,154,154,.38)}.notification-icon{width:24px;height:24px;border-radius:999px;display:grid;place-items:center;flex:0 0 24px;font-size:13px;font-weight:900;color:var(--accent-text);background:var(--accent)}.notification-banner.success .notification-icon{background:#79c995;color:#0b2215}.notification-banner.info .notification-icon{background:var(--blue)}.notification-banner.error .notification-icon{background:var(--danger)}.notification-copy{min-width:0;display:flex;align-items:baseline;gap:8px;flex:1 1}.notification-copy b{font-size:12px;color:var(--text)}.notification-copy span{font-size:11px;color:var(--text);opacity:.92}.notification-close{width:30px;height:30px;display:grid;place-items:center;border:0;background:transparent;color:var(--text);border-radius:8px;font-size:20px;line-height:1}.notification-close:hover{background:rgba(255,255,255,.06)}@media(max-width:640px){.notification-lane{padding:10px 12px 0}.notification-banner{align-items:flex-start}.notification-copy,.notification-copy b,.notification-copy span{display:block}.notification-copy span{margin-top:3px;line-height:1.4}}.notification-banner.success .notification-copy b{color:#dff5e7}:root{--topbar-bg:rgba(11,23,34,.94);--input-bg:#102837;--button-bg:#132b3b}html[data-theme=light]{--bg:#f4f0e8;--sidebar:#fbf8f1;--panel:#fffdf8;--panel-2:#edf3f7;--line:#c9d6de;--text:#142330;--muted:#667784;--accent:#cbb68f;--accent-hover:#bea77d;--accent-soft:rgba(180,151,104,.14);--accent-border:rgba(148,116,69,.28);--accent-text:#13212d;--blue:#3f759d;--blue-hover:#315f80;--blue-soft:rgba(63,117,157,.10);--blue-border:rgba(63,117,157,.28);--good:#377659;--amber:#96702c;--danger:#a44f4f;--topbar-bg:rgba(244,240,232,.94);--input-bg:#ffffff;--button-bg:#edf3f7}.topbar{background:var(--topbar-bg)}.date-jump input,.live-form input,.live-form select{background:var(--input-bg)}.date-jump button,.date-nav>a,.row-actions button{background:var(--button-bg)}html[data-theme=light] .nav-item{color:#405260}html[data-theme=light] .live-table th{color:#213542}html[data-theme=light] .status-pill{color:#234b68}html[data-theme=light] .notification-banner.success{background:#e8f4ec}html[data-theme=light] .notification-banner.success .notification-copy b{color:#225437}html[data-theme=light] .notification-banner.success .notification-copy span{color:#1f3b2b}html[data-theme=light] .notification-close:hover{background:rgba(20,35,48,.06)}.topbar-actions{display:flex;align-items:center;gap:10px}.preference-switch{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--panel)}.preference-switch button{border:0;border-right:1px solid var(--line);background:transparent;color:var(--muted);padding:6px 8px;font-size:10px;font-weight:800}.preference-switch button:last-child{border-right:0}.preference-switch button.active{background:var(--blue-soft);color:var(--text)}.theme-toggle{width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--text);display:grid;place-items:center;font-size:16px}.theme-toggle:hover{background:var(--blue-soft)}@media(max-width:640px){.topbar-actions{gap:6px}.preference-switch button{padding:6px}.theme-toggle{width:32px;height:32px}}.live-table td,.live-table th{font-size:12px}.live-table td b{font-size:12.5px}.appointment-status{font-size:10px;font-weight:700}html[data-theme=light] .appointment-status.arrived,html[data-theme=light] .appointment-status.completed{color:#285b78;border-color:rgba(63,117,157,.34);background:rgba(63,117,157,.1)}html[data-theme=light] .appointment-status.cancelled,html[data-theme=light] .appointment-status.no_show{color:#8b3f3f;border-color:rgba(164,79,79,.34);background:rgba(164,79,79,.09)}