:root{--bg: #0f1420;--panel: #1a2130;--panel2: #222b3d;--line: #2c3750;--text: #e8edf6;--dim: #8b96ad;--accent: #4da3ff;--good: #3ddc84;--warn: #ffb54d;--bad: #ff5d5d;--radius: 12px}*{box-sizing:border-box;margin:0}body{background:var(--bg);color:var(--text);font:15px/1.5 -apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}button{cursor:pointer;border:0;border-radius:8px;padding:8px 14px;font:inherit;background:var(--accent);color:#06121f;font-weight:600}button.ghost{background:var(--panel2);color:var(--text);border:1px solid var(--line)}button.small{padding:4px 10px;font-size:13px}input,select{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:8px 10px;font:inherit}.nav{display:flex;gap:4px;align-items:center;padding:12px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg);z-index:5}.nav .brand{font-weight:800;letter-spacing:.5px;margin-right:16px}.nav a{color:var(--dim);padding:6px 12px;border-radius:8px}.nav a.active,.nav a:hover{color:var(--text);background:var(--panel)}.nav .spacer{flex:1}.page{max-width:1000px;margin:0 auto;padding:24px 20px 80px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px}.card h4{font-size:13px;color:var(--dim);text-transform:uppercase;letter-spacing:.6px;margin-bottom:10px}.ent{display:flex;align-items:center;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--line);gap:8px}.ent:last-child{border-bottom:0}.ent .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ent .state{color:var(--dim);font-size:13px}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:6px}.dot.on{background:var(--good)}.dot.off{background:#555f75}.dot.bad{background:var(--bad)}.toggle{width:42px;height:24px;border-radius:12px;background:#3a465f;position:relative;transition:.15s;flex:none}.toggle.on{background:var(--good)}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.15s}.toggle.on:after{left:21px}.modes{display:flex;gap:8px;margin:16px 0 24px}.modes button{background:var(--panel2);color:var(--text);border:1px solid var(--line)}.modes button.active{background:var(--accent);color:#06121f;border-color:var(--accent)}.sentence{background:var(--panel2);border:1px dashed var(--line);border-radius:var(--radius);padding:14px 16px;font-size:16px;margin:14px 0}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0}.pill{background:var(--panel2);border:1px solid var(--line);border-radius:999px;padding:3px 12px;font-size:13px;color:var(--dim)}.pill.good{color:var(--good);border-color:var(--good)}.pill.bad{color:var(--bad);border-color:var(--bad)}.pill.warn{color:var(--warn);border-color:var(--warn)}h2{margin:6px 0 16px}h3{margin:18px 0 10px}.muted{color:var(--dim);font-size:13px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}th{color:var(--dim);font-size:12px;text-transform:uppercase;letter-spacing:.5px}.login{max-width:360px;margin:12vh auto;display:flex;flex-direction:column;gap:12px}.login input{width:100%}.err{color:var(--bad);font-size:14px}.snapgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.snapgrid img{width:100%;border-radius:8px;border:1px solid var(--line)}.feed{display:flex;flex-direction:column;gap:8px}.feed .item{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 14px;display:flex;justify-content:space-between;gap:10px}
