:root{--bg:#f3f4f6;--card:#fff;--ink:#1c2733;--muted:#5b6673;--line:#d9dee3;--brand:#1c2733;--accent:#d97706;--danger:#b91c1c;--ok:#15803d;--radius:10px;color:var(--ink);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.45}*{box-sizing:border-box}body{background:var(--bg);margin:0}a{color:inherit}.topbar{background:var(--brand);color:#fff;z-index:10;justify-content:space-between;align-items:center;padding:12px 16px;display:flex;position:sticky;top:0}.topbar .brand{letter-spacing:.5px;font-size:18px;font-weight:700;text-decoration:none}.topbar .brand span{color:var(--accent)}.topbar nav{flex-wrap:wrap;gap:6px;display:flex}.topbar nav a{color:#fff;border-radius:6px;padding:6px 10px;font-size:14px;text-decoration:none}.topbar nav a.active,.topbar nav a:hover{background:#ffffff24}.topbar .who{opacity:.85;font-size:13px}.page{max-width:900px;margin:0 auto;padding:16px}.page h1{margin:8px 0 12px;font-size:22px}.page h2{margin:20px 0 8px;font-size:17px}.lead{color:var(--muted);margin:0 0 14px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px;padding:16px}.card.compact{padding:12px 14px}.row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.stack{flex-direction:column;gap:10px;display:flex}.grid2{grid-template-columns:1fr 1fr;gap:10px 14px;display:grid}@media (width<=560px){.grid2{grid-template-columns:1fr}}label{color:var(--muted);margin-bottom:4px;font-size:13px;font-weight:600;display:block}input,select,textarea{width:100%;font:inherit;border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;padding:10px 12px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:#0000}.field{margin-bottom:12px}.hint{color:var(--muted);margin-top:4px;font-size:12px}.check{color:var(--ink);align-items:center;gap:8px;font-size:15px;font-weight:500;display:flex}.check input{width:auto}button,.btn{font:inherit;border:1px solid var(--brand);background:var(--brand);color:#fff;cursor:pointer;border-radius:8px;padding:10px 16px;font-weight:600;text-decoration:none;display:inline-block}button:disabled{opacity:.55;cursor:default}.btn.secondary{color:var(--brand);background:#fff}.btn.danger{color:var(--danger);border-color:var(--danger);background:#fff}.btn.small{padding:6px 10px;font-size:13px}.error{color:var(--danger);margin:8px 0;font-size:14px}.ok{color:var(--ok);margin:8px 0;font-size:14px}.muted{color:var(--muted)}.small{font-size:13px}.list{margin:0;padding:0;list-style:none}.list li{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;display:flex}.list li:first-child{border-top:0}.list .title{font-weight:600}.list .sub{color:var(--muted);font-size:13px}.pill{color:var(--ink);background:#e5e7eb;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.pill.on{color:var(--ok);background:#dcfce7}.pill.off{color:var(--danger);background:#fee2e2}.pill.warn{color:#92400e;background:#fef3c7}.criteria{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px;display:grid}.criteria div{border:1px solid var(--line);text-align:center;background:#f8fafc;border-radius:8px;padding:8px}.criteria b{font-size:20px;display:block}.criteria span{color:var(--muted);font-size:12px}.auth{max-width:380px;margin:60px auto}.auth h1{text-align:center}.auth .brand{text-align:center;margin-bottom:4px;font-size:28px;font-weight:700}.auth .brand span{color:var(--accent)}.auth .tag{text-align:center;color:var(--muted);margin-bottom:20px;font-size:14px}.empty{color:var(--muted);text-align:center;padding:16px}.monitor{border-radius:var(--radius);border:1px solid var(--line);background:#fff;margin-bottom:14px;padding:10px 14px}.monitor.on{background:#f0fdf4;border-color:#bbf7d0}.monitor.warn{background:#fffbeb;border-color:#fde68a}.monitor.off{background:#fef2f2;border-color:#fecaca}.timeline{margin:0;padding:0;list-style:none}.timeline li{border-top:1px solid var(--line);gap:12px;padding:8px 0;display:flex}.timeline li:first-child{border-top:0}.timeline li.small-row{border-top:0;padding:4px 0;font-size:13px}.timeline .when{color:var(--muted);font-variant-numeric:tabular-nums;flex:0 0 76px}.row input[type=date]{width:auto;padding:6px 10px;font-size:14px}.list li .card{margin:0}
