:root{--ink: #0f1729;--ink-2: #33415c;--ink-3: #6b7a90;--ink-4: #93a1b5;--line: #e4e8ef;--line-strong: #ccd4e0;--bg: #f6f7f9;--bg-deep: #eef1f5;--surface: #ffffff;--accent: #1e4b8f;--accent-hover: #17396e;--accent-soft: #eef3fb;--accent-line: #c6d7ef;--ok: #0f766e;--ok-soft: #ecfdf5;--warn: #b45309;--warn-soft: #fffbeb;--bad: #b3261e;--bad-soft: #fef2f2;--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--shadow-1: 0 1px 2px rgba(15, 23, 41, .05);--shadow-2: 0 6px 24px rgba(15, 23, 41, .07);--shadow-3: 0 16px 48px rgba(15, 23, 41, .12);--font-sans: "Inter", "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", system-ui, -apple-system, "Segoe UI", sans-serif;--font-serif: "Songti SC", "Source Han Serif SC", "Noto Serif SC", Georgia, "Times New Roman", serif;--font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;--header-h: 64px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{min-height:100vh;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:14px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.01em}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;font-size:inherit;cursor:pointer}textarea,input,select{font-family:inherit;font-size:inherit;color:inherit}::selection{background:#cfe0f7}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#d3dae4;border:3px solid transparent;background-clip:content-box;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#b9c3d1;background-clip:content-box}.app-shell{display:flex;flex-direction:column;min-height:100vh}.container{width:100%;max-width:1280px;margin:0 auto;padding:0 28px}.page{flex:1;padding-bottom:72px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:40px 0 18px}.section-title{font-family:var(--font-serif);font-size:20px;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:10px}.section-title:before{content:"";width:3px;height:18px;border-radius:2px;background:var(--accent);display:inline-block}.section-sub{color:var(--ink-3);font-size:13px}.app-header{position:sticky;top:0;z-index:40;height:var(--header-h);background:#ffffffe6;-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--line)}.app-header .container{height:100%;display:flex;align-items:center;gap:20px}.brand{display:flex;align-items:center;gap:11px;-webkit-user-select:none;user-select:none}.brand-mark{width:34px;height:34px;border-radius:9px;background:linear-gradient(150deg,#24569e,#16325f);color:#fff;display:grid;place-items:center;font-family:var(--font-serif);font-size:17px;font-weight:700;letter-spacing:-1px;box-shadow:var(--shadow-1)}.brand-text{display:flex;flex-direction:column;line-height:1.25}.brand-name{font-family:var(--font-serif);font-size:17px;font-weight:700;letter-spacing:.06em}.brand-tag{font-size:11px;color:var(--ink-4);letter-spacing:.12em;text-transform:uppercase}.nav{margin-left:12px;display:flex;gap:4px}.nav-item{padding:7px 13px;border-radius:999px;color:var(--ink-2);font-size:13.5px;border:1px solid transparent;background:transparent;transition:all .15s ease}.nav-item:hover{background:var(--accent-soft);color:var(--accent)}.nav-item.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-line);font-weight:500}.header-right{margin-left:auto;display:flex;align-items:center;gap:14px}.engine-badge{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:12px;color:var(--ink-2)}.dot{width:7px;height:7px;border-radius:50%;background:var(--ink-4);flex:none}.dot.ok{background:#16a34a;box-shadow:0 0 0 3px #16a34a24}.dot.warn{background:#d97706;box-shadow:0 0 0 3px #d9770624}.hero{padding:56px 0 8px;text-align:center}.hero-title{font-family:var(--font-serif);font-size:38px;font-weight:700;letter-spacing:.01em;line-height:1.3}.hero-title em{font-style:normal;color:var(--accent)}.hero-sub{margin:16px auto 0;max-width:680px;color:var(--ink-3);font-size:14.5px;line-height:1.8}.hero-tags{margin-top:22px;display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.hero-tag{display:inline-flex;align-items:center;gap:7px;padding:6px 13px;border:1px solid var(--line);background:#fff;border-radius:999px;font-size:12.5px;color:var(--ink-2)}.hero-tag svg{width:14px;height:14px;color:var(--accent)}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.service-card{position:relative;text-align:left;padding:20px 18px 18px;border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-1);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;display:flex;flex-direction:column;gap:10px;overflow:hidden}.service-card:after{content:"";position:absolute;inset:0 0 auto;height:3px;background:transparent;transition:background .18s ease}.service-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-2);border-color:var(--line-strong)}.service-card.active{border-color:var(--accent-line);background:linear-gradient(180deg,var(--accent-soft),#fff 55%)}.service-card.active:after{background:var(--accent)}.service-icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--bg-deep);color:var(--accent)}.service-card.active .service-icon{background:#dde9fa}.service-icon svg{width:19px;height:19px}.service-title{font-size:15.5px;font-weight:600;display:flex;align-items:center;gap:8px}.service-desc{font-size:12.5px;color:var(--ink-3);line-height:1.7;flex:1}.service-tag{align-self:flex-start;font-size:11px;padding:2px 8px;border-radius:5px;background:var(--bg-deep);color:var(--ink-2);letter-spacing:.02em}.service-card.active .service-tag{background:#dde9fa;color:var(--accent-hover)}.workbench{display:grid;grid-template-columns:minmax(0,1fr) 332px;gap:16px;align-items:start}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-1)}.panel-head{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line)}.panel-title{font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px}.panel-head-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.editor-wrap{padding:16px 18px 0}.editor{width:100%;min-height:372px;max-height:60vh;resize:vertical;padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fcfdff;font-size:14.5px;line-height:1.95;color:var(--ink);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.editor::placeholder{color:var(--ink-4);line-height:1.95}.editor:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px #1e4b8f14;background:#fff}.editor-foot{display:flex;align-items:center;gap:14px;padding:12px 18px;border-top:1px solid var(--line);background:#fbfcfd;border-radius:0 0 var(--radius) var(--radius);flex-wrap:wrap}.stat-inline{display:flex;align-items:baseline;gap:6px;font-size:12.5px;color:var(--ink-3)}.stat-inline b{font-family:var(--font-mono);font-size:15px;color:var(--ink);font-weight:600}.stat-inline b.over{color:var(--bad)}.link-btn{border:none;background:none;padding:4px 6px;color:var(--ink-3);font-size:12.5px;border-radius:5px;transition:color .15s ease,background .15s ease}.link-btn:hover{color:var(--accent);background:var(--accent-soft)}.platform-tips{margin:9px 0 0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:5px}.platform-tips li{position:relative;padding-left:13px;color:var(--ink-2);line-height:1.6}.platform-tips li:before{content:"";position:absolute;left:2px;top:8px;width:4px;height:4px;border-radius:50%;background:var(--accent)}.verify-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:10px}.verify-item{display:flex;align-items:center;gap:10px;padding:11px 13px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff}.verify-item.failed{border-color:#f2cfcb;background:var(--bad-soft)}.verify-icon{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--ok-soft);color:var(--ok)}.verify-item.failed .verify-icon{background:#fbe3e1;color:var(--bad)}.verify-icon svg{width:13px;height:13px}.verify-text{min-width:0;flex:1}.verify-label{font-size:13px;color:var(--ink);font-weight:500}.verify-meta{font-size:11.5px;color:var(--ink-4);font-family:var(--font-mono);margin-top:2px}.verify-advice{grid-column:1 / -1;font-size:12.5px;color:var(--warn);line-height:1.7;padding:2px 4px 8px}.grounding-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px}.grounding-cell{padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fbfcfd}.grounding-cell .k{font-size:11.5px;color:var(--ink-4)}.grounding-cell .v{font-family:var(--font-mono);font-size:18px;font-weight:600;margin-top:4px}.grounding-cell .v.ok{color:var(--ok)}.grounding-cell .v.bad{color:var(--bad)}.grounding-cell .sub{font-size:11.5px;color:var(--ink-3);margin-top:2px}@media(max-width:1180px){.grounding-row{grid-template-columns:1fr}}.sidebar{display:flex;flex-direction:column;gap:16px;position:sticky;top:calc(var(--header-h) + 16px)}.field{padding:16px 18px;border-bottom:1px solid var(--line)}.field:last-child{border-bottom:none}.field-label{font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:9px;display:flex;align-items:center;gap:6px}.field-hint{font-size:11.5px;color:var(--ink-4);margin-top:7px;line-height:1.6}.chip-row{display:flex;flex-wrap:wrap;gap:7px}.chip{padding:5px 11px;border-radius:7px;border:1px solid var(--line);background:#fff;color:var(--ink-2);font-size:12.5px;transition:all .14s ease;display:inline-flex;align-items:center;gap:6px}.chip:hover{border-color:var(--line-strong);color:var(--ink)}.chip.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-hover);font-weight:500}.chip-flag{font-size:10px;padding:1px 5px;border-radius:4px;background:var(--ok-soft);color:var(--ok)}.chip-flag.new{background:#fef3c7;color:var(--warn)}.select{width:100%;padding:9px 30px 9px 11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;font-size:13.5px;color:var(--ink);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4.5L6 8.5L10 4.5' stroke='%236b7a90' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right 11px center}.select:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px #1e4b8f14}.mode-summary{margin-top:10px;padding:11px 12px;border-radius:var(--radius-sm);background:#f8fafc;border:1px solid var(--line);font-size:12px;color:var(--ink-2);line-height:1.75}.mode-summary dl{margin:8px 0 0;display:grid;grid-template-columns:auto 1fr;gap:4px 10px}.mode-summary dt{color:var(--ink-4)}.mode-summary dd{margin:0;color:var(--ink-2)}.whitelist-input{width:100%;min-height:66px;padding:10px 11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;font-size:13px;line-height:1.7;resize:vertical;outline:none}.whitelist-input:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px #1e4b8f14}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.switch{position:relative;width:40px;height:22px;border-radius:999px;border:1px solid var(--line-strong);background:#e9edf3;transition:background .18s ease,border-color .18s ease;flex:none;padding:0}.switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:var(--shadow-1);transition:transform .18s ease}.switch.on{background:var(--accent);border-color:var(--accent)}.switch.on:after{transform:translate(18px)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:#fff;color:var(--ink-2);font-size:13.5px;font-weight:500;transition:all .15s ease;white-space:nowrap}.btn:hover:not(:disabled){border-color:var(--ink-4);color:var(--ink)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn svg{width:15px;height:15px}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 2px 8px #1e4b8f38}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.btn-ghost{border-color:transparent;background:transparent}.btn-ghost:hover:not(:disabled){background:var(--bg-deep);border-color:transparent}.btn-block{width:100%}.action-bar{padding:14px 18px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.action-bar .spacer{flex:1}.progress-card{margin-top:16px;padding:18px}.progress-top{display:flex;align-items:center;gap:12px;margin-bottom:14px}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--accent-line);border-top-color:var(--accent);animation:spin .75s linear infinite;flex:none}@keyframes spin{to{transform:rotate(360deg)}}.progress-stage{font-size:14px;font-weight:500}.progress-pct{margin-left:auto;font-family:var(--font-mono);font-size:13px;color:var(--ink-2)}.progress-track{height:6px;border-radius:999px;background:var(--bg-deep);overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#2f62b3,#1e4b8f);transition:width .35s ease}.progress-steps{margin-top:14px;display:flex;gap:8px;flex-wrap:wrap}.step-pill{font-size:11.5px;padding:3px 10px;border-radius:999px;border:1px solid var(--line);color:var(--ink-4);background:#fff}.step-pill.done{color:var(--ok);border-color:#b7e4d2;background:var(--ok-soft)}.step-pill.active{color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft)}.chunk-grid{margin-top:14px;display:flex;flex-wrap:wrap;gap:5px}.chunk-pill{width:26px;height:22px;border-radius:5px;border:1px solid var(--line);background:#fff;font-size:10px;color:var(--ink-4);display:grid;place-items:center;font-family:var(--font-mono);transition:all .2s ease}.chunk-pill.running{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent);animation:pulse 1.2s ease-in-out infinite}.chunk-pill.done{border-color:#b7e4d2;background:var(--ok-soft);color:var(--ok)}.chunk-pill.verified{border-color:#86d0b3;background:#d9f6e8;color:#0b5c46}.chunk-pill.flagged{border-color:#f0c8c4;background:var(--bad-soft);color:var(--bad)}.chunk-pill.repairing{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);animation:pulse .9s ease-in-out infinite}@keyframes pulse{50%{opacity:.55}}.live-preview{margin-top:14px;padding:14px 16px;border-radius:var(--radius-sm);background:#fbfcfd;border:1px dashed var(--line-strong);font-size:13.5px;line-height:1.95;color:var(--ink-2);max-height:220px;overflow:auto;white-space:pre-wrap;word-break:break-word}.metric-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.metric-card{padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow-1)}.metric-label{font-size:12.5px;color:var(--ink-3);display:flex;align-items:center;gap:6px}.metric-value{margin-top:9px;display:flex;align-items:baseline;gap:7px;font-family:var(--font-mono)}.metric-now{font-size:26px;font-weight:600;letter-spacing:-.02em}.metric-was{font-size:13px;color:var(--ink-4);text-decoration:line-through}.metric-unit{font-size:13px;color:var(--ink-4)}.delta{display:inline-flex;align-items:center;gap:3px;margin-top:8px;font-size:12px;padding:2px 8px;border-radius:5px;font-family:var(--font-mono)}.delta.good{color:var(--ok);background:var(--ok-soft)}.delta.bad{color:var(--bad);background:var(--bad-soft)}.delta.flat{color:var(--ink-3);background:var(--bg-deep)}.result-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.seg{display:inline-flex;padding:2px;border-radius:8px;background:var(--bg-deep);border:1px solid var(--line)}.seg button{border:none;background:transparent;padding:5px 12px;border-radius:6px;font-size:12.5px;color:var(--ink-3);transition:all .15s ease}.seg button.active{background:#fff;color:var(--ink);font-weight:500;box-shadow:var(--shadow-1)}.result-body{padding:20px 22px 24px;max-height:62vh;overflow:auto}.output-text{font-size:14.5px;line-height:2.05;color:var(--ink);white-space:pre-wrap;word-break:break-word}.output-text p{margin:0 0 16px;text-indent:2em}.diff-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.diff-col-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:8px;padding:6px 0 10px;background:#fff;font-size:12.5px;color:var(--ink-3);border-bottom:1px solid var(--line);margin-bottom:12px}.diff-col-head b{color:var(--ink);font-weight:600}.diff-para{font-size:14px;line-height:2;margin:0 0 14px;text-indent:2em;word-break:break-word}.diff-para.same{color:var(--ink-2)}mark.del{background:#fde2e0;color:#8f1d18;border-radius:2px;padding:0 1px}mark.add{background:#d9f2e4;color:#0b5c46;border-radius:2px;padding:0 1px}.diff-legend{display:flex;gap:16px;font-size:12px;color:var(--ink-3);padding:10px 0 0}.legend-item{display:inline-flex;align-items:center;gap:6px}.swatch{width:12px;height:12px;border-radius:3px;display:inline-block}.swatch.del{background:#fde2e0}.swatch.add{background:#d9f2e4}.gauge-wrap{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;align-items:center}.gauge{position:relative;width:200px;height:200px;margin:0 auto}.gauge svg{transform:rotate(-90deg)}.gauge-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.gauge-num{font-family:var(--font-mono);font-size:36px;font-weight:600;letter-spacing:-.03em;line-height:1}.gauge-unit{font-size:13px;color:var(--ink-4);margin-top:4px}.gauge-cap{font-size:12px;color:var(--ink-3);margin-top:8px}.reason-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}.reason-list li{display:flex;gap:9px;align-items:flex-start;font-size:13px;color:var(--ink-2);line-height:1.7}.reason-list li svg{width:15px;height:15px;color:var(--warn);flex:none;margin-top:3px}.advice{margin-top:16px;padding:13px 15px;border-radius:var(--radius-sm);background:var(--accent-soft);border:1px solid var(--accent-line);font-size:13px;color:var(--accent-hover);line-height:1.75}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:5px;font-size:11.5px;font-weight:500}.badge.low{background:var(--ok-soft);color:var(--ok)}.badge.medium{background:var(--warn-soft);color:var(--warn)}.badge.high{background:var(--bad-soft);color:var(--bad)}.badge.neutral{background:var(--bg-deep);color:var(--ink-2)}.contact-card{margin-top:48px;border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(180deg,#fff,#fbfcfe);box-shadow:var(--shadow-1);overflow:hidden}.contact-inner{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:32px;padding:34px 36px;align-items:center}.contact-title{font-family:var(--font-serif);font-size:22px;font-weight:600;margin-bottom:12px}.contact-desc{color:var(--ink-3);font-size:13.5px;line-height:1.85;max-width:560px}.contact-points{margin-top:18px;display:flex;flex-direction:column;gap:9px}.contact-point{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--ink-2)}.contact-point svg{width:15px;height:15px;color:var(--ok);flex:none}.wechat-box{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:18px;text-align:center;box-shadow:var(--shadow-1)}.qr-slot{width:150px;height:150px;margin:0 auto 12px;border-radius:10px;border:1px dashed var(--line-strong);background:repeating-conic-gradient(#f4f6f9,#f4f6f9 25%,#fff 0%,#fff 50%) 50% / 14px 14px;display:grid;place-items:center;overflow:hidden}.qr-slot img{width:100%;height:100%;object-fit:cover}.qr-fallback{font-size:11.5px;color:var(--ink-4);line-height:1.6;padding:0 12px}.wechat-id{font-family:var(--font-mono);font-size:15px;font-weight:600;letter-spacing:.02em;margin-bottom:4px;word-break:break-all}.wechat-tip{font-size:12px;color:var(--ink-4);margin-bottom:12px}.copy-inline{border:1px solid var(--line);background:#fff;border-radius:7px;padding:6px 14px;font-size:12.5px;color:var(--ink-2);transition:all .15s ease}.copy-inline:hover{border-color:var(--accent-line);color:var(--accent);background:var(--accent-soft)}.copy-inline.copied{border-color:#b7e4d2;color:var(--ok);background:var(--ok-soft)}.site-footer{border-top:1px solid var(--line);background:#fff;padding:26px 0 32px;margin-top:56px}.footer-inner{display:flex;gap:20px;align-items:center;flex-wrap:wrap;justify-content:space-between;font-size:12.5px;color:var(--ink-4)}.footer-links{display:flex;gap:18px;flex-wrap:wrap}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;background:#0f17296b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;padding:24px;animation:mask-in .18s ease}@keyframes mask-in{0%{opacity:0}}.modal-card{position:relative;width:100%;max-width:440px;max-height:90vh;overflow:auto;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-3);padding:28px 30px 24px;animation:card-in .2s ease}@keyframes card-in{0%{opacity:0;transform:translateY(10px) scale(.98)}}.modal-close{position:absolute;top:14px;right:14px;width:30px;height:30px;border:none;background:transparent;color:var(--ink-4);border-radius:8px;display:grid;place-items:center}.modal-close:hover{background:var(--bg-deep);color:var(--ink)}.modal-head{display:flex;gap:13px;align-items:flex-start;margin-bottom:20px}.modal-title{font-size:18px;font-weight:600}.modal-sub{font-size:12.5px;color:var(--ink-3);line-height:1.6;margin-top:3px}.modal-foot{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);display:flex;align-items:center;gap:4px;font-size:12.5px;color:var(--ink-3)}.form-item{margin-bottom:14px}.form-item label{display:block;font-size:12.5px;font-weight:500;color:var(--ink-2);margin-bottom:6px}.input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;font-size:14px;color:var(--ink);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.input:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px #1e4b8f14}.input::placeholder{color:var(--ink-4)}.quota-banner{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 16px;border-radius:var(--radius);border:1px solid var(--accent-line);background:linear-gradient(90deg,var(--accent-soft),#fff 70%);margin-bottom:16px;font-size:13px}.quota-banner.warn{border-color:#f0cf9a;background:linear-gradient(90deg,var(--warn-soft),#fff 70%)}.quota-banner .qb-icon{width:32px;height:32px;border-radius:9px;background:#fff;border:1px solid var(--accent-line);display:grid;place-items:center;color:var(--accent);flex:none}.quota-banner .qb-text{flex:1;min-width:200px;line-height:1.6}.quota-banner .qb-text b{font-family:var(--font-mono)}.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));gap:16px;align-items:stretch}.plan-card{position:relative;display:flex;flex-direction:column;padding:24px 22px 20px;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-1);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.plan-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-2)}.plan-card.featured{border-color:var(--accent);box-shadow:0 10px 34px #1e4b8f24}.plan-ribbon{position:absolute;top:-1px;right:-1px;background:var(--accent);color:#fff;font-size:11.5px;padding:4px 12px;border-radius:0 var(--radius-lg) 0 12px}.plan-name{font-size:16px;font-weight:600;margin-bottom:10px}.plan-price{display:flex;align-items:baseline;gap:4px;font-family:var(--font-mono)}.plan-price .cur{font-size:15px;color:var(--ink-2)}.plan-price .num{font-size:34px;font-weight:600;letter-spacing:-.02em;color:var(--ink)}.plan-price .was{margin-left:8px;font-size:13px;color:var(--ink-4);text-decoration:line-through}.plan-days{font-size:12.5px;color:var(--ink-3);margin-top:5px}.plan-desc{font-size:12.5px;color:var(--ink-3);line-height:1.7;margin:14px 0;padding-bottom:14px;border-bottom:1px dashed var(--line)}.plan-features{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-direction:column;gap:9px;flex:1}.plan-features li{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;color:var(--ink-2);line-height:1.6}.plan-features li svg{width:14px;height:14px;color:var(--ok);flex:none;margin-top:3px}.account-layout{display:grid;grid-template-columns:200px minmax(0,1fr);gap:20px;align-items:start;margin-top:24px}.account-nav{position:sticky;top:calc(var(--header-h) + 20px);display:flex;flex-direction:column;gap:2px;padding:10px}.account-nav button{text-align:left;padding:9px 12px;border:none;background:transparent;border-radius:8px;font-size:13.5px;color:var(--ink-2);transition:all .14s ease}.account-nav button:hover{background:var(--bg-deep);color:var(--ink)}.account-nav button.active{background:var(--accent-soft);color:var(--accent);font-weight:500}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat-box{padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.stat-box .k{font-size:12px;color:var(--ink-3)}.stat-box .v{font-family:var(--font-mono);font-size:22px;font-weight:600;margin-top:5px;letter-spacing:-.02em}.stat-box .s{font-size:11.5px;color:var(--ink-4);margin-top:3px}.progress-mini{height:6px;border-radius:999px;background:var(--bg-deep);overflow:hidden;margin-top:8px}.progress-mini>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2f62b3,#1e4b8f)}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:#fff}table.data{width:100%;border-collapse:collapse;font-size:13px;white-space:nowrap}table.data thead th{text-align:left;padding:11px 14px;background:#fafbfc;border-bottom:1px solid var(--line);font-weight:600;font-size:12.5px;color:var(--ink-2);position:sticky;top:0;z-index:1}table.data tbody td{padding:11px 14px;border-bottom:1px solid #f1f4f8;color:var(--ink-2)}table.data tbody tr:last-child td{border-bottom:none}table.data tbody tr:hover td{background:#fafcff}.mono{font-family:var(--font-mono);font-size:12.5px}.pager{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px 0 0;font-size:12.5px;color:var(--ink-3)}.empty-row{padding:40px 0;text-align:center;color:var(--ink-4);font-size:13px}.code-block{margin:10px 0 0;padding:14px 16px;background:#0f1729;color:#c9d6ea;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:12px;line-height:1.75;overflow-x:auto;white-space:pre}.notice-danger{background:var(--bad-soft);border-color:#f2cfcb;color:#8f1d18}@media(max-width:1180px){.account-layout{grid-template-columns:1fr}.account-nav{position:static;flex-direction:row;flex-wrap:wrap}.stat-grid{grid-template-columns:repeat(2,1fr)}}.toast-stack{position:fixed;top:calc(var(--header-h) + 16px);right:22px;z-index:90;display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast{min-width:240px;max-width:380px;padding:11px 15px;border-radius:var(--radius-sm);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-3);font-size:13px;color:var(--ink);display:flex;align-items:flex-start;gap:9px;animation:toast-in .22s ease;border-left:3px solid var(--accent);pointer-events:auto}.toast.success{border-left-color:var(--ok)}.toast.warn{border-left-color:var(--warn)}.toast.error{border-left-color:var(--bad)}@keyframes toast-in{0%{opacity:0;transform:translate(14px)}}.empty{padding:64px 24px;text-align:center;color:var(--ink-4)}.empty svg{width:40px;height:40px;margin-bottom:14px;color:var(--line-strong)}.empty-title{font-size:14.5px;color:var(--ink-2);margin-bottom:6px}.empty-sub{font-size:13px}.notice{display:flex;align-items:flex-start;gap:9px;padding:11px 14px;border-radius:var(--radius-sm);background:var(--warn-soft);border:1px solid #f6e0b5;font-size:12.5px;color:#8a5a10;line-height:1.7}.notice svg{width:15px;height:15px;flex:none;margin-top:2px}.fade-enter-active,.fade-leave-active{transition:opacity .22s ease,transform .22s ease}.fade-enter-from{opacity:0;transform:translateY(6px)}.fade-leave-to{opacity:0}@media(max-width:1180px){.service-grid{grid-template-columns:repeat(2,1fr)}.workbench{grid-template-columns:minmax(0,1fr)}.sidebar{position:static}.metric-row{grid-template-columns:repeat(2,1fr)}.diff-grid,.gauge-wrap{grid-template-columns:1fr}}@media(max-width:720px){.container{padding:0 16px}.service-grid{grid-template-columns:1fr}.hero-title{font-size:27px}.contact-inner{grid-template-columns:1fr;padding:24px 20px}.nav{display:none}.metric-row{grid-template-columns:1fr}}
