:root{--bg:#f6f7f9;--panel:#fff;--ink:#1b1f24;--muted:#5d6673;--line:#e2e5ea;--accent:#1f6feb;--accent-soft:#e7f0ff;--warn:#b54708;--warn-soft:#fff4e5;--bad:#b42318;--ok:#067647}@media (prefers-color-scheme:dark){:root{--bg:#0f1216;--panel:#171b21;--ink:#e8eaed;--muted:#9aa3ae;--line:#2a3038;--accent:#4c8dff;--accent-soft:#1a2740;--warn:#f5a524;--warn-soft:#33260f;--bad:#f97066;--ok:#47cd89}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.nav{display:flex;gap:20px;align-items:center;padding:12px 24px;background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap}.nav .brand{font-weight:700}.nav .spacer{flex:1 1}.nav .muted{color:var(--muted)}main{max-width:1280px;margin:0 auto;padding:24px}h1{font-size:22px;margin:0 0 4px}h2{font-size:16px;margin:0 0 12px}.sub{color:var(--muted);margin:0 0 20px}.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px}.grid{display:grid;grid-gap:16px;gap:16px}.kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-bottom:16px}.kpi .label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.kpi .value{font-size:26px;font-weight:650;margin-top:4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.charts{grid-template-columns:2fr 1fr;margin-bottom:16px}@media (max-width:900px){.charts{grid-template-columns:1fr}}.filters{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin-bottom:16px}label{display:grid;grid-gap:4px;gap:4px;font-size:12px;color:var(--muted)}button,input,select{font:inherit;padding:7px 10px;border-radius:7px;border:1px solid var(--line);background:var(--panel);color:var(--ink)}label.check{display:flex;gap:6px;align-items:center;font-size:13px;color:var(--ink);padding-bottom:8px}.btn,button{background:var(--accent);color:#fff;border-color:var(--accent);cursor:pointer;display:inline-block;padding:7px 14px;border-radius:7px}.btn.secondary,button.secondary{background:transparent;color:var(--accent)}table{width:100%;border-collapse:collapse;font-size:13px}td,th{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600;font-size:12px;position:-webkit-sticky;position:sticky;top:0;background:var(--panel)}td.num,th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.table-wrap{overflow:auto;max-height:70vh}.tag{display:inline-block;padding:1px 7px;border-radius:99px;font-size:11px;font-weight:600;white-space:nowrap}.tag.warn{background:var(--warn-soft);color:var(--warn)}.tag.info{background:var(--accent-soft);color:var(--accent)}.tag.ok{color:var(--ok)}.tag.bad{color:var(--bad)}.small{font-size:12px;color:var(--muted)}.notice{padding:10px 14px;border-radius:8px;background:var(--warn-soft);color:var(--warn);margin-bottom:16px}.error{color:var(--bad)}.login{max-width:360px;margin:10vh auto}.login form,.stack{display:grid;grid-gap:12px;gap:12px}.template-bar{margin-bottom:16px}.col-editor{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px;margin-top:16px;border-top:1px solid var(--line);padding-top:16px}@media (max-width:900px){.col-editor{grid-template-columns:1fr}}.col-list{margin:0;padding-left:22px;display:grid;grid-gap:6px;gap:6px}.col-list li{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.col-list li input{flex:1 1;min-width:140px}button.icon{background:transparent;color:var(--ink);border-color:var(--line);padding:4px 9px}button.icon:disabled{opacity:.35;cursor:default}.field-list{max-height:360px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:6px 10px}.field-group{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:10px 0 2px}label.check.field{padding-bottom:2px;align-items:flex-start}.sample{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:340px}.col-actions{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap;align-items:end}.save-row{background:var(--bg);padding:12px;border-radius:8px}td.nowrap{white-space:nowrap}tr.projected td{color:var(--muted)}button:disabled{opacity:.6;cursor:default}fieldset.zones{border:1px solid var(--line);border-radius:8px;padding:10px 14px;width:100%;margin:0}fieldset.zones legend{font-size:12px;color:var(--muted);padding:0 4px}.zone-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:0 12px;gap:0 12px}.template-bar .filters>label{flex:0 1 340px}.col-list li .small{width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-panel{margin-bottom:16px;display:grid;grid-gap:12px;gap:12px}.filter-panel .filters{margin-bottom:0}.search-row label.grow{flex:1 1 320px}.search-row label.grow input{width:100%}.ms{display:grid;grid-gap:4px;gap:4px;font-size:12px;color:var(--muted);position:relative}.ms-box summary{list-style:none;cursor:pointer;padding:7px 28px 7px 10px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--ink);font-size:14px;min-width:130px;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative}.ms-box summary::-webkit-details-marker{display:none}.ms-box summary:after{content:"▾";position:absolute;right:10px;color:var(--muted)}.ms-box summary.active{border-color:var(--accent);color:var(--accent)}.ms-pop{position:absolute;z-index:20;top:100%;left:0;margin-top:4px;width:300px;max-width:calc(100vw - 32px);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px;box-shadow:0 8px 24px rgba(0,0,0,.18);display:grid;grid-gap:6px;gap:6px}.ms-list{max-height:260px;overflow:auto;display:grid}.ms-list label.check{padding:3px 0;font-size:13px}.ms-actions{display:flex;gap:12px}button.link{background:none;border:none;color:var(--accent);padding:0;font-size:13px;cursor:pointer;justify-self:start}.conds{display:grid;grid-gap:8px;gap:8px}.cond-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.cond-row select:first-child{max-width:260px}.cond-row input{flex:1 1 160px}.active-filters{margin-top:-4px}td.af-cell{min-width:160px}.af-chip{display:inline-block;margin:0 4px 4px 0;padding:1px 8px;border-radius:6px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font-size:12px;white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis;vertical-align:top}.af-chip:hover{border-color:var(--accent);text-decoration:none}.af-name{color:var(--muted)}.action-form{display:flex;align-items:center;gap:8px}button.is-pending{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);opacity:1;cursor:progress}.spinner{display:inline-block;width:12px;height:12px;margin-right:7px;vertical-align:-1px;border:2px solid;border-right:2px solid transparent;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.pending-hint{font-size:12px;color:var(--accent)}.flash{padding:10px 14px;border-radius:8px;font-weight:500}.flash.ok{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok)}.flash.bad{background:color-mix(in srgb,var(--bad) 14%,transparent);color:var(--bad)}.narrow{max-width:360px}.codes{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:12px;margin:10px 0}.codes pre{font-size:15px;letter-spacing:.05em;margin:10px 0}.totp-setup ol{padding-left:20px}.totp-setup img{background:#fff;padding:6px;border-radius:8px}.flash-link{-webkit-user-select:all;-moz-user-select:all;user-select:all;word-break:break-all;background:var(--panel);padding:1px 6px;border-radius:4px}.nav-pending{position:fixed;inset:0;z-index:50;background:color-mix(in srgb,var(--bg) 45%,transparent);cursor:progress}.nav-bar{position:absolute;top:0;left:0;height:3px;width:40%;background:var(--accent);animation:navbar 1.1s ease-in-out infinite}@keyframes navbar{0%{left:-40%}to{left:100%}}.nav-chip{position:fixed;top:72px;left:50%;transform:translateX(-50%);background:var(--panel);color:var(--ink);border:1px solid var(--accent);border-radius:999px;padding:8px 16px;font-weight:600;box-shadow:0 6px 20px rgba(0,0,0,.25)}.legal{max-width:760px;line-height:1.6}.legal h2{margin-top:28px;font-size:17px}.legal ul{padding-left:22px}.legal li{margin:6px 0}.legal hr{border:none;border-top:1px solid var(--line);margin:32px 0 12px}.site-footer{text-align:center;padding:24px 16px 32px}