:root{--ink:#1f2a22;--ink-soft:#5a6b5f;--line:#dfe8e0;--panel:#fff;--bg:#eef5ee;--forest:#2f6b4f;--forest-tint:#e3f0e6;--sky:#4f9bc7;--sky-tint:#e6f2f8;--amber-tint:#fdf1dc;--error:#c0392b;--error-tint:#fbebe9;--radius:10px}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,sans-serif;font-size:14px}.console{grid-template-columns:236px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;height:100vh;padding:18px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{border-bottom:1px solid var(--line);flex-direction:column;margin-bottom:10px;padding:0 10px 16px;display:flex}.brand strong{font-size:15px}.brand small{color:var(--ink-soft);margin-top:2px;font-size:11px}.side-nav{flex-direction:column;gap:14px;display:flex}.nav-heading{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);padding:0 10px 4px;font-size:10px;font-weight:700}.nav-link,.foot-link{color:var(--ink-soft);border-radius:7px;align-items:center;gap:10px;padding:8px 10px;font-size:13px;font-weight:600;text-decoration:none;display:flex}.nav-link:hover,.foot-link:hover{background:var(--bg);color:var(--ink)}.nav-link[aria-current=page]{background:var(--forest-tint);color:#1f4d38}.nav-icon{flex:none;width:18px;height:18px;display:inline-flex}.sidebar-foot{border-top:1px solid var(--line);flex-direction:column;gap:2px;margin-top:auto;padding-top:14px;display:flex}.who{color:var(--ink-soft);flex-direction:column;gap:4px;padding:0 10px 8px;font-size:12px;display:flex}.who-email{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.who .mode{background:var(--amber-tint);color:#7a5310;letter-spacing:.03em;text-transform:uppercase;border-radius:999px;align-self:flex-start;padding:1px 7px;font-size:10px;font-weight:700}.page{min-width:0}.page-head{background:var(--panel);border-bottom:1px solid var(--line);padding:18px 28px 0}.page-head-row{align-items:center;gap:10px;display:flex}.page-title{margin:0;font-size:20px}.page-desc{color:var(--ink-soft);max-width:760px;margin:4px 0 14px;font-size:13px;line-height:1.5}.tabs{gap:2px;margin-bottom:-1px;display:flex;overflow-x:auto}.tabs[hidden]{display:none}.tab{color:var(--ink-soft);white-space:nowrap;border-bottom:2px solid #0000;padding:9px 14px;font-size:13px;font-weight:600;text-decoration:none}.tab:hover{color:var(--ink)}.tab[aria-current=page]{color:#1f4d38;border-bottom-color:var(--forest)}.page-body{outline:none;max-width:1280px;padding:22px 28px 40px}.page-head:not(:has(.tabs:not([hidden]))){padding-bottom:4px}.menu-btn{color:var(--ink);border:1px solid var(--line);background:0 0;padding:5px 7px;line-height:0;display:none}.scrim{display:none}.unauth{max-width:640px;margin:60px auto;padding:0 20px}.unauth h1{font-size:20px}@media (width<=900px){.console{grid-template-columns:1fr}.sidebar{z-index:30;width:260px;transition:transform .18s;position:fixed;top:0;left:0;transform:translate(-100%)}.console.nav-open .sidebar{transform:none;box-shadow:0 0 40px #0000002e}.console.nav-open .scrim{z-index:20;background:#141e184d;display:block;position:fixed;inset:0}.menu-btn{display:inline-flex}.page-head{padding:14px 16px 0}.page-body{padding:16px 16px 32px}}.card{background:var(--panel);border-radius:var(--radius);margin-bottom:18px;padding:16px 18px;box-shadow:0 4px 14px -8px #1f2d2240}.card h3{margin:0 0 4px;font-size:15px}.card .hint{color:var(--ink-soft);margin:0 0 12px;font-size:12px;line-height:1.5}h4.subhead{margin:18px 0 8px;font-size:13px}label{color:var(--ink-soft);margin-bottom:3px;font-size:12px;display:block}label .src{color:var(--ink-soft);font-weight:400}input,select{font:inherit;border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:7px;padding:7px 9px;font-size:13px}.row{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.field{flex-direction:column;display:flex}.checkline{align-self:center;align-items:center;gap:7px;font-size:13px;display:flex}.checkline input{width:auto}button{font:inherit;cursor:pointer;background:var(--forest);color:#fff;border:none;border-radius:7px;padding:8px 14px;font-size:13px;font-weight:600}button:hover{filter:brightness(1.08)}button:disabled{opacity:.5;cursor:default}button.danger{background:var(--error)}button.ghost{color:var(--forest);border:1px solid var(--forest);background:0 0}button.small{padding:4px 9px;font-size:12px}.status{white-space:pre-wrap;color:var(--ink-soft);margin-top:10px;font-size:13px;line-height:1.5}.status.error{color:var(--error)}.status.ok{color:#1f4d38}.banner{border-radius:var(--radius);margin-bottom:18px;padding:12px 14px;font-size:13px;line-height:1.5}.banner.error{background:var(--error-tint);color:var(--error);border:1px solid #f0c8c2}.banner.ok{background:var(--forest-tint);color:#1f4d38}.badge{letter-spacing:.04em;border-radius:999px;margin-left:6px;padding:2px 8px;font-size:10px;font-weight:700}.badge.on{background:var(--forest-tint);color:#1f4d38}.badge.off{background:var(--amber-tint);color:#7a5310}.badge.alarm{background:var(--error-tint);color:var(--error)}.kv{grid-template-columns:max-content 1fr;gap:4px 16px;font-size:13px;display:grid}.kv dt{color:var(--ink-soft)}.kv dd{margin:0}.pool{border:1px solid var(--line);border-radius:9px;margin-bottom:8px;padding:10px 12px}.pool-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.pool-title{font-size:14px;font-weight:700}.pool-title .count{color:var(--ink-soft);font-weight:400}.riddle{border:1px solid var(--line);border-radius:9px;margin:8px 0;padding:10px 12px}.riddle-q{margin-bottom:6px;font-weight:600}.options{gap:4px;margin:0 0 6px;padding:0;list-style:none;display:grid}.options li{background:#f4f7f4;border-radius:5px;padding:3px 8px;font-size:13px}.options li.correct{background:var(--forest-tint);color:#1f4d38;font-weight:600}.hints{color:var(--ink-soft);margin:0 0 8px;padding-left:18px;font-size:12px}.meta-row{color:var(--ink-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:11px;display:flex}.meta-row .tag{background:var(--sky-tint);color:#2b6484;border-radius:999px;padding:1px 7px;font-weight:600}.meta-row .tag.nometa,.meta-row .tag.trigger-reactive{background:var(--amber-tint);color:#7a5310}.meta-row .id{font-family:ui-monospace,monospace}.empty-note{color:var(--ink-soft);font-size:13px;line-height:1.6}.recheck-results{margin-top:10px}.recheck-fails{margin:6px 0 0;padding-left:18px;font-size:13px;line-height:1.5}.recheck-fails code{background:var(--amber-tint);color:#7a5310;border-radius:999px;padding:1px 6px;font-size:11px}.cron-run{border:1px solid var(--line);border-radius:9px;margin-bottom:7px;padding:9px 11px}.cron-run-head{flex-wrap:wrap;align-items:baseline;gap:10px;font-size:12px;display:flex}.cron-run-when{font-weight:700}.cron-run-stats{color:var(--ink-soft)}.cron-run-kind{letter-spacing:.04em;text-transform:uppercase;background:var(--line);color:var(--ink-soft);border-radius:999px;padding:1px 7px;font-size:10px;font-weight:700}.cron-run-kind.scheduled{color:#24507e;background:#e5edf7}.cron-run-kind.manual{background:var(--amber-tint);color:#7a5310}.cron-run-kind.reactive{background:var(--forest-tint);color:#1f4d38}.cron-run-kind.freshness{color:#5b2e7e;background:#efe6f7}.cron-run-cells{gap:3px;margin-top:6px;display:grid}.cron-cell{gap:8px;font-family:ui-monospace,monospace;font-size:12px;display:flex}.cron-cell .plus{color:#1f4d38;font-weight:700}.cron-cell .zero{color:var(--ink-soft)}.cron-cell .skip{color:#7a5310}.generated{border:1px dashed var(--forest);background:var(--forest-tint);border-radius:9px;margin-top:4px;padding:10px 12px}ul.generated-codes{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:4px 10px;margin:0;padding:0;list-style:none;display:grid}ul.generated-codes li{border:1px solid var(--line);-webkit-user-select:all;user-select:all;background:#fff;border-radius:5px;padding:3px 7px;font-family:ui-monospace,monospace;font-size:13px}table.codes{border-collapse:collapse;width:100%;font-size:12px}table.codes th,table.codes td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:6px 10px}table.codes th{color:var(--ink-soft);font-weight:600}table.codes td.when{white-space:nowrap;color:var(--ink-soft)}table.codes td.who{font-family:ui-monospace,monospace}table.codes td.note{color:var(--ink-soft);max-width:220px}table.audit{border-collapse:collapse;width:100%;font-size:12px}table.audit th,table.audit td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:6px 10px}table.audit th{color:var(--ink-soft);font-weight:600}table.audit td.when{white-space:nowrap;color:var(--ink-soft)}table.audit td.who{font-family:ui-monospace,monospace}table.audit td.action{font-weight:600}table.audit td.params{color:var(--ink-soft);word-break:break-word;font-family:ui-monospace,monospace}.hint-inline{color:var(--ink-soft);font-size:12px}.budget-line{grid-template-columns:80px 1fr auto;align-items:center;gap:10px;margin:4px 0;font-size:12px;display:grid}.budget-label{color:var(--ink-soft)}.budget-bar{background:var(--line);border-radius:999px;height:8px;overflow:hidden}.budget-fill{background:var(--forest);height:100%;display:block}.budget-fill.full{background:var(--error)}.budget-num{font-family:ui-monospace,monospace}.grid-2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));align-items:start;gap:18px;display:grid}.grid-2>.card{margin-bottom:0}.toolbar{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:12px;display:flex}.toolbar .grow,.field.grow{flex:260px}.toolbar .grow input{width:100%}.toolbar-actions{gap:8px;margin-left:auto;display:flex}.links{gap:16px;margin-top:10px;font-size:13px}.links a,.link-small{color:var(--forest);font-size:13px;font-weight:600;text-decoration:none}.links a:hover,.link-small:hover{text-decoration:underline}button.link{color:var(--forest);background:0 0;padding:0;font-size:13px;text-decoration:underline}.muted-text{color:var(--ink-soft)}.sub{color:var(--ink-soft);font-family:ui-monospace,monospace;font-size:11px}.nowrap{white-space:nowrap}.pill{background:var(--line);color:var(--ink-soft);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600;display:inline-block}.pill.ok{background:var(--forest-tint);color:#1f4d38}.pill.warn{background:var(--amber-tint);color:#7a5310}.pill.muted{color:var(--ink-soft);background:#f0f2f0}.pill.diff-easy{background:var(--forest-tint);color:#1f4d38}.pill.diff-medium{background:var(--sky-tint);color:#2b6484}.pill.diff-hard{color:#5b2e7e;background:#efe6f7}.check-cell{flex-wrap:wrap;gap:4px;display:inline-flex}.table-wrap{overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:13px}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:8px 10px}table.data th{color:var(--ink-soft);letter-spacing:.04em;text-transform:uppercase;background:#fafcfa;font-size:11px;font-weight:700;position:sticky;top:0}table.data tbody tr:hover{background:#fafcfa}table.data td.cb,table.data th.cb{width:32px}table.data input[type=checkbox]{width:16px;height:16px;margin:0}table.riddles tr.selected{background:var(--forest-tint)}table.riddles td.q{min-width:280px}table.riddles td.answer{min-width:100px;font-weight:600}.q-toggle{color:var(--ink);text-align:left;background:0 0;gap:6px;padding:0;font-weight:400;line-height:1.45;display:flex}.q-toggle:hover{filter:none;color:#1f4d38}.caret{color:var(--ink-soft);flex:none;width:10px}table.riddles tr.detail td{background:#fafcfa;padding-top:4px}.detail-options{gap:3px;margin:4px 0 8px;padding-left:22px;display:grid}.detail-options li.correct{color:#1f4d38;font-weight:700}.detail-options li.correct:after{content:"  ✓ answer";font-size:11px;font-weight:600}.detail-hints{color:var(--ink-soft);margin-bottom:6px;font-size:12px}.detail-meta{color:var(--ink-soft);font-size:11px}.detail-meta code{font-size:11px}.result-count{color:var(--ink-soft);margin:2px 0 10px;font-size:12px}.bulk-bar{background:var(--forest-tint);border-radius:8px;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:10px;padding:8px 12px;font-size:13px;display:flex}.bulk-bar .spacer{flex:1}.pager{color:var(--ink-soft);justify-content:center;align-items:center;gap:14px;margin-top:14px;font-size:13px;display:flex}.tiles{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:18px;display:grid}.tile{background:var(--panel);border-radius:var(--radius);color:var(--ink);border-top:3px solid var(--line);padding:14px 16px;text-decoration:none;display:block;box-shadow:0 4px 14px -8px #1f2d2240}.tile:hover{box-shadow:0 6px 18px -8px #1f2d2259}.tile.ok{border-top-color:var(--forest)}.tile.warn{border-top-color:#d9a441}.tile.alarm{border-top-color:var(--error)}.tile-label{color:var(--ink-soft);font-size:12px;font-weight:600}.tile-value{margin:4px 0 2px;font-size:24px;font-weight:700}.tile-sub{color:var(--ink-soft);font-size:12px}ul.activity{margin:0;padding:0;list-style:none}ul.activity li{border-bottom:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:baseline;gap:4px 10px;padding:7px 0;font-size:13px;display:grid}.activity-who{color:var(--ink-soft);grid-column:2;font-family:ui-monospace,monospace;font-size:11px}.activity-when{color:var(--ink-soft);white-space:nowrap;grid-area:1/3;font-size:11px}.stat-row{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:18px;display:grid}.stat{background:var(--panel);border-radius:var(--radius);padding:12px 14px;box-shadow:0 4px 14px -8px #1f2d2240}.stat-label{color:var(--ink-soft);font-size:12px;font-weight:600}.stat-value{margin-top:2px;font-size:22px;font-weight:700}.stat-sub{color:var(--ink-soft);font-size:11px}.stat.warn .stat-value{color:#7a5310}.stat.ok .stat-value{color:#1f4d38}table.coverage th.num,table.coverage td.cov{text-align:center;width:110px}table.coverage tr.group-start td{border-top:2px solid var(--line)}table.coverage tr.not-offered td{color:var(--ink-soft);background:#f7f8f7}td.cov a{color:inherit;font-weight:700;text-decoration:none}td.cov a:hover{text-decoration:underline}td.cov.empty{background:var(--error-tint);color:var(--error)}td.cov.low{background:var(--amber-tint);color:#7a5310}td.cov.full{color:#1f4d38}td.cov a.gap{color:var(--forest);margin-left:8px;font-size:11px;font-weight:600}.scope-count{color:var(--ink-soft);align-self:center;font-size:12px}
