:root{
  --bg-color:#eff1f5;
  --text-color:#4c4f69;
  --muted-color:#7c7f93;
  --sidebar-bg:#e6e9ef;
  --panel-bg:#f7f8fb;
  --content-bg:#ffffff;
  --sidebar-border:#ccd0da;
  --border-color:#dce0e8;
  --accent-color:#2f5d50;
  --accent-contrast:#ffffff;
  --hover-color:#dce0e8;
  --shadow-color:rgba(76,79,105,.10);
  --danger-color:#d20f39;
  --ok-color:#40a02b;
  --blue-color:#1e66f5;
  --cyan-color:#04a5e5;
  --orange-color:#fe640b;
  --radius:8px;
  --font-main:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --font-mono:"Cascadia Mono","JetBrains Mono","SFMono-Regular",Consolas,"Liberation Mono",monospace;
}
:root[data-theme="dark"]{
  --bg-color:#1e1e2e;
  --text-color:#cdd6f4;
  --muted-color:#a6adc8;
  --sidebar-bg:#181825;
  --panel-bg:#1e1e2e;
  --content-bg:#11111b;
  --sidebar-border:#313244;
  --border-color:#313244;
  --accent-color:#7aa095;
  --accent-contrast:#11111b;
  --hover-color:#45475a;
  --shadow-color:rgba(0,0,0,.28);
  --danger-color:#f38ba8;
  --ok-color:#a6e3a1;
  --blue-color:#89b4fa;
  --cyan-color:#89dceb;
  --orange-color:#fab387;
}
*{box-sizing:border-box}
html{background:var(--bg-color);color:var(--text-color)}
body{margin:0;min-height:100vh;background:var(--bg-color);color:var(--text-color);font-family:var(--font-main);font-size:15px;line-height:1.5}
a{color:var(--accent-color);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
.topbar{display:flex;flex-direction:column;gap:14px;width:280px;position:fixed;inset:0 auto 0 0;padding:14px 14px 18px;background:var(--sidebar-bg);color:var(--text-color);border-right:1px solid var(--sidebar-border);z-index:20;transition:transform .16s ease}
.shell-brand-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 -2px 10px}
.shell-controls{display:flex;gap:6px;align-items:center}
.sidebar-toggle{width:38px;padding-left:0;padding-right:0}
.brand{font-weight:800;color:var(--text-color);text-decoration:none;white-space:nowrap}
.topbar nav{display:flex;flex-direction:column;gap:3px}
.topbar nav a{color:var(--text-color);text-decoration:none;border-radius:6px;padding:7px 9px;font-weight:650}
.topbar nav a:hover{background:var(--hover-color);text-decoration:none}
.topbar-actions{display:flex;gap:8px;align-items:center;margin-left:auto}
.logout{display:flex;gap:8px;align-items:center;margin:auto 0 0;padding-top:14px;border-top:1px solid var(--sidebar-border)}
.logout span{color:var(--muted-color)}
.statusbar{display:flex;flex-direction:column;gap:5px;padding:12px 9px;background:transparent;border-top:1px solid var(--sidebar-border);border-bottom:1px solid var(--sidebar-border);color:var(--muted-color);font-size:13px}
.contentbar{display:flex;align-items:center;justify-content:center;position:fixed;top:0;left:280px;right:0;height:50px;background:var(--bg-color);border-bottom:1px solid var(--sidebar-border);z-index:16;color:var(--muted-color);font-size:14px}
.shell-open-toggle{display:none;position:absolute;left:12px;top:7px;width:38px;padding-left:0;padding-right:0}
main{padding:20px;max-width:1760px;margin:auto}
.has-shell main{margin-left:280px;padding-top:70px}
.has-shell.sidebar-collapsed .topbar{transform:translateX(-280px)}
.has-shell.sidebar-collapsed .contentbar{left:0}
.has-shell.sidebar-collapsed main{margin-left:0}
.has-shell.sidebar-collapsed .shell-open-toggle{display:inline-flex}
button,.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--accent-color);color:var(--accent-contrast);border:1px solid transparent;border-radius:6px;padding:8px 12px;min-height:36px;font:inherit;font-weight:650;text-decoration:none;cursor:pointer;transition:background .12s ease,border-color .12s ease,transform .12s ease}
button:hover,.button:hover{filter:brightness(.98);text-decoration:none;transform:translateY(-1px)}
.button.secondary,.secondary-button,.theme-toggle{background:transparent;color:var(--text-color);border-color:var(--sidebar-border)}
.button.secondary:hover,.secondary-button:hover,.theme-toggle:hover{background:var(--hover-color)}
.button.muted{background:var(--hover-color);color:var(--muted-color);border-color:var(--sidebar-border)}
input,textarea,select{border:1px solid var(--sidebar-border);border-radius:6px;padding:9px 10px;font:inherit;background:var(--content-bg);color:var(--text-color);outline:none}
input:focus,textarea:focus,select:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-color) 20%,transparent)}
textarea{min-height:140px}
h1,h2,h3{letter-spacing:0;color:var(--text-color)}
h1,h2{margin-top:0}
pre,code{font-family:var(--font-mono)}
pre{white-space:pre-wrap;word-break:normal;overflow-wrap:break-word;background:var(--panel-bg);border:1px solid var(--border-color);border-radius:6px;padding:12px;color:var(--text-color)}
article,section>form,.login-panel,.document,.proposal,.cards li,.case-list li{background:var(--content-bg);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:0 8px 24px var(--shadow-color)}
article,section>form,.login-panel,.document,.proposal{padding:18px}
.stack{display:flex;flex-direction:column;gap:12px}
.grid.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.6fr);gap:18px}
.table{display:grid;border:1px solid var(--border-color);background:var(--content-bg);border-radius:var(--radius);overflow:hidden}
.row{display:grid;grid-template-columns:90px 130px 1fr 130px;gap:10px;padding:9px 12px;border-bottom:1px solid var(--border-color);color:var(--text-color);text-decoration:none}
.row:hover{background:var(--hover-color);text-decoration:none}
.row.head{font-weight:800;background:var(--sidebar-bg)}
.row.source-head,.row.source-row{grid-template-columns:minmax(0,1fr) 120px 100px}
.page-toolbar{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center;margin-bottom:14px;background:var(--content-bg);border:1px solid var(--border-color);border-radius:var(--radius);padding:10px 12px;box-shadow:0 8px 24px var(--shadow-color)}
.numbering-top-form{background:transparent;border:0;padding:0;margin:0;box-shadow:none}
.numbering-toolbar{display:grid;grid-template-columns:1fr;gap:10px;position:sticky;top:104px;z-index:10;padding:12px}
.numbering-header{display:grid;grid-template-columns:minmax(310px,1fr) auto minmax(80px,1fr);gap:12px;align-items:center}
.numbering-workbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(300px,420px) minmax(340px,1fr);gap:18px;align-items:end;border-top:1px solid var(--border-color);padding-top:10px}
.numbering-input-bar{display:grid;grid-template-columns:170px minmax(180px,240px) minmax(280px,1fr);gap:12px;align-items:end}
.numbering-input-bar label,.card-number-label,.compact-note,.numbering-jump label,.jump-page{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:800;color:var(--muted-color)}
.numbering-input-bar label input{font-size:16px;font-weight:400}
.numbering-card-center{display:flex;flex-direction:column;align-items:center;gap:6px;justify-self:center}
.card-number-label{align-items:center;text-align:center}
.checkline{display:flex;flex-direction:row;align-items:center;gap:8px;align-self:center;font-size:13px;font-weight:800;color:var(--muted-color)}
.checkline input{width:18px;height:18px}
.numbering-side-actions{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:10px;align-items:end;justify-self:end;min-width:0;max-width:560px}
.compact-note{min-width:0}
.compact-note input{min-width:0;width:100%;font-size:14px}
.numbering-jump,.numbering-save{display:flex;gap:8px;align-items:end}
.numbering-save{background:var(--panel-bg);border:1px solid var(--border-color);border-radius:var(--radius);padding:4px}
.toolbar-group{display:flex;gap:8px;align-items:center;min-width:0}
.toolbar-group.right{justify-content:flex-end}
.page-title{min-width:260px;text-align:center}
.page-title h1{font-size:18px;line-height:1.15;margin:0}
.page-title span{display:block;color:var(--muted-color);font-size:12px;margin-top:3px;max-width:460px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.icon-button{width:40px;padding-left:0;padding-right:0;font-size:20px;line-height:1}
.jump-input{width:78px;padding:8px}
.jump-page{flex-direction:row;align-items:center}
.jump-page input{width:74px;padding:8px}
.viewer{display:grid;grid-template-columns:minmax(420px,.85fr) minmax(560px,1.15fr);gap:18px}
.numbering-layout{display:grid;grid-template-columns:minmax(560px,1fr) minmax(440px,.72fr);gap:18px}
.scan{background:#11111b;border:1px solid var(--border-color);border-radius:var(--radius);overflow:auto;max-height:calc(100vh - 206px)}
.scan img{display:block;width:100%;height:auto}
.ocr,.numbering-panel{background:var(--content-bg);border:1px solid var(--border-color);border-radius:var(--radius);padding:14px;max-height:calc(100vh - 206px);overflow:auto;box-shadow:0 8px 24px var(--shadow-color)}
.numbering-panel label{display:flex;flex-direction:column;gap:6px;font-weight:800}
.numbering-panel label input{font-weight:400}
.big-number-input{font-size:34px!important;font-weight:850!important;max-width:190px;text-align:center}
.big-number-input.suggested-number{color:var(--muted-color);background:var(--panel-bg);border-color:var(--sidebar-border)}
.ocr pre{margin-top:0}
.ocr pre,.markdown-view pre{font-size:14px;line-height:1.45}
.markdown-body{background:var(--content-bg);border:1px solid var(--border-color);border-radius:var(--radius);padding:20px;line-height:1.62}
.markdown-body h1,.markdown-body h2,.markdown-body h3{margin:18px 0 8px}
.markdown-body p{margin:8px 0}
.markdown-body a{color:var(--blue-color);font-weight:750}
.markdown-table{width:100%;border-collapse:collapse;margin:12px 0;background:var(--content-bg)}
.markdown-table td{border:1px solid var(--border-color);padding:8px;vertical-align:top}
.markdown-table tr:first-child td{font-weight:800;background:var(--sidebar-bg)}
.vault-shell{display:grid;grid-template-columns:300px minmax(600px,900px) 280px;gap:18px;align-items:start;justify-content:center;margin:-2px auto 0}
.vault-sidebar,.vault-rightbar{position:sticky;top:70px;max-height:calc(100vh - 90px);overflow:auto;background:var(--sidebar-bg);border:1px solid var(--sidebar-border);border-radius:0;padding:16px;box-shadow:none}
.vault-rightbar{font-size:14px}
.vault-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding-bottom:14px;border-bottom:1px solid var(--sidebar-border)}
.vault-panel-head small{display:block;color:var(--muted-color);font-size:12px;line-height:1.25;max-width:180px}
.vault-panel-head h1{font-size:28px;margin:2px 0 0}
.vault-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin:16px 0}
.vault-search input{min-width:0;background:transparent;border-color:var(--sidebar-border)}
.vault-search button{padding-left:12px;padding-right:12px}
.vault-tree h2,.vault-rightbar h2{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-color);margin:18px 0 7px}
.vault-tree a,.vault-rightbar a{display:block;color:var(--text-color);text-decoration:none;border-radius:6px;padding:7px 8px;margin:2px 0;border:1px solid transparent}
.vault-tree a:hover,.vault-rightbar a:hover{background:var(--hover-color);text-decoration:none}
.vault-tree a.active{background:var(--hover-color);border-color:var(--sidebar-border);color:var(--accent-color)}
.vault-tree span{display:block;font-weight:800;line-height:1.25}
.vault-tree small{display:block;color:var(--muted-color);font-size:12px;line-height:1.35;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vault-document{min-width:0;background:transparent;border:0;padding:0;box-shadow:none}
.vault-doc-top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px;padding:4px 0 2px}
.vault-doc-top h1{margin:6px 0 0;font-size:30px;line-height:1.12}
.vault-path{display:inline-flex;color:var(--muted-color);background:var(--sidebar-bg);border:1px solid var(--sidebar-border);border-radius:6px;padding:4px 7px;font-size:12px}
.vault-document .markdown-body{border:0;border-radius:0;padding:34px 42px;background:transparent;box-shadow:none;font-size:16px;line-height:1.72}
.vault-document .markdown-body h1{font-size:36px;line-height:1.12;margin:8px 0 22px}
.vault-document .markdown-body h2{font-size:24px;line-height:1.25;margin:34px 0 10px;padding-top:10px;border-top:1px solid var(--sidebar-border)}
.vault-document .markdown-body h3{font-size:18px;line-height:1.3;margin:24px 0 8px}
.vault-document .markdown-body ul,.vault-document .markdown-body ol{padding-left:24px}
.vault-document .markdown-body li{margin:5px 0}
.vault-document .markdown-body pre{background:var(--sidebar-bg);border-color:var(--sidebar-border)}
.vault-document .markdown-body a{color:var(--accent-color);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.vault-rightbar section+section{border-top:1px solid var(--sidebar-border);margin-top:16px;padding-top:16px}
.vault-rightbar p{color:var(--muted-color);margin:8px 0}
.vault-rightbar a{line-height:1.35;padding:7px 8px}
.outline-l2{padding-left:18px!important}
.outline-l3{padding-left:30px!important;font-size:13px}
.comment,.event{border-left:3px solid var(--accent-color);background:var(--content-bg);padding:10px 12px;margin:10px 0;border-radius:0 6px 6px 0}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;padding:0}
.cards li{list-style:none;padding:14px}
.cards small{display:block;color:var(--muted-color);margin-top:6px}
.search{display:flex;gap:8px;margin:12px 0}
.search input{flex:1}
.inline{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.document{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.editor textarea{min-height:62vh}
.actions{display:flex;gap:12px;flex-wrap:wrap}
.error{color:var(--danger-color);font-weight:800}
.case-list{display:grid;gap:10px;padding:0}
.case-list li{list-style:none;display:flex;justify-content:space-between;gap:12px;background:var(--content-bg);padding:12px}
.case-list a{font-weight:800;color:var(--text-color);text-decoration:none}
.case-list a:hover{color:var(--accent-color)}
.case-list small{color:var(--muted-color)}
.portal-home{max-width:1100px;margin:0 auto}
.home-heading{border-bottom:1px solid var(--sidebar-border);padding:8px 0 20px;margin-bottom:18px}
.home-heading h1{font-size:42px;margin:0 0 8px}
.home-heading p{color:var(--muted-color);max-width:760px}
.case-dashboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}
.case-tile{display:flex;flex-direction:column;gap:16px}
.case-tile h2{font-size:21px;margin-bottom:4px}
.case-tile small{color:var(--muted-color)}
.case-metrics{display:flex;gap:8px;flex-wrap:wrap}
.case-metrics span{background:var(--sidebar-bg);border:1px solid var(--sidebar-border);border-radius:999px;padding:4px 8px;color:var(--muted-color);font-size:13px}
@media(max-width:1180px){
  .vault-shell{grid-template-columns:280px minmax(0,1fr)}
  .vault-rightbar{display:none}
}
@media(max-width:1000px){
  main{padding:14px}
  .grid.two,.viewer,.numbering-layout,.page-toolbar,.numbering-toolbar,.numbering-header,.numbering-workbar,.numbering-input-bar,.numbering-side-actions,.vault-shell{grid-template-columns:1fr}
  .numbering-toolbar,.vault-sidebar,.vault-rightbar{position:static;max-height:none}
  .vault-rightbar{display:block}
  .vault-document .markdown-body{padding:22px 4px}
  .numbering-card-center,.numbering-side-actions{justify-self:stretch}
  .numbering-jump,.numbering-save{justify-content:center;flex-wrap:wrap}
  .has-shell main{margin-left:0;padding-top:14px}
  .contentbar{position:static;height:auto;padding:10px 14px}
  .topbar{width:auto;position:static;align-items:stretch}
  .topbar nav{flex-direction:row;flex-wrap:wrap}
  .topbar-actions{margin-left:0}
  .statusbar{position:static}
  .row{grid-template-columns:70px 100px 1fr}
  .row.source-head,.row.source-row{grid-template-columns:1fr}
  .toolbar-group,.toolbar-group.right{justify-content:center}
  .page-title{min-width:0}
}
