@import url("https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500&display=swap");:root{--bg:#f4f6fa;--panel:#fff;--panel-2:#f8f9fc;--text:#121826;--text-2:#3a4356;--muted:#6b7489;--line:#e4e8f0;--line-strong:#d3d9e5;--accent:#2b59d9;--accent-hover:#2149b8;--accent-soft:#eaf0ff;--accent-ink:#1d3f9e;--ok:#177a45;--ok-soft:#e3f6eb;--warn:#a35d00;--warn-soft:#fff2db;--err:#c2352b;--err-soft:#fdeceb;--side-bg:#fff;--shadow:0 1px 2px rgba(18,24,38,.04),0 1px 3px rgba(18,24,38,.06);--shadow-lg:0 12px 40px rgba(18,24,38,.18);--radius:10px;--radius-sm:7px;--font:"Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0d111a;--panel:#151b27;--panel-2:#111622;--text:#e8ecf4;--text-2:#c3cad8;--muted:#8f99ad;--line:#242c3c;--line-strong:#323c50;--accent:#7c9dff;--accent-hover:#9ab4ff;--accent-soft:#1c2747;--accent-ink:#b9cbff;--ok:#5cd394;--ok-soft:#12301f;--warn:#f2b357;--warn-soft:#36290f;--err:#ff8076;--err-soft:#3b1a18;--side-bg:#111622;--shadow:0 1px 2px rgba(0,0,0,.3);--shadow-lg:0 16px 48px rgba(0,0,0,.55);color-scheme:dark}}:root[data-theme=dark]{--bg:#0d111a;--panel:#151b27;--panel-2:#111622;--text:#e8ecf4;--text-2:#c3cad8;--muted:#8f99ad;--line:#242c3c;--line-strong:#323c50;--accent:#7c9dff;--accent-hover:#9ab4ff;--accent-soft:#1c2747;--accent-ink:#b9cbff;--ok:#5cd394;--ok-soft:#12301f;--warn:#f2b357;--warn-soft:#36290f;--err:#ff8076;--err-soft:#3b1a18;--side-bg:#111622;--shadow:0 1px 2px rgba(0,0,0,.3);--shadow-lg:0 16px 48px rgba(0,0,0,.55);color-scheme:dark}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font:14px/1.5 var(--font);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}h1{font-size:24px;line-height:1.25;font-weight:650;letter-spacing:-.02em;margin:2px 0 6px;text-wrap:balance}h2{font-size:16px;letter-spacing:-.01em;margin:28px 0 12px}h2,h3{font-weight:600}h3{font-size:14px;margin:18px 0 8px}p{margin:0 0 10px;max-width:80ch}.mono,code,pre{font-family:var(--mono);font-size:12.5px}code{border:1px solid var(--line);border-radius:5px;padding:0 5px}code,pre{background:var(--panel-2)}pre{border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px;overflow:auto;max-height:480px;line-height:1.55}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}.side{background:var(--side-bg);border-right:1px solid var(--line);padding:18px 12px;display:flex;flex-direction:column;gap:2px;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto}.side .brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:16px;letter-spacing:-.01em;color:var(--text);padding:2px 10px 18px}.side .brand-mark{width:28px;height:28px;border-radius:8px;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:14px;font-weight:700}.side .nav-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:12px 10px 6px}.side a{display:flex;align-items:center;gap:10px;color:var(--text-2);padding:8px 10px;border-radius:var(--radius-sm);font-weight:500}.side a svg{width:18px;height:18px;flex:none;color:var(--muted)}.side a:hover{background:var(--panel-2);color:var(--text)}.side a.active{background:var(--accent-soft);color:var(--accent-ink)}.side a.active svg{color:var(--accent)}.side .spacer{flex:1 1}.main{padding:28px 36px 64px;min-width:0;max-width:1480px;width:100%}@media (max-width:860px){.shell{grid-template-columns:1fr}.side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;border-right:0;border-bottom:1px solid var(--line);padding:10px 12px}.side .brand{padding:2px 10px 2px 2px}.side .nav-label,.side .spacer{display:none}.main{padding:20px 16px 48px}}.theme-toggle{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:2px;gap:2px;padding:3px;margin:8px 0;background:var(--panel-2);border:1px solid var(--line);border-radius:9px}.theme-toggle button{flex-direction:column;gap:2px;padding:6px 4px;border:none;box-shadow:none;background:transparent;color:var(--muted);font-size:11px;border-radius:7px}.theme-toggle button svg{width:16px;height:16px}.theme-toggle button:hover{color:var(--text);border:none}.theme-toggle button.on{background:var(--panel);color:var(--accent-ink);box-shadow:var(--shadow)}.login-theme{position:fixed;top:calc(16px + env(safe-area-inset-top, 0px));right:max(16px,env(safe-area-inset-right,0px));width:220px}@media (max-width:860px){.side .theme-toggle{margin:0;grid-template-columns:repeat(3,auto)}.side .theme-toggle button span{display:none}}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.grid{display:grid;grid-gap:14px;gap:14px}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.grid.cols-3{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.grid.cols-4{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.stack>*+*{margin-top:12px}.muted{color:var(--muted)}.small{font-size:12.5px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);min-width:0}.card h2:first-child,.card h3:first-child{margin-top:0}a.card{transition:border-color .15s,box-shadow .15s,transform .15s}a.card:hover{border-color:var(--line-strong);box-shadow:0 4px 14px rgba(18,24,38,.08)}.stat{font-size:28px;font-weight:650;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:4px}.grid.cols-4>.card .muted.small:first-child{text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}.tabs{display:flex;flex-wrap:wrap;gap:2px;margin:20px 0 22px;padding:4px;background:var(--panel);border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow);width:-moz-fit-content;width:fit-content;max-width:100%}@media (max-width:860px){.tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}}.tabs a,.tabs button{padding:7px 12px;border:none;background:transparent;color:var(--muted);cursor:pointer;border-radius:8px;font:inherit;font-weight:500;white-space:nowrap;box-shadow:none}.tabs a:hover,.tabs button:hover{color:var(--text);background:var(--panel-2);border:none}.tabs a.active,.tabs button.active{color:var(--accent-ink);background:var(--accent-soft);font-weight:600}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--radius);max-width:100%;box-shadow:var(--shadow)}.table-wrap,table{background:var(--panel)}table{width:100%;border-collapse:separate;border-spacing:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}td,th{text-align:left;padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:middle}th{position:-webkit-sticky;position:sticky;top:0;z-index:1;background:var(--panel-2);font-weight:600;color:var(--muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:var(--panel-2)}td.trunc{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}td strong a,td>a{font-weight:600}.btn,button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--panel);color:var(--text);cursor:pointer;font:inherit;font-weight:500;line-height:1.2;box-shadow:var(--shadow);transition:background .12s,border-color .12s,color .12s}.btn:hover,button:hover{border-color:var(--accent);color:var(--text)}.btn.primary,button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover,button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}button.danger{color:var(--err)}button.danger:hover{border-color:var(--err);background:var(--err-soft)}button.ghost{border-color:transparent;background:transparent;box-shadow:none;color:var(--muted)}button.ghost:hover{background:var(--panel-2);color:var(--text)}button:disabled{opacity:.5;cursor:default}button.sm{padding:4px 9px;font-size:12.5px;border-radius:6px}input,select,textarea{font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:7px 10px;min-width:0;transition:border-color .12s,box-shadow .12s}input:hover,select:hover,textarea:hover{border-color:var(--muted)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px;padding:0}textarea{width:100%;min-height:72px;font-family:var(--mono);font-size:12.5px;line-height:1.5;resize:vertical}label.field{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:500;color:var(--muted)}label.field>input,label.field>select,label.field>textarea{color:var(--text);font-size:14px;font-weight:400}.form{display:grid;grid-gap:14px 16px;gap:14px 16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;background:var(--panel-2);color:var(--muted);border:1px solid var(--line);white-space:nowrap;vertical-align:middle}.badge.err,.badge.info,.badge.ok,.badge.warn{border-color:transparent}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.err{background:var(--err-soft);color:var(--err)}.badge.info{background:var(--accent-soft);color:var(--accent-ink)}.badge.err:before,.badge.ok:before,.badge.warn:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.alert{padding:11px 14px;border-radius:var(--radius-sm);background:var(--warn-soft);color:var(--warn);margin:10px 0;border:1px solid color-mix(in srgb,currentColor 18%,transparent)}.alert.err{background:var(--err-soft);color:var(--err)}.alert.ok{background:var(--ok-soft);color:var(--ok)}.rule{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);margin-bottom:8px;box-shadow:var(--shadow);transition:border-color .12s}.rule:hover{border-color:var(--line-strong)}.rule.paused{opacity:.6}.rule-head{display:flex;gap:6px;align-items:center;padding:10px 12px 6px;flex-wrap:wrap}.rule-head .name{font-weight:600;flex:1 1;cursor:pointer;min-width:180px}.rule-head .name:hover{color:var(--accent)}.rule-summary{padding:0 14px 12px 40px;color:var(--text-2);font-size:12.5px;font-family:var(--mono);line-height:1.7}.kw{display:inline-block;font-weight:700;font-size:10.5px;letter-spacing:.05em;padding:0 6px;border-radius:4px;background:var(--accent-soft);color:var(--accent-ink);font-family:var(--font)}.kw.then{background:var(--ok-soft);color:var(--ok)}.kw.else{background:var(--warn-soft);color:var(--warn)}.section-box{border:1px solid var(--line);background:var(--panel-2);border-radius:var(--radius);padding:14px;margin:10px 0}.cond{display:grid;grid-template-columns:minmax(130px,1fr) minmax(130px,1fr) minmax(160px,2fr) auto;grid-gap:8px;gap:8px;margin:6px 0;align-items:start}.cond.or{margin-left:28px;padding-left:12px;border-left:2px solid var(--line-strong)}@media (max-width:700px){.cond{grid-template-columns:1fr}}.modal-bg{position:fixed;inset:0;background:rgba(13,17,26,.45);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;z-index:50;overflow:auto}.modal{background:var(--panel);border:1px solid var(--line);border-radius:14px;width:min(1000px,100%);padding:24px;box-shadow:var(--shadow-lg)}.modal h2{font-size:18px}.diff-add{color:var(--ok);font-weight:500}.diff-del{color:var(--err);text-decoration:line-through}.login{max-width:380px;margin:14vh auto;padding:28px}.quality{font-weight:700}details>summary{cursor:pointer;color:var(--text-2);font-weight:500}@media (prefers-reduced-motion:reduce){*{transition:none!important}}