:root{
  --bg:#f3f6f5;--surface:#fff;--ink:#17282e;--muted:#65757b;--line:#dce5e2;
  --brand:#153640;--brand-2:#285d67;--soft:#eaf0ee;--ok:#21684f;--warn:#8a6116;--danger:#953b3b;
  --shadow:0 10px 28px rgba(18,47,55,.07);--radius:16px
}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif}
button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(280px,480px) 1fr;background:var(--surface)}
.login-panel{display:flex;align-items:center;padding:48px}.login-box{width:100%;max-width:390px;margin:auto}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--brand-2)}
.login-box h1{font-size:30px;letter-spacing:-.035em;margin:10px 0 8px}.login-box>p{color:var(--muted);line-height:1.55;margin:0 0 28px}
.login-aside{background:var(--brand);color:#fff;padding:58px;display:flex;align-items:flex-end;position:relative;overflow:hidden}.login-aside:after{content:"";position:absolute;width:420px;height:420px;border:1px solid rgba(255,255,255,.1);border-radius:50%;right:-120px;top:-100px}.aside-copy{max-width:560px;position:relative;z-index:1}.aside-copy h2{font-size:38px;letter-spacing:-.04em;line-height:1.08;margin:0 0 16px}.aside-copy p{opacity:.75;line-height:1.65;margin:0}
.field{display:grid;gap:7px;margin-bottom:15px}.field label{font-size:13px;font-weight:750}.field input,.field textarea,.field select{width:100%;padding:13px 14px;border:1px solid #cbd8d4;border-radius:11px;background:#fff;color:var(--ink);outline:none}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--brand-2);box-shadow:0 0 0 3px rgba(40,93,103,.12)}
.btn{border:0;border-radius:11px;padding:12px 16px;font-weight:760;transition:.15s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:#0d2a33}.btn-secondary{background:var(--soft);color:var(--brand)}.btn-danger{background:#f6e9e9;color:var(--danger)}.btn-block{width:100%}.error{background:#faecec;color:#7f2929;border:1px solid #efcccc;padding:12px;border-radius:11px;margin-bottom:15px;font-size:13px}
.topbar{background:var(--brand);color:#fff;position:sticky;top:0;z-index:10}.topbar-inner{max-width:1180px;margin:auto;padding:16px 20px;display:flex;justify-content:space-between;align-items:center;gap:18px}.brand{font-weight:780;letter-spacing:-.02em}.brand small{display:block;font-size:12px;font-weight:500;opacity:.66;margin-top:3px}.toolbar{display:flex;align-items:center;gap:10px}.user-label{font-size:12px;opacity:.82;text-align:right}.user-label strong{display:block;font-size:13px;color:#fff}
.container{max-width:1180px;margin:auto;padding:26px 20px 80px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px}.page-head h1{margin:0;font-size:27px;letter-spacing:-.035em}.page-head p{margin:6px 0 0;color:var(--muted)}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.metric{padding:17px}.metric strong{font-size:26px;display:block}.metric span{color:var(--muted);font-size:12px;margin-top:4px;display:block}
.tabs{display:flex;gap:7px;margin:24px 0 13px;overflow:auto}.tab{border:1px solid var(--line);background:#fff;color:var(--muted);padding:9px 13px;border-radius:99px;font-weight:750;white-space:nowrap}.tab.active{background:var(--brand);border-color:var(--brand);color:#fff}
.env-list{display:grid;gap:11px}.env-card{padding:17px;display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center}.env-card h3{margin:0 0 5px;font-size:17px}.meta{font-size:13px;color:var(--muted)}.tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.tag{font-size:11px;font-weight:800;padding:5px 8px;border-radius:99px;background:#edf2f1;color:#41555b}.tag.critical{background:#f7e7e7;color:#8b3030}.tag.semi{background:#f8efd9;color:#76520f}.tag.normal{background:#e5f1ec;color:#285a49}.status-line{margin-top:10px;font-size:12px;font-weight:760}.status-line.ok{color:var(--ok)}.status-line.warn{color:var(--warn)}.status-line.muted{color:var(--muted)}.actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.section-title{display:flex;justify-content:space-between;align-items:center;margin:27px 0 11px}.section-title h2{font-size:18px;margin:0}.notice{padding:15px;margin-bottom:10px;display:flex;justify-content:space-between;gap:16px}.notice strong{display:block;font-size:14px}.notice p{margin:4px 0 0;color:var(--muted);font-size:13px}.notice time{font-size:11px;color:var(--muted);white-space:nowrap}.empty{padding:24px;text-align:center;color:var(--muted)}
.modal{position:fixed;inset:0;background:rgba(8,23,28,.56);display:grid;place-items:end center;padding:18px;z-index:30}.modal-card{width:min(620px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:18px;padding:22px;box-shadow:0 22px 80px rgba(0,0,0,.24)}.modal-card h2{margin:0 0 6px;letter-spacing:-.025em}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;flex-wrap:wrap}.checklist{display:grid;gap:9px;margin:16px 0}.check{display:flex;align-items:flex-start;gap:10px;padding:11px;border:1px solid var(--line);border-radius:11px}.check input{margin-top:3px}.history-item{padding:12px 0;border-bottom:1px solid var(--line)}.history-item:last-child{border-bottom:0}.history-item strong{font-size:13px}.history-item p{margin:5px 0 0;color:var(--muted);font-size:12px}.privacy-note{margin-top:16px;padding:12px;background:#eef3f2;border-radius:11px;color:#52666c;font-size:12px;line-height:1.5}
@media(max-width:820px){.login-page{grid-template-columns:1fr}.login-aside{display:none}.login-panel{padding:28px 20px}.metrics{grid-template-columns:repeat(2,1fr)}.env-card{grid-template-columns:1fr}.actions{justify-content:flex-start}.page-head{align-items:flex-start;flex-direction:column}.user-label{display:none}}
@media(max-width:460px){.metrics{grid-template-columns:1fr 1fr}.container{padding:20px 14px 70px}.topbar-inner{padding:14px}.btn{padding:11px 13px}.env-card{padding:15px}.modal{padding:8px}.modal-card{border-radius:16px 16px 8px 8px}}
