:root{--bg: #f4f6fa;--surface: #ffffff;--surface-2: #f8fafc;--border: #e2e7f0;--border-strong: #cbd4e1;--text: #18202e;--muted: #5d6b81;--primary: #2563eb;--primary-hover: #1e50c8;--primary-soft: #eff4ff;--ok: #16a34a;--ok-soft: #ecfdf3;--err: #dc2626;--err-soft: #fef2f2;--warn: #d97706;--warn-soft: #fffbeb;--code-bg: #10141b;--code-head: #1a202b;--code-text: #d7dde7;--radius: 10px;--radius-sm: 6px;--shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 1px 3px rgba(16, 24, 40, .07);--font-mono: "Cascadia Code", "Fira Code", Consolas, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{min-height:100vh;background:var(--bg);background-image:linear-gradient(rgba(37,99,235,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(37,99,235,.1) 1px,transparent 1px),linear-gradient(rgba(37,99,235,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(37,99,235,.055) 1px,transparent 1px);background-size:120px 120px,120px 120px,24px 24px,24px 24px;background-attachment:fixed;color:var(--text);font-family:Inter,Segoe UI,Microsoft YaHei,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}#app{min-height:100vh}h1,h2,h3{margin:0;font-weight:700}p{margin:0}button,input,select,textarea{font-family:inherit}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:24px;height:56px;padding:0 20px;background:var(--surface);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.brand-logo{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:var(--primary);color:#fff;font-size:16px}.brand-name{font-size:15px;font-weight:700;white-space:nowrap}.brand-version{font-size:10px;font-weight:600;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:1px 7px}.app-nav{display:flex;align-items:center;gap:2px;overflow-x:auto;flex:1}.lang-toggle{margin-left:auto;flex:none;display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--muted);font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap;transition:color .12s,border-color .12s,background .12s}.lang-toggle:hover{color:var(--primary);border-color:var(--primary);background:var(--primary-soft)}.lang-toggle .lang-icon{font-size:11px;letter-spacing:.02em;opacity:.75}.nav-link{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .12s}.nav-link:hover{background:var(--surface-2);color:var(--text)}.nav-link.active{background:var(--primary-soft);color:var(--primary)}.app-main{flex:1;width:100%;max-width:1680px;margin:0 auto;padding:16px 20px 32px;position:relative;z-index:1}.grid-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;-webkit-user-select:none;user-select:none}.watermark-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;-webkit-user-select:none;user-select:none;background-repeat:repeat}.tool-page{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}.tool-toolbar{grid-column:1 / -1;display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.tool-title{font-size:15px;font-weight:700;margin-right:6px}.toolbar-spacer{flex:1}.toolbar-info{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:380px}.tool-main,.tool-side{display:flex;flex-direction:column;gap:16px;min-width:0}.tool-output{grid-column:1 / -1}@media(max-width:1100px){.tool-page{grid-template-columns:minmax(0,1fr)}}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.panel-head{display:flex;align-items:center;gap:8px;min-height:42px;padding:0 14px;border-bottom:1px solid var(--border);background:var(--surface)}.panel-title{font-size:13px;font-weight:700}.panel-actions{margin-left:auto;display:flex;align-items:center;gap:6px}.panel-body{padding:14px}.panel-body.tight{padding:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 14px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .12s}.btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover:not(:disabled){background:var(--primary-hover);color:#fff}.btn.danger:hover:not(:disabled){border-color:var(--err);color:var(--err);background:var(--err-soft)}.btn.sm{height:28px;padding:0 10px;font-size:12px}.btn.icon{width:34px;padding:0}.btn.sm.icon{width:28px}.btn.toggled{background:var(--primary);border-color:var(--primary);color:#fff}.btn-group{display:inline-flex;gap:4px}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field>span{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.field input[type=text],.field input[type=number],.field select{height:32px;min-width:0;width:100%;padding:0 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:13px}.field input:focus,.field select:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field-stack{display:flex;flex-direction:column;gap:10px}.slider-field{display:flex;flex-direction:column;gap:4px}.slider-field>header{display:flex;justify-content:space-between;font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.slider-field>header b{color:var(--text);font-variant-numeric:tabular-nums}.slider-field input[type=range]{width:100%;accent-color:var(--primary)}.check{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:500;cursor:pointer;-webkit-user-select:none;user-select:none}.check input{accent-color:var(--primary)}.inline-field{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--muted)}.inline-field input,.inline-field select{height:30px;padding:0 6px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:13px}.inline-field input[type=number]{width:70px}.canvas-frame{display:grid;place-items:center;min-height:200px;padding:12px;border-radius:var(--radius-sm);background:repeating-conic-gradient(#161a21,#161a21 25%,#1d222b 0%,#1d222b 50%) 0 0 / 16px 16px;overflow:auto}.canvas-frame canvas{image-rendering:pixelated;display:block}.canvas-frame.light{background:repeating-conic-gradient(#eef1f6,#eef1f6 25%,#fff 0%,#fff 50%) 0 0 / 16px 16px;border:1px solid var(--border)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:180px;color:var(--muted);font-size:13px;text-align:center}.empty-state .big{font-size:30px;opacity:.6}.drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:150px;border:2px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface-2);color:var(--muted);font-size:13px;cursor:pointer;transition:all .15s;text-align:center;padding:16px}.drop-zone:hover,.drop-zone.over{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.drop-zone .big{font-size:28px}.frame-strip{display:flex;gap:8px;overflow-x:auto;padding:4px 2px}.frame-thumb{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px;border:2px solid transparent;border-radius:var(--radius-sm);background:var(--surface-2);cursor:pointer;transition:border-color .12s}.frame-thumb:hover{border-color:var(--border-strong)}.frame-thumb.active{border-color:var(--primary)}.frame-thumb canvas{image-rendering:pixelated;background:#10141b;border-radius:3px}.frame-thumb small{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.strip-more{align-self:center;font-size:12px;color:var(--muted);white-space:nowrap;padding:0 8px}.media-controls{display:flex;align-items:center;gap:8px;margin-top:10px}.media-controls input[type=range]{flex:1;accent-color:var(--primary)}.media-counter{font-size:12px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.data-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px}.data-table th{text-align:left;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:8px 10px;border-bottom:1px solid var(--border)}.data-table td{padding:8px 10px;border-bottom:1px solid var(--border);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-table tbody tr{cursor:pointer}.data-table tbody tr:hover{background:var(--surface-2)}.data-table tbody tr.selected{background:var(--primary-soft)}.mini-thumb{width:28px;height:28px;object-fit:cover;border-radius:4px;border:1px solid var(--border);vertical-align:middle;margin-right:8px;background:var(--surface-2)}.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:700;text-transform:capitalize}.pill.pending{background:var(--surface-2);color:var(--muted)}.pill.processing{background:var(--warn-soft);color:var(--warn)}.pill.done{background:var(--ok-soft);color:var(--ok)}.pill.error{background:var(--err-soft);color:var(--err)}.progress-track{display:inline-block;width:70px;height:6px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);overflow:hidden;vertical-align:middle;margin-right:6px}.progress-track i{display:block;height:100%;background:var(--primary);transition:width .2s}.alert-error{padding:10px 14px;border:1px solid #fca5a5;border-radius:var(--radius-sm);background:var(--err-soft);color:#b91c1c;font-size:13px;font-weight:600}.stat-list{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.stat-row{display:flex;justify-content:space-between;align-items:center;padding:7px 10px;font-size:12px;background:var(--surface)}.stat-row+.stat-row{border-top:1px solid var(--border)}.stat-row span{color:var(--muted);font-weight:500}.stat-row b{color:var(--primary);font-variant-numeric:tabular-nums}.code-panel{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.code-head{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 14px;background:var(--code-head);color:#9aa4b5}.code-head .code-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.code-head .code-meta{font-size:12px;font-variant-numeric:tabular-nums}.code-head .panel-actions{margin-left:auto}.code-btn{height:28px;padding:0 10px;border:1px solid #37404e;border-radius:var(--radius-sm);background:transparent;color:#b6c0d0;font-size:12px;font-weight:600;cursor:pointer;transition:all .12s}.code-btn:hover{background:#2a3240;color:#fff}.code-btn.accent{background:var(--primary);border-color:var(--primary);color:#fff}.code-btn.accent:hover{background:var(--primary-hover)}.code-body{margin:0;padding:14px 16px;max-height:420px;overflow:auto;background:var(--code-bg);color:var(--code-text);font-family:var(--font-mono);font-size:12px;line-height:1.65;white-space:pre}.code-foot{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--code-head);border-top:1px solid #262e3a}.code-foot .foot-label{font-size:11px;font-weight:700;color:#7c8798;text-transform:uppercase;letter-spacing:.05em;margin-right:4px}.home{max-width:1240px;margin:0 auto;padding:40px 4px 8px}.home-hero{text-align:center;margin-bottom:44px}.hero-overline{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;letter-spacing:.28em;color:var(--primary);margin-bottom:14px}.hero-overline .px{width:6px;height:6px;border-radius:1px;background:var(--primary);animation:hero-px 1.6s ease-in-out infinite}.hero-overline .px:nth-child(2){animation-delay:.2s;opacity:.7}.hero-overline .px:nth-child(3){animation-delay:.4s;opacity:.45}@keyframes hero-px{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.home-hero h1{font-size:38px;letter-spacing:-.03em;background:linear-gradient(120deg,var(--text) 30%,var(--primary) 85%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.home-hero p{margin-top:10px;color:var(--muted);font-size:15px}.hero-stats{margin-top:18px;display:inline-flex;align-items:center;gap:12px;font-size:12.5px;font-weight:600;color:var(--muted);padding:7px 18px;border:1px solid var(--border);border-radius:999px;background:var(--surface)}.hero-dot{width:3px;height:3px;border-radius:50%;background:var(--border-strong, var(--border))}.home-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.tool-card--md{grid-column:span 2}.tool-card--sm{grid-column:span 1}.tool-card--banner{grid-column:1 / -1}.tool-card{position:relative;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);overflow:hidden;cursor:pointer;transition:transform .22s cubic-bezier(.22,.9,.3,1.2),box-shadow .22s,border-color .22s;animation:card-enter .5s cubic-bezier(.2,.7,.3,1) both;animation-delay:var(--enter-delay, 0ms)}@keyframes card-enter{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.tool-card,.hero-overline .px{animation:none}}.tool-card:hover{transform:translateY(-4px);border-color:var(--primary);box-shadow:0 14px 34px #2563eb29}.tool-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--primary),#3ddc84,transparent);transform:scaleX(0);transform-origin:left;transition:transform .35s ease;z-index:1}.tool-card:hover:before{transform:scaleX(1)}.card-demo{position:relative;background:#10141b;border-bottom:1px solid var(--border);line-height:0}.card-demo:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:inset 0 0 34px #0006}.card-demo .tool-demo{display:block;width:100%;height:auto;aspect-ratio:7 / 3;transition:opacity .2s}.tool-card--sm .card-demo .tool-demo{aspect-ratio:7 / 3.6;object-fit:cover}.tool-card--banner{flex-direction:row}.tool-card--banner .card-demo{flex:1.1;border-bottom:0;border-right:1px solid var(--border)}.tool-card--banner .card-demo .tool-demo{height:100%;aspect-ratio:auto;min-height:210px}.tool-card--banner .card-body{flex:1;justify-content:center}.tool-card--reverse{flex-direction:row-reverse}.tool-card--reverse .card-demo{border-right:0;border-left:1px solid var(--border)}.card-body{display:flex;flex-direction:column;gap:10px;padding:16px 20px 18px;flex:1}.card-head{display:flex;align-items:center;gap:10px}.tool-card .card-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:var(--primary-soft);color:var(--primary);font-size:18px;flex:none;transition:transform .22s,background .22s,color .22s}.tool-card:hover .card-icon{transform:scale(1.08) rotate(-4deg);background:var(--primary);color:#fff}.tool-card h2{font-size:16px;flex:1}.card-index{font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--border-strong, var(--border));letter-spacing:.06em;transition:color .22s}.tool-card:hover .card-index{color:var(--primary)}.tool-card p{color:var(--muted);font-size:13px;line-height:1.55;flex:1}.card-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}.card-tags{display:flex;flex-wrap:wrap;gap:6px}.card-tag{padding:3px 9px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:11px;font-weight:600;white-space:nowrap}.launch-btn{flex:none;display:inline-flex;align-items:center;gap:4px;height:34px;padding:0 14px;border:0;border-radius:var(--radius-sm);background:var(--primary);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:background .12s,gap .18s}.launch-btn:hover{background:var(--primary-hover);gap:8px}.launch-arrow{display:inline-block;transition:transform .18s}.launch-btn:hover .launch-arrow{transform:translate(2px)}@media(max-width:1020px){.home-grid{grid-template-columns:repeat(2,1fr)}.tool-card--md,.tool-card--sm{grid-column:span 1}.tool-card--banner{grid-column:1 / -1}}@media(max-width:680px){.home-grid{grid-template-columns:1fr}.tool-card--banner,.tool-card--reverse{flex-direction:column}.tool-card--banner .card-demo{border-right:0;border-left:0;border-bottom:1px solid var(--border)}.tool-card--banner .card-demo .tool-demo{aspect-ratio:7 / 3;min-height:0}.home-hero h1{font-size:30px}.hero-stats{flex-wrap:wrap;justify-content:center}}.pixel-stage{display:grid;place-items:center;padding:16px;border-radius:var(--radius-sm);background:repeating-conic-gradient(#161a21,#161a21 25%,#1d222b 0%,#1d222b 50%) 0 0 / 16px 16px;overflow:auto;max-height:620px}.pixel-canvas{image-rendering:pixelated;background:#fff;cursor:crosshair;touch-action:none;border-radius:2px}.palette-row{display:flex;flex-wrap:wrap;gap:6px}.swatch{width:26px;height:26px;border:2px solid var(--border);border-radius:6px;cursor:pointer;padding:0;transition:transform .1s,border-color .1s}.swatch:hover{transform:scale(1.1)}.swatch.active{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}.swatch.add{background:var(--surface-2);color:var(--muted);font-size:15px;font-weight:700;display:grid;place-items:center}.color-current{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:13px}.color-current input[type=color]{width:44px;height:34px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);padding:2px;cursor:pointer}.cursor-status{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.glyph-strip{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.glyph-chip{min-width:34px;height:34px;padding:0 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);font-size:15px;font-weight:600;cursor:pointer;transition:all .12s}.glyph-chip:hover{border-color:var(--primary);color:var(--primary)}.glyph-chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.log-list{margin:0;padding:10px 12px;max-height:180px;overflow:auto;background:var(--code-bg);color:#9fb0c8;font-family:var(--font-mono);font-size:11.5px;line-height:1.7;list-style:none;border-radius:var(--radius-sm)}.video-holder{display:grid;place-items:center;background:#000;border-radius:var(--radius-sm);overflow:hidden;min-height:220px}.video-holder video{max-width:100%;max-height:340px;display:block}.divider-v{width:1px;align-self:stretch;background:var(--border);margin:4px 2px}.hidden-input{display:none}.text-muted{color:var(--muted)}.text-error{color:var(--err)}.mono{font-family:var(--font-mono);font-size:12px}.hint{font-size:11px;color:var(--muted);margin:0;line-height:1.4}.extract-progress{display:flex;flex-direction:column;gap:6px;padding:10px 14px;border:1px solid #93c5fd;border-radius:var(--radius-sm);background:#eff6ff;color:#1d4ed8;font-size:13px;font-weight:600}.extract-progress-track{height:4px;border-radius:999px;background:#bfdbfe;overflow:hidden}.extract-progress-fill{height:100%;background:#2563eb;border-radius:999px;transition:width .15s}.mono{font-family:var(--font-mono)}.field input[type=password]{height:32px;min-width:0;width:100%;padding:0 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:13px}.ai-textarea{width:100%;min-height:70px;resize:vertical;padding:8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:12px;font-family:var(--font-mono);line-height:1.5}.ai-textarea:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}.ai-provider-row{display:flex;flex-wrap:wrap;gap:6px}.ai-hint{margin:0;font-size:11px;line-height:1.5;color:var(--muted)}.ai-file-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.ai-file-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 6px 3px 10px;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface-2);font-size:12px;font-family:var(--font-mono)}.ai-file-chip .chip-remove{border:none;background:none;color:var(--muted);font-size:14px;line-height:1;cursor:pointer;padding:2px 4px}.ai-file-chip .chip-remove:hover{color:#f87171}.ai-file-tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.ai-file-tab{padding:5px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--surface);color:var(--muted);font-size:12px;font-family:var(--font-mono);cursor:pointer}.ai-file-tab:hover{color:var(--text)}.ai-file-tab.active{background:var(--primary-soft);border-color:var(--primary);color:var(--primary);font-weight:600}.ai-stream{max-height:420px;overflow:auto;margin:0}.ai-pin-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ai-quick-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.ai-quick-chip{padding:3px 10px;border:1px dashed var(--border-strong);border-radius:999px;background:none;color:var(--muted);font-size:11px;cursor:pointer}.ai-quick-chip:hover{color:var(--primary);border-color:var(--primary);background:var(--primary-soft)}.ai-refine-row{display:flex;gap:8px;margin-top:10px}.ai-refine-row input{flex:1;height:34px;min-width:0;padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:13px}.ai-refine-row input:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}.avatar-btn{width:30px;height:30px;border-radius:50%;border:2px solid transparent;color:#fff;font-weight:700;font-size:13px;cursor:pointer;flex:none;display:grid;place-items:center;padding:0}.avatar-btn.active,.avatar-btn:hover{border-color:var(--primary)}.login-btn{flex:none}.auth-page{max-width:440px;margin:32px auto;display:flex;flex-direction:column;gap:14px;width:100%}.auth-tabs{display:flex;gap:8px;margin-bottom:14px}.auth-code-row{display:flex;gap:8px;align-items:flex-end}.auth-code-row .btn{margin-bottom:1px;white-space:nowrap}.auth-notice{color:var(--primary);font-size:12px}.profile-head{display:flex;align-items:center;gap:16px}.profile-avatar{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;font-size:30px;font-weight:700;color:#fff;flex:none}.profile-meta{display:flex;flex-direction:column;gap:4px;min-width:0}.profile-meta b{font-size:18px}.profile-meta span{color:var(--muted);font-size:13px;overflow-wrap:anywhere}.profile-note{margin:12px 0 0;font-size:12px;color:var(--muted)}.profile-actions{display:flex;gap:10px;flex-wrap:wrap}.auth-wrap{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 136px);padding:24px 16px;width:100%}.auth-layout{display:flex;width:100%;max-width:1080px;min-height:560px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:0 12px 40px #1018281a;background:#fff}.auth-showcase{flex:1.15;min-width:0;background:var(--code-bg);color:var(--code-text);padding:36px 34px 30px;display:flex;flex-direction:column;gap:18px}.showcase-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px;letter-spacing:.4px}.showcase-brand .brand-logo{color:#3ddc84}.showcase-demo{width:100%;aspect-ratio:7 / 3;display:block;border-radius:8px;border:1px solid rgba(148,163,184,.18);background:var(--code-bg)}.showcase-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:22px}.showcase-caption{font-size:14px;font-weight:600;color:#3ddc84;font-family:var(--font-mono)}.showcase-dots{display:flex;gap:7px}.showcase-dot{width:8px;height:8px;padding:0;border:none;border-radius:1px;background:#94a3b859;cursor:pointer;transition:background .2s,transform .2s}.showcase-dot.active{background:#3ddc84;transform:scale(1.25)}.showcase-dot:hover{background:#7dd3fc}.showcase-tag{margin:auto 0 0;font-size:12.5px;line-height:1.7;color:#d7dde78c}.auth-form-side{flex:1;min-width:0;padding:36px 40px;display:flex;flex-direction:column;justify-content:center}.auth-heading{margin:18px 0 20px;font-size:24px}.auth-form-side .field input{height:40px;font-size:14px}.auth-form-side .field-stack{gap:14px}.auth-form-side .btn.primary[type=submit]{height:42px;font-size:14px;margin-top:4px}.fade-enter-active,.fade-leave-active{transition:opacity .25s ease}.fade-enter-from,.fade-leave-to{opacity:0}@media(max-width:760px){.auth-wrap{min-height:0;align-items:flex-start}.auth-layout{flex-direction:column;min-height:0}.auth-showcase{padding:20px}.auth-form-side{padding:24px 20px}.showcase-tag{display:none}}.field-hint{display:block;margin-top:4px;font-size:11.5px;line-height:1.5;color:var(--muted);transition:color .15s}.field-hint.ok{color:var(--ok, #16a34a)}.field-hint.ok:before{content:"✓ "}.field-hint.bad{color:var(--err, #dc2626)}.field-hint.bad:before{content:"✕ "}.profile-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}.profile-grid .col-full{grid-column:1 / -1}.profile-grid .col-heat{grid-column:span 4}.profile-grid .col-usage{grid-column:span 2}.profile-grid .col-half{grid-column:span 3}.auth-page:has(.profile-grid){max-width:1180px;width:100%}.profile-identity{display:flex;gap:24px;align-items:center;flex-wrap:wrap}.profile-identity-main{flex:1 1 300px;min-width:260px}.profile-identity .stat-cards{flex:1 1 360px;margin-top:0}.profile-name-row{display:flex;align-items:center;gap:8px}.profile-name-row b{font-size:17px}.rename-input{height:30px;padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:14px;width:160px}.rename-input:focus{outline:none;border-color:var(--primary)}.profile-actions-note{margin:0;align-self:center;flex:1 1 100%}.stat-cards{margin-top:14px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.stat-card{display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 6px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.stat-card b{font-size:20px;font-family:var(--font-mono);line-height:1.2}.stat-card b em{font-style:normal;font-size:12px;color:var(--muted)}.stat-card span{font-size:11.5px;color:var(--muted)}.heatmap{display:grid;grid-template-rows:repeat(7,auto);grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:3px;justify-content:center}.heatmap .heat-cell{width:100%;max-width:20px;aspect-ratio:1;height:auto}.heat-cell{width:13px;height:13px;border-radius:2px;background:var(--surface-2);border:1px solid var(--border)}.heat-cell.l1{background:#cfe0fb;border-color:#b8d0f7}.heat-cell.l2{background:#8fb5f4;border-color:#7aa5ec}.heat-cell.l3{background:#4f83e8;border-color:#3f74dc}.heat-cell.l4{background:#1e50c8;border-color:#1a45ad}.heat-legend{margin-top:10px;display:flex;align-items:center;justify-content:flex-end;gap:4px;font-size:11px;color:var(--muted)}.heat-legend .heat-cell{width:11px;height:11px}.usage-list{display:flex;flex-direction:column;gap:6px}.usage-row{display:flex;align-items:center;gap:8px;width:100%;padding:5px 8px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;font:inherit;color:inherit;cursor:pointer;text-align:left}.usage-row:hover{border-color:var(--border);background:var(--surface-2)}.usage-icon{width:24px;height:24px;display:grid;place-items:center;border-radius:6px;background:var(--primary-soft);color:var(--primary);font-size:13px;flex:none}.usage-name{font-size:12.5px;font-weight:600;width:74px;flex:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.usage-bar-track{flex:1;height:10px}.usage-bar{display:block;height:100%;border-radius:2px;background-image:repeating-linear-gradient(90deg,var(--primary) 0 6px,transparent 6px 9px);min-width:6px;transition:width .4s ease}.usage-count{font-family:var(--font-mono);font-size:12px;color:var(--muted);width:30px;text-align:right;flex:none}.recent-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.recent-row{display:flex;align-items:center;gap:8px;padding:6px 4px;border-bottom:1px dashed var(--border)}.recent-row:last-child{border-bottom:0}.recent-time{margin-left:auto;font-size:11.5px;color:var(--muted);font-family:var(--font-mono);white-space:nowrap}.profile-empty{color:var(--muted);font-size:12.5px;text-align:center;padding:18px 0}@media(max-width:900px){.profile-grid{grid-template-columns:repeat(2,1fr)}.profile-grid .col-heat,.profile-grid .col-usage,.profile-grid .col-half{grid-column:1 / -1}}@media(max-width:560px){.profile-grid{grid-template-columns:1fr}.stat-cards{grid-template-columns:repeat(2,1fr)}.profile-identity{gap:16px}}.ai-model-row{display:flex;gap:8px}.ai-model-input{position:relative;flex:1;min-width:0}.ai-model-input input{width:100%}.ai-model-row .btn{flex:none;white-space:nowrap}.ai-model-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;margin:0;padding:4px;list-style:none;max-height:220px;overflow-y:auto;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:0 8px 24px #10182824}.ai-model-option{padding:7px 10px;border-radius:var(--radius-sm);font-size:13px;font-family:var(--font-mono);color:var(--text);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-model-option:hover{background:var(--primary-soft);color:var(--primary)}.ai-model-option.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.ai-models-ok{color:var(--ok)}.ai-models-err{color:var(--err);overflow-wrap:anywhere}
