:root{--bg:#f4f7fb;--panel:#fff;--panel2:#f8fafc;--line:#d7e0e8;--text:#17202a;--muted:#6b7a89;--accent:#0f766e;--accent2:#0b5f59;--soft:#e8f5f3;--danger:#b42318;--dangerSoft:#fff0ee;--ok:#138a4b;--okSoft:#eaf7ef;--amber:#a15c00;--amberSoft:#fff6df;--shadow:rgba(36,50,65,.08)}
*{box-sizing:border-box}html{color-scheme:light}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:Inter,"Segoe UI",Arial,sans-serif}a{color:var(--accent)}.wrap{width:min(980px,calc(100% - 28px));margin:28px auto}.top,.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 28px var(--shadow)}.top{padding:18px 20px;margin-bottom:16px;display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap}.brand h1{font-size:22px;margin:0 0 5px}.brand p{margin:0;color:var(--muted);font-size:14px}.nav{display:flex;gap:8px;flex-wrap:wrap}.nav a,.btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 14px;border-radius:9px;text-decoration:none;font-weight:700;border:1px solid var(--line);background:#fff;color:var(--text);cursor:pointer}.btn.primary{border-color:var(--accent);background:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent2)}.btn.danger{border-color:#efc4bf;background:var(--dangerSoft);color:var(--danger)}.card{padding:20px;margin-top:14px}.card h2{margin:0 0 14px;font-size:18px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.full{grid-column:1/-1}label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}input,select{width:100%;padding:10px 11px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--text);font:inherit}.hint{font-size:12px;color:var(--muted);margin-top:5px}.actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:18px}.msg{padding:11px 13px;border-radius:9px;margin:12px 0;font-size:14px}.msg.ok{background:var(--okSoft);color:var(--ok)}.msg.bad{background:var(--dangerSoft);color:var(--danger)}.msg.warn{background:var(--amberSoft);color:var(--amber)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:middle}th{font-size:12px;text-transform:uppercase;color:var(--muted);letter-spacing:.05em}.status{display:inline-flex;align-items:center;gap:7px;padding:6px 9px;border-radius:999px;font-size:11px;font-weight:800}.status.online{background:var(--okSoft);color:var(--ok)}.status.offline{background:var(--dangerSoft);color:var(--danger)}.code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:9px 10px;word-break:break-all}.login{width:min(430px,calc(100% - 28px));margin:9vh auto}.login .card{padding:26px}.login h1{font-size:22px;margin:0 0 6px}.login p{color:var(--muted);margin:0 0 20px}.stack{display:grid;gap:14px}.small{font-size:12px;color:var(--muted)}@media(max-width:700px){.grid{grid-template-columns:1fr}.full{grid-column:auto}table{display:block;overflow-x:auto}.actions>*{width:100%}}
.device-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.device-card{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}.device-card-title{font-size:17px;font-weight:800}.code-inline{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.check-option{display:flex;align-items:flex-start;gap:9px;padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);font-weight:700}.check-option input{width:auto;margin-top:3px}.check-option span{min-width:0}.check-option small{display:block;color:var(--muted);font-weight:400;margin-top:3px;word-break:break-all}.credential-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.credential-actions form{margin:0}.danger-zone{border-color:#efc4bf}.secret-visible{border-color:#9dd4cf;background:#f2fbfa}@media(max-width:700px){.device-cards,.check-grid{grid-template-columns:1fr}.credential-actions{display:grid}.credential-actions form,.credential-actions button{width:100%}}
