:root{
  --font-ui:"Segoe UI",Inter,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
  --accent:#b9e600;
  --accent-2:#93c000;
  --accent-soft:rgba(185,230,0,.12);
  --success:#7fbf2d;
  --warning:#e2a21a;
  --danger:#e05252;
  --info:#4a92df;
  --radius-xs:6px;--radius-sm:8px;--radius:10px;--radius-lg:14px;--radius-xl:18px;
  --shadow-pop:0 18px 55px rgba(0,0,0,.28);
  --sidebar-w:228px;
  --topbar-h:60px;
  --sidebar-text:#f4f7f4;--sidebar-text-2:#b7beb8;--sidebar-muted:#7f8981;--sidebar-surface:#101310;--sidebar-border:#222923;
  --ease:150ms cubic-bezier(.2,.8,.2,1);
}
html[data-theme="obsidian"]{
  --bg:#080a09;--bg-2:#0b0e0c;--surface:#101310;--surface-2:#151915;--surface-3:#1a1f1b;
  --sidebar:#080a09;--sidebar-surface:#101310;--sidebar-border:#222923;--topbar:rgba(10,12,11,.96);--text:#f4f7f4;--text-2:#b7beb8;--muted:#7f8981;
  --border:#262c27;--border-soft:#1b211d;--row:#111512;--row-hover:#171c18;--input:#101411;
  --grid:#222923;--shadow:0 0 0 1px rgba(255,255,255,.02),0 12px 35px rgba(0,0,0,.18);
}
html[data-theme="graphite"]{
  --bg:#202522;--bg-2:#242a26;--surface:#2b312d;--surface-2:#333a35;--surface-3:#3b433d;
  --sidebar:#1c211e;--sidebar-surface:#2b312d;--sidebar-border:#3a423c;--topbar:rgba(34,39,36,.96);--text:#f7f8f7;--text-2:#d0d5d1;--muted:#a0aaa2;
  --border:#48514a;--border-soft:#3a423c;--row:#2d342f;--row-hover:#39413b;--input:#262c28;
  --grid:#48514a;--shadow:0 10px 30px rgba(0,0,0,.16);
}
html[data-theme="arctic"]{
  --bg:#f3f5f4;--bg-2:#eef1ef;--surface:#ffffff;--surface-2:#f8faf8;--surface-3:#f1f4f2;
  --sidebar:#111512;--sidebar-surface:#181d1a;--sidebar-border:#252c27;--sidebar-text:#f4f7f4;--sidebar-text-2:#c7cec9;--sidebar-muted:#8e9991;--topbar:rgba(255,255,255,.96);--text:#161a17;--text-2:#4f5a52;--muted:#79817b;
  --border:#dfe5e0;--border-soft:#e9edea;--row:#fff;--row-hover:#f6f8f6;--input:#fff;
  --grid:#e5eae6;--shadow:0 8px 30px rgba(18,30,22,.06);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:14px}
body{overflow:hidden}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
[hidden]{display:none!important}
::selection{background:var(--accent);color:#111}
*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}
*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--border);border-radius:10px;border:3px solid transparent;background-clip:padding-box}

