:root{--bg:#0b0f14;--panel:#121821;--panel2:#18202b;--line:#263140;--text:#edf2f7;--muted:#8fa0b3;--accent:#43d17d;--danger:#ff6b6b;--warn:#f7c948;--blue:#5aa9ff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 Inter,Segoe UI,Arial,sans-serif}.shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}aside{background:#0d131b;border-right:1px solid var(--line);padding:22px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;margin-bottom:32px}.mark{width:42px;height:42px;border-radius:12px;background:var(--accent);color:#06130b;display:grid;place-items:center;font-weight:900}.brand strong,.brand small{display:block}.brand small{color:var(--muted);font-size:11px}nav{display:grid;gap:8px}nav a,.aside-bottom a{color:var(--muted);text-decoration:none;padding:10px 12px;border-radius:9px}nav a:hover{background:var(--panel);color:var(--text)}.aside-bottom{margin-top:auto;display:grid;gap:6px;color:var(--muted)}main{padding:28px 34px}.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.top h1{margin:0;font-size:25px}.top p{margin:4px 0 0;color:var(--muted)}.grid{display:grid;gap:16px}.grid.cols3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols2{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px}.card h2,.card h3{margin-top:0}.stat strong{font-size:27px;display:block}.stat span,.muted{color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--panel2);color:var(--text);padding:9px 13px;border-radius:9px;text-decoration:none;cursor:pointer;font-weight:600}.btn.primary{background:var(--accent);border-color:var(--accent);color:#06130b}.btn.danger{background:#35191b;border-color:#6a2c31;color:#ffb0b0}.btn.blue{background:#142a42;border-color:#29557f;color:#b7daff}.actions{display:flex;gap:8px;flex-wrap:wrap}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field label{color:#bec9d5;font-weight:600}.field input,.field select,.field textarea{width:100%;background:#0d131b;border:1px solid var(--line);color:var(--text);border-radius:9px;padding:10px 11px}.field textarea{min-height:160px;font-family:Consolas,monospace}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:11px 10px;border-bottom:1px solid var(--line);text-align:left}.table th{color:var(--muted);font-size:12px;text-transform:uppercase}.badge{display:inline-block;border-radius:999px;padding:4px 8px;background:#1c2835;color:#c8d4df;font-size:12px}.badge.ok{background:#123321;color:#80eda8}.badge.off{background:#382024;color:#ffabab}.badge.warn{background:#3d3216;color:#ffe18a}.flash{padding:12px 14px;border-radius:10px;margin-bottom:14px;background:#132a20;border:1px solid #24583c}.flash.error{background:#35191b;border-color:#6a2c31}.code{font-family:Consolas,monospace;background:#0a1016;border:1px solid var(--line);padding:10px;border-radius:8px;overflow:auto}.tabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.tabs a{text-decoration:none;color:var(--muted);border:1px solid var(--line);padding:8px 11px;border-radius:8px}.tabs a.active{color:#07130c;background:var(--accent);border-color:var(--accent)}.split{display:flex;justify-content:space-between;align-items:center;gap:16px}.login-wrap{max-width:420px;margin:8vh auto}.notice{background:#13202e;border:1px solid #29435d;border-radius:10px;padding:12px;color:#b9d7f5}.danger-text{color:#ff9898}.small{font-size:12px}@media(max-width:900px){.shell{grid-template-columns:1fr}aside{display:none}main{padding:20px}.grid.cols3,.grid.cols2,.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}}
.grid.cols4{grid-template-columns:repeat(4,minmax(0,1fr))}.good{color:#80eda8}.bad{color:#ff9b9b}.file-list{max-height:540px;overflow:auto;border:1px solid var(--line);border-radius:10px}.file-list .table{margin:0}.file-list .table th{position:sticky;top:0;background:var(--panel2);z-index:1}@media(max-width:1100px){.grid.cols4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.grid.cols4{grid-template-columns:1fr}}
