:root{color-scheme:dark;--s1: 8px;--s2: 16px;--s3: 24px;--s4: 32px;--s6: 48px;--fs-aux: 12px;--fs-body: 14px;--fs-title: 16px;--fs-stat: 20px;--r-card: 16px;--r-control: 12px;--r-micro: 8px;--r-pill: 999px;--text: #ececec;--muted: #9b9b9b;--bg: #131518;--surface: rgba(255, 255, 255, .06);--control: rgba(255, 255, 255, .09);--surface-solid: color-mix(in srgb, var(--bg) 86%, #ffffff);--accent: #34d399;--accent-deep: #0ea371;--on-accent: #062018;--danger: #f97066;--danger-deep: #d92d20;--on-danger: #ffffff;--ok: var(--accent);--shadow: 0 8px 32px rgba(0, 0, 0, .35);--shadow-lift: 0 16px 40px rgba(0, 0, 0, .45);--focus-ring: 0 0 0 3px color-mix(in srgb, var(--accent) 35%, transparent)}[data-theme=light]{color-scheme:light;--text: #1a1a1a;--muted: #666666;--bg: #f5f5f5;--surface: rgba(255, 255, 255, .62);--control: rgba(17, 17, 17, .05);--surface-solid: #ffffff;--accent: #059669;--accent-deep: #047857;--on-accent: #ffffff;--danger: #d92d20;--danger-deep: #b42318;--shadow: 0 8px 32px rgba(15, 23, 42, .08);--shadow-lift: 0 16px 40px rgba(15, 23, 42, .14)}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Microsoft YaHei,system-ui,sans-serif;font-size:var(--fs-body);color:var(--text);background:radial-gradient(1100px 560px at 85% -10%,color-mix(in srgb,var(--accent) 7%,transparent),transparent 65%),radial-gradient(900px 480px at -8% 28%,color-mix(in srgb,var(--accent) 5%,transparent),transparent 60%),var(--bg);background-attachment:fixed}h1,h2,h3{margin:0 0 var(--s2);font-weight:600}h1{font-size:var(--fs-title);font-weight:700}h2,h3{font-size:var(--fs-title)}code{font-family:Consolas,Cascadia Mono,monospace;font-size:.92em;background:var(--control);padding:2px var(--s1);border-radius:var(--r-micro);word-break:break-all}.console{max-width:1080px;margin-inline:auto;padding:var(--s3) var(--s4) var(--s6)}.console-header{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;min-height:64px}.console-header h1{margin:0}.console-header .meta{font-size:var(--fs-aux)}.header-actions{margin-left:auto;display:flex;gap:var(--s1);flex-wrap:wrap}.console-header .error{flex-basis:100%;margin:0}.stack{display:grid;gap:var(--s4)}.stack section{scroll-margin-top:var(--s3)}.card{background:var(--surface);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);border-radius:var(--r-card);padding:var(--s3);box-shadow:var(--shadow)}.row-head{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}.row-gap{display:flex;gap:var(--s1);margin-top:var(--s2);flex-wrap:wrap}.badge{display:inline-flex;align-items:center;height:24px;padding:0 var(--s2);border-radius:var(--r-pill);background:var(--control);font-size:var(--fs-aux);color:var(--muted)}.badge.ok{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok)}.muted{color:var(--muted);font-size:var(--fs-aux)}.error{color:var(--danger)}.ok{color:var(--ok)}button{font:inherit;color:var(--text);cursor:pointer;background-color:var(--control);background-image:linear-gradient(135deg,var(--accent),var(--accent-deep));background-repeat:no-repeat;background-size:0% 100%;border:none;border-radius:var(--r-control);padding:var(--s1) var(--s2)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background-color:var(--accent);background-image:linear-gradient(120deg,var(--accent) 0%,var(--accent-deep) 50%,var(--accent) 100%);background-size:200% 100%;color:var(--on-accent);font-weight:700}button.danger{color:var(--danger);background-color:color-mix(in srgb,var(--danger) 10%,transparent);background-image:linear-gradient(135deg,var(--danger),var(--danger-deep))}button.ghost{background-color:transparent;color:var(--muted)}button:hover:not(:disabled):not(.primary){background-size:100% 100%;color:var(--on-accent)}button.primary:hover:not(:disabled){background-position:100% 0}button.danger:hover:not(:disabled){color:var(--on-danger)}input,select,textarea{font:inherit;color:var(--text);background:var(--control);border:none;border-radius:var(--r-control);padding:var(--s1) var(--s2)}input,textarea{width:100%}input[type=checkbox]{width:auto;accent-color:var(--accent)}textarea{resize:vertical}label{display:flex;flex-direction:column;gap:var(--s1);margin:var(--s2) 0 0}label.checkbox{flex-direction:row;align-items:center}label+button{margin-top:var(--s2)}.grid-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--s2);align-items:end}.grid-form label{margin:0}fieldset{border:none;margin:var(--s3) 0 0;padding:0}legend{padding:0;margin-bottom:var(--s1);color:var(--muted);font-size:var(--fs-aux);font-weight:600}.segmented{display:inline-flex;flex-wrap:wrap;gap:var(--s1);background:var(--control);border-radius:var(--r-control);padding:var(--s1)}.segmented>button,.segmented>.tab-link{display:inline-flex;align-items:center;background-color:transparent;background-image:linear-gradient(135deg,var(--accent),var(--accent-deep));background-repeat:no-repeat;background-size:0% 100%;color:var(--muted);border-radius:var(--r-control);padding:var(--s1) var(--s2);text-decoration:none}.segmented>.active{background-size:100% 100%;color:var(--on-accent)}.segmented>.tab-link:hover{background-size:100% 100%;color:var(--on-accent)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--s2);margin-top:var(--s2)}.stat-card{background:var(--control);border-radius:var(--r-card);padding:var(--s2);display:flex;flex-direction:column;gap:var(--s1)}.stat-label{color:var(--muted);font-size:var(--fs-aux)}.stat-value{font-size:var(--fs-stat);font-weight:700;color:var(--accent);word-break:break-all}table{width:100%;border-collapse:separate;border-spacing:0 var(--s1);margin-top:var(--s2)}th{text-align:left;font-size:var(--fs-aux);font-weight:600;color:var(--muted);padding:0 var(--s2)}td{text-align:left;padding:var(--s1) var(--s2);background:var(--control)}td:first-child{border-radius:var(--r-control) 0 0 var(--r-control)}td:last-child{border-radius:0 var(--r-control) var(--r-control) 0}tbody tr:hover td{background:color-mix(in srgb,var(--accent) 8%,var(--control))}tr.active td{background:color-mix(in srgb,var(--accent) 16%,transparent)}.flow-steps{margin:var(--s1) 0 0;padding-left:var(--s3)}.flow-steps li{margin:var(--s1) 0}.flow-steps li.off{color:var(--muted)}.config-preview{max-height:320px;overflow:auto;background:var(--control);border-radius:var(--r-control);padding:var(--s2);margin:var(--s2) 0 0;font-size:var(--fs-aux)}.patch-editor{font-family:Consolas,Cascadia Mono,monospace;width:100%}.subscription-bar{display:flex;flex-direction:column;gap:var(--s2)}.subscription-bar h2{margin:0}.subscription-row{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}.subscription-row code{flex:1;min-width:240px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.login-page{min-height:100dvh;display:grid;place-items:center;padding:var(--s2)}.theme-toggle{position:fixed;top:var(--s3);right:var(--s3)}.login-card{width:min(420px,100%);display:flex;flex-direction:column;gap:var(--s2)}.login-card h1{margin:0;font-size:var(--fs-stat)}.login-card label{margin:0}.login-card .primary{width:100%}.hint{color:var(--muted);font-size:var(--fs-aux);margin:0}details{margin-top:var(--s2)}summary{cursor:pointer;color:var(--accent);font-weight:600;padding:var(--s1) 0}.dialog{border:none;padding:var(--s3);border-radius:var(--r-card);background:var(--surface);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);color:var(--text);box-shadow:var(--shadow-lift);min-width:min(360px,calc(100vw - 2 * var(--s2)))}.dialog::backdrop{background:#0006}.dialog p{margin:0}.dialog .row-gap{margin-top:var(--s2)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,a:focus-visible{outline:none;box-shadow:var(--focus-ring)}@media(prefers-reduced-motion:no-preference){button,.segmented>*{transition:background-size .25s ease,background-position .25s ease,color .25s ease,transform .15s ease}.card,.stat-card{transition:transform .25s ease,box-shadow .25s ease}.card:hover,.stat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift)}button:active:not(:disabled),.segmented>*:active{transform:translateY(1px)}}@media(prefers-reduced-transparency:reduce){.card,.dialog{background:var(--surface-solid);backdrop-filter:none;-webkit-backdrop-filter:none}}