.boot-screen{position:fixed;inset:0;z-index:9999;background:#080a09;display:grid;place-content:center;text-align:center;gap:18px;color:#fff}
.boot-mark img{width:160px;max-height:70px;object-fit:contain}.boot-copy{display:grid;gap:5px}.boot-copy strong{font-size:17px}.boot-copy span{font-size:12px;color:#8f9991}.boot-progress{width:230px;height:3px;background:#1b221c;border-radius:99px;overflow:hidden}.boot-progress i{display:block;width:42%;height:100%;background:var(--accent);border-radius:99px;animation:boot 1.2s ease-in-out infinite alternate}@keyframes boot{from{transform:translateX(-70%)}to{transform:translateX(200%)}}

.auth-view{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(380px,.8fr);background:#090b0a;color:#fff;overflow:auto}
.auth-brand{padding:40px 56px;display:flex;flex-direction:column;min-height:100vh;background:radial-gradient(circle at 18% 28%,rgba(185,230,0,.08),transparent 28%),linear-gradient(145deg,#090b0a,#0d110e 60%,#080a09)}
.auth-brandbar{display:flex;align-items:center;gap:20px;color:#89928b;font-size:12px;letter-spacing:.04em;text-transform:uppercase}.auth-brandbar img{width:150px;height:64px;object-fit:contain;object-position:left center}
.auth-hero{margin:auto 0;max-width:720px}.eyebrow,.micro-label{font-size:11px;font-weight:700;letter-spacing:.13em;color:var(--accent)}.auth-hero h1{font-size:clamp(42px,5vw,74px);line-height:.98;letter-spacing:-.045em;margin:18px 0 22px;max-width:800px}.auth-hero>p{max-width:620px;color:#aeb7b0;font-size:17px;line-height:1.65}
.auth-capabilities{margin-top:38px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.auth-capabilities>div{border:1px solid #222923;background:rgba(18,22,19,.7);padding:16px;border-radius:12px;display:grid;gap:4px}.auth-capabilities b{font-size:13px}.auth-capabilities span{font-size:12px;color:#89928b}
.auth-status{display:flex;align-items:center;gap:9px;color:#89928b;font-size:12px}.status-dot{width:8px;height:8px;background:var(--accent);border-radius:50%;box-shadow:0 0 0 5px rgba(185,230,0,.08)}
.auth-panel{display:grid;place-items:center;padding:40px;background:#f7f8f7;color:#171a18}.auth-card{width:min(420px,100%);background:#fff;border:1px solid #e2e7e3;border-radius:18px;padding:32px;box-shadow:0 24px 70px rgba(20,30,22,.08)}.auth-card h2{font-size:28px;margin:8px 0 8px;letter-spacing:-.03em}.auth-card-head p{color:#69736c;line-height:1.5;margin:0 0 24px}.auth-form{display:grid;gap:15px}.auth-form label{font-size:12px;font-weight:600;color:#404943;display:grid;gap:7px}.auth-form input{width:100%;height:44px;border:1px solid #d9dfda;border-radius:9px;padding:0 12px;background:#fff;color:#171a18}.auth-message{min-height:20px;margin-top:12px;color:#b83939;font-size:12px}.auth-divider{display:flex;align-items:center;gap:10px;color:#9ba29d;font-size:10px;text-transform:uppercase;letter-spacing:.09em;margin:18px 0}.auth-divider:before,.auth-divider:after{content:"";height:1px;flex:1;background:#e7ebe8}

.os-shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);height:100vh;background:var(--bg);transition:grid-template-columns var(--ease)}
.os-shell.sidebar-mini{--sidebar-w:70px}
.sidebar{background:var(--sidebar);border-right:1px solid var(--sidebar-border);color:var(--sidebar-text);min-width:0;display:flex;flex-direction:column;height:100vh;position:relative;z-index:20}
.brand-zone{height:88px;display:flex;align-items:center;padding:10px 14px 7px;border-bottom:1px solid var(--sidebar-border);position:relative}.brand-logo{width:155px;height:58px;object-fit:contain;object-position:left center;transition:var(--ease)}.sidebar-collapse{position:absolute;right:8px;bottom:8px;width:28px!important;height:28px!important;opacity:.7}
.os-shell.sidebar-mini .brand-logo{width:42px;object-fit:cover;object-position:left}.os-shell.sidebar-mini .sidebar-collapse{right:20px;bottom:-16px;z-index:5}.os-shell.sidebar-mini .sidebar-search-wrap input,.os-shell.sidebar-mini .sidebar-search-wrap kbd,.os-shell.sidebar-mini .nav-label,.os-shell.sidebar-mini .nav-section-title,.os-shell.sidebar-mini .sidebar-footer .sync-card>div,.os-shell.sidebar-mini .sync-check,.os-shell.sidebar-mini .version-line{display:none}.os-shell.sidebar-mini .sidebar-search-wrap{justify-content:center;padding:9px}.os-shell.sidebar-mini .nav-item{justify-content:center;padding:0}.os-shell.sidebar-mini .nav-icon{margin:0}.os-shell.sidebar-mini .sync-card{justify-content:center;padding:10px}
.sidebar-search-wrap{margin:10px 10px 6px;height:36px;border:1px solid var(--sidebar-border);background:var(--sidebar-surface);border-radius:9px;display:flex;align-items:center;gap:8px;padding:0 9px;color:var(--sidebar-muted)}.sidebar-search{min-width:0;flex:1;border:0;background:transparent;outline:0;font-size:12px;color:var(--sidebar-text)}.sidebar-search-wrap kbd,.global-search kbd,.command-search kbd{font-size:10px;color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:5px;padding:2px 5px}
.nav-tree{padding:6px 8px 14px;overflow:auto;flex:1}.nav-section{margin-top:12px}.nav-section-title{padding:7px 10px 6px;color:var(--sidebar-muted);font-size:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.nav-item{width:100%;height:38px;border:0;background:transparent;color:var(--sidebar-text-2);border-radius:8px;display:flex;align-items:center;gap:10px;padding:0 10px;text-align:left;position:relative;transition:background var(--ease),color var(--ease)}.nav-item:hover{background:var(--sidebar-surface);color:var(--sidebar-text)}.nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav-item.active:before{content:"";position:absolute;left:-8px;top:7px;bottom:7px;width:3px;border-radius:99px;background:var(--accent)}.nav-icon{width:20px;display:inline-grid;place-items:center;font-size:14px;color:currentColor}.nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.sidebar-footer{padding:8px;border-top:1px solid var(--sidebar-border)}.sync-card{border:1px solid var(--sidebar-border);border-radius:10px;padding:10px;display:flex;align-items:center;gap:8px;background:var(--sidebar-surface);color:var(--sidebar-text)}.sync-indicator{width:8px;height:8px;background:var(--accent);border-radius:50%;box-shadow:0 0 0 4px var(--accent-soft)}.sync-card div{min-width:0;display:grid;gap:2px}.sync-card b{font-size:10px;text-transform:uppercase;letter-spacing:.05em}.sync-card small{font-size:9px;color:var(--sidebar-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sync-check{margin-left:auto;color:var(--accent);font-weight:800}.version-line{display:flex;justify-content:space-between;font-size:8px;color:var(--sidebar-muted);padding:8px 4px 1px}

.app-main{height:100vh;display:grid;grid-template-rows:var(--topbar-h) auto auto minmax(0,1fr);min-width:0;background:var(--bg);overflow:hidden}.topbar{height:var(--topbar-h);display:grid;grid-template-columns:minmax(180px,1fr) minmax(300px,460px) minmax(400px,1fr);align-items:center;gap:18px;padding:0 18px;border-bottom:1px solid var(--border-soft);background:var(--topbar);backdrop-filter:blur(18px);position:relative;z-index:15}.topbar-left,.topbar-right{display:flex;align-items:center;min-width:0}.topbar-right{justify-content:flex-end;gap:8px}.breadcrumb{display:flex;align-items:center;gap:8px;min-width:0;color:var(--text-2);font-size:12px}.breadcrumb b{color:var(--text)}.global-search{width:100%;height:36px;border:1px solid var(--border);background:var(--surface);border-radius:9px;padding:0 10px;color:var(--muted);display:flex;align-items:center;gap:9px;text-align:left}.global-search em{font-style:normal;flex:1;font-size:12px}.icon-btn{width:36px;height:36px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text-2);display:grid;place-items:center}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.ai-pill{height:36px;border:1px solid var(--border);border-radius:9px;background:var(--surface);display:flex;align-items:center;gap:7px;padding:0 11px}.ai-pill span{color:var(--accent)}.ai-pill b{font-size:11px}.ai-pill small{font-size:9px;color:var(--muted)}.notification-btn{position:relative}.notification-btn span{position:absolute;right:-3px;top:-4px;min-width:16px;height:16px;padding:0 4px;border-radius:99px;background:var(--accent);color:#111;display:grid;place-items:center;font-size:8px;font-weight:800}.profile-btn{height:40px;border:0;background:transparent;display:flex;align-items:center;gap:9px;padding:0 6px 0 2px;border-radius:10px}.profile-btn:hover{background:var(--surface-2)}.avatar{width:32px;height:32px;border-radius:50%;background:var(--surface-3);border:1px solid var(--border);display:grid;place-items:center;font-size:10px;font-weight:700}.profile-copy{display:grid;gap:1px;text-align:left}.profile-copy b{font-size:11px}.profile-copy small{font-size:9px;color:var(--muted)}.mobile-nav-btn{display:none}

.project-context{margin:12px 16px 0;border:1px solid var(--border);border-radius:12px;background:var(--surface);min-height:66px;display:grid;grid-template-columns:minmax(260px,1.2fr) auto;align-items:center;padding:10px 12px;gap:14px;box-shadow:var(--shadow)}.project-ident{display:flex;align-items:center;gap:14px;min-width:0}.project-copy{min-width:0;display:grid;gap:4px}.project-copy small{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.project-copy strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-badge{display:inline-flex;align-items:center;gap:6px;width:max-content;border-radius:99px;padding:5px 8px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:var(--surface-3);color:var(--text-2);border:1px solid var(--border)}.status-badge.good{background:var(--accent-soft);border-color:rgba(185,230,0,.22);color:var(--accent)}.status-badge.warn{background:rgba(226,162,26,.12);border-color:rgba(226,162,26,.22);color:var(--warning)}.project-metrics{display:flex;align-items:stretch;gap:0;min-width:0}.project-metric{padding:2px 15px;border-left:1px solid var(--border);display:grid;align-content:center;gap:2px;min-width:84px}.project-metric b{font-size:13px;white-space:nowrap}.project-metric small{font-size:8px;color:var(--muted);white-space:nowrap}.project-metric.result b.positive{color:var(--accent)}.project-metric.result b.negative{color:var(--danger)}

.module-head{padding:14px 18px 10px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border-soft)}.module-title-wrap{min-width:0}.module-title-wrap h1{font-size:22px;line-height:1.05;letter-spacing:-.025em;margin:0 0 5px}.module-title-wrap p{margin:0;color:var(--muted);font-size:11px}.command-bar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.btn{height:34px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:0 11px;font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn:hover{background:var(--surface-2)}.btn.primary{background:var(--accent);color:#101400;border-color:var(--accent);font-weight:700}.btn.primary:hover{background:#c5f000}.btn.secondary{background:transparent}.btn.subtle{background:transparent;border-color:transparent;color:var(--text-2)}.btn.danger{color:var(--danger);border-color:rgba(224,82,82,.28)}.btn.full{width:100%;height:42px}.btn.icon-only{width:34px;padding:0}.command-sep{width:1px;height:24px;background:var(--border);margin:0 3px}

.workspace{min-height:0;overflow:auto;padding:0 16px 16px}.page-stack{display:grid;gap:12px;padding-top:12px}.surface{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow)}.surface-head{min-height:48px;padding:10px 12px;border-bottom:1px solid var(--border-soft);display:flex;align-items:center;justify-content:space-between;gap:12px}.surface-head h2,.surface-head h3{margin:0;font-size:13px}.surface-head span{font-size:9px;color:var(--muted)}.surface-body{padding:12px}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.dashboard-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr);gap:12px}.stack{display:grid;gap:12px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.kpi-card{border:1px solid var(--border-soft);background:var(--surface-2);border-radius:9px;padding:12px;min-height:82px;display:grid;align-content:space-between;gap:7px}.kpi-card small{font-size:9px;color:var(--muted)}.kpi-card b{font-size:20px;letter-spacing:-.03em}.kpi-card .delta{font-size:9px;color:var(--accent)}.kpi-card .delta.bad{color:var(--danger)}
.quick-modules{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));overflow:hidden}.quick-module{border:0;border-right:1px solid var(--border-soft);background:transparent;color:var(--text-2);padding:12px 7px;display:grid;place-items:center;gap:6px;min-height:72px}.quick-module:last-child{border-right:0}.quick-module:hover{background:var(--surface-2);color:var(--text)}.quick-module.active{color:var(--accent);background:var(--accent-soft)}.quick-module span{font-size:17px}.quick-module small{font-size:9px;white-space:nowrap}

.data-toolbar{display:flex;align-items:center;gap:8px;padding:9px;border-bottom:1px solid var(--border-soft);flex-wrap:wrap}.search-field{height:34px;min-width:220px;flex:1;max-width:440px;border:1px solid var(--border);background:var(--input);border-radius:8px;display:flex;align-items:center;gap:7px;padding:0 9px}.search-field input{border:0;outline:0;background:transparent;min-width:0;flex:1;font-size:11px}.filter-chip{height:30px;border:1px solid var(--border);border-radius:99px;background:var(--surface);padding:0 10px;color:var(--text-2);font-size:10px}.filter-chip.active{background:var(--accent-soft);border-color:rgba(185,230,0,.3);color:var(--accent)}
.data-grid-wrap{overflow:auto}.data-grid{width:100%;border-collapse:separate;border-spacing:0;font-size:11px}.data-grid thead th{position:sticky;top:0;z-index:2;background:var(--surface-2);color:var(--text-2);font-size:9px;text-transform:uppercase;letter-spacing:.04em;font-weight:700;text-align:left;padding:9px 10px;border-bottom:1px solid var(--border);white-space:nowrap}.data-grid tbody td{padding:9px 10px;border-bottom:1px solid var(--border-soft);color:var(--text-2);vertical-align:middle}.data-grid tbody tr{background:var(--row)}.data-grid tbody tr:hover{background:var(--row-hover)}.data-grid tbody tr.selected{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.data-grid tbody td strong{color:var(--text);font-weight:600}.data-grid .num{text-align:right;font-variant-numeric:tabular-nums}.data-grid .muted{color:var(--muted)}.data-grid .row-actions{display:flex;gap:4px;justify-content:flex-end}.mini-btn{width:28px;height:28px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text-2)}.mini-btn:hover{color:var(--accent);background:var(--surface-2)}.chapter-row td{background:var(--surface-2)!important;color:var(--text)!important;font-weight:700}.chapter-row .chapter-total{color:var(--accent)!important}

.split-workspace{display:grid;grid-template-columns:minmax(520px,1.05fr) minmax(430px,.95fr);gap:10px;min-height:calc(100vh - 250px)}.split-workspace>.surface{min-height:0}.split-pane{display:flex;flex-direction:column;min-height:0}.split-pane .data-grid-wrap{flex:1;min-height:0}.detail-panel{display:flex;flex-direction:column;min-height:0}.detail-header{padding:14px;border-bottom:1px solid var(--border-soft);display:grid;gap:10px}.detail-title-line{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.detail-title-line small{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}.detail-title-line h2{font-size:15px;line-height:1.25;margin:4px 0 0}.detail-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.detail-kpi{padding:9px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);display:grid;gap:4px}.detail-kpi span{font-size:8px;color:var(--muted);text-transform:uppercase}.detail-kpi b{font-size:12px}.tabs{display:flex;gap:0;border-bottom:1px solid var(--border-soft);padding:0 8px;overflow:auto}.tab{height:38px;border:0;background:transparent;color:var(--muted);padding:0 10px;font-size:9px;font-weight:600;white-space:nowrap;border-bottom:2px solid transparent}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.detail-body{padding:12px;overflow:auto;flex:1}.detail-description{color:var(--text-2);line-height:1.55;font-size:11px}.empty-state{min-height:260px;display:grid;place-items:center;text-align:center;color:var(--muted);padding:30px}.empty-state strong{display:block;color:var(--text);font-size:14px;margin-bottom:6px}

.chart{padding:12px}.chart svg{width:100%;height:210px;display:block}.chart-grid{stroke:var(--grid);stroke-width:1}.chart-axis{fill:var(--muted);font-size:9px}.chart-line{fill:none;stroke:#d5dbd6;stroke-width:2}.chart-bar-income{fill:var(--accent);opacity:.82}.chart-bar-expense{fill:var(--danger);opacity:.78}.progress{height:6px;border-radius:99px;background:var(--surface-3);overflow:hidden;min-width:80px}.progress i{height:100%;display:block;border-radius:99px;background:var(--accent)}.alert-list{display:grid}.alert-row{padding:11px 12px;border-bottom:1px solid var(--border-soft);display:grid;grid-template-columns:24px 1fr auto;gap:8px;align-items:start}.alert-row:last-child{border-bottom:0}.alert-icon{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:rgba(226,162,26,.12);color:var(--warning);font-size:10px}.alert-row p{margin:0;font-size:10px;line-height:1.4;color:var(--text-2)}.alert-row small{color:var(--muted);font-size:8px}.text-good{color:var(--accent)!important}.text-warn{color:var(--warning)!important}.text-bad{color:var(--danger)!important}

.drawer-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.36);z-index:80;backdrop-filter:blur(2px)}.drawer{position:fixed;right:0;top:0;bottom:0;width:min(520px,92vw);z-index:81;background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-pop);transform:translateX(102%);transition:transform var(--ease);display:flex;flex-direction:column}.drawer.open{transform:translateX(0)}.drawer-head{padding:16px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.drawer-head h2{font-size:16px;margin:0}.drawer-body{padding:14px;overflow:auto;flex:1}.drawer-footer{padding:12px 14px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field{display:grid;gap:6px}.field.span-2{grid-column:1/-1}.field label{font-size:9px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.field input,.field select,.field textarea{width:100%;border:1px solid var(--border);background:var(--input);border-radius:8px;padding:0 10px;font-size:11px}.field input,.field select{height:38px}.field textarea{min-height:100px;padding-top:9px;resize:vertical}

.command-palette-wrap{position:fixed;inset:0;z-index:120;background:rgba(0,0,0,.42);backdrop-filter:blur(6px);padding:9vh 16px 16px;display:flex;align-items:flex-start;justify-content:center}.command-palette{width:min(720px,100%);background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-pop);overflow:hidden}.command-search{height:56px;display:flex;align-items:center;gap:10px;padding:0 14px;border-bottom:1px solid var(--border)}.command-search input{flex:1;border:0;background:transparent;outline:0;font-size:15px}.command-results{max-height:440px;overflow:auto;padding:7px}.command-group-label{font-size:8px;color:var(--muted);font-weight:700;letter-spacing:.1em;padding:8px;text-transform:uppercase}.command-item{width:100%;min-height:44px;border:0;background:transparent;border-radius:8px;color:var(--text);display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:8px;padding:6px 8px;text-align:left}.command-item:hover,.command-item.active{background:var(--surface-2)}.command-item span:first-child{width:28px;height:28px;border-radius:7px;background:var(--surface-3);display:grid;place-items:center;color:var(--text-2)}.command-item b{font-size:11px}.command-item small{font-size:9px;color:var(--muted)}

.popover{position:fixed;z-index:110;width:280px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-pop);padding:8px}.profile-menu{right:14px;top:54px}.theme-menu{right:150px;top:54px}.notification-panel{right:190px;top:54px;width:360px;max-height:460px;overflow:auto}.menu-head{padding:8px 8px 10px;border-bottom:1px solid var(--border);display:grid;gap:3px}.menu-head b{font-size:12px}.menu-head small{font-size:9px;color:var(--muted)}.menu-item{width:100%;min-height:38px;border:0;background:transparent;border-radius:7px;color:var(--text-2);display:flex;align-items:center;gap:8px;padding:0 9px;text-align:left;font-size:10px}.menu-item:hover{background:var(--surface-2);color:var(--text)}.menu-sep{height:1px;background:var(--border);margin:6px 2px}.theme-option{width:100%;border:0;background:transparent;border-radius:8px;padding:8px;display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;text-align:left}.theme-option:hover{background:var(--surface-2)}.theme-swatch{width:24px;height:24px;border-radius:50%;border:1px solid var(--border);display:grid;place-items:center}.theme-swatch.obsidian{background:#0b0e0c}.theme-swatch.arctic{background:#f5f7f5}.theme-swatch.graphite{background:#343b36}.theme-option small{color:var(--muted);font-size:8px}.theme-check{color:var(--accent)}
.toast-center{position:fixed;right:16px;bottom:16px;z-index:200;display:grid;gap:8px;width:min(360px,calc(100vw - 32px))}.toast{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);box-shadow:var(--shadow-pop);border-radius:10px;padding:11px 12px;display:grid;gap:3px;animation:toastin var(--ease)}.toast b{font-size:11px}.toast span{font-size:9px;color:var(--text-2)}@keyframes toastin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.legacy-modal-host{position:fixed;inset:0;z-index:300;background:transparent}.legacy-modal-host iframe{width:100%;height:100%;border:0;background:transparent}.legacy-close-fallback{position:absolute;right:14px;top:14px;z-index:3;width:38px;height:38px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:9px}

.mobile-dock{display:none}

@media(max-width:1280px){
  :root{--sidebar-w:205px}.topbar{grid-template-columns:minmax(160px,.8fr) minmax(260px,360px) minmax(360px,1fr)}.profile-copy{display:none}.project-metric:nth-child(4),.project-metric:nth-child(5){display:none}.quick-modules{grid-template-columns:repeat(6,minmax(0,1fr))}.quick-module:nth-child(n+7){display:none}.split-workspace{grid-template-columns:minmax(480px,1fr) minmax(390px,.78fr)}
}
@media(max-width:1024px){
  :root{--sidebar-w:70px}.brand-logo{width:42px;object-fit:cover;object-position:left}.sidebar-collapse,.sidebar-search-wrap input,.sidebar-search-wrap kbd,.nav-label,.nav-section-title,.sidebar-footer .sync-card>div,.sync-check,.version-line{display:none!important}.sidebar-search-wrap{justify-content:center;padding:9px}.nav-item{justify-content:center;padding:0}.nav-icon{margin:0}.sync-card{justify-content:center;padding:10px}.topbar{grid-template-columns:auto minmax(240px,1fr) auto}.breadcrumb{display:none}.ai-pill small,.ai-pill b{display:none}.project-context{grid-template-columns:1fr}.project-metrics{overflow:auto}.project-metric{flex:1}.module-head{align-items:flex-start;flex-direction:column}.command-bar{justify-content:flex-start}.dashboard-layout,.split-workspace{grid-template-columns:1fr}.detail-panel{min-height:500px}.grid-4,.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-modules{grid-template-columns:repeat(4,minmax(0,1fr))}.quick-module:nth-child(n+5){display:none}
}
@media(max-width:720px){
  body{overflow:auto}.os-shell{display:block;height:auto;min-height:100vh}.sidebar{position:fixed;left:0;top:0;bottom:0;width:min(300px,88vw);transform:translateX(-102%);transition:transform var(--ease);z-index:200}.os-shell.mobile-menu-open .sidebar{transform:translateX(0)}.app-main{height:auto;min-height:100vh;display:block;padding-bottom:68px}.topbar{height:56px;position:sticky;top:0;grid-template-columns:auto 1fr auto;padding:0 10px;gap:8px}.mobile-nav-btn{display:grid}.topbar-center{min-width:0}.global-search{min-width:0}.global-search em{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.global-search kbd{display:none}.topbar-right{gap:5px}.topbar-right>.icon-btn:not(#themeQuickBtn),.ai-pill,.profile-copy,.profile-btn>span:last-child{display:none}.project-context{margin:8px 9px 0;padding:10px;display:block}.project-ident{display:grid;gap:8px}.project-metrics{margin-top:10px;border-top:1px solid var(--border);padding-top:8px}.project-metric{padding:2px 10px;min-width:92px}.project-metric:first-child{border-left:0}.module-head{padding:14px 11px 9px;gap:10px}.module-title-wrap h1{font-size:20px}.command-bar{width:100%;overflow:auto;flex-wrap:nowrap;padding-bottom:2px}.command-bar .btn{flex:0 0 auto}.workspace{padding:0 9px 12px}.page-stack{padding-top:9px}.dashboard-layout,.grid-2,.grid-3{grid-template-columns:1fr}.grid-4,.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-modules{grid-template-columns:repeat(4,minmax(92px,1fr));overflow:auto}.surface{border-radius:10px}.data-grid-wrap{max-width:100%;overflow:auto}.data-grid{min-width:720px}.mobile-dock{display:grid;position:fixed;left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));height:56px;z-index:70;background:var(--surface);border:1px solid var(--border);border-radius:14px;grid-template-columns:repeat(5,1fr);box-shadow:var(--shadow-pop);overflow:hidden}.mobile-dock button{border:0;background:transparent;color:var(--muted);display:grid;place-items:center;align-content:center;gap:2px}.mobile-dock button:nth-child(3){color:#111;background:var(--accent)}.mobile-dock span{font-size:16px}.mobile-dock small{font-size:8px}.detail-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-kpi:nth-child(5){grid-column:1/-1}.form-grid{grid-template-columns:1fr}.field.span-2{grid-column:auto}.drawer{width:100vw}.auth-view{grid-template-columns:1fr}.auth-brand{display:none}.auth-panel{min-height:100vh;padding:20px}.auth-card{padding:24px}.popover{left:10px!important;right:10px!important;top:60px!important;width:auto!important}.command-palette-wrap{padding:10px;align-items:flex-start}.command-palette{margin-top:45px}.chart svg{height:180px}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.photo-card{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;padding:0;overflow:hidden;text-align:left;color:var(--text);display:grid}.photo-placeholder{aspect-ratio:16/10;background:linear-gradient(135deg,var(--surface-3),var(--surface-2));display:grid;place-items:center;font-size:34px;color:var(--muted)}.photo-card b{font-size:10px;padding:9px 9px 2px}.photo-card small{font-size:8px;color:var(--muted);padding:0 9px 9px}.report-card{border:1px solid var(--border);padding:16px;display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;text-align:left;color:var(--text)}.report-card>span{width:36px;height:36px;border-radius:9px;background:var(--surface-3);display:grid;place-items:center;color:var(--accent)}.report-card div{display:grid;gap:3px}.report-card strong{font-size:11px}.report-card small{font-size:9px;color:var(--muted)}.report-card em{font-style:normal;color:var(--muted)}
@media(max-width:720px){.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

@media(max-width:1200px){.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ======================================================================
   SICOP V15.1 · SECONDARY SURFACES + LEGIBILITY + ENTERPRISE POLISH
   Consolidated Design System refinements for drawers, popovers, grids,
   controls, command palette, notices and all secondary UI surfaces.
   ====================================================================== */
:root{
  --control-h:38px;
  --control-h-compact:32px;
  --text-xs:11px;
  --text-sm:12px;
  --text-md:13px;
  --focus-ring:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent);
  --surface-hover:color-mix(in srgb,var(--surface-2) 78%,var(--text) 4%);
  --overlay:rgba(0,0,0,.54);
}
html,body{font-size:14px;line-height:1.42;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
button,input,select,textarea{letter-spacing:0}
input,select,textarea{caret-color:var(--accent)}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:none!important;box-shadow:var(--focus-ring)!important;border-color:var(--accent)!important}

/* Buttons */
.btn{min-height:34px;padding:0 11px;border-radius:8px;font-size:12px;font-weight:600;line-height:1.1;white-space:nowrap;transition:background var(--ease),border-color var(--ease),color var(--ease),transform var(--ease)}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:none}
.btn.primary{box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 62%,transparent) inset}
.icon-btn{transition:background var(--ease),color var(--ease),border-color var(--ease),transform var(--ease)}
.icon-btn:hover{transform:translateY(-1px)}

/* Main navigation / top bar readability */
.nav-label{font-size:12.5px}.nav-section-title{font-size:9.5px}.breadcrumb{font-size:12px}
.global-search{font-size:12px}.profile-copy b{font-size:11.5px}.profile-copy small{font-size:9.5px}
.project-copy small{font-size:9.5px}.project-copy strong{font-size:13px}.project-metric b{font-size:13px}.project-metric small{font-size:9px}
.module-title-wrap h1{letter-spacing:-.025em}.module-title-wrap p{font-size:11.5px;line-height:1.45}

/* Inputs / fields */
.field{gap:7px}.field label{font-size:10px;letter-spacing:.055em}.field input,.field select{height:var(--control-h);font-size:12.5px}.field textarea{min-height:112px;font-size:12.5px;line-height:1.48;padding:10px 11px}
.field input,.field select,.field textarea{border-radius:9px;transition:border-color var(--ease),background var(--ease),box-shadow var(--ease)}
.field input:hover,.field select:hover,.field textarea:hover{border-color:color-mix(in srgb,var(--border) 55%,var(--text-2) 45%)}
select{color-scheme:dark light}
html[data-theme="obsidian"] select,html[data-theme="graphite"] select{color-scheme:dark}
html[data-theme="arctic"] select{color-scheme:light}

/* Data grids */
.data-grid{font-size:12px}.data-grid thead th{font-size:9.5px;padding:10px 11px;letter-spacing:.055em}.data-grid tbody td{padding:9px 11px;color:var(--text-2);line-height:1.35}
.data-grid tbody td strong{font-size:12px}.mini-btn{width:30px;height:30px;border-radius:8px}
.data-grid tbody tr:focus-within{background:var(--row-hover)}

/* Surfaces */
.surface{border-radius:12px}.surface-head{min-height:44px;padding:0 13px}.surface-head h2{font-size:12.5px}.surface-head>span,.surface-head small{font-size:9.5px}.surface-body{padding:13px}
.status-badge{font-size:9px;letter-spacing:.045em;border-radius:999px;padding:4px 7px}

/* Drawer: OS-like side window */
.drawer-backdrop{background:var(--overlay);backdrop-filter:blur(5px)}
.drawer{width:min(600px,94vw);background:var(--surface);border-left:1px solid var(--border);box-shadow:-18px 0 70px rgba(0,0,0,.32)}
.drawer-head{min-height:58px;padding:0 16px;background:var(--surface);position:sticky;top:0;z-index:2}.drawer-head h2{font-size:16px;letter-spacing:-.015em}.drawer-head .icon-btn{width:36px;height:36px}
.drawer-body{padding:16px;scrollbar-gutter:stable}.drawer-footer{min-height:58px;padding:10px 14px;background:var(--surface-2);position:sticky;bottom:0;z-index:2;box-shadow:0 -1px 0 var(--border)}

/* Popovers / menus / dropdown panels */
.popover{background:color-mix(in srgb,var(--surface) 96%,transparent);border-color:var(--border);border-radius:13px;padding:7px;box-shadow:0 22px 70px rgba(0,0,0,.30);backdrop-filter:blur(18px)}
.menu-head{padding:10px 10px 11px}.menu-head b{font-size:12.5px}.menu-head small{font-size:10px;line-height:1.35}
.menu-item{min-height:40px;border-radius:8px;padding:0 10px;font-size:11.5px}.menu-item:hover{background:var(--surface-hover)}
.theme-option{min-height:48px;border-radius:9px;padding:7px 9px}.theme-option b{font-size:11.5px}.theme-option small{font-size:9.5px}.theme-swatch{width:27px;height:27px}
.notification-panel{width:390px}.notification-panel .alert-row{padding:10px;border-radius:9px}.notification-panel .alert-row:hover{background:var(--surface-2)}

/* Command palette */
.command-palette-wrap{background:rgba(0,0,0,.56);backdrop-filter:blur(9px)}
.command-palette{border-radius:15px;box-shadow:0 32px 100px rgba(0,0,0,.42)}
.command-search{height:60px;padding:0 16px}.command-search input{font-size:15px}.command-results{padding:8px;scrollbar-gutter:stable}.command-group-label{font-size:9px;padding:9px 10px}.command-item{min-height:48px;border-radius:9px;padding:7px 9px}.command-item b{font-size:12px}.command-item small{font-size:10px}

/* Toasts: readable and theme safe */
.toast-center{width:min(390px,calc(100vw - 28px))}.toast{border-radius:11px;padding:12px 13px;background:var(--surface);box-shadow:0 22px 60px rgba(0,0,0,.32)}.toast b{font-size:12px}.toast span{font-size:10.5px;line-height:1.42}

/* Native tooltip fallback for controls carrying title */
[title]{-webkit-tap-highlight-color:transparent}

/* Legacy modal host is a true overlay layer */
.legacy-modal-host{background:rgba(0,0,0,.02);backdrop-filter:blur(1px)}
.legacy-close-fallback{width:40px;height:40px;border-radius:10px;box-shadow:var(--shadow-pop)}

/* Compact density remains readable */
html[data-density="compact"]{--control-h:34px}.os-shell.density-compact .data-grid tbody td{padding-top:6px;padding-bottom:6px}.os-shell.density-compact .data-grid thead th{padding-top:7px;padding-bottom:7px}

@media(max-width:720px){
  :root{--control-h:44px}
  .btn{min-height:40px;font-size:12.5px}
  .field input,.field select,.field textarea{font-size:16px}
  .popover{border-radius:14px;padding:8px}
  .menu-item{min-height:44px;font-size:12.5px}
  .theme-option{min-height:54px}
  .drawer-head{min-height:56px}.drawer-body{padding:13px}.drawer-footer{min-height:64px;padding-bottom:max(10px,env(safe-area-inset-bottom))}
  .data-grid{font-size:12.5px}
}
select option{background:var(--surface);color:var(--text)}
select:disabled,input:disabled,textarea:disabled,button:disabled{opacity:.58;cursor:not-allowed}


/* ==========================================================
   SICOP V15.1.1 · APU AUTOSUMA
   ========================================================== */
.apu-grid tfoot td{
  position:sticky;
  bottom:0;
  z-index:2;
  background:var(--surface-2);
  border-top:2px solid color-mix(in srgb,var(--accent) 50%,var(--border));
  border-bottom:0;
  padding:11px 10px;
}
.apu-autosum-row td:first-child{color:var(--text)}
.apu-autosum-row td:first-child>span{display:block;font-size:9px;font-weight:800;letter-spacing:.055em;text-transform:uppercase}
.apu-autosum-row td:first-child>small{display:block;margin-top:2px;color:var(--muted);font-size:9px;font-weight:500;text-transform:none;letter-spacing:0}
.apu-autosum-row td.num strong{color:var(--accent);font-size:14px;font-variant-numeric:tabular-nums}
.apu-autosum-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:9px}
.apu-autosum-summary>div{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:10px 11px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2)}
.apu-autosum-summary span{color:var(--muted);font-size:9px;font-weight:650}
.apu-autosum-summary strong{color:var(--text);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}
.apu-autosum-summary .apu-autosum-grand{border-color:color-mix(in srgb,var(--accent) 38%,var(--border));background:var(--accent-soft)}
.apu-autosum-summary .apu-autosum-grand strong{color:var(--accent);font-size:13px}
@media(max-width:720px){.apu-autosum-summary{grid-template-columns:1fr}.apu-grid tfoot td{position:static}}

/* V15.2 · Integration Foundation */
.grid-5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.integrity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.integrity-tile{min-height:92px;border:1px solid var(--border-soft);background:var(--surface-2);border-radius:10px;padding:12px;display:grid;gap:7px;align-content:space-between}
.integrity-tile small{font-size:9px;color:var(--muted)}
.integrity-tile b{font-size:19px;letter-spacing:-.02em}
.integrity-tile span{font-size:9px;color:var(--success);font-weight:700;letter-spacing:.04em}
.integrity-tile.warn{border-color:color-mix(in srgb,var(--warning) 45%,var(--border));background:color-mix(in srgb,var(--warning) 8%,var(--surface))}
.integrity-tile.warn span{color:var(--warning)}
@media(max-width:1280px){.grid-5{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.grid-5,.integrity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.grid-5,.integrity-grid{grid-template-columns:1fr}}
/* V15.2 · Integridad de dependencias */
.notice-bar{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text)}
.notice-bar b{white-space:nowrap}.notice-bar span{color:var(--muted);font-size:13px;line-height:1.45}
.notice-bar.warn{border-color:color-mix(in srgb,var(--warning) 48%,var(--border));background:color-mix(in srgb,var(--warning) 9%,var(--surface))}
.data-grid tr.row-warn td{background:color-mix(in srgb,var(--warning) 6%,var(--surface))}
@media(max-width:720px){.notice-bar{display:block}.notice-bar b{display:block;margin-bottom:4px;white-space:normal}}

/* V15.4 Technical Core */
.technical-core-strip{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 12px;margin:0 0 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}
.technical-core-strip.warn{border-color:color-mix(in srgb,var(--warning,#d99a16) 48%,var(--border));background:color-mix(in srgb,var(--warning,#d99a16) 8%,var(--surface-2))}
.technical-core-strip>div{display:flex;flex-direction:column;gap:2px;min-width:74px}.technical-core-strip>div:first-child{min-width:125px;margin-right:auto}.technical-core-strip small,.technical-core-strip span{font-size:11px;color:var(--muted)}.technical-core-strip strong,.technical-core-strip b{font-size:12px}.row-warn{background:color-mix(in srgb,var(--warning,#d99a16) 6%,transparent)}

/* SICOP V15.6.1 · Centro de Control estable */
.control-center-actions{overflow:hidden}
.control-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px}
.control-action-grid>button{appearance:none;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:14px;min-height:82px;padding:12px;display:grid;grid-template-columns:38px minmax(0,1fr) 18px;gap:10px;align-items:center;text-align:left;cursor:pointer;transition:transform .14s ease,border-color .14s ease,background .14s ease}
.control-action-grid>button:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 42%,var(--border));background:var(--surface-3)}
.control-action-grid>button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.control-action-grid>button i{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 11%,var(--surface));color:var(--accent);font-style:normal;font-weight:800}
.control-action-grid>button span{display:grid;gap:3px;min-width:0}.control-action-grid>button b{font-size:12px}.control-action-grid>button small{font-size:10px;color:var(--muted);white-space:normal;line-height:1.35}.control-action-grid>button em{font-style:normal;color:var(--muted)}
@media(max-width:980px){.control-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.control-action-grid{grid-template-columns:1fr;padding:10px}.control-action-grid>button{min-height:70px}}
