:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--radius: 8px;--bg: #fafafa;--panel: #ffffff;--panel-2: #fafafa;--line: #eaeaea;--line-soft: #eaeaea;--text: #171717;--text-secondary: #666666;--muted: #888888;--faint: #999999;--accent: #171717;--accent-hover: #000000;--accent-fg: #ffffff;--blue: #0070f3;--blue-light: #ebf5ff;--warning: #f5a623;--warning-bg: #fefce8;--danger: #ee0000;--danger-bg: #fef2f2;--danger-border: #fecdd3;--danger-text: #dc2626;--success: #0070f3;--success-bg: #f0f7ff;--success-border: #c7dbf5;--success-text: #0051a8;--shadow-sm: 0 0 0 1px rgba(0,0,0,.04), 0 1px 2px rgba(0,0,0,.04);--shadow: 0 0 0 1px rgba(0,0,0,.04), 0 2px 4px rgba(0,0,0,.04);--shadow-md: 0 0 0 1px rgba(0,0,0,.04), 0 4px 8px rgba(0,0,0,.06);--input-bg: #ffffff;--input-border: #eaeaea;--input-focus: #171717;--code-bg: #fafafa;--code-border: #eaeaea;--code-text: #171717;color:var(--text);background:var(--bg)}[data-theme=dark]{--bg: #000000;--panel: #111111;--panel-2: #0a0a0a;--line: #333333;--line-soft: #222222;--text: #ededed;--text-secondary: #a1a1a1;--muted: #888888;--faint: #666666;--accent: #ededed;--accent-hover: #ffffff;--accent-fg: #000000;--blue: #3291ff;--blue-light: #0d1d33;--warning: #f5a623;--warning-bg: #1f1a0e;--danger: #f31;--danger-bg: #1f1315;--danger-border: #4a1c21;--danger-text: #f87171;--success: #3291ff;--success-bg: #0d1d33;--success-border: #1a3a5c;--success-text: #79b8ff;--shadow-sm: 0 0 0 1px rgba(255,255,255,.06);--shadow: 0 0 0 1px rgba(255,255,255,.06);--shadow-md: 0 0 0 1px rgba(255,255,255,.06), 0 4px 8px rgba(0,0,0,.3);--input-bg: #000000;--input-border: #333333;--input-focus: #ededed;--code-bg: #0a0a0a;--code-border: #222222;--code-text: #ededed}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg);transition:background .2s}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}.app-shell{min-height:100vh}.topbar{max-width:1200px;margin:0 auto;padding:40px 24px 28px;display:flex;justify-content:space-between;gap:24px;align-items:flex-end}.eyebrow{color:var(--muted);font:500 11px/1.2 Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;text-transform:uppercase}h1{margin:8px 0;font-size:clamp(24px,3.2vw,36px);line-height:1.15;letter-spacing:-.04em;font-weight:700}.topbar p{margin:0;color:var(--text-secondary);max-width:560px;font-size:14px;line-height:1.6}.top-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center}.theme-toggle{width:32px;height:32px;border-radius:6px;border:1px solid var(--line);background:transparent;color:var(--text-secondary);display:grid;place-items:center;padding:0;transition:border-color .15s,color .15s,background .15s}.theme-toggle:hover{border-color:var(--text);color:var(--text)}.theme-toggle svg{width:16px;height:16px}.workspace{max-width:1200px;margin:0 auto;padding:0 24px 40px;display:grid;grid-template-columns:minmax(0,1fr) minmax(400px,.88fr);gap:20px;align-items:start}.config-column{display:grid;gap:16px}.output-column{position:sticky;top:16px;min-width:0}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.panel-heading{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:16px}.panel-heading>div:first-child{display:flex;align-items:center;gap:10px}.panel-heading h2{margin:0;font-size:14px;letter-spacing:-.01em;font-weight:600;text-transform:uppercase}.step{color:var(--text-secondary);background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:2px 6px;font:600 10px/1.4 Geist Mono,ui-monospace,monospace}.panel-copy{color:var(--text-secondary);margin:-6px 0 14px;font-size:13px;line-height:1.6}.count-badge,.status-pill{font:600 11px/1 Geist Mono,ui-monospace,monospace;padding:4px 8px;border-radius:999px;border:1px solid var(--line);color:var(--text-secondary)}.status-pill.ready{color:var(--success-text);border-color:var(--success-border);background:var(--success-bg)}.status-pill.error{color:var(--danger-text);border-color:var(--danger-border);background:var(--danger-bg)}label>span,.field-block>span{display:block;color:var(--text);font-size:13px;font-weight:500;margin-bottom:6px}label em{color:var(--faint);font-style:normal;font-weight:400}input,textarea{width:100%;color:var(--text);background:var(--input-bg);border:1px solid var(--input-border);border-radius:6px;outline:none;transition:border-color .15s,box-shadow .15s}input{height:36px;padding:0 10px;font-size:14px}textarea{min-height:96px;padding:10px;resize:vertical;line-height:1.5;font-size:14px}input:focus,textarea:focus{border-color:var(--input-focus);box-shadow:0 0 0 1px var(--input-focus)}input::placeholder,textarea::placeholder{color:var(--faint)}.form-grid{display:grid;gap:12px}.two-columns{grid-template-columns:1fr 1fr}.field-block{display:block;margin-top:12px}.secret-input{display:grid;grid-template-columns:1fr auto;gap:8px}.secret-input .icon-button{min-width:52px}.check-row{display:flex;flex-wrap:wrap;gap:8px 16px;padding:14px 0 2px}.check-row label,.switch-label{display:flex;gap:6px;align-items:center;font-size:13px;color:var(--text)}.check-row input,.switch-label input{width:15px;height:15px;accent-color:var(--text)}.switch-label{padding:4px 8px;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;font-weight:500;font-size:12px}.primary-button,.secondary-button,.icon-button,.danger-button,.ghost-danger{border-radius:6px;height:36px;padding:0 12px;border:1px solid transparent;font-weight:500;font-size:13px;transition:background .15s,border-color .15s,color .15s}.primary-button{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.primary-button:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.secondary-button,.icon-button{background:transparent;color:var(--text);border-color:var(--line)}.secondary-button:hover:not(:disabled),.icon-button:hover:not(:disabled){border-color:var(--text)}.danger-button,.ghost-danger{color:var(--danger-text);border-color:var(--danger-border);background:var(--danger-bg)}.ghost-danger{background:transparent}.ghost-danger:hover{background:var(--danger-bg)}.hidden-input{display:none}.row-between{display:flex;justify-content:space-between;align-items:center;gap:14px}.helper-text{color:var(--faint);font-size:12px;line-height:1.45}.import-actions{margin-top:10px}.uri-input{min-height:112px;font:13px/1.55 Geist Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.rules-input{min-height:180px;font:13px/1.6 Geist Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.parse-report{margin-top:12px;padding:10px 12px;border:1px solid var(--success-border);background:var(--success-bg);border-radius:6px;font-size:12px;color:var(--success-text)}.parse-report.has-errors{border-color:var(--danger-border);background:var(--danger-bg);color:var(--danger-text)}.parse-failure{margin-top:8px;display:grid;gap:4px;color:var(--danger-text)}.parse-failure code{color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}.proxy-list{display:grid;gap:8px;margin-top:14px}.proxy-card{border:1px solid var(--line);background:var(--panel);border-radius:var(--radius);overflow:hidden}.proxy-index{width:22px;height:22px;border:1px solid var(--line);border-radius:4px;display:grid;place-items:center;color:var(--faint);font:600 10px/1 Geist Mono,ui-monospace,monospace}.proxy-heading{min-width:0}.proxy-name{height:28px;font-weight:500;border-color:transparent;background:transparent;padding-left:4px;font-size:14px}.proxy-name:hover{border-color:var(--line)}.proxy-meta{display:flex;flex-wrap:wrap;gap:6px;margin:3px 0 0 4px}.proxy-meta span{color:var(--faint);font:400 11px/1.2 Geist Mono,ui-monospace,monospace}details{border-top:1px solid var(--line)}summary{cursor:pointer;color:var(--text-secondary);font-size:12px;padding:8px 12px;user-select:none}.advanced-editor{border-top:1px solid var(--line);padding:12px}.code-input{min-height:240px;font:12px/1.55 Geist Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.inline-error{margin-top:8px;color:var(--danger-text);font-size:12px}.empty-state{border:1px dashed var(--line);border-radius:6px;padding:20px;text-align:center;color:var(--faint);font-size:13px}.output-panel{padding-bottom:12px}.output-heading{margin-bottom:12px}.issue-list{display:grid;gap:6px;margin-bottom:12px}.issue{display:grid;grid-template-columns:auto 1fr;gap:8px;padding:8px 10px;border-radius:6px;font-size:12px}.issue.error{background:var(--danger-bg);color:var(--danger-text)}.issue.warning{background:var(--warning-bg);color:var(--warning)}.output-actions{display:flex;gap:8px;margin-bottom:12px}.code-preview{margin:0;min-height:560px;max-height:calc(100vh - 250px);overflow:auto;background:var(--code-bg);border:1px solid var(--code-border);border-radius:6px;padding:14px;color:var(--code-text);font:13px/1.6 Geist Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;tab-size:2;white-space:pre}footer{max-width:1152px;margin:0 auto;padding:0 24px 32px;display:flex;justify-content:space-between;gap:20px;color:var(--faint);font-size:12px}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);padding:8px 16px;background:var(--accent);color:var(--accent-fg);border-radius:6px;font-size:13px;font-weight:500;box-shadow:var(--shadow-md);z-index:20}.batch-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;margin-top:10px;border-top:1px solid var(--line)}.batch-select-all{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--text-secondary);cursor:pointer}.batch-select-all input{width:14px;height:14px;accent-color:var(--text)}.proxy-select-check{width:14px;height:14px;accent-color:var(--text);flex-shrink:0}.proxy-card--selected{border-color:var(--accent)}.proxy-card-head{padding:10px 12px;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}.edit-mode-toggle{float:right;font-size:11px;color:var(--blue);cursor:pointer;margin-left:8px}.edit-mode-toggle:hover{text-decoration:underline}.visual-proxy-editor{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:4px 0}.visual-field{display:block}.visual-field span{display:block;font-size:11px;font-weight:500;color:var(--text-secondary);margin-bottom:4px}.visual-field input{height:32px;font-size:13px}.rule-builder{display:grid;gap:10px}.rule-builder-header{display:flex;justify-content:flex-end}.rule-add-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.rule-add-row select{height:36px;padding:0 8px;border:1px solid var(--input-border);border-radius:6px;background:var(--input-bg);color:var(--text);font-size:13px;outline:none}.rule-add-row select:focus{border-color:var(--input-focus)}.rule-value-input{flex:1;min-width:120px}.rule-no-resolve{display:flex;gap:4px;align-items:center;font-size:12px;color:var(--text-secondary);white-space:nowrap}.rule-no-resolve input{width:14px;height:14px;accent-color:var(--text)}.rule-list{display:grid;gap:4px}.rule-item{display:flex;gap:6px;align-items:center;padding:6px 8px;border:1px solid var(--line);border-radius:6px;font-size:12px;background:var(--panel-2)}.rule-type-tag{font:500 10px/1.2 Geist Mono,ui-monospace,monospace;padding:2px 5px;border-radius:3px;background:var(--line);color:var(--text);white-space:nowrap}.rule-value-text{font:400 12px/1.3 Geist Mono,ui-monospace,monospace;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rule-policy-text{margin-left:auto;font-size:11px;color:var(--text-secondary);white-space:nowrap}.rule-flag{font-size:10px;color:var(--faint);padding:1px 4px;border:1px solid var(--line);border-radius:3px}.rule-delete{width:20px;height:20px;border-radius:4px;border:none;background:transparent;color:var(--faint);font-size:14px;display:grid;place-items:center;padding:0;flex-shrink:0}.rule-delete:hover{background:var(--danger-bg);color:var(--danger-text)}.help-trigger{width:20px;height:20px;border-radius:50%;border:1px solid var(--line);background:var(--bg);color:var(--text-secondary);font-size:12px;font-weight:600;display:inline-grid;place-items:center;padding:0;cursor:pointer;margin-left:6px;vertical-align:middle;transition:background .15s,color .15s}.help-trigger:hover{background:var(--text);color:var(--bg)}.help-overlay{position:fixed;inset:0;z-index:1000;background:#0006;display:grid;place-items:center;padding:24px}.help-modal{width:100%;max-width:520px;max-height:80vh;background:var(--bg);border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 48px #0003;display:flex;flex-direction:column;overflow:hidden}.help-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line);flex-shrink:0}.help-modal-header strong{font-size:15px}.help-modal-close{width:28px;height:28px;border-radius:6px;border:none;background:transparent;color:var(--text-secondary);font-size:18px;display:grid;place-items:center;padding:0;cursor:pointer}.help-modal-close:hover{background:var(--surface)}.help-modal-body{padding:20px;font-size:14px;line-height:1.7;color:var(--text-secondary);overflow-y:auto}.help-modal-body p{margin:0 0 10px}.help-modal-body p:last-child{margin-bottom:0}.help-modal-body strong{color:var(--text);display:block;margin-top:14px;margin-bottom:6px;font-size:13px;text-transform:uppercase;letter-spacing:.04em}.help-modal-body ul{margin:0 0 10px;padding-left:20px}.help-modal-body li{margin-bottom:4px}.help-modal-body code{font-size:12px;background:var(--surface);padding:1px 5px;border-radius:3px;border:1px solid var(--line)}@media (max-width: 1050px){.workspace{grid-template-columns:1fr}.output-column{position:static}.code-preview{max-height:600px}}@media (max-width: 720px){.topbar{padding:20px 16px 16px;align-items:flex-start;flex-direction:column}.top-actions{justify-content:flex-start}.privacy-strip{margin:0 16px 12px}.workspace{padding:0 16px 24px}.panel{padding:14px}.two-columns{grid-template-columns:1fr}.row-between{align-items:stretch;flex-direction:column}.proxy-card-head{grid-template-columns:auto 1fr}.proxy-card-head .danger-button{grid-column:2;justify-self:start}footer{padding:0 16px 20px;flex-direction:column}}
