:root{
  --bg:#07111f;
  --paper:#f8fafc;
  --line:#26354f;
  --line-light:#cbd5e1;
  --head:#e8eef5;
  --side:#0f172a;
  --side2:#111c31;
  --side3:#172a46;
  --text:#0f172a;
  --muted:#64748b;
  --accent:#0f766e;
  --accent2:#115e59;
  --accent-bright:#2dd4bf;
  --ok:#15803d;
  --bad:#b91c1c;
  --warn:#a16207;
  --white:#ffffff;
  --soft:#eef2f7;
}
*{box-sizing:border-box;min-width:0}
html,body{margin:0;width:100%;max-width:100%;overflow-x:hidden}
body{background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:1.45}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
button,input,select{font:inherit}
.shell{min-height:100vh;display:grid;grid-template-columns:280px minmax(0,1fr);align-items:start}
.sidebar{background:var(--side);color:#dbeafe;padding:16px 13px;border-right:1px solid var(--line);min-height:100vh;position:sticky;top:0}
.brand,.eyebrow{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#94a3b8;font-weight:700}
.brand{margin-bottom:10px}
.module-title{font-size:27px;color:#fff;font-weight:700;line-height:1.05;margin:0 0 8px}
.module-sub{font-size:12px;color:#b7c7dc;margin:0 0 14px;line-height:1.4}
.status-box{background:var(--side2);border:1px solid var(--line);padding:12px;margin-bottom:12px}
.status-label,.side-title{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8;font-weight:700}
.status-main{font-size:27px;font-weight:700;color:#fff;margin-top:3px}
.status-small{color:#b7c7dc;font-size:12px;margin-top:2px}
.side-section{margin-top:16px}.side-title{margin-bottom:6px}
.side-link,.filter-link,.backend-link{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#dbeafe;background:var(--side2);border:1px solid var(--line);padding:7px 8px;margin-bottom:4px;font-size:12px;line-height:1.25;overflow-wrap:anywhere}
.side-link:hover,.filter-link:hover,.backend-link:hover{background:var(--side3);border-color:var(--accent-bright);color:#fff;text-decoration:none}
.side-link.active,.filter-link.active{background:var(--side3);border-color:var(--accent-bright);color:#fff;font-weight:700}
.filter-link b{font-size:11px;color:#94a3b8}
.backend-link{justify-content:center;margin-top:10px;font-weight:700}
.system-line{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding:7px 1px;color:#b7c7dc;font-size:12px}.system-line b{color:#fff;font-weight:700;text-align:right}
.main{padding:14px}.paper{background:var(--paper);border:1px solid var(--line);min-height:calc(100vh - 28px);box-shadow:0 1px 2px rgba(0,0,0,.22)}
.topbar{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:16px 18px;border-bottom:1px solid var(--line-light);background:#fff}.topbar h2{font-size:24px;margin:0 0 4px}.meta{color:var(--muted);font-size:13px;overflow-wrap:anywhere}
.top-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.status-pill{border:1px solid var(--accent);color:var(--accent2);padding:5px 8px;font-size:11px;font-weight:700;letter-spacing:.08em}
.mobile-menu{display:none;border:1px solid var(--line-light);background:#fff;padding:6px 8px;margin:0 0 10px;cursor:pointer}
.content{padding:14px}
.btn,button{appearance:none;border:1px solid var(--line-light);background:#fff;color:var(--text);padding:8px 11px;cursor:pointer;border-radius:2px;display:inline-flex;align-items:center;justify-content:center}.btn:hover,button:hover{background:var(--soft);text-decoration:none}.primary{background:var(--accent);color:#fff;border-color:var(--accent2)}.primary:hover{background:var(--accent2)}
.searchbar{border:1px solid var(--line-light);background:#fff;padding:12px;margin-bottom:14px;display:grid;grid-template-columns:minmax(260px,1fr) 160px 170px auto auto;gap:8px}.searchbar input,.searchbar select,.form-grid input,.login-form input{border:1px solid var(--line-light);background:#fff;padding:9px;width:100%;color:var(--text)}.searchbar input:focus,.searchbar select:focus,.form-grid input:focus,.login-form input:focus{outline:2px solid rgba(45,212,191,.25);border-color:var(--accent)}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0 0 14px}.metric-card{border:1px solid var(--line-light);background:#fff;padding:10px}.metric-card span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:5px}.metric-card strong{display:block;font-size:23px}
.section-block{border:1px solid var(--line-light);background:#fff}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line-light);background:var(--head);padding:10px 12px}.section-head h3{font-size:14px;text-transform:uppercase;letter-spacing:.04em;margin:0}.section-head span{font-size:12px;color:var(--muted)}
.file-list{display:block}.file-row{display:grid;grid-template-columns:minmax(250px,.9fr) minmax(320px,1.35fr) minmax(210px,.75fr);gap:12px;padding:10px 12px;border-bottom:1px solid #e2e8f0;align-items:start}.file-row:last-child{border-bottom:0}.file-row:hover{background:#f8fafc}.file-row-head{background:#f1f5f9;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;padding-top:8px;padding-bottom:8px}.file-row-head:hover{background:#f1f5f9}.file-title-cell{display:flex;gap:9px;align-items:flex-start}.type-badge{display:inline-flex;align-items:center;justify-content:center;min-width:55px;border:1px solid var(--line-light);background:#eef2f7;color:#334155;font-size:10px;font-weight:700;padding:4px 6px}.file-title{font-size:15px;font-weight:700;color:var(--text);line-height:1.3}.file-title:hover{color:var(--accent)}.file-meta-cell p{margin:0 0 8px;color:#334155}.file-action-cell{display:flex;flex-direction:column;align-items:flex-start;gap:5px}.device-name{font-weight:700}.path{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.badges{display:flex;gap:5px;flex-wrap:wrap}.badge{border:1px solid #cbd5e1;background:#f8fafc;padding:2px 6px;font-size:11px;color:#475569}.openlink{font-weight:700;margin-top:2px}.empty{padding:28px;text-align:center;color:var(--muted);background:#fff}
.footer{border-top:1px solid var(--line-light);background:#f8fafc;color:#64748b;padding:12px 18px;font-size:12px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.notice{border:1px solid;padding:10px 12px;margin:0 0 14px}.notice.danger{border-color:#ef9a9a;background:#fff5f5;color:#8a2525}.notice.success{border-color:#8faf95;background:#f4faf5;color:#1f5b2a}
.login-body,.install-body{min-height:100vh;background:var(--bg);display:grid;place-items:center;padding:18px}.login-shell{width:min(430px,100%)}.install-shell{width:min(820px,100%)}.login-panel,.install-panel{background:#fff;border:1px solid var(--line);padding:22px}.login-panel h1,.install-panel h1{font-size:30px;margin:4px 0 6px}.lead{margin:0 0 18px;color:var(--muted)}.login-form{display:grid;gap:12px}.login-form label,.form-grid label{display:grid;gap:5px;font-size:12px;font-weight:700;color:#334155}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.span-2{grid-column:1/-1}.steps{margin:12px 0 0;padding-left:20px}.steps li{margin:7px 0}.token-box{border:1px solid var(--line-light);background:#f8fafc;padding:12px}.token-box span{display:block;font-size:11px;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.token-box code{display:block;overflow-wrap:anywhere;font-size:13px}
.document-shell{min-height:100vh;background:var(--paper)}.document-top{position:sticky;top:0;z-index:3;background:#fff;border-bottom:1px solid var(--line-light);padding:12px 18px;display:grid;grid-template-columns:auto 1fr;gap:15px;align-items:start}.document-top h1{font-size:21px;margin:2px 0 0}.document-main{display:grid;grid-template-columns:300px minmax(0,1fr);align-items:start}.document-meta{background:var(--side);color:#dbeafe;min-height:calc(100vh - 72px);padding:14px;position:sticky;top:72px}.meta-block{border-bottom:1px solid var(--line);padding:9px 0}.meta-block span{display:block;color:#94a3b8;font-size:10px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.meta-block strong,.meta-block code{display:block;color:#fff;overflow-wrap:anywhere;font-size:12px}.document-content{padding:14px;max-width:1100px}.text-chunk{background:#fff;border:1px solid var(--line-light);margin-bottom:10px}.text-chunk header{display:flex;justify-content:space-between;gap:10px;background:var(--head);border-bottom:1px solid var(--line-light);padding:7px 10px;font-size:11px;color:var(--muted)}.text-chunk h2{font-size:16px;margin:0;padding:11px 12px 0}.chunk-text{padding:12px;line-height:1.62;white-space:normal;overflow-wrap:anywhere}.chunk-text mark,.text-chunk h2 mark{background:#fde68a;padding:0 1px}.pagination{display:flex;justify-content:center;align-items:center;gap:8px;padding:12px}.pagination a,.pagination span{border:1px solid var(--line-light);background:#fff;padding:7px 10px}
@media(max-width:1050px){.searchbar{grid-template-columns:1fr 1fr}.searchbar input{grid-column:1/-1}.metric-grid{grid-template-columns:repeat(2,1fr)}.file-row{grid-template-columns:1fr 1.2fr}.file-action-cell{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr auto;align-items:center}}
@media(max-width:820px){.shell{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:min(310px,88vw);z-index:20;transform:translateX(-105%);transition:transform .2s ease;box-shadow:8px 0 24px rgba(0,0,0,.35)}.sidebar.open{transform:translateX(0)}.main{padding:8px}.paper{min-height:calc(100vh - 16px)}.mobile-menu{display:inline-flex}.topbar{padding:12px}.document-main{grid-template-columns:1fr}.document-meta{position:static;min-height:auto}.document-top{position:static;grid-template-columns:1fr}.document-content{padding:9px}}
@media(max-width:620px){.searchbar{grid-template-columns:1fr}.searchbar input{grid-column:auto}.metric-grid{grid-template-columns:1fr 1fr}.file-row,.file-row-head{grid-template-columns:1fr}.file-row-head{display:none}.file-action-cell{grid-column:auto;display:flex}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.footer{display:block}.footer span{display:block;margin-bottom:5px}.login-panel,.install-panel{padding:16px}.document-content{padding:6px}.chunk-text{padding:10px}.metric-card strong{font-size:20px}}
