:root{--bg:#f6f7f9;--surface:#fff;--surface-2:#f1f4f7;--border:#e3e7ed;--border-strong:#cfd6df;--text:#0f172a;--text-2:#475569;--text-3:#8592a6;--primary:#0f766e;--primary-hover:#0b5f58;--primary-soft:#e6f4f2;--primary-text:#0b5f58;--on-primary:#fff;--accent:#d97706;--success:#15803d;--success-soft:#e8f6ec;--warning:#b45309;--warning-soft:#fdf3e2;--danger:#c2410c;--danger-strong:#b91c1c;--danger-soft:#fdecea;--info:#1d4ed8;--info-soft:#e8effd;--shadow:0 1px 2px #0f172a0d, 0 1px 3px #0f172a0a;--shadow-lg:0 12px 40px #0f172a29;--radius:10px;--radius-sm:7px;--mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--sidebar:236px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0d1117;--surface:#151b23;--surface-2:#1c2430;--border:#262f3b;--border-strong:#354152;--text:#e6edf3;--text-2:#a7b3c2;--text-3:#6f7d8f;--primary:#2dd4bf;--primary-hover:#5eead4;--primary-soft:#11302d;--primary-text:#5eead4;--on-primary:#04201d;--success:#4ade80;--success-soft:#12301e;--warning:#fbbf24;--warning-soft:#33280f;--danger:#fb923c;--danger-strong:#f87171;--danger-soft:#3a1d14;--info:#93b4fb;--info-soft:#172544;--shadow:0 1px 2px #0000004d;--shadow-lg:0 12px 40px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0d1117;--surface:#151b23;--surface-2:#1c2430;--border:#262f3b;--border-strong:#354152;--text:#e6edf3;--text-2:#a7b3c2;--text-3:#6f7d8f;--primary:#2dd4bf;--primary-hover:#5eead4;--primary-soft:#11302d;--primary-text:#5eead4;--on-primary:#04201d;--success:#4ade80;--success-soft:#12301e;--warning:#fbbf24;--warning-soft:#33280f;--danger:#fb923c;--danger-strong:#f87171;--danger-soft:#3a1d14;--info:#93b4fb;--info-soft:#172544;--shadow:0 1px 2px #0000004d;--shadow-lg:0 12px 40px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,Noto Sans,sans-serif}a{color:var(--primary-text);text-decoration:none}a:hover{text-decoration:underline}code,pre,.mono{font-family:var(--mono);font-size:12.5px}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;line-height:1.25}h1{font-size:22px;font-weight:650}h2{font-size:16px;font-weight:620}h3{font-size:14px;font-weight:620}p{margin:0}hr{border:0;border-top:1px solid var(--border);margin:16px 0}.app{min-height:100%;display:flex}.sidebar{width:var(--sidebar);background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.brand{letter-spacing:-.02em;align-items:center;gap:10px;padding:18px 18px 14px;font-size:17px;font-weight:700;display:flex}.brand-mark{background:var(--primary);width:28px;height:28px;color:var(--on-primary);border-radius:8px;place-items:center;display:grid}.nav{flex-direction:column;gap:1px;padding:4px 10px 16px;display:flex}.nav-section{text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);padding:14px 10px 6px;font-size:11px;font-weight:600}.nav a{color:var(--text-2);border-radius:7px;align-items:center;gap:10px;padding:7px 10px;font-weight:500;display:flex}.nav a:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.nav a.active{background:var(--primary-soft);color:var(--primary-text)}.nav svg{flex-shrink:0;width:17px;height:17px}.sidebar-foot{border-top:1px solid var(--border);margin-top:auto;padding:14px}.usage-meter{color:var(--text-2);font-size:12px}.usage-meter .bar{margin-top:6px}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--border);background:var(--surface);z-index:10;align-items:center;gap:12px;height:56px;padding:0 28px;display:flex;position:sticky;top:0}.topbar .spacer{flex:1}.content{width:100%;max-width:1240px;padding:26px 28px 60px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.page-head p{color:var(--text-2);max-width:720px;margin-top:4px}.menu-btn{display:none}@media (width<=900px){.sidebar{z-index:50;box-shadow:var(--shadow-lg);transition:transform .2s;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{transform:none}.menu-btn{display:inline-flex}.content{padding:18px 16px 48px}.topbar{padding:0 16px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.card-head p{color:var(--text-2);margin-top:2px;font-size:13px}.card-body{padding:18px}.card+.card,.stack>*+*{margin-top:16px}.grid{gap:16px;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (width<=1000px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:1fr 1fr}}@media (width<=680px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row.between{justify-content:space-between}.col{flex-direction:column;gap:6px;display:flex}.muted{color:var(--text-2)}.faint{color:var(--text-3);font-size:12.5px}.small{font-size:12.5px}.nowrap{white-space:nowrap}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.right{text-align:right}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}.stat{padding:16px 18px}.stat-label{color:var(--text-2);font-size:12.5px;font-weight:500}.stat-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:4px;font-size:26px;font-weight:650}.stat-sub{color:var(--text-3);margin-top:2px;font-size:12px}.btn{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);height:34px;color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:7px;padding:0 14px;font-weight:550;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover{background:var(--surface-2);text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn svg{width:15px;height:15px}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn-danger{color:var(--danger-strong);border-color:var(--border-strong)}.btn-danger:hover{background:var(--danger-soft)}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-2)}.btn-sm{height:28px;padding:0 10px;font-size:12.5px}.btn-icon{width:34px;padding:0}.field{flex-direction:column;gap:6px;display:flex}.field+.field{margin-top:14px}.label{font-size:13px;font-weight:550}.hint{color:var(--text-3);font-size:12.5px}.input,.select,.textarea{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;height:36px;color:var(--text);font:inherit;outline:none;padding:0 11px}.textarea{resize:vertical;height:auto;min-height:90px;padding:9px 11px;line-height:1.5}.textarea.code{font-family:var(--mono);font-size:12.5px}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.check{cursor:pointer;align-items:flex-start;gap:8px;display:flex}.check input{accent-color:var(--primary);margin-top:3px}.form-error{background:var(--danger-soft);color:var(--danger-strong);border-radius:var(--radius-sm);margin-bottom:14px;padding:9px 12px;font-size:13px}.switch{flex-shrink:0;width:36px;height:20px;position:relative}.switch input{opacity:0;width:0;height:0}.switch span{background:var(--border-strong);cursor:pointer;border-radius:20px;transition:all .15s;position:absolute;inset:0}.switch span:before{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:all .15s;position:absolute;top:2px;left:2px}.switch input:checked+span{background:var(--primary)}.switch input:checked+span:before{transform:translate(16px)}.table-wrap{overflow-x:auto}table.table{border-collapse:collapse;width:100%}.table th{text-align:left;color:var(--text-2);border-bottom:1px solid var(--border);background:var(--surface-2);white-space:nowrap;padding:9px 14px;font-size:12px;font-weight:600}.table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 14px}.table tr:last-child td{border-bottom:0}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:var(--surface-2)}.table .num{text-align:right;font-variant-numeric:tabular-nums}.badge{background:var(--surface-2);height:21px;color:var(--text-2);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:0 8px;font-size:11.5px;font-weight:600;display:inline-flex}.badge:before{content:"";opacity:.85;background:currentColor;border-radius:50%;width:6px;height:6px}.badge.plain:before{display:none}.badge.success{background:var(--success-soft);color:var(--success)}.badge.warning{background:var(--warning-soft);color:var(--warning)}.badge.danger{background:var(--danger-soft);color:var(--danger-strong)}.badge.info{background:var(--info-soft);color:var(--info)}.badge.primary{background:var(--primary-soft);color:var(--primary-text)}.tag{background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);border-radius:5px;margin-right:4px;padding:1px 7px;font-size:11.5px;display:inline-block}.bar{background:var(--surface-2);border-radius:6px;height:6px;overflow:hidden}.bar>div{background:var(--primary);border-radius:6px;height:100%}.bar.warn>div{background:var(--accent)}.empty{text-align:center;color:var(--text-2);padding:44px 20px}.empty h3{color:var(--text);margin-bottom:6px}.empty .btn{margin-top:14px}.copy-field{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--mono);align-items:center;gap:8px;padding:6px 6px 6px 10px;font-size:12.5px;display:flex}.copy-field span{overflow-wrap:anywhere;flex:1}.code-block{color:#dbe4ee;border-radius:var(--radius-sm);white-space:pre;background:#0f172a;margin:0;padding:14px 16px;font-size:12.5px;line-height:1.6;overflow-x:auto}.callout{border-radius:var(--radius-sm);background:var(--info-soft);color:var(--text);border:1px solid #0000;gap:10px;padding:12px 14px;font-size:13px;display:flex}.callout.warning{background:var(--warning-soft)}.callout.success{background:var(--success-soft)}.callout.danger{background:var(--danger-soft)}.callout svg{flex-shrink:0;width:18px;height:18px;margin-top:1px}.tabs{border-bottom:1px solid var(--border);gap:2px;margin-bottom:18px;display:flex;overflow-x:auto}.tabs button{font:inherit;color:var(--text-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 14px;font-weight:550}.tabs button.active{color:var(--primary-text);border-bottom-color:var(--primary)}.kv{grid-template-columns:150px 1fr;gap:8px 16px;font-size:13px;display:grid}.kv dt{color:var(--text-2)}.kv dd{overflow-wrap:anywhere;margin:0}.timeline{margin:0;padding:0;list-style:none}.timeline li{padding:0 0 16px 22px;position:relative}.timeline li:before{content:"";background:var(--primary);border-radius:50%;width:8px;height:8px;position:absolute;top:6px;left:4px}.timeline li:after{content:"";background:var(--border);width:1px;position:absolute;top:16px;bottom:0;left:7.5px}.timeline li:last-child:after{display:none}.spinner{border:2px solid var(--border-strong);border-top-color:var(--primary);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.center-page{place-items:center;min-height:100%;padding:24px 16px;display:grid}.auth-card{width:100%;max-width:400px}.auth-card .brand{justify-content:center;padding:0 0 18px;font-size:20px}.overlay{z-index:100;background:#0f172a73;justify-content:center;align-items:flex-start;padding:60px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);width:100%;max-width:540px;box-shadow:var(--shadow-lg);border:1px solid var(--border);border-radius:12px}.modal.wide{max-width:820px}.modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-body{padding:20px}.modal-foot{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}.drawer-overlay{z-index:90;background:#0f172a59;position:fixed;inset:0}.drawer{background:var(--surface);z-index:91;width:min(680px,100%);box-shadow:var(--shadow-lg);border-left:1px solid var(--border);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.drawer-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.drawer-body{flex:1;padding:20px;overflow-y:auto}.toasts{z-index:200;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.toast{background:var(--text);color:var(--bg);box-shadow:var(--shadow-lg);border-radius:8px;max-width:380px;padding:10px 14px;font-size:13px;animation:.18s ease-out rise}.toast.error{background:var(--danger-strong);color:#fff}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.chart{width:100%;height:220px}.chart .grid-line{stroke:var(--border)}.chart .axis-label{fill:var(--text-3);font-size:10.5px}.legend{color:var(--text-2);gap:16px;font-size:12px;display:flex}.legend i{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.checklist{margin:0;padding:0;list-style:none}.checklist li{border-bottom:1px solid var(--border);align-items:flex-start;gap:12px;padding:12px 0;display:flex}.checklist li:last-child{border-bottom:0}.check-dot{border:2px solid var(--border-strong);border-radius:50%;flex-shrink:0;place-items:center;width:22px;height:22px;display:grid}.check-dot.done{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.check-dot svg{width:13px;height:13px}.plans{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}@media (width<=1000px){.plans{grid-template-columns:1fr 1fr}}@media (width<=640px){.plans{grid-template-columns:1fr}}.plan{flex-direction:column;gap:10px;padding:18px;display:flex}.plan.current{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.plan-price{letter-spacing:-.02em;font-size:26px;font-weight:700}.plan-price small{color:var(--text-2);font-size:13px;font-weight:500}.plan ul{color:var(--text-2);margin:0;padding-left:18px;font-size:13px}.segmented{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:2px;display:inline-flex}.segmented button{font:inherit;color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:5px 12px;font-size:13px;font-weight:550}.segmented button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.preview-frame{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;width:100%;height:520px}.score-ring{border-radius:50%;flex-shrink:0;place-items:center;width:84px;height:84px;font-size:24px;font-weight:700;display:grid}.check-row{border-bottom:1px solid var(--border);gap:10px;padding:10px 0;display:flex}.check-row:last-child{border-bottom:0}.status-icon{border-radius:50%;flex-shrink:0;place-items:center;width:20px;height:20px;font-size:12px;font-weight:700;display:grid}.status-icon.pass{background:var(--success-soft);color:var(--success)}.status-icon.warn{background:var(--warning-soft);color:var(--warning)}.status-icon.fail{background:var(--danger-soft);color:var(--danger-strong)}.status-icon.info{background:var(--info-soft);color:var(--info)}.split{grid-template-columns:380px 1fr;align-items:start;gap:16px;display:grid}@media (width<=1050px){.split{grid-template-columns:1fr}}.list-item{border-bottom:1px solid var(--border);cursor:pointer;padding:12px 14px}.list-item:hover{background:var(--surface-2)}.list-item.active{background:var(--primary-soft)}.list-item:last-child{border-bottom:0}.dev-banner{background:var(--warning-soft);color:var(--warning);border-bottom:1px solid var(--border);padding:6px 28px;font-size:12.5px}.grid-2-1{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}@media (width<=1000px){.grid-2-1{grid-template-columns:1fr}}.filters{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.filters .input,.filters .select{width:auto;min-width:150px}.filters .input.grow{flex:1;min-width:200px}.grid>.card,.grid>.stack,.plans>.card,.split>.card,.split>.stack{margin-top:0}.stack>.card+.card{margin-top:16px}.grid>.field+.field{margin-top:0}.plans+.card,.grid+.card,.card+.grid,.grid+.grid{margin-top:16px}.btn.menu-btn{display:none}@media (width<=900px){.btn.menu-btn{display:inline-flex}.topbar .user-email{display:none}}
