@import "https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg-page:#f5f2ed;--bg-card:#fff;--bg-subtle:#eeeae4;--bg-sidebar:#ebe7e1;--bg-input:#eeeae4;--bg-surface-raised:#fff;--border:#e8e4de;--border-light:#f0ede8;--text-primary:#2a2622;--text-secondary:#7a7570;--text-tertiary:#a9a39c;--text-inverse:#fff;--accent:#7c6fbf;--accent-hover:#6a5eae;--accent-muted:#eeeafa;--success:#7bc8a4;--success-bg:#e8f8f0;--warning:#d4b06a;--warning-bg:#fbf0da;--error:#c97878;--error-bg:#fbeded;--info:#89cff0;--info-bg:#ebf7ff;--ws-observer:#7c6fbf;--ws-observer-bg:#f2eff8;--ws-cosmo:#d4729a;--ws-cosmo-bg:#f8eef2;--ws-wmr:#729772;--ws-wmr-bg:#eef5ee;--ws-astro:#6052a8;--ws-astro-bg:#eeecf5;--ws-circadia:#5b8a6f;--ws-circadia-bg:#eef5f0;--shadow-0:none;--shadow-1:0 1px 3px #2a26220f, 0 1px 2px #2a26220a;--shadow-2:0 4px 12px #2a262212, 0 2px 4px #2a26220a;--shadow-3:0 12px 32px #2a262217, 0 4px 12px #2a26220d;--shadow-4:0 24px 48px #2a26221f, 0 8px 20px #2a26220f;--inset-subtle:inset 0 1px 0 #fff9;--font-heading:"DM Serif Display", Georgia, serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "SF Mono", Consolas, monospace;--text-page-title:600 40px/1.15 var(--font-body);--text-section:600 24px/1.3 var(--font-body);--text-card-title:500 16px/1.35 var(--font-body);--text-body:400 15px/1.6 var(--font-body);--text-body-small:400 13px/1.5 var(--font-body);--text-caption:500 12px/1.4 var(--font-body);--text-overline:600 10px/1.2 var(--font-body);--letter-tight:-.025em;--letter-display:-.03em;--letter-wide:.06em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--ease-out:.25s cubic-bezier(.16, 1, .3, 1);--ease-in:.15s cubic-bezier(.4, 0, 1, 1);--spring:.4s cubic-bezier(.16, 1, .3, 1)}.dark{--bg-page:#12101a;--bg-card:#1b1926;--bg-subtle:#211f30;--bg-sidebar:#0f0d17;--bg-input:#211f30;--bg-surface-raised:#252334;--border:#2a273a;--border-light:#211f30;--text-primary:#ebe7e1;--text-secondary:#9b97a8;--text-tertiary:#6b687b;--text-inverse:#12101a;--accent:#9b8fe0;--accent-hover:#aea3e8;--accent-muted:#2a2740;--success:#6bb894;--success-bg:#1a2e24;--warning:#c4a860;--warning-bg:#2e2618;--error:#c07070;--error-bg:#2e1a1a;--info:#6dbfe5;--info-bg:#1a2833;--ws-observer:#9b8fe0;--ws-observer-bg:#252240;--ws-cosmo:#d4729a;--ws-cosmo-bg:#2e1a28;--ws-wmr:#729772;--ws-wmr-bg:#1a2e1a;--ws-astro:#7a6dc8;--ws-astro-bg:#1e1c35;--ws-circadia:#7bb894;--ws-circadia-bg:#1a2e22;--shadow-1:0 1px 3px #0000004d, 0 1px 2px #00000040;--shadow-2:0 4px 12px #00000059, 0 2px 4px #00000040;--shadow-3:0 12px 32px #0006, 0 4px 12px #0000004d;--shadow-4:0 24px 48px #00000073, 0 8px 20px #00000059;--inset-subtle:inset 0 1px 0 #ffffff08}.dark[data-theme=jenn]{--bg-page:#08051a;--bg-card:#161032;--bg-subtle:#1e1838;--bg-sidebar:#0a0618;--bg-surface-raised:#1e1838;--border:#2a2050;--border-light:#1e1838;--accent:#a98ef0;--accent-hover:#bba5f5;--accent-muted:#2a2048;--text-secondary:#8f86a8;--text-tertiary:#5c5078;--success:#6bb894;--ws-observer:#a98ef0;--ws-observer-bg:#2a2048;--ws-astro:#d4a060;--ws-astro-bg:#2e2218;--shadow-1:0 1px 3px #0006, 0 1px 2px #00000059;--shadow-2:0 4px 16px #00000073, 0 2px 6px #00000059;--shadow-3:0 12px 36px #00000080, 0 4px 14px #0006;--shadow-4:0 24px 56px #0000008c, 0 8px 24px #00000073;--inset-subtle:inset 0 1px 0 #a98ef00f}.dark[data-theme=jon]{--bg-page:#0b1120;--bg-card:#141b2d;--bg-subtle:#1c2541;--bg-sidebar:#080e1a;--bg-surface-raised:#1c2541;--border:#2a3655;--border-light:#1c2541;--accent:#e0883a;--accent-hover:#ec9a50;--accent-muted:#d4813a26;--text-primary:#e8e6e1;--text-secondary:#9aa0b0;--text-tertiary:#5e687a;--text-inverse:#080e1a;--success:#10b981;--warning:#d4a060;--error:#c07070;--info:#6dbfe5;--ws-observer:#e0883a;--ws-observer-bg:#d4813a26;--ws-astro:#7a6dc8;--ws-astro-bg:#1e1c35;--ws-wmr:#e0883a;--ws-wmr-bg:#d4813a26;--shadow-1:0 1px 3px #0006, 0 1px 2px #00000059;--shadow-2:0 4px 16px #00000073, 0 2px 6px #00000059;--shadow-3:0 12px 36px #00000080, 0 4px 14px #0006;--shadow-4:0 24px 56px #0000008c, 0 8px 24px #00000073;--inset-subtle:inset 0 1px 0 #e0883a14}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.pl-back-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;align-items:center;gap:6px;padding:6px 12px 6px 8px;font-family:inherit;font-size:13px;font-weight:500;line-height:1;transition:all .15s cubic-bezier(.16,1,.3,1);display:inline-flex}.pl-back-btn:hover{background:var(--bg-subtle);color:var(--text-primary)}.pl-back-btn:hover .pl-back-label{opacity:1;max-width:60px}.pl-back-label{opacity:0;white-space:nowrap;max-width:0;font:500 13px/1 var(--font-body);transition:all .2s cubic-bezier(.16,1,.3,1);overflow:hidden}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;-webkit-tap-highlight-color:transparent;-webkit-overflow-scrolling:touch;-webkit-text-size-adjust:100%;overscroll-behavior:none;touch-action:manipulation}body{font:var(--text-body);color:var(--text-primary);background:var(--bg-page);transition:background var(--ease-out), color var(--ease-out);min-height:100vh;-webkit-overflow-scrolling:touch;min-height:-webkit-fill-available;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);overflow-x:hidden}#root{min-height:100vh;min-height:-webkit-fill-available;display:flex;overflow-x:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--text-tertiary);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}::selection{background:var(--accent-muted);color:var(--text-primary)}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}ul,ol{list-style:none}img{max-width:100%;display:block}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none}input,textarea,select{font:inherit;color:inherit}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.app-shell{min-height:100vh;display:flex}.app-content{flex:1;min-height:100vh;margin-left:300px;position:relative}.page-layout{width:100%;max-width:920px;animation:fadeSlideIn .4s var(--spring);padding:56px clamp(16px,5vw,64px)}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.page-header{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:44px;display:flex}.page-header-left{flex:1;min-width:0}.page-header-right{flex-shrink:0;align-items:center;gap:12px;display:flex}.page-title{font:var(--text-page-title);letter-spacing:var(--letter-display);color:var(--text-primary);margin:0}.page-subtitle{font:400 15px/1.5 var(--font-body);color:var(--text-secondary);letter-spacing:-.01em;align-items:center;gap:12px;margin-top:8px;display:flex}.header-badge{border-radius:var(--radius-full);background:var(--warning-bg);color:var(--warning);font:500 11px/1.4 var(--font-body);letter-spacing:.02em;align-items:center;gap:5px;padding:4px 12px;display:inline-flex}.page-content{flex-direction:column;gap:28px;display:flex}.hero-card{border-radius:var(--radius-lg);cursor:pointer;transition:transform .35s var(--spring), box-shadow .35s var(--ease-out);position:relative;overflow:hidden}.hero-card:hover{box-shadow:var(--shadow-3);transform:translateY(-3px)}.hero-bg{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 8%, transparent) 0%, color-mix(in srgb, var(--accent) 3%, transparent) 40%, var(--bg-card) 70%);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-2), var(--inset-subtle);position:absolute;inset:0}.hero-content{flex-direction:column;gap:20px;padding:36px 40px;display:flex;position:relative}.hero-top-row{align-items:flex-start;gap:28px;display:flex}.hero-time-block{flex-direction:column;flex-shrink:0;align-items:center;gap:6px;min-width:110px;display:flex}.hero-clock{font:600 38px/1 var(--font-body);letter-spacing:var(--letter-display);color:var(--text-primary)}.hero-label{font:500 11px/1 var(--font-body);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:5px;display:flex}.hero-divider{background:var(--border);flex-shrink:0;align-self:center;width:1px;height:56px}.hero-details{flex:1;grid-template-columns:1fr 1fr;gap:12px 32px;display:grid}.hero-detail{flex-direction:column;gap:2px;display:flex}.hero-detail-label{font:500 10px/1.2 var(--font-body);text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary)}.hero-detail-value{font:500 16px/1.3 var(--font-body);color:var(--text-primary);letter-spacing:-.01em}.hero-detail-note{font:400 13px/1.4 var(--font-body);color:var(--text-tertiary)}.hero-secondary{border-top:1px solid var(--border-light);gap:32px;padding-top:16px;display:flex}.hero-stat{flex-direction:column;gap:1px;display:flex}.hero-stat-num{font:600 20px/1.2 var(--font-body);color:var(--text-primary);letter-spacing:var(--letter-tight)}.hero-stat-label{font:400 11px/1.4 var(--font-body);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em}.hero-stat-warn .hero-stat-num{color:var(--warning)}.no-event-card{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 6%, transparent) 0%, var(--bg-subtle) 100%)!important}.no-event-content{align-items:center;gap:16px;display:flex}.no-event-icon{color:var(--text-tertiary);flex-shrink:0}.no-event-title{font:500 16px/1.4 var(--font-body);color:var(--text-primary)}.no-event-sub{font:400 14px/1.5 var(--font-body);color:var(--text-tertiary);margin-top:2px}.today-mini-list{flex-direction:column;display:flex}.today-mini-row{border-bottom:1px solid var(--border-light);align-items:center;gap:12px;padding:11px 0;display:flex}.today-mini-row:last-child{border-bottom:none}.today-mini-dot{border-radius:var(--radius-full);flex-shrink:0;width:7px;height:7px}.today-mini-time{font:500 13px/1.4 var(--font-mono);color:var(--text-secondary);letter-spacing:-.02em;min-width:76px}.today-mini-title{font:400 14px/1.4 var(--font-body);color:var(--text-primary);letter-spacing:-.01em;flex:1}.today-mini-badge{font:500 10px/1.3 var(--font-body);text-transform:uppercase;letter-spacing:.06em;border-radius:var(--radius-full);background:var(--accent-muted);color:var(--accent);padding:2px 10px}.home-bottom-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}@media (width<=720px){.home-bottom-grid{grid-template-columns:1fr}}.workspace-strip{flex-direction:column;gap:6px;display:flex}.ws-chip{border-radius:var(--radius-md);background:var(--bg-subtle);cursor:pointer;font:500 14px/1.4 var(--font-body);color:var(--text-primary);transition:all .2s var(--ease-out);text-align:left;border:1px solid #0000;align-items:center;gap:10px;width:100%;padding:12px 14px;display:flex}.ws-chip:hover{background:color-mix(in srgb, var(--ws-accent,var(--accent)) 10%, transparent);border-color:color-mix(in srgb, var(--ws-accent,var(--accent)) 20%, transparent);color:var(--ws-accent,var(--accent));transform:translate(4px)}.ws-chip svg{color:var(--ws-accent,var(--accent));transition:transform .2s var(--ease-out);flex-shrink:0}.ws-chip:hover svg{transform:scale(1.1)}.brief-mini{align-items:center;gap:20px;display:flex}.brief-mini-stat{flex-direction:column;gap:2px;display:flex}.brief-mini-num{font:600 22px/1.2 var(--font-body);color:var(--text-primary);letter-spacing:var(--letter-tight)}.brief-mini-label{font:400 12px/1.4 var(--font-body);color:var(--text-tertiary)}.brief-mini-dot{border-radius:var(--radius-full);background:var(--border);width:4px;height:4px}.brief-card-clickable{cursor:pointer;transition:transform .2s var(--ease-out), box-shadow .2s var(--ease-out)}.brief-card-clickable:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border);z-index:100;flex-direction:column;justify-content:space-between;width:300px;height:100vh;display:flex;position:fixed;top:0;left:0}.sidebar-inner{flex-direction:column;flex:1;gap:28px;padding:32px 16px 20px;display:flex;overflow-y:auto}.sidebar-logo{border-bottom:1px solid var(--border-light);flex-direction:column;gap:4px;margin:0 0 4px;padding:4px 4px 16px;display:flex}.sidebar-platform-row{align-items:center;gap:10px;display:flex}.sidebar-logo-img{object-fit:cover;border-radius:8px;flex-shrink:0;width:32px;height:32px}.logo-text{font:600 16px/1.2 var(--font-body);color:var(--text-primary);letter-spacing:var(--letter-tight)}.sidebar-subtitle{font:400 11px/1.3 var(--font-body);color:var(--text-tertiary);letter-spacing:.04em;padding:0 12px 4px}.workspace-switcher{width:100%;position:relative}.workspace-switcher-trigger{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);width:100%;color:var(--text-secondary);cursor:pointer;font:500 11px/1.3 var(--font-body);transition:background var(--ease-out), border-color var(--ease-out);align-items:center;gap:6px;padding:5px 8px;display:flex}.workspace-switcher-trigger:hover{background:var(--bg-input);border-color:var(--accent-muted)}.workspace-switcher-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.workspace-switcher-name{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.workspace-switcher-arrow{opacity:.5;flex-shrink:0;font-size:7px}.workspace-switcher-dropdown{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);min-width:220px;box-shadow:var(--shadow-3);z-index:100;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden}.workspace-switcher-section{padding:4px}.workspace-switcher-section+.workspace-switcher-section{border-top:1px solid var(--border-light)}.workspace-switcher-section-label{font:500 9px/1.2 var(--font-body);text-transform:uppercase;letter-spacing:.1em;color:var(--text-tertiary);opacity:.5;padding:4px 8px 6px;display:block}.workspace-switcher-item{border-radius:var(--radius-sm);width:100%;color:var(--text-primary);cursor:pointer;font:400 12px/1.4 var(--font-body);text-align:left;transition:background var(--ease-out);background:0 0;border:none;align-items:center;gap:8px;padding:6px 8px;display:flex}.workspace-switcher-item:hover{background:var(--bg-subtle)}.workspace-switcher-item.active{background:var(--accent-muted)}.workspace-switcher-item.placeholder{cursor:default;opacity:.7}.workspace-switcher-item.placeholder:hover{background:0 0}.workspace-switcher-item-icon{text-align:center;flex-shrink:0;width:20px;font-size:14px}.workspace-switcher-item-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.workspace-switcher-item-name{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;overflow:hidden}.workspace-switcher-item-owner{color:var(--text-tertiary);font-size:10px}.workspace-switcher-check{color:var(--success);flex-shrink:0;font-size:11px}.workspace-switcher-lock{opacity:.5;flex-shrink:0;font-size:10px}.sidebar-nav{flex-direction:column;gap:4px;display:flex}.sidebar-label{font:500 10px/1.2 var(--font-body);text-transform:uppercase;letter-spacing:.1em;color:var(--text-tertiary);opacity:.45;padding:8px 12px}.sidebar-item{color:var(--text-secondary);font:400 14px/1.4 var(--font-body);transition:all .15s var(--ease-out);border-radius:8px;align-items:center;gap:12px;padding:10px 14px;text-decoration:none;display:flex;position:relative}.sidebar-item:hover{background:color-mix(in srgb, var(--text-primary) 4%, transparent);color:var(--text-primary)}.sidebar-item.active{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--accent);border-radius:20px;font-weight:500}.sidebar-item.workspace.active{color:var(--ws-accent,var(--accent));background:color-mix(in srgb, var(--ws-accent,var(--accent)) 18%, transparent);border-radius:20px}.sidebar-item.workspace.active:before{display:none}.sidebar-item-icon{opacity:.8;transition:opacity .15s var(--ease-out);flex-shrink:0}.sidebar-item:hover .sidebar-item-icon,.sidebar-item.active .sidebar-item-icon{opacity:1}.sidebar-item-label{transition:transform .15s var(--ease-out)}.sidebar-item:hover .sidebar-item-label{transform:translate(2px)}.sidebar-footer{border-top:1px solid var(--border);flex-direction:column;gap:4px;padding:12px 12px 20px;display:flex}.sidebar-theme-toggle{border-radius:var(--radius-md);color:var(--text-secondary);font:400 14px/1.4 var(--font-body);transition:all .15s var(--ease-out);cursor:pointer;background:0 0;border:none;align-items:center;gap:12px;width:100%;padding:9px 12px;display:flex}.sidebar-theme-toggle:hover{background:color-mix(in srgb, var(--text-primary) 4%, transparent);color:var(--text-primary)}.sidebar-user{align-items:center;gap:10px;padding:8px 12px;display:flex}.sidebar-avatar{border-radius:var(--radius-full);background:var(--accent-muted);width:28px;height:28px;color:var(--accent);border:1.5px solid var(--border-light);justify-content:center;align-items:center;display:flex}.sidebar-user-name{font:500 13px/1.4 var(--font-body);color:var(--text-secondary)}.sidebar-user-card{cursor:pointer;background:var(--accent-bg,#6366f10f);border:1px solid var(--border-color,#e5e7eb);border-radius:10px;align-items:center;gap:10px;margin:0 8px 4px;padding:10px 16px;transition:background .15s;display:flex}.sidebar-user-card:hover{background:var(--accent-bg-hover,#6366f11f)}.sidebar-user-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.sidebar-user-info{flex-direction:column;min-width:0;display:flex}.sidebar-user-display{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.sidebar-user-role{color:var(--text-tertiary);font-size:11px}.sidebar-logged-in{color:#10b981;align-items:center;gap:5px;margin-top:2px;font-size:11px;display:flex}.sidebar-logged-dot{background:#10b981;border-radius:50%;flex-shrink:0;width:6px;height:6px}.sidebar-other-users{border-bottom:1px solid var(--border-color,#e5e7eb);flex-direction:column;gap:2px;margin:0 8px 8px;padding:0 8px 8px;display:flex}.sidebar-other-users .sidebar-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary);padding:4px 8px 2px;font-size:10px}.sidebar-other-user-btn{color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;width:100%;padding:6px 8px;font-size:12px;transition:all .12s;display:flex}.sidebar-other-user-btn:hover{background:var(--card-bg-hover,#f3f4f6);color:var(--text-primary)}.sidebar-collapse-btn{width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;transition:all .15s var(--ease-out);z-index:2;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:flex;position:absolute;top:12px;right:8px}.sidebar-collapse-btn:hover{background:color-mix(in srgb, var(--text-primary) 6%, transparent);color:var(--text-secondary)}.sidebar.collapsed{width:64px;transition:width .2s var(--ease-out)}.sidebar.collapsed .sidebar-inner{align-items:center;padding:32px 8px 20px}.sidebar.collapsed .sidebar-logo{align-items:center;padding:4px 0 12px}.sidebar.collapsed .sidebar-platform-row{justify-content:center}.sidebar.collapsed .sidebar-subtitle{display:none}.sidebar.collapsed .sidebar-user-summary{justify-content:center;margin:0 0 8px;padding:6px 8px}.sidebar.collapsed .sidebar-user-summary .sidebar-user-info{display:none}.sidebar.collapsed .sidebar-nav{align-items:center}.sidebar.collapsed .sidebar-label{display:none}.sidebar.collapsed .sidebar-item{justify-content:center;width:44px;height:44px;padding:10px}.sidebar.collapsed .sidebar-item .sidebar-item-label{display:none}.sidebar.collapsed .sidebar-footer{align-items:center;padding:8px 8px 16px}.sidebar.collapsed .sidebar-footer .sidebar-item-label{display:none}.sidebar.collapsed.hover-expand{width:300px;transition:width .12s var(--ease-out)}.sidebar.collapsed.hover-expand .sidebar-inner{align-items:stretch;padding:32px 16px 20px}.sidebar.collapsed.hover-expand .sidebar-logo{align-items:flex-start}.sidebar.collapsed.hover-expand .sidebar-platform-row{justify-content:flex-start;gap:10px}.sidebar.collapsed.hover-expand .sidebar-subtitle{display:block}.sidebar.collapsed.hover-expand .sidebar-user-summary{justify-content:flex-start;padding:10px 12px}.sidebar.collapsed.hover-expand .sidebar-user-summary .sidebar-user-info{display:flex}.sidebar.collapsed.hover-expand .sidebar-nav{align-items:stretch}.sidebar.collapsed.hover-expand .sidebar-label{display:block}.sidebar.collapsed.hover-expand .sidebar-item{justify-content:flex-start;width:auto;height:auto;padding:10px 14px}.sidebar.collapsed.hover-expand .sidebar-item .sidebar-item-label{display:inline}.sidebar.collapsed.hover-expand .sidebar-footer{align-items:stretch;padding:12px 12px 20px}.sidebar.collapsed.hover-expand .sidebar-footer .sidebar-item-label{display:inline}.app-shell:has(.sidebar.collapsed:not(.hover-expand)) .app-content{margin-left:64px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sidebar-logout-btn{color:var(--text-tertiary);transition:color .15s var(--ease-out)}.sidebar-logout-btn:hover{color:#ef4444!important}.sidebar-toggle{top:calc(12px + env(safe-area-inset-top,0px));left:calc(12px + env(safe-area-inset-left,0px));z-index:110;border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border);width:44px;min-width:44px;height:44px;min-height:44px;color:var(--text-primary);cursor:pointer;box-shadow:var(--shadow-2);transition:all .2s var(--ease-out);-webkit-tap-highlight-color:transparent;touch-action:manipulation;justify-content:center;align-items:center;display:none;position:fixed}.sidebar-toggle:hover{background:var(--bg-subtle)}.sidebar-toggle:active{transform:scale(.95)}.sidebar-overlay{z-index:95;opacity:0;transition:opacity .25s var(--ease-out);-webkit-tap-highlight-color:transparent;background:#00000059;display:none;position:fixed;inset:0}.sidebar-overlay.visible{opacity:1;display:block}.card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);transition:box-shadow .3s var(--ease-out), transform .3s var(--ease-out);border:1px solid var(--border)}.section-card{padding:24px}.section-card.tight{padding:20px 24px}.card-link{font:400 13px/1.4 var(--font-body);color:var(--accent);cursor:pointer;transition:color .15s var(--ease-out), gap .2s var(--ease-out);background:0 0;border:none;align-items:center;gap:4px;padding:0;display:flex}.card-link:hover{color:var(--accent-hover);gap:6px}.card-chevron{color:var(--text-tertiary)}.card-subtitle{font:400 13px/1.4 var(--font-body);color:var(--text-tertiary)}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;display:grid}.two-col{grid-template-columns:1fr 1fr;gap:20px;display:grid}@media (width<=768px){.two-col{grid-template-columns:1fr}}.stat-card{align-items:center;gap:14px;padding:18px 20px;display:flex}.stat-icon{border-radius:var(--radius-md);background:var(--bg-subtle);flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.stat-body{flex-direction:column;gap:1px;display:flex}.stat-value{font:600 22px/1.2 var(--font-body);color:var(--text-primary);letter-spacing:var(--letter-tight)}.stat-label{font:400 12px/1.4 var(--font-body);color:var(--text-secondary)}.stat-subvalue{font:400 11px/1.4 var(--font-body);color:var(--text-tertiary)}.section-subtitle{font:500 13px/1.4 var(--font-body);color:var(--text-secondary);letter-spacing:var(--letter-tight);margin-bottom:12px}.week-days-header{grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:24px;display:grid}.week-day{border-radius:var(--radius-md);flex-direction:column;align-items:center;gap:4px;padding:8px 4px;display:flex}.week-day.today{background:var(--accent-muted);box-shadow:inset 0 0 0 1.5px var(--accent)}.week-day-name{font:500 10px/1.2 var(--font-body);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em}.week-day-num{font:600 20px/1.2 var(--font-body);color:var(--text-primary);letter-spacing:var(--letter-tight)}.weekly-hours{flex-direction:column;gap:10px;display:flex}.week-row{align-items:center;gap:12px;display:flex}.week-label{font:400 13px/1.4 var(--font-body);color:var(--text-secondary);min-width:80px}.week-bar-wrapper{flex:1}.week-hours{font:500 14px/1.4 var(--font-body);color:var(--text-primary);text-align:right;min-width:36px}.week-days{font:400 11px/1.4 var(--font-body);color:var(--text-tertiary);min-width:24px}.pending-list{flex-direction:column;display:flex}.pending-row{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:12px 0;display:flex}.pending-row:last-child{border-bottom:none}.pending-file{flex-direction:column;gap:2px;display:flex}.pending-name{font:500 14px/1.4 var(--font-body);color:var(--text-primary)}.pending-meta{font:400 12px/1.4 var(--font-body);color:var(--text-tertiary)}.pending-actions{gap:8px;display:flex}.btn-approve{border-radius:var(--radius-md);background:var(--success);color:#fff;font:500 13px/1.4 var(--font-body);cursor:pointer;transition:all .15s var(--ease-out);border:none;padding:6px 16px}.btn-approve:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 2px 8px #7bc8a459}.btn-reject{border-radius:var(--radius-md);color:var(--text-secondary);font:500 13px/1.4 var(--font-body);border:1px solid var(--border);cursor:pointer;transition:all .15s var(--ease-out);background:0 0;padding:6px 16px}.btn-reject:hover{background:var(--error-bg);color:var(--error);border-color:var(--error)}.audit-summary{gap:32px;display:flex}.audit-stat{flex-direction:column;gap:2px;display:flex}.audit-num{font:600 26px/1.2 var(--font-body);color:var(--text-primary);letter-spacing:var(--letter-tight)}.audit-label{font:400 12px/1.4 var(--font-body);color:var(--text-tertiary)}.intel-stats{flex-direction:column;display:flex}.intel-row{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:10px 0;display:flex}.intel-row:last-child{border-bottom:none}.intel-row span{font:400 14px/1.4 var(--font-body);color:var(--text-secondary)}.intel-row strong{font:500 14px/1.4 var(--font-body);color:var(--text-primary)}.priority-list{flex-direction:column;gap:10px;display:flex}.priority-row{align-items:center;gap:12px;display:flex}.priority-check{flex-shrink:0}.check-box{border:2px solid var(--border);border-radius:var(--radius-sm);width:18px;height:18px;transition:all .15s var(--ease-out);flex-shrink:0}.priority-row:hover .check-box{border-color:var(--accent)}.priority-text{font:400 14px/1.5 var(--font-body);color:var(--text-primary)}.drive-list{flex-direction:column;display:flex}.drive-row{border-bottom:1px solid var(--border-light);align-items:center;gap:12px;padding:10px 0;display:flex}.drive-row:last-child{border-bottom:none}.drive-icon{color:var(--accent);flex-shrink:0}.drive-name{font:400 14px/1.4 var(--font-body);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.drive-date{font:400 12px/1.4 var(--font-body);color:var(--text-tertiary);flex-shrink:0}.class-list{flex-direction:column;display:flex}.class-row{border-bottom:1px solid var(--border-light);align-items:center;gap:16px;padding:12px 0;display:flex}.class-row:last-child{border-bottom:none}.class-time{font:500 15px/1.4 var(--font-body);color:var(--text-primary);min-width:70px}.class-info{flex-direction:column;flex:1;gap:2px;display:flex}.class-name{font:500 14px/1.4 var(--font-body);color:var(--text-primary)}.class-room{font:400 12px/1.4 var(--font-body);color:var(--text-tertiary)}.student-table{flex-direction:column;display:flex}.student-header,.student-row{grid-template-columns:1.5fr 1fr 1fr 1.5fr;align-items:center;gap:12px;padding:10px 0;display:grid}.student-header{font:500 10px/1.2 var(--font-body);text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);border-bottom:1px solid var(--border)}.student-row{border-bottom:1px solid var(--border-light)}.student-row:last-child{border-bottom:none}.student-name{font:500 14px/1.4 var(--font-body);color:var(--text-primary)}.student-level{font:400 13px/1.4 var(--font-body);color:var(--text-secondary)}.student-attend{font:500 14px/1.4 var(--font-body);color:var(--text-primary)}.student-attend.low{color:var(--error)}.student-progress{width:100%}.tool-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}@media (width<=768px){.tool-grid{grid-template-columns:repeat(2,1fr)}}.tool-card{border-radius:var(--radius-md);background:var(--bg-subtle);cursor:pointer;transition:all .2s var(--ease-out);color:var(--text-secondary);border:1px solid #0000;flex-direction:column;align-items:center;gap:8px;padding:20px 12px;display:flex}.tool-card:hover{background:var(--bg-card);border-color:var(--border);color:var(--accent);box-shadow:var(--shadow-2);transform:translateY(-2px)}.tool-card span{font:500 13px/1.4 var(--font-body)}.tool-status{font:400 11px/1.4 var(--font-body);color:var(--text-tertiary)}.jobs-table{flex-direction:column;display:flex}.jobs-header,.job-row{grid-template-columns:80px 1.2fr 1.5fr 1fr 90px;align-items:center;gap:12px;padding:10px 0;display:grid}.jobs-header{font:500 10px/1.2 var(--font-body);text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);border-bottom:1px solid var(--border)}.job-row{border-bottom:1px solid var(--border-light)}.job-row:last-child{border-bottom:none}.job-id{font:500 13px/1.4 var(--font-mono);color:var(--ws-wmr)}.job-customer{font:500 14px/1.4 var(--font-body);color:var(--text-primary)}.job-vehicle{font:400 13px/1.4 var(--font-body);color:var(--text-secondary)}.job-estimate{font:500 14px/1.4 var(--font-body);color:var(--text-primary);text-align:right}.doc-list{flex-direction:column;display:flex}.doc-row{border-bottom:1px solid var(--border-light);font:400 14px/1.4 var(--font-body);color:var(--text-primary);align-items:center;gap:12px;padding:10px 0;display:flex}.doc-row:last-child{border-bottom:none}.doc-row svg{color:var(--ws-wmr);flex-shrink:0}.doc-date{font:400 12px/1.4 var(--font-body);color:var(--text-tertiary);margin-left:auto}.comm-list{flex-direction:column;display:flex}.comm-row{border-bottom:1px solid var(--border-light);align-items:center;gap:12px;padding:10px 0;display:flex}.comm-row:last-child{border-bottom:none}.comm-from{font:500 13px/1.4 var(--font-body);color:var(--text-primary);min-width:120px}.comm-msg{font:400 13px/1.4 var(--font-body);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.projects-list{flex-direction:column;gap:16px;display:flex}.project-card-content{gap:20px;display:flex}.project-icon-wrapper{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.project-info{flex-direction:column;flex:1;gap:8px;display:flex}.project-header{align-items:center;gap:12px;display:flex}.project-name{font:500 16px/1.3 var(--font-body);color:var(--text-primary);letter-spacing:var(--letter-tight);margin:0}.project-desc{font:400 13px/1.5 var(--font-body);color:var(--text-secondary)}.project-meta{gap:16px;display:flex}.project-version{font:400 12px/1.4 var(--font-mono);color:var(--text-tertiary)}.project-updated{font:400 12px/1.4 var(--font-body);color:var(--text-tertiary)}.project-progress-row{align-items:center;gap:12px;display:flex}.project-pct{font:500 13px/1.4 var(--font-body);color:var(--text-secondary);text-align:right;min-width:32px}.completed-list{flex-direction:column;display:flex}.completed-row{border-bottom:1px solid var(--border-light);font:400 14px/1.4 var(--font-body);color:var(--text-primary);align-items:center;gap:12px;padding:10px 0;display:flex}.completed-row:last-child{border-bottom:none}.completed-icon{color:var(--success);flex-shrink:0}.completed-date{font:400 12px/1.4 var(--font-body);color:var(--text-tertiary);margin-left:auto}.settings-section{margin-bottom:28px}.settings-section-title{font:500 10px/1.2 var(--font-body);text-transform:uppercase;letter-spacing:.1em;color:var(--text-tertiary);opacity:.5;margin-bottom:12px;padding-left:2px}.settings-section-body{flex-direction:column;display:flex}.setting-row{border-bottom:1px solid var(--border-light);cursor:pointer;transition:all .15s var(--ease-out);align-items:center;gap:12px;padding:14px 0;display:flex}.setting-row:last-child{border-bottom:none}.setting-row:hover{padding-left:4px}.setting-icon{color:var(--text-secondary);flex-shrink:0}.setting-info{flex-direction:column;flex:1;gap:2px;display:flex}.setting-label{font:400 14px/1.4 var(--font-body);color:var(--text-primary)}.setting-value{font:400 12px/1.4 var(--font-body);color:var(--text-tertiary)}.setting-chevron{color:var(--text-tertiary)}.profile-card-content{align-items:center;gap:20px;display:flex}.profile-avatar{border-radius:var(--radius-full);background:var(--accent-muted);width:60px;height:60px;color:var(--accent);border:2px solid var(--border-light);justify-content:center;align-items:center;display:flex}.profile-info h3{font:500 20px/1.3 var(--font-body);color:var(--text-primary);letter-spacing:var(--letter-tight);margin:0}.profile-info p{font:400 14px/1.5 var(--font-body);color:var(--text-secondary);margin-top:2px}.profile-meta{font:400 13px/1.5 var(--font-body)!important;color:var(--text-tertiary)!important}.toggle{border-radius:var(--radius-full);cursor:pointer;width:40px;height:22px;transition:background .25s var(--ease-out);flex-shrink:0;position:relative}.toggle.on{background:var(--accent)}.toggle.off{background:var(--border)}.toggle.on:after{content:"";border-radius:var(--radius-full);width:18px;height:18px;transition:transform .25s var(--spring);background:#fff;position:absolute;top:2px;right:2px;box-shadow:0 1px 3px #00000026}.toggle.off:after{content:"";border-radius:var(--radius-full);width:18px;height:18px;transition:transform .25s var(--spring);background:#fff;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000026}.calendar-root{flex-direction:column;gap:20px;display:flex}.calendar-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.calendar-nav{align-items:center;gap:8px;display:flex}.cal-nav-arrows{align-items:center;gap:2px;display:flex}.cal-btn{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;font:500 13px/1 var(--font-body);transition:all .15s var(--ease-out);white-space:nowrap;justify-content:center;align-items:center;gap:6px;display:inline-flex}.cal-btn:hover{background:var(--bg-subtle);color:var(--text-primary);border-color:var(--text-tertiary)}.cal-btn-sm{padding:7px 14px}.cal-btn-icon{background:0 0;border:none;width:34px;height:34px;padding:0}.cal-btn-icon:hover{background:var(--bg-subtle)}.calendar-view-toggle{border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;display:flex;overflow:hidden}.cal-view-btn{color:var(--text-tertiary);font:500 13px/1 var(--font-body);cursor:pointer;transition:all .15s var(--ease-out);border:none;border-right:1px solid var(--border);background:0 0;align-items:center;gap:6px;padding:7px 14px;display:inline-flex}.cal-view-btn:last-child{border-right:none}.cal-view-btn:hover{color:var(--text-primary);background:var(--bg-subtle)}.cal-view-btn.active{color:var(--accent);background:var(--accent-muted)}.calendar-body{grid-template-columns:1fr 320px;align-items:start;gap:20px;display:grid}.calendar-grid-wrap{min-height:200px;position:relative}.calendar-loading{color:var(--text-tertiary);font:400 14px/1.5 var(--font-body);justify-content:center;align-items:center;gap:10px;padding:60px 20px;display:flex}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.cal-month-grid{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden}.cal-dow-row{border-bottom:1px solid var(--border);grid-template-columns:repeat(7,1fr);display:grid}.cal-dow{text-align:center;font:500 11px/1.2 var(--font-body);text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);padding:10px 4px}.cal-days-grid{grid-template-columns:repeat(7,1fr);display:grid}.cal-day{cursor:pointer;min-height:72px;transition:background .15s var(--ease-out);background:0 0;border:none;flex-direction:column;align-items:center;gap:2px;width:100%;padding:6px 2px;font-family:inherit;display:flex;position:relative}.cal-day:hover{background:var(--bg-subtle)}.cal-day-empty{cursor:default;background:0 0}.cal-day-num{font:400 14px/1.3 var(--font-body);color:var(--text-secondary);border-radius:var(--radius-full);width:28px;height:28px;transition:all .15s var(--ease-out);justify-content:center;align-items:center;display:flex}.cal-day.today .cal-day-num{background:var(--accent);color:#fff;font-weight:600}.cal-day.selected .cal-day-num{outline:2px solid var(--accent);outline-offset:2px}.cal-day.today.selected .cal-day-num{background:var(--accent);color:#fff;outline:2px solid var(--accent-hover)}.cal-day-dots{flex-wrap:wrap;justify-content:center;align-items:center;gap:3px;min-height:8px;display:flex}.cal-dot{border-radius:var(--radius-full);flex-shrink:0;width:6px;height:6px}.cal-dot-more{font:400 9px/1 var(--font-body);color:var(--text-tertiary);padding-left:1px}.cal-week-view{flex-direction:column;gap:16px;display:flex}.cal-week-header{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.cal-week-day{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);cursor:pointer;transition:all .15s var(--ease-out);flex-direction:column;align-items:center;gap:4px;padding:10px 4px;font-family:inherit;display:flex}.cal-week-day:hover,.cal-week-day.today{border-color:var(--accent);background:var(--accent-muted)}.cal-week-day.selected{border-color:var(--accent);background:var(--accent-muted);box-shadow:0 0 0 2px var(--accent-muted)}.cal-week-day-name{font:500 10px/1 var(--font-body);text-transform:uppercase;color:var(--text-tertiary);letter-spacing:.04em}.cal-week-day-num{font:600 16px/1 var(--font-body);color:var(--text-primary)}.cal-week-day-dots{gap:2px;min-height:6px;display:flex}.cal-week-events{flex-direction:column;gap:8px;display:flex}.cal-day-view{flex-direction:column;gap:16px;display:flex}.cal-day-view-header{font:500 20px/1.3 var(--font-body);color:var(--text-primary);border-bottom:1px solid var(--border);padding-bottom:8px}.cal-day-events{flex-direction:column;gap:8px;display:flex}.cal-day-empty-state{color:var(--text-tertiary);flex-direction:column;align-items:center;gap:12px;padding:60px 20px;display:flex}.cal-empty-icon{opacity:.4}.calendar-events-panel{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);flex-direction:column;max-height:520px;display:flex;overflow:hidden}.cal-panel-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.cal-panel-title{font:500 14px/1.3 var(--font-body);color:var(--text-primary);margin:0}.cal-panel-count{font:400 12px/1 var(--font-body);color:var(--text-tertiary);background:var(--bg-subtle);border-radius:var(--radius-full);padding:3px 8px}.cal-panel-body{flex:1;padding:12px 16px;overflow-y:auto}.cal-panel-empty{color:var(--text-tertiary);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:40px 20px;display:flex}.cal-panel-empty p{font:400 13px/1.5 var(--font-body);margin:0}.cal-panel-events{flex-direction:column;gap:6px;display:flex}.cal-event-card{border:1px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;transition:all .15s var(--ease-out);text-align:left;background:0 0;align-items:flex-start;gap:0;width:100%;padding:0;font-family:inherit;display:flex;overflow:hidden}.cal-event-card:hover{border-color:var(--border);background:var(--bg-subtle)}.cal-event-card.selected{border-color:var(--accent);background:var(--accent-muted)}.cal-event-accent{flex-shrink:0;align-self:stretch;width:4px;min-height:100%}.cal-event-body{flex-direction:column;flex:1;gap:4px;min-width:0;padding:10px 12px;display:flex}.cal-event-top{align-items:center;gap:8px;display:flex}.cal-event-title{font:500 13px/1.4 var(--font-body);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.cal-event-badge{font:500 9px/1 var(--font-body);text-transform:uppercase;letter-spacing:.04em;border-radius:var(--radius-sm);flex-shrink:0;padding:2px 6px}.cal-event-badge.focus{color:#2e7d32;background:#e8f5e9}.dark .cal-event-badge.focus{color:#81c784;background:#2e7d3226}.cal-event-badge.ooo{color:#e65100;background:#fff3e0}.dark .cal-event-badge.ooo{color:#ffb74d;background:#e6510026}.cal-event-time,.cal-event-location,.cal-event-meta{font:400 12px/1.4 var(--font-body);color:var(--text-tertiary);align-items:center;gap:4px;display:flex}.cal-event-desc-preview{font:400 12px/1.4 var(--font-body);color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cal-event-link{font:400 11px/1.4 var(--font-body);color:var(--accent);align-items:center;gap:4px;display:flex}.cal-event-chevron{color:var(--text-tertiary);transition:transform .2s var(--ease-out);flex-shrink:0;margin:10px 12px 0 0}.cal-event-chevron.open{transform:rotate(90deg)}.cal-empty{font:400 14px/1.5 var(--font-body);color:var(--text-tertiary);text-align:center;padding:24px 16px}.cal-detail-overlay{z-index:100;background:#0006;justify-content:center;align-items:center;padding:20px;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.cal-detail-panel{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);width:100%;max-width:480px;max-height:80vh;box-shadow:var(--shadow-3);animation:slideUp .2s var(--ease-out);overflow-y:auto}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.cal-detail-header{border-bottom:1px solid var(--border-light);align-items:center;gap:12px;padding:20px 20px 16px;display:flex}.cal-detail-accent{border-radius:var(--radius-sm);flex-shrink:0;width:6px;height:32px}.cal-detail-title{font:600 18px/1.3 var(--font-body);color:var(--text-primary);flex:1;margin:0}.cal-detail-close{flex-shrink:0}.cal-detail-body{flex-direction:column;gap:14px;padding:16px 20px 20px;display:flex}.cal-detail-row{color:var(--text-secondary);align-items:flex-start;gap:10px;display:flex}.cal-detail-row svg{color:var(--text-tertiary);flex-shrink:0;margin-top:2px}.cal-detail-row strong{font:500 13px/1.4 var(--font-body);color:var(--text-primary);margin-bottom:2px;display:block}.cal-detail-row p,.cal-detail-row a{font:400 13px/1.5 var(--font-body);color:var(--text-secondary);margin:0}.cal-detail-row a{color:var(--accent);word-break:break-all;text-decoration:none}.cal-detail-row a:hover{text-decoration:underline}.cal-detail-desc strong{font:500 13px/1.4 var(--font-body);color:var(--text-primary);margin-bottom:4px;display:block}.cal-detail-desc p{font:400 13px/1.6 var(--font-body);color:var(--text-secondary);white-space:pre-wrap;margin:0}.cal-detail-attendees strong{font:500 13px/1.4 var(--font-body);color:var(--text-primary);margin-bottom:8px;display:block}.cal-attendee-list{flex-direction:column;gap:4px;display:flex}.cal-attendee{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:6px 0;display:flex}.cal-attendee:last-child{border-bottom:none}.cal-attendee-name{font:400 13px/1.4 var(--font-body);color:var(--text-primary)}.cal-attendee-status{font:500 12px/1 var(--font-body);border-radius:var(--radius-full);justify-content:center;align-items:center;width:20px;height:20px;display:flex}.cal-attendee-status.accepted{color:var(--success);background:var(--success-bg)}.cal-attendee-status.declined{color:var(--error);background:var(--error-bg)}.cal-attendee-status.needsAction{color:var(--text-tertiary);background:var(--bg-subtle)}.cal-detail-open{border:1px solid var(--border);border-radius:var(--radius-md);font:500 13px/1 var(--font-body);color:var(--accent);transition:all .15s var(--ease-out);align-self:flex-start;align-items:center;gap:6px;padding:8px 16px;text-decoration:none;display:inline-flex}.cal-day.has-conflict{position:relative}.cal-day-conflict-dot{background:var(--error);z-index:1;border-radius:50%;width:6px;height:6px;position:absolute;top:4px;right:4px}.cal-day.day-off .cal-day-num{opacity:.4}.cal-week-day.has-conflict{position:relative}.cal-week-conflict-dot{background:var(--error);border-radius:50%;width:5px;height:5px;position:absolute;top:2px;right:2px}.cal-day-view-header{font:500 18px/1.3 var(--font-body);color:var(--text-primary);align-items:center;gap:12px;padding:0 0 16px;display:flex}.cal-day-conflict-badge{border-radius:var(--radius-sm);background:var(--error-bg);color:var(--error);font:500 11px/1 var(--font-body);align-items:center;gap:4px;padding:3px 8px;display:inline-flex}.cal-event-source-badge{font:500 10px/1 var(--font-body);color:#fff;border-radius:10px;flex-shrink:0;align-items:center;gap:3px;margin-left:auto;padding:2px 6px;display:inline-flex}.cal-event-source-badge svg{width:10px;height:10px}.cal-panel-status-badge{text-align:center;border-radius:var(--radius-sm);background:var(--bg-subtle);font:500 13px/1.4 var(--font-body);color:var(--text-tertiary);margin-bottom:12px;padding:8px 12px}.cal-panel-conflicts{border-radius:var(--radius-sm);background:var(--warning-bg);border:1px solid var(--border);margin-bottom:12px;padding:8px 12px}.cal-panel-conflicts-header{font:500 12px/1.4 var(--font-body);color:var(--warning);align-items:center;gap:6px;margin-bottom:6px;display:flex}.cal-panel-conflict-item{font:400 11px/1.4 var(--font-body);color:var(--text-secondary);align-items:flex-start;gap:6px;padding:3px 0;display:flex}.cal-conflict-sev{font:500 9px/1 var(--font-body);text-transform:uppercase;border-radius:3px;flex-shrink:0;margin-top:1px;padding:1px 4px}.cal-conflict-sev.sev-high{background:var(--error-bg);color:var(--error)}.cal-conflict-sev.sev-medium{background:var(--warning-bg);color:var(--warning)}.cal-conflict-sev.sev-info{background:var(--info-bg);color:var(--info)}.today-timeline{flex-direction:column;gap:0;padding:8px 0;display:flex}.timeline-row{gap:12px;min-height:40px;display:flex}.timeline-marker{flex-direction:column;flex-shrink:0;align-items:center;width:16px;padding-top:6px;display:flex}.timeline-dot{z-index:1;border-radius:50%;flex-shrink:0;width:10px;height:10px}.timeline-line{background:var(--border);flex:1;width:2px;min-height:12px;margin:2px 0}.timeline-content{flex-direction:column;flex:1;gap:1px;padding-bottom:8px;display:flex}.timeline-header{align-items:center;gap:6px;display:flex}.timeline-time{font:500 12px/1.4 var(--font-mono);color:var(--text-secondary)}.timeline-type{font:400 10px/1 var(--font-body);text-transform:uppercase;letter-spacing:.04em;background:var(--bg-subtle);color:var(--text-tertiary);border-radius:4px;padding:1px 5px}.timeline-type.type-shift_start{background:var(--success-bg);color:var(--success)}.timeline-type.type-shift_end{background:var(--bg-subtle);color:var(--text-tertiary)}.timeline-type.type-duty{background:var(--warning-bg);color:var(--warning)}.timeline-type.type-lunch{background:var(--ws-cosmo);opacity:.8}.timeline-type.type-calendar{background:var(--info-bg);color:var(--info)}.timeline-type.type-reminder{background:var(--error-bg);color:var(--error)}.timeline-type.type-assignment{background:var(--accent-muted);color:var(--accent)}.timeline-label{font:500 13px/1.4 var(--font-body);color:var(--text-primary)}.timeline-detail{font:400 11px/1.3 var(--font-body);color:var(--text-tertiary)}.conflict-list{flex-direction:column;gap:1px;display:flex}.conflict-row{border-bottom:1px solid var(--border);align-items:flex-start;gap:8px;padding:8px 0;display:flex}.conflict-row:last-child{border-bottom:none}.conflict-severity{font:500 9px/1 var(--font-body);text-transform:uppercase;letter-spacing:.05em;border-radius:4px;flex-shrink:0;margin-top:1px;padding:2px 5px}.conflict-severity.sev-high{background:var(--error-bg);color:var(--error)}.conflict-severity.sev-medium{background:var(--warning-bg);color:var(--warning)}.conflict-severity.sev-info{background:var(--info-bg);color:var(--info)}.conflict-body{flex-direction:column;gap:2px;min-width:0;display:flex}.conflict-type{font:500 12px/1.4 var(--font-body);color:var(--text-primary);text-transform:capitalize}.conflict-message{font:400 12px/1.5 var(--font-body);color:var(--text-secondary);word-break:break-word}.conflict-layers{font:400 10px/1.3 var(--font-body);color:var(--text-tertiary);margin-top:2px}.week-day.off .week-day-num{opacity:.35}.week-day-hours{font:500 9px/1 var(--font-mono);color:var(--text-tertiary);margin-top:2px}.cal-detail-open:hover{background:var(--accent-muted);border-color:var(--accent)}.badge{border-radius:var(--radius-full);font:500 10px/1.4 var(--font-body);letter-spacing:.03em;white-space:nowrap;align-items:center;padding:2px 10px;display:inline-flex}.badge-default{background:var(--bg-subtle);color:var(--text-secondary)}.badge-success{background:var(--success-bg);color:var(--success)}.badge-warning{background:var(--warning-bg);color:var(--warning)}.badge-error{background:var(--error-bg);color:var(--error)}.badge-info{background:var(--info-bg);color:var(--info)}.progress-track{background:var(--bg-subtle);border-radius:var(--radius-full);width:100%;height:6px;overflow:hidden}.progress-fill{border-radius:var(--radius-full);height:100%;transition:width .4s var(--ease-out)}.brief-conflict-list{flex-direction:column;gap:6px;display:flex}.brief-conflict-item{border-bottom:1px solid var(--border);align-items:flex-start;gap:8px;padding:6px 0;display:flex}.brief-conflict-item:last-child{border-bottom:none}.brief-conflict-sev{font:500 9px/1 var(--font-body);text-transform:uppercase;border-radius:4px;flex-shrink:0;margin-top:1px;padding:2px 5px}.brief-conflict-sev.sev-high{background:var(--error-bg);color:var(--error)}.brief-conflict-sev.sev-medium{background:var(--warning-bg);color:var(--warning)}.brief-conflict-sev.sev-info{background:var(--info-bg);color:var(--info)}.brief-conflict-body{flex-direction:column;gap:1px;min-width:0;display:flex}.brief-conflict-type{font:500 12px/1.4 var(--font-body);color:var(--text-primary);text-transform:capitalize}.brief-conflict-msg{font:400 12px/1.5 var(--font-body);color:var(--text-secondary);word-break:break-word}.brief-clear-text{font:400 14px/1.5 var(--font-body);color:var(--success);padding:4px 0}.brief-off-message{color:var(--text-tertiary);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:16px;display:flex}.brief-off-message p{font:400 14px/1.5 var(--font-body);margin:0}.brief-off-note{font:400 12px/1.4 var(--font-body);color:var(--text-tertiary)}.brief-summary-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.brief-summary-item{border-radius:var(--radius-sm);background:var(--bg-subtle);flex-direction:column;gap:2px;padding:8px;display:flex}.brief-summary-label{font:400 10px/1.3 var(--font-body);text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary)}.brief-summary-value{font:500 13px/1.4 var(--font-body);color:var(--text-primary);align-items:center;display:flex}.brief-weekly-stats{flex-direction:column;gap:6px;display:flex}.brief-weekly-item{justify-content:space-between;align-items:center;padding:4px 0;display:flex}.brief-weekly-label{font:400 12px/1.4 var(--font-body);color:var(--text-secondary)}.brief-weekly-value{font:500 12px/1.4 var(--font-body);color:var(--text-primary)}@media (width<=640px){.brief-summary-grid{grid-template-columns:1fr}}.empty-text{font:400 14px/1.5 var(--font-body);color:var(--text-tertiary);padding:16px 0}.empty-icon{opacity:.4}.home-root{position:relative}.home-greeting{align-items:center;gap:16px;margin-bottom:8px;padding:20px clamp(16px,5vw,64px) 0;display:flex}.home-greeting-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.home-greeting-text h2{margin:0;font-size:22px;font-weight:600}.home-greeting-role{color:var(--text-secondary);margin:2px 0 0;font-size:13px}.home-content{max-width:920px;animation:homeContentIn .5s var(--ease-out);flex-direction:column;gap:28px;padding:28px 64px 56px;display:flex}@keyframes homeContentIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.today-hero{margin-bottom:0}.today-hero-card{border-radius:var(--radius-lg);cursor:pointer;transition:transform .35s var(--spring), box-shadow .35s var(--ease-out);position:relative;overflow:hidden}.today-hero-card:hover{box-shadow:var(--shadow-3);transform:translateY(-3px)}.today-hero-bg{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 10%, transparent) 0%, color-mix(in srgb, var(--accent) 4%, transparent) 45%, var(--bg-card) 75%);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-2), var(--inset-subtle);position:absolute;inset:0}.today-hero-content{flex-direction:column;gap:24px;padding:32px 36px;display:flex;position:relative}.today-hero-top{align-items:center;gap:32px;display:flex}.today-hero-clock-block{flex-direction:column;gap:2px;min-width:130px;display:flex}.today-hero-clock{font:600 32px/1.1 var(--font-body);letter-spacing:var(--letter-display);color:var(--text-primary)}.today-hero-subtitle{font:400 12px/1.4 var(--font-body);color:var(--text-tertiary)}.today-hero-duration{border-left:1px solid var(--border);flex-direction:column;gap:2px;padding-left:32px;display:flex}.today-hero-dur-val{font:500 16px/1.3 var(--font-body);color:var(--text-primary);letter-spacing:var(--letter-tight)}.today-hero-grid{border-top:1px solid var(--border-light);grid-template-columns:repeat(3,1fr);gap:4px 24px;padding-top:16px;display:grid}.today-hero-item{flex-direction:column;gap:2px;display:flex}.today-hero-meta{font:500 10px/1.2 var(--font-body);text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary)}.today-hero-val{font:500 15px/1.3 var(--font-body);color:var(--text-primary);letter-spacing:-.01em}.command-mid-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}@media (width<=720px){.command-mid-grid{grid-template-columns:1fr}}.priorities-list{flex-direction:column;display:flex}.priority-item{border-bottom:1px solid var(--border-light);cursor:default;transition:all .15s var(--ease-out);align-items:center;gap:12px;padding:11px 0;display:flex}.priority-item:last-child{border-bottom:none}.priority-clickable{cursor:pointer}.priority-clickable:hover{color:var(--accent);padding-left:4px}.priority-icon{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.priority-default .priority-icon{background:var(--info-bg);color:var(--info)}.priority-warning .priority-icon{background:var(--warning-bg);color:var(--warning)}.priority-muted .priority-icon{background:var(--bg-subtle);color:var(--text-tertiary)}.priority-label{font:400 13px/1.4 var(--font-body);color:var(--text-primary);flex:1}.priority-chevron{color:var(--text-tertiary);opacity:0;transition:opacity .15s var(--ease-out)}.priority-clickable:hover .priority-chevron{opacity:1}.lesson-card{min-height:100%}.lesson-empty{flex-direction:column;align-items:flex-start;gap:8px;padding:8px 0 4px;display:flex}.lesson-empty-icon{border-radius:var(--radius-md);background:color-mix(in srgb, var(--ws-cosmo) 10%, transparent);width:44px;height:44px;color:var(--ws-cosmo);justify-content:center;align-items:center;margin-bottom:4px;display:flex}.lesson-empty-title{font:500 15px/1.3 var(--font-body);color:var(--text-primary)}.lesson-empty-sub{font:400 13px/1.5 var(--font-body);color:var(--text-tertiary);max-width:280px}.lesson-link{font:500 13px/1.4 var(--font-body);color:var(--ws-cosmo);cursor:pointer;transition:gap .2s var(--ease-out), color .2s var(--ease-out);background:0 0;border:none;align-items:center;gap:6px;padding:6px 0;display:inline-flex}.lesson-link:hover{color:var(--accent);gap:10px}.continue-strip{flex-direction:column;display:flex}.continue-item{border-bottom:1px solid var(--border-light);transition:all .15s var(--ease-out);align-items:center;gap:12px;padding:11px 0;display:flex}.continue-item:last-child{border-bottom:none}.continue-clickable{cursor:pointer}.continue-clickable:hover{padding-left:4px}.continue-icon{border-radius:var(--radius-sm);background:var(--bg-subtle);width:34px;height:34px;transition:transform .2s var(--spring);flex-shrink:0;justify-content:center;align-items:center;display:flex}.continue-clickable:hover .continue-icon{transform:scale(1.08)}.continue-info{flex-direction:column;flex:1;gap:1px;display:flex}.continue-label{font:500 13px/1.4 var(--font-body);color:var(--text-primary)}.continue-sublabel{font:400 11px/1.4 var(--font-body);color:var(--text-tertiary)}.quick-actions-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.quick-action-btn{border-radius:var(--radius-md);background:var(--bg-subtle);cursor:pointer;transition:all .2s var(--ease-out);font:inherit;color:var(--text-secondary);border:1px solid #0000;flex-direction:column;align-items:center;gap:8px;padding:18px 12px;display:flex}.quick-action-btn:hover{background:var(--bg-card);border-color:var(--border);color:var(--accent);box-shadow:var(--shadow-2);transform:translateY(-2px)}.quick-action-icon{transition:transform .2s var(--spring)}.quick-action-btn:hover .quick-action-icon{transform:scale(1.12)}.quick-action-label{font:500 11px/1.3 var(--font-body);letter-spacing:.02em}.astro-card{background:var(--bg-subtle)!important;border-color:var(--border-light)!important;box-shadow:none!important}.astro-content{justify-content:space-between;align-items:center;display:flex}.astro-moon{align-items:center;gap:12px;display:flex}.astro-emoji{font-size:24px;line-height:1}.astro-details{flex-direction:column;gap:1px;display:flex}.astro-sign{font:500 13px/1.4 var(--font-body);color:var(--text-secondary)}.astro-insight{font:400 12px/1.4 var(--font-body);color:var(--text-tertiary);max-width:420px}.astro-icon{color:var(--text-tertiary);opacity:.5}@media (width<=767px){.sidebar{box-shadow:none;width:300px;transition:transform .25s cubic-bezier(.16,1,.3,1);transform:translate(-100%)}.sidebar.open{transform:translate(0);box-shadow:4px 0 24px #0000001f}.sidebar-inner{padding-top:calc(12px + env(safe-area-inset-top,0px));padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}.sidebar-toggle{border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.sidebar-overlay.visible{display:block}.app-content{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);margin-left:0}.page-layout{padding:56px 16px 24px}.page-layout>.page-header:first-child{padding-top:calc(8px + env(safe-area-inset-top,0px))}.page-title{font-size:28px}.metrics-grid,.home-bottom-grid,.command-mid-grid,.two-col{grid-template-columns:1fr}.hero-top-row{flex-direction:column;align-items:stretch;gap:16px}.hero-divider{width:100%;height:1px}.hero-details{grid-template-columns:1fr;gap:10px}.hero-content{padding:24px}.hero-secondary{flex-wrap:wrap;gap:20px}.home-content{padding:20px 20px 32px}.home-root>.hero-card:first-child{margin-top:calc(44px + env(safe-area-inset-top,0px))}.today-hero-top{flex-direction:column;align-items:flex-start;gap:16px}.today-hero-duration{border-left:none;padding-left:0}.today-hero-grid{grid-template-columns:1fr;gap:10px}.today-hero-content{padding:24px}.quick-actions-grid{grid-template-columns:1fr 1fr}.week-days-header{gap:4px}.section-card{padding:20px}.stat-card{padding:16px}.sidebar-item,.sidebar-theme-toggle{min-height:44px;padding:12px}.sidebar-footer{padding:12px 12px calc(12px + env(safe-area-inset-bottom,0px))}.hero-time-block{flex-direction:row;align-items:baseline;gap:8px;min-width:0}.hero-clock{font-size:32px}.hero-label{font-size:10px}.hero-details{gap:8px}.hero-detail{border-bottom:1px solid var(--border-light);padding:8px 0}.hero-detail:last-child{border-bottom:none}.hero-detail-value{font-size:15px}.hero-secondary{gap:12px;padding-top:12px}.hero-stat{flex:1;min-width:0}.hero-stat-num{font-size:18px}.hero-stat-label{white-space:normal;font-size:10px}.today-mini-row{gap:10px;padding:14px 0}.today-mini-time{min-width:64px;font-size:12px}.today-mini-title{font-size:13px}.today-mini-badge{padding:2px 8px;font-size:9px}.priority-item{gap:10px;padding:14px 0}.priority-icon{width:32px;height:32px}.priority-label{font-size:13px}.quick-action-btn{gap:10px;padding:16px 12px}.home-content{gap:20px}.home-root{flex-direction:column;gap:16px;display:flex}.home-root>.card.section-card:first-of-type{margin-top:0}.home-root>.hero-card,.home-root>.card,.home-root>.card.section-card,.home-root>.home-bottom-grid{margin-left:16px;margin-right:16px}.page-layout>.page-header{z-index:10;background:var(--bg-page);border-bottom:1px solid var(--border-light);margin-bottom:20px;padding:12px 0;position:sticky;top:0}.page-header .page-title{font-size:26px}.page-header .page-subtitle{margin-top:4px;font-size:13px}.metrics-grid{grid-template-columns:1fr;gap:12px}.stat-card{gap:16px;padding:20px}.stat-icon{width:48px;height:48px}.stat-value{font-size:24px}.stat-label{font-size:13px}.week-days-header{gap:6px;margin-bottom:20px}.week-day{min-height:56px;padding:12px 2px}.week-day-name{font-size:9px}.week-day-num{font-size:20px}.week-row{min-height:44px;padding:8px 0}.pending-row{min-height:44px;padding:16px 0}.pending-name{font-size:14px}.pending-actions{flex-direction:column;gap:6px}.btn-approve,.btn-reject{text-align:center;width:100%;min-height:44px;padding:12px 24px;font-size:14px}.audit-summary{gap:16px}.audit-num{font-size:22px}.audit-label{font-size:11px}.page-content{gap:20px}:is(.page-layout:has(.intel-stats)>.page-header,.page-layout:has(.priority-list)>.page-header){z-index:10;background:var(--bg-page);border-bottom:1px solid var(--border-light);margin-bottom:20px;padding:12px 0;position:sticky;top:0}.page-layout:has(.priority-list) .page-title{font-size:26px}.page-layout:has(.priority-list) .page-subtitle{margin-top:4px;font-size:13px}.page-layout:has(.priority-list) .section-card{padding:24px}.page-layout:has(.priority-list) .section-card-header{margin-bottom:20px}.page-layout:has(.priority-list) .section-card-header h3{font-size:17px}.page-layout:has(.priority-list) .section-card-header svg{width:20px;height:20px}.priority-row{gap:14px;padding:12px 0}.priority-row .check-box{width:22px;height:22px}.priority-text{font-size:15px;line-height:1.6}.intel-row{padding:12px 0}.intel-row span,.intel-row strong{font-size:15px}.drive-row{gap:14px;padding:12px 0}.drive-name{font-size:15px}.drive-date{font-size:13px}.page-layout:has(.priority-list)>.page-content{gap:24px}.empty-text{padding:20px 0;font-size:15px}.page-layout:has(.class-list)>.page-header{z-index:10;background:var(--bg-page);border-bottom:1px solid var(--border-light);margin-bottom:20px;padding:12px 0;position:sticky;top:0}.page-layout:has(.class-list) .page-title{font-size:26px}.page-layout:has(.class-list) .page-subtitle{margin-top:4px;font-size:13px}.page-layout:has(.class-list) .section-card{padding:24px}.page-layout:has(.class-list) .section-card-header{margin-bottom:20px}.page-layout:has(.class-list) .section-card-header h3{font-size:17px}.page-layout:has(.class-list) .stat-card{gap:16px;padding:20px}.page-layout:has(.class-list) .stat-icon{width:48px;height:48px}.page-layout:has(.class-list) .stat-value{font-size:24px}.page-layout:has(.class-list) .stat-label{font-size:13px}.class-row{gap:14px;min-height:44px;padding:14px 0}.class-time{min-width:68px;font-size:14px}.class-name{font-size:15px}.class-room{font-size:13px}.student-header,.student-row{gap:8px;padding:12px 0}.student-header{font-size:10px}.student-name{font-size:14px}.student-level{font-size:13px}.student-attend{font-size:14px}.tool-card{gap:10px;min-height:120px;padding:24px 16px}.tool-card svg{width:28px;height:28px}.tool-card span:first-of-type{font-size:14px}.page-layout:has(.class-list)>.page-content{gap:24px}.page-layout:has(.class-list){gap:24px}.page-layout:has(.jobs-table)>.page-header{z-index:10;background:var(--bg-page);border-bottom:1px solid var(--border-light);margin-bottom:20px;padding:12px 0;position:sticky;top:0}.page-layout:has(.jobs-table) .page-title{font-size:26px}.page-layout:has(.jobs-table) .page-subtitle{margin-top:4px;font-size:13px}.page-layout:has(.jobs-table) .section-card{padding:24px}.page-layout:has(.jobs-table) .section-card-header{margin-bottom:20px}.page-layout:has(.jobs-table) .section-card-header h3{font-size:17px}.page-layout:has(.jobs-table) .stat-card{gap:16px;padding:20px}.page-layout:has(.jobs-table) .stat-icon{width:48px;height:48px}.page-layout:has(.jobs-table) .stat-value{font-size:24px}.page-layout:has(.jobs-table) .stat-label{font-size:13px}.jobs-header{display:none}.job-row{flex-wrap:wrap;gap:8px;min-height:72px;padding:16px 0;display:flex}.job-id{min-width:auto;font-size:12px}.job-customer{flex:1;font-size:15px;font-weight:600}.job-vehicle{color:var(--text-secondary);order:1;width:100%;font-size:13px}.job-estimate{text-align:left;margin-left:auto;font-size:14px;font-weight:600}.job-row .badge{flex-shrink:0}.doc-row{gap:14px;min-height:44px;padding:14px 0;font-size:15px}.doc-row svg{width:18px;height:18px}.doc-date{font-size:13px}.comm-row{flex-wrap:wrap;gap:12px;min-height:44px;padding:14px 0}.comm-from{min-width:100px;font-size:14px}.comm-msg{white-space:normal;order:1;width:100%;font-size:14px}.page-layout:has(.jobs-table)>.page-content{gap:24px}.page-layout:has(.projects-list)>.page-header{z-index:10;background:var(--bg-page);border-bottom:1px solid var(--border-light);margin-bottom:20px;padding:12px 0;position:sticky;top:0}.page-layout:has(.projects-list) .page-title{font-size:26px}.page-layout:has(.projects-list) .page-subtitle{margin-top:4px;font-size:13px}.page-layout:has(.projects-list) .section-card{padding:24px}.page-layout:has(.projects-list) .section-card-header{margin-bottom:20px}.page-layout:has(.projects-list) .section-card-header h3{font-size:17px}.projects-list{gap:20px}.project-card-content{gap:16px}.project-icon-wrapper{width:52px;height:52px}.project-icon-wrapper svg{width:26px;height:26px}.project-info{gap:10px}.project-name{font-size:17px}.project-desc{font-size:14px;line-height:1.6}.project-meta{gap:20px}.project-version,.project-updated{font-size:13px}.project-progress-row{gap:14px}.project-pct{min-width:36px;font-size:14px}.completed-row{gap:14px;min-height:44px;padding:14px 0;font-size:15px}.completed-row svg{width:18px;height:18px}.completed-date{font-size:13px}.page-layout:has(.projects-list)>.page-content{gap:24px}.page-layout:has(.settings-section)>.page-header{z-index:10;background:var(--bg-page);border-bottom:1px solid var(--border-light);margin-bottom:20px;padding:12px 0;position:sticky;top:0}.page-layout:has(.settings-section) .page-title{font-size:26px}.page-layout:has(.settings-section) .page-subtitle{margin-top:4px;font-size:13px}.page-layout:has(.settings-section) .section-card{padding:24px}.page-layout:has(.settings-section) .section-card-header{margin-bottom:20px}.page-layout:has(.settings-section) .section-card-header h3{font-size:17px}.settings-section-title{margin-bottom:14px;padding-left:2px;font-size:11px}.settings-section{margin-bottom:24px}.setting-row{gap:14px;min-height:44px;padding:16px 0}.setting-icon{width:20px;height:20px}.setting-info{gap:4px}.setting-label{font-size:15px}.setting-value{font-size:13px}.setting-chevron{width:18px;height:18px}.toggle{width:44px;height:24px}.toggle.on:after,.toggle.off:after{width:20px;height:20px;top:2px}.toggle.on:after{right:2px}.toggle.off:after{left:2px}.profile-card-content{gap:20px}.profile-avatar{width:64px;height:64px}.profile-avatar svg{width:36px;height:36px}.profile-info h3{font-size:20px}.profile-info p{font-size:14px}.page-layout:has(.settings-section)>.page-content{gap:24px}.calendar-body{grid-template-columns:1fr}.calendar-events-panel{max-height:none}.cal-day{min-height:56px;padding:4px 2px}.cal-day-num{width:24px;height:24px;font-size:13px}.cal-week-header{gap:4px}.cal-week-day{padding:8px 2px}.cal-week-day-num{font-size:14px}.calendar-toolbar{flex-direction:column;align-items:stretch}.calendar-nav{justify-content:center}.calendar-view-toggle{width:100%}.cal-view-btn{flex:1;justify-content:center}}@media (width<=639px){.page-layout{padding:52px 16px 20px}.page-title{font-size:24px}.home-content{padding:16px 16px 24px}.quick-actions-grid{grid-template-columns:1fr}.hero-content{padding:20px}.hero-clock{font-size:30px}.home-root>.hero-card,.home-root>.card,.home-root>.card.section-card,.home-root>.home-bottom-grid{margin-left:12px;margin-right:12px}.section-card{padding:16px}.hero-detail{padding:6px 0}.today-mini-row,.priority-item{padding:12px 0}.quick-action-btn{padding:14px 12px}.stat-card{gap:12px;padding:16px}.stat-icon{width:40px;height:40px}.stat-value{font-size:20px}.week-days-header{gap:4px}.week-day{min-height:48px;padding:8px 2px}.pending-row{padding:12px 0}.btn-approve,.btn-reject{padding:10px 16px;font-size:13px}.page-layout:has(.priority-list) .section-card-header{margin-bottom:16px}.page-layout:has(.priority-list) .section-card{padding:20px}.page-layout:has(.priority-list) .page-title{font-size:24px}.page-layout:has(.class-list) .page-title{font-size:24px}.page-layout:has(.class-list) .section-card{padding:20px}.page-layout:has(.class-list) .section-card-header{margin-bottom:16px}.page-layout:has(.class-list) .stat-card{gap:12px;padding:16px}.page-layout:has(.class-list) .stat-icon{width:40px;height:40px}.page-layout:has(.class-list) .stat-value{font-size:20px}.class-row{gap:10px;min-height:44px;padding:12px 0}.student-header,.student-row{gap:6px;padding:10px 0}.tool-card{min-height:100px;padding:20px 12px}.page-layout:has(.jobs-table) .page-title{font-size:24px}.page-layout:has(.jobs-table) .section-card{padding:20px}.page-layout:has(.jobs-table) .section-card-header{margin-bottom:16px}.page-layout:has(.jobs-table) .stat-card{gap:12px;padding:16px}.page-layout:has(.jobs-table) .stat-icon{width:40px;height:40px}.page-layout:has(.jobs-table) .stat-value{font-size:20px}.job-row{min-height:68px;padding:14px 0}.job-customer{font-size:14px}.doc-row{min-height:44px;padding:12px 0;font-size:14px}.comm-row{min-height:44px;padding:12px 0}.page-layout:has(.projects-list) .page-title{font-size:24px}.page-layout:has(.projects-list) .section-card{padding:20px}.page-layout:has(.projects-list) .section-card-header{margin-bottom:16px}.projects-list{gap:16px}.project-card-content{gap:14px}.project-icon-wrapper{width:48px;height:48px}.project-icon-wrapper svg{width:24px;height:24px}.project-name{font-size:16px}.completed-row{min-height:44px;padding:12px 0;font-size:14px}.page-layout:has(.settings-section) .page-title{font-size:24px}.page-layout:has(.settings-section) .section-card{padding:20px}.page-layout:has(.settings-section) .section-card-header{margin-bottom:16px}.settings-section{margin-bottom:20px}.setting-row{gap:12px;min-height:44px;padding:14px 0}.setting-label{font-size:14px}.profile-card-content{gap:16px}.profile-avatar{width:56px;height:56px}.profile-avatar svg{width:30px;height:30px}.profile-info h3{font-size:18px}.cal-day{min-height:48px;padding:2px 1px}.cal-day-num{width:22px;height:22px;font-size:12px}.cal-dot{width:5px;height:5px}.cal-week-day{padding:6px 2px}.cal-week-day-num{font-size:13px}.cal-detail-panel{border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-width:100%;max-height:90vh;margin:0}.cal-detail-overlay{align-items:flex-end;padding:0}}.scroll-x{-webkit-overflow-scrolling:touch;scrollbar-width:thin;overflow-x:auto}.scroll-x::-webkit-scrollbar{height:4px}.scroll-x::-webkit-scrollbar-track{background:0 0}.scroll-x::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}@media (width<=767px){.app-content{width:100%;max-width:100%;margin-left:0!important}.page-layout{box-sizing:border-box;width:100%;max-width:100%}}@media (width<=639px){.app-content{margin-left:0!important}.page-layout{width:100%;max-width:100%;padding:52px clamp(12px,4vw,16px) 20px}.page-title{word-break:break-word;font-size:22px}.page-subtitle{flex-wrap:wrap;font-size:13px}}.app-shell{width:100%;max-width:100%;overflow-x:hidden}.oi-snapshot,.oi-two-col,.metrics-grid{width:100%}.card,[class*=card]{box-sizing:border-box;max-width:100%}.student-table{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.sd-row{flex-wrap:wrap}.sd-row-actions{margin-left:auto}.cc-resource-meta,.ls-item-meta,.sd-row-meta,.curriculum-doc-stats{-webkit-overflow-scrolling:touch;scrollbar-width:thin;overflow-x:auto;flex-wrap:nowrap!important}.cc-kb-top>div:last-child{-webkit-overflow-scrolling:touch;scrollbar-width:thin;flex-shrink:0;max-width:100%;overflow-x:auto}.edu-month-grid{min-width:0}.ls-detail-header-meta{color:var(--text-tertiary);-webkit-overflow-scrolling:touch;scrollbar-width:thin;white-space:nowrap;gap:16px;font-size:13px;display:flex;overflow-x:auto;flex-wrap:nowrap!important}.stat-value,.oi-stat-value,.tspa-brief-value{word-break:break-word}.sd-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.sd-search{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-input);flex:1;align-items:center;gap:8px;min-width:200px;padding:8px 12px;display:flex}.sd-search input{font:400 13px/1.4 var(--font-body);color:var(--text-primary);background:0 0;border:none;outline:none;width:100%}.sd-filters{align-items:center;gap:8px;display:flex}.sd-filters select{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);font:400 13px/1.4 var(--font-body);outline:none;padding:8px 10px}.sd-btn{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font:500 12px/1.3 var(--font-body);cursor:pointer;transition:all .15s var(--ease-out);align-items:center;gap:6px;padding:8px 14px;font-family:inherit;display:inline-flex}.sd-btn:hover{border-color:var(--text-tertiary);color:var(--text-primary)}.sd-btn:disabled{opacity:.5;cursor:not-allowed}.sd-btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.sd-btn-primary:hover{background:var(--accent-hover)}.sd-btn-danger{background:var(--error);color:#fff;border-color:var(--error)}.sd-btn-danger:hover{opacity:.9}.sd-icon-btn{border-radius:var(--radius-md);width:32px;height:32px;color:var(--text-tertiary);cursor:pointer;transition:all .15s var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.sd-icon-btn:hover{background:var(--bg-subtle);color:var(--text-primary)}.sd-icon-btn-danger:hover{background:var(--error-bg);color:var(--error)}.sd-list{flex-direction:column;gap:6px;display:flex}.sd-row{border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border);cursor:pointer;transition:all .15s var(--ease-out);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.sd-row:hover{border-color:var(--accent);box-shadow:var(--shadow-1)}.sd-row-inactive{opacity:.6}.sd-row-info{flex:1;min-width:0}.sd-row-name-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sd-row-name{font:500 15px/1.4 var(--font-body);color:var(--text-primary)}.sd-row-pref{font:400 13px/1.4 var(--font-body);color:var(--text-tertiary)}.sd-row-status{border-radius:var(--radius-full);font:500 9px/1.3 var(--font-body);text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;display:inline-flex}.sd-row-status.active{background:var(--success-bg);color:var(--success)}.sd-row-status.inactive{background:var(--bg-subtle);color:var(--text-tertiary)}.sd-row-meta{flex-wrap:wrap;align-items:center;gap:12px;margin-top:4px;display:flex}.sd-row-role{font:400 12px/1.4 var(--font-body);color:var(--accent)}.sd-row-dept{font:400 11px/1.4 var(--font-body);color:var(--text-tertiary)}.sd-row-email,.sd-row-phone{font:400 11px/1.4 var(--font-body);color:var(--text-tertiary);align-items:center;gap:4px;display:inline-flex}.sd-row-actions{flex-shrink:0;align-items:center;gap:2px;display:flex}.sd-row-chevron{color:var(--border);flex-shrink:0}.sd-loading,.sd-empty{color:var(--text-tertiary);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;font-size:14px;display:flex}.sd-empty svg{opacity:.4}.sd-form-overlay{z-index:200;background:#0006;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.sd-form-card{background:var(--bg-card);border-radius:var(--radius-lg);width:100%;max-width:520px;box-shadow:var(--shadow-3);padding:24px}.sd-form-card h3{font:600 18px/1.3 var(--font-body);color:var(--text-primary);margin:0 0 16px}.sd-form-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;display:grid}.sd-form-grid label{font:500 11px/1.4 var(--font-body);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;flex-direction:column;gap:4px;display:flex}.sd-form-grid input,.sd-form-grid select,.sd-form-grid textarea{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);font:400 13px/1.4 var(--font-body);outline:none;padding:8px 10px;font-family:inherit}.sd-form-grid input:focus,.sd-form-grid select:focus,.sd-form-grid textarea:focus{border-color:var(--accent)}.sd-form-full{grid-column:1/-1}.sd-form-actions{justify-content:flex-end;gap:8px;display:flex}.sd-confirm-card{text-align:center;max-width:400px}.sd-confirm-card p{font:400 14px/1.5 var(--font-body);color:var(--text-secondary);margin:8px 0}.sd-confirm-hint{font-style:italic;color:var(--text-tertiary)!important;font-size:12px!important}.sd-back-btn{border-radius:var(--radius-md);background:var(--bg-subtle);color:var(--text-secondary);cursor:pointer;font:500 12px/1.3 var(--font-body);transition:all .15s var(--ease-out);border:none;align-items:center;gap:6px;margin-bottom:24px;padding:8px 12px;font-family:inherit;display:inline-flex}.sd-back-btn:hover{background:var(--bg-card);color:var(--text-primary)}.sp-header{align-items:center;gap:20px;margin-bottom:32px;display:flex}.sp-avatar{border-radius:var(--radius-full);background:var(--accent-muted);width:64px;height:64px;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sp-header-info{flex:1}.sp-pref{color:var(--text-tertiary);font-size:22px;font-weight:400}.sp-header-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.sp-badge{border-radius:var(--radius-full);background:var(--accent-muted);color:var(--accent);font:500 11px/1.3 var(--font-body);padding:4px 10px;display:inline-flex}.sp-badge-dept{background:var(--bg-subtle);color:var(--text-secondary)}.sp-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=640px){.sp-grid{grid-template-columns:1fr}}.sp-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px}.sp-card-full{grid-column:1/-1}.sp-card h3{font:600 13px/1.4 var(--font-body);color:var(--text-primary);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:6px;margin:0 0 16px;display:flex}.sp-detail{color:var(--text-tertiary);align-items:flex-start;gap:10px;padding:8px 0;display:flex}.sp-detail>div{flex-direction:column;gap:1px;display:flex}.sp-detail-label{font:500 10px/1.3 var(--font-body);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}.sp-detail-value{font:400 14px/1.4 var(--font-body);color:var(--text-primary)}.sp-actions{flex-direction:column;gap:6px;display:flex}.sp-action-btn{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-subtle);color:var(--text-primary);cursor:pointer;font:500 13px/1.4 var(--font-body);transition:all .15s var(--ease-out);align-items:center;gap:8px;padding:10px 14px;font-family:inherit;text-decoration:none;display:inline-flex}.sp-action-btn:hover{border-color:var(--accent);background:var(--accent-muted)}.sp-notes-text{font:400 14px/1.6 var(--font-body);color:var(--text-secondary);white-space:pre-wrap}.sp-card-future{opacity:.6}.global-search{z-index:100;position:relative}.gs-input-wrapper{width:240px;transition:width var(--ease-out);align-items:center;display:flex;position:relative}.gs-input-wrapper:focus-within{width:320px}.gs-search-icon{color:var(--text-tertiary);pointer-events:none;flex-shrink:0;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.gs-input{width:100%;height:36px;font:400 14px/1.5 var(--font-body);color:var(--text-primary);background:var(--bg-input);border-radius:var(--radius-md);transition:border-color var(--ease-out), background var(--ease-out), box-shadow var(--ease-out);border:1.5px solid #0000;outline:none;padding:0 36px 0 32px}.gs-input::placeholder{color:var(--text-tertiary)}.gs-input:hover{background:var(--bg-subtle)}.gs-input:focus{background:var(--bg-card);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted)}.gs-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:14px;height:14px;animation:.6s linear infinite gs-spin;position:absolute;top:50%;right:36px;transform:translateY(-50%)}@keyframes gs-spin{to{transform:translateY(-50%)rotate(360deg)}}.gs-clear{background:var(--bg-subtle);width:18px;height:18px;color:var(--text-tertiary);cursor:pointer;transition:background var(--ease-out), color var(--ease-out);border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:50%;right:36px;transform:translateY(-50%)}.gs-clear:hover{background:var(--border);color:var(--text-secondary)}.gs-kbd{min-width:22px;height:18px;font:500 10px/1 var(--font-mono);color:var(--text-tertiary);background:var(--bg-subtle);border:1px solid var(--border);pointer-events:none;opacity:.7;border-radius:4px;justify-content:center;align-items:center;padding:0 4px;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.gs-input-wrapper:focus-within .gs-kbd{display:none}.gs-input-wrapper:focus-within .gs-clear{right:10px}.gs-dropdown{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);width:480px;max-height:520px;box-shadow:var(--shadow-4);animation:gs-dropdown-in .2s var(--ease-out);transform-origin:100% 0;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden}@keyframes gs-dropdown-in{0%{opacity:0;transform:scale(.95)translateY(-8px)}to{opacity:1;transform:scale(1)translateY(0)}}.gs-results-scroll{max-height:472px;padding:8px 0;overflow-y:auto}.gs-results-scroll::-webkit-scrollbar{width:4px}.gs-results-scroll::-webkit-scrollbar-track{background:0 0}.gs-results-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.gs-group{padding:4px 0}.gs-group+.gs-group{border-top:1px solid var(--border-light)}.gs-group-header{font:600 11px/1.4 var(--font-body);letter-spacing:.04em;text-transform:uppercase;color:var(--text-tertiary);align-items:center;gap:6px;padding:6px 12px 4px;display:flex}.gs-group-count{font:500 10px/1 var(--font-mono);background:var(--bg-subtle);border-radius:var(--radius-full);color:var(--text-secondary);margin-left:auto;padding:2px 6px}.gs-result{cursor:pointer;transition:background var(--ease-out);align-items:center;gap:10px;padding:8px 12px;display:flex}.gs-result:hover,.gs-result-selected{background:var(--accent-muted)}.gs-result-icon{border-radius:var(--radius-sm);background:var(--bg-subtle);flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.gs-result-content{flex:1;min-width:0}.gs-result-title{font:500 14px/1.4 var(--font-body);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.gs-result-desc{font:400 12px/1.4 var(--font-body);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;overflow:hidden}.gs-result-group-label{font:500 10px/1 var(--font-mono);color:var(--text-tertiary);background:var(--bg-subtle);border-radius:var(--radius-full);flex-shrink:0;padding:2px 6px}.gs-result-external{color:var(--text-tertiary);opacity:0;transition:opacity var(--ease-out);flex-shrink:0}.gs-result:hover .gs-result-external,.gs-result-selected .gs-result-external{opacity:1}.gs-empty{color:var(--text-tertiary);font:400 14px/1.5 var(--font-body);flex-direction:column;align-items:center;gap:8px;padding:32px 16px;display:flex}.gs-empty svg{opacity:.4}.gs-footer{border-top:1px solid var(--border-light);font:400 11px/1.4 var(--font-mono);color:var(--text-tertiary);background:var(--bg-subtle);justify-content:center;align-items:center;gap:16px;padding:8px 12px;display:flex}.sp-future-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}@media (width<=640px){.sp-future-grid{grid-template-columns:repeat(2,1fr)}}.sp-future-item{border-radius:var(--radius-md);background:var(--bg-subtle);font:400 12px/1.4 var(--font-body);color:var(--text-tertiary);text-align:center;padding:10px}.westos-boot{background:var(--bg-page);z-index:9999;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.westos-boot-content{flex-direction:column;align-items:center;gap:20px;display:flex}.westos-boot-logo{object-fit:cover;border-radius:18px;width:80px;height:80px}.westos-boot-wordmark{letter-spacing:-.03em;font:700 40px/1.1 Inter,-apple-system,BlinkMacSystemFont,SF Pro Display,Helvetica Neue,sans-serif}.westos-boot-west{color:#fff}.westos-boot-os{background:linear-gradient(90deg,#6366f1,#8b5cf6);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.westos-boot-status{color:var(--text-secondary);font:400 15px var(--font-body);opacity:.8;align-items:center;gap:10px;display:flex}.westos-boot-sparkle{color:var(--accent);animation:2s linear infinite bootSpin}@keyframes bootSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.v2-welcome{background:var(--bg-page);z-index:9999;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.v2-welcome-loader{color:var(--text-secondary);font:500 18px var(--font-body);flex-direction:column;align-items:center;gap:16px;display:flex}.v2-welcome-loader-icon{color:var(--accent);animation:2s linear infinite spin}.v2-welcome-container{opacity:0;flex-direction:column;align-items:center;gap:28px;width:100%;max-width:420px;padding:40px 24px;transition:opacity .45s cubic-bezier(.16,1,.3,1),transform .45s cubic-bezier(.16,1,.3,1);display:flex;transform:translateY(8px)}.v2-welcome-container.visible{opacity:1;transform:translateY(0)}.v2-welcome-brand{flex-direction:column;align-items:center;gap:6px;display:flex}.v2-welcome-wordmark{letter-spacing:-.03em;color:var(--text-primary);font:700 34px/1.1 Inter,-apple-system,BlinkMacSystemFont,SF Pro Display,Helvetica Neue,sans-serif}.v2-welcome-wordmark.small{font-size:24px}.v2-welcome-west{color:#fff}.v2-welcome-os{background:linear-gradient(90deg,#6366f1,#8b5cf6);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.v2-welcome-logo{object-fit:cover;border-radius:16px;width:72px;height:72px;margin-bottom:4px}.v2-welcome-title{font:700 34px/1.1 var(--font-body);letter-spacing:var(--letter-display);color:var(--text-primary);margin:0}.v2-welcome-tagline{font:400 14px/1.4 var(--font-body);color:var(--text-tertiary);letter-spacing:.02em;margin:0}.v2-welcome-avatar-large{border-radius:50%;justify-content:center;align-items:center;width:88px;height:88px;margin:8px 0 4px;font-size:42px;display:flex}.v2-welcome-greeting{text-align:center}.v2-welcome-greeting-text{font:600 22px/1.3 var(--font-body);color:var(--text-primary);margin:0}.v2-welcome-recent{font:400 13px var(--font-body);color:var(--text-tertiary);justify-content:center;align-items:center;gap:6px;margin:6px 0 0;display:flex}.v2-welcome-recent-app{font-family:var(--font-mono);border-radius:var(--radius-full);background:var(--bg-subtle);color:var(--text-secondary);padding:2px 8px;font-size:11px}.v2-welcome-continue-btn{border-radius:var(--radius-lg);background:var(--accent);color:#fff;width:100%;max-width:280px;font:600 16px var(--font-body);cursor:pointer;transition:all var(--ease-out);border:none;justify-content:center;align-items:center;gap:10px;padding:14px 24px;display:flex;box-shadow:0 2px 8px #7c6fbf4d}.v2-welcome-continue-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px #7c6fbf66}.v2-welcome-continue-btn:active{transform:translateY(0)}.v2-welcome-hint{font:400 12px var(--font-body);color:var(--text-tertiary);opacity:.7;margin:-8px 0 0}.v2-welcome-switch-btn{color:var(--text-tertiary);font:400 13px var(--font-body);cursor:pointer;border-radius:var(--radius-md);transition:all var(--ease-out);background:0 0;border:none;padding:8px 16px}.v2-welcome-switch-btn:hover{color:var(--text-secondary);background:var(--bg-subtle)}.v2-welcome-version{font:400 11px var(--font-body);color:var(--text-tertiary);opacity:.4;margin-top:8px}.v2-welcome-rate-limited{font:400 13px var(--font-body);color:var(--error,#e74c3c);text-align:center;margin:12px 0 0;animation:.2s ease-out fadeIn}.v2-welcome-users{flex-direction:column;gap:10px;width:100%;display:flex}.v2-welcome-no-users{text-align:center;color:var(--text-tertiary);font:400 14px var(--font-body)}.v2-welcome-user-card{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-card);cursor:pointer;transition:all var(--ease-out);align-items:center;gap:16px;padding:18px 20px;display:flex}.v2-welcome-user-card.primary:hover{border-color:var(--accent-muted);box-shadow:var(--shadow-2);transform:translateY(-1px)}.v2-welcome-user-card.secondary{border-radius:var(--radius-md);padding:12px 16px}.v2-welcome-user-card.secondary:hover{border-color:var(--accent-muted);background:var(--bg-subtle)}.v2-welcome-user-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:26px;display:flex}.v2-welcome-user-avatar.small{width:40px;height:40px;font-size:20px}.v2-welcome-user-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.v2-welcome-user-name{font:600 16px/1.3 var(--font-body);color:var(--text-primary)}.v2-welcome-user-bio{font:400 13px/1.3 var(--font-body);color:var(--text-tertiary)}.v2-welcome-user-action{color:var(--accent);font:500 13px var(--font-body);flex-shrink:0;align-items:center;gap:8px;display:flex}.v2-welcome-arrow{font-size:16px}.v2-welcome-others-section{flex-direction:column;gap:8px;margin-top:4px;display:flex}.v2-welcome-others-label{font:500 11px var(--font-body);text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);opacity:.5;padding:0 4px}.v2-pin-overlay{z-index:10000;-webkit-backdrop-filter:blur(8px);background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.v2-pin-modal{background:var(--bg-card);border-radius:24px;flex-direction:column;align-items:center;gap:20px;width:340px;padding:36px 32px 24px;animation:.25s ease-out pinIn;display:flex;box-shadow:0 20px 60px #0000004d}@keyframes pinIn{0%{opacity:0;transform:scale(.92)translateY(16px)}to{opacity:1;transform:scale(1)translateY(0)}}.shake{animation:.5s ease-in-out shakeX}@keyframes shakeX{0%,to{transform:translate(0)}10%,50%,90%{transform:translate(-6px)}30%,70%{transform:translate(6px)}}.v2-pin-header{text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex}.v2-pin-avatar{border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;font-size:32px;display:flex}.v2-pin-title{font:600 20px/1.3 var(--font-body);color:var(--text-primary);margin:0}.v2-pin-subtitle{font:400 13px var(--font-body);color:var(--text-tertiary);margin:0}.v2-pin-dots{gap:10px;display:flex}.v2-pin-dot{background:var(--border);width:12px;height:12px;transition:all var(--ease-out);border-radius:50%}.v2-pin-dot.filled{background:var(--accent);box-shadow:0 0 6px #7c6fbf66}.v2-pin-dot.error{background:var(--error,#e74c3c)}.v2-pin-error{font:400 12px var(--font-body);color:var(--error,#e74c3c);margin:-8px 0;animation:.2s ease-out fadeIn}.v2-pin-hidden-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.v2-pin-grid{grid-template-columns:repeat(3,1fr);gap:12px;width:100%;display:grid}.v2-pin-key{aspect-ratio:1;background:var(--bg-subtle);width:100%;color:var(--text-primary);font:500 24px var(--font-body);cursor:pointer;transition:all var(--ease-out);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.v2-pin-key:hover:not(:disabled){background:var(--bg-input);transform:scale(1.05)}.v2-pin-key:active:not(:disabled){background:var(--accent-muted);transform:scale(.95)}.v2-pin-key:disabled{visibility:hidden}.v2-pin-cancel{color:var(--text-tertiary);font:400 14px var(--font-body);cursor:pointer;transition:color var(--ease-out);background:0 0;border:none;padding:8px 16px}.v2-pin-cancel:hover:not(:disabled){color:var(--text-secondary)}.v2-pin-cancel:disabled{opacity:.4;cursor:default}.westos-lock-screen{background:var(--bg-page);z-index:10000;animation:fadeSlideIn .35s var(--spring);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.westos-lock-container{flex-direction:column;align-items:center;gap:16px;width:340px;display:flex}.westos-lock-avatar{border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;font-size:36px;display:flex}.westos-lock-name{font:600 22px/1.3 var(--font-body);color:var(--text-primary);text-align:center;margin:0}.westos-lock-status{font:400 14px var(--font-body);color:var(--text-tertiary);margin:-4px 0 4px}.westos-lock-expiry{font:400 12px var(--font-body);color:var(--warning,#f59e0b);margin:-4px 0 4px;animation:.2s ease-out fadeIn}.westos-lock-dots{gap:10px;display:flex}.westos-lock-dot{background:var(--border);width:12px;height:12px;transition:all var(--ease-out);border-radius:50%}.westos-lock-dot.filled{background:var(--accent);box-shadow:0 0 6px #7c6fbf66}.westos-lock-dot.error{background:var(--error,#e74c3c)}.westos-lock-error{font:400 12px var(--font-body);color:var(--error,#e74c3c);margin:-8px 0;animation:.2s ease-out fadeIn}.westos-lock-hidden-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.westos-lock-keypad{grid-template-columns:repeat(3,1fr);gap:12px;width:100%;display:grid}.westos-lock-key{aspect-ratio:1;background:var(--bg-subtle);width:100%;color:var(--text-primary);font:500 24px var(--font-body);cursor:pointer;transition:all var(--ease-out);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.westos-lock-key:hover:not(:disabled){background:var(--bg-input);transform:scale(1.05)}.westos-lock-key:active:not(:disabled){background:var(--accent-muted);transform:scale(.95)}.westos-lock-key:disabled{visibility:hidden}.westos-lock-logout{color:var(--text-tertiary);font:400 14px var(--font-body);cursor:pointer;transition:color var(--ease-out);background:0 0;border:none;margin-top:4px;padding:8px 16px}.westos-lock-logout:hover:not(:disabled){color:var(--text-secondary)}.westos-lock-logout:disabled{opacity:.4;cursor:default}.v2-launcher{background:var(--bg-page);min-height:100vh;animation:fadeSlideIn .35s var(--spring);flex-direction:column;display:flex}.v2-launcher-loading{min-height:100vh;color:var(--text-secondary);font:400 15px var(--font-body);justify-content:center;align-items:center;gap:12px;display:flex}.v2-launcher-loading-icon{color:var(--accent);animation:2s linear infinite spin}.v2-launcher-bar{border-bottom:1px solid var(--border-light);background:var(--bg-page);justify-content:space-between;align-items:center;padding:16px 28px;display:flex}.v2-launcher-bar-left{align-items:center;gap:10px;display:flex}.v2-launcher-bar-icon{color:var(--accent)}.v2-launcher-bar-title{font:600 16px var(--font-body);color:var(--text-primary)}.v2-launcher-bar-right{align-items:center;gap:10px;display:flex}.v2-launcher-user-chip{border-radius:var(--radius-full);background:var(--bg-subtle);align-items:center;gap:8px;padding:5px 14px 5px 6px;display:flex}.v2-launcher-user-avatar{font-size:18px;line-height:1}.v2-launcher-user-name{font:500 13px var(--font-body);color:var(--text-secondary)}.v2-launcher-logout{width:32px;height:32px;color:var(--text-tertiary);cursor:pointer;transition:all var(--ease-out);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.v2-launcher-logout:hover{background:var(--bg-subtle);color:var(--text-secondary)}.v2-launcher-greeting{text-align:center;padding:48px 28px 24px}.v2-launcher-greeting-text{font:700 32px/1.3 var(--font-body);color:var(--text-primary);letter-spacing:var(--letter-display);margin:0}.v2-launcher-greeting-sub{font:400 15px var(--font-body);color:var(--text-tertiary);margin:6px 0 0}.v2-launcher-recent{border-radius:var(--radius-full);background:var(--bg-subtle);color:var(--text-secondary);font:400 13px var(--font-body);cursor:pointer;transition:all var(--ease-out);align-items:center;gap:8px;margin-top:16px;padding:8px 16px;display:inline-flex}.v2-launcher-recent:hover{background:var(--bg-input);color:var(--text-primary)}.v2-launcher-recent-arrow{opacity:.5;font-size:14px}.v2-launcher-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;width:100%;max-width:1100px;margin:0 auto;padding:8px 28px 48px;display:grid}.v2-launcher-card{border:1px solid var(--border);background:var(--bg-card);transition:all var(--ease-out);border-radius:20px;flex-direction:column;gap:20px;padding:28px 24px 20px;display:flex;position:relative}.v2-launcher-card.active{cursor:pointer}.v2-launcher-card.active:hover{border-color:var(--card-color);box-shadow:0 0 0 1px var(--card-color), var(--shadow-3);transform:translateY(-3px)}.v2-launcher-card.development{opacity:.75;cursor:default}.v2-launcher-card-badge{font:500 10px var(--font-body);border-radius:var(--radius-full);background:var(--bg-subtle);color:var(--text-tertiary);letter-spacing:.02em;padding:3px 10px;position:absolute;top:14px;right:14px}.v2-launcher-card-icon{border-radius:18px;justify-content:center;align-items:center;width:64px;height:64px;font-size:32px;display:flex}.v2-launcher-card-info{flex:1}.v2-launcher-card-name{font:600 18px/1.3 var(--font-body);color:var(--text-primary);align-items:center;gap:8px;margin:0 0 4px;display:flex}.v2-launcher-card-owner{font:400 11px var(--font-body);color:var(--text-tertiary);opacity:.6}.v2-launcher-card-desc{font:400 13px/1.5 var(--font-body);color:var(--text-tertiary);margin:0}.v2-launcher-card-action{margin-top:4px}.v2-launcher-card-open{font:500 14px var(--font-body);color:var(--card-color,var(--accent));align-items:center;gap:6px;display:flex}.v2-launcher-card-arrow{font-size:15px}.v2-launcher-card-soon{font:500 11px var(--font-body);text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);opacity:.5}.placeholder-app-status.in-development{background:var(--bg-subtle);color:var(--accent);border:1px solid var(--accent-muted)}.placeholder-app-status.not-installed{background:var(--bg-subtle);color:var(--text-tertiary);opacity:.5}.westos-admin-card.full-width{grid-column:1/-1}.westos-admin-placeholder-badge{font:500 11px var(--font-body);text-transform:uppercase;letter-spacing:.08em;border-radius:var(--radius-full);background:var(--bg-subtle);color:var(--accent);border:1px solid var(--accent-muted);padding:6px 16px}@media (width<=768px){.sidebar-toggle{display:flex!important}.sidebar{box-shadow:none;transition:transform .3s cubic-bezier(.16,1,.3,1);transform:translate(-100%)}.sidebar.open{transform:translate(0);box-shadow:4px 0 32px #00000026}.sidebar-overlay{opacity:0;pointer-events:none;transition:opacity .25s var(--ease-out);display:block}.sidebar-overlay.visible{opacity:1;pointer-events:auto}.app-content{padding-top:calc(56px + env(safe-area-inset-top,0px));margin-left:0!important}.page-layout{padding:16px var(--space-4) var(--space-8);max-width:100%}.page-header{flex-direction:column;gap:12px;margin-bottom:24px}.page-header-right{width:100%}.page-title{font-size:28px}.global-search{width:100%}.gs-input-wrapper,.gs-input-wrapper:focus-within{width:100%!important}.gs-kbd{display:none!important}.gs-dropdown{top:auto;left:var(--space-2);right:var(--space-2);border-radius:var(--radius-lg);width:auto;max-height:60vh;box-shadow:var(--shadow-4);position:fixed}.gs-footer{display:none!important}.gs-group-header{padding:6px 12px 4px}.dashboard-grid,.two-col{grid-template-columns:1fr}.hero-content{padding:20px var(--space-4)}.hero-top-row{flex-direction:column;gap:16px}.hero-time-block{min-width:unset;flex-direction:row;align-items:center;gap:10px}.hero-clock{font-size:28px}.hero-divider{display:none}.hero-details{grid-template-columns:1fr;gap:8px}.hero-secondary{flex-direction:column;gap:12px}.hero-stat{flex-direction:row;align-items:center;gap:8px}.section-card{padding:16px}.section-card.tight{padding:14px 16px}.dash-card-header{padding:12px 14px 0}.dash-card-body{padding:0 14px 12px}.metrics-grid{grid-template-columns:1fr 1fr;gap:12px}.stat-card{padding:14px 16px}.library-stats-grid{grid-template-columns:repeat(2,1fr);gap:12px}.library-filters-row{flex-direction:column;align-items:stretch}.library-search-wrapper{min-width:unset}.library-filter-group{flex-wrap:wrap}.library-select{min-width:unset;flex:1}.library-table th,.library-table td{padding:8px 10px;font-size:12px}.library-table-container{margin:0 calc(-1 * var(--space-2));border-radius:0}.book-detail-header,.book-reader-header{flex-direction:column;align-items:flex-start;gap:12px}.ec-controls{flex-direction:column;gap:8px}.ec-grid{overflow-x:auto}.astro-subnav{padding:0 var(--space-3) 12px;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:4px;overflow-x:auto}.astro-subnav-link{white-space:nowrap;padding:6px 12px;font-size:11px}.tspa-tab-content{padding:0}.settings-section{padding:16px}.settings-row{flex-direction:column;align-items:flex-start;gap:8px}.intel-grid{grid-template-columns:1fr}.intel-filters{flex-direction:column;gap:8px}.workspace-strip{gap:4px}input,textarea,select{max-width:100%}textarea{resize:vertical}button,.btn,[role=button]{min-height:44px}.v2-pin-modal{border-radius:20px;width:calc(100vw - 32px);max-width:340px;padding:28px 20px 20px}.v2-pin-key{font-size:22px}img{height:auto}body,#root,.app-shell,.app-content{overflow-x:hidden}.library-category-grid{padding:0 var(--space-3) var(--space-3)!important}.library-category-legend{flex-wrap:wrap;gap:4px;width:100%;display:flex}.library-legend-item{white-space:nowrap;flex-shrink:0;min-height:32px;padding:5px 8px;font-size:11px}.library-btn{min-height:44px;padding:10px 18px}.library-section-header{padding:var(--space-3) var(--space-4);min-height:44px}.library-filters-card .library-tag{padding:6px 12px;font-size:12px}.library-catalog{flex-direction:column;display:flex}.calendar-body{grid-template-columns:1fr}.calendar-grid-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.cal-month-grid{min-width:630px;overflow:visible}.cal-days-grid,.cal-dow-row{min-width:100%}.cal-day{min-height:56px;padding:4px 1px}.cal-day-num{width:24px;height:24px;font-size:12px}.cal-dot{width:4px;height:4px}.cal-week-view{-webkit-overflow-scrolling:touch;overflow-x:auto}.cal-week-header{min-width:380px}.calendar-events-panel{max-height:none}.cal-event-title{white-space:normal;word-break:break-word}.oi-actions-bar{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.oi-action-btn{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:44px;padding:10px 6px;font-size:12px;display:flex}.oi-action-label{white-space:normal;word-break:break-word;line-height:1.2}.dash-teaching-time+button,.dash-card-body button{min-width:44px;min-height:44px}.dash-resource-btn{min-height:52px;padding:12px 8px}.dash-nextup-item{min-height:52px}.ws-chip{min-height:48px}.sidebar-item{min-height:44px}.v2-pin-key{min-height:52px;font-size:22px}.gs-result{min-height:44px}.page-layout{padding-top:max(16px, env(safe-area-inset-top,16px))}}@media (width<=480px){.page-title{font-size:24px}.metrics-grid,.library-stats-grid{grid-template-columns:1fr}.v2-welcome-title{font-size:26px}.v2-welcome-container{gap:20px;padding:24px 16px}.v2-welcome-user-card{padding:14px 16px}.v2-welcome-user-avatar{width:44px;height:44px;font-size:22px}.v2-launcher-grid{gap:12px;padding:4px 12px 32px}.v2-launcher-card{gap:14px;padding:16px 14px 14px}.v2-launcher-card-icon{border-radius:14px;width:48px;height:48px;font-size:24px}.v2-launcher-greeting-text{font-size:22px!important}.v2-launcher-bar{padding:10px 12px}.v2-launcher-user-name{display:none}}@media (width<=740px){.v2-launcher-grid{grid-template-columns:1fr;gap:14px;padding:8px 16px 40px}.v2-launcher-greeting{padding:32px 16px 16px}.v2-launcher-greeting-text{font-size:24px}.v2-launcher-bar{padding:12px 16px}.v2-pin-modal{width:300px;padding:28px 20px 20px}.v2-welcome-title{font-size:28px}.v2-launcher-card{padding:20px 18px 16px}.v2-launcher-card-icon{border-radius:14px;width:52px;height:52px;font-size:26px}}.westos-admin-nav-item:hover{background:var(--bg-subtle);color:var(--text-primary)}.westos-admin-nav-item.active{background:var(--accent-muted);color:var(--accent)}.westos-admin-nav-info{flex:1;min-width:0}.westos-admin-nav-label{font-weight:500;display:block}.westos-admin-nav-desc{color:var(--text-tertiary);margin-top:1px;font-size:11px;display:block}.westos-admin-nav-badge{font:500 9px var(--font-body);text-transform:uppercase;letter-spacing:.06em;border-radius:var(--radius-full);background:var(--bg-subtle);color:var(--text-tertiary);flex-shrink:0;padding:2px 6px}.westos-admin-content{flex:1;padding:24px;overflow-y:auto}.westos-admin-panel-title{font:600 22px/1.3 var(--font-body);color:var(--text-primary);margin:0 0 4px}.westos-admin-panel-desc{font:400 14px var(--font-body);color:var(--text-tertiary);margin:0 0 24px}.westos-admin-cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.westos-admin-card{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-card);padding:20px}.westos-admin-card.ok{border-left:3px solid var(--success)}.westos-admin-card.warn{border-left:3px solid var(--warning)}.westos-admin-card-header{color:var(--text-secondary);align-items:center;gap:8px;margin-bottom:12px;font-size:13px;display:flex}.westos-admin-card-header h3{font:500 13px/1.3 var(--font-body);color:var(--text-primary);margin:0}.westos-admin-card-value{font:600 18px/1.3 var(--font-body);color:var(--text-primary);align-items:center;gap:8px;display:flex}.westos-admin-card-detail{font:400 11px var(--font-body);color:var(--text-tertiary);margin-top:4px}.westos-admin-status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.westos-admin-status-dot.green{background:var(--success)}.westos-admin-status-dot.yellow{background:var(--warning)}.westos-admin-status-dot.red{background:var(--error)}.westos-admin-services{flex-direction:column;gap:8px;display:flex}.westos-admin-service{font:400 13px var(--font-body);color:var(--text-secondary);align-items:center;gap:8px;display:flex}.westos-admin-server-info{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.westos-admin-server-info div{font:400 13px var(--font-body);color:var(--text-secondary)}.westos-admin-server-info span{font:500 10px var(--font-body);text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);margin-bottom:2px;display:block}.westos-admin-placeholder{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:80px 24px;display:flex}.westos-admin-placeholder-icon{color:var(--text-tertiary);opacity:.5}.westos-admin-placeholder-title{font:600 22px/1.3 var(--font-body);color:var(--text-primary);margin:0}.westos-admin-placeholder-desc{font:400 14px/1.5 var(--font-body);color:var(--text-secondary);max-width:360px;margin:0}.westos-admin-placeholder-badge{font:500 11px var(--font-body);text-transform:uppercase;letter-spacing:.06em;border-radius:var(--radius-full);background:var(--bg-subtle);color:var(--text-tertiary);padding:4px 12px}.sidebar-platform-badge{font:400 10px var(--font-body);color:var(--text-tertiary);opacity:.6;margin-left:auto}.sidebar-home-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);width:100%;color:var(--text-secondary);cursor:pointer;font:400 13px/1.3 var(--font-body);transition:all var(--ease-out);align-items:center;gap:10px;margin:0 0 4px;padding:8px 12px;display:flex}.sidebar-home-btn:hover{background:var(--bg-input);color:var(--text-primary);border-color:var(--accent-muted)}.sidebar-logout-btn{width:24px;height:24px;color:var(--text-tertiary);cursor:pointer;transition:all var(--ease-out);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-logout-btn:hover{background:var(--bg-subtle);color:var(--text-secondary)}@media (width<=740px){.launcher-grid{grid-template-columns:1fr}.westos-admin-body{flex-direction:column}.westos-admin-nav{border-right:none;border-bottom:1px solid var(--border-light);flex-flow:wrap;gap:4px;width:100%;padding:12px}.westos-admin-nav-item{flex:none;padding:6px 10px}.westos-admin-nav-desc,.westos-admin-nav-badge{display:none}.placeholder-back-btn{top:-50px;left:50%;transform:translate(-50%)}}.ws-home{box-sizing:border-box;width:100%;max-width:1100px;min-height:100vh;animation:fadeSlideIn .5s var(--spring);margin:0 auto;padding:32px 40px 80px;position:relative}.ws-jenn{--bg-page:#08051a;--bg-card:#161032;--bg-subtle:#1e1838;--bg-sidebar:#0a0618;--bg-input:#211f30;--bg-surface-raised:#1e1838;--border:#2a2050;--border-light:#1e1838;--text-primary:#ebe7e1;--text-secondary:#8f86a8;--text-tertiary:#5c5078;--text-inverse:#12101a;--accent:#a98ef0;--accent-hover:#bba5f5;--accent-muted:#2a2048;--success:#6bb894;--ws-observer:#a98ef0;--ws-observer-bg:#2a2048;--ws-astro:#d4a060;--ws-astro-bg:#2e2218;--shadow-1:0 1px 3px #0006, 0 1px 2px #00000059;--shadow-2:0 4px 16px #00000073, 0 2px 6px #00000059;--shadow-3:0 12px 36px #00000080, 0 4px 14px #0006;--shadow-4:0 24px 56px #0000008c, 0 8px 24px #00000073;background:#08051a}.ws-jenn:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(100% 45% at 50% 5%,#a98ef01a 0%,#0000 60%),radial-gradient(60% 50% at 15% 25%,#7850dc14 0%,#0000 50%),radial-gradient(50% 40% at 80% 20%,#6478f00f 0%,#0000 50%),radial-gradient(30% 25% at 75% 35%,#d4a0600a 0%,#0000 40%),radial-gradient(50% 35% at 20% 70%,#5a3cb40f 0%,#0000 50%),radial-gradient(70% 8% at 50% 100%,#08051a99 0%,#0000 100%);position:absolute;inset:0}.ws-jon{--bg-page:#0b1120;--bg-card:#141b2d;--bg-subtle:#1c2541;--bg-sidebar:#080e1a;--bg-input:#1c2541;--bg-surface-raised:#1c2541;--border:#2a3655;--border-light:#1c2541;--text-primary:#e8e6e1;--text-secondary:#9aa0b0;--text-tertiary:#5e687a;--text-inverse:#080e1a;--accent:#e0883a;--accent-hover:#ec9a50;--accent-muted:#d4813a26;--ws-observer:#e0883a;--ws-observer-bg:#d4813a26;--ws-astro:#7a6dc8;--ws-astro-bg:#1e1c35;--ws-wmr:#e0883a;--ws-wmr-bg:#d4813a26;--shadow-1:0 1px 3px #0006, 0 1px 2px #00000059;--shadow-2:0 4px 16px #00000073, 0 2px 6px #00000059;--shadow-3:0 12px 36px #00000080, 0 4px 14px #0006;--shadow-4:0 24px 56px #0000008c, 0 8px 24px #00000073;background:#0b1120}.ws-jon:before{content:"";pointer-events:none;z-index:0;background:linear-gradient(#0b1120a6 0%,#0b1120cc 40%,#0b1120eb 100%),linear-gradient(#0000 50%,#1a2538 53% 56%,#1f2c42 58% 61%,#162030 64% 67%,#1b283a 70% 73%,#141d2c 76% 100%),radial-gradient(55% 25% at 30% 52%,#d4813a14 0%,#0000 60%),radial-gradient(40% 20% at 70% 55%,#d4813a0f 0%,#0000 50%),repeating-linear-gradient(0deg,#0000,#0000 35px,#ffffff05 35px 36px),repeating-linear-gradient(90deg,#0000,#0000 55px,#ffffff04 55px 56px);position:absolute;inset:0}.ws-hero{z-index:1;margin-bottom:32px;position:relative}.ws-hero-row{align-items:center;gap:12px;display:flex}.ws-sun{color:#d4a060;flex-shrink:0}.ws-jenn .ws-greeting{font:600 36px/1.25 var(--font-body);color:#fff;letter-spacing:-.02em;margin:0}.ws-jon .ws-greeting{font:600 48px/1.15 var(--font-body);color:var(--text-primary);letter-spacing:-.025em;margin:0}.ws-dt{align-items:center;gap:10px;margin:8px 0 0;display:flex}.ws-jenn .ws-date,.ws-jenn .ws-sep,.ws-jenn .ws-time,.ws-jon .ws-date,.ws-jon .ws-sep,.ws-jon .ws-time{font-size:16px;line-height:1.4}.ws-date{color:var(--text-secondary);font-weight:400}.ws-sep{color:var(--text-tertiary);font-weight:400}.ws-time{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:500}.ws-hero .ws-subtitle{color:var(--text-secondary);margin:8px 0 0;font-size:16px;font-weight:400;line-height:1.4}.ws-statusbar{z-index:1;gap:16px;margin-bottom:32px;display:flex;position:relative}.ws-statusbar .westos-card{-webkit-backdrop-filter:blur(12px);background:#1e293b80;border:1px solid #ffffff14;border-radius:12px;flex:1;min-width:0;padding:16px;transition:all .25s cubic-bezier(.16,1,.3,1);box-shadow:0 2px 8px #00000026}.ws-statusbar .westos-card:hover{background:#0000004d;border-color:#ffffff2e;transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.ws-grid{z-index:1;gap:20px;display:grid;position:relative}.ws-jenn .ws-grid{grid-template-rows:250px 250px;grid-template-columns:repeat(4,1fr);gap:24px}.ws-grid-jon{grid-template-columns:repeat(4,1fr);gap:24px}.ws-grid-jon .ws-card-wide{grid-column:span 2}.ws-grid .westos-card{cursor:pointer;text-align:left;color:var(--text-primary);border:1px solid #0000;flex-direction:column;align-items:flex-start;width:100%;padding:0;font-family:inherit;transition:all .28s cubic-bezier(.16,1,.3,1);display:flex;position:relative;overflow:hidden}.ws-jenn .ws-grid .westos-card{background: linear-gradient(180deg, #0a051e80 0%, #0a051eb3 40%, #0a051eeb 100%),  radial-gradient(ellipse 80% 60% at 20% 10%, color-mix(in srgb, var(--ws-clr,#a855f7) 12%, transparent) 0%, transparent 70%),  radial-gradient(ellipse 60% 40% at 80% 90%, color-mix(in srgb, var(--ws-clr,#a855f7) 6%, transparent) 0%, transparent 60%), var(--ws-img,none) center/cover no-repeat;-webkit-backdrop-filter:blur(24px)saturate(1.1);border:1px solid color-mix(in srgb, var(--ws-clr,#a855f7) 15%, #ffffff1a);box-shadow:0 12px 36px #0000004d, 0 4px 20px color-mix(in srgb, var(--ws-clr,#a855f7) 8%, transparent);border-radius:20px;padding:22px}.ws-jenn .ws-grid .westos-card:hover{border-color:color-mix(in srgb, var(--ws-clr,#a855f7) 45%, #ffffff40);background:linear-gradient(180deg, #0a051e66 0%, #0a051e8c 40%, #0a051ecc 100%), radial-gradient(ellipse 90% 70% at 20% 10%, color-mix(in srgb, var(--ws-clr,#a855f7) 18%, transparent) 0%, transparent 70%), radial-gradient(ellipse 70% 50% at 80% 90%, color-mix(in srgb, var(--ws-clr,#a855f7) 10%, transparent) 0%, transparent 60%), var(--ws-img,none) center/cover no-repeat;box-shadow:0 24px 48px #00000080, 0 8px 28px color-mix(in srgb, var(--ws-clr,#a855f7) 20%, transparent), 0 0 0 1px color-mix(in srgb, var(--ws-clr,#a855f7) 30%, transparent);transform:scale(1.02)translateY(-5px)}.ws-jenn .ws-grid .westos-card:before{content:"";border-radius:inherit;opacity:0;background:radial-gradient(400px circle at 50% 30%, color-mix(in srgb, var(--ws-clr,#a855f7) 8%, transparent) 0%, transparent 60%), radial-gradient(300px circle at 80% 70%, color-mix(in srgb, var(--ws-clr,#a855f7) 4%, transparent) 0%, transparent 50%);pointer-events:none;z-index:0;transition:opacity .35s cubic-bezier(.16,1,.3,1);position:absolute;inset:0}.ws-jenn .ws-grid .westos-card:hover:before{opacity:1}.ws-card-bg{border-radius:inherit;pointer-events:none;opacity:.4;z-index:0;height:60%;transition:opacity .28s cubic-bezier(.16,1,.3,1);position:absolute;bottom:0;left:0;right:0}.ws-jenn .ws-grid .westos-card:hover .ws-card-bg{opacity:.8}.ws-jenn .ws-card-ico{z-index:1;background:color-mix(in srgb, var(--ws-clr,#a855f7) 10%, #ffffff0a);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:12px;transition:transform .25s,filter .25s,background .25s,box-shadow .25s;display:flex}.ws-jenn .ws-card-ico svg{width:48px;height:48px}.ws-jenn .ws-grid .westos-card:hover .ws-card-ico{filter:brightness(1.35);background:color-mix(in srgb, var(--ws-clr,#a855f7) 18%, #ffffff14);box-shadow:0 0 24px color-mix(in srgb, var(--ws-clr,#a855f7) 25%, transparent);transform:translateY(-3px)scale(1.08)}.ws-jon .ws-card-ico{z-index:1;background:#ffffff0f;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:16px;display:flex}.ws-jon .ws-card-ico svg{width:24px;height:24px}.ws-card-ico svg{stroke-width:1.5px}.ws-jenn .ws-card-tit{font:600 18px/1.3 var(--font-display);color:#ffffffeb;letter-spacing:.01em;z-index:1;margin-bottom:4px;transition:color .25s;position:relative}.ws-jenn .ws-grid .westos-card:hover .ws-card-tit{color:#fff}.ws-jon .ws-card-tit{font:600 18px/1.3 var(--font-body);color:var(--text-primary);z-index:1;position:relative}.ws-card-sts{font:400 13px/1.4 var(--font-body);color:#ffffff8c;z-index:1;margin-top:auto;padding-top:4px;position:relative}.ws-card-sts-dynamic{color:var(--ws-clr,var(--accent));opacity:.85;font-weight:500}.ws-jenn .ws-grid .westos-card .ws-card-open-indicator{letter-spacing:.03em;color:var(--ws-clr,var(--accent));opacity:0;pointer-events:none;z-index:2;font-size:12px;font-weight:500;transition:opacity .25s,transform .25s;position:absolute;bottom:18px;right:22px;transform:translate(-6px)}.ws-jenn .ws-grid .westos-card:hover .ws-card-open-indicator{opacity:1;transform:translate(0)}.ws-jenn .ws-grid .westos-card:active{border-color:color-mix(in srgb, var(--ws-clr,#a855f7) 60%, #ffffff4d);box-shadow:0 8px 20px #0006, 0 0 0 2px color-mix(in srgb, var(--ws-clr,#a855f7) 35%, transparent), inset 0 0 24px color-mix(in srgb, var(--ws-clr,#a855f7) 6%, transparent);transform:scale(.98)translateY(-1px)!important}.ws-jon .ws-grid .westos-card{background:linear-gradient(180deg, #0b112099 0%, #0b1120cc 50%, #0b1120e6 100%), linear-gradient(180deg, color-mix(in srgb, var(--ws-clr,#3b82f6) 6%,transparent) 0%, transparent 60%), var(--ws-img,none) center/cover no-repeat;-webkit-backdrop-filter:blur(16px);border-color:#ffffff14;border-radius:16px;padding:24px;box-shadow:0 4px 6px #0000001a}.ws-jon .ws-grid .westos-card:hover{box-shadow:0 20px 40px #0006, 0 0 0 1px color-mix(in srgb, var(--ws-clr,var(--accent)) 20%, transparent);border-color:#fff3;transform:translateY(-4px)}.ws-jon .ws-grid .westos-card:active{transform:translateY(-1px)!important}.ws-jon .ws-grid .westos-card:before{content:"";border-radius:inherit;opacity:0;background:radial-gradient(300px circle at 50% 50%, color-mix(in srgb, var(--ws-clr,#a855f7) 6%, transparent) 0%, transparent 55%);pointer-events:none;transition:opacity .3s cubic-bezier(.16,1,.3,1);position:absolute;inset:0}.ws-jon .ws-grid .westos-card:hover:before{opacity:1}.ws-card-family{--ws-clr:#22c55e!important}.ws-card-family .ws-card-tit{color:#22c55e}.ws-card-logo{text-align:center;background:radial-gradient(120% 80% at 50% 110%,#e0883a1a 0%,#0000 70%),linear-gradient(#14141e59 0%,#14141e40 100%);flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex;border-color:#e0883a26!important}.ws-card-logo:hover{border-color:#e0883a59!important;box-shadow:0 12px 40px #e0883a1f,0 4px 16px #0000004d,0 0 0 1px #e0883a33!important}.ws-logo-wrap{z-index:1;flex-direction:column;align-items:center;display:flex;position:relative}.ws-logo-img{object-fit:contain;box-sizing:border-box;width:100%;height:100%;padding:8px}.ws-quick-action{text-align:center;cursor:pointer;flex-direction:column!important;justify-content:center!important;align-items:center!important;gap:10px!important;display:flex!important}.ws-quick-icon{transition:transform .25s var(--ease-out);flex-shrink:0}.ws-quick-action:hover .ws-quick-icon{transform:scale(1.15)}.ws-quick-label{color:var(--text-secondary,#8f86a8);font-size:12px;font-weight:500;line-height:1.3}@media (width<=1200px){.ws-jenn .ws-grid,.ws-grid-jon{grid-template-columns:repeat(3,1fr);gap:20px}.ws-statusbar{flex-wrap:wrap}.ws-statusbar .westos-card{flex:calc(33.33% - 10px);min-width:120px}}@media (width<=900px){.ws-home{padding:24px 28px 64px}.ws-jenn .ws-grid,.ws-grid-jon{grid-template-columns:1fr 1fr;gap:16px}.ws-statusbar{flex-direction:column;gap:8px}.ws-statusbar .westos-card{flex-direction:row;flex:100%;align-items:center;gap:12px;padding:12px 14px}.ws-grid .westos-card{padding:16px}.ws-hero{margin-bottom:32px}}@media (width<=600px){.ws-grid .westos-card{padding:12px}.ws-jenn .ws-grid,.ws-grid-jon{grid-template-columns:1fr;gap:14px}.ws-home{padding:20px 16px 40px}.ws-jenn .ws-greeting,.ws-jon .ws-greeting{font-size:24px}.ws-hero{margin-bottom:28px}}.profile-trigger{z-index:100;border-radius:var(--radius-full);background:var(--bg-card);border:1px solid var(--border-light);cursor:pointer;transition:all var(--ease-out);color:var(--text-primary);appearance:none;align-items:center;gap:8px;padding:4px 10px 4px 4px;font-family:inherit;display:flex;position:fixed;top:16px;right:20px;box-shadow:0 1px 3px #00000026}.profile-trigger:hover{border-color:color-mix(in srgb, var(--accent) 30%, var(--border));box-shadow:0 2px 8px #0003, 0 0 0 1px color-mix(in srgb, var(--accent) 10%, transparent)}.profile-trigger-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.profile-trigger-avatar span{font-size:16px;line-height:1}.profile-trigger-info{text-align:left;flex-direction:column;gap:1px;display:flex}.profile-trigger-name{font:500 13px/1.2 var(--font-body);color:var(--text-primary)}.profile-trigger-role{font:400 10px/1.2 var(--font-body);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}.profile-dropdown{z-index:200;background:var(--bg-surface-raised);border:1px solid var(--border);transform-origin:100% 0;border-radius:14px;min-width:250px;padding:6px;animation:.15s cubic-bezier(.16,1,.3,1) mc-fade-in;position:fixed;top:64px;right:20px;box-shadow:0 16px 48px #00000073,0 4px 16px #0000004d}@keyframes mc-fade-in{0%{opacity:0;transform:scale(.95)translateY(-6px)}to{opacity:1;transform:scale(1)translateY(0)}}.profile-dd-header{background:var(--bg-subtle);border-radius:10px;align-items:center;gap:12px;margin-bottom:2px;padding:10px;display:flex}.profile-dd-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.profile-dd-avatar span{font-size:22px;line-height:1}.profile-dd-info{flex-direction:column;gap:2px;display:flex}.profile-dd-name{font:600 15px/1.3 var(--font-body);color:var(--text-primary)}.profile-dd-role{font:400 11px/1.3 var(--font-body);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}.profile-dd-divider{background:var(--border-light);height:1px;margin:4px 8px}.profile-dd-section-label{font:500 10px/1.3 var(--font-body);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;padding:8px 10px 4px}.profile-dd-user-btn{cursor:pointer;width:100%;color:var(--text-primary);text-align:left;appearance:none;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-family:inherit;transition:background .15s cubic-bezier(.16,1,.3,1);display:flex}.profile-dd-user-btn:hover{background:var(--bg-subtle)}.profile-dd-user-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.profile-dd-user-avatar span{font-size:16px;line-height:1}.profile-dd-user-name{font:500 14px/1.3 var(--font-body)}.profile-dd-action-btn{cursor:pointer;width:100%;color:var(--text-primary);text-align:left;appearance:none;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-family:inherit;font-size:14px;transition:background .15s cubic-bezier(.16,1,.3,1);display:flex}.profile-dd-action-btn:hover{background:var(--bg-subtle)}.profile-dd-action-btn svg{opacity:.5;flex-shrink:0}.profile-toast{z-index:9999;border-radius:var(--radius-full);background:color-mix(in srgb, var(--success) 10%, var(--bg-card));border:1px solid color-mix(in srgb, var(--success) 30%, transparent);color:var(--success);font:500 14px/1.4 var(--font-body);align-items:center;gap:8px;padding:10px 20px;animation:.2s cubic-bezier(.16,1,.3,1) mc-fade-in;display:flex;position:fixed;top:20px;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #00000059}.sidebar-user-summary{background:color-mix(in srgb, var(--accent) 8%, transparent);border:1px solid color-mix(in srgb, var(--accent) 12%, transparent);border-radius:10px;align-items:center;gap:12px;margin:0 8px 12px;padding:10px 12px;display:flex}.student-workspace{background:linear-gradient(#0f172a 0%,#1e293b 100%);min-height:100vh;position:relative}.student-workspace .student-bg{pointer-events:none;background:radial-gradient(at 20%,#3b82f614 0%,#0000 50%),radial-gradient(at 80% 20%,#8b5cf60f 0%,#0000 50%);position:fixed;inset:0}.student-content{max-width:800px;margin:0 auto;padding:48px clamp(24px,5vw,64px);position:relative}.student-cards{grid-template-columns:repeat(2,1fr);gap:16px;margin-top:24px;display:grid}@media (width<=600px){.student-cards{grid-template-columns:1fr}}.student-card{background:#1e293b99;border:1px solid #94a3b81a;border-radius:16px;flex-direction:column;gap:12px;padding:24px;transition:transform .2s ease-out,border-color .2s ease-out;display:flex}.student-card:hover{border-color:#94a3b833;transform:translateY(-2px)}.student-card-icon{border-radius:12px;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.student-card-title{font:600 16px/1.3 var(--font-body);color:#f1f5f9;margin:0}.student-card-desc{font:400 13px/1.5 var(--font-body);color:#94a3b8;margin:0}.student-footer{text-align:center;font:400 11px/1.4 var(--font-mono);color:#94a3b866;margin-top:40px}.guest-workspace{background:linear-gradient(#1a1a2e 0%,#16213e 100%);min-height:100vh;position:relative}.guest-workspace .guest-bg{pointer-events:none;background:radial-gradient(at 50% 0,#9b97a80f 0%,#0000 50%);position:fixed;inset:0}.guest-content{max-width:600px;margin:0 auto;padding:48px clamp(24px,5vw,64px);position:relative}.guest-cards{flex-direction:column;gap:12px;margin-top:24px;display:flex}.guest-card{background:#1e293b80;border:1px solid #9b97a81a;border-radius:14px;flex-direction:column;gap:8px;padding:20px 24px;transition:transform .2s ease-out;display:flex}.guest-card:hover{transform:translateY(-1px)}.guest-card-icon{border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.guest-card-title{font:500 15px/1.3 var(--font-body);color:#e2e8f0;margin:0}.guest-card-desc{font:400 13px/1.5 var(--font-body);color:#94a3b8;margin:0}.guest-footer{text-align:center;font:400 11px/1.4 var(--font-mono);color:#94a3b866;margin-top:48px}.cloudcatcher-workspace{background:linear-gradient(#0c1929 0%,#1a2a3a 50%,#0f1923 100%);min-height:100vh;position:relative}.cloudcatcher-workspace .cloudcatcher-bg{pointer-events:none;background:radial-gradient(at 70% 20%,#4a90d91a 0%,#0000 50%),radial-gradient(at 30% 80%,#10b9810d 0%,#0000 50%);position:fixed;inset:0}.cloudcatcher-content{max-width:960px;margin:0 auto;padding:48px clamp(24px,5vw,64px);position:relative}.cloudcatcher-grid{grid-template-columns:repeat(2,1fr);gap:20px;margin-top:24px;display:grid}@media (width<=720px){.cloudcatcher-grid{grid-template-columns:1fr}}.cloudcatcher-section{background:#0f172a99;border:1px solid #4a90d91a;border-radius:16px;padding:20px;transition:border-color .2s ease-out}.cloudcatcher-section:hover{border-color:#4a90d933}.cloudcatcher-section-header{border-bottom:1px solid #94a3b814;align-items:center;gap:10px;margin-bottom:16px;padding-bottom:12px;display:flex}.cloudcatcher-section-icon{border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.cloudcatcher-section-title{font:600 14px/1.3 var(--font-body);color:#e2e8f0;letter-spacing:.02em;margin:0}.cloudcatcher-section-items{flex-direction:column;gap:8px;display:flex}.cloudcatcher-item{cursor:default;border-radius:8px;align-items:center;gap:10px;padding:6px 8px;transition:background .15s ease-out;display:flex}.cloudcatcher-item:hover{background:#94a3b80d}.cloudcatcher-item-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.cloudcatcher-item-name{font:400 14px/1.4 var(--font-body);color:#cbd5e1}.cloudcatcher-item-link{color:#94a3b84d;opacity:0;margin-left:auto;transition:opacity .15s ease-out}.cloudcatcher-item:hover .cloudcatcher-item-link{opacity:1}.cloudcatcher-footer{text-align:center;font:400 11px/1.4 var(--font-mono);color:#94a3b859;margin-top:48px}.welcome-transition-enter{opacity:0;transform:scale(.96)translateY(12px)}.welcome-transition-active{opacity:1;transition:opacity .35s cubic-bezier(.16,1,.3,1),transform .35s cubic-bezier(.16,1,.3,1);transform:scale(1)translateY(0)}.v2-welcome-user-card{animation:.4s cubic-bezier(.16,1,.3,1) both cardEnter}@keyframes cardEnter{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.v2-welcome-user-card.primary{position:relative;overflow:hidden}.v2-welcome-user-card.primary:before{content:"";background:var(--card-accent,var(--accent));opacity:0;border-radius:0 4px 4px 0;width:3px;transition:opacity .25s ease-out;position:absolute;top:0;bottom:0;left:0}.v2-welcome-user-card.primary:hover:before{opacity:.6}.v2-welcome-welcomeback{font:500 11px/1 var(--font-body);color:var(--card-accent,var(--accent));letter-spacing:.02em}:root{--mc-green:#22c55e;--mc-yellow:#eab308;--mc-red:#ef4444;--mc-gray:#6b7280;--mc-bg:#0b1120;--mc-card:#0f172a;--mc-border:#1e293b;--mc-text:#e2e8f0;--mc-text-dim:#64748b;--mc-accent:#3b82f6}.mc-dashboard{background:var(--mc-bg);min-height:100vh;color:var(--mc-text);padding:24px 32px;font-family:SF Mono,Cascadia Code,JetBrains Mono,Fira Code,Consolas,monospace;overflow-y:auto}.mc-header{margin-bottom:20px}.mc-header-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:14px;display:flex}.mc-greeting-title{letter-spacing:-.02em;background:linear-gradient(135deg,#e2e8f0 0%,#94a3b8 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-size:26px;font-weight:700}.mc-greeting-date{color:var(--mc-text-dim);font-size:12px;font-family:var(--font-body,"Inter", sans-serif);margin:2px 0 0}.mc-mission-status{text-align:right}.mc-mission-status-header{justify-content:flex-end;align-items:center;gap:12px;display:flex}.mc-mission-badge{letter-spacing:.04em;text-transform:uppercase;border:1.5px solid;border-radius:100px;align-items:center;gap:8px;padding:6px 16px;font-size:14px;display:inline-flex}.mc-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--mc-text-dim);align-items:center;margin:0 0 12px;font-size:13px;font-weight:600;display:flex}.mc-all-clear{color:var(--mc-green);justify-content:flex-end;align-items:center;gap:8px;margin-top:8px;font-size:13px;display:flex}.mc-timestamp{color:var(--mc-text-dim);margin-top:6px;font-size:11px}.mc-refresh-btn{background:var(--mc-card);border:1px solid var(--mc-border);color:var(--mc-text-dim);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:6px 14px;font-family:inherit;font-size:12px;transition:all .15s;display:inline-flex}.mc-refresh-btn:hover{color:var(--mc-text);border-color:var(--mc-accent)}.mc-refresh-btn:disabled{opacity:.5;cursor:default}.mc-spin{animation:.6s linear infinite mc-spin}@keyframes mc-spin{to{transform:rotate(360deg)}}.mc-ribbon{background:var(--mc-card);border:1px solid var(--mc-border);border-radius:8px;gap:4px;padding:8px 14px;display:flex}.mc-ribbon-item{cursor:default;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:500;display:flex}.mc-ribbon-item:hover{background:#ffffff0a}.mc-ribbon-label{font-family:var(--font-body,"Inter", sans-serif);color:var(--mc-text-dim)}.mc-body{grid-template-columns:1fr 1fr 1fr;align-items:start;gap:20px;display:grid}@media (width<=1200px){.mc-body{grid-template-columns:1fr 1fr}}@media (width<=768px){.mc-body{grid-template-columns:1fr}.mc-header-top{flex-direction:column}.mc-mission-status{text-align:left}.mc-mission-status-header,.mc-all-clear{justify-content:flex-start}}.mc-section{background:var(--mc-card);border:1px solid var(--mc-border);border-radius:10px;margin-bottom:20px;padding:16px 18px}.mc-empty-state{color:var(--mc-text-dim);font-size:13px;font-family:var(--font-body,"Inter", sans-serif)}.mc-section-compact{padding:12px 18px}.mc-intel-clear{color:var(--mc-green);font-size:12px;font-family:var(--font-body,"Inter", sans-serif);align-items:center;gap:8px;margin:0;display:flex}.mc-alerts-clear{color:var(--mc-green);justify-content:center;align-items:center;gap:8px;padding:4px 0;font-size:13px;display:flex}.mc-node-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.mc-node-card{border:1px solid var(--mc-border);cursor:pointer;border-left:3px solid var(--mc-green);background:#0003;border-radius:8px;flex-direction:column;gap:8px;padding:12px 14px;transition:border-color .2s,box-shadow .2s,transform .2s;display:flex}.mc-node-card:hover{border-color:var(--mc-green);transform:translateY(-1px);box-shadow:0 0 14px #22c55e2e}.mc-node-top{justify-content:space-between;align-items:center;display:flex}.mc-node-icon-wrap{background:#22c55e1a;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.mc-node-info{align-items:center;gap:8px;display:flex}.mc-node-name{flex:1;font-size:13px;font-weight:600}.mc-node-type{text-transform:uppercase;letter-spacing:.06em;color:var(--mc-text-dim);font-size:10px;font-family:var(--font-body,"Inter", sans-serif)}.mc-docker-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.mc-docker-card{border:1px solid var(--mc-border);background:#0003;border-radius:8px;padding:12px 14px;transition:border-color .2s}.mc-docker-card.running{border-left:3px solid var(--mc-green)}.mc-docker-card.stopped{border-left:3px solid var(--mc-red)}.mc-docker-top{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.mc-docker-name{font-size:13px;font-weight:600}.mc-docker-info{align-items:center;gap:10px;font-size:11px;display:flex}.mc-docker-status{color:var(--mc-green);font-weight:500}.mc-docker-status.stopped{color:var(--mc-red)}.mc-docker-uptime{color:var(--mc-text-dim);font-family:var(--font-body,"Inter", sans-serif)}.mc-server-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.mc-gauge{margin-bottom:4px}.mc-gauge-header{justify-content:space-between;margin-bottom:4px;font-size:12px;display:flex}.mc-gauge-label{color:var(--mc-text-dim);font-weight:500}.mc-gauge-value{font-variant-numeric:tabular-nums;font-weight:600}.mc-gauge-track{background:#ffffff0f;border-radius:3px;height:6px;overflow:hidden}.mc-gauge-fill{border-radius:3px;height:100%;transition:width .5s,background .5s}.mc-network-traffic{color:var(--mc-text-dim);font-variant-numeric:tabular-nums;gap:16px;margin-top:10px;font-size:12px;display:flex}.mc-internet-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.mc-internet-stat{flex-direction:column;gap:2px;display:flex}.mc-stat-label{color:var(--mc-text-dim);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.mc-stat-value{font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-size:18px;font-weight:700;display:flex}.mc-internet-offline{text-align:center;color:var(--mc-red);flex-direction:column;align-items:center;gap:8px;padding:24px;display:flex}.mc-internet-offline p{margin:0;font-size:16px;font-weight:600}.mc-intel-list{flex-direction:column;gap:6px;display:flex}.mc-intel-item{background:#00000026;border-radius:6px;align-items:center;gap:10px;padding:8px 10px;font-size:12px;display:flex}.mc-intel-item.warning{border-left:2px solid var(--mc-yellow)}.mc-intel-item.critical{border-left:2px solid var(--mc-red)}.mc-intel-message{font-family:var(--font-body,"Inter", sans-serif)}.mc-alerts-list{flex-direction:column;gap:6px;display:flex}.mc-alert-item{background:#00000026;border-radius:6px;align-items:center;gap:8px;padding:8px 10px;font-size:12px;display:flex}.mc-alert-item.critical{border-left:2px solid var(--mc-red);color:#fca5a5}.mc-alert-item.warning{border-left:2px solid var(--mc-yellow);color:#fde68a}.mc-alert-time{color:var(--mc-text-dim);margin-left:auto;font-size:10px}@keyframes mc-pulse-green{0%,to{box-shadow:0 0 #22c55e99}50%{box-shadow:0 0 0 4px #22c55e00}}@keyframes mc-pulse-yellow{0%,to{box-shadow:0 0 #eab30899}50%{box-shadow:0 0 0 4px #eab30800}}@keyframes mc-pulse-red{0%,to{box-shadow:0 0 #ef444499}50%{box-shadow:0 0 0 4px #ef444400}}.mc-dot.pulse-green{animation:2s infinite mc-pulse-green}.mc-dot.pulse-yellow{animation:2s infinite mc-pulse-yellow}.mc-dot.pulse-red{animation:2s infinite mc-pulse-red}.cmd-palette-overlay{z-index:9999;-webkit-backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:flex-start;padding-top:80px;display:flex;position:fixed;inset:0}.cmd-palette{background:var(--bg-card,#1a1b2e);border:1px solid var(--border,#2a2b3e);border-radius:12px;flex-direction:column;width:560px;max-width:90vw;max-height:60vh;display:flex;overflow:hidden;box-shadow:0 24px 80px #00000080,0 0 0 1px #ffffff0d}.cmd-palette-input-wrap{border-bottom:1px solid var(--border,#2a2b3e);align-items:center;gap:10px;padding:14px 16px;display:flex}.cmd-palette-search-icon{color:var(--text-tertiary,#6b687b);flex-shrink:0}.cmd-palette-input{color:var(--text-primary,#ebe7e1);font-size:15px;font-family:var(--font-body,Inter, sans-serif);background:0 0;border:none;outline:none;flex:1}.cmd-palette-input::placeholder{color:var(--text-tertiary,#6b687b)}.cmd-palette-esc{color:var(--text-tertiary,#6b687b);background:var(--bg-subtle,#211f30);border:1px solid var(--border,#2a2b3e);text-transform:uppercase;letter-spacing:.04em;border-radius:4px;padding:2px 8px;font-family:inherit;font-size:10px}.cmd-palette-results{flex:1;padding:6px;overflow-y:auto}.cmd-palette-empty{text-align:center;color:var(--text-tertiary,#6b687b);padding:24px 16px;font-size:13px}.cmd-palette-item{width:100%;color:var(--text-primary,#ebe7e1);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:10px;padding:8px 10px;font-family:inherit;font-size:13px;transition:background .1s;display:flex}.cmd-palette-item.active,.cmd-palette-item:hover{background:var(--accent,#7c6fbf);color:#fff}.cmd-palette-item-icon{opacity:.7;flex-shrink:0}.cmd-palette-item.active .cmd-palette-item-icon,.cmd-palette-item:hover .cmd-palette-item-icon{opacity:1}.cmd-palette-item-text{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.cmd-palette-item-label{white-space:nowrap;font-weight:500}.cmd-palette-item-section{color:var(--text-tertiary,#6b687b);white-space:nowrap;margin-left:auto;font-size:11px}.cmd-palette-item.active .cmd-palette-item-section,.cmd-palette-item:hover .cmd-palette-item-section{color:#ffffffb3}.sidebar-search-trigger{border:1px solid var(--border,#2a2b3e);width:100%;color:var(--text-secondary,#9b97a8);cursor:pointer;background:#ffffff08;border-radius:8px;align-items:center;gap:10px;margin:4px 0 6px;padding:10px 12px;font-family:inherit;font-size:13px;transition:border-color .2s,background .2s;display:flex!important}.sidebar-search-trigger:hover{border-color:var(--accent,#7c6fbf);color:var(--text-primary,#ebe7e1);background:#7c6fbf14}.login-page{background:radial-gradient(ellipse at 50% -20%, #7c6fbf1f 0%, transparent 55%), radial-gradient(ellipse at 80% 80%, #7c6fbf0a 0%, transparent 40%), var(--bg-page,#08051a);justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex;position:relative;overflow:hidden}.login-ambient{pointer-events:none;background:radial-gradient(600px at 30% 20%,#7c6fbf08 0%,#0000 50%),radial-gradient(400px at 70% 60%,#7c6fbf05 0%,#0000 50%);position:fixed;inset:0}.login-container{opacity:0;z-index:1;flex-direction:column;align-items:center;width:100%;max-width:420px;transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);display:flex;position:relative;transform:translateY(12px)}.login-container.visible{opacity:1;transform:translateY(0)}.login-brand{text-align:center;margin-bottom:40px}.login-logo-img{object-fit:cover;border-radius:16px;width:64px;height:64px;margin-bottom:20px;box-shadow:0 8px 32px #7c6fbf33}.login-wordmark{font:700 32px/1 var(--font-body);letter-spacing:-.03em;margin-bottom:8px}.login-west{color:var(--text-primary,#ebe7e1)}.login-os{color:var(--accent,#7c6fbf)}.login-tagline{font:400 13px/1.4 var(--font-body);color:var(--text-tertiary,#6b687b);letter-spacing:.04em}.login-loading{flex-direction:column;align-items:center;gap:16px;animation:.5s ease-out both loginFadeIn;display:flex}.login-loading-logo{border-radius:20px;width:80px;height:80px;animation:2s ease-in-out infinite loginPulse}@keyframes loginFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes loginPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.97)}}.login-profiles{flex-direction:column;gap:10px;width:100%;margin-bottom:0;display:flex}.login-no-users{text-align:center;font:400 14px/1.4 var(--font-body);color:var(--text-tertiary,#6b687b);padding:24px}.login-profile-card{background:color-mix(in srgb, var(--bg-card,#161032) 70%, transparent);-webkit-backdrop-filter:blur(20px);cursor:pointer;border:1px solid #ffffff0f;border-radius:14px;align-items:center;gap:14px;padding:14px 18px;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex;position:relative;overflow:hidden}.login-profile-card:before{content:"";background:linear-gradient(135deg, var(--card-accent,#7c6fbf) 0%, transparent 50%);opacity:0;pointer-events:none;transition:opacity .3s cubic-bezier(.16,1,.3,1);position:absolute;inset:0}.login-profile-card:hover{border-color:#ffffff1f;transform:translateY(-1px);box-shadow:0 8px 24px #0000004d}.login-profile-card:hover:before{opacity:.04}.login-profile-card.selected{border-color:var(--card-accent,#7c6fbf);box-shadow:0 0 0 1px var(--card-accent,#7c6fbf), 0 8px 32px #0006;cursor:default}.login-profile-card.selected:before{opacity:.06}.login-profile-avatar{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;transition:transform .3s cubic-bezier(.16,1,.3,1);display:flex}.login-profile-card:hover .login-profile-avatar{transform:scale(1.05)}.login-profile-emoji{font-size:20px;line-height:1}.login-profile-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.login-profile-name{font:500 15px/1.3 var(--font-body);color:var(--text-primary,#ebe7e1);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.login-profile-subtitle{font:400 12px/1.3 var(--font-body);color:var(--text-tertiary,#6b687b);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.login-profile-action{flex-shrink:0;align-items:center;display:flex}.login-profile-arrow{color:var(--text-tertiary,#6b687b);font-size:16px;transition:all .3s cubic-bezier(.16,1,.3,1)}.login-profile-card:hover .login-profile-arrow:not(.active){color:var(--text-secondary,#9b97a8);transform:translate(2px)}.login-profile-arrow.active{color:var(--card-accent,#7c6fbf)}.login-password-section{opacity:0;width:100%;max-height:0;margin-top:0;transition:max-height .4s cubic-bezier(.16,1,.3,1),opacity .4s cubic-bezier(.16,1,.3,1),margin .4s cubic-bezier(.16,1,.3,1);overflow:hidden}.login-password-section.visible{opacity:1;max-height:300px;margin-top:20px}.login-password-form{background:color-mix(in srgb, var(--bg-card,#161032) 60%, transparent);-webkit-backdrop-filter:blur(20px);border:1px solid #ffffff0f;border-radius:14px;flex-direction:column;gap:12px;padding:20px;animation:.35s cubic-bezier(.16,1,.3,1) both loginSlideDown;display:flex}@keyframes loginSlideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.login-password-field{flex-direction:column;gap:6px;display:flex}.login-password-label{font:500 11px/1 var(--font-body);color:var(--text-secondary,#9b97a8);text-transform:uppercase;letter-spacing:.08em}.login-password-input{width:100%;color:var(--text-primary,#ebe7e1);font:400 15px/1.4 var(--font-body);box-sizing:border-box;letter-spacing:.08em;background:#ffffff0a;border:1px solid #ffffff14;border-radius:10px;outline:none;padding:12px 14px;transition:border-color .2s cubic-bezier(.16,1,.3,1),box-shadow .2s cubic-bezier(.16,1,.3,1)}.login-password-input:focus{border-color:var(--accent,#7c6fbf);box-shadow:0 0 0 3px #7c6fbf26}.login-password-input::placeholder{color:var(--text-tertiary,#6b687b);letter-spacing:0}.login-password-input:disabled{opacity:.5}.login-password-error{font:400 13px/1.3 var(--font-body);color:#ef4444;text-align:center;padding:4px 0}.login-password-submit{background:linear-gradient(135deg, var(--accent,#7c6fbf), #8b7fd0);color:#fff;width:100%;font:600 15px/1 var(--font-body);cursor:pointer;letter-spacing:.02em;border:none;border-radius:10px;padding:12px;transition:all .2s cubic-bezier(.16,1,.3,1)}.login-password-submit:hover:not(:disabled){opacity:.92;transform:translateY(-1px);box-shadow:0 4px 16px #7c6fbf4d}.login-password-submit:active:not(:disabled){transform:translateY(0)}.login-password-submit:disabled{opacity:.4;cursor:not-allowed}.login-submit-loading{justify-content:center;align-items:center;gap:8px;display:flex}.login-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite loginSpin}@keyframes loginSpin{to{transform:rotate(360deg)}}.login-password-hint{text-align:center;font:400 11px/1 var(--font-body);color:var(--text-tertiary,#6b687b);letter-spacing:.04em;margin-top:10px}.login-field{flex-direction:column;gap:6px;display:flex}.login-label{font:500 12px/1 var(--font-body);color:var(--text-secondary,#9b97a8);text-transform:uppercase;letter-spacing:.06em}.login-input{width:100%;color:var(--text-primary,#ebe7e1);font:400 15px/1.4 var(--font-body);box-sizing:border-box;background:#ffffff0a;border:1px solid #ffffff14;border-radius:10px;outline:none;padding:12px 16px;transition:border-color .2s}.login-input:focus{border-color:var(--accent,#7c6fbf)}.login-input::placeholder{color:var(--text-tertiary,#6b687b)}.login-input:disabled{opacity:.5}.login-error{font:400 13px/1.3 var(--font-body);color:#ef4444;background:#ef44441a;border:1px solid #ef444433;border-radius:8px;padding:10px 14px}.login-submit{background:var(--accent,#7c6fbf);color:#fff;width:100%;font:600 15px/1 var(--font-body);cursor:pointer;border:none;border-radius:10px;padding:12px;transition:opacity .2s,transform .2s}.login-submit:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.login-submit:disabled{opacity:.5;cursor:not-allowed}.switch-prompt-overlay{z-index:9999;-webkit-backdrop-filter:blur(8px);background:#00000080;justify-content:center;align-items:center;animation:.2s ease-out both switchFadeIn;display:flex;position:fixed;inset:0}@keyframes switchFadeIn{0%{opacity:0}to{opacity:1}}.switch-prompt-modal{background:color-mix(in srgb, var(--bg-card,#161032) 80%, transparent);-webkit-backdrop-filter:blur(24px);border:1px solid #ffffff14;border-radius:16px;width:100%;max-width:360px;padding:28px 24px 24px;animation:.3s cubic-bezier(.16,1,.3,1) both switchSlideUp;position:relative;box-shadow:0 24px 64px #00000080}@keyframes switchSlideUp{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.switch-prompt-close{width:28px;height:28px;color:var(--text-tertiary,#6b687b);cursor:pointer;background:#ffffff0a;border:none;border-radius:8px;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;top:12px;right:12px}.switch-prompt-close:hover{color:var(--text-primary,#ebe7e1);background:#ffffff14}.switch-prompt-header{text-align:center;margin-bottom:20px}.switch-prompt-avatar{border-radius:14px;justify-content:center;align-items:center;width:48px;height:48px;margin:0 auto 12px;display:flex}.switch-prompt-emoji{font-size:24px;line-height:1}.switch-prompt-title{font:600 16px/1.3 var(--font-body);color:var(--text-primary,#ebe7e1);margin-bottom:4px}.switch-prompt-subtitle{font:400 13px/1.3 var(--font-body);color:var(--text-tertiary,#6b687b)}.switch-prompt-form{flex-direction:column;gap:12px;display:flex}.switch-prompt-field{flex-direction:column;gap:6px;display:flex}.switch-prompt-label{font:500 11px/1 var(--font-body);color:var(--text-secondary,#9b97a8);text-transform:uppercase;letter-spacing:.08em}.switch-prompt-input{width:100%;color:var(--text-primary,#ebe7e1);font:400 15px/1.4 var(--font-body);box-sizing:border-box;letter-spacing:.08em;background:#ffffff0a;border:1px solid #ffffff14;border-radius:10px;outline:none;padding:12px 14px;transition:border-color .2s,box-shadow .2s}.switch-prompt-input:focus{border-color:var(--accent,#7c6fbf);box-shadow:0 0 0 3px #7c6fbf26}.switch-prompt-input::placeholder{color:var(--text-tertiary,#6b687b);letter-spacing:0}.switch-prompt-input:disabled{opacity:.5}.switch-prompt-error{font:400 13px/1.3 var(--font-body);color:#ef4444;text-align:center;padding:4px 0}.switch-prompt-submit{background:linear-gradient(135deg, var(--accent,#7c6fbf), #8b7fd0);color:#fff;width:100%;font:600 15px/1 var(--font-body);cursor:pointer;letter-spacing:.02em;border:none;border-radius:10px;padding:12px;transition:all .2s cubic-bezier(.16,1,.3,1)}.switch-prompt-submit:hover:not(:disabled){opacity:.92;transform:translateY(-1px);box-shadow:0 4px 16px #7c6fbf4d}.switch-prompt-submit:disabled{opacity:.4;cursor:not-allowed}.gs-input-wrapper{min-width:0}.gs-search-icon{z-index:1}.gs-scope-button{border:none;border-right:1px solid var(--border-light);max-width:118px;color:var(--text-secondary);cursor:pointer;font:500 11px/1 var(--font-body);z-index:1;background:0 0;align-items:center;gap:6px;padding:0 8px;display:flex;position:absolute;top:4px;bottom:4px;left:28px}.gs-scope-button:hover,.gs-scope-button:focus-visible{background:var(--bg-subtle);color:var(--text-primary)}.gs-scope-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gs-scope-menu{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);z-index:1000;width:240px;max-height:min(60vh,360px);box-shadow:var(--shadow-4);position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto}.gs-scope-item{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;font:400 13px/1.4 var(--font-body);background:0 0;border:none;align-items:center;gap:10px;padding:10px 14px;display:flex}.gs-scope-item:hover,.gs-scope-item.active{background:var(--accent-muted)}.gs-input{padding-left:154px}.gs-result{text-align:left;width:100%;font:inherit;background:0 0;border:0}.gs-result:focus-visible,.gs-scope-item:focus-visible,.gs-clear:focus-visible,.gs-scope-button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.gs-spinner{animation:.7s linear infinite gs-spin;display:block}@media (width<=640px){.gs-input-wrapper:focus-within{width:100%}.gs-scope-button{max-width:96px}.gs-input{padding-left:132px}.gs-dropdown{width:100%;left:0;right:0}}@keyframes westos-fade-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes westos-card-lift{0%{box-shadow:var(--shadow-2), 0 0 0 0 transparent;transform:translateY(0)}to{box-shadow:var(--shadow-3), 0 0 24px #7c6fbf0f;transform:translateY(-3px)}}.westos-page{z-index:1;width:100%;max-width:1100px;margin:0 auto;padding:100px clamp(16px,5vw,48px) 80px;animation:.4s cubic-bezier(.16,1,.3,1) westos-fade-in;position:relative}.westos-header{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:36px;display:flex}.westos-header-left{flex:1;min-width:0}.westos-header-row{align-items:center;gap:12px;display:flex}.westos-header-right{flex-shrink:0;align-items:center;gap:12px;display:flex}.westos-title{font:var(--text-page-title);letter-spacing:var(--letter-display);color:var(--text-primary);margin:0}.westos-subtitle{font:400 15px/1.5 var(--font-body);color:var(--text-secondary);letter-spacing:-.01em;align-items:center;gap:12px;margin-top:6px;display:flex}.westos-header-icon{border-radius:var(--radius-md);width:32px;height:32px;color:var(--accent);background:var(--accent-muted);flex-shrink:0;justify-content:center;align-items:center;display:flex}.westos-card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-1), var(--inset-subtle);padding:24px;transition:box-shadow .25s cubic-bezier(.16,1,.3,1),transform .25s cubic-bezier(.16,1,.3,1),border-color .25s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.westos-card:before{content:"";border-radius:var(--radius-lg);background:radial-gradient(ellipse 140% 80% at 50% 110%, color-mix(in srgb, var(--accent) 4%, transparent) 0%, transparent 70%);pointer-events:none;opacity:0;transition:opacity .25s cubic-bezier(.16,1,.3,1);position:absolute;inset:0}.westos-card:after{content:"";border-radius:var(--radius-lg);background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 8%, transparent) 0%, transparent 50%, color-mix(in srgb, var(--accent) 4%, transparent) 100%) border-box;-webkit-mask-composite:xor;pointer-events:none;opacity:0;border:1px solid #0000;transition:opacity .25s cubic-bezier(.16,1,.3,1);position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:padding-box,border-box;-webkit-mask-origin:padding-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.westos-card-interactive{cursor:pointer}.westos-card-interactive:hover{box-shadow:var(--shadow-3), 0 0 0 1px color-mix(in srgb, var(--accent) 15%, transparent);transform:translateY(-3px)}.westos-card-interactive:hover:before,.westos-card-interactive:hover:after{opacity:1}.westos-card-pad-sm{padding:16px}.westos-card-pad-md{padding:20px}.westos-card-pad-lg{padding:24px}.westos-card-glass{background:color-mix(in srgb, var(--bg-card) 70%, transparent);-webkit-backdrop-filter:blur(20px)}.westos-card-metric{align-items:center;gap:14px;padding:18px 20px;display:flex}.westos-card-metric .westos-card-icon{border-radius:var(--radius-md);background:var(--bg-subtle);flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.westos-card-metric-body{flex-direction:column;gap:1px;display:flex}.westos-card-metric-value{font:600 22px/1.2 var(--font-body);color:var(--text-primary);letter-spacing:var(--letter-tight)}.westos-card-metric-label{font:400 13px/1.4 var(--font-body);color:var(--text-secondary)}.westos-card-header{align-items:center;gap:10px;margin-bottom:16px;display:flex}.westos-card-header h3{font:var(--text-card-title);color:var(--text-primary);letter-spacing:var(--letter-tight);flex:1;margin:0}.westos-card-header svg{color:var(--text-tertiary);flex-shrink:0}.westos-card-header .westos-card-header-icon{width:20px;height:20px;color:var(--accent);flex-shrink:0}.westos-card-status{font:var(--text-body-small);color:var(--text-tertiary);margin-top:2px}.westos-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;display:grid}.westos-grid-2{grid-template-columns:1fr 1fr;gap:20px;display:grid}.westos-grid-wide{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}@media (width<=768px){.westos-grid,.westos-grid-2,.westos-grid-wide{grid-template-columns:1fr}}.westos-section{z-index:1;margin-bottom:32px;position:relative}.westos-section-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.westos-section-title{font:600 12px/1.3 var(--font-body);color:var(--text-tertiary);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:10px;margin:0;display:flex}.westos-section-title svg{opacity:.7;flex-shrink:0}.westos-section-action{font:500 12px/1.3 var(--font-body);color:var(--accent);cursor:pointer;transition:background .15s var(--ease-out);background:0 0;border:none;border-radius:6px;padding:4px 8px}.westos-section-action:hover{background:var(--accent-muted)}.westos-brief{background:color-mix(in srgb, var(--bg-card) 55%, transparent);-webkit-backdrop-filter:blur(24px);border:1px solid var(--border);z-index:1;border-radius:16px;margin-bottom:40px;padding:24px 32px;position:relative;box-shadow:0 8px 24px #0003,0 2px 8px #0000001a}.westos-brief-header{font:600 12px/1.3 var(--font-body);color:#ffffffb3;letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:8px;margin-bottom:14px;display:flex}.westos-brief-header svg{color:#d4a060;opacity:.7;flex-shrink:0}.westos-brief-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}@media (width<=768px){.westos-brief-grid{grid-template-columns:1fr}}.westos-brief-item{border-bottom:none;align-items:center;gap:12px;padding:8px 0;display:flex}.westos-brief-item-icon{text-align:center;flex-shrink:0;width:24px;font-size:16px}.westos-brief-item-text{font:500 14px/1.4 var(--font-body);color:var(--text-secondary);letter-spacing:-.01em}.westos-brief-item-clickable{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;width:calc(100% + 24px);margin:-8px -12px;padding:8px 12px;font-family:inherit;transition:all .2s}.westos-brief-item-clickable:hover{background:#ffffff0f}.westos-brief-item-clickable:hover .westos-brief-item-text{color:var(--text-primary)}.westos-brief-item-arrow{opacity:0;color:var(--accent,#7c6fbf);flex-shrink:0;margin-left:auto;font-size:14px;transition:opacity .2s,transform .2s}.westos-brief-item-clickable:hover .westos-brief-item-arrow{opacity:.7;transform:translate(2px)}.westos-brief-focus{background:linear-gradient(135deg, color-mix(in srgb, var(--accent,#7c6fbf) 10%, transparent) 0%, transparent 100%);border-left:3px solid var(--accent,#7c6fbf);animation:focusFadeIn .5s var(--spring) both;border-radius:12px;margin-bottom:24px;padding:16px 20px}@keyframes focusFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.westos-brief-focus-label{font:500 10px/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--accent,#7c6fbf);opacity:.8;margin-bottom:8px}.westos-brief-focus-content{align-items:center;gap:12px;display:flex}.westos-brief-focus-icon{background:color-mix(in srgb, var(--accent,#7c6fbf) 15%, transparent);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:20px;display:flex}.westos-brief-focus-text{font:600 16px/1.4 var(--font-body);color:var(--text-primary);letter-spacing:-.01em}.westos-brief-focus-hint{font:400 12px/1.4 var(--font-body);color:var(--text-tertiary);margin-top:4px}.westos-tab-bar{background:var(--bg-subtle);border-radius:var(--radius-md);z-index:1;gap:4px;margin-bottom:28px;padding:4px;display:flex;position:relative;overflow-x:auto}.westos-tab{color:var(--text-secondary);font:500 13px/1.3 var(--font-body);cursor:pointer;white-space:nowrap;transition:background .2s var(--ease-out), color .2s var(--ease-out);background:0 0;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;display:flex}.westos-tab:hover{background:color-mix(in srgb, var(--bg-card) 50%, transparent);color:var(--text-primary)}.westos-tab.active{background:var(--bg-card);color:var(--text-primary);box-shadow:var(--shadow-1)}.westos-tab svg{flex-shrink:0;width:16px;height:16px}.westos-scope-bar{background:var(--bg-subtle);border-radius:var(--radius-sm);z-index:1;flex-shrink:0;gap:4px;padding:3px;display:flex;position:relative}.westos-scope-btn{color:var(--text-secondary);font:500 12px/1.3 var(--font-body);cursor:pointer;transition:background .2s var(--ease-out), color .2s var(--ease-out);background:0 0;border:none;border-radius:5px;align-items:center;gap:5px;padding:5px 12px;display:flex}.westos-scope-btn:hover{color:var(--text-primary)}.westos-scope-btn.active{background:var(--bg-card);color:var(--accent);box-shadow:var(--shadow-1)}.westos-back{color:var(--text-secondary);cursor:pointer;font:500 13px/1 var(--font-body);transition:all .15s var(--ease-out);background:0 0;border:none;border-radius:8px;flex-shrink:0;align-items:center;gap:6px;padding:6px 12px 6px 8px;display:inline-flex}.westos-back:hover{background:var(--bg-subtle);color:var(--text-primary)}.westos-user-badge{border-radius:var(--radius-full);background:var(--accent-muted);color:var(--accent);font:500 11px/1.4 var(--font-body);letter-spacing:.02em;align-items:center;gap:5px;padding:3px 10px;display:inline-flex}.westos-user-badge svg{width:12px;height:12px}.westos-owner-tag{opacity:.7;align-items:center;font-size:12px;display:inline-flex}.westos-loading{color:var(--text-secondary);font:400 14px/1.4 var(--font-body);flex-direction:column;align-items:center;gap:16px;padding:60px 24px;display:flex}.westos-loading-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite westos-spin}@keyframes westos-spin{to{transform:rotate(360deg)}}.westos-error{color:var(--error);font:400 14px/1.4 var(--font-body);flex-direction:column;align-items:center;gap:12px;padding:40px 24px;display:flex}.westos-empty{color:var(--text-tertiary);text-align:center;flex-direction:column;align-items:center;gap:12px;padding:48px 24px;display:flex}.westos-empty-icon{opacity:.3;width:48px;height:48px}.westos-empty h3{font:500 16px/1.4 var(--font-body);color:var(--text-secondary);margin:0}.westos-empty p{font:400 13px/1.5 var(--font-body);color:var(--text-tertiary);max-width:400px}.westos-chip{border-radius:var(--radius-full);background:var(--bg-subtle);color:var(--text-secondary);font:500 11px/1.4 var(--font-body);letter-spacing:.01em;align-items:center;gap:4px;padding:3px 10px;display:inline-flex}.westos-chip svg{width:12px;height:12px}.westos-notif-item{border-bottom:1px solid var(--border-light);align-items:flex-start;gap:12px;padding:10px 0;display:flex}.westos-notif-item:last-child{border-bottom:none}.westos-notif-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;display:flex}.westos-notif-content{flex-direction:column;flex:1;gap:2px;display:flex}.westos-notif-title{font:500 14px/1.4 var(--font-body);color:var(--text-primary)}.westos-notif-meta{align-items:center;gap:8px;display:flex}.westos-notif-scope{font:500 11px/1.4 var(--font-body);letter-spacing:.02em}@media (width<=1024px){.westos-page{padding:28px 24px 80px}.westos-grid-2{grid-template-columns:1fr}}@media (width<=640px){.westos-page{padding:24px 16px 80px}.westos-header{flex-direction:column;gap:16px;margin-bottom:28px}.westos-title{font-size:28px}.westos-grid,.westos-grid-wide{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.westos-page{animation:none}.westos-card-interactive:hover{transform:none}}.section-card-header{align-items:center;gap:10px;margin-bottom:16px;display:flex}.section-card-header h3{font:var(--text-card-title);color:var(--text-primary);letter-spacing:var(--letter-tight);flex:1;margin:0}.section-card-header svg{color:var(--text-tertiary);flex-shrink:0}.card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-1), var(--inset-subtle);transition:box-shadow .25s cubic-bezier(.16,1,.3,1),transform .25s cubic-bezier(.16,1,.3,1)}.card-clickable:hover{box-shadow:var(--shadow-2);transform:translateY(-1px)}.spin,.tl-spin,.library-v2-spinner,.eb-loading-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px!important;height:32px!important;animation:.8s linear infinite westos-spin!important}.tl-empty,.sd-empty,.astro-placeholder,.library-v2-empty{color:var(--text-tertiary);text-align:center;flex-direction:column;align-items:center;gap:12px;padding:48px 24px;display:flex}.tl-loading,.sd-loading,.library-v2-loading{color:var(--text-secondary);font:400 14px/1.4 var(--font-body);justify-content:center;align-items:center;gap:12px;padding:60px 24px;display:flex}.tl-error,.library-v2-error{color:var(--error);font:400 14px/1.4 var(--font-body);align-items:center;gap:12px;padding:40px 24px;display:flex}.astro-action-btn:hover,.astro-lib-book:hover,.book-reader-action-btn:hover,.dash-resource-btn:hover,.fh-dash-card:hover,.fh-bday-card:hover,.library-folder-card:hover,.tl-card:hover,.tspa-card:hover{transition:transform .25s cubic-bezier(.16,1,.3,1)!important;transform:translateY(-1px)!important}.bh-hero{z-index:1;margin-bottom:32px;position:relative}.bh-hero-content{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 8%, var(--bg-card)) 0%, var(--bg-card) 50%, color-mix(in srgb, var(--accent) 4%, var(--bg-card)) 100%);border-radius:var(--radius-lg);border:1px solid color-mix(in srgb, var(--accent) 15%, var(--border));box-shadow:var(--shadow-2), var(--inset-subtle), 0 0 40px color-mix(in srgb, var(--accent) 4%, transparent);align-items:center;gap:24px;padding:24px 28px;display:flex;position:relative;overflow:hidden}.bh-hero-content:before{content:"";border-radius:var(--radius-lg);background:radial-gradient(ellipse 120% 60% at 30% 50%, color-mix(in srgb, var(--accent) 6%, transparent) 0%, transparent 70%);pointer-events:none;position:absolute;inset:0}.bh-hero-logo{border-radius:var(--radius-md);object-fit:contain;background:var(--bg-card);width:88px;height:88px;box-shadow:var(--shadow-1), 0 0 0 1px color-mix(in srgb, var(--accent) 10%, transparent);z-index:1;flex-shrink:0;padding:8px;transition:transform .3s cubic-bezier(.16,1,.3,1);position:relative}.bh-hero-logo:hover{transform:scale(1.05)}.bh-hero-info h2{font:600 22px/1.3 var(--font-body);color:var(--text-primary);letter-spacing:-.02em;margin:0 0 4px}.bh-hero-info p{font:400 14px/1.5 var(--font-body);color:var(--text-secondary);margin:0}.bh-hero-contact{flex-wrap:wrap;gap:16px;margin-top:8px;display:flex}.bh-hero-contact span{font:500 13px/1.4 var(--font-body);color:var(--accent)}.bh-hero-greeting{text-align:right;background:color-mix(in srgb, var(--accent) 8%, transparent);border:1px solid color-mix(in srgb, var(--accent) 15%, transparent);z-index:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:12px;flex-shrink:0;min-width:140px;padding:12px 16px;position:relative}.bh-hero-greeting .greeting-label{color:var(--accent);font-size:13px;font-weight:600}.bh-hero-greeting .greeting-name{color:var(--text-primary);margin-top:2px;font-size:16px;font-weight:700}.bh-hero-greeting .greeting-date{color:var(--text-tertiary);margin-top:2px;font-size:11px}.bh-card{position:relative;overflow:hidden;transition:box-shadow .3s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1),border-color .3s cubic-bezier(.16,1,.3,1)!important}.bh-card:before{content:"";border-radius:inherit;background:radial-gradient(ellipse 140% 80% at 50% 110%, color-mix(in srgb, var(--accent,#d4813a) 8%, transparent) 0%, transparent 70%);pointer-events:none;opacity:0;transition:opacity .3s cubic-bezier(.16,1,.3,1);position:absolute;inset:0}.bh-card:hover{box-shadow:var(--shadow-3), 0 0 0 1px color-mix(in srgb, var(--accent,#d4813a) 25%, transparent), 0 0 40px color-mix(in srgb, var(--accent,#d4813a) 6%, transparent);border-color:color-mix(in srgb, var(--accent,#d4813a) 30%, var(--border));transform:translateY(-2px)}.bh-card:hover:before{opacity:1}.bh-metric{border-left:3px solid var(--accent,#d4813a)}.bh-metric:hover{border-left-color:var(--accent-hover,#ec9a50)}.bh-status{border-radius:var(--radius-full);font:500 11px/1.4 var(--font-body);letter-spacing:.03em;align-items:center;gap:4px;padding:3px 10px;display:inline-flex}.bh-status-in_progress,.bh-status-active{color:#10b981;background:#10b9811f}.bh-status-scheduled{color:#3b82f6;background:#3b82f61f}.bh-status-completed{color:#9ca3af;background:#6b72801f}.bh-status-cancelled{color:#ef4444;background:#ef44441f}.bh-status-pending{color:#f59e0b;background:#f59e0b1f}.bh-action-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;color:var(--text-primary);font:500 13px/1.3 var(--font-body);flex-direction:column;align-items:center;gap:8px;padding:20px 16px;transition:all .25s cubic-bezier(.16,1,.3,1);display:flex;position:relative;overflow:hidden}.bh-action-btn:before{content:"";border-radius:inherit;background:radial-gradient(ellipse 140% 80% at 50% 110%, color-mix(in srgb, var(--accent) 8%, transparent) 0%, transparent 70%);pointer-events:none;opacity:0;transition:opacity .25s cubic-bezier(.16,1,.3,1);position:absolute;inset:0}.bh-action-btn:hover{box-shadow:var(--shadow-3), 0 0 0 1px color-mix(in srgb, var(--accent) 25%, transparent), 0 0 30px color-mix(in srgb, var(--accent) 6%, transparent);border-color:color-mix(in srgb, var(--accent) 30%, var(--border));transform:translateY(-2px)}.bh-action-btn:hover:before{opacity:1}.bh-action-btn-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;transition:background .25s,transform .25s;display:flex}.bh-action-btn:hover .bh-action-btn-icon{transform:scale(1.1)}.bh-job-row{border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:12px;padding:10px 16px;transition:all .2s cubic-bezier(.16,1,.3,1);display:grid}.bh-job-row:hover{background:color-mix(in srgb, var(--accent) 4%, var(--bg-subtle));transform:translate(2px)}.bh-activity-row{border-bottom:1px solid var(--border-light);cursor:pointer;align-items:center;gap:12px;padding:8px 0;transition:all .2s;display:flex}.bh-activity-row:last-child{border-bottom:none}.bh-activity-row:hover{opacity:1;padding-left:4px}.bh-activity-row:hover .activity-text{color:var(--accent)}.bh-status-bar{background:var(--bg-subtle);border-radius:var(--radius-sm);gap:4px;padding:3px;display:flex}.bh-status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.bh-status-tab{color:var(--text-secondary);font:500 12px/1.3 var(--font-body);cursor:pointer;background:0 0;border:none;border-radius:5px;align-items:center;gap:6px;padding:5px 12px;transition:all .2s;display:flex}.bh-status-tab:hover{color:var(--text-primary);background:color-mix(in srgb, var(--bg-card) 30%, transparent)}.bh-status-tab.active{background:var(--bg-card);color:var(--text-primary);box-shadow:var(--shadow-1)}.bh-tab-bar{background:var(--bg-subtle);border-radius:var(--radius-md);z-index:1;flex-wrap:nowrap;gap:2px;margin-bottom:24px;padding:3px;display:flex;position:relative;overflow-x:auto}.bh-tab-bar .westos-tab{white-space:nowrap;padding:6px 10px;font-size:12px}.bh-search{flex:1;min-width:180px;position:relative}.bh-search input{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-input);width:100%;color:var(--text-primary);font:400 13px/1.5 var(--font-body);box-sizing:border-box;outline:none;padding:8px 32px 8px 34px;transition:border-color .2s,box-shadow .2s}.bh-search input:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 15%, transparent)}.bh-search-icon{color:var(--text-tertiary);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.bh-search-clear{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;padding:4px;transition:color .15s;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.bh-search-clear:hover{color:var(--text-primary)}.bh-thumb-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;display:grid}.bh-thumb{aspect-ratio:1;border-radius:var(--radius-md);background:var(--bg-subtle);cursor:pointer;border:1px solid var(--border);transition:all .25s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.bh-thumb:hover{box-shadow:var(--shadow-3), 0 0 0 1px color-mix(in srgb, var(--accent) 20%, transparent);border-color:color-mix(in srgb, var(--accent) 25%, var(--border));transform:translateY(-3px)}.bh-thumb img{object-fit:cover;width:100%;height:100%}.bh-thumb-label{color:#fff;font:500 11px/1.3 var(--font-body);white-space:nowrap;text-overflow:ellipsis;background:linear-gradient(#0000,#000000bf);padding:8px 10px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.bh-thumb-overlay{opacity:0;background:#0000004d;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;inset:0}.bh-thumb:hover .bh-thumb-overlay{opacity:1}.bh-filter-select{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);font:400 13px/1.5 var(--font-body);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;outline:none;padding:8px 32px 8px 12px;transition:border-color .2s,box-shadow .2s}.bh-filter-select:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 15%, transparent)}.bh-dropzone{border:2px dashed var(--border);border-radius:var(--radius-lg);text-align:center;cursor:pointer;background:var(--bg-subtle);padding:40px 24px;transition:all .25s cubic-bezier(.16,1,.3,1)}.bh-dropzone:hover,.bh-dropzone.drag-over{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 4%, var(--bg-subtle));box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 15%, transparent)}.bh-dropzone-icon{background:color-mix(in srgb, var(--accent) 10%, transparent);width:48px;height:48px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 12px;transition:transform .25s;display:flex}.bh-dropzone:hover .bh-dropzone-icon{transform:scale(1.1)}.bh-dropzone-title{font:600 15px/1.4 var(--font-body);color:var(--text-primary);margin-bottom:4px}.bh-dropzone-subtitle{font:400 12px/1.4 var(--font-body);color:var(--text-tertiary)}.bh-upload-progress{background:var(--bg-subtle);border-radius:2px;width:100%;height:4px;margin-top:12px;overflow:hidden}.bh-upload-progress-bar{background:linear-gradient(90deg, var(--accent), var(--accent-hover,#ec9a50));border-radius:2px;height:100%;transition:width .3s}.bh-attachment{border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-light);align-items:center;gap:10px;padding:10px 12px;transition:all .2s;display:flex}.bh-attachment:hover{border-color:color-mix(in srgb, var(--accent) 15%, var(--border));background:color-mix(in srgb, var(--accent) 3%, var(--bg-subtle))}.bh-attachment-icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;display:flex}.bh-attachment-info{flex:1;min-width:0}.bh-attachment-name{font:500 13px/1.3 var(--font-body);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bh-attachment-meta{font:400 11px/1.3 var(--font-body);color:var(--text-tertiary);margin-top:2px}.bh-attachment-actions{flex-shrink:0;gap:4px;display:flex}.bh-attachment-btn{width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:flex}.bh-attachment-btn:hover{background:color-mix(in srgb, var(--text-tertiary) 10%, transparent);color:var(--text-primary)}.bh-attachment-btn.danger:hover{color:#ef4444;background:#ef44441f}.bh-lightbox{z-index:10000;background:#000000d9;justify-content:center;align-items:center;animation:.2s bh-fade-in;display:flex;position:fixed;inset:0}.bh-lightbox img{border-radius:var(--radius-lg);object-fit:contain;max-width:90vw;max-height:90vh;box-shadow:0 20px 60px #00000080}.bh-lightbox-close{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;transition:background .15s;display:flex;position:absolute;top:20px;right:20px}.bh-lightbox-close:hover{background:#fff3}.bh-lightbox-nav{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:background .15s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.bh-lightbox-nav:hover{background:#fff3}.bh-lightbox-prev{left:20px}.bh-lightbox-next{right:20px}.bh-lightbox-counter{color:#ffffffb3;font:400 13px/1.4 var(--font-body);position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.bh-upload-modal{z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;animation:.2s bh-fade-in;display:flex;position:fixed;inset:0}.bh-upload-modal-content{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);width:90%;max-width:520px;max-height:85vh;box-shadow:var(--shadow-4);padding:28px;overflow-y:auto}.bh-upload-modal h3{font:600 16px/1.3 var(--font-body);color:var(--text-primary);margin:0 0 20px}.bh-form-group{margin-bottom:16px}.bh-form-group label{font:500 12px/1.3 var(--font-body);color:var(--text-secondary);margin-bottom:6px;display:block}.bh-form-group input,.bh-form-group textarea,.bh-form-group select{border:1px solid var(--border);background:var(--bg-input);width:100%;color:var(--text-primary);font:400 13px/1.5 var(--font-body);box-sizing:border-box;border-radius:8px;outline:none;padding:8px 12px;transition:border-color .2s}.bh-form-group input:focus,.bh-form-group textarea:focus,.bh-form-group select:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 15%, transparent)}.bh-form-group textarea{resize:vertical;min-height:60px}.bh-modal-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.bh-btn{border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);font:500 13px/1.3 var(--font-body);cursor:pointer;border-radius:8px;padding:8px 16px;transition:all .2s}.bh-btn:hover{background:var(--bg-subtle)}.bh-btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.bh-btn-primary:hover{background:var(--accent-hover,#ec9a50);border-color:var(--accent-hover,#ec9a50);box-shadow:0 2px 12px color-mix(in srgb, var(--accent) 30%, transparent)}@keyframes bh-fade-in{0%{opacity:0}to{opacity:1}}@keyframes bh-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.bh-slide-up{animation:.3s cubic-bezier(.16,1,.3,1) bh-slide-up}.bh-empty-state{text-align:center;padding:60px 24px;animation:.4s cubic-bezier(.16,1,.3,1) bh-slide-up}.bh-empty-state-icon{background:color-mix(in srgb, var(--accent) 8%, transparent);width:64px;height:64px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;display:flex}.bh-empty-state h3{font:600 16px/1.3 var(--font-body);color:var(--text-primary);margin:0 0 8px}.bh-empty-state p{font:400 13px/1.5 var(--font-body);color:var(--text-tertiary);max-width:320px;margin:0 auto 20px}.bh-skeleton{background:linear-gradient(90deg, var(--bg-subtle) 0%, color-mix(in srgb, var(--bg-card) 60%, var(--bg-subtle)) 50%, var(--bg-subtle) 100%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s infinite bh-shimmer}@keyframes bh-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.bh-tag{border-radius:var(--radius-full);background:color-mix(in srgb, var(--accent) 8%, transparent);color:var(--accent);font:500 10px/1.4 var(--font-body);letter-spacing:.02em;align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.bh-action-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.bh-action-bar-right{align-items:center;gap:8px;margin-left:auto;display:flex}.bh-upload-btn{border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);background:color-mix(in srgb, var(--accent) 8%, transparent);color:var(--accent);font:600 13px/1.3 var(--font-body);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex}.bh-upload-btn:hover{background:color-mix(in srgb, var(--accent) 15%, transparent);border-color:color-mix(in srgb, var(--accent) 40%, transparent);box-shadow:0 2px 8px color-mix(in srgb, var(--accent) 15%, transparent);transform:translateY(-1px)}.bh-grid-jobs,.bh-grid-customers,.bh-grid-manuals{flex-direction:column;gap:8px;display:flex}.westos-card-interactive:hover{transform:translateY(-3px);box-shadow:var(--shadow-3), 0 0 0 1px color-mix(in srgb, var(--ws-accent,var(--accent)) 20%, transparent), 0 0 30px color-mix(in srgb, var(--ws-accent,var(--accent)) 8%, transparent)!important;border-color:color-mix(in srgb, var(--ws-accent,var(--accent)) 30%, var(--border))!important}.westos-card-interactive:hover:before{opacity:1;background:radial-gradient(ellipse 140% 80% at 50% 110%, color-mix(in srgb, var(--ws-accent,var(--accent)) 8%, transparent) 0%, transparent 70%)}.westos-card-interactive:hover:after{opacity:1;background:linear-gradient(135deg, color-mix(in srgb, var(--ws-accent,var(--accent)) 15%, transparent) 0%, transparent 50%, color-mix(in srgb, var(--ws-accent,var(--accent)) 8%, transparent) 100%) border-box}.westos-card-metric{transition:box-shadow .25s cubic-bezier(.16,1,.3,1),transform .25s cubic-bezier(.16,1,.3,1),border-color .25s cubic-bezier(.16,1,.3,1),border-left-color .25s;border-left:3px solid var(--ws-accent,var(--accent))!important}.westos-card-metric:hover{border-left-color:color-mix(in srgb, var(--ws-accent,var(--accent)) 70%, white)!important}.westos-card-metric:hover .westos-card-icon{box-shadow:0 0 16px color-mix(in srgb, var(--ws-accent,var(--accent)) 15%, transparent)}.westos-page[data-workspace=business]{background:radial-gradient(100% 60% at 50% 0,#d4813a08 0%,#0000 100%)}.westos-page[data-workspace=family]{background:radial-gradient(100% 60% at 50% 0,#72b57208 0%,#0000 100%)}.westos-page[data-workspace=mission-control]{background:radial-gradient(100% 60% at 50% 0,#5b8daf08 0%,#0000 100%)}.westos-page[data-workspace=library]{background:radial-gradient(100% 60% at 50% 0,#8b5cf608 0%,#0000 100%)}.westos-page[data-workspace=astrology]{background:radial-gradient(100% 60% at 50% 0,#b388ff08 0%,#0000 100%)}.bh-section-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.bh-section-header-left{align-items:center;gap:8px;display:flex}.bh-section-header-icon{color:var(--text-tertiary);flex-shrink:0}.bh-section-header-title{font:600 14px/1.3 var(--font-body);color:var(--text-primary)}.bh-section-header-count{font:500 11px/1.3 var(--font-body);color:var(--text-tertiary);background:var(--bg-subtle);border-radius:10px;padding:1px 8px}.bh-field-display{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.bh-field-icon{color:var(--text-tertiary);flex-shrink:0;margin-top:2px}.bh-field-label{font:500 11px/1.3 var(--font-body);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}.bh-field-value{font:400 14px/1.4 var(--font-body);color:var(--text-primary)}.bh-edit-controls{justify-content:flex-end;gap:6px;margin-top:16px;display:flex}.bh-loading{flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 24px;display:flex}.bh-loading-text{font:400 13px/1.4 var(--font-body);color:var(--text-secondary)}.bh-status-badge{font-variant-numeric:tabular-nums;letter-spacing:.02em;align-items:center;gap:4px;transition:opacity .15s;display:inline-flex}.bh-btn-sm{padding:5px 10px;font-size:12px}.bh-btn-ghost{color:var(--text-secondary);background:0 0;border-color:#0000}.bh-btn-ghost:hover{background:var(--bg-subtle);color:var(--text-primary)}.bh-btn-danger{color:#fff;background:#e74c3c;border-color:#e74c3c}.bh-btn-danger:hover{background:#c0392b;border-color:#c0392b}.bh-btn-danger-ghost{color:#e74c3c;background:0 0;border-color:#0000}.bh-btn-danger-ghost:hover{color:#e74c3c;background:#e74c3c10}:root{--lib-accent:var(--ws-observer,#5b8daf);--lib-accent-bg:var(--ws-observer-bg,#5b8daf14);--lib-radius:16px;--lib-transition:.2s cubic-bezier(.2, 0, 0, 1)}.library-page-v2{flex-direction:column;height:100%;min-height:0;display:flex}.library-page-v2 .page-header{flex-shrink:0;margin-bottom:0}.library-page-v2 .v2-page-header{flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.library-page-v2 .v2-page-title-row{align-items:center;gap:12px;display:flex}.library-page-v2 .v2-page-title{font:600 22px/1.3 var(--font-body);color:var(--text-primary);letter-spacing:-.02em;margin:0}.library-page-v2 .v2-page-actions{align-items:center;gap:8px;display:flex}.library-mgmt-link{border-radius:var(--radius-full);background:var(--bg-subtle);border:1px solid var(--border);color:var(--text-tertiary);font:500 12px/1.3 var(--font-body);cursor:pointer;transition:all var(--lib-transition);align-items:center;gap:6px;padding:6px 14px;text-decoration:none;display:inline-flex}.library-mgmt-link:hover{background:var(--bg-card);border-color:var(--text-tertiary);color:var(--text-secondary)}.library-search-section{flex-shrink:0;margin-bottom:16px}.library-search-bar{width:100%;position:relative}.library-search-bar .v2-search-icon{color:var(--text-tertiary);pointer-events:none;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.library-search-bar input{border-radius:var(--lib-radius);border:1.5px solid var(--border);background:var(--bg-card);width:100%;color:var(--text-primary);font:400 15px/1.4 var(--font-body);transition:border-color var(--lib-transition), box-shadow var(--lib-transition);box-sizing:border-box;outline:none;padding:14px 44px 14px 46px}.library-search-bar input:focus{border-color:var(--lib-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--lib-accent) 15%, transparent)}.library-search-bar input::placeholder{color:var(--text-tertiary)}.library-search-bar .v2-search-clear{background:var(--bg-subtle);color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--lib-transition);border:none;justify-content:center;align-items:center;padding:6px;display:flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.library-search-bar .v2-search-clear:hover{color:var(--text-primary)}.library-scrollable-area{flex:1;min-height:0;padding-right:4px;overflow-y:auto}.library-section-label{font:600 13px/1.4 var(--font-body);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin:0 0 10px}.library-hscroll{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:10px;padding-bottom:4px;display:flex;overflow-x:auto}.library-hscroll::-webkit-scrollbar{height:4px}.library-hscroll::-webkit-scrollbar-track{background:0 0}.library-hscroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.library-hscroll-item{scroll-snap-align:start;flex-shrink:0}.library-quick-card{border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border-light);cursor:pointer;transition:all var(--lib-transition);align-items:center;gap:10px;min-width:200px;max-width:260px;padding:10px 14px;text-decoration:none;display:flex}.library-quick-card:hover{border-color:var(--border);background:var(--bg-surface-raised);box-shadow:0 2px 8px #0000000a}.library-quick-card-icon{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex}.library-quick-card-info{flex:1;min-width:0}.library-quick-card-title{font:500 13px/1.3 var(--font-body);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.library-quick-card-meta{font:400 11px/1.3 var(--font-body);color:var(--text-tertiary);margin-top:1px}.library-quick-card-open{color:var(--text-tertiary);transition:color var(--lib-transition);flex-shrink:0}.library-quick-card:hover .library-quick-card-open{color:var(--lib-accent)}.library-collections-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:4px;display:grid}.library-folder-card{border-radius:var(--lib-radius);background:var(--bg-card);border:1px solid var(--border-light);cursor:pointer;transition:all var(--lib-transition);align-items:center;gap:14px;padding:18px 20px;text-decoration:none;display:flex}.library-folder-card:hover{border-color:var(--border);background:var(--bg-surface-raised);transform:translateY(-1px);box-shadow:0 4px 16px #0000000f}.library-folder-card:active{box-shadow:none;transform:translateY(0)}.library-folder-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:24px;display:flex}.library-folder-info{flex:1;min-width:0}.library-folder-name{font:500 14px/1.3 var(--font-body);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.library-folder-count{font:400 12px/1.3 var(--font-body);color:var(--text-tertiary);margin-top:2px}.library-empty-folder{color:var(--text-tertiary);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:60px 20px;display:flex}.library-empty-folder svg{opacity:.3}.library-empty-folder p{font:400 14px/1.5 var(--font-body);margin:0}.library-breadcrumbs{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;margin-bottom:16px;display:flex}.library-breadcrumb-link{border-radius:var(--radius-full);background:var(--bg-subtle);color:var(--text-secondary);font:500 12px/1.3 var(--font-body);cursor:pointer;transition:all var(--lib-transition);border:none;align-items:center;gap:4px;padding:4px 10px;display:inline-flex}.library-breadcrumb-link:hover{background:var(--bg-card);color:var(--text-primary)}.library-breadcrumb-sep{color:var(--text-tertiary);flex-shrink:0;font-size:12px}.library-breadcrumb-current{font:500 12px/1.3 var(--font-body);color:var(--text-primary);padding:4px 10px}.library-back-btn{border-radius:var(--radius-full);background:var(--bg-subtle);border:1px solid var(--border);color:var(--text-secondary);font:500 12px/1.3 var(--font-body);cursor:pointer;transition:all var(--lib-transition);flex-shrink:0;align-items:center;gap:6px;padding:6px 14px;display:inline-flex}.library-back-btn:hover{background:var(--bg-card);border-color:var(--text-tertiary);color:var(--text-primary)}.library-doc-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.library-doc-card{border-radius:var(--lib-radius);background:var(--bg-card);border:1px solid var(--border-light);transition:all var(--lib-transition);cursor:pointer;overflow:hidden}.library-doc-card:hover{border-color:var(--border);transform:translateY(-1px);box-shadow:0 4px 16px #0000000f}.library-doc-card:active{transform:translateY(0)}.library-doc-thumb{aspect-ratio:16/10;background:var(--bg-subtle);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.library-doc-thumb img{object-fit:cover;width:100%;height:100%;display:block}.library-doc-thumb-icon{color:var(--text-tertiary);flex-direction:column;align-items:center;gap:6px;padding:20px;display:flex}.library-doc-thumb-label{font:600 10px/1 var(--font-mono);color:var(--text-tertiary);letter-spacing:.04em;text-transform:uppercase}.library-doc-type-badge{border-radius:var(--radius-full);color:#fff;font:500 10px/1.4 var(--font-body);letter-spacing:.02em;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;padding:2px 8px;position:absolute;top:8px;left:8px}.library-doc-body{padding:12px 14px}.library-doc-title{font:500 13px/1.4 var(--font-body);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;margin-bottom:4px;overflow:hidden}.library-doc-tags{flex-wrap:wrap;gap:4px;margin-bottom:4px;display:flex}.library-doc-tag{border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-tertiary);font:400 9px/1.4 var(--font-body);letter-spacing:.01em;padding:1px 6px}.library-doc-meta{justify-content:space-between;align-items:center;margin-top:2px;display:flex}.library-doc-date{font:400 10px/1.3 var(--font-body);color:var(--text-tertiary)}.library-doc-open-btn{border-radius:var(--radius-full);background:var(--lib-accent-bg);color:var(--lib-accent);font:500 11px/1.3 var(--font-body);cursor:pointer;transition:all var(--lib-transition);border:none;align-items:center;gap:4px;padding:4px 10px;display:inline-flex}.library-doc-open-btn:hover{background:var(--lib-accent);color:#fff}.library-subject-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;display:grid}.library-subject-card{border-radius:var(--lib-radius);background:var(--bg-card);border:1px solid var(--border-light);cursor:pointer;transition:all var(--lib-transition);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:20px 16px;display:flex}.library-subject-card:hover{border-color:var(--border);background:var(--bg-surface-raised);transform:translateY(-2px);box-shadow:0 4px 12px #0000000d}.library-subject-icon{font-size:28px;line-height:1}.library-subject-name{font:500 12px/1.3 var(--font-body);color:var(--text-primary)}.library-subject-count{font:400 11px/1.3 var(--font-body);color:var(--text-tertiary)}.library-search-results{flex:1;min-height:0;overflow-y:auto}.library-search-result-group{margin-bottom:20px}.library-search-result-group-title{font:600 13px/1.4 var(--font-body);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.library-search-result-item{border-radius:var(--radius-md);cursor:pointer;transition:background var(--lib-transition);align-items:center;gap:12px;padding:10px 14px;text-decoration:none;display:flex}.library-search-result-item:hover{background:var(--bg-subtle)}.library-search-result-icon{border-radius:var(--radius-sm);background:var(--bg-subtle);width:36px;height:36px;color:var(--text-tertiary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.library-search-result-info{flex:1;min-width:0}.library-search-result-name{font:500 13px/1.3 var(--font-body);color:var(--text-primary)}.library-search-result-path{font:400 11px/1.3 var(--font-body);color:var(--text-tertiary)}.library-v2-loading{color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:80px 20px;display:flex}.library-v2-spinner{border:3px solid var(--border);border-top-color:var(--lib-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite libv2-spin}@keyframes libv2-spin{to{transform:rotate(360deg)}}.library-v2-error{border-radius:var(--lib-radius);background:var(--error-bg);border:1px solid var(--error);color:var(--error);align-items:center;gap:12px;padding:16px 20px;display:flex}.library-mgmt{flex-direction:column;height:100%;display:flex}.library-mgmt .page-header{flex-shrink:0}.library-mgmt-content{flex:1;min-height:0;overflow-y:auto}.library-mgmt-stats-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px;display:grid}.library-mgmt-section{margin-bottom:24px}.library-mgmt-section-title{font:600 15px/1.4 var(--font-body);color:var(--text-primary);margin:0 0 4px}.library-mgmt-section-desc{font:400 13px/1.5 var(--font-body);color:var(--text-tertiary);margin:0 0 14px}.library-mgmt-table{border-collapse:collapse;width:100%;font-size:13px}.library-mgmt-table thead{background:var(--bg-subtle)}.library-mgmt-table th{text-align:left;font:600 11px/1.4 var(--font-body);color:var(--text-tertiary);letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 14px}.library-mgmt-table td{border-bottom:1px solid var(--border-light);color:var(--text-primary);vertical-align:middle;padding:10px 14px}.library-mgmt-table tbody tr{transition:background .12s var(--ease-out)}.library-mgmt-table tbody tr:hover{background:var(--bg-subtle)}.library-mgmt-table tr:last-child td{border-bottom:none}@media (width<=768px){.library-collections-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.library-folder-card{gap:12px;padding:14px 16px}.library-folder-icon{width:36px;height:36px;font-size:20px}.library-doc-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.library-mgmt-stats-grid{grid-template-columns:repeat(2,1fr);gap:10px}.library-search-bar input{padding:12px 40px 12px 42px;font-size:14px}}@media (width<=480px){.library-collections-grid{grid-template-columns:repeat(2,1fr);gap:8px}.library-folder-card{gap:10px;padding:12px}.library-folder-icon{width:32px;height:32px;font-size:18px}.library-doc-grid{grid-template-columns:1fr}.library-subject-grid{grid-template-columns:repeat(2,1fr)}.library-mgmt-stats-grid{grid-template-columns:1fr}}.book-reader-page{flex-direction:column;height:100%;display:flex}.book-reader-header{padding:var(--space-3) var(--space-4);background:var(--bg-card);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.book-reader-header-left{align-items:center;gap:var(--space-3);flex:1;min-width:0;display:flex}.book-reader-header-right{flex-shrink:0;align-items:center;gap:6px;display:flex}.book-reader-header-info{min-width:0}.book-reader-title{font:500 15px/1.4 var(--font-body);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.book-reader-type{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600}.book-reader-header-btn{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-subtle);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;transition:all .15s var(--ease-out);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.book-reader-header-btn:hover{background:var(--bg-card);border-color:var(--text-tertiary);color:var(--text-primary)}.btn-back{border-radius:var(--radius-md);background:var(--bg-subtle);color:var(--text-secondary);font:500 13px/1.4 var(--font-body);cursor:pointer;transition:all .15s var(--ease-out);border:none;flex-shrink:0;align-items:center;gap:6px;padding:6px 12px;display:inline-flex}.btn-back:hover{background:var(--bg-card);color:var(--text-primary)}.book-reader-content{flex:1;position:relative;overflow:hidden}.book-reader-loading,.book-reader-content-loading{justify-content:center;align-items:center;gap:var(--space-3);color:var(--text-secondary);flex-direction:column;padding:80px 20px;display:flex}.spinner{animation:.8s linear infinite book-reader-spin}@keyframes book-reader-spin{to{transform:rotate(360deg)}}.book-reader-error,.book-reader-missing,.book-reader-content-error{align-items:flex-start;gap:var(--space-3);padding:var(--space-6);color:var(--error);display:flex}.book-reader-error div,.book-reader-missing div,.book-reader-content-error div{color:var(--text-primary);flex:1}.book-reader-error strong,.book-reader-missing strong,.book-reader-content-error strong{color:var(--error);margin-bottom:4px;display:block}.book-reader-error p,.book-reader-missing p,.book-reader-content-error p{color:var(--text-secondary);margin:0 0 4px;font-size:13px}.book-reader-error-hint{font-family:var(--font-mono);word-break:break-all;color:var(--text-tertiary)!important;font-size:11px!important}.book-reader-fallback-link{color:var(--accent);align-items:center;gap:4px;margin-top:8px;font-weight:500;text-decoration:none;display:inline-flex}.book-reader-fallback-link:hover{text-decoration:underline}.pdf-reader-container{background:var(--bg-page);flex-direction:column;height:100%;display:flex}.pdf-reader-toolbar{background:var(--bg-card);border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:6px 12px;display:flex}.pdf-toolbar-group{align-items:center;gap:4px;display:flex}.pdf-toolbar-btn{border-radius:var(--radius-md);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;transition:all .15s var(--ease-out);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.pdf-toolbar-btn:hover:not(:disabled){background:var(--bg-subtle);border-color:var(--border);color:var(--text-primary)}.pdf-toolbar-btn:disabled{opacity:.3;cursor:default}.pdf-toolbar-btn-sm{width:28px;height:28px}.pdf-page-indicator{font:500 13px/1.3 var(--font-body);color:var(--text-primary);align-items:center;gap:4px;display:flex}.pdf-page-input{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-input);width:48px;color:var(--text-primary);font:500 13px/1.3 var(--font-body);text-align:center;-moz-appearance:textfield;outline:none;padding:4px 6px}.pdf-page-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.pdf-page-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pdf-page-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-muted)}.pdf-page-total{color:var(--text-tertiary);white-space:nowrap;font-size:12px}.pdf-zoom-level{font:500 11px/1.3 var(--font-mono);color:var(--text-tertiary);text-align:center;min-width:36px}.pdf-search-bar{border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border);align-items:center;gap:4px;padding:2px 4px;display:flex}.pdf-search-input{width:140px;color:var(--text-primary);font:400 13px/1.3 var(--font-body);background:0 0;border:none;outline:none;padding:4px 8px}.pdf-search-input::placeholder{color:var(--text-tertiary)}.pdf-search-count{font:500 11px/1.3 var(--font-body);color:var(--accent);white-space:nowrap;padding:0 4px}.pdf-progress-bar{background:var(--border);flex-shrink:0;height:3px}.pdf-progress-fill{background:var(--accent);height:100%;transition:width .3s var(--ease-out)}.pdf-canvas-container{background:#525659;outline:none;flex:1;justify-content:center;align-items:flex-start;padding:20px 10px;display:flex;position:relative;overflow:auto}.pdf-page-wrapper{flex-shrink:0;position:relative;box-shadow:0 2px 20px #0000004d}.pdf-canvas{background:#fff;display:block}.pdf-highlight-canvas{pointer-events:none;position:absolute;top:0;left:0}.pdf-page-number-label{font:400 12px/1.3 var(--font-body);color:#ffffff80;white-space:nowrap;position:absolute;bottom:-28px;left:50%;transform:translate(-50%)}@media (width<=768px){.pdf-reader-toolbar{gap:4px;padding:4px 8px}.pdf-search-input{width:100px}.pdf-canvas-container{padding:10px 4px}.pdf-toolbar-btn{width:28px;height:28px}}.book-reader-pdf-container{background:#525659;width:100%;height:100%}.book-reader-pdf-iframe{border:none;width:100%;height:100%}.book-reader-html-container{background:var(--bg-card);height:100%;overflow:hidden}.book-reader-html-content{height:100%;padding:var(--space-6) var(--space-8);max-width:800px;color:var(--text-primary);margin:0 auto;font-size:16px;line-height:1.8;overflow-y:auto}.book-reader-html-content .epub-header{text-align:center;padding-bottom:var(--space-6);margin-bottom:var(--space-6);border-bottom:1px solid var(--border)}.book-reader-html-content .epub-header h1{font:600 24px/1.3 var(--font-body);margin:0 0 8px}.book-reader-html-content .epub-author{color:var(--text-secondary);font-size:15px;font-style:italic}.book-reader-html-content .epub-chapter{margin-bottom:var(--space-4)}.book-reader-html-content p{margin:0 0 1em}.book-reader-html-content h1,.book-reader-html-content h2,.book-reader-html-content h3,.book-reader-html-content h4{margin:1.5em 0 .5em;font-weight:600;line-height:1.3}.book-reader-html-content img{max-width:100%;height:auto}.book-reader-html-content blockquote{border-left:3px solid var(--accent);background:var(--bg-subtle);color:var(--text-secondary);margin:1em 0;padding:8px 16px;font-style:italic}.book-reader-html-content table{border-collapse:collapse;width:100%;margin:1em 0}.book-reader-html-content th,.book-reader-html-content td{border:1px solid var(--border);text-align:left;padding:8px 12px}.book-reader-text-container{background:var(--bg-card);height:100%;overflow:hidden}.book-reader-text-content{height:100%;overflow-y:auto}.book-reader-text-pre{font-family:var(--font-mono);padding:var(--space-6) var(--space-8);white-space:pre-wrap;word-wrap:break-word;color:var(--text-primary);margin:0;font-size:14px;line-height:1.6}.book-reader-unsupported{text-align:center;justify-content:center;align-items:center;gap:var(--space-3);color:var(--text-secondary);flex-direction:column;padding:80px 20px;display:flex}.book-reader-unsupported strong{color:var(--text-primary);font-size:16px}.book-reader-unsupported-actions{gap:var(--space-3);margin-top:var(--space-2);display:flex}.book-reader-action-btn{border-radius:var(--radius-md);background:var(--accent);color:#fff;font:500 13px/1.4 var(--font-body);cursor:pointer;transition:all .15s var(--ease-out);border:none;align-items:center;gap:6px;padding:10px 20px;text-decoration:none;display:inline-flex}.book-reader-action-btn:hover{opacity:.9;transform:translateY(-1px)}.book-detail-page{padding-bottom:var(--space-8)}.book-detail-loading{justify-content:center;align-items:center;gap:var(--space-3);color:var(--text-secondary);flex-direction:column;padding:100px 20px;display:flex}.book-detail-layout{gap:var(--space-6);grid-template-columns:280px 1fr;align-items:start;display:grid}@media (width<=768px){.book-detail-layout{grid-template-columns:1fr}}.book-detail-cover-section{gap:var(--space-4);flex-direction:column;display:flex}.book-detail-cover{aspect-ratio:3/4;border-radius:var(--radius-lg);background:var(--bg-subtle);border:1px solid var(--border);justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.book-detail-thumb{object-fit:cover;width:100%;height:100%}.book-detail-cover-placeholder{justify-content:center;align-items:center;gap:var(--space-3);color:var(--text-tertiary);flex-direction:column;width:100%;height:100%;display:flex}.book-detail-type-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);font-size:13px;font-weight:600}.book-detail-actions{flex-direction:column;gap:8px;display:flex}.book-detail-btn{border-radius:var(--radius-md);font:500 14px/1.4 var(--font-body);cursor:pointer;transition:all .15s var(--ease-out);border:none;justify-content:center;align-items:center;gap:8px;padding:12px 18px;text-decoration:none;display:inline-flex}.book-detail-btn-primary{background:var(--accent);color:#fff}.book-detail-btn-primary:hover{opacity:.9;box-shadow:0 4px 12px var(--accent-muted);transform:translateY(-1px)}.book-detail-btn-secondary{background:var(--bg-subtle);color:var(--text-primary);border:1px solid var(--border)}.book-detail-btn-secondary:hover{background:var(--bg-card);border-color:var(--text-tertiary)}.book-detail-btn-disabled{background:var(--bg-subtle);color:var(--text-tertiary);border:1px solid var(--border);opacity:.6;cursor:not-allowed}.book-detail-unsupported{border-radius:var(--radius-md);background:var(--warning-bg);color:var(--warning);align-items:flex-start;gap:8px;padding:10px 14px;font-size:12px;line-height:1.5;display:flex}.book-detail-unsupported strong{font-weight:600}.book-detail-title{font:600 22px/1.3 var(--font-body);color:var(--text-primary);margin:0 0 var(--space-5);word-break:break-word}.book-detail-meta-grid{gap:var(--space-3);flex-direction:column;display:flex}.book-detail-meta-item{border-radius:var(--radius-md);background:var(--bg-subtle);color:var(--text-tertiary);grid-template-columns:16px 100px 1fr;align-items:center;gap:8px 12px;padding:8px 12px;display:grid}.book-detail-meta-item svg{flex-shrink:0}.book-detail-meta-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.03em;font-size:12px;font-weight:500}.book-detail-meta-value{color:var(--text-primary);word-break:break-word;font-size:13px}.book-detail-meta-full{grid-template-columns:16px 100px 1fr!important}.book-detail-mono{font-family:var(--font-mono);color:var(--text-secondary);font-size:11px}.book-detail-path{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.book-detail-type-badge{border-radius:var(--radius-full);background:var(--accent-muted);color:var(--accent);text-transform:uppercase;letter-spacing:.03em;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.book-detail-progress{margin-top:var(--space-5);padding:var(--space-4);border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border)}.book-detail-progress h3{font:500 13px/1.4 var(--font-body);color:var(--text-secondary);margin:0 0 var(--space-2)}.book-detail-progress-bar-bg{background:var(--border);border-radius:3px;height:6px;overflow:hidden}.book-detail-progress-bar{background:var(--accent);height:100%;transition:width .4s var(--ease-out);border-radius:3px}.book-detail-progress-info{color:var(--text-tertiary);justify-content:space-between;align-items:center;margin-top:6px;font-size:11px;display:flex}.book-detail-fav{color:#f59e0b}.book-detail-warning{margin-top:var(--space-5)}.book-detail-error{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);display:flex}.book-detail-error div{flex:1}.book-detail-error strong{margin-bottom:4px;display:block}.book-detail-error p{color:var(--text-secondary);margin:0 0 4px;font-size:13px}.book-detail-error-hint{font-family:var(--font-mono);font-size:11px;color:var(--text-tertiary)!important}.library-file-row:hover{transition:background .1s var(--ease-out);background:var(--bg-subtle)!important}@media (width<=767px){.book-reader-header{padding:8px 12px;padding-top:calc(8px + env(safe-area-inset-top,0px))}.book-reader-title{max-width:180px;font-size:14px}.book-reader-header-btn{width:38px;height:38px}.book-reader-content{padding:0}.book-reader-pdf-container{height:calc(100vh - 56px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}.book-detail-actions{flex-direction:column}.book-detail-btn{justify-content:center;width:100%;padding:14px 18px}}.library-file-row:active{background:var(--bg-subtle-dark)!important}:root{--edu-foundations:#4a90d9;--edu-foundations-bg:#4a90d91f;--edu-haircutting:#9b59b6;--edu-haircutting-bg:#9b59b61f;--edu-haircolor:#e67e22;--edu-haircolor-bg:#e67e221f;--edu-skin:#e91e63;--edu-skin-bg:#e91e631f;--edu-nails:#f1c40f;--edu-nails-bg:#f1c40f1f;--edu-theory:#2ecc71;--edu-theory-bg:#2ecc711f;--edu-salon:#27ae60;--edu-salon-bg:#27ae601f;--edu-admin:#7f8c8d;--edu-admin-bg:#7f8c8d1f;--edu-front-desk:#3498db;--edu-front-desk-bg:#3498db1f;--edu-office:#8e6f47;--edu-office-bg:#8e6f471f;--edu-educator-relief:#e67e22;--edu-educator-relief-bg:#e67e221f;--edu-floor:#27ae60;--edu-floor-bg:#27ae601f;--edu-duty-check-in:#f39c12;--edu-duty-dress-code:#e74c3c;--edu-duty-energy:#9b59b6;--edu-duty-restroom:#1abc9c;--edu-duty-other:#95a5a6;--edu-off:#e74c3c;--edu-off-bg:#e74c3c1a;--edu-vacation:#3498db;--edu-vacation-bg:#3498db1a}.edu-cal-body{grid-template-columns:1fr 380px;align-items:start;gap:20px;display:grid}@media (width<=900px){.edu-cal-body{grid-template-columns:1fr}}.edu-cal-body-v2{display:block}.edu-month-grid-v2{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden}.edu-days-grid-v2{grid-template-rows:repeat(6,1fr);grid-template-columns:repeat(7,1fr);display:grid}.edu-day-v2{cursor:pointer;min-height:96px;transition:background .12s var(--ease-out);text-align:left;border:none;border-bottom:1px solid var(--border-light);border-right:1px solid var(--border-light);background:0 0;flex-direction:column;align-items:stretch;gap:2px;width:100%;padding:4px 5px;font-family:inherit;display:flex;position:relative}.edu-day-v2:nth-child(7n){border-right:none}.edu-day-v2:nth-child(n+36){border-bottom:none}.edu-day-v2:hover{background:var(--bg-subtle);z-index:1}.edu-day-v2.selected{background:var(--accent-muted);box-shadow:inset 0 0 0 1.5px var(--accent);z-index:2}.edu-day-v2.today{background:#7c6fbf0a}.edu-day-v2.other-month{opacity:.4}.edu-day-v2.other-month:hover{opacity:.6;background:var(--bg-subtle)}.edu-day-top-v2{align-items:center;gap:4px;margin-bottom:2px;display:flex}.edu-day-num-v2{font:400 12px/1.3 var(--font-body);color:var(--text-secondary);border-radius:var(--radius-full);width:22px;height:22px;transition:all .15s var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;display:flex}.edu-day-v2.today .edu-day-num-v2{background:var(--accent);color:#fff;font-weight:600}.edu-day-v2.selected .edu-day-num-v2{outline:2px solid var(--accent);outline-offset:1px}.edu-day-v2.today.selected .edu-day-num-v2{background:var(--accent);color:#fff;outline:2px solid var(--accent-hover)}.edu-day-bubbles{flex-direction:column;flex:1;gap:2px;display:flex;overflow:hidden}.edu-day-bubble{font:500 7.5px/1.3 var(--font-body);color:#fff;white-space:nowrap;text-overflow:ellipsis;letter-spacing:.01em;border-radius:3px;min-height:14px;padding:1px 5px;line-height:14px;display:block;overflow:hidden}.edu-day-more{font:500 7.5px/1.3 var(--font-body);color:var(--text-tertiary);padding:1px 4px;font-style:italic}.cal-bottom-panel{border-top:1px solid var(--border);transition:all .3s var(--ease-out);max-height:0;overflow:hidden}.cal-bottom-panel.has-content{max-height:2000px}.cal-bottom-panel-header{border-bottom:1px solid var(--border-light);padding:16px 18px 8px}.cal-bottom-panel-date-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.cal-bottom-panel-date{font:600 16px/1.3 var(--font-body);color:var(--text-primary);margin:0}.cal-bottom-panel-badges{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.cal-bottom-status{border-radius:var(--radius-full);font:600 11px/1.3 var(--font-body);letter-spacing:.02em;align-items:center;gap:4px;padding:3px 10px;display:inline-flex}.cal-bottom-status.working{background:var(--edu-salon-bg);color:var(--edu-salon)}.cal-bottom-status.off{background:var(--edu-off-bg);color:var(--edu-off)}.cal-bottom-status.vacation{background:var(--edu-vacation-bg);color:var(--edu-vacation)}.cal-bottom-hours{border-radius:var(--radius-full);background:var(--bg-subtle);color:var(--text-secondary);font:600 11px/1.3 var(--font-body);padding:3px 10px;display:inline-flex}.cal-bottom-count{border-radius:var(--radius-full);background:var(--accent-muted);color:var(--accent);font:500 11px/1.3 var(--font-body);padding:3px 10px;display:inline-flex}.cal-bottom-conflicts{background:#e74c3c0a;border-bottom:1px solid #e74c3c26;padding:8px 16px}.cal-bottom-conflict-item{font:400 12px/1.4 var(--font-body);color:#e74c3c;align-items:flex-start;gap:6px;padding:3px 0;display:flex}.cal-bottom-events{padding:4px 0}.cal-bottom-section{border-bottom:1px solid var(--border-light);padding:8px 16px}.cal-bottom-section:last-child{border-bottom:none}.cal-bottom-section-title{font:600 11px/1.3 var(--font-body);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:6px;margin-bottom:8px;display:flex}.cal-bottom-empty{color:var(--text-tertiary);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:32px 20px;display:flex}.cal-bottom-empty p{font:400 13px/1.5 var(--font-body);margin:0}.cal-bottom-events .edu-teaching-item,.cal-bottom-events .edu-ops-item,.cal-bottom-events .edu-duty-item,.cal-bottom-events .edu-lunch-item,.cal-bottom-events .edu-reminder-item,.cal-bottom-events .edu-cal-event-item{margin-bottom:4px}.cal-bottom-events .edu-cal-event-location{font:400 10px/1.3 var(--font-body);color:var(--text-tertiary);align-items:center;gap:3px;margin-top:2px;display:flex}.edu-cal-body{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden}.edu-dow-row{border-bottom:1px solid var(--border);grid-template-columns:repeat(7,1fr);display:grid}.edu-dow{text-align:center;font:500 11px/1.2 var(--font-body);text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);padding:10px 4px}.edu-days-grid{grid-template-columns:repeat(7,1fr);display:grid}.edu-day{cursor:pointer;min-height:88px;transition:background .15s var(--ease-out);text-align:left;border:none;border-bottom:1px solid var(--border-light);border-right:1px solid var(--border-light);background:0 0;flex-direction:column;align-items:stretch;gap:1px;width:100%;padding:4px 3px;font-family:inherit;display:flex;position:relative}.edu-day:nth-child(7n){border-right:none}.edu-day:hover{background:var(--bg-subtle)}.edu-day-empty{cursor:default;border-bottom:1px solid var(--border-light);border-right:1px solid var(--border-light);background:0 0}.edu-day-empty:nth-child(7n){border-right:none}.edu-day-top{justify-content:space-between;align-items:center;margin-bottom:1px;display:flex}.edu-day-num{font:400 12px/1.3 var(--font-body);color:var(--text-secondary);border-radius:var(--radius-full);width:22px;height:22px;transition:all .15s var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;display:flex}.edu-day.today .edu-day-num{background:var(--accent);color:#fff;font-weight:600}.edu-day.selected .edu-day-num{outline:2px solid var(--accent);outline-offset:1px}.edu-day.today.selected .edu-day-num{background:var(--accent);color:#fff;outline:2px solid var(--accent-hover)}.edu-day-status-badge{font:600 8px/1 var(--font-body);text-transform:uppercase;letter-spacing:.04em;border-radius:3px;flex-shrink:0;padding:1px 5px}.edu-day-status-badge.off{background:var(--edu-off-bg);color:var(--edu-off)}.edu-day-status-badge.vacation{background:var(--edu-vacation-bg);color:var(--edu-vacation)}.edu-day-indicators{flex-direction:column;flex:1;gap:1px;display:flex;overflow:hidden}.edu-day-indicator{font:600 7.5px/1.2 var(--font-body);letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;border-radius:2px;align-items:center;gap:3px;min-height:14px;padding:1px 4px;display:flex;overflow:hidden}.edu-day-indicator .edu-ind-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.edu-day-indicator .edu-ind-icon{flex-shrink:0;font-size:8px}.edu-day-indicator .edu-ind-label{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.edu-ind-teaching{background:var(--teaching-bg,var(--bg-subtle));color:var(--teaching-fg,var(--text-secondary))}.edu-ind-ops{background:var(--ops-bg,var(--bg-subtle));color:var(--ops-fg,var(--text-secondary))}.edu-ind-lunch{color:#9b59b6;background:#9b59b61a;font-size:7px}.edu-ind-duty{background:var(--bg-subtle);color:var(--text-tertiary);font-size:7px}.edu-ind-calendar{color:#3498db;background:#3498db14;font-size:7px}.edu-ind-conflict{color:#e74c3c;background:#e74c3c1a;font-weight:700}.edu-day-empty-state{flex:1;justify-content:center;align-items:center;padding:2px;display:flex}.edu-panel{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);flex-direction:column;max-height:680px;display:flex;overflow:hidden}.edu-panel-header{border-bottom:1px solid var(--border-light);padding:16px 18px 12px}.edu-panel-date{font:500 15px/1.3 var(--font-body);color:var(--text-primary);margin:0 0 4px}.edu-panel-day{font:400 12px/1.3 var(--font-body);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.03em}.edu-panel-status-row{align-items:center;gap:6px;margin-top:6px;display:flex}.edu-panel-status-badge{border-radius:var(--radius-full);font:600 11px/1.3 var(--font-body);letter-spacing:.02em;align-items:center;gap:4px;padding:3px 10px;display:inline-flex}.edu-panel-status-badge.working{background:var(--edu-salon-bg);color:var(--edu-salon)}.edu-panel-status-badge.off{background:var(--edu-off-bg);color:var(--edu-off)}.edu-panel-status-badge.vacation{background:var(--edu-vacation-bg);color:var(--edu-vacation)}.edu-panel-body{flex:1;padding:4px 0;overflow-y:auto}.edu-section{border-bottom:1px solid var(--border-light);padding:10px 16px}.edu-section:last-child{border-bottom:none}.edu-section-header{font:600 11px/1.3 var(--font-body);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:6px;margin-bottom:8px;display:flex}.edu-section-header svg{flex-shrink:0}.edu-section-empty{font:400 12px/1.5 var(--font-body);color:var(--text-tertiary);padding:4px 0;font-style:italic}.edu-teaching-item{border-radius:var(--radius-md);background:var(--bg-subtle);align-items:center;gap:10px;margin-bottom:4px;padding:8px 10px;display:flex}.edu-teaching-item:last-child{margin-bottom:0}.edu-teaching-color{border-radius:2px;flex-shrink:0;width:4px;height:32px}.edu-teaching-info{flex:1;min-width:0}.edu-teaching-title{font:500 13px/1.4 var(--font-body);color:var(--text-primary)}.edu-teaching-time{font:400 11px/1.4 var(--font-body);color:var(--text-tertiary)}.edu-teaching-area{font:400 10px/1 var(--font-body);color:var(--text-tertiary);background:var(--bg-card);text-transform:uppercase;letter-spacing:.03em;border-radius:3px;padding:2px 6px}.edu-ops-item{border-radius:var(--radius-md);background:var(--bg-subtle);align-items:center;gap:10px;margin-bottom:4px;padding:8px 10px;display:flex}.edu-ops-item:last-child{margin-bottom:0}.edu-ops-color{border-radius:2px;flex-shrink:0;width:4px;height:28px}.edu-ops-info{flex:1;min-width:0}.edu-ops-title{font:500 12px/1.4 var(--font-body);color:var(--text-primary)}.edu-ops-time{font:400 11px/1.4 var(--font-body);color:var(--text-tertiary)}.edu-duty-item{border-radius:var(--radius-md);align-items:center;gap:8px;margin-bottom:3px;padding:6px 10px;font-size:12px;display:flex}.edu-duty-item:last-child{margin-bottom:0}.edu-duty-time{font:500 11px/1 var(--font-body);color:var(--text-tertiary);flex-shrink:0;min-width:50px}.edu-duty-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.edu-duty-label{font:400 12px/1.4 var(--font-body);color:var(--text-primary);flex:1}.edu-lunch-item{border-radius:var(--radius-md);background:#9b59b60f;border:1px dashed #9b59b633;align-items:center;gap:10px;padding:8px 10px;display:flex}.edu-lunch-icon{flex-shrink:0;font-size:18px}.edu-lunch-time{font:500 12px/1.4 var(--font-body);color:#9b59b6}.edu-cal-event-item{border-radius:var(--radius-md);transition:background .15s var(--ease-out);cursor:pointer;text-align:left;background:0 0;border:none;align-items:flex-start;gap:8px;width:100%;margin-bottom:3px;padding:6px 10px;font-family:inherit;display:flex}.edu-cal-event-item:hover{background:var(--bg-subtle)}.edu-cal-event-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:4px}.edu-cal-event-info{flex:1;min-width:0}.edu-cal-event-title{font:400 12px/1.4 var(--font-body);color:var(--text-primary);display:block}.edu-cal-event-time{font:400 10px/1.3 var(--font-body);color:var(--text-tertiary);margin-top:1px;display:block}.edu-cal-event-mirror{font:400 9px/1 var(--font-body);color:var(--text-tertiary);background:var(--bg-subtle);border-radius:3px;margin-left:4px;padding:1px 5px}.edu-reminder-item{border-radius:var(--radius-md);background:#3498db0f;align-items:flex-start;gap:8px;margin-bottom:3px;padding:6px 10px;display:flex}.edu-reminder-item:last-child{margin-bottom:0}.edu-reminder-icon{color:#3498db;flex-shrink:0;margin-top:2px}.edu-reminder-text{font:400 12px/1.4 var(--font-body);color:var(--text-primary)}.edu-conflicts{background:#e74c3c0a;border-bottom:1px solid #e74c3c26;padding:8px 16px}.edu-conflict-item{font:400 11px/1.4 var(--font-body);color:#e74c3c;align-items:flex-start;gap:6px;padding:4px 0;display:flex}.edu-conflict-sev{font:600 9px/1 var(--font-body);text-transform:uppercase;border-radius:2px;flex-shrink:0;margin-top:1px;padding:1px 4px}.edu-conflict-sev.sev-high{color:#e74c3c;background:#e74c3c26}.edu-conflict-sev.sev-medium{color:#e67e22;background:#f39c1226}.edu-conflict-sev.sev-low{color:#3498db;background:#3498db1a}@media (width<=600px){.edu-month-grid-v2{border-radius:var(--radius-md);border:none;overflow:hidden!important}.edu-dow-row{gap:0}.edu-dow{letter-spacing:.04em;min-width:0;padding:6px 0;font-size:9px}.edu-days-grid-v2{grid-template-rows:repeat(6,1fr);gap:0}.edu-day-v2{border-bottom:none;border-right:none;gap:1px;width:100%;min-width:0;min-height:52px;padding:2px;overflow:hidden}.edu-day-v2:nth-child(7n){border-right:none}.edu-day-v2{border-bottom:1px solid var(--border-light)}.edu-day-v2:nth-child(n+36){border-bottom:none}.edu-day-top-v2{gap:2px;margin-bottom:1px}.edu-day-num-v2{width:18px;height:18px;font-size:10px;line-height:18px}.edu-day-bubbles{gap:1px;min-width:0}.edu-day-bubble{letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;border-radius:2px;max-width:100%;min-height:10px;padding:1px 2px;font-size:6px;line-height:10px;overflow:hidden}.edu-day-more{text-overflow:ellipsis;white-space:nowrap;max-width:100%;padding:0 2px;font-size:6px;line-height:10px;overflow:hidden}.edu-day-v2.selected{box-shadow:inset 0 0 0 1px var(--accent)}.edu-day-v2.today{background:0 0}.edu-day-v2.other-month{opacity:.3}.cal-bottom-panel-header{padding:10px 12px 4px}.cal-bottom-panel-date{font-size:13px}.cal-bottom-status,.cal-bottom-hours,.cal-bottom-count{padding:2px 8px;font-size:10px}.cal-bottom-section{padding:4px 12px}.cal-bottom-section-title{margin-bottom:4px;font-size:10px}.cal-bottom-empty{padding:16px 12px}.cal-bottom-conflicts{padding:4px 12px}.cal-bottom-conflict-item{font-size:11px}.cal-bottom-events .edu-teaching-item,.cal-bottom-events .edu-ops-item,.cal-bottom-events .edu-duty-item,.cal-bottom-events .edu-lunch-item,.cal-bottom-events .edu-cal-event-item{margin-bottom:2px;padding:4px 8px}.edu-teaching-title{font-size:12px}.edu-teaching-time{font-size:10px}.edu-ops-title,.edu-duty-label{font-size:11px}.edu-duty-time{min-width:36px;font-size:10px}.edu-lunch-time,.edu-cal-event-title{font-size:11px}.edu-cal-event-time{font-size:10px}.edu-reminder-text{font-size:11px}.edu-day{min-height:64px;padding:3px 2px}.edu-day-num{width:20px;height:20px;font-size:11px}.edu-day-indicator{min-height:12px;padding:1px 3px;font-size:6.5px}.edu-panel{max-height:none}.edu-cal-body{grid-template-columns:1fr}.edu-day-cell{min-height:52px}.edu-toggle-view{padding:10px 14px;font-size:13px}.edu-panel-header .edu-day-title{font-size:18px}.edu-panel-header .edu-back-btn{width:38px;height:38px}.edu-detail-item{padding:10px}}@media (width<=380px){.edu-day-v2{min-height:44px;padding:1px}.edu-day-num-v2{width:16px;height:16px;font-size:9px;line-height:16px}.edu-day-bubble{min-height:9px;padding:0 2px;font-size:5.5px;line-height:9px}.edu-day-more{font-size:5.5px;line-height:9px}.edu-day-top-v2{margin-bottom:0}}.edu-month-grid-v2{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.edu-loading{color:var(--text-tertiary);font:400 14px/1.5 var(--font-body);justify-content:center;align-items:center;gap:10px;padding:60px 20px;display:flex}.edu-panel-empty{color:var(--text-tertiary);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:40px 20px;display:flex}.edu-panel-empty p{font:400 13px/1.5 var(--font-body);margin:0}.edu-panel-loading{color:var(--text-tertiary);justify-content:center;align-items:center;padding:40px;display:flex}.cal-source-badge-row{gap:6px;margin-top:4px;display:flex}.cal-source-badge{font:500 9px/1.2 var(--font-body);letter-spacing:.3px;text-transform:uppercase;border-radius:3px;align-items:center;padding:2px 6px;display:inline-flex}.cal-source-badge-lesson{background:var(--success);color:#fff}.cal-source-badge-calendar{color:#fff;background:#3498db}.cal-source-badge-schedule{background:var(--edu-theory-bg,#8e44ad30);color:var(--edu-theory,#8e44ad)}.cal-source-badge-appointment{background:var(--bg-subtle);color:var(--text-tertiary)}.dashboard-content{flex-direction:column;gap:20px;margin-top:24px;display:flex}.dashboard-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=768px){.dashboard-grid{grid-template-columns:1fr}}.dash-card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);transition:box-shadow .2s var(--ease-out);overflow:hidden}.dash-card-header{justify-content:space-between;align-items:center;padding:16px 18px 0;display:flex}.dash-card-title-row{align-items:center;gap:8px;margin-bottom:12px;display:flex}.dash-card-title-row svg{color:var(--text-tertiary);flex-shrink:0}.dash-card-title{font:600 13px/1.4 var(--font-body);color:var(--text-primary);text-transform:uppercase;letter-spacing:.04em;margin:0}.dash-card-body{padding:0 18px 16px}.dash-teaching-card{position:relative;overflow:hidden}.dash-teaching-accent{flex-shrink:0;width:100%;height:4px}.dash-teaching-icon{border-radius:var(--radius-full);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.dash-teaching-content{flex-direction:column;flex:1;gap:2px;display:flex}.dash-teaching-class{font:600 18px/1.3 var(--font-body);color:var(--text-primary)}.dash-teaching-time{font:400 13px/1.4 var(--font-body);color:var(--text-secondary)}.dash-teaching-location{font:400 12px/1.4 var(--font-body);color:var(--text-tertiary);align-items:center;gap:4px;margin-top:2px;display:flex}.dash-source-badge{font:500 9px/1.2 var(--font-body);letter-spacing:.3px;text-transform:uppercase;border-radius:3px;align-items:center;margin-top:4px;padding:2px 5px;display:inline-flex}.dash-source-badge-lesson{background:var(--success);color:#fff}.dash-source-badge-calendar{color:#fff;background:#3498db}.dash-source-badge-schedule{background:var(--edu-theory-bg,#8e44ad30);color:var(--edu-theory,#8e44ad)}.dash-source-badge-appointment{background:var(--bg-subtle);color:var(--text-tertiary)}.dash-teaching-empty{color:var(--text-tertiary);align-items:center;gap:12px;padding:4px 0;font-size:14px;display:flex}.dash-work-item{border-bottom:1px solid var(--border-light);align-items:center;gap:10px;padding:8px 0;display:flex}.dash-work-item:last-child{border-bottom:none}.dash-work-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.dash-work-info{flex:1;min-width:0}.dash-work-title{font:400 13px/1.4 var(--font-body);color:var(--text-primary)}.dash-work-time{font:400 11px/1.4 var(--font-body);color:var(--text-tertiary)}.dash-work-status-row{align-items:center;gap:6px;margin-bottom:8px;display:flex}.dash-work-status-badge{border-radius:var(--radius-full);font:500 10px/1.3 var(--font-body);text-transform:uppercase;letter-spacing:.03em;align-items:center;gap:4px;padding:3px 8px;display:inline-flex}.dash-work-status-badge.teaching{background:var(--edu-foundations-bg);color:var(--edu-foundations)}.dash-work-status-badge.floor{background:var(--edu-floor-bg);color:var(--edu-floor)}.dash-work-status-badge.lunch{color:#9b59b6;background:#9b59b61a}.dash-work-status-badge.off{background:var(--edu-off-bg);color:var(--edu-off)}.dash-work-status-badge.idle{background:var(--bg-subtle);color:var(--text-tertiary)}.dash-work-empty{color:var(--text-tertiary);align-items:center;gap:8px;padding:12px 0;font-size:13px;font-style:italic;display:flex}.dash-nextup-item{border-radius:var(--radius-md);background:var(--bg-subtle);align-items:center;gap:12px;margin-top:4px;padding:14px 16px;display:flex}.dash-nextup-icon{border-radius:var(--radius-full);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.dash-nextup-info{flex:1;min-width:0}.dash-nextup-title{font:500 14px/1.4 var(--font-body);color:var(--text-primary)}.dash-nextup-time{font:400 12px/1.4 var(--font-body);color:var(--text-secondary);margin-top:1px}.dash-nextup-countdown{font:500 13px/1 var(--font-body);color:var(--accent);text-align:right;background:var(--accent-muted);border-radius:var(--radius-md);white-space:nowrap;flex-shrink:0;padding:6px 10px}.dash-nextup-empty{color:var(--text-tertiary);align-items:center;gap:8px;padding:12px 0;font-size:13px;font-style:italic;display:flex}.dash-resources-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:4px;display:grid}@media (width<=400px){.dash-resources-grid{grid-template-columns:repeat(2,1fr)}}.dash-resource-btn{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-subtle);cursor:pointer;transition:all .15s var(--ease-out);flex-direction:column;align-items:center;gap:6px;padding:14px 8px;font-family:inherit;text-decoration:none;display:flex}.dash-resource-btn:hover{background:var(--bg-card);border-color:var(--accent);transform:translateY(-1px);box-shadow:0 4px 12px #0000000f}.dash-resource-btn:active{transform:translateY(0)}.dash-resource-icon{border-radius:var(--radius-full);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.dash-resource-label{font:500 10px/1.3 var(--font-body);color:var(--text-secondary);text-align:center;letter-spacing:.01em}.dash-resource-coming{font:400 8px/1 var(--font-body);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}.dash-cal-item{border-bottom:1px solid var(--border-light);align-items:flex-start;gap:10px;padding:8px 0;display:flex}.dash-cal-item:last-child{border-bottom:none}.dash-cal-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:4px}.dash-cal-info{flex:1;min-width:0}.dash-cal-title{font:400 13px/1.4 var(--font-body);color:var(--text-primary);display:block}.dash-cal-time{font:400 11px/1.4 var(--font-body);color:var(--text-tertiary);margin-top:1px;display:block}.dash-cal-mirror{font:400 9px/1 var(--font-body);color:var(--text-tertiary);background:var(--bg-subtle);text-transform:uppercase;letter-spacing:.03em;border-radius:3px;margin-left:4px;padding:1px 5px}.dash-cal-empty{color:var(--text-tertiary);align-items:center;gap:8px;padding:12px 0;font-size:13px;font-style:italic;display:flex}.dash-reading-item{border-radius:var(--radius-md);background:var(--bg-subtle);cursor:pointer;transition:all .15s var(--ease-out);align-items:center;gap:12px;margin-top:4px;padding:10px 14px;text-decoration:none;display:flex}.dash-reading-item:hover{background:var(--accent-muted);border-color:var(--accent)}.dash-reading-cover{background:var(--accent-muted);width:36px;height:48px;color:var(--accent);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.dash-reading-info{flex:1;min-width:0}.dash-reading-title{font:500 13px/1.4 var(--font-body);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.dash-reading-meta{font:400 11px/1.4 var(--font-body);color:var(--text-tertiary);margin-top:1px;display:block}.dash-reading-btn{border-radius:var(--radius-md);background:var(--accent);color:#fff;font:500 11px/1.3 var(--font-body);cursor:pointer;transition:all .15s var(--ease-out);border:none;flex-shrink:0;align-items:center;gap:4px;padding:6px 12px;text-decoration:none;display:inline-flex}.dash-reading-btn:hover{opacity:.9}.dash-reading-empty{color:var(--text-tertiary);align-items:center;gap:8px;padding:12px 0;font-size:13px;font-style:italic;display:flex}.dash-notes-textarea{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-input);width:100%;min-height:80px;color:var(--text-primary);font:400 13px/1.5 var(--font-body);resize:vertical;transition:border-color .2s var(--ease-out);box-sizing:border-box;outline:none;margin-top:4px;padding:10px 12px}.dash-notes-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted)}.dash-notes-textarea::placeholder{color:var(--text-tertiary)}.dash-notes-footer{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.dash-notes-saved{font:400 11px/1 var(--font-body);color:var(--success);align-items:center;gap:4px;display:flex}.dash-notes-btn{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-subtle);color:var(--text-secondary);font:500 11px/1.3 var(--font-body);cursor:pointer;transition:all .15s var(--ease-out);align-items:center;gap:4px;padding:6px 14px;display:inline-flex}.dash-notes-btn:hover{background:var(--bg-card);border-color:var(--text-tertiary);color:var(--text-primary)}.dash-briefing-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:4px;display:grid}.dash-briefing-item{border-radius:var(--radius-md);background:var(--bg-subtle);align-items:center;gap:10px;padding:10px 12px;display:flex}.dash-briefing-icon{text-align:center;flex-shrink:0;width:28px;font-size:20px}.dash-briefing-content{flex:1;min-width:0}.dash-briefing-label{font:500 10px/1.3 var(--font-body);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;display:block}.dash-briefing-value{font:400 13px/1.4 var(--font-body);color:var(--text-primary);margin-top:1px;display:block}.dash-briefing-footer{font:400 10px/1.4 var(--font-body);color:var(--text-tertiary);text-align:center;grid-column:1/-1;padding:4px 0;font-style:italic}.dash-briefing-empty{color:var(--text-tertiary);align-items:center;gap:8px;padding:12px 0;font-size:13px;font-style:italic;display:flex}.dash-card-accent{border-top:3px solid var(--accent)}.dash-card-accent.cosmo{border-top-color:var(--ws-cosmo)}.dash-card-accent.info{border-top-color:var(--info)}.dash-card-accent.warning{border-top-color:var(--warning)}.dash-card-accent.success{border-top-color:var(--success)}.dash-card-accent.purple{border-top-color:#9b59b6}.dash-teaching-row{align-items:flex-start;gap:14px;padding:4px 0;display:flex}.dash-teaching-row .dash-teaching-icon{width:44px;height:44px}.dash-teaching-row .dash-teaching-class{font-size:20px}.dash-off-banner{background:var(--edu-off-bg);border-radius:var(--radius-md);color:var(--edu-off);align-items:center;gap:12px;padding:16px 18px;display:flex}.dash-off-banner span{font:500 15px/1.4 var(--font-body)}.eb-loading{color:var(--text-tertiary);flex-direction:column;align-items:center;gap:16px;padding:80px 0;font-size:14px;display:flex}.eb-loading-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite eb-spin}@keyframes eb-spin{to{transform:rotate(360deg)}}.eb-section{margin-bottom:0}.eb-grid{grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;display:grid}@media (width<=900px){.eb-grid{grid-template-columns:1fr}}.eb-warnings{flex-direction:column;gap:6px;margin-bottom:8px;display:flex}.eb-warning-row{border-radius:var(--radius-md);background:#d9898914;align-items:center;gap:8px;padding:6px 10px;display:flex}.eb-warning-icon{color:var(--warning);flex-shrink:0}.eb-warning-text{font:400 13px/1.4 var(--font-body);color:var(--text-primary)}.eb-clear{font:400 13px/1.5 var(--font-body);color:var(--text-tertiary);border-radius:var(--radius-md);background:#7bc8a414;margin:4px 0 8px;padding:6px 10px}.eb-meta-row{border-top:1px solid var(--border-light);align-items:center;gap:12px;padding-top:8px;display:flex}.eb-meta-label{font:400 11px/1 var(--font-body);color:var(--text-tertiary)}.eb-stats-row{flex-wrap:wrap;gap:8px;display:flex}.eb-mini-stat{border-radius:var(--radius-md);background:var(--bg-subtle);font:400 12px/1.3 var(--font-body);align-items:center;gap:4px;padding:5px 9px;display:flex}.eb-mini-stat-icon{color:var(--eb-mini-accent,var(--text-tertiary));flex-shrink:0}.eb-mini-stat-value{color:var(--text-primary);font-weight:600}.eb-mini-stat-label{color:var(--text-tertiary);font-size:11px}.eb-today-teaching{background:var(--bg-subtle);border-radius:var(--radius-md);align-items:center;gap:8px;margin:10px 0;padding:8px 10px;display:flex}.eb-today-label{font:500 10px/1 var(--font-body);text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);background:var(--bg-card);border-radius:4px;padding:2px 6px}.eb-today-value{font:500 13px/1.4 var(--font-body);color:var(--text-primary)}.eb-upcoming-list{flex-direction:column;gap:3px;margin-top:6px;display:flex}.eb-upcoming-row{border-radius:4px;justify-content:space-between;align-items:center;padding:3px 6px;display:flex}.eb-upcoming-row:hover{background:var(--bg-subtle)}.eb-upcoming-date{font:400 12px/1.3 var(--font-body);color:var(--text-secondary)}.eb-upcoming-status{font:500 12px/1.3 var(--font-body);color:var(--text-primary)}.eb-list{flex-direction:column;gap:3px;margin-top:6px;display:flex}.eb-list-row{border-radius:var(--radius-sm);align-items:center;gap:8px;padding:5px 8px;display:flex}.eb-list-row:hover{background:var(--bg-subtle)}.eb-list-clickable{cursor:pointer}.eb-list-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:400 12px/1.4 var(--font-body);color:var(--text-primary);flex:1;overflow:hidden}.eb-chevron{color:var(--text-tertiary);flex-shrink:0}.eb-section-label{font:500 10px/1 var(--font-body);text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);margin:10px 0 2px}.eb-entity-chips{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.eb-entity-chip{font:400 10px/1.2 var(--font-body);color:var(--text-secondary);background:var(--bg-subtle);white-space:nowrap;border-radius:4px;padding:2px 6px}.eb-hint{font:400 11px/1.4 var(--font-body);color:var(--text-tertiary);margin-top:6px}.eb-link{color:var(--accent);cursor:pointer;font-weight:500}.eb-link:hover{text-decoration:underline}.eb-conflict-sev{font:500 9px/1 var(--font-body);text-transform:uppercase;letter-spacing:.04em;border-radius:3px;flex-shrink:0;padding:1px 5px}.eb-conflict-sev.sev-high{color:#d98989;background:#d9898926}.eb-conflict-sev.sev-medium{color:#e8c47a;background:#e8c47a26}.eb-health-grid{grid-template-columns:1fr 1fr;gap:4px 12px;margin-top:8px;display:grid}.eb-health-item{justify-content:space-between;align-items:center;padding:3px 0;display:flex}.eb-health-label{font:400 11px/1.3 var(--font-body);color:var(--text-tertiary)}.eb-health-value{font:500 11px/1.3 var(--font-body);color:var(--text-secondary)}.eb-health-ok{color:var(--success)}.eb-health-bad{color:var(--error)}.dash-item-stat{border-radius:var(--radius-md);background:var(--bg-subtle);flex-direction:column;flex:1;gap:1px;min-width:0;padding:8px 12px;display:flex}.dash-item-stat-row{align-items:center;gap:5px;display:flex}.dash-item-stat-icon{background:color-mix(in srgb, var(--stat-accent,var(--accent)) 15%, transparent);width:22px;height:22px;color:var(--stat-accent,var(--accent));border-radius:6px;justify-content:center;align-items:center;display:flex}.dash-item-stat-value{font:600 18px/1.2 var(--font-body);color:var(--text-primary)}.dash-item-stat-label{font:400 10px/1.3 var(--font-body);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.03em}.dash-item-clickable{cursor:pointer;transition:all .12s var(--ease-out)}.dash-item-clickable:hover{background:var(--bg-card);box-shadow:0 1px 3px #0000000a}.eb-class-list{flex-direction:column;gap:10px;margin-top:4px;display:flex}.eb-class-card{border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-light);padding:12px}.eb-class-header{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:4px;display:flex}.eb-class-title{font:600 14px/1.4 var(--font-body);color:var(--text-primary);flex:1}.eb-class-time{font:400 12px/1.4 var(--font-body);color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.eb-class-meta{flex-wrap:wrap;gap:4px;margin-bottom:6px;display:flex}.eb-class-tag{font:400 10px/1.2 var(--font-body);color:var(--text-tertiary);background:var(--bg-card);border:1px solid var(--border-light);border-radius:4px;padding:1px 6px}.eb-class-details{flex-wrap:wrap;gap:4px 16px;margin-bottom:6px;display:flex}.eb-class-detail{align-items:center;gap:4px;display:flex}.eb-class-detail-label{font:400 10px/1.3 var(--font-body);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.03em}.eb-class-detail-value{font:500 11px/1.3 var(--font-body);color:var(--text-primary)}.eb-class-statuses{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.eb-class-status{font:400 11px/1.3 var(--font-body);background:var(--bg-card);border-radius:4px;padding:2px 7px}.eb-status-ok{color:var(--success)}.eb-status-missing{color:var(--warning)}.eb-status-muted{color:var(--text-tertiary)}.eb-class-links{border-top:1px solid var(--border-light);align-items:center;gap:4px;padding-top:6px;display:flex}:root{--ws-astrology:#b388d4;--ws-astrology-bg:#b388d41f;--ws-astrology-muted:#b388d40f;--ws-astrology-glow:#b388d433}.sidebar-item.workspace[href*=astrology].active{--ws-accent:var(--ws-astrology)}.astro-subnav{border-bottom:1px solid var(--border-light);flex-wrap:wrap;gap:4px;margin-bottom:20px;padding:0 16px 12px;display:flex}.astro-subnav-link{border-radius:var(--radius-full);font:500 12px/1.3 var(--font-body);color:var(--text-secondary);cursor:pointer;transition:all .15s var(--ease-out);background:0 0;border:1px solid #0000;align-items:center;gap:5px;padding:7px 14px;text-decoration:none;display:inline-flex}.astro-subnav-link:hover{background:var(--ws-astrology-muted);color:var(--ws-astrology);border-color:var(--ws-astrology-muted)}.astro-subnav-link.active{background:var(--ws-astrology-bg);color:var(--ws-astrology);border-color:var(--ws-astrology);font-weight:600}.astro-subnav-link svg{flex-shrink:0}.astro-dash-grid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px;display:grid}@media (width<=768px){.astro-dash-grid{grid-template-columns:1fr}}.astro-dash-full{grid-column:1/-1}.astro-card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);transition:box-shadow .2s var(--ease-out);overflow:hidden}.astro-card:hover{box-shadow:0 4px 16px var(--ws-astrology-glow)}.astro-card-header{align-items:center;gap:8px;padding:16px 20px 0;display:flex}.astro-card-header svg{color:var(--ws-astrology);flex-shrink:0}.astro-card-title{font:600 13px/1.4 var(--font-body);color:var(--text-primary);text-transform:uppercase;letter-spacing:.04em;margin:0}.astro-card-body{padding:12px 20px 20px}.astro-stat{align-items:center;gap:16px;padding:8px 0;display:flex}.astro-stat-icon{border-radius:var(--radius-full);background:var(--ws-astrology-bg);flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:20px;display:flex}.astro-stat-info{flex:1;min-width:0}.astro-stat-label{font:500 11px/1.3 var(--font-body);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;display:block}.astro-stat-value{font:600 16px/1.3 var(--font-body);color:var(--text-primary);margin-top:1px;display:block}.astro-stat-detail{font:400 12px/1.4 var(--font-body);color:var(--text-secondary);margin-top:1px;display:block}.astro-transit-item{border-radius:var(--radius-md);background:var(--bg-subtle);transition:background .15s var(--ease-out);align-items:center;gap:10px;margin-bottom:6px;padding:10px 14px;display:flex}.astro-transit-item:last-child{margin-bottom:0}.astro-transit-planet{text-align:center;flex-shrink:0;width:28px;font-size:18px}.astro-transit-info{flex:1;min-width:0}.astro-transit-aspect{font:500 13px/1.4 var(--font-body);color:var(--text-primary);display:block}.astro-transit-detail{font:400 11px/1.4 var(--font-body);color:var(--text-tertiary);margin-top:1px;display:block}.astro-transit-orb{font:400 11px/1 var(--font-body);color:var(--text-tertiary);border-radius:var(--radius-full);background:var(--bg-card);flex-shrink:0;padding:3px 8px}.astro-actions-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.astro-action-btn{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-subtle);cursor:pointer;color:inherit;transition:all .15s var(--ease-out);flex-direction:column;align-items:center;gap:8px;padding:16px 10px;font-family:inherit;text-decoration:none;display:flex}.astro-action-btn:hover{background:var(--ws-astrology-bg);border-color:var(--ws-astrology);box-shadow:0 6px 16px var(--ws-astrology-glow);transform:translateY(-2px)}.astro-action-icon{border-radius:var(--radius-full);background:var(--ws-astrology-bg);width:38px;height:38px;color:var(--ws-astrology);flex-shrink:0;justify-content:center;align-items:center;display:flex}.astro-action-label{font:500 11px/1.3 var(--font-body);color:var(--text-secondary);text-align:center}.astro-placeholder{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:60px 20px;display:flex}.astro-placeholder-icon{border-radius:var(--radius-full);background:var(--ws-astrology-bg);width:64px;height:64px;color:var(--ws-astrology);justify-content:center;align-items:center;margin-bottom:4px;display:flex}.astro-placeholder h2{font:600 20px/1.3 var(--font-body);color:var(--text-primary);margin:0}.astro-placeholder p{font:400 14px/1.6 var(--font-body);color:var(--text-secondary);max-width:400px;margin:0}.astro-placeholder-features{grid-template-columns:repeat(3,1fr);gap:12px;width:100%;max-width:500px;margin-top:20px;display:grid}.astro-placeholder-feat{border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border);padding:14px 10px}.astro-placeholder-feat-label{font:400 11px/1.4 var(--font-body);color:var(--text-tertiary);margin-top:4px;display:block}.astro-lib-header{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.astro-lib-count{font:400 13px/1 var(--font-body);color:var(--text-tertiary);background:var(--bg-subtle);border-radius:var(--radius-full);padding:4px 10px}.astro-lib-filters{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.astro-lib-filter-btn{border-radius:var(--radius-full);border:1px solid var(--border);color:var(--text-secondary);font:500 11px/1.3 var(--font-body);cursor:pointer;transition:all .15s var(--ease-out);background:0 0;align-items:center;gap:4px;padding:5px 12px;display:inline-flex}.astro-lib-filter-btn:hover{background:var(--bg-subtle);border-color:var(--text-tertiary)}.astro-lib-filter-btn.active{background:var(--ws-astrology-bg);border-color:var(--ws-astrology);color:var(--ws-astrology)}.astro-lib-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;display:grid}.astro-lib-book{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-subtle);cursor:pointer;transition:all .15s var(--ease-out);flex-direction:column;gap:6px;padding:12px;text-decoration:none;display:flex}.astro-lib-book:hover{border-color:var(--ws-astrology);background:var(--ws-astrology-muted);box-shadow:0 4px 12px var(--ws-astrology-glow);transform:translateY(-1px)}.astro-lib-book-icon{border-radius:var(--radius-md);background:var(--ws-astrology-bg);width:32px;height:32px;color:var(--ws-astrology);flex-shrink:0;justify-content:center;align-items:center;display:flex}.astro-lib-book-title{font:500 12px/1.4 var(--font-body);color:var(--text-primary);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.astro-lib-book-meta{font:400 10px/1.3 var(--font-body);color:var(--text-tertiary)}.astro-lib-empty{text-align:center;color:var(--text-tertiary);grid-column:1/-1;padding:40px;font-style:italic}.astro-journal-entry{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-subtle);cursor:pointer;transition:all .15s var(--ease-out);margin-bottom:8px;padding:14px 16px}.astro-journal-entry:hover{border-color:var(--ws-astrology);background:var(--ws-astrology-muted)}.astro-journal-date{font:500 12px/1.3 var(--font-body);color:var(--ws-astrology);margin-bottom:4px;display:block}.astro-journal-preview{font:400 13px/1.5 var(--font-body);color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.astro-journal-empty{text-align:center;color:var(--text-tertiary);padding:40px;font-style:italic}.astro-chart-preview{background:radial-gradient(circle at center, var(--ws-astrology-muted) 0%, transparent 70%);border-radius:var(--radius-lg);border:1px dashed var(--ws-astrology);justify-content:center;align-items:center;min-height:240px;margin:16px 0;padding:30px;display:flex}.astro-chart-preview canvas{max-width:100%;max-height:300px}.astro-transit-table{border-collapse:collapse;width:100%;font-size:13px}.astro-transit-table th{text-align:left;font:600 11px/1.4 var(--font-body);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);background:var(--bg-subtle);padding:8px 12px}.astro-transit-table td{border-bottom:1px solid var(--border-light);color:var(--text-secondary);padding:10px 12px}.astro-transit-table tr:hover td{background:var(--ws-astrology-muted)}@keyframes oi-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes oi-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.oi-focus-card{background:linear-gradient(135deg, var(--bg-card) 0%, var(--bg-subtle) 100%);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-6);margin-bottom:var(--space-5);animation:oi-fade-in .3s var(--ease-out);position:relative;overflow:hidden}.oi-focus-card:before{content:"";background:linear-gradient(90deg, var(--accent), var(--info), var(--success));height:3px;position:absolute;top:0;left:0;right:0}.oi-focus-greeting{gap:var(--space-0-5,2px);margin-bottom:var(--space-5);flex-direction:column;display:flex}.oi-focus-hello{color:var(--text-primary);font-size:24px;font-weight:700;font-family:var(--font-body);line-height:1.3}.oi-focus-date{color:var(--text-tertiary);font-size:13px;font-family:var(--font-body)}.oi-focus-priority{align-items:flex-start;gap:var(--space-3-5,14px);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--bg-card);border:1px solid var(--border-light);margin-bottom:var(--space-4);transition:border-color .15s var(--ease-out);display:flex}.oi-focus-priority:hover{border-color:color-mix(in srgb, var(--accent) 30%, var(--border))}.oi-focus-target{color:var(--accent);margin-top:var(--space-0-5,2px);flex-shrink:0;width:20px;height:20px}.oi-focus-priority-text{gap:var(--space-0-5,2px);flex-direction:column;flex:1;min-width:0;display:flex}.oi-focus-priority-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600;font-family:var(--font-body)}.oi-focus-priority-value{color:var(--text-primary);font-size:16px;font-weight:600;line-height:1.4;font-family:var(--font-body)}.oi-focus-priority-detail{color:var(--text-tertiary);font-size:12px;font-family:var(--font-body)}.oi-focus-suggestions{gap:var(--space-2-5,10px);padding:0 var(--space-1);display:flex}.oi-focus-suggestions .oi-focus-bulb{color:var(--warning);margin-top:var(--space-0-5,2px);flex-shrink:0;width:16px;height:16px}.oi-focus-suggestion-list{gap:var(--space-1-5,6px);flex-direction:column;display:flex}.oi-focus-suggestion{color:var(--text-secondary);padding-left:var(--space-4);font-size:13px;line-height:1.5;position:relative}.oi-focus-suggestion:before{content:"→";color:var(--text-tertiary);font-weight:600;position:absolute;left:0}.oi-actions-bar{gap:var(--space-2);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.oi-action-btn{align-items:center;gap:var(--space-2);padding:var(--space-2-5,10px) var(--space-4-5,18px);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-card);color:var(--text-primary);font-size:13px;font-weight:500;font-family:var(--font-body);cursor:pointer;transition:all .15s var(--ease-out);flex-shrink:0;display:flex}.oi-action-btn:hover{border-color:var(--action-color,var(--accent));background:color-mix(in srgb, var(--action-color,var(--accent)) 8%, var(--bg-card));box-shadow:0 2px 8px color-mix(in srgb, var(--action-color,var(--accent)) 15%, transparent);transform:translateY(-1px)}.oi-action-btn svg{color:var(--action-color,var(--accent));flex-shrink:0;width:16px;height:16px}.oi-action-label{white-space:nowrap}@media (width<=600px){.oi-actions-bar{gap:var(--space-1-5,6px)}.oi-action-btn{padding:var(--space-2) var(--space-3);font-size:12px}}.oi-snapshot{gap:var(--space-4);margin-bottom:var(--space-5);grid-template-columns:repeat(3,1fr);display:grid}@media (width<=900px){.oi-snapshot{grid-template-columns:1fr 1fr}}@media (width<=600px){.oi-snapshot{grid-template-columns:1fr}}.oi-snapshot-card{min-width:0}.oi-snapshot-class{gap:var(--space-1);padding:var(--space-2) 0;flex-direction:column;display:flex}.oi-snapshot-class-name{color:var(--text-primary);font-size:15px;font-weight:600;font-family:var(--font-body)}.oi-snapshot-class-time{color:var(--text-secondary);font-size:13px;font-family:var(--font-body)}.oi-tspa-summary{gap:var(--space-2-5,10px);padding:var(--space-1) 0;grid-template-columns:repeat(3,1fr);display:grid}.oi-tspa-stat{align-items:center;gap:var(--space-0-5,2px);padding:var(--space-2);border-radius:var(--radius-md);background:var(--bg-subtle);flex-direction:column;display:flex}.oi-tspa-num{color:var(--text-primary);font-size:24px;font-weight:700;font-family:var(--font-body);font-variant-numeric:tabular-nums;line-height:1.2}.oi-tspa-label{color:var(--text-tertiary);text-align:center;font-size:11px;font-weight:500}.oi-tspa-link{justify-content:center;align-items:center;gap:var(--space-1-5,6px);padding:var(--space-2);border-radius:var(--radius-md);color:#5b8daf;cursor:pointer;transition:all .15s var(--ease-out);font-size:13px;font-weight:600;font-family:var(--font-body);background:#5b8daf1f;grid-column:1/-1;text-decoration:none;display:flex}.oi-tspa-link:hover{background:#5b8daf38;text-decoration:underline}.oi-phorest-summary{gap:var(--space-2);padding:var(--space-1) 0;flex-direction:column;display:flex}.oi-phorest-row{align-items:center;gap:var(--space-2);color:var(--text-secondary);font-size:13px;font-family:var(--font-body);display:flex}.oi-phorest-row svg{width:16px;height:16px;color:var(--text-tertiary);flex-shrink:0}.oi-phorest-hint{color:var(--text-tertiary);padding:var(--space-2);border-radius:var(--radius-sm);background:var(--bg-subtle);border:1px dashed var(--border-light);font-size:11px;line-height:1.5}.oi-health-grid{flex-direction:column;gap:0;display:flex}.oi-health-item{align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border-light);transition:background .15s var(--ease-out);display:flex}.oi-health-item:last-child{border-bottom:none}.oi-health-item:hover{background:color-mix(in srgb, var(--accent) 3%, transparent);margin:0 calc(-1 * var(--space-1));padding-left:var(--space-1);padding-right:var(--space-1);border-radius:var(--radius-sm)}.oi-health-item-icon{color:var(--text-tertiary);flex-shrink:0;width:18px;height:18px}.oi-health-item-body{gap:var(--space-0-5,2px);flex-direction:column;flex:1;min-width:0;display:flex}.oi-health-item-label{color:var(--text-primary);font-size:13px;font-weight:500;font-family:var(--font-body)}.oi-health-item-detail{color:var(--text-tertiary);font-size:11px;font-family:var(--font-body)}.oi-health-item .spin,.oi-focus-card .spin{animation:1.5s linear infinite oi-spin}.oi-projects-grid{gap:var(--space-2);flex-direction:column;display:flex}.oi-project-card{gap:var(--space-2-5,10px);padding:var(--space-3-5,14px);border-radius:var(--radius-lg);background:var(--bg-card);border:1px solid var(--border);cursor:pointer;transition:all .2s var(--ease-out);flex-direction:column;display:flex}.oi-project-card:hover{border-color:var(--project-accent,var(--accent));box-shadow:var(--shadow-2);transform:translateY(-1px)}.oi-project-header{align-items:center;gap:var(--space-3);display:flex}.oi-project-icon{border-radius:var(--radius-md);background:color-mix(in srgb, var(--project-accent,var(--accent)) 15%, transparent);width:36px;height:36px;color:var(--project-accent,var(--accent));flex-shrink:0;justify-content:center;align-items:center;display:flex}.oi-project-icon svg{width:18px;height:18px}.oi-project-meta{gap:var(--space-0-5,2px);flex-direction:column;flex:1;min-width:0;display:flex}.oi-project-name{color:var(--text-primary);font-size:14px;font-weight:600;font-family:var(--font-body)}.oi-project-desc{color:var(--text-tertiary);font-size:12px;font-family:var(--font-body)}.oi-project-arrow{color:var(--text-tertiary);width:16px;height:16px;transition:transform .15s var(--ease-out);flex-shrink:0}.oi-project-card:hover .oi-project-arrow{transform:translate(2px)}.oi-project-footer{gap:var(--space-2);flex-direction:column;display:flex}.oi-project-progress{width:100%}.oi-project-stats{justify-content:space-between;align-items:center;display:flex}.oi-project-version{color:var(--text-tertiary);font-size:11px;font-family:var(--font-mono)}.oi-two-col{gap:var(--space-4);margin-bottom:var(--space-5);grid-template-columns:1fr 1fr;display:grid}@media (width<=768px){.oi-two-col{grid-template-columns:1fr}}.oi-risk-card{padding:var(--space-4);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--warning) 6%, var(--bg-card));border:1px solid color-mix(in srgb, var(--warning) 25%, var(--border))}.oi-risk-student{align-items:center;gap:var(--space-2-5,10px);padding:var(--space-2) 0;border-bottom:1px solid color-mix(in srgb, var(--warning) 12%, var(--border-light));color:var(--text-primary);font-size:13px;display:flex}.oi-risk-student:last-child{border-bottom:none}.oi-risk-student .risk-name{flex:1;font-weight:500}.oi-risk-student .risk-dot{background:var(--warning);border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:2s ease-in-out infinite oi-pulse}@keyframes oi-pulse{0%,to{opacity:1}50%{opacity:.4}}.oi-risk-student .risk-hours{color:var(--text-tertiary);font-size:12px;font-family:var(--font-mono)}.oi-appt-today{flex-direction:column;gap:0;display:flex}.oi-appt-row{align-items:center;gap:var(--space-3);padding:var(--space-2-5,10px) var(--space-3);border-bottom:1px solid var(--border-light);border-radius:var(--radius-sm);transition:background .15s var(--ease-out);display:flex}.oi-appt-row:last-child{border-bottom:none}.oi-appt-row:hover{background:var(--bg-subtle)}.oi-appt-time{color:var(--text-secondary);font-size:12px;font-weight:600;font-family:var(--font-mono);font-variant-numeric:tabular-nums;flex-shrink:0;min-width:56px}.oi-appt-student{color:var(--text-primary);flex:1;min-width:0;font-size:13px;font-weight:500}.oi-appt-badge{text-transform:uppercase;letter-spacing:.3px;padding:2px var(--space-1-5,6px);border-radius:var(--radius-full);background:var(--bg-subtle);color:var(--text-tertiary);font-size:10px;font-weight:600}.oi-appt-badge.in-progress{background:color-mix(in srgb, var(--success) 15%, transparent);color:var(--success)}.oi-appt-badge.upcoming{background:color-mix(in srgb, var(--info) 15%, transparent);color:var(--info)}.oi-appt-badge.done{background:var(--bg-subtle);color:var(--text-tertiary)}.oi-stat-grid{gap:var(--space-3);grid-template-columns:repeat(4,1fr);display:grid}@media (width<=768px){.oi-stat-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.oi-stat-grid{grid-template-columns:1fr}}.oi-stat-card{gap:var(--space-1);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--bg-card);border:1px solid var(--border);cursor:pointer;transition:all .2s var(--ease-out);flex-direction:column;display:flex}.oi-stat-card:hover{box-shadow:var(--shadow-3);border-color:color-mix(in srgb, var(--accent) 30%, var(--border));transform:translateY(-2px)}.oi-stat-value{color:var(--text-primary);font-size:28px;font-weight:700;font-family:var(--font-body);font-variant-numeric:tabular-nums;line-height:1.2}.oi-stat-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600;font-family:var(--font-body)}.oi-stat-trend{align-items:center;gap:var(--space-1);margin-top:var(--space-0-5,2px);font-size:12px;font-weight:600;display:flex}.oi-stat-trend.up{color:var(--success)}.oi-stat-trend.down{color:var(--error)}.oi-stat-trend svg{width:12px;height:12px}.oi-teaching-section{margin-bottom:var(--space-5)}.oi-teaching-section-title{color:var(--text-primary);margin-bottom:var(--space-3);padding-bottom:var(--space-1-5,6px);border-bottom:1px solid var(--border);font-size:14px;font-weight:600}.oi-class-card{gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--bg-card);border:1px solid var(--border);border-left:3px solid var(--text-tertiary);margin-bottom:var(--space-3);transition:all .15s var(--ease-out);flex-direction:column;display:flex}.oi-class-card:hover{box-shadow:var(--shadow-2)}.oi-class-card.active{border-left-color:var(--success);background:color-mix(in srgb, var(--success) 4%, var(--bg-card))}.oi-class-card.upcoming{border-left-color:var(--info);background:color-mix(in srgb, var(--info) 4%, var(--bg-card))}.oi-class-card.done{border-left-color:var(--text-tertiary);opacity:.7}.oi-class-name{color:var(--text-primary);font-size:15px;font-weight:600;font-family:var(--font-body)}.oi-class-time{color:var(--text-secondary);font-size:12px;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.oi-class-students{color:var(--text-tertiary);font-size:12px}.oi-demo-badge{align-items:center;gap:var(--space-1);letter-spacing:.5px;text-transform:uppercase;padding:1px var(--space-1-5,6px);border-radius:var(--radius-sm);color:#fff;cursor:help;vertical-align:middle;background:linear-gradient(135deg,#b8860b,#daa520);font-size:9px;font-weight:700;line-height:1.5;display:inline-flex}.oi-demo-banner{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4);color:#fff;font-size:13px;font-weight:600;font-family:var(--font-body);background:linear-gradient(135deg,#b8860b 0%,#daa520 100%);line-height:1.5;display:flex}.oi-demo-banner svg{flex-shrink:0;width:16px;height:16px}.oi-spin{animation:1s linear infinite oi-spin;display:inline-block}@media (width<=600px){.oi-focus-card{padding:var(--space-4)}.oi-focus-hello{font-size:20px}.oi-focus-priority{padding:var(--space-3);gap:var(--space-2-5,10px)}.oi-focus-priority-value{font-size:14px}.oi-tspa-summary{gap:var(--space-1-5,6px);grid-template-columns:repeat(3,1fr)}.oi-tspa-num{font-size:20px}.oi-stat-value{font-size:22px}}.oi-stat-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:20px;display:grid}.oi-stat-card{cursor:pointer;transition:all .15s var(--ease-out)}.oi-stat-card:hover{box-shadow:var(--shadow-3);transform:translateY(-3px)}.oi-stat-value{color:var(--text-primary);font-size:28px;font-weight:700;line-height:1.1}.oi-stat-label{color:var(--text-secondary);font-size:13px}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:48px 24px;display:flex}.empty-state-sm{color:var(--text-tertiary);align-items:center;gap:10px;padding:24px 0;display:flex}.empty-state-icon{color:var(--text-tertiary);opacity:.5}.oi-health-card{min-width:0}.obs-page{width:100%;max-width:1280px;animation:fadeSlideIn .4s var(--spring);padding:32px clamp(16px,4vw,48px)}.obs-loading{color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:120px 24px;display:flex}.obs-error{color:var(--text-secondary);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:80px 24px;display:flex}.obs-error h3{color:var(--error);font:600 18px/1.3 var(--font-body);margin:0}.obs-retry-btn{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);font:500 13px/1.3 var(--font-body);cursor:pointer;transition:all .15s var(--ease-out);align-items:center;gap:6px;margin-top:8px;padding:8px 20px;display:inline-flex}.obs-retry-btn:hover{background:var(--bg-subtle);border-color:var(--accent);color:var(--accent)}.obs-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:28px;display:flex}.obs-header-left{align-items:flex-start;gap:12px;display:flex}.obs-title{font:600 26px/1.2 var(--font-body);color:var(--text-primary);letter-spacing:-.02em;margin:0}.obs-subtitle{font:400 14px/1.5 var(--font-body);color:var(--text-tertiary);margin:4px 0 0}.obs-header-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.obs-last-refresh{font:400 11px/1.4 var(--font-body);color:var(--text-tertiary);white-space:nowrap}.obs-autorefresh-btn,.obs-refresh-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font:500 11px/1.3 var(--font-body);cursor:pointer;transition:all .15s var(--ease-out);white-space:nowrap;align-items:center;gap:5px;padding:6px 12px;display:inline-flex}.obs-autorefresh-btn:hover,.obs-refresh-btn:hover{background:var(--bg-subtle);border-color:var(--accent-muted);color:var(--text-primary)}.obs-autorefresh-btn.active{background:color-mix(in srgb, var(--accent) 12%, transparent);border-color:color-mix(in srgb, var(--accent) 30%, transparent);color:var(--accent)}.obs-spin{animation:2s linear infinite obs-rotate}@keyframes obs-rotate{to{transform:rotate(360deg)}}.obs-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);transition:box-shadow .25s var(--ease-out);margin-bottom:32px;overflow:hidden}.obs-panel:hover{box-shadow:var(--shadow-2)}.obs-panel-header{border-bottom:1px solid var(--border-light);color:var(--text-primary);align-items:center;gap:10px;padding:16px 20px;font-size:14px;font-weight:600;display:flex}.obs-panel-header h3{font:600 14px/1.3 var(--font-body);letter-spacing:-.01em;flex:1;margin:0}.obs-system-grid{background:var(--border-light);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1px;display:grid}.obs-system-section{background:var(--bg-card);padding:16px 20px}.obs-section-title{font:500 11px/1.3 var(--font-body);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:6px;margin-bottom:12px;display:flex}.obs-section-stats{grid-template-columns:1fr 1fr;gap:8px;display:grid}.obs-stat{flex-direction:column;gap:2px;display:flex}.obs-stat-label{font:400 10px/1.3 var(--font-body);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:4px;display:flex}.obs-stat-value{font:600 14px/1.3 var(--font-body);color:var(--text-primary);letter-spacing:-.01em}.obs-category{margin-bottom:28px}.obs-category-header{align-items:center;gap:10px;margin-bottom:16px;display:flex}.obs-category-line{border-radius:2px;flex-shrink:0;width:3px;height:18px}.obs-category-name{font:600 15px/1.3 var(--font-body);letter-spacing:-.01em;text-transform:capitalize}.obs-category-count{font:400 11px/1.3 var(--font-body);color:var(--text-tertiary);margin-left:auto}.obs-cards-grid{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px;display:grid}@media (width<=640px){.obs-cards-grid{grid-template-columns:1fr}}.obs-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;box-shadow:var(--shadow-1), 0 0 0 1px transparent;transition:all .25s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.obs-card:before{content:"";border-radius:inherit;background:radial-gradient(ellipse 140% 80% at 50% 110%, color-mix(in srgb, var(--obs-category,var(--accent)) 6%, transparent) 0%, transparent 70%);pointer-events:none;opacity:0;transition:opacity .25s;position:absolute;inset:0}.obs-card:hover{box-shadow:var(--shadow-3), 0 0 0 1px color-mix(in srgb, var(--obs-category,var(--accent)) 20%, transparent), 0 0 40px color-mix(in srgb, var(--obs-category,var(--accent)) 4%, transparent);border-color:color-mix(in srgb, var(--obs-category,var(--accent)) 25%, var(--border));transform:translateY(-2px)}.obs-card:hover:before{opacity:1}.obs-card-expanded{border-color:color-mix(in srgb, var(--obs-category,var(--accent)) 30%, var(--border));box-shadow:var(--shadow-2), 0 0 0 1px color-mix(in srgb, var(--obs-category,var(--accent)) 20%, transparent)}.obs-card-header{cursor:pointer;z-index:1;padding:16px 18px;position:relative}.obs-card-top{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.obs-card-title-row{flex:1;align-items:flex-start;gap:10px;min-width:0;display:flex}.obs-card-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.obs-card-info{flex:1;min-width:0}.obs-card-name{font:600 14px/1.3 var(--font-body);color:var(--text-primary);letter-spacing:-.01em;margin-bottom:2px}.obs-card-desc{font:400 11px/1.4 var(--font-body);color:var(--text-tertiary);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.obs-card-metrics{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.obs-metric{background:var(--bg-subtle);border-radius:var(--radius-sm);flex-direction:column;gap:1px;padding:6px 8px;display:flex}.obs-metric-label{font:400 9px/1.3 var(--font-body);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.obs-metric-value{font:600 13px/1.3 var(--font-body);color:var(--text-primary);letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.obs-card-expand-bar{border-top:1px solid var(--border-light);font:500 11px/1.3 var(--font-body);color:var(--text-tertiary);cursor:pointer;transition:all .15s var(--ease-out);z-index:1;justify-content:center;align-items:center;gap:6px;padding:8px;display:flex;position:relative}.obs-card-expand-bar:hover{color:var(--text-secondary);background:var(--bg-subtle)}.obs-card-details{border-top:1px solid var(--border-light);animation:obs-details-in .2s var(--ease-out);z-index:1;padding:0 18px 18px;position:relative}@keyframes obs-details-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.obs-details-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;padding:16px 0 12px;display:grid}.obs-details-meta{font:400 11px/1.3 var(--font-body);color:var(--text-tertiary);align-items:center;gap:6px;margin-bottom:12px;display:flex}.obs-details-sep{color:var(--border)}.obs-details-controls{border-top:1px solid var(--border-light);flex-wrap:wrap;gap:6px;padding-top:12px;display:flex}.obs-ctrl-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font:500 10px/1.3 var(--font-body);cursor:pointer;transition:all .15s var(--ease-out);align-items:center;gap:4px;padding:5px 10px;display:inline-flex}.obs-ctrl-btn:hover{background:var(--bg-subtle);border-color:var(--accent-muted);color:var(--accent)}.obs-footer{border-top:1px solid var(--border-light);justify-content:space-between;align-items:center;margin-top:8px;padding:20px 0 8px;display:flex}.obs-footer-text{font:400 11px/1.4 var(--font-body);color:var(--text-tertiary)}.obs-footer-vsn{font:400 11px/1.4 var(--font-body);color:var(--text-tertiary);font-family:var(--font-mono)}.obs-events-count{font:400 11px/1.3 var(--font-body);color:var(--text-tertiary);margin-left:auto}.obs-events-list{overscroll-behavior:contain;max-height:420px;overflow-y:auto}.obs-events-list::-webkit-scrollbar{width:4px}.obs-events-list::-webkit-scrollbar-track{background:0 0}.obs-events-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.obs-event-row{border-bottom:1px solid var(--border-light);transition:background .15s var(--ease-out);align-items:flex-start;gap:12px;padding:10px 20px;display:flex}.obs-event-row:last-child{border-bottom:none}.obs-event-row:hover{background:var(--bg-subtle)}.obs-event-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:5px}.obs-event-body{flex:1;min-width:0}.obs-event-summary{font:500 13px/1.4 var(--font-body);color:var(--text-primary);letter-spacing:-.01em;margin-bottom:2px}.obs-event-meta{font:400 10px/1.3 var(--font-body);flex-wrap:wrap;align-items:center;gap:4px;display:flex}.obs-event-type{letter-spacing:.02em;font-weight:600}.obs-event-source{color:var(--text-tertiary);text-transform:capitalize}.obs-event-sep{color:var(--border);font-size:8px}.obs-event-time{color:var(--text-tertiary)}.obs-event-actor{color:var(--text-tertiary);font-family:var(--font-mono)}.ns-page{max-width:1180px}.ns-toolbar{justify-content:space-between;align-items:center;gap:12px;margin:-8px 0 20px;display:flex}.ns-refresh-label,.ns-muted{color:var(--text-secondary);font-size:13px}.ns-refresh-button,.ns-link-button,.ns-primary-action{border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;font:inherit;border-radius:8px;align-items:center;gap:7px;padding:8px 12px;display:inline-flex}.ns-refresh-button:disabled{opacity:.6;cursor:wait}.ns-priority-card{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 14%, transparent), var(--bg-secondary));border-radius:16px;align-items:center;gap:16px;margin-bottom:18px;padding:22px;display:flex}.ns-priority-icon{width:48px;height:48px;color:var(--accent);background:color-mix(in srgb, var(--accent) 16%, transparent);border-radius:14px;flex:none;place-items:center;display:grid}.ns-priority-copy{flex:1;min-width:0}.ns-eyebrow{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;font-size:11px;display:block}.ns-priority-copy h2{margin:5px 0 4px;font-size:20px}.ns-priority-copy p{color:var(--text-secondary);margin:0;font-size:13px}.ns-primary-action{background:var(--accent);color:#fff;white-space:nowrap;border-color:#0000}.ns-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.ns-card{min-width:0}.ns-status-summary,.ns-sync-row{align-items:center;gap:8px;display:flex}.ns-status-dot{background:var(--text-tertiary);border-radius:50%;width:9px;height:9px}.ns-status-healthy{background:#2ecc71}.ns-status-degraded{background:#f39c12}.ns-status-critical,.ns-status-error{background:#e74c3c}.ns-task-list,.ns-source-list{gap:8px;display:grid}.ns-task-row{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:8px 0;display:flex}.ns-task-row span{flex:1}.ns-link-button{color:var(--accent);background:0 0;border:0;margin-top:14px;padding-left:0;font-size:12px}.ns-source-row{align-items:center;gap:8px;font-size:13px;display:flex}.ns-source-row svg{color:#2ecc71}.ns-source-status{color:var(--text-secondary);margin-left:auto;font-size:12px}.ns-hermes-note{margin-top:14px;font-size:12px}.ns-error{color:var(--error);background:color-mix(in srgb, var(--error) 10%, transparent);border-radius:8px;align-items:center;gap:8px;margin-bottom:16px;padding:10px 12px;display:flex}.ns-loading{min-height:300px;color:var(--text-secondary);justify-content:center;align-items:center;gap:10px;display:flex}.spin{animation:1s linear infinite ns-spin}@keyframes ns-spin{to{transform:rotate(360deg)}}@media (width<=700px){.ns-priority-card{flex-wrap:wrap;align-items:flex-start}.ns-primary-action{margin-left:64px}.ns-grid{grid-template-columns:1fr}}:root{--fh-accent:#66bb6a;--fh-accent-muted:#66bb6a1f}.fh-tab-bar{-webkit-overflow-scrolling:touch;border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:2px;height:44px;padding:0 24px;display:flex;overflow-x:auto}.fh-tab{border-radius:var(--radius-md) var(--radius-md) 0 0;color:var(--text-tertiary);font:500 12px/1 var(--font-body);cursor:pointer;white-space:nowrap;transition:all .12s var(--ease-out);background:0 0;border:none;align-items:center;gap:6px;padding:8px 14px;display:flex;position:relative}.fh-tab:hover{color:var(--text-primary);background:var(--bg-subtle)}.fh-tab.active{color:var(--fh-accent,#66bb6a);background:color-mix(in srgb, var(--fh-accent,#66bb6a) 10%, transparent)}.fh-tab.active:after{content:"";background:var(--fh-accent,#66bb6a);border-radius:1px 1px 0 0;height:2px;position:absolute;bottom:0;left:8px;right:8px}.fh-tab svg{flex-shrink:0}.fh-content{flex:1;padding:24px;overflow-y:auto}.fh-content-wide{width:100%;max-width:1200px;margin:0 auto}.fh-dash-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.fh-dash-card{cursor:pointer;transition:transform .12s var(--ease-out), box-shadow .12s var(--ease-out)}.fh-dash-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000000f}.fh-dash-card-header{align-items:center;gap:10px;margin-bottom:10px;display:flex}.fh-dash-card-icon{border-radius:var(--radius-full);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.fh-dash-card-title{font:600 14px/1.3 var(--font-body);color:var(--text-primary)}.fh-dash-card-body{font:400 12px/1.5 var(--font-body);color:var(--text-secondary)}.fh-dash-card-stat{font:600 24px/1.2 var(--font-body);color:var(--text-primary);margin-bottom:2px}.fh-dash-card-label{font:400 11px/1.3 var(--font-body);color:var(--text-tertiary)}.fh-btn{border-radius:var(--radius-md);font:500 12px/1 var(--font-body);cursor:pointer;transition:all .12s var(--ease-out);border:none;align-items:center;gap:6px;padding:8px 16px;display:inline-flex}.fh-btn-primary{background:var(--fh-accent);color:#fff}.fh-btn-primary:hover{opacity:.9;transform:translateY(-1px)}.fh-btn-secondary{background:var(--bg-subtle);color:var(--text-secondary);border:1px solid var(--border)}.fh-btn-secondary:hover{background:var(--bg-card);border-color:var(--text-tertiary)}.fh-btn-danger{color:#d98989;background:#d9898926}.fh-btn-danger:hover{background:#d9898940}.fh-btn-sm{padding:5px 10px;font-size:11px}.fh-input{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-input);width:100%;color:var(--text-primary);font:400 13px/1.4 var(--font-body);transition:border-color .15s var(--ease-out);box-sizing:border-box;outline:none;padding:8px 10px}.fh-input:focus{border-color:var(--fh-accent);box-shadow:0 0 0 3px var(--fh-accent-muted)}.fh-select{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);font:400 13px/1.4 var(--font-body);outline:none;padding:7px 10px}.fh-select:focus{border-color:var(--fh-accent)}.fh-checkbox{cursor:pointer;align-items:center;gap:8px;padding:4px 0;display:flex}.fh-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--fh-accent);cursor:pointer;flex-shrink:0}.fh-checkbox-label{font:400 13px/1.4 var(--font-body);color:var(--text-primary);flex:1}.fh-checkbox-label.checked{color:var(--text-tertiary);text-decoration:line-through}.fh-empty{color:var(--text-tertiary);flex-direction:column;align-items:center;gap:8px;padding:40px 0;display:flex}.fh-empty-icon{opacity:.3}.fh-empty-text{font:400 13px/1.4 var(--font-body);text-align:center}.fh-empty-action{margin-top:8px}.fh-list-item{border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border-light);transition:all .12s var(--ease-out);align-items:center;gap:10px;padding:8px 12px;display:flex}.fh-list-item:hover{border-color:var(--border)}.fh-list-item-text{flex:1;min-width:0}.fh-list-item-title{font:500 13px/1.4 var(--font-body);color:var(--text-primary)}.fh-list-item-title.done{color:var(--text-tertiary);text-decoration:line-through}.fh-list-item-meta{font:400 11px/1.3 var(--font-body);color:var(--text-tertiary);gap:8px;margin-top:2px;display:flex}.fh-list-item-actions{flex-shrink:0;gap:4px;display:flex}.fh-list-item-action{color:var(--text-tertiary);cursor:pointer;transition:all .1s var(--ease-out);background:0 0;border:none;border-radius:4px;padding:4px}.fh-list-item-action:hover{background:var(--bg-subtle);color:var(--text-primary)}.fh-list-item-action.danger:hover{color:#d98989;background:#d989891f}.fh-modal-overlay{z-index:100;background:#00000059;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.fh-modal{background:var(--bg-card);border-radius:var(--radius-lg);width:100%;max-width:480px;padding:24px;box-shadow:0 20px 40px #00000026}.fh-modal-title{font:600 16px/1.3 var(--font-body);color:var(--text-primary);margin-bottom:16px}.fh-modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.fh-form-group{margin-bottom:12px}.fh-form-label{font:500 11px/1.3 var(--font-body);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;display:block}.fh-cal-grid{background:var(--border-light);border-radius:var(--radius-md);grid-template-columns:repeat(7,1fr);gap:1px;display:grid;overflow:hidden}.fh-cal-header{background:var(--bg-subtle);text-align:center;font:500 11px/1.3 var(--font-body);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.03em;padding:6px}.fh-cal-day{background:var(--bg-card);cursor:pointer;min-height:60px;transition:background .1s var(--ease-out);padding:4px}.fh-cal-day:hover{background:var(--bg-subtle)}.fh-cal-day-num{font:500 12px/1.4 var(--font-body);color:var(--text-primary);margin-bottom:2px}.fh-cal-day.other-month .fh-cal-day-num{color:var(--text-tertiary);opacity:.5}.fh-cal-day.today{background:var(--fh-accent-muted)}.fh-cal-event{font:400 10px/1.3 var(--font-body);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;background:var(--bg-subtle);border-radius:2px;margin-bottom:1px;padding:1px 2px;overflow:hidden}.fh-page-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.fh-page-title{font:600 22px/1.3 var(--font-body);color:var(--text-primary)}.fh-page-subtitle{font:400 13px/1.4 var(--font-body);color:var(--text-tertiary);margin-top:2px}.fh-page-actions{gap:8px;display:flex}
