:root{color-scheme:light;--brand:#0a2f4a;--brand-600:#0d3d5c;--brand-500:#155a7a;--brand-400:#2a8fbf;--brand-soft:#e8f1f6;--brand-ink:#f4f7fa;--bg:#f3f5f8;--bg-elevated:#eef2f6;--surface:#ffffff;--surface-2:#f8fafc;--ink:#0f1b2d;--ink-2:#243447;--muted:#5c6b7c;--muted-2:#8090a1;--line:#d9e1ea;--line-strong:#c3cedb;--success:#0f7a4a;--success-bg:#e8f6ef;--warning:#9a6b00;--warning-bg:#fff6e0;--danger:#b42318;--danger-bg:#fdeceb;--info:#175cd3;--info-bg:#eaf2ff;--radius-sm:6px;--radius:10px;--radius-lg:14px;--radius-xl:18px;--shadow-xs:0 1px 2px rgba(15,27,45,0.04);--shadow-sm:0 1px 3px rgba(15,27,45,0.06),0 1px 2px rgba(15,27,45,0.04);--shadow-md:0 8px 24px rgba(15,27,45,0.08);--shadow-lg:0 16px 40px rgba(15,27,45,0.12);--focus:0 0 0 3px rgba(42,143,191,0.35);--sidebar-w:260px;--topbar-h:60px;--content-max:1180px;--font:"Segoe UI","Helvetica Neue",system-ui,-apple-system,sans-serif;--mono:ui-monospace,"Cascadia Code","SF Mono",Consolas,monospace}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%}body{font-family:var(--font);font-size:15px;line-height:1.5;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--brand-500);text-decoration:none}a:hover{color:var(--brand);text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:none;box-shadow:var(--focus)}.small{font-size:.82rem}.mono{font-family:var(--mono);font-size:.86em}.app-bare{min-height:100vh}.app-shell{grid-template-columns:var(--sidebar-w) 1fr}.sidebar{background:linear-gradient(180deg,#0a2f4a,#0c3552 55%,#0a2b43);color:var(--brand-ink);z-index:40}.sidebar-brand{padding:1.1rem 1.1rem .85rem;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-brand-link:hover{text-decoration:none;color:inherit}.brand-lockup{display:flex;align-items:center;gap:.75rem;min-width:0}.brand-mark-wrap{display:grid;place-items:center;flex-shrink:0;color:#0a2f4a;background:#f4f7fa;border-radius:12px;width:40px;height:40px}.brand-lockup--compact .brand-mark-wrap{width:34px;height:34px;border-radius:10px}.brand-mark-wrap .brand-mark-bg{fill:#0a2f4a}.brand-mark-wrap svg{color:#0a2f4a}.brand-lockup-text{display:grid;grid-gap:.1rem;gap:.1rem;min-width:0}.brand-product{font-size:.92rem;font-weight:650;letter-spacing:-.01em;color:#f4f7fa}.brand-company,.brand-product{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-company{font-size:.7rem;color:rgba(244,247,250,.62);letter-spacing:.02em}.sidebar-nav{padding:.85rem .75rem 1rem;scrollbar-width:thin}.nav-section{margin-bottom:1rem}.nav-section ul{list-style:none;margin:0;padding:0;display:grid;grid-gap:.2rem;gap:.2rem}.nav-section-label{margin:0 0 .35rem .55rem;font-size:.68rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:rgba(244,247,250,.45)}.nav-link{padding:.55rem .7rem;border-radius:8px;font-size:.92rem;transition:background .15s ease,color .15s ease}.nav-link:hover{background:rgba(255,255,255,.08);text-decoration:none}.nav-link.is-active{background:rgba(42,143,191,.28);color:#fff;box-shadow:inset 0 0 0 1px rgba(91,180,224,.35)}.nav-badge{background:var(--brand-400);color:#fff;font-size:.7rem;font-weight:700;display:inline-grid;place-items:center}.sidebar-foot{padding:.9rem 1.1rem 1.15rem;border-top:1px solid rgba(255,255,255,.08)}.sidebar-foot-product{margin:0;font-size:.78rem;font-weight:600;color:rgba(244,247,250,.85)}.sidebar-foot-company{margin:.15rem 0 0;font-size:.68rem;color:rgba(244,247,250,.45)}.topbar{z-index:30;height:var(--topbar-h);padding:0 1.25rem}.topbar-left,.topbar-right{display:flex;align-items:center;gap:.65rem}.topbar-brand-mobile{display:none;align-items:center;gap:.5rem}.topbar-product{font-weight:700;color:var(--brand);letter-spacing:.04em}.icon-btn{width:2.35rem;height:2.35rem;background:var(--surface);display:grid;place-items:center;color:var(--ink-2)}.icon-btn:hover{background:var(--bg-elevated);text-decoration:none;color:var(--ink)}.dot-badge{position:absolute;top:-4px;right:-4px;min-width:1.1rem;height:1.1rem;padding:0 .25rem;border-radius:999px;background:var(--danger);color:#fff;font-size:.65rem;font-weight:700;display:grid;place-items:center;border:2px solid #fff}.user-menu-trigger{background:var(--surface);padding:.2rem .65rem .2rem .2rem}.user-menu-trigger:hover{background:var(--bg-elevated)}.avatar{width:2rem;height:2rem;border-radius:999px;background:linear-gradient(145deg,var(--brand-500),var(--brand));color:#fff;display:grid;place-items:center;font-weight:700;font-size:.85rem}.user-menu-meta{line-height:1.2;padding-right:.25rem}.user-name{font-size:.85rem;font-weight:600}.user-role{display:block;font-size:.72rem;color:var(--muted);text-transform:capitalize}.user-menu-panel{top:calc(100% + .45rem);width:240px;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-md);overflow:hidden;z-index:50}.user-menu-head{padding:.9rem 1rem;border-bottom:1px solid var(--line);background:var(--surface-2)}.user-menu-item{padding:.75rem 1rem;color:var(--ink-2)}.user-menu-item:hover{background:var(--brand-soft);color:var(--brand)}.content{flex:1 1;width:100%;max-width:var(--content-max);margin:0 auto;padding:1.35rem 1.35rem 2.5rem}.app-footer{display:flex;flex-wrap:wrap;gap:.35rem .55rem;justify-content:center;padding:.85rem 1rem 1.25rem;color:var(--muted-2);font-size:.75rem;border-top:1px solid transparent}.app-footer-sep{opacity:.5}.mobile-nav-toggle,.nav-backdrop{display:none}.page{grid-gap:1.15rem;gap:1.15rem}.page-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem}.page-header-copy{min-width:0;flex:1 1}.page-eyebrow{font-weight:650;color:var(--brand-500)}.page-title{font-size:1.55rem}.page-desc{margin:.35rem 0 0;color:var(--muted);max-width:52ch;font-size:.95rem}.toolbar{flex-wrap:wrap;gap:.65rem}.search-field,.toolbar{display:flex;align-items:center}.search-field{gap:.4rem;min-width:min(100%,280px);flex:1 1;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.35rem .7rem;box-shadow:var(--shadow-xs)}.search-field:focus-within{box-shadow:var(--focus);border-color:var(--brand-400)}.search-icon{color:var(--muted-2);font-size:1rem}.search-field input{border:0;outline:none;background:transparent;width:100%;padding:.35rem 0;box-shadow:none!important}.grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.grid-2{grid-gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2,.grid-main{display:grid;gap:1rem}.grid-main{grid-gap:1rem;grid-template-columns:1.4fr 1fr}.card,.metric-card,.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.panel{padding:1.05rem 1.15rem 1.15rem}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.85rem}.panel-title{font-weight:650;color:var(--ink)}.metric-card--link{transition:border-color .15s ease,transform .15s ease}.metric-card--link:hover{border-color:var(--brand-400);text-decoration:none}.metric-card--warn{border-color:#f0d9a0;background:linear-gradient(180deg,#fffdf8,#fff)}.metric-card--brand{border-color:#b9d7e8;background:linear-gradient(180deg,#f4fafd,#fff)}.metric-label{font-size:.78rem;font-weight:600}.metric-value{font-size:1.7rem;font-weight:720;line-height:1.1}.metric-hint{margin:.15rem 0 0;color:var(--muted-2)}.table-wrap{width:100%;border-radius:var(--radius);background:var(--surface)}.data-table,.table{width:100%;border-collapse:collapse;font-size:.9rem}.data-table th,.table th{text-align:left;font-size:.72rem;font-weight:650;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);background:var(--surface-2);padding:.7rem .9rem;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td,.table td{padding:.78rem .9rem;border-bottom:1px solid var(--line);vertical-align:middle;color:var(--ink-2)}.data-table tr:last-child td,.table tr:last-child td{border-bottom:0}.data-table tbody tr:hover td,.table tbody tr:hover td{background:#f7fafc}.badge{gap:.25rem;font-weight:650}.badge--neutral{background:#eef2f6;color:#405264}.badge--success{background:var(--success-bg);color:var(--success)}.badge--warning{background:var(--warning-bg);color:var(--warning)}.badge--danger{background:var(--danger-bg);color:var(--danger)}.badge--info{background:var(--info-bg);color:var(--info)}.badge--brand{background:var(--brand-soft);color:var(--brand)}.btn,a.btn,button.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border-radius:9px;border:1px solid transparent;padding:.55rem .95rem;font-weight:600;font-size:.9rem;cursor:pointer;text-decoration:none;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease;white-space:nowrap}.btn:hover{text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary,button[type=submit]:not(.btn-ghost):not(.btn-secondary):not(.btn-danger){background:var(--brand);color:#fff;border-color:var(--brand)}.btn-primary:hover:not(:disabled),button[type=submit]:not(.btn-ghost):not(.btn-secondary):not(.btn-danger):hover:not(:disabled){background:var(--brand-600);color:#fff}.btn-secondary,.btn-secondary:visited{background:var(--surface);color:var(--ink-2);border-color:var(--line-strong)}.btn-secondary:hover{background:var(--bg-elevated);color:var(--ink)}.btn-ghost{background:transparent;color:var(--brand-500);border-color:transparent}.btn-ghost:hover{background:var(--brand-soft);color:var(--brand)}.btn-danger{background:var(--danger-bg);color:var(--danger);border-color:#f3c4c0}.btn-danger:hover{background:#fadad7}.btn-sm{padding:.35rem .7rem;font-size:.82rem;border-radius:8px}.btn-block{width:100%}label{display:grid;grid-gap:.35rem;gap:.35rem;font-size:.88rem;font-weight:550;color:var(--ink-2)}input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;border:1px solid var(--line-strong);border-radius:9px;padding:.6rem .75rem;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-xs)}input:focus,select:focus,textarea:focus{border-color:var(--brand-400)}.form-grid,.form-row{display:grid;grid-gap:.85rem;gap:.85rem}.form-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.field-hint{font-weight:400}.password-field{position:relative}.password-field input{padding-right:2.75rem}.password-toggle{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--muted);padding:.35rem .5rem;border-radius:6px;font-size:.78rem}.password-toggle:hover{color:var(--brand);background:var(--brand-soft)}.alert{display:grid;grid-gap:.15rem;gap:.15rem;padding:.8rem .95rem;border-radius:var(--radius);border:1px solid var(--line);font-size:.9rem}.alert--error{background:var(--danger-bg);border-color:#f0c2bd;color:var(--danger)}.alert--success{background:var(--success-bg);border-color:#b7e0c9;color:var(--success)}.alert--info{background:var(--info-bg);border-color:#c5d8fb;color:var(--info)}.error{color:var(--danger);margin:0;font-size:.9rem}.empty-state{border:1px dashed var(--line-strong);border-radius:var(--radius-lg);background:var(--surface-2)}.empty-state-icon{font-size:1.5rem;color:var(--brand-400);margin-bottom:.5rem}.empty-state-title{margin:0;font-size:1.05rem;font-weight:650;color:var(--ink)}.empty-state-desc{margin:.4rem auto 0;max-width:42ch;color:var(--muted);font-size:.92rem}.empty-state-action{margin-top:1rem}.spinner{width:1.1rem;height:1.1rem;border-radius:50%;border:2px solid var(--line-strong);border-top-color:var(--brand-400);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.org-tree{list-style:none;margin:0;padding:0}.org-tree ul{list-style:none;margin:.25rem 0 .25rem .9rem;padding:0 0 0 .75rem;border-left:1px solid var(--line)}.org-node{padding:.45rem .55rem;border-radius:8px;display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.org-node:hover{background:var(--surface-2)}.org-node-name{font-weight:600}.org-node-meta{font-size:.78rem;color:var(--muted)}.ai-layout{grid-template-columns:1fr}.ai-suggestions{display:flex;flex-wrap:wrap;gap:.45rem}.chip{border:1px solid var(--line);background:var(--surface);color:var(--ink-2);border-radius:999px;padding:.4rem .75rem;font-size:.82rem;cursor:pointer}.chip:hover{border-color:var(--brand-400);background:var(--brand-soft);color:var(--brand)}.chat-bubble{max-width:min(100%,640px);padding:.8rem .95rem;border-radius:12px;background:var(--surface);white-space:pre-wrap;line-height:1.45}.chat-bubble--user{background:var(--brand);color:#fff;border-color:var(--brand)}.chat-bubble--assistant{background:var(--surface-2)}.chat-bubble--system{background:var(--warning-bg);border-color:#f0d9a0;color:#6a4b00}.chat-compose{display:grid;grid-gap:.65rem;gap:.65rem}.chat-compose textarea{min-height:88px;resize:vertical}.chat-compose-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.notice-list{display:grid;grid-gap:.55rem;gap:.55rem}.notice-item{display:grid;grid-gap:.2rem;gap:.2rem;padding:.85rem .95rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.notice-item.is-unread{border-color:#b9d7e8;background:linear-gradient(90deg,#f3f9fc,#fff 40%);box-shadow:inset 3px 0 0 var(--brand-400)}.notice-title{margin:0;font-weight:600;color:var(--ink)}.notice-meta{font-size:.78rem;color:var(--muted)}.auth-page{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;background:var(--bg)}.auth-hero{position:relative;background:radial-gradient(ellipse 80% 60% at 20% 20%,rgba(42,143,191,.28),transparent 55%),radial-gradient(ellipse 70% 50% at 80% 80%,rgba(15,90,130,.35),transparent 50%),linear-gradient(155deg,#071f31,#0a2f4a 45%,#0d3d5c);color:#f4f7fa;padding:2.5rem clamp(1.5rem,4vw,3.5rem);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.auth-hero:after{content:"";position:absolute;inset:auto -20% -30% 20%;height:55%;background:radial-gradient(circle,rgba(91,180,224,.18),transparent 60%);pointer-events:none}.auth-hero-copy,.auth-hero-foot,.auth-hero-top{position:relative;z-index:1}.auth-hero-copy h1{margin:1.5rem 0 .75rem;font-size:clamp(1.8rem,3vw,2.35rem);font-weight:720;letter-spacing:-.03em;line-height:1.15;max-width:14ch}.auth-hero-copy p{margin:0;max-width:38ch;color:rgba(244,247,250,.78);font-size:1rem;line-height:1.55}.auth-hero-points{margin:1.5rem 0 0;padding:0;list-style:none;display:grid;grid-gap:.55rem;gap:.55rem}.auth-hero-points li{display:flex;gap:.55rem;align-items:flex-start;font-size:.9rem;color:rgba(244,247,250,.88)}.auth-hero-points li:before{content:"";width:.45rem;height:.45rem;margin-top:.4rem;border-radius:50%;background:var(--brand-400);flex-shrink:0}.auth-hero-foot{font-size:.78rem;color:rgba(244,247,250,.5);margin-top:2rem}.auth-panel{display:grid;place-items:center;padding:2rem 1.25rem}.auth-card{width:min(100%,400px);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);padding:1.75rem 1.6rem 1.5rem;display:grid;grid-gap:.95rem;gap:.95rem}.auth-card h1{margin:0;font-size:1.35rem;letter-spacing:-.02em}.auth-card .lead{margin:-.35rem 0 .25rem;color:var(--muted);font-size:.92rem}.auth-links{gap:.75rem;font-size:.86rem}.auth-links,.dash-hero{display:flex;justify-content:space-between}.dash-hero{flex-wrap:wrap;gap:1rem;padding:1.15rem 1.25rem;border-radius:var(--radius-xl);border:1px solid var(--line);background:linear-gradient(135deg,rgba(232,241,246,.9),rgba(255,255,255,.95)),var(--surface);box-shadow:var(--shadow-sm)}.dash-hero h1{margin:.15rem 0 0;font-size:1.45rem;letter-spacing:-.02em}.dash-hero p{margin:.35rem 0 0;color:var(--muted);font-size:.92rem}.dash-ai-cta{align-self:center}.list-plain{list-style:none;margin:0;padding:0;display:grid;grid-gap:.55rem;gap:.55rem}.list-plain li{display:flex;justify-content:space-between;gap:.75rem;padding:.55rem 0;border-bottom:1px solid var(--line);font-size:.9rem}.list-plain li:last-child{border-bottom:0}.immutable-banner{align-items:flex-start;padding:.75rem .9rem;border-radius:var(--radius);background:#f4f6f8;border:1px solid var(--line);color:var(--muted);font-size:.86rem}.immutable-banner,.row{display:flex;gap:.65rem}.row{flex-wrap:wrap;align-items:center}@media print{.app-footer,.mobile-nav-toggle,.sidebar,.topbar{display:none!important}.app-shell{display:block}.content{max-width:none;padding:0}.card,.metric-card,.panel{box-shadow:none}}@media (max-width:1100px){.grid-main{grid-template-columns:1fr}.user-menu-meta{display:none}}@media (max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:min(84vw,300px);transform:translateX(-105%);transition:transform .2s ease;box-shadow:var(--shadow-lg)}.app-shell--nav-open .sidebar{transform:translateX(0)}.nav-backdrop{display:block;position:fixed;inset:0;background:rgba(15,27,45,.45);opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:35}.app-shell--nav-open .nav-backdrop{opacity:1;pointer-events:auto}.mobile-nav-toggle{display:grid}.topbar-brand-mobile{display:flex}.topbar-ai{display:none}.auth-page{grid-template-columns:1fr}.auth-hero{min-height:auto;padding:1.5rem 1.25rem 1.75rem}.auth-hero-copy h1{max-width:none;font-size:1.55rem}.auth-hero-points{display:none}}@media (max-width:640px){.content{padding:1rem .9rem 2rem}.page-title{font-size:1.3rem}.metric-value{font-size:1.45rem}.grid-2{grid-template-columns:1fr}.data-table td,.data-table th,.table td,.table th{padding:.65rem .7rem}}@media (min-width:901px){.user-menu-meta{display:block}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.auth-shell{min-height:100vh;background:radial-gradient(1200px 600px at 10% -10%,rgba(42,143,191,.18),transparent 55%),radial-gradient(900px 500px at 100% 0,rgba(10,47,74,.35),transparent 50%),linear-gradient(165deg,#071b2c,#0a2f4a 42%,#0f3d5c)}.breadcrumbs{margin-bottom:.65rem}.breadcrumbs-list{display:flex;flex-wrap:wrap;gap:.25rem .35rem;list-style:none;margin:0;padding:0;font-size:.8rem;color:var(--muted)}.breadcrumbs-item{display:inline-flex;align-items:center;gap:.35rem}.breadcrumbs-link{color:var(--brand-600,var(--brand));text-decoration:none;font-weight:500}.breadcrumbs-link:hover{text-decoration:underline}.breadcrumbs-current{color:var(--ink);font-weight:600}.breadcrumbs-sep{opacity:.45}.page-header{margin-bottom:1.25rem}.page-header-row{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem}.page-eyebrow{margin:0 0 .25rem;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-600,var(--brand))}.page-title{margin:0;font-size:clamp(1.35rem,1.1rem + .8vw,1.75rem);font-weight:700;letter-spacing:-.02em;color:var(--ink);line-height:1.2}.page-description{margin:.4rem 0 0;max-width:62ch;color:var(--muted);font-size:.95rem;line-height:1.5}.page-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.stack{display:grid}.stack--sm{gap:.5rem}.stack--md{gap:1rem}.stack--lg{gap:1.5rem}.grid{display:grid;grid-gap:.85rem;gap:.85rem}.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:1100px){.grid--3,.grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.grid--2,.grid--3,.grid--4{grid-template-columns:1fr}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border-radius:10px;border:1px solid transparent;font-weight:600;font-size:.9rem;line-height:1.2;cursor:pointer;text-decoration:none;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease;white-space:nowrap}.btn:focus-visible{outline:none;box-shadow:var(--focus)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.btn--sm{padding:.4rem .7rem;font-size:.8rem;border-radius:8px}.btn--md{padding:.55rem .95rem}.btn--lg{padding:.7rem 1.15rem;font-size:.95rem}.btn--primary{background:linear-gradient(180deg,#1a6f9a,#0f5a82);color:#fff;border-color:#0d4f73;box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 1px 2px rgba(10,47,74,.2)}.btn--primary:hover:not(:disabled){filter:brightness(1.06)}.btn--secondary{background:#fff;color:var(--ink);border-color:var(--line)}.btn--secondary:hover:not(:disabled){border-color:var(--brand-400,#5bb4e0);background:var(--surface-2,#f4f7fa)}.btn--ghost{background:transparent;color:var(--ink);border-color:transparent}.btn--ghost:hover:not(:disabled){background:rgba(10,47,74,.06)}.btn--subtle{background:var(--brand-soft,rgba(42,143,191,.12));color:var(--brand);border-color:transparent}.btn--danger{background:#b42318;color:#fff;border-color:#912018}.btn--danger:hover:not(:disabled){filter:brightness(1.05)}.btn-spinner{width:.9rem;height:.9rem;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:wdo-spin .7s linear infinite}.btn--ghost .btn-spinner,.btn--secondary .btn-spinner,.btn--subtle .btn-spinner{border-color:rgba(10,47,74,.2);border-top-color:var(--brand)}@keyframes wdo-spin{to{transform:rotate(1turn)}}.field{display:grid;grid-gap:.35rem;gap:.35rem}.field-label{font-size:.82rem;font-weight:600;color:var(--ink)}.field-required{color:#b42318;margin-left:.15rem}.field-hint{color:var(--muted)}.field-error,.field-hint{margin:0;font-size:.78rem}.field-error{color:#b42318}.field--error .input{border-color:#f04438}.input,.select,.textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:.55rem .75rem;font:inherit;color:var(--ink);background:#fff;transition:border-color .15s ease,box-shadow .15s ease}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--brand-400,#5bb4e0);box-shadow:var(--focus)}.textarea{resize:vertical;min-height:6rem}.password-field{display:grid;grid-template-columns:1fr auto;grid-gap:.35rem;gap:.35rem;align-items:stretch}.password-toggle{border:1px solid var(--line);background:#fff;border-radius:10px;padding:0 .75rem;font-size:.8rem;font-weight:600;color:var(--brand);cursor:pointer}.password-toggle:hover{background:var(--surface-2,#f4f7fa)}.search-field{position:relative;min-width:min(100%,16rem)}.search-icon{position:absolute;left:.7rem;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;font-size:.95rem}.search-input{padding-left:2rem}.filter-bar,.toolbar{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;margin-bottom:.85rem}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.18rem .55rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.02em;line-height:1.3;border:1px solid transparent;white-space:nowrap}.badge-dot{width:.4rem;height:.4rem;border-radius:50%;background:currentColor;opacity:.85}.badge--success{background:#ecfdf3;color:#067647;border-color:#abefc6}.badge--warning{background:#fffaeb;color:#b54708;border-color:#fedf89}.badge--danger{background:#fef3f2;color:#b42318;border-color:#fecdca}.badge--info{background:#eff8ff;color:#175cd3;border-color:#b2ddff}.badge--accent{background:var(--brand-soft,#e8f4fa);color:var(--brand);border-color:#b6dced}.badge--neutral{background:#f2f4f7;color:#344054;border-color:#d0d5dd}.tag{display:inline-flex;padding:.15rem .45rem;border-radius:6px;background:var(--surface-2,#f4f7fa);color:var(--muted);font-size:.75rem;font-weight:600}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:12px;border:1px solid var(--line);background:#fff}.data-table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:560px}.data-table td,.data-table th{padding:.7rem .85rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}.data-table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--surface-2,#f8fafc);font-weight:700;white-space:nowrap}.data-table tbody tr:hover{background:rgba(42,143,191,.04)}.data-table tbody tr:last-child td{border-bottom:0}.data-table a{color:var(--brand-700,#0f5a82);font-weight:600;text-decoration:none}.data-table a:hover{text-decoration:underline}.def-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.85rem 1.25rem;gap:.85rem 1.25rem;margin:0}@media (max-width:720px){.def-list{grid-template-columns:1fr}}.def-item{min-width:0}.def-label{margin:0 0 .2rem;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.def-value{margin:0;font-size:.95rem;color:var(--ink);word-break:break-word}.metric-card{border:1px solid var(--line);border-radius:14px;background:#fff;padding:1rem 1.05rem;display:grid;grid-gap:.2rem;gap:.2rem;box-shadow:0 1px 2px rgba(16,24,40,.04)}.metric-card--link{text-decoration:none;color:inherit;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.metric-card--link:hover{border-color:var(--brand-400,#5bb4e0);box-shadow:0 8px 24px rgba(10,47,74,.08);transform:translateY(-1px)}.metric-label{margin:0;font-size:.75rem;font-weight:650;color:var(--muted);letter-spacing:.02em}.metric-value{margin:0;font-size:1.55rem;font-weight:750;letter-spacing:-.03em;color:var(--ink);line-height:1.15}.metric-hint{margin:0;font-size:.78rem;color:var(--muted)}.metric-card--warning .metric-value{color:#b54708}.metric-card--danger .metric-value{color:#b42318}.metric-card--success .metric-value{color:#067647}.metric-card--info .metric-value{color:#175cd3}.empty-state{text-align:center;padding:2.5rem 1.25rem;color:var(--muted)}.empty-glyph{width:3rem;height:3rem;margin:0 auto .85rem;border-radius:12px;border:1px dashed var(--line);background:linear-gradient(135deg,rgba(42,143,191,.12),transparent 60%),#fff}.empty-title{margin:0 0 .35rem;color:var(--ink);font-size:1.05rem}.empty-description{margin:0 auto;max-width:36ch;font-size:.9rem;line-height:1.5}.empty-action{margin-top:1rem}.loading-block{display:flex;align-items:center;justify-content:center;gap:.65rem;padding:2.5rem 1rem;color:var(--muted);font-size:.92rem}.loading-spinner{width:1.15rem;height:1.15rem;border-radius:50%;border:2px solid rgba(10,47,74,.15);border-top:2px solid var(--brand);animation:wdo-spin .7s linear infinite}.skeleton-stack{display:grid;grid-gap:.55rem;gap:.55rem;padding:.5rem 0}.skeleton-row{height:.75rem;border-radius:6px;background:linear-gradient(90deg,#eef2f6,#f8fafc 50%,#eef2f6);background-size:200% 100%;animation:wdo-shimmer 1.2s ease-in-out infinite}@keyframes wdo-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.banner{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;border-radius:12px;border:1px solid;margin-bottom:.85rem}.banner--error{background:#fef3f2;border-color:#fecdca;color:#7a271a}.banner--success{background:#ecfdf3;border-color:#abefc6;color:#085d3a}.banner--info{background:#eff8ff;border-color:#b2ddff;color:#194185}.banner-title{display:block;font-size:.88rem;margin-bottom:.15rem}.banner-message{margin:0;font-size:.88rem;line-height:1.45}.modal-root{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:1rem}.modal-backdrop{position:absolute;inset:0;border:0;background:rgba(7,27,44,.55);cursor:pointer}.modal-dialog{position:relative;z-index:1;width:min(100%,28rem);max-height:min(90vh,40rem);overflow:auto;background:#fff;border-radius:16px;border:1px solid var(--line);box-shadow:0 24px 64px rgba(7,27,44,.28);outline:none}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem 1.1rem .5rem}.modal-title{margin:0;font-size:1.05rem;font-weight:700}.modal-close{border:0;background:transparent;font-size:1.35rem;line-height:1;cursor:pointer;color:var(--muted);border-radius:8px;padding:.15rem .4rem}.modal-close:hover{background:var(--surface-2,#f4f7fa);color:var(--ink)}.modal-body{padding:.5rem 1.1rem 1rem}.modal-message{margin:0;color:var(--ink);line-height:1.5;font-size:.95rem}.modal-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:.75rem 1.1rem 1.1rem;border-top:1px solid var(--line)}.app-shell{--sidebar-w:17rem;min-height:100vh;display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);background:var(--bg,#f2f5f8)}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,#0a2f4a,#071b2c);color:#e8eef4;border-right:1px solid rgba(255,255,255,.06);z-index:30}.sidebar-brand{padding:1rem 1rem .75rem}.sidebar-brand-link{text-decoration:none;color:inherit;display:block}.sidebar .brand-product{color:#f4f7fa}.sidebar .brand-company{color:rgba(244,247,250,.65);font-size:.72rem}.sidebar-nav{flex:1 1;overflow-y:auto;padding:.35rem .65rem 1rem}.nav-group{margin-bottom:.85rem}.nav-group-label{margin:.35rem .55rem;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:rgba(244,247,250,.45)}.nav-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:.15rem;gap:.15rem}.nav-link{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.48rem .65rem;border-radius:9px;color:rgba(244,247,250,.82);text-decoration:none;font-size:.9rem;font-weight:500}.nav-link:hover{background:rgba(255,255,255,.06);color:#fff}.nav-link--active{background:rgba(42,143,191,.28);color:#fff;font-weight:650;box-shadow:inset 3px 0 0 #5bb4e0}.nav-badge{min-width:1.25rem;height:1.25rem;padding:0 .35rem;border-radius:999px;background:#5bb4e0;color:#042033;font-size:.68rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center}.sidebar-footer{padding:.65rem;border-top:1px solid rgba(255,255,255,.08);display:grid;grid-gap:.15rem;gap:.15rem}.nav-link--footer{font-size:.85rem}.shell-main{min-width:0;display:flex;flex-direction:column;min-height:100vh}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;justify-content:space-between;gap:1rem;padding:.75rem 1.25rem;background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.topbar,.topbar-left{display:flex;align-items:center}.topbar-left{gap:.75rem;min-width:0}.topbar-title-block{min-width:0}.topbar-kicker{margin:0;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.topbar-title{margin:0;font-size:1.05rem;font-weight:700;letter-spacing:-.01em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-right{display:flex;align-items:center;gap:.45rem}.topbar-ai{display:inline-flex;align-items:center;padding:.4rem .7rem;border-radius:999px;background:linear-gradient(180deg,#0a2f4a,#0f3d5c);color:#f4f7fa;font-size:.78rem;font-weight:700;text-decoration:none;letter-spacing:.02em}.topbar-ai:hover{filter:brightness(1.08)}.icon-btn{position:relative;width:2.25rem;height:2.25rem;border-radius:10px;border:1px solid var(--line);background:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink);text-decoration:none}.icon-btn:hover{background:var(--surface-2,#f4f7fa)}.icon-btn:focus-visible{outline:none;box-shadow:var(--focus)}.notify-dot{position:absolute;top:.35rem;right:.4rem;width:.45rem;height:.45rem;border-radius:50%;background:#f04438;box-shadow:0 0 0 2px #fff}.menu-toggle{display:none}.menu-toggle-bars,.menu-toggle-bars:after,.menu-toggle-bars:before{display:block;width:1rem;height:2px;background:var(--ink);border-radius:2px;position:relative}.menu-toggle-bars:after,.menu-toggle-bars:before{content:"";position:absolute;left:0}.menu-toggle-bars:before{top:-5px}.menu-toggle-bars:after{top:5px}.user-menu{position:relative}.user-menu-trigger{display:flex;align-items:center;gap:.55rem;border:1px solid var(--line);background:#fff;border-radius:999px;padding:.25rem .65rem .25rem .25rem;cursor:pointer;max-width:16rem}.user-menu-trigger:hover{background:var(--surface-2,#f4f7fa)}.user-avatar{width:1.85rem;height:1.85rem;border-radius:50%;background:linear-gradient(145deg,#0a2f4a,#2a8fbf);color:#fff;display:grid;place-items:center;font-size:.78rem;font-weight:700;flex-shrink:0}.user-menu-meta{display:none;text-align:left;min-width:0}.user-name{font-size:.8rem;font-weight:650;color:var(--ink)}.user-email,.user-name{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-email{font-size:.68rem;color:var(--muted)}.user-menu-panel{position:absolute;right:0;top:calc(100% + .4rem);width:15rem;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 40px rgba(10,47,74,.16);padding:.4rem;z-index:40}.user-menu-header{padding:.55rem .65rem .65rem;border-bottom:1px solid var(--line);margin-bottom:.25rem}.user-menu-name{margin:0;font-weight:700;font-size:.88rem}.user-menu-email{margin:.15rem 0 0;font-size:.75rem;color:var(--muted);word-break:break-all}.user-menu-item{display:block;width:100%;text-align:left;border:0;background:transparent;padding:.55rem .65rem;border-radius:8px;font:inherit;font-size:.88rem;color:var(--ink);text-decoration:none;cursor:pointer}.user-menu-item:hover{background:var(--surface-2,#f4f7fa)}.user-menu-item--danger{color:#b42318}.shell-content{flex:1 1;padding:1.25rem 1.35rem 2rem;max-width:1200px;width:100%;margin:0 auto}.shell-footer{display:flex;flex-wrap:wrap;gap:.35rem .55rem;padding:.75rem 1.35rem 1.1rem;font-size:.75rem;color:var(--muted);border-top:1px solid var(--line)}.shell-footer-sep{opacity:.5}.nav-scrim{display:none;position:fixed;inset:0;background:rgba(7,27,44,.45);z-index:25;border:0}.login-layout{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}.login-brand-pane{display:flex;flex-direction:column;justify-content:space-between;padding:clamp(1.5rem,4vw,3rem);color:#f4f7fa}.login-brand-copy h1{margin:1.25rem 0 .5rem;font-size:clamp(1.6rem,1.2rem + 1.5vw,2.25rem);letter-spacing:-.03em;line-height:1.15}.login-brand-copy p{margin:0;max-width:34ch;color:rgba(244,247,250,.78);line-height:1.55;font-size:.98rem}.login-brand-foot{font-size:.78rem;color:rgba(244,247,250,.55)}.login-form-pane{display:grid;place-items:center;padding:1.5rem;background:linear-gradient(180deg,rgba(255,255,255,.97),#f4f7fa 40%,#eef3f7)}.login-card{width:min(100%,26rem);background:#fff;border:1px solid rgba(16,24,40,.08);border-radius:18px;padding:1.5rem 1.45rem 1.35rem;box-shadow:0 18px 50px rgba(7,27,44,.12)}.login-card h2{margin:0 0 .25rem;font-size:1.25rem;letter-spacing:-.02em}.login-card .login-sub{margin:0 0 1.15rem;color:var(--muted);font-size:.9rem}.login-form{display:grid;grid-gap:.85rem;gap:.85rem}.login-links{display:flex;justify-content:space-between;gap:.75rem;margin-top:.35rem;font-size:.85rem}.login-links a{color:var(--brand);font-weight:600;text-decoration:none}.login-links a:hover{text-decoration:underline}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 2px rgba(16,24,40,.04)}.panel--padded{padding:1rem 1.1rem 1.15rem}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.85rem}.panel-title{margin:0;font-size:.98rem;font-weight:700;letter-spacing:-.01em}.panel-description{margin:.2rem 0 0;font-size:.85rem;color:var(--muted)}.panel-actions{display:flex;gap:.4rem;flex-wrap:wrap}.page{display:grid;grid-gap:1rem;gap:1rem}.muted{color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em}.org-tree{display:grid;grid-gap:.35rem;gap:.35rem}.org-node{border:1px solid var(--line);border-radius:10px;padding:.65rem .75rem;background:#fff}.org-node-row{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .75rem}.org-node-name{font-weight:650;color:var(--ink)}.org-children{margin:.5rem 0 0 .85rem;padding-left:.75rem;border-left:2px solid rgba(42,143,191,.25);display:grid;grid-gap:.35rem;gap:.35rem}.notif-list{display:grid;grid-gap:.5rem;gap:.5rem}.notif-item{display:grid;grid-gap:.2rem;gap:.2rem;padding:.85rem .95rem;border:1px solid var(--line);border-radius:12px;background:#fff}.notif-item--unread{border-color:rgba(42,143,191,.35);background:linear-gradient(180deg,#f5fbff,#fff)}.notif-title{margin:0;font-weight:650;font-size:.92rem}.notif-meta{margin:0;font-size:.78rem;color:var(--muted)}.ai-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(15rem,18rem);grid-gap:1rem;gap:1rem;align-items:start}@media (max-width:960px){.ai-layout{grid-template-columns:1fr}}.ai-chat-panel{min-width:0}.ai-chat-panel,.chat-log{display:grid;grid-gap:.75rem;gap:.75rem}.chat-log{max-height:min(52vh,520px);overflow-y:auto;padding:.25rem}.chat-bubble{max-width:min(100%,42rem);padding:.75rem .9rem;border-radius:14px;border:1px solid var(--line);background:#fff;line-height:1.5;font-size:.92rem}.chat-bubble--user{margin-left:auto;background:linear-gradient(180deg,#0a2f4a,#0f3d5c);color:#f4f7fa;border-color:transparent}.chat-bubble--assistant{background:#fff}.chat-bubble--system{background:#fffaeb;border-color:#fedf89;color:#7a2e0e}.chat-bubble--error{background:#fef3f2;border-color:#fecdca;color:#7a271a}.chat-meta{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.45rem}.chat-composer{display:grid;grid-gap:.55rem;gap:.55rem}.chat-composer-row{display:flex;gap:.5rem;align-items:flex-end}.prompt-chips{display:flex;flex-wrap:wrap;gap:.4rem}.prompt-chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.35rem .7rem;font-size:.78rem;font-weight:600;color:var(--ink);cursor:pointer}.prompt-chip:hover{border-color:var(--brand-400,#5bb4e0);background:var(--brand-soft,#e8f4fa);color:var(--brand)}.ai-side-card{display:grid;grid-gap:.75rem;gap:.75rem}.ai-legend{display:grid;grid-gap:.45rem;gap:.45rem;font-size:.82rem;color:var(--muted)}.ai-legend-row{display:flex;align-items:center;gap:.45rem}@media print{.filter-bar,.page-actions,.shell-footer,.sidebar,.toolbar,.topbar{display:none!important}.app-shell{display:block}.shell-content{max-width:none;padding:0}}@media (max-width:960px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;width:min(18rem,88vw);transform:translateX(-105%);transition:transform .2s ease;box-shadow:12px 0 40px rgba(0,0,0,.25)}.app-shell--nav-open .sidebar{transform:translateX(0)}.nav-scrim{display:block}.nav-scrim[hidden]{display:none}.menu-toggle{display:inline-flex}.topbar-ai{display:none}.shell-content{padding:1rem .9rem 1.75rem}.login-layout{grid-template-columns:1fr}.login-brand-pane{min-height:auto;padding-bottom:1rem}}@media (min-width:1100px){.user-menu-meta{display:block}}.inline-link{color:var(--brand-700,#0f5a82);font-weight:600;text-decoration:none}.inline-link:hover{text-decoration:underline}.row-actions{display:inline-flex;gap:.35rem;flex-wrap:wrap}.stat-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));grid-gap:.75rem;gap:.75rem}.section-gap{display:grid;grid-gap:1rem;gap:1rem}.two-col{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);grid-gap:1rem;gap:1rem}@media (max-width:900px){.two-col{grid-template-columns:1fr}}.danger-text{color:#b42318;font-weight:650}.overdue-flag{color:#b42318;font-weight:700}.overdue-flag,.small{font-size:.78rem}.muted.small,.small.muted{color:var(--muted);font-size:.78rem}