:root{
  --bg:#f4f7fb;--surface:#fff;--line:#dfe7f1;--text:#0f2742;--muted:#6b7f96;
  --nav:#10263d;--nav2:#0b1d30;--primary:#0877e8;--primary2:#0866c8;
  --ok:#13a563;--warn:#f39a16;--shadow:0 8px 24px rgba(23,54,89,.07);
  --radius:14px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--text);background:var(--bg)}
button,input,select{font:inherit}
button{cursor:pointer}
.app-shell{min-height:100vh;display:grid;grid-template-columns:230px 1fr}
.sidebar{background:linear-gradient(180deg,var(--nav),var(--nav2));color:#d9e6f4;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0}
.brand{height:72px;padding:15px 18px;display:flex;gap:12px;align-items:center;background:#fff;color:#0d2540}
.brand-mark{width:40px;height:40px;border-radius:10px;background:#10263d;color:#fff;display:grid;place-items:center;font-weight:800}
.brand strong{display:block;color:#e53935;font-size:22px;line-height:20px}.brand span{display:block;color:#10263d;font-weight:700;font-size:16px}
.nav{padding:12px 9px;display:grid;gap:4px}.nav.secondary{padding-top:4px}
.nav-item{border:0;background:transparent;color:#d9e6f4;padding:11px 13px;border-radius:9px;text-align:left;display:flex;gap:11px;align-items:center}
.nav-item:hover,.nav-item.active{background:linear-gradient(90deg,#0d7ce8,#0965cc);color:#fff}
.nav-section{font-size:11px;letter-spacing:.08em;color:#8195aa;padding:6px 20px 2px}
.sidebar-footer{margin-top:auto;padding:18px;display:grid;gap:4px;font-size:12px}.sidebar-footer span{color:#9db0c4}.sidebar-footer small{margin-top:8px}.sidebar-footer i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ok);margin-right:7px}
.main{min-width:0}.topbar{height:68px;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}
.search{width:min(600px,55vw);height:38px;border:1px solid var(--line);border-radius:10px;padding:0 12px;display:flex;align-items:center;gap:8px;color:#8094aa}
.search input{border:0;outline:0;flex:1;color:var(--text)}kbd{background:#f2f5f9;border-radius:6px;padding:3px 8px;font-size:11px;color:#7a8da1}
.top-actions{display:flex;align-items:center;gap:10px}.top-actions button{border:0;background:transparent;font-size:18px;color:#526980}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#2d435a;color:#fff}
.content{padding:22px}.page-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:16px}.page-title h1{margin:0;font-size:25px}.page-title p{margin:4px 0 0;color:var(--muted)}
.page-actions{display:flex;gap:12px}.page-actions select,.page-actions button{height:42px;border-radius:9px;border:1px solid var(--line);padding:0 14px;background:#fff;color:var(--text)}
.primary{background:var(--primary)!important;color:#fff!important;border-color:var(--primary)!important;font-weight:700}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.hero{padding:18px 20px;display:grid;grid-template-columns:72px 1fr auto;gap:16px;align-items:center;margin-bottom:14px}.server-icon{width:64px;height:64px;border-radius:14px;background:#eef5fd;display:grid;place-items:center;font-size:30px;color:var(--primary)}
.hero-title{display:flex;align-items:center;gap:12px}.hero h2{margin:0;font-size:22px}.hero p{margin:5px 0;color:#38516b}.hero small{display:block;color:var(--muted);margin-top:4px}
.hero-actions{display:flex;gap:8px}.hero-actions button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:9px 12px;color:var(--text)}
.badge{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:700}.badge.ok{background:#dff7e9;color:#137d4e}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:14px}.center-column{min-width:0}.right-column{display:grid;align-content:start;gap:14px}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.metric{padding:17px;min-height:125px}.metric span{font-weight:700}.metric strong{display:block;font-size:25px;margin:10px 0 18px}
.spark{height:28px;background:linear-gradient(180deg,rgba(8,119,232,.10),rgba(8,119,232,.01));border-radius:8px;display:flex;align-items:end;overflow:hidden}.spark i{height:4px;background:var(--primary);border-radius:6px}
.info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:12px}.panel{padding:18px;min-height:220px}.panel h3,.right-column h3{margin:0 0 16px;font-size:15px}
.status-list,.service-list,.activity ul{list-style:none;padding:0;margin:0}.status-list{display:grid;gap:12px}.status-list b{color:var(--ok);margin-right:8px}
.big-number{font-size:28px;font-weight:800;margin:6px 0 12px}.big-number small{font-size:14px}.panel p{margin:9px 0;color:#38516b}.panel a,.activity a{display:inline-block;margin-top:12px;color:var(--primary);text-decoration:none;font-weight:700;font-size:13px}
.service-list{display:grid;gap:9px}.service-list li{display:flex;justify-content:space-between;gap:8px}.service-list em{font-style:normal;font-size:11px;background:#dff7e9;color:#137d4e;padding:3px 7px;border-radius:999px}
.storage-row{display:flex;justify-content:space-between}.progress{height:13px;background:#e7eef6;border-radius:999px;overflow:hidden;margin:16px 0 8px}.progress i{display:block;height:100%;background:var(--ok)}
.quick,.activity{padding:16px}.quick{display:grid;gap:8px}.quick h3{margin-bottom:6px}.quick button{border:0;border-radius:9px;background:#edf5ff;color:#075ea8;padding:11px;text-align:left;font-weight:700}.quick button:first-of-type{background:#28445f;color:#fff}.quick button:last-of-type{background:#fff1d9;color:#a76200}
.activity li{padding:10px 0;border-bottom:1px solid #edf1f6;display:grid;grid-template-columns:1fr auto;gap:8px}.activity li span{font-size:12px}.activity time{font-size:11px;color:#8799ab}
.workspace{margin-top:14px;overflow:hidden}.tabs{height:48px;border-bottom:1px solid var(--line);display:flex;align-items:end;padding:0 12px;gap:6px}.tab{border:0;background:transparent;padding:13px 11px 11px;color:#5f758c}.tab.active{color:var(--primary);border-bottom:2px solid var(--primary);font-weight:700}
.work-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:12px;padding:12px}.terminal,.file-card,.service-card{border:1px solid var(--line);border-radius:11px;overflow:hidden;min-height:220px}
.terminal{background:#0c1723;color:#dfe8f2}.terminal-head{padding:10px 12px;background:#152435;font-size:12px}.terminal pre{padding:16px;font-family:Consolas,monospace;font-size:12px;line-height:1.65}.terminal pre span{color:#47d379}
.file-card h4,.service-card h4{margin:0;padding:12px;background:#f7f9fc;border-bottom:1px solid var(--line)}table{width:100%;border-collapse:collapse;font-size:12px}td{padding:9px 11px;border-bottom:1px solid #edf1f6}td:last-child{text-align:right;color:#71869b}
@media(max-width:1200px){.dashboard-grid{grid-template-columns:1fr}.right-column{grid-template-columns:1fr 1fr}.kpi-grid,.info-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.app-shell{grid-template-columns:76px 1fr}.brand div:last-child,.nav-item span,.nav-section,.sidebar-footer{display:none}.brand{padding:15px 18px}.nav-item{justify-content:center;font-size:18px}.topbar{padding:0 14px}.search{width:65%}.page-title{align-items:start;gap:12px}.page-actions{flex-direction:column}.hero{grid-template-columns:56px 1fr}.hero-actions{grid-column:1/-1}.work-grid{grid-template-columns:1fr}.right-column{grid-template-columns:1fr}}
@media(max-width:620px){.content{padding:12px}.top-actions strong,.top-actions button{display:none}.page-title{display:block}.page-actions{margin-top:12px}.page-actions select,.page-actions button{width:100%}.hero{grid-template-columns:1fr}.server-icon{display:none}.kpi-grid,.info-grid{grid-template-columns:1fr}.right-column{grid-template-columns:1fr}.dashboard-grid{gap:12px}}

.service-list em.warning{background:#fff0d8;color:#a56608}

.hero-actions button:disabled{opacity:.48;cursor:not-allowed;background:#f5f7fa}
.badge:not(.ok){background:#eef2f6;color:#65798e}

.app-view{display:none}.app-view.active{display:block}
.file-toolbar{display:flex;align-items:end;gap:12px;padding:14px 16px;margin-bottom:14px;flex-wrap:wrap}
.file-toolbar label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#516981}
.file-toolbar select,.file-toolbar button{height:38px;border:1px solid var(--line);background:#fff;border-radius:8px;padding:0 11px;color:var(--text)}
.breadcrumbs{display:flex;align-items:center;gap:6px;flex:1;min-width:260px;flex-wrap:wrap}
.breadcrumbs button{border:0;background:#eef5fd;color:#0b66bb;border-radius:7px;padding:6px 9px;font-size:12px}
.breadcrumbs span{color:#98a8b8}
.file-manager-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px}
.file-browser-panel{min-width:0;overflow:hidden}
.file-browser-head{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}
.file-browser-head h3{margin:0 0 3px}.file-browser-head small{color:var(--muted)}
.file-table-wrap{overflow:auto;max-height:calc(100vh - 300px);min-height:440px}
.file-browser-table{min-width:850px}
.file-browser-table th{position:sticky;top:0;background:#f7f9fc;color:#5c7188;text-align:left;padding:10px 11px;border-bottom:1px solid var(--line);font-size:11px;letter-spacing:.02em}
.file-browser-table th:nth-child(n+2),.file-browser-table td:nth-child(n+2){white-space:nowrap}
.file-browser-table tbody tr{cursor:pointer}
.file-browser-table tbody tr:hover{background:#f6faff}
.file-browser-table tbody tr.selected{background:#eaf4ff}
.file-name-button{border:0;background:transparent;color:#133a61;padding:0;text-align:left;font-weight:700}
.file-name-button:hover{color:var(--primary);text-decoration:underline}
.file-side{display:grid;align-content:start;gap:14px;min-width:0}
.file-details,.file-preview{padding:16px}
.file-details h3,.file-preview h3{margin:0}
.file-details dl{display:grid;grid-template-columns:100px 1fr;margin:14px 0 0;gap:9px 12px;font-size:12px}
.file-details dt{color:var(--muted)}.file-details dd{margin:0;word-break:break-word}
.empty-state{color:var(--muted);font-size:13px;padding:22px 0}
.file-preview-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.file-preview pre{margin:0;background:#0c1723;color:#dfe8f2;border-radius:9px;padding:14px;max-height:390px;overflow:auto;font:12px/1.55 Consolas,monospace;white-space:pre-wrap;word-break:break-word}
.readonly-note{margin-top:14px;border:1px solid #cfe2f7;background:#edf6ff;color:#23567f;padding:12px 14px;border-radius:10px;font-size:12px}
.placeholder-card{padding:28px;max-width:760px}.placeholder-card strong{font-size:18px}.placeholder-card p{color:var(--muted);line-height:1.6}
@media(max-width:1100px){.file-manager-layout{grid-template-columns:1fr}.file-side{grid-template-columns:1fr 1fr}.file-table-wrap{max-height:none}}
@media(max-width:720px){.file-side{grid-template-columns:1fr}.file-toolbar{align-items:stretch}.file-toolbar label,.file-toolbar select,.file-toolbar button{width:100%}.breadcrumbs{min-width:100%}.file-details dl{grid-template-columns:90px 1fr}}

.services-layout{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:14px}
.services-browser{min-width:0;overflow:hidden}
.services-toolbar{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px}
.services-toolbar h3{margin:0 0 3px}.services-toolbar small{color:var(--muted)}
.services-toolbar input{height:38px;border:1px solid var(--line);border-radius:8px;padding:0 11px;min-width:220px}
.service-table-wrap{overflow:auto;min-height:480px}
.services-table{min-width:720px}.services-table th{background:#f7f9fc;color:#5c7188;text-align:left;padding:10px 11px;border-bottom:1px solid var(--line);font-size:11px}
.services-table tbody tr{cursor:pointer}.services-table tbody tr:hover{background:#f6faff}.services-table tbody tr.selected{background:#eaf4ff}
.service-side{display:grid;align-content:start;gap:14px}
.service-detail-panel,.service-journal-panel{padding:16px}
.service-detail-head,.service-journal-head{display:flex;justify-content:space-between;gap:12px;align-items:start}
.service-detail-head h3,.service-journal-head h3{margin:0}.service-detail-head small,.service-journal-head small{color:var(--muted)}
.service-detail-panel dl{display:grid;grid-template-columns:100px 1fr;gap:9px 12px;font-size:12px;margin:16px 0}
.service-detail-panel dt{color:var(--muted)}.service-detail-panel dd{margin:0}
.service-actions{display:flex;gap:8px;flex-wrap:wrap}.service-actions button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:9px 11px}
.danger-outline{border-color:#e2a6a6!important;color:#a62b2b!important;background:#fff8f8!important}.danger-outline:disabled{opacity:.45;cursor:not-allowed}
.service-journal-head select{height:34px;border:1px solid var(--line);border-radius:8px;background:#fff}
.service-journal-panel pre{margin:12px 0 0;background:#0c1723;color:#dfe8f2;border-radius:9px;padding:14px;min-height:330px;max-height:470px;overflow:auto;font:12px/1.5 Consolas,monospace;white-space:pre-wrap;word-break:break-word}
.modal-backdrop{position:fixed;inset:0;background:rgba(5,18,32,.55);z-index:100;display:grid;place-items:center;padding:20px}
.modal-backdrop[hidden]{display:none}.modal-card{width:min(520px,100%);background:#fff;border-radius:14px;box-shadow:0 30px 70px rgba(0,0,0,.24);padding:22px}
.modal-card h3{margin:0 0 10px}.modal-card p{color:#5f7489;line-height:1.5}
.restart-target{border:1px solid var(--line);background:#f7f9fc;border-radius:9px;padding:12px;display:grid;gap:5px}.restart-target span{font-size:11px;color:var(--muted)}
.modal-warning{background:#fff3df;border:1px solid #f2d39a;border-radius:9px;padding:10px 12px;color:#805100!important;font-size:12px}
.restart-result{border-radius:9px;padding:10px 12px;font-size:12px}.restart-result.ok{background:#e5f7ed;color:#18784b}.restart-result.error{background:#fff0f0;color:#a62b2b}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.modal-actions button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:9px 12px}.modal-actions .danger{background:#b93434;color:#fff;border-color:#b93434}
@media(max-width:1100px){.services-layout{grid-template-columns:1fr}.service-side{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.service-side{grid-template-columns:1fr}.services-toolbar{align-items:stretch;flex-direction:column}.services-toolbar input{min-width:0;width:100%}}

.docker-lock{padding:14px 16px;margin-bottom:14px;display:flex;justify-content:space-between;gap:16px;align-items:center;border-left:4px solid #f0a33a}
.docker-lock.ok{border-left-color:var(--ok)}.docker-lock strong{display:block;margin-bottom:4px}.docker-lock p{margin:0;color:var(--muted);font-size:12px}
.docker-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}
.docker-summary-card{padding:16px}.docker-summary-card span{display:block;font-size:12px;color:var(--muted);font-weight:700}.docker-summary-card strong{display:block;font-size:25px;margin:8px 0 4px}.docker-summary-card small{color:#6f8397}
.docker-layout{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:14px}.docker-main-panel{min-width:0;overflow:hidden}
.docker-tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);padding:0 12px}.docker-tab{border:0;background:transparent;padding:13px 12px;color:#60758a}.docker-tab.active{color:var(--primary);border-bottom:2px solid var(--primary);font-weight:700}
.docker-panel{display:none}.docker-panel.active{display:block}.docker-toolbar{display:flex;gap:10px;padding:12px;border-bottom:1px solid var(--line)}
.docker-toolbar input,.docker-toolbar select{height:38px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 10px}.docker-toolbar input{flex:1}
.docker-table-wrap{overflow:auto;min-height:480px}.docker-table{min-width:760px}.docker-table th{background:#f7f9fc;color:#5c7188;text-align:left;padding:10px 11px;border-bottom:1px solid var(--line);font-size:11px}
.docker-table tbody tr{cursor:pointer}.docker-table tbody tr:hover{background:#f6faff}.docker-table tbody tr.selected{background:#eaf4ff}
.docker-side{display:grid;align-content:start;gap:14px}.docker-detail-panel,.docker-log-panel{padding:16px}.docker-detail-head,.docker-log-head{display:flex;justify-content:space-between;gap:12px;align-items:start}
.docker-detail-head h3,.docker-log-head h3{margin:0}.docker-detail-head small,.docker-log-head small{color:var(--muted)}
.docker-detail-panel dl{display:grid;grid-template-columns:100px 1fr;gap:9px 12px;font-size:12px;margin:16px 0 0}.docker-detail-panel dt{color:var(--muted)}.docker-detail-panel dd{margin:0;word-break:break-word}
.docker-log-panel pre{margin:12px 0;background:#0c1723;color:#dfe8f2;border-radius:9px;padding:14px;min-height:330px;max-height:470px;overflow:auto;font:12px/1.5 Consolas,monospace;white-space:pre-wrap;word-break:break-word}
.docker-log-panel select{height:34px;border:1px solid var(--line);border-radius:8px;background:#fff}.docker-log-panel button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:9px 11px}
.docker-lock.blocked{background:#fff8ee}.docker-lock.blocked #docker-lock-code{background:#fff0d8;color:#9a6200}
@media(max-width:1100px){.docker-layout{grid-template-columns:1fr}.docker-side{grid-template-columns:1fr 1fr}.docker-summary-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.docker-side{grid-template-columns:1fr}.docker-summary-grid{grid-template-columns:1fr}.docker-toolbar{flex-direction:column}.docker-toolbar input,.docker-toolbar select{width:100%}}

.audit-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}
.audit-summary-card{padding:16px}.audit-summary-card span{display:block;font-size:12px;color:var(--muted);font-weight:700}.audit-summary-card strong{display:block;font-size:25px;margin:8px 0 4px}.audit-summary-card small{color:#6f8397}
.audit-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px}.audit-main-panel{min-width:0;overflow:hidden}
.audit-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) auto auto auto;gap:10px;padding:12px;border-bottom:1px solid var(--line)}
.audit-toolbar input,.audit-toolbar select{height:38px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 10px}
.audit-table-wrap{overflow:auto;min-height:500px}.audit-table{min-width:900px}.audit-table th{background:#f7f9fc;color:#5c7188;text-align:left;padding:10px 11px;border-bottom:1px solid var(--line);font-size:11px}
.audit-table tbody tr{cursor:pointer}.audit-table tbody tr:hover{background:#f6faff}.audit-table tbody tr.selected{background:#eaf4ff}
.audit-side{display:grid;align-content:start;gap:14px}.audit-detail-panel,.audit-info-panel{padding:16px}.audit-detail-head{display:flex;justify-content:space-between;gap:12px;align-items:start}
.audit-detail-head h3,.audit-info-panel h3{margin:0}.audit-detail-head small{color:var(--muted)}
.audit-detail-panel dl{display:grid;grid-template-columns:100px 1fr;gap:9px 12px;font-size:12px;margin:16px 0 0}.audit-detail-panel dt{color:var(--muted)}.audit-detail-panel dd{margin:0;word-break:break-word}
.audit-decision-allow{color:#137d4e;font-weight:700}.audit-decision-deny{color:#a62b2b;font-weight:700}
@media(max-width:1100px){.audit-layout{grid-template-columns:1fr}.audit-side{grid-template-columns:1fr 1fr}.audit-summary-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.audit-toolbar{grid-template-columns:1fr 1fr}.audit-side{grid-template-columns:1fr}}
@media(max-width:620px){.audit-toolbar{grid-template-columns:1fr}.audit-summary-grid{grid-template-columns:1fr}}

.terminal-session-banner{padding:14px 16px;margin-bottom:14px;display:flex;justify-content:space-between;align-items:center;gap:16px;border-left:4px solid #aebdca}
.terminal-session-banner.active{border-left-color:var(--ok);background:#f4fbf7}.terminal-session-banner.expired{border-left-color:#e0a03b;background:#fff9ef}
.terminal-session-banner strong{display:block;margin-bottom:4px}.terminal-session-banner p{margin:0;color:var(--muted);font-size:12px}
.terminal-session-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:14px;margin-bottom:14px}
.terminal-session-panel,.terminal-policy-panel{padding:16px}.terminal-session-head{display:flex;align-items:start;justify-content:space-between;gap:14px}
.terminal-session-head h3,.terminal-policy-panel h3,.terminal-history-head h3{margin:0}.terminal-session-head small,.terminal-history-head small{color:var(--muted)}
.terminal-session-actions{display:flex;gap:8px;flex-wrap:wrap}.terminal-session-actions button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:9px 11px}
.terminal-session-actions .primary{background:var(--primary);border-color:var(--primary);color:#fff}.terminal-session-actions button:disabled{opacity:.45;cursor:not-allowed}
.terminal-session-panel dl{display:grid;grid-template-columns:130px 1fr;gap:9px 12px;font-size:12px;margin:18px 0 0}.terminal-session-panel dt{color:var(--muted)}.terminal-session-panel dd{margin:0;word-break:break-all}
.terminal-console-panel{overflow:hidden;margin-bottom:14px}.terminal-console-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 15px;background:#111e2c;color:#dce8f3}
.terminal-console-head div{display:grid;gap:3px}.terminal-console-head small{color:#88a0b6}.terminal-console-panel pre{margin:0;background:#08131f;color:#d7e5f0;padding:18px;min-height:330px;max-height:480px;overflow:auto;font:12px/1.55 Consolas,monospace;white-space:pre-wrap}
.terminal-input-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:10px 12px;background:#0c1824;color:#88a0b6;border-top:1px solid #203346}
.terminal-input-row input{height:38px;background:#111f2e;border:1px solid #2a4055;border-radius:7px;color:#d7e5f0;padding:0 10px}.terminal-input-row button{height:38px;border:1px solid #31495f;background:#182b3d;color:#7f96aa;border-radius:7px;padding:0 12px}
.terminal-history-panel{overflow:hidden}.terminal-history-head{padding:15px 17px;border-bottom:1px solid var(--line)}.terminal-history-wrap{overflow:auto}.terminal-history-table{min-width:960px}
.terminal-history-table th{background:#f7f9fc;color:#5c7188;text-align:left;padding:10px 11px;border-bottom:1px solid var(--line);font-size:11px}.terminal-history-table td{font-size:12px}
.terminal-state-active{color:#137d4e;font-weight:700}.terminal-state-ended{color:#65798e;font-weight:700}.terminal-state-expired{color:#9a6200;font-weight:700}
@media(max-width:980px){.terminal-session-grid{grid-template-columns:1fr}}
@media(max-width:680px){.terminal-session-head{flex-direction:column}.terminal-session-actions{width:100%}.terminal-session-actions button{flex:1}.terminal-session-panel dl{grid-template-columns:110px 1fr}}

body.auth-locked{overflow:hidden}.auth-locked .app-shell{display:none}
.auth-gate{position:fixed;inset:0;z-index:200;background:#edf3f8;display:grid;place-items:center;padding:24px}
.auth-gate[hidden]{display:none}.auth-card{width:min(470px,100%);background:#fff;border:1px solid #dce5ed;border-radius:16px;box-shadow:0 28px 70px rgba(18,40,61,.16);padding:26px}
.auth-brand{display:flex;align-items:center;gap:12px;padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:20px}.auth-brand>div:last-child{display:grid;gap:2px}.auth-brand span{font-size:12px;color:var(--muted)}
.auth-step h1{font-size:24px;margin:0 0 8px}.auth-step>p{color:var(--muted);line-height:1.55;margin:0 0 18px}.auth-step label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#516981;margin-bottom:13px}
.auth-step input{height:42px;border:1px solid var(--line);border-radius:9px;padding:0 11px;font-size:14px}.auth-step button{height:42px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:0 14px}.auth-step button.primary{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:700}
.auth-step pre{background:#0c1723;color:#dce8f2;padding:13px;border-radius:9px;white-space:pre-wrap;word-break:break-word;font:12px/1.5 Consolas,monospace}.auth-step small{display:block;color:var(--muted);line-height:1.5;margin-bottom:14px}
.auth-form-actions{display:flex;justify-content:space-between;gap:10px}.auth-form-actions button{flex:1}.auth-error{background:#fff0f0;color:#9d2d2d;border:1px solid #efc5c5;border-radius:8px;padding:10px 11px;font-size:12px;margin-bottom:12px}
.auth-card footer{border-top:1px solid var(--line);margin-top:22px;padding-top:14px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:#7890a5;font-size:10px}
.logout-button{font-size:17px}.identity-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);gap:14px;margin-bottom:14px}.identity-profile,.identity-permissions{padding:17px}
.identity-profile-head{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}.identity-avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#e9f3ff;color:#0b66bb;font-weight:800;font-size:20px}.identity-profile-head h3{margin:0}.identity-profile-head p{margin:3px 0 0;color:var(--muted);font-size:12px}
.identity-profile dl{display:grid;grid-template-columns:120px 1fr;gap:9px 12px;font-size:12px;margin:18px 0 0}.identity-profile dt{color:var(--muted)}.identity-profile dd{margin:0;word-break:break-word}
.identity-permissions h3{margin:0 0 14px}.permission-list{display:flex;flex-wrap:wrap;gap:8px}.permission-list span{background:#eef5fd;border:1px solid #d9e8f7;color:#245b85;padding:7px 9px;border-radius:8px;font-size:11px;font-weight:700}
.web-session-panel{overflow:hidden}.web-session-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:15px 17px;border-bottom:1px solid var(--line)}.web-session-head h3{margin:0}.web-session-head small{color:var(--muted)}
.web-session-table-wrap{overflow:auto}.web-session-table{min-width:1050px}.web-session-table th{background:#f7f9fc;color:#5c7188;text-align:left;padding:10px 11px;border-bottom:1px solid var(--line);font-size:11px}.web-session-table td{font-size:12px}.web-session-table button{border:1px solid #e0b7b7;background:#fff8f8;color:#9a3333;border-radius:7px;padding:6px 8px}
@media(max-width:900px){.identity-grid{grid-template-columns:1fr}}@media(max-width:560px){.auth-gate{padding:12px}.auth-card{padding:20px}.auth-form-actions{flex-direction:column}.identity-profile dl{grid-template-columns:100px 1fr}}

.user-admin-panel{overflow:hidden;margin-bottom:14px}
.user-admin-head{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:15px 17px;border-bottom:1px solid var(--line)}
.user-admin-head h3{margin:0}.user-admin-head small{color:var(--muted)}
.user-admin-head .primary{border:1px solid var(--primary);background:var(--primary);color:#fff;border-radius:8px;padding:9px 12px;font-weight:700}
.user-directory-wrap{overflow:auto}.user-directory-table{min-width:980px}
.user-directory-table th{background:#f7f9fc;color:#5c7188;text-align:left;padding:10px 11px;border-bottom:1px solid var(--line);font-size:11px}
.user-directory-table td{font-size:12px;vertical-align:middle}
.user-directory-user{display:grid;gap:2px}.user-directory-user strong{font-size:12px}.user-directory-user span{font-size:10px;color:var(--muted)}
.user-role-control{display:flex;gap:6px;align-items:center}.user-role-control select{height:32px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:0 7px}
.user-directory-actions{display:flex;gap:6px;flex-wrap:wrap}.user-directory-actions button,.user-role-control button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:6px 8px;font-size:11px}
.user-directory-actions .danger{border-color:#e4b5b5;color:#a52f2f;background:#fff8f8}.user-directory-actions .success{border-color:#b8dec9;color:#18784b;background:#f4fbf7}
.user-directory-actions button:disabled,.user-role-control button:disabled,.user-role-control select:disabled{opacity:.45;cursor:not-allowed}
.user-status-active{color:#137d4e;font-weight:700}.user-status-disabled{color:#a62b2b;font-weight:700}.user-status-locked{color:#9a6200;font-weight:700}
.user-modal-card{width:min(620px,100%)}.user-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.user-form-grid label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#516981}.user-form-grid input,.user-form-grid select{height:40px;border:1px solid var(--line);border-radius:8px;padding:0 10px;background:#fff}
.user-form-grid label:last-child{grid-column:2}.enrollment-card{width:min(620px,100%)}.enrollment-block{display:grid;gap:7px;margin:14px 0}.enrollment-block span{font-size:11px;color:var(--muted);font-weight:700}
.enrollment-block code,.enrollment-block pre{margin:0;background:#0c1723;color:#dce8f2;border-radius:8px;padding:12px;font:12px/1.5 Consolas,monospace;white-space:pre-wrap;word-break:break-all;max-height:240px;overflow:auto}
@media(max-width:680px){.user-admin-head{flex-direction:column;align-items:stretch}.user-form-grid{grid-template-columns:1fr}.user-form-grid label:last-child{grid-column:auto}}
