:root{--navy:#001220;--surface:#06202e;--raised:#0a2c3e;--hair:rgba(0,180,216,.18);--cyan:#00b4d8;--cyan2:#7fdff2;
 --amber:#f4a11d;--ink:#e8f2f7;--muted:#8fa9b8;--ok:#2ec27e;--warn:#f4a11d;--crit:#ff5d63;
 --body:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--mono:ui-monospace,Menlo,Consolas,monospace}
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(900px 500px at 50% -10%,rgba(0,180,216,.10),transparent 60%),var(--navy);
 color:var(--ink);font-family:var(--body);line-height:1.55}
a{color:var(--cyan)} .muted{color:var(--muted)} .small{font-size:.85rem}
.err{color:var(--crit);background:rgba(255,93,99,.1);border:1px solid rgba(255,93,99,.4);border-radius:8px;padding:.5rem .7rem}
.brand{font-weight:800;letter-spacing:.14em;font-size:1.1rem} .brand span{color:var(--cyan)}
/* auth */
.auth{max-width:380px;margin:8vh auto;background:var(--surface);border:1px solid var(--hair);border-radius:16px;padding:26px 24px}
.auth h1{font-size:1.3rem;margin:.4rem 0 1rem}
.auth label{display:block;font-size:.8rem;color:var(--muted);margin:.7rem 0 .25rem}
.auth input{width:100%;padding:.6rem .7rem;background:var(--navy);border:1px solid var(--hair);border-radius:9px;color:var(--ink)}
.pwd{display:flex;gap:6px}.pwd button{background:var(--raised);border:1px solid var(--hair);border-radius:9px;color:var(--ink);cursor:pointer;padding:0 .6rem}
.pri{margin-top:1rem;width:100%;padding:.7rem;background:var(--cyan);color:#00131d;border:none;border-radius:9px;font-weight:700;cursor:pointer}
.pri:hover{background:var(--cyan2)}
/* app */
header.top{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1.2rem;border-bottom:1px solid var(--hair);
 position:sticky;top:0;background:rgba(0,18,32,.9);backdrop-filter:blur(10px);z-index:10}
header .who{font-family:var(--mono);font-size:.78rem;color:var(--muted);display:flex;gap:.7rem;align-items:center}
.wrap{max-width:1040px;margin:0 auto;padding:1.2rem}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:1rem}
.tab{font-family:var(--mono);font-size:.8rem;padding:.5rem .9rem;border-radius:9px;border:1px solid var(--hair);color:var(--muted);
 background:transparent;cursor:pointer}
.tab.on{color:#00131d;background:var(--cyan2);border-color:var(--cyan2);font-weight:700}
.grid2{display:grid;gap:16px}@media(min-width:760px){.grid2{grid-template-columns:1fr 1fr}}
.card{background:var(--surface);border:1px solid var(--hair);border-radius:14px;padding:16px}
.card h2{font-size:1rem;margin:0 0 .7rem}
.field{margin:.55rem 0}.field label{display:block;font-size:.78rem;color:var(--muted);margin-bottom:.2rem}
.field .help{font-size:.72rem;color:var(--muted);margin-top:.15rem}
.field input,.field select{width:100%;padding:.5rem .6rem;background:var(--navy);border:1px solid var(--hair);border-radius:8px;color:var(--ink);font-family:var(--mono);font-size:.85rem}
.row3{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.btn{font-family:var(--mono);font-size:.78rem;padding:.55rem .8rem;border-radius:9px;border:1px solid var(--hair);color:var(--ink);background:transparent;cursor:pointer}
.btn.pri{background:var(--cyan);color:#00131d;border-color:var(--cyan);font-weight:700}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btnrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:.8rem}
.res{display:flex;justify-content:space-between;gap:10px;font-family:var(--mono);font-size:.85rem;padding:.4rem 0;border-bottom:1px dashed var(--hair)}
.res b{color:var(--cyan2)}
.chip{display:flex;gap:.5rem;align-items:flex-start;font-size:.82rem;padding:.5rem .6rem;border-radius:9px;border:1px solid var(--hair);margin:.4rem 0}
.dot{width:.6rem;height:.6rem;border-radius:50%;margin-top:.35rem;flex:0 0 auto}
.st-ok .dot{background:var(--ok)}.st-warn .dot{background:var(--warn)}.st-crit .dot{background:var(--crit)}.st-info .dot{background:var(--cyan)}
.st-ok{border-color:rgba(46,194,126,.4)}.st-warn{border-color:rgba(244,161,29,.4)}.st-crit{border-color:rgba(255,93,99,.4)}
.chip .crit-txt{color:var(--muted);font-size:.72rem;display:block;margin-top:.15rem}
table{width:100%;border-collapse:collapse;font-size:.8rem;font-family:var(--mono)}
th,td{padding:.4rem .5rem;border-bottom:1px solid var(--hair);text-align:right}th:first-child,td:first-child{text-align:left}
thead th{color:var(--muted);font-weight:600;font-size:.72rem}
.hist-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:.6rem .2rem;border-bottom:1px solid var(--hair)}
.hist-item .nm{font-weight:600}.hist-item .meta{font-family:var(--mono);font-size:.72rem;color:var(--muted)}
.searchbar{display:flex;gap:8px;margin-bottom:.8rem}.searchbar input,.searchbar select{padding:.5rem .6rem;background:var(--navy);border:1px solid var(--hair);border-radius:8px;color:var(--ink)}
.toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:var(--raised);border:1px solid var(--hair);border-radius:10px;padding:.6rem 1rem;font-size:.85rem;opacity:0;transition:opacity .3s;z-index:50}
.toast.show{opacity:1}
.hidden{display:none}
