:root{--bg:#f6f7fb;--surface:#fff;--surface-2:#f9fafb;--surface-3:#f2f4f7;--border:#e4e7ec;--border-strong:#d0d5dd;--text:#182230;--text-2:#344054;--muted:#667085;--accent:#4f46e5;--accent-hover:#4338ca;--accent-active:#3730a3;--accent-soft:#eef2ff;--accent-border:#c7d2fe;--accent-text:#fff;--focus-ring:0 0 0 3px #4f46e538;--ok:#067647;--ok-soft:#ecfdf3;--ok-border:#abefc6;--warn:#b54708;--warn-soft:#fffaeb;--warn-border:#fedf89;--error:#b42318;--error-soft:#fef3f2;--error-border:#fecdca;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "PingFang SC", "Microsoft YaHei", sans-serif;--mono:ui-monospace, "SFMono-Regular", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-lg:16px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--r-control:8px;--r-card:12px;--r-lg:16px;--shadow-sm:0 1px 2px #1018280d;--shadow-lg:0 16px 40px -12px #10182838;--t:.15s ease;--hl-0:#fef0c7;--hl-0-ring:#f5c451;--hl-1:#dbeafe;--hl-1-ring:#93c5fd;--hl-2:#d1fadf;--hl-2-ring:#6ce9a6;--hl-3:#fce7f6;--hl-3-ring:#f0a3d6;--hl-4:#ebe9fe;--hl-4-ring:#bdb4fe;--hl-5:#fdead7;--hl-5-ring:#f7b27a;--hl-6:#ccfbef;--hl-6-ring:#5fe9d0;--hl-7:#eef4cf;--hl-7-ring:#c5d86d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font:var(--fs-md) / 1.5 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}h1,h2,h3,h4{margin:0;font-weight:600;line-height:1.3}p{margin:0}code,pre{font-family:var(--mono);font-size:var(--fs-sm)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.muted{color:var(--muted)}.small{font-size:var(--fs-sm)}.pad{padding:var(--s-4)}.tone-ok{color:var(--ok)}.tone-warn{color:var(--warn)}.tone-error,.error-text{color:var(--error)}.tone-muted{color:var(--muted)}.icon{flex:none}.btn{border:1px solid var(--border-strong);border-radius:var(--r-control);background:var(--surface);min-height:36px;color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-sm);transition:background-color var(--t), border-color var(--t), color var(--t), box-shadow var(--t);justify-content:center;align-items:center;gap:6px;padding:0 14px;font-weight:500;line-height:1.2;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-3)}.btn:active:not(:disabled){background:var(--border)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px;box-shadow:var(--focus-ring)}.btn:disabled{cursor:not-allowed;color:#98a2b3;background:var(--surface-2);border-color:var(--border);box-shadow:none}.btn[aria-busy=true]{cursor:progress}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-primary:active:not(:disabled){background:var(--accent-active)}.btn-primary:disabled{color:#fff;background:#c7c8f2;border-color:#c7c8f2}.btn-ghost{box-shadow:none;color:var(--text-2);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.btn-ghost:disabled{background:0 0;border-color:#0000}.btn-text{box-shadow:none;color:var(--accent);padding:0 var(--s-2);background:0 0;border-color:#0000}.btn-text:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-hover)}.btn-soft{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent);box-shadow:none}.btn-soft:hover:not(:disabled){background:#e0e7ff}.btn-quiet{box-shadow:none;color:var(--text-2);background:0 0;border-color:#0000}.btn-small{min-height:28px;font-size:var(--fs-sm);gap:4px;padding:0 10px}.btn-large{min-height:44px;padding:0 var(--s-5);font-size:15px}.icon-btn{border-radius:var(--r-control);width:28px;height:28px;color:var(--muted);cursor:pointer;transition:background-color var(--t), color var(--t);background:0 0;border:0;flex:none;place-items:center;padding:0;display:inline-grid}.icon-btn:hover{background:var(--surface-3);color:var(--text)}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:14px;height:14px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}input:not([type=checkbox]):not([type=radio]),select,textarea{font:inherit;font-size:var(--fs-sm);color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-control);min-width:0;min-height:32px;transition:border-color var(--t), box-shadow var(--t);padding:4px 10px}select{cursor:pointer;padding-right:6px}input:not([type=checkbox]):not([type=radio]):hover,select:hover,textarea:hover{border-color:#98a2b3}input:not([type=checkbox]):not([type=radio]):focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}input[type=checkbox],input[type=radio]{accent-color:var(--accent);cursor:pointer;flex:none;width:16px;height:16px;margin:0}textarea{font-family:var(--mono);resize:vertical;width:100%;line-height:1.5}label{gap:var(--s-1);font-size:var(--fs-sm);color:var(--text-2);flex-direction:column;font-weight:500;display:flex}label.check{align-items:flex-start;gap:var(--s-2);color:var(--text);cursor:pointer;flex-direction:row;font-weight:400}label.check input{margin-top:2px}.inline-field{align-items:center;gap:var(--s-2);flex-direction:row}.form-row{gap:var(--s-3);flex-wrap:wrap;display:flex}.form-row>label{flex:140px}.form-grid{gap:var(--s-3);grid-template-columns:repeat(auto-fill,minmax(130px,1fr));display:grid}.switch{align-items:center;gap:var(--s-2);color:var(--text-2);cursor:pointer;flex-direction:row;font-weight:400;position:relative}.switch input{opacity:0;width:32px;height:18px;margin:0;position:absolute}.switch-track{background:var(--border-strong);width:32px;height:18px;transition:background-color var(--t);border-radius:9px;flex:none;position:relative}.switch-track:after{content:"";width:14px;height:14px;transition:transform var(--t);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #10182833}.switch input:checked+.switch-track{background:var(--accent)}.switch input:checked+.switch-track:after{transform:translate(14px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--accent);outline-offset:2px}.badge{background:var(--surface-3);font-size:var(--fs-xs);color:var(--text-2);white-space:nowrap;border-radius:999px;align-items:center;padding:1px 8px;font-weight:500;line-height:18px;display:inline-flex}.count{background:var(--surface-3);min-width:20px;height:18px;color:var(--text-2);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;padding:0 6px;font-size:11.5px;font-weight:600;line-height:1;display:inline-grid}.count-warn{background:var(--warn-soft);color:var(--warn)}.chip{border:1px solid var(--border);background:var(--surface);font-size:var(--fs-xs);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:2px 10px 2px 8px;font-weight:500;line-height:18px;display:inline-flex}.chip:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.chip-ok{color:var(--ok);background:var(--ok-soft);border-color:var(--ok-border)}.chip-warn{color:var(--warn);background:var(--warn-soft);border-color:var(--warn-border)}.chip-error{color:var(--error);background:var(--error-soft);border-color:var(--error-border)}.tag{border:1px solid var(--border);background:var(--surface);font-family:var(--mono);font-size:var(--fs-xs);color:var(--text-2);border-radius:6px;padding:1px 8px;display:inline-block}.pill-tabs,.segmented{background:var(--surface-3);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.pill-tabs button,.segmented button{min-height:30px;color:var(--muted);font:inherit;font-size:var(--fs-sm);white-space:nowrap;cursor:pointer;transition:background-color var(--t), color var(--t);background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-weight:500;display:inline-flex}.pill-tabs button:hover,.segmented button:hover{color:var(--text)}.pill-tabs button[aria-selected=true],.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #10182814,0 0 0 1px #1018280a}.pill-tabs button[aria-selected=true] .count{background:var(--accent-soft);color:var(--accent)}.pill-tabs button[aria-selected=true] .count-warn{background:var(--warn-soft);color:var(--warn)}.hint{gap:var(--s-2);padding:var(--s-2) var(--s-3);border-radius:var(--r-control);background:var(--surface-2);border:1px solid var(--border);color:var(--muted);font-size:var(--fs-sm);line-height:1.45;display:flex}.hint .icon{color:var(--muted);margin-top:2px}.fineprint{font-size:var(--fs-sm);color:var(--muted)}.app{flex-direction:column;min-height:100%;display:flex}.app-workspace{height:100%;min-height:0}.drop-overlay{z-index:20;padding:var(--s-4);pointer-events:none;animation:fade-in var(--t);background:#f6f7fbdb;place-items:center;display:grid;position:fixed;inset:0}.drop-overlay-box{align-items:center;gap:var(--s-2);width:min(560px,100%);padding:var(--s-7) var(--s-5);border:2px dashed var(--accent);border-radius:var(--r-lg);background:var(--accent-soft);color:var(--accent);text-align:center;flex-direction:column;display:flex}.drop-overlay-box strong{font-size:var(--fs-lg);color:var(--text)}.drop-overlay-box span{font-size:var(--fs-sm);color:var(--muted)}@keyframes fade-in{0%{opacity:0}}.header{align-items:center;gap:var(--s-4);min-height:56px;padding:var(--s-2) var(--s-4);background:var(--surface);border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);display:grid}.header-landing{padding-inline:max(var(--s-4), calc((100% - 1120px) / 2));grid-template-columns:minmax(0,1fr) auto}.brand{align-items:center;gap:10px;min-width:0;display:flex}.logo-mark{color:var(--accent);flex:none}.brand-name{font-weight:700;font-size:var(--fs-lg);letter-spacing:-.01em;color:var(--text)}.privacy-pill{background:var(--ok-soft);border:1px solid var(--ok-border);color:var(--ok);font-size:var(--fs-xs);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-weight:500;display:inline-flex}.header-actions{justify-content:flex-end;gap:var(--s-1);display:flex}.stepper{align-items:center;gap:var(--s-2);margin:0;padding:0;list-style:none;display:flex}.step{align-items:center;gap:var(--s-2);font-size:var(--fs-sm);color:var(--muted);white-space:nowrap;display:flex}.step+.step:before{content:"";background:var(--border-strong);width:24px;height:1px}.step-done+.step:before{background:var(--accent-border)}.step-num{border:1px solid var(--border-strong);background:var(--surface);width:22px;height:22px;font-size:var(--fs-xs);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;font-weight:600;display:inline-grid}.step-done{color:var(--text-2)}.step-done .step-num{border-color:var(--accent-border);background:var(--accent-soft);color:var(--accent)}.step-current{color:var(--text);font-weight:600}.step-current .step-num{border-color:var(--accent);background:var(--accent);color:#fff;box-shadow:0 0 0 3px var(--accent-soft)}.notice{align-items:flex-start;gap:var(--s-3);margin:var(--s-3) var(--s-3) 0;padding:var(--s-3) var(--s-4);border-radius:var(--r-card);border:1px solid var(--border);background:var(--surface);font-size:var(--fs-sm);display:flex}.notice-icon{color:var(--accent);margin-top:2px}.notice-body{flex:1;min-width:0}.notice-error{border-color:var(--error-border);background:var(--error-soft)}.notice-error .notice-icon,.notice-error strong{color:var(--error)}.notice-info{border-color:var(--accent-border);background:var(--accent-soft)}.notice ul{color:var(--text-2);margin:2px 0 0;padding-left:18px}.notice .icon-btn{margin:-4px -8px -4px 0}.landing{flex:1}.landing-inner{max-width:1120px;padding:var(--s-7) var(--s-4) var(--s-6);gap:var(--s-7);flex-direction:column;margin:0 auto;display:flex}.landing-top{gap:var(--s-7);grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:center;display:grid}.hero{gap:var(--s-4);flex-direction:column;min-width:0;display:flex}.hero h1{letter-spacing:-.025em;font-size:clamp(30px,2.9vw,36px);font-weight:700;line-height:1.12}.lead{max-width:52ch;font-size:var(--fs-lg);color:var(--muted);line-height:1.6}.lead strong{color:var(--text);font-weight:600}.dropzone{gap:var(--s-4);margin-top:var(--s-2);padding:var(--s-5);border-radius:var(--r-lg);transition:border-color var(--t), background-color var(--t);background:#f7f8ff;border:1.5px dashed #a5b4fc;flex-direction:column;display:flex}.app.is-dragging .dropzone{border-color:var(--accent);background:var(--accent-soft)}.dropzone-icon{background:var(--surface);border:1px solid var(--accent-border);width:40px;height:40px;color:var(--accent);border-radius:10px;place-items:center;display:grid}.dropzone-head{align-items:center;gap:var(--s-3);display:flex}.drop-title{font-size:var(--fs-lg);font-weight:600}.drop-sub{font-size:var(--fs-sm);color:var(--muted)}.empty-actions{gap:var(--s-2);flex-wrap:wrap;align-items:center;display:flex}.empty-actions .btn{min-height:40px}.dropzone-foot{justify-content:space-between;align-items:center;gap:var(--s-2) var(--s-4);padding-top:var(--s-4);border-top:1px solid #e0e4ff;flex-wrap:wrap;display:flex}.format-chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.drop-limits{font-size:var(--fs-xs);color:var(--muted)}.sample{min-width:0}.sample-card{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}.sample-head{justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--border);display:flex}.sample-title{font-size:var(--fs-sm);font-weight:600}.sample-legend{gap:var(--s-3);font-family:var(--mono);font-size:var(--fs-xs);display:flex}.legend-before{color:var(--error)}.legend-after{color:var(--ok)}.sample-body{gap:var(--s-3);padding:var(--s-4);flex-direction:column;display:flex}.sample-block{flex-direction:column;gap:6px;min-width:0;display:flex}.sample-format{letter-spacing:.06em;color:var(--muted);font-size:11px;font-weight:600}.sample-code{border:1px solid var(--border);border-radius:var(--r-control);background:var(--surface-2);padding:6px 0;position:relative;overflow-x:auto}.sample-line{gap:10px;width:max-content;min-width:100%;padding:2px 12px 2px 10px;line-height:1.7;display:flex}.sample-line code{white-space:pre;font-size:12.5px}.sample-sign{font-family:var(--mono);-webkit-user-select:none;user-select:none;flex:none;width:10px;font-size:12.5px}.sample-before .sample-sign{color:var(--error)}.sample-after .sample-sign{color:var(--ok)}.sample-after{background:#ecfdf399}.sample-foot{padding:var(--s-3) var(--s-4);border-top:1px solid var(--border);background:var(--surface-2);font-size:var(--fs-sm);color:var(--muted)}.sample-foot code{color:var(--text);font-size:12.5px}.features{gap:var(--s-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.feature{gap:var(--s-3);padding:var(--s-4) var(--s-5) var(--s-4) var(--s-4);border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface);align-items:flex-start;display:flex}.feature-icon{border-radius:var(--r-control);background:var(--accent-soft);width:32px;height:32px;color:var(--accent);flex:none;place-items:center;display:grid}.feature h2{font-size:var(--fs-md);margin-bottom:4px}.feature p{font-size:var(--fs-sm);color:var(--muted);line-height:1.5}.landing-fineprint{max-width:72ch;margin-top:calc(-1 * var(--s-5))}.workspace{gap:var(--s-3);min-height:0;padding:var(--s-3);flex:1;grid-template-columns:240px minmax(0,1fr) 340px;display:grid}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.panel-head{justify-content:space-between;align-items:center;gap:var(--s-2);min-height:48px;padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--border);display:flex}.panel-head h2{align-items:center;gap:var(--s-2);font-size:var(--fs-md);display:flex}.panel-meta{font-size:var(--fs-xs);color:var(--muted)}.panel-body{padding:var(--s-3) var(--s-4) var(--s-4);flex:1;min-height:0;overflow:auto}.panel-foot{gap:var(--s-2);padding:var(--s-3);border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.mobile-tabs{display:none}.files-panel .panel-head .muted{font-size:var(--fs-xs)}.file-list{padding:var(--s-2);flex-direction:column;flex:1;gap:2px;margin:0;list-style:none;display:flex;overflow:auto}.file-item{border-radius:var(--r-control);transition:background-color var(--t);border:1px solid #0000;align-items:flex-start;display:flex;position:relative}.file-item:hover{background:var(--surface-2)}.file-item.selected{background:var(--accent-soft);border-color:var(--accent-border)}.file-main{text-align:left;min-width:0;color:inherit;font:inherit;cursor:pointer;border-radius:var(--r-control);background:0 0;border:0;flex:1;align-items:flex-start;gap:10px;padding:10px 32px 10px 10px;display:flex}.file-text{flex-direction:column;gap:1px;min-width:0;display:flex}.file-name{font-weight:600;font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-meta{font-size:var(--fs-xs);color:var(--muted)}.file-status{font-size:var(--fs-xs);margin-top:2px}.status-dot{vertical-align:1px;background:currentColor;border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.file-status.tone-muted .status-dot{background:var(--border-strong)}.file-export{color:var(--muted);font-size:11.5px;font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-remove{opacity:0;position:absolute;top:6px;right:4px}.file-item:hover .file-remove,.file-item.selected .file-remove,.file-remove:focus-visible{opacity:1}@media (hover:none){.file-remove{opacity:1}}.file-icon{border-radius:var(--r-control);width:32px;height:32px;font-family:var(--mono);letter-spacing:.02em;border:1px solid;flex:none;place-items:center;font-size:10px;font-weight:700;display:inline-grid}.file-icon-json{color:#b54708;background:#fffaeb;border-color:#fedf89}.file-icon-csv{color:#067647;background:#ecfdf3;border-color:#abefc6}.file-icon-text{color:#475467;background:var(--surface-3);border-color:var(--border-strong)}.center-panel{container-type:inline-size}.center-tabs{margin:var(--s-3) var(--s-4) 0;align-self:flex-start}.tab-body{flex:1;min-height:0;overflow:auto}.preview{gap:var(--s-3);min-height:100%;padding:var(--s-3) var(--s-4) var(--s-4);flex-direction:column;display:flex}.tab-body-preview .preview{height:100%}.file-head{justify-content:space-between;align-items:center;gap:var(--s-2) var(--s-4);padding-bottom:var(--s-3);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.file-title-row{flex:220px;align-items:center;gap:10px;min-width:0;display:flex}.file-title{font-size:var(--fs-lg);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-settings{gap:var(--s-2) var(--s-4);flex-wrap:wrap;align-items:center;display:flex}.file-settings label{color:var(--muted);font-weight:400}.file-settings label.check{color:var(--text);align-items:center}.file-settings label.check input{margin-top:0}.file-facts{font-size:var(--fs-xs);color:var(--muted);flex-basis:100%}.preview-toolbar{justify-content:space-between;align-items:center;gap:var(--s-3);flex-wrap:wrap;display:flex}.preview-status{font-size:var(--fs-sm);color:var(--muted)}.preview-status.tone-warn{color:var(--warn)}.notes{padding:var(--s-2) var(--s-3) var(--s-2) 28px;border-radius:var(--r-control);background:var(--surface-2);font-size:var(--fs-sm);color:var(--muted);margin:0}.diff{gap:var(--s-2);flex-direction:column;flex:1;min-height:320px;display:flex}.pager{align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.pager .small{color:var(--muted)}.diff-grid{gap:var(--s-3);flex:1;grid-template-rows:minmax(0,1fr);min-height:0;display:grid}.diff-grid.cols-2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.diff-col{border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface-2);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.diff-label{padding:6px var(--s-3);border-bottom:1px solid var(--border);background:var(--surface);font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);align-items:center;gap:6px;font-weight:600;display:flex}.diff-label:before{content:"";background:var(--border-strong);border-radius:50%;width:6px;height:6px}.diff-col+.diff-col .diff-label:before{background:var(--accent)}.code{flex:1;min-height:0;display:flex;overflow:auto}.code pre{padding:var(--s-2) var(--s-3);white-space:pre;margin:0;font-size:12.5px;line-height:1.6}.gutter{color:#98a2b3;text-align:right;-webkit-user-select:none;user-select:none;border-right:1px solid var(--border);background:var(--surface-2);z-index:1;min-width:44px;position:sticky;left:0}.code-text{color:var(--text);flex:1}.after-empty{text-align:center;padding:var(--s-5);font-size:var(--fs-sm);color:var(--muted);flex:1;place-items:center;display:grid}mark.hl{color:inherit;border-radius:3px;padding:0 1px}mark.hl-in{-webkit-text-decoration:line-through #18223066;text-decoration:line-through #18223066}.hl-0{background:var(--hl-0);box-shadow:inset 0 0 0 1px var(--hl-0-ring)}.hl-1{background:var(--hl-1);box-shadow:inset 0 0 0 1px var(--hl-1-ring)}.hl-2{background:var(--hl-2);box-shadow:inset 0 0 0 1px var(--hl-2-ring)}.hl-3{background:var(--hl-3);box-shadow:inset 0 0 0 1px var(--hl-3-ring)}.hl-4{background:var(--hl-4);box-shadow:inset 0 0 0 1px var(--hl-4-ring)}.hl-5{background:var(--hl-5);box-shadow:inset 0 0 0 1px var(--hl-5-ring)}.hl-6{background:var(--hl-6);box-shadow:inset 0 0 0 1px var(--hl-6-ring)}.hl-7{background:var(--hl-7);box-shadow:inset 0 0 0 1px var(--hl-7-ring)}.slot-0 .swatch{background:var(--hl-0);border-color:var(--hl-0-ring)}.slot-1 .swatch{background:var(--hl-1);border-color:var(--hl-1-ring)}.slot-2 .swatch{background:var(--hl-2);border-color:var(--hl-2-ring)}.slot-3 .swatch{background:var(--hl-3);border-color:var(--hl-3-ring)}.slot-4 .swatch{background:var(--hl-4);border-color:var(--hl-4-ring)}.slot-5 .swatch{background:var(--hl-5);border-color:var(--hl-5-ring)}.slot-6 .swatch{background:var(--hl-6);border-color:var(--hl-6-ring)}.slot-7 .swatch{background:var(--hl-7);border-color:var(--hl-7-ring)}details>summary{cursor:pointer;border-radius:6px}.checks,.report-preview{border:1px solid var(--border);border-radius:var(--r-card);padding:var(--s-2) var(--s-3)}.checks summary,.report-preview summary{font-weight:600;font-size:var(--fs-sm)}.checks ul{margin:var(--s-2) 0 var(--s-1);flex-direction:column;gap:2px;padding:0;list-style:none;display:flex}.checks li{font-size:var(--fs-sm);align-items:baseline;gap:6px;display:flex}.check-mark{width:16px;color:var(--muted);flex:none;align-self:center;place-items:center;display:inline-grid}.check-pass .check-mark{color:var(--ok)}.check-fail,.check-fail .check-mark{color:var(--error)}.error-box{border:1px solid var(--error-border);background:var(--error-soft);border-radius:var(--r-card);padding:var(--s-4);gap:var(--s-2);flex-direction:column;display:flex}.error-title{align-items:center;gap:var(--s-2);color:var(--error);display:flex}.error-context{background:var(--surface);border:1px solid var(--border);padding:6px var(--s-2);border-radius:6px;margin:0;overflow:auto}.issues{padding:var(--s-4);gap:var(--s-5);flex-direction:column;display:flex}.issue-section h3{align-items:center;gap:var(--s-2);font-size:var(--fs-md);display:flex}.issue-section>p{margin:4px 0 var(--s-3);max-width:80ch}.issue-section>p.small:not(.muted){align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3);border-radius:var(--r-control);background:var(--surface-2);color:var(--text-2);display:flex}.issue-error h3 .count:not(:empty){background:var(--error-soft);color:var(--error)}.issue-unresolved h3 .count,.issue-remaining h3 .count{background:var(--warn-soft);color:var(--warn)}.issue-list{gap:var(--s-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.issue{border:1px solid var(--border);border-radius:var(--r-card);padding:var(--s-3) var(--s-4) var(--s-3) 20px;flex-direction:column;gap:6px;display:flex;position:relative;overflow:hidden}.issue:before{content:"";background:var(--border-strong);width:4px;position:absolute;inset:0 auto 0 0}.issue-error .issue:before{background:var(--error)}.issue-unresolved .issue:before,.issue-remaining .issue:before{background:#f79009}.issue.acked{background:var(--surface-2)}.issue.acked:before{background:var(--ok)}.issue.acked .issue-title,.issue.acked .issue-detail{color:var(--muted)}.issue-title{font-weight:600}.issue-detail{font-size:var(--fs-sm);color:var(--text-2)}.issue-actions{gap:var(--s-2);flex-wrap:wrap;align-items:center;margin-top:2px;display:flex}.issue-actions label.check{align-items:center;margin-left:auto}.issue-actions label.check input{margin-top:0}.value-list{margin:var(--s-1) 0;padding-left:18px}.export{padding:var(--s-4);gap:var(--s-4);flex-direction:column;display:flex}.export-option{padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface-2)}.table-wrap{border:1px solid var(--border);border-radius:var(--r-card);position:relative;overflow-x:auto}.export-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.export-table th,.export-table td{text-align:left;padding:10px var(--s-3);border-bottom:1px solid var(--border);vertical-align:middle}.export-table tr:last-child td{border-bottom:0}.export-table th{background:var(--surface-2);color:var(--muted);font-weight:600;font-size:var(--fs-xs)}.export-table td:last-child{text-align:right}.num{font-variant-numeric:tabular-nums;text-align:right!important}.export-actions{display:flex}.report-preview pre{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-control);padding:var(--s-3);white-space:pre-wrap;max-height:40vh;margin:var(--s-2) 0 var(--s-1);overflow:auto}.report-preview p{margin-top:var(--s-2)}@container (width<=640px){.diff-grid.cols-2{grid-template-rows:minmax(0,1fr) minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.diff{min-height:520px}}.rules-tabs{margin:var(--s-3) var(--s-4) 0;display:flex}.rules-tabs button{flex:1;padding:0 8px}.suggestions,.groups{gap:var(--s-3);flex-direction:column;display:flex}.row-actions{justify-content:space-between;align-items:center;gap:var(--s-2);display:flex}.row-actions .small{font-size:var(--fs-xs)}.sugg-file{gap:var(--s-2);flex-direction:column;display:flex}.sugg-file-name{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted);margin-top:var(--s-1);overflow-wrap:anywhere;font-weight:500}.sugg-list{gap:var(--s-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.sugg{border:1px solid var(--border);border-radius:var(--r-card);padding:10px var(--s-3);transition:background-color var(--t), border-color var(--t);flex-direction:column;gap:6px;display:flex}.sugg:hover{border-color:var(--border-strong)}.sugg.enabled{border-color:var(--accent-border);background:#f7f8ff}.sugg-toggle{color:var(--text);cursor:pointer;flex-direction:row;align-items:flex-start;gap:10px}.sugg-toggle input{margin-top:2px}.sugg-title{justify-content:space-between;align-items:center;gap:4px var(--s-2);flex-wrap:wrap;flex:1;min-width:0;display:flex}.sugg-location{font-size:var(--fs-sm);overflow-wrap:anywhere;font-weight:600}.sugg.enabled .badge.cat{background:var(--accent-soft);color:var(--accent)}.sugg-why,.sugg-meta,.sugg .inline-field{margin-left:26px}.sugg-why{font-size:var(--fs-sm);color:var(--text-2);line-height:1.45}.sugg-meta{font-size:var(--fs-xs);color:var(--muted)}.sugg .inline-field{color:var(--muted);font-weight:400;font-size:var(--fs-xs);margin-top:2px}.sugg .inline-field select{min-height:28px;font-size:var(--fs-xs);flex:1}.group-card{border:1px solid var(--border);border-radius:var(--r-card);padding:var(--s-3);flex-direction:column;gap:10px;display:flex}.group-card .form-grid{gap:var(--s-2);grid-template-columns:minmax(0,1fr)}.group-card .form-grid>label,.options>.inline-field{align-items:center;gap:var(--s-2);color:var(--text-2);grid-template-columns:96px minmax(0,1fr);font-weight:400;display:grid}.group-card h4{font-size:var(--fs-xs);color:var(--muted);align-items:center;gap:6px;font-weight:600;display:flex}.group-head{align-items:center;gap:var(--s-2);display:flex}.swatch{border:1px solid var(--border-strong);border-radius:4px;flex:none;width:14px;height:14px}input.group-name:not([type]){font-weight:600;font-size:var(--fs-md);border-color:#0000;flex:1;margin-left:-2px;padding-inline:6px}input.group-name:not([type]):hover{border-color:var(--border-strong)}.group-example{font-size:var(--fs-xs);color:var(--muted)}.group-example code{font-size:var(--fs-xs);color:var(--text);background:var(--surface-3);border-radius:4px;padding:1px 6px}.advanced{border-top:1px solid var(--border);padding-top:var(--s-2)}.advanced summary{align-items:center;gap:var(--s-2);font-size:var(--fs-sm);color:var(--text-2);font-weight:500;list-style:none;display:flex}.advanced summary::-webkit-details-marker{display:none}.advanced summary:before{content:"";width:6px;height:6px;transition:transform var(--t);border-bottom:1.5px solid;border-right:1.5px solid;margin:0 2px;transform:rotate(-45deg)}.advanced[open] summary:before{transform:rotate(45deg)}.advanced-summary{font-size:var(--fs-xs);color:var(--muted);margin-left:auto;font-weight:400}.options{gap:var(--s-2);margin-top:var(--s-2);flex-direction:column;display:flex}.options label.check{font-size:var(--fs-sm)}.options .inline-field{color:var(--text-2);font-weight:400}.group-stats{background:var(--surface-2);padding:6px var(--s-2);color:var(--text-2);border-radius:6px;font-size:var(--fs-xs)!important}.rule-list,.custom-map ul{gap:var(--s-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.rule-row,.custom-row{align-items:center;gap:6px;display:flex}.rule-row{padding:4px 4px 4px var(--s-2);background:var(--surface-2);border-radius:6px}.rule-desc{overflow-wrap:anywhere;flex:1;min-width:0;font-size:var(--fs-xs)!important}.rule-row select{max-width:120px;min-height:28px;font-size:var(--fs-xs)}.custom-row input{flex:1}.custom-row code{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.custom-map{flex-direction:column;gap:6px;display:flex}.custom-map>.btn{align-self:flex-start}.missing{flex-direction:column;gap:4px;display:flex}.new-group{border:1px dashed var(--border-strong);border-radius:var(--r-card);padding:var(--s-3);flex-direction:column;align-items:flex-start;gap:10px;display:flex}.new-group h3{font-size:var(--fs-sm)}.new-group .form-row{width:100%}.add-rule{gap:var(--s-3);flex-direction:column;align-items:stretch;display:flex}.add-rule>.btn{align-self:flex-start}.add-rule label>.small{font-weight:400;font-size:var(--fs-xs)}.add-rule>.inline-field select{flex:1}.radio-row{gap:var(--s-2) var(--s-4);border:0;flex-wrap:wrap;margin:0;padding:0;display:flex}.radio-row legend{font-size:var(--fs-sm);color:var(--text-2);margin-bottom:6px;padding:0;font-weight:500}.radio-row label.check{font-size:var(--fs-sm)}.actionbar{justify-content:space-between;align-items:center;gap:var(--s-3) var(--s-4);min-height:64px;padding:var(--s-3) var(--s-4);background:var(--surface);border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.actionbar.is-stale{background:var(--warn-soft);border-top-color:var(--warn-border)}.actionbar-status{align-items:center;gap:var(--s-3);min-width:0;font-size:var(--fs-sm);flex-wrap:wrap;flex:360px;display:flex}.actionbar-status progress{width:120px;height:6px;accent-color:var(--accent)}.summary-main{align-items:center;gap:var(--s-2);font-weight:500;display:inline-flex}.summary-main .tone-ok{color:var(--ok)}.summary-stale{color:var(--warn);align-items:flex-start;font-weight:400}.summary-stale .icon{margin-top:2px}.summary-stale strong{font-weight:600}.summary-hint{font-size:var(--fs-xs);color:var(--muted);font-weight:400;display:block}.summary-chips{border-radius:var(--r-control);font:inherit;cursor:pointer;transition:background-color var(--t);background:0 0;border:0;flex-wrap:wrap;align-items:center;gap:6px;margin:-4px 0;padding:4px;display:inline-flex}.summary-chips:hover{background:var(--surface-3)}.summary-link{font-size:var(--fs-xs);color:var(--accent);padding:0 4px;font-weight:500}.actionbar-actions{align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.actionbar-actions .switch{font-size:var(--fs-xs);margin-right:var(--s-2)}.dialog{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);width:min(720px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--text);box-shadow:var(--shadow-lg);padding:0}.dialog::backdrop{background:#10182866}.dialog form{padding:var(--s-5);gap:var(--s-4);flex-direction:column;display:flex}.dialog h2{font-size:18px}.dialog h2+p{margin-top:calc(-1 * var(--s-3));font-size:var(--fs-sm)}.dialog textarea{min-height:200px}.dialog #paste-size{margin-top:calc(-1 * var(--s-2));font-size:var(--fs-xs)}.dialog-actions{justify-content:flex-end;gap:var(--s-2);padding-top:var(--s-4);border-top:1px solid var(--border);display:flex}@media (width<=1279px) and (width>=861px){.workspace{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) 320px}.files-panel{flex-direction:row;grid-column:1/-1;align-items:stretch}.files-panel .panel-head{border-bottom:0;border-right:1px solid var(--border);flex-direction:column;justify-content:center;align-items:flex-start;gap:0;min-width:96px}.file-list{gap:var(--s-2);flex-direction:row;overflow:auto hidden}.file-item{flex:0 0 220px}.file-export{display:none}.files-panel .panel-foot{border-top:0;border-left:1px solid var(--border);flex-flow:column;justify-content:center}.step-upcoming .step-label,.step-done .step-label{display:none}}@media (width<=960px){.landing-top{gap:var(--s-6);grid-template-columns:minmax(0,1fr)}}@media (width<=860px){.header{gap:var(--s-2) var(--s-3);padding:var(--s-2) var(--s-3);grid-template-columns:minmax(0,1fr) auto}.stepper{justify-content:space-between;gap:var(--s-1);grid-area:2/1/auto/-1}.step+.step:before{flex:1;width:auto;min-width:8px}.step{flex:auto}.step:first-child{flex:none}.step-upcoming .step-label,.step-done .step-label{display:none}.btn-ghost{padding:0 10px}.landing-inner{padding:var(--s-6) var(--s-4) var(--s-5);gap:var(--s-6)}.features{gap:var(--s-3);grid-template-columns:minmax(0,1fr)}.landing-fineprint{margin-top:calc(-1 * var(--s-3))}.mobile-tabs{margin:var(--s-2) var(--s-3) 0;gap:2px;display:flex}.mobile-tabs button{flex:1;min-height:40px}.workspace{padding:var(--s-2) var(--s-3) var(--s-3);display:block;overflow:auto}.workspace>.panel{min-height:100%;display:none}.workspace.show-files>.files-panel,.workspace.show-preview>.center-panel,.workspace.show-rules>.rules-panel{display:flex}.tab-body{overflow:visible}.tab-body-preview .preview{height:auto}.diff-grid.cols-2{grid-template-rows:none;grid-template-columns:minmax(0,1fr)}.diff,.diff-grid,.diff-col{flex:none;min-height:0}.code{max-height:55vh}.panel-body{overflow:visible}.actionbar{gap:var(--s-2);padding:var(--s-2) var(--s-3) calc(var(--s-2) + env(safe-area-inset-bottom))}.actionbar-status{flex-basis:100%}.actionbar-actions{width:100%}.actionbar-actions .btn{flex:1}.actionbar-actions .switch,.summary-link{display:none}.summary-chips{flex-wrap:nowrap;max-width:100%;overflow-x:auto}}@media (width<=480px){.header:not(.header-landing) .header-example{display:none}.empty-actions .btn:not(.btn-text){flex:1}.empty-actions .btn-text{width:100%}.dropzone{padding:var(--s-4)}}@media (width<=860px),(pointer:coarse){.btn,.pill-tabs button,.segmented button,.mobile-tabs button{min-height:44px}.btn-small{min-height:40px}.icon-btn{width:40px;height:40px}input:not([type=checkbox]):not([type=radio]),select{min-height:44px;font-size:16px}.sugg .inline-field select,.rule-row select{min-height:40px;font-size:14px}.file-main{padding-right:44px}.file-remove{top:4px}.switch input{width:44px;height:44px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.spinner{opacity:.6;border-right-color:currentColor;animation:none}}
