:root{--navy:#0F172A;--blue:#0B3D91;--tech:#2E86FF;--green:#22C55E;--mint:#A7F3D0;--bg:#F1F5F9;--card:#fff;--text:#0F172A;--muted:#64748B;--line:#E2E8F0;--danger:#DC2626;--warn:#F59E0B;--info:#2E86FF;--sidebar:#07172d;--shadow:0 14px 42px rgba(15,23,42,.08);--radius:16px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Poppins,Inter,"Segoe UI",Arial,sans-serif;color:var(--text);background:var(--bg)}button,input,textarea,select{font:inherit}.hidden{display:none!important}button{cursor:pointer}.page{min-height:100vh}.brand-symbol{width:48px;height:60px;display:block}.brand-symbol svg{width:100%;height:100%}.brand-word{font-weight:800;letter-spacing:.03em;color:var(--navy);font-size:28px;line-height:1}.tagline{color:#5b6b83;font-size:13px;margin-top:5px}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#8aa0bc;font-weight:700}.btn{height:42px;border:1px solid var(--line);border-radius:10px;padding:0 16px;font-weight:700;background:#fff;color:var(--text)}.btn.primary{background:linear-gradient(135deg,var(--blue),var(--tech));border-color:transparent;color:#fff}.btn.success{background:#eafaf0;border-color:#c9f2d7;color:#15733a}.btn.danger{background:#fff1f2;border-color:#fecdd3;color:#b91c1c}.btn:disabled{opacity:.6;cursor:not-allowed}.field{display:flex;flex-direction:column;gap:7px}.field label{font-size:12px;font-weight:700;color:#334155}.field input,.field textarea,.field select{width:100%;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#0f172a;padding:11px 12px;outline:none;transition:.15s}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--tech);box-shadow:0 0 0 3px rgba(46,134,255,.12)}.field textarea{min-height:116px;resize:vertical}.checkrow{display:flex;align-items:center;gap:9px;font-size:13px;color:#334155}.checkrow input{width:16px;height:16px}.notice{padding:11px 13px;border-radius:10px;font-size:12px;margin-top:12px}.notice.ok{background:#ecfdf3;color:#166534;border:1px solid #bbf7d0}.notice.err{background:#fff1f2;color:#b91c1c;border:1px solid #fecdd3}.notice.info{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}
.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(340px,43%) 1fr;background:#eef4fb}.login-brand{position:relative;overflow:hidden;padding:52px;display:flex;flex-direction:column;justify-content:space-between;color:#fff;background:radial-gradient(circle at 20% 10%,rgba(46,134,255,.42),transparent 28%),linear-gradient(160deg,#0c356c 0%,#07172d 68%)}.login-brand:after{content:"";position:absolute;inset:auto -10% -20% 0;height:46%;background:radial-gradient(ellipse at center,rgba(34,197,94,.24),transparent 68%)}.login-brand .brand-head{display:flex;align-items:center;gap:15px;position:relative;z-index:1}.login-brand .brand-head .brand-word{color:#fff;font-size:36px}.login-brand .tagline{color:#d8e6fb}.login-copy{position:relative;z-index:1;margin-top:auto;margin-bottom:36px}.login-copy h1{font-size:48px;line-height:1.05;margin:0 0 16px;max-width:520px}.login-copy p{color:#c8d7eb;max-width:520px;font-size:16px;line-height:1.7}.login-points{display:flex;gap:18px;flex-wrap:wrap;color:#dbeafe;font-size:12px}.login-main{display:grid;place-items:center;padding:36px}.login-card{width:min(560px,100%);background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:32px}.login-card h2{margin:0;font-size:26px}.login-card .sub{color:var(--muted);font-size:13px;margin:7px 0 24px}.login-form{display:grid;gap:16px}.login-btn{width:100%;margin-top:4px}.pre-health{margin-top:24px;border:1px solid var(--line);background:#f8fbff;border-radius:14px;padding:14px}.health-mini-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:10px}.health-mini{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px}.health-mini strong{display:block;font-size:14px;margin-top:5px}.health-mini small{font-size:10px;color:var(--muted)}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:var(--green);margin-right:6px}.dot.warn{background:var(--warn)}.dot.bad{background:var(--danger)}.login-foot{display:flex;justify-content:space-between;gap:12px;color:#94a3b8;font-size:11px;margin-top:18px}
.shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{background:linear-gradient(180deg,#081a31,#061526);color:#fff;min-height:100vh;display:flex;flex-direction:column;padding:18px 14px}.side-brand{display:flex;gap:10px;align-items:center;padding:4px 8px 22px}.side-brand .brand-symbol{width:32px;height:42px}.side-brand strong{font-size:19px;letter-spacing:.04em}.side-brand small{display:block;color:#8fa8c6;font-size:9px;margin-top:2px}.nav-title{font-size:9px;color:#6f86a4;text-transform:uppercase;letter-spacing:.13em;padding:8px 10px}.nav{display:grid;gap:5px}.nav button{border:0;background:transparent;color:#c8d8eb;border-radius:9px;text-align:left;padding:10px 12px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:10px}.nav button:hover{background:#0d2848}.nav button.active{background:linear-gradient(90deg,#0b55b4,#1479ed);color:#fff}.nav .ico{width:22px;text-align:center}.side-foot{margin-top:auto;border-top:1px solid #173150;padding:15px 8px 4px;color:#7993b1;font-size:10px}.main{min-width:0}.topbar{height:66px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:sticky;top:0;z-index:10}.top-left{display:flex;align-items:center;gap:14px}.crumb{font-size:12px;color:var(--muted)}.top-actions{display:flex;align-items:center;gap:9px}.status-pill{font-size:11px;font-weight:700;padding:8px 11px;border-radius:999px;background:#ecfdf3;color:#15803d;border:1px solid #bbf7d0}.iconbtn{width:38px;height:38px;border:1px solid var(--line);border-radius:10px;background:#fff}.avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--tech));color:#fff;display:grid;place-items:center;font-weight:800}.content{padding:26px;max-width:1680px;margin:0 auto}.pagehead{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:20px}.pagehead h1{margin:0;font-size:27px}.pagehead p{margin:5px 0 0;color:var(--muted);font-size:13px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 5px 22px rgba(15,23,42,.04)}.metric{padding:18px}.metric-top{display:flex;align-items:center;justify-content:space-between}.metric-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#eff6ff;color:#1d4ed8;font-weight:800}.metric-icon.green{background:#ecfdf3;color:#15803d}.metric-icon.warn{background:#fffbeb;color:#b45309}.metric-icon.purple{background:#f5f3ff;color:#6d28d9}.metric .label{font-size:11px;color:var(--muted);font-weight:700}.metric .value{font-size:22px;font-weight:800;margin-top:8px}.metric .sub{font-size:11px;color:var(--muted);margin-top:5px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.section-card{padding:20px}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-title h3{font-size:15px;margin:0}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quick{border:1px solid var(--line);border-radius:11px;background:#f8fafc;padding:13px;text-align:left}.quick strong{display:block;font-size:12px}.quick small{color:var(--muted);font-size:10px}.activity{display:grid;gap:12px}.activity-item{display:grid;grid-template-columns:34px 1fr;gap:10px}.activity-icon{width:30px;height:30px;border-radius:9px;background:#ecfdf3;color:#15803d;display:grid;place-items:center;font-size:12px}.activity-item strong{font-size:12px}.activity-item small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.form-card{padding:22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid.one{grid-template-columns:1fr}.form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.tab{display:none}.tab.active{display:block}.logbox{background:#07172d;color:#cfe2ff;border-radius:12px;padding:14px;max-height:460px;overflow:auto;font:11px/1.55 Consolas,monospace;white-space:pre-wrap}.log-toolbar{display:grid;grid-template-columns:minmax(220px,1.6fr) 150px 150px minmax(190px,1fr) auto auto;gap:10px;align-items:end}.log-toolbar .field{gap:4px}.log-toolbar input,.log-toolbar select{height:40px;padding:8px 10px}.log-layout{display:grid;grid-template-columns:1fr;gap:14px}.log-config{display:none;margin-top:14px}.log-config.open{display:block}.log-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--card);max-height:calc(100vh - 397px)}.log-table{width:100%;border-collapse:collapse;min-width:1050px;font-size:12px}.log-table th{position:sticky;top:0;z-index:2;background:#f8fafc;color:#475569;text-align:left;padding:11px 10px;border-bottom:1px solid var(--line);font-size:10px;text-transform:uppercase;letter-spacing:.04em}.log-table td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top}.log-table tr:hover td{background:#f8fbff}.log-level{display:inline-flex;align-items:center;justify-content:center;min-width:54px;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:800;text-transform:uppercase}.log-level.info{background:#eff6ff;color:#1d4ed8}.log-level.warn{background:#fffbeb;color:#b45309}.log-level.error,.log-level.fatal{background:#fff1f2;color:#b91c1c}.log-level.debug,.log-level.trace{background:#f5f3ff;color:#6d28d9}.log-msg{max-width:520px;white-space:normal;word-break:break-word}.log-detail{margin-top:6px;border:1px solid var(--line);border-radius:8px;background:#07172d;color:#dbeafe;padding:9px;font:10px/1.45 Consolas,monospace;white-space:pre-wrap;max-height:220px;overflow:auto}.log-summary{display:flex;gap:14px;align-items:center;color:var(--muted);font-size:11px;flex-wrap:wrap}.dark .log-table th{background:#0d1727}.dark .log-table tr:hover td{background:#0d1727}.system-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.kv{border:1px solid var(--line);border-radius:11px;padding:13px}.kv small{color:var(--muted);display:block;font-size:10px}.kv strong{display:block;margin-top:4px;font-size:12px;word-break:break-all}
body.dark{--bg:#0b1220;--card:#111c2e;--text:#e5edf7;--muted:#93a4ba;--line:#25344a}.dark .topbar,.dark .field input,.dark .field textarea,.dark .field select,.dark .btn,.dark .iconbtn,.dark .health-mini{background:#111c2e;color:#e5edf7}.dark .quick,.dark .pre-health{background:#0d1727}.dark .field label{color:#cbd5e1}
@media(max-width:1080px){.cards{grid-template-columns:repeat(2,1fr)}.login-page{grid-template-columns:1fr}.login-brand{min-height:320px}.login-copy h1{font-size:36px}.shell{grid-template-columns:78px 1fr}.side-brand strong,.side-brand small,.nav button span:not(.ico),.nav-title,.side-foot{display:none}.side-brand{justify-content:center}.nav button{justify-content:center;padding:11px}.sidebar{padding-left:8px;padding-right:8px}}
@media(max-width:1100px){.log-toolbar{grid-template-columns:1fr 1fr 1fr}.log-toolbar .log-search{grid-column:1/-1}}
@media(max-width:760px){.login-brand{display:none}.login-main{padding:18px}.cards,.grid2,.form-grid,.system-grid{grid-template-columns:1fr}.topbar{padding:0 14px}.content{padding:16px}.shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-260px;width:250px;z-index:30}.health-mini-grid{grid-template-columns:repeat(2,1fr)}}

/* Utility classes moved from inline markup */
.mt-0{margin-top:0}
.mt-14{margin-top:14px}
.mt-16{margin-top:16px}
.mt-18{margin-top:18px}
.flex-row-gap-8{display:flex;gap:8px}
.flex-1{flex:1}
.text-sm-strong{font-size:12px;font-weight:800}
.inline-link{cursor:pointer;color:var(--blue);font-weight:700;margin-top:5px}


/* Storage console */
.storage-root-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end}
.storage-root-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.storage-disk-summary{margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:#f8fbff;display:flex;justify-content:space-between;gap:14px;align-items:center;font-size:12px;color:var(--muted)}
.storage-disk-summary strong{color:var(--text);word-break:break-all}
.storage-table-wrap{margin-top:14px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.storage-table{width:100%;border-collapse:collapse;min-width:1050px;font-size:12px}
.storage-table th{background:#f8fafc;color:#475569;text-align:left;padding:11px 10px;border-bottom:1px solid var(--line);font-size:10px;text-transform:uppercase;letter-spacing:.04em}
.storage-table td{padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.storage-table tr:last-child td{border-bottom:0}
.storage-table tr:hover td{background:#f8fbff}
.storage-table code{font:11px/1.4 Consolas,monospace;color:#1d4ed8;background:#eff6ff;padding:4px 7px;border-radius:7px}
.storage-effective-path{max-width:520px;word-break:break-all;color:var(--muted)}
.status-ok{color:#15803d;font-weight:700}
.status-bad{color:#b91c1c;font-weight:700}
.btn-small{padding:7px 10px;font-size:11px;min-height:auto}
.storage-permission-panel{margin-top:14px;border:1px solid var(--line);border-radius:12px;padding:15px;background:#fbfdff}
.permission-summary{display:flex;gap:16px;flex-wrap:wrap;font-size:12px}
.permission-summary>span{display:flex;gap:5px;align-items:center}
.acl-list{display:grid;gap:6px;margin-top:12px}
.acl-row{display:grid;grid-template-columns:minmax(220px,.8fr) 1.2fr;gap:12px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:11px}
.acl-row strong{word-break:break-all}
.acl-row span{color:var(--muted);word-break:break-all}
.muted-small{font-size:11px;color:var(--muted)}

.modal-backdrop{position:fixed;inset:0;background:rgba(2,8,23,.58);display:grid;place-items:center;padding:24px;z-index:100}
.modal-backdrop.hidden{display:none}
.modal-card{width:min(900px,96vw);max-height:88vh;overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:0 28px 90px rgba(2,8,23,.28);padding:20px}
.modal-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:14px}
.modal-head h3{margin:0;font-size:18px}.modal-head p{margin:5px 0 0;color:var(--muted);font-size:12px}
.directory-pathbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center}
.directory-pathbar input{height:40px;border:1px solid var(--line);border-radius:9px;padding:0 11px;background:#f8fafc;color:var(--text)}
.directory-list{margin-top:12px;border:1px solid var(--line);border-radius:11px;overflow:auto;max-height:430px}
.directory-row{width:100%;border:0;border-bottom:1px solid var(--line);background:var(--card);display:grid;grid-template-columns:28px minmax(170px,.45fr) 1fr;gap:8px;align-items:center;text-align:left;padding:10px 12px;color:var(--text)}
.directory-row:last-child{border-bottom:0}.directory-row:hover{background:#f8fbff}.directory-row small{color:var(--muted);word-break:break-all}
.folder-icon{color:#f59e0b;font-size:17px}.directory-empty{padding:24px;text-align:center;color:var(--muted);font-size:12px}
.directory-permission{margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#f8fbff;display:flex;gap:16px;flex-wrap:wrap;font-size:11px;color:var(--muted)}
.directory-permission strong{color:var(--text)}
.migration-paths{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin:6px 0 16px}
.migration-paths>div:not(.migration-arrow){border:1px solid var(--line);border-radius:11px;padding:13px;background:#f8fbff;min-width:0}
.migration-paths small{display:block;color:var(--muted);font-size:10px;margin-bottom:5px}
.migration-paths strong{display:block;word-break:break-all;font-size:12px}
.migration-arrow{font-size:22px;color:var(--blue);font-weight:800}.modal-actions{justify-content:flex-end}

/* Dark-mode additions for storage and modals */
.dark .storage-disk-summary,.dark .storage-permission-panel,.dark .directory-pathbar input,.dark .directory-permission,.dark .migration-paths>div:not(.migration-arrow){background:#0d1727}
.dark .storage-table th{background:#0d1727}.dark .storage-table tr:hover td{background:#0d1727}.dark .storage-table code{background:#132641;color:#7db6ff}.dark .acl-row{background:#0d1727}.dark .directory-row{background:#111c2e}.dark .directory-row:hover{background:#0d1727}

@media(max-width:900px){
  .storage-root-grid{grid-template-columns:1fr}
  .storage-root-actions{justify-content:flex-start}
  .directory-pathbar{grid-template-columns:1fr}
  .directory-row{grid-template-columns:28px 1fr}.directory-row small{grid-column:2}
  .migration-paths{grid-template-columns:1fr}.migration-arrow{transform:rotate(90deg);text-align:center}
  .acl-row{grid-template-columns:1fr}
}


/* Final console viewport, storage browser and brand refinements */
html,body{height:100%;overflow:hidden}
.shell{height:100vh;min-height:0;overflow:hidden}
.sidebar{height:100vh;min-height:0;overflow:hidden}
.nav{min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:2px}
.side-foot{margin-top:auto;flex:0 0 auto}
.main{height:100vh;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.topbar{flex:0 0 70px}
.content{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;width:100%;max-width:none;margin:0;padding:26px 30px 34px}
.side-brand{min-height:62px}
.side-logo{width:36px;height:46px;object-fit:contain;display:block;flex:0 0 auto}
.storage-table-wrap{max-height:calc(100vh - 390px);overflow:auto}
.storage-table th{position:sticky;top:0;z-index:2}
.directory-modal{display:flex;flex-direction:column;max-height:min(760px,88vh);overflow:hidden}
.directory-list{flex:1;min-height:180px;max-height:none}
.directory-roots{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 10px}
.root-chip{height:32px;min-width:48px;border:1px solid var(--line);border-radius:8px;background:#f8fafc;color:var(--text);padding:0 11px;font:600 11px/1 Poppins,Inter,"Segoe UI",Arial,sans-serif;cursor:pointer}
.root-chip:hover,.root-chip.active{border-color:var(--blue);background:#eff6ff;color:#1d4ed8}
.system-product{display:flex;align-items:center;gap:14px;padding:16px 18px;margin-bottom:14px}
.system-product img{width:42px;height:52px;object-fit:contain}
.system-product strong{display:block;font-size:16px}.system-product span{display:block;color:var(--muted);font-size:11px;margin-top:3px}
.system-product-state{margin-left:auto}.system-product-state .status-pill{color:#15803d}
.system-card{margin-bottom:0}
.dark .root-chip{background:#0d1727}.dark .root-chip:hover,.dark .root-chip.active{background:#132641;color:#7db6ff}
@media(max-width:1080px){.side-logo{width:30px;height:38px}.content{padding:22px}.storage-table-wrap{max-height:calc(100vh - 360px)}}
@media(max-width:760px){html,body{overflow:auto}.shell,.main{height:auto;min-height:100vh;overflow:visible}.content{overflow:visible}.topbar{position:sticky;top:0;z-index:20}.system-product-state{display:none}}
