.gen-section{padding-bottom:var(--space-16)}.panel{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--space-6);padding:var(--space-6);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.panel-main{display:flex;flex-direction:column;gap:var(--space-8);min-width:0}.panel-side{display:flex;flex-direction:column;gap:var(--space-4);align-self:start;position:sticky;top:80px;padding:var(--space-6);background:var(--surface-sunken);border-radius:var(--radius-lg);min-width:0}.panel-section{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.step{display:flex;align-items:center;gap:var(--space-3)}.step-num{display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:28px;height:24px;padding:0 8px;border-radius:var(--radius-pill);background:transparent;color:var(--brand-deep);border:1.5px solid var(--brand);font:700 12px/1 var(--font-mono);letter-spacing:.04em}.step-num.is-todo{color:var(--ink-muted);border-color:var(--line-strong)}.step-title{font:600 24px/30px var(--font-display);letter-spacing:-.01em}.panel-side .step-title{font-size:20px;line-height:26px}.tabs{display:flex;flex-wrap:wrap;gap:var(--space-2)}.tab{display:inline-flex;align-items:center;gap:var(--space-2);flex:none;height:36px;padding:0 var(--space-3);border:1px solid var(--line);border-radius:var(--radius-pill);background:transparent;color:var(--ink-muted);font:600 13px/18px var(--font-sans);white-space:nowrap;transition:color 150ms ease-out,background-color 150ms ease-out}.tab:hover{color:var(--ink);border-color:var(--line-strong);background:var(--surface-sunken)}.tab[aria-selected="true"]{color:var(--brand-deep);border-color:var(--brand);background:var(--brand-soft)}.tab:focus-visible{outline-offset:-2px}.tab .icon{width:18px;height:18px}.design-tabs .tab{font-size:14px}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.field{display:flex;flex-direction:column;gap:var(--space-2);grid-column:span 2;min-width:0}.field.half{grid-column:span 1}.label-row{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-2)}.label{font:600 13px/18px var(--font-sans);letter-spacing:.01em;color:var(--ink)}.req{color:var(--danger)}.counter{font-size:12px;color:var(--ink-muted)}.input{width:100%;height:var(--control-md);padding:0 var(--space-3);border-radius:var(--radius-md);border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--ink);font:400 15px/22px var(--font-sans);transition:border-color 150ms ease-out}.input.mono{font:400 14px/20px var(--font-mono)}.input::placeholder{color:var(--ink-faint)}.input:hover{border-color:var(--ink-muted)}.input:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-color:var(--ink)}.input[aria-invalid="true"]{border-color:var(--danger)}.textarea{height:auto;padding:var(--space-3);resize:vertical;min-height:88px}.select{appearance:none;-webkit-appearance:none;padding-right:36px;background-image:linear-gradient(45deg,transparent 50%,var(--ink-muted) 50%),linear-gradient(135deg,var(--ink-muted) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px;background-repeat:no-repeat}.input-wrap{position:relative}.input-wrap .input{padding-right:44px}.input-addon{position:absolute;right:4px;top:4px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink-muted)}.input-addon:hover,.input-addon[aria-pressed="true"]{color:var(--ink);background:var(--surface-sunken)}.help{font:400 12px/17px var(--font-sans);color:var(--ink-muted)}.help.error{color:var(--danger);display:flex;align-items:flex-start;gap:var(--space-1);font-weight:500}.help.error .icon{width:14px;height:14px;margin-top:1px;stroke-width:2.2}.form-hint{margin-top:var(--space-3)}.check-row{display:flex;align-items:center;gap:var(--space-2)}.checkbox{width:18px;height:18px;accent-color:var(--brand);margin:0}.privacy-inline{display:flex;align-items:center;gap:var(--space-2);font-size:13px;color:var(--ink-muted)}.privacy-inline .icon{width:16px;height:16px;color:var(--success)}.chips{display:flex;gap:var(--space-2);padding:var(--space-3);background:var(--surface-sunken);border-radius:var(--radius-md);overflow-x:auto}.chip{flex:none;display:flex;flex-direction:column;align-items:center;gap:var(--space-1);min-width:72px;padding:var(--space-2) var(--space-2) var(--space-1);border-radius:var(--radius-md);border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--ink-muted);transition:border-color 150ms ease-out,box-shadow 150ms ease-out}.chip:hover{border-color:var(--ink);color:var(--ink)}.chip[aria-pressed="true"]{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand);color:var(--ink)}.chip-art{display:block;width:40px;height:40px}.chip-art canvas,.chip-art svg{display:block;width:40px;height:40px}.chip-art svg{fill:currentColor}canvas.chip-art{background:#fff;border-radius:3px;object-fit:contain}.chip-cap{font:600 11px/14px var(--font-sans);white-space:nowrap}.chip-text{min-width:0;padding:0 var(--space-3);height:var(--control-sm);flex-direction:row;font:600 13px/18px var(--font-sans)}.opt-group{display:flex;flex-direction:column;gap:var(--space-2)}.opt-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.seg{display:inline-flex;flex-wrap:wrap;border:1px solid var(--line-strong);border-radius:var(--radius-md);overflow:hidden;background:var(--surface-raised)}.seg button{height:var(--control-sm);padding:0 var(--space-3);border:0;background:var(--surface-raised);color:var(--ink-muted);font:500 12px/16px var(--font-mono)}.seg button + button{border-left:1px solid var(--line-strong)}.seg button:hover{color:var(--ink)}.seg button[aria-pressed="true"]{background:var(--brand);color:var(--on-brand)}.seg button:focus-visible{outline-offset:-3px}.seg-sans button{font-family:var(--font-sans);font-weight:600}.switch{display:inline-flex;align-items:center;gap:var(--space-3);padding:0;border:0;background:none;font:600 14px/20px var(--font-sans);color:var(--ink);text-align:left}.switch-track{position:relative;flex:none;width:40px;height:24px;border-radius:var(--radius-pill);background:var(--surface-raised);border:1px solid var(--line-strong);transition:background-color 150ms ease-out,border-color 150ms ease-out}.switch-knob{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:var(--radius-pill);background:var(--line-strong);transition:transform 150ms ease-out,background-color 150ms ease-out}.switch[aria-checked="true"] .switch-track{background:var(--brand);border-color:var(--brand)}.switch[aria-checked="true"] .switch-knob{transform:translateX(16px);background:#fff}.switch:focus-visible{outline:none}.switch:focus-visible .switch-track{outline:2px solid var(--focus);outline-offset:2px}.switch-hint{display:block;font:400 12px/16px var(--font-sans);color:var(--ink-muted)}.color-field{display:flex;align-items:center;gap:var(--space-2)}.color-field input[type="color"]{-webkit-appearance:none;appearance:none;flex:none;width:40px;height:40px;padding:3px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface-raised);cursor:pointer}.color-field input[type="color"]::-webkit-color-swatch-wrapper{padding:0}.color-field input[type="color"]::-webkit-color-swatch{border:0;border-radius:4px}.color-field input[type="color"]::-moz-color-swatch{border:0;border-radius:4px}.color-field .input{width:110px}.range-row{display:flex;align-items:center;gap:var(--space-3)}.range-row input[type="range"]{flex:1;min-width:0;accent-color:var(--brand);height:24px}.range-row output{min-width:44px;text-align:right;font:500 12px/16px var(--font-mono);color:var(--ink-muted)}.ec-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.ec-opt{position:relative;display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface-raised);cursor:pointer}.ec-opt input{margin:3px 0 0;accent-color:var(--brand);width:16px;height:16px;flex:none}.ec-opt:has(input:checked){border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.ec-opt:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}.ec-name{font-weight:600;font-size:14px}.ec-desc{display:block;font-size:12px;line-height:17px;color:var(--ink-muted)}.ec-rec{margin-top:var(--space-1)}.upload{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.upload input[type="file"]{position:absolute;width:1px;height:1px;opacity:0}.upload input[type="file"]:focus-visible + label{outline:2px solid var(--focus);outline-offset:2px}.logo-current{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-raised)}.logo-current img{width:40px;height:40px;object-fit:contain;background:#fff;border-radius:var(--radius-sm)}.logo-name{font-size:13px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-tile{position:relative;display:flex;align-items:center;justify-content:center;min-height:272px;padding:var(--space-6);background:#ffffff;border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.preview-tile[data-bg="gray"]{background:#9aa1ab}.preview-tile[data-bg="dark"]{background:#1c1f26}.preview-tile[data-bg="white"]{background-image:none}.preview-tile canvas{display:block;max-width:100%;height:auto;transition:opacity 200ms ease-out}.preview-tile.is-sample canvas{opacity:.18}.preview-tile.is-error canvas{opacity:.08}.preview-empty{position:absolute;inset:auto var(--space-5);text-align:center;font:600 14px/20px var(--font-sans);color:#0f172a}.preview-busy{position:absolute;top:var(--space-3);right:var(--space-3);font:500 12px/16px var(--font-mono);color:#525b6b}.preview-meta{text-align:center;font:500 12px/16px var(--font-mono);color:var(--ink-muted);min-height:16px}.bg-check{display:flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:12px;color:var(--ink-muted)}.warnings{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-2)}.warn{display:flex;gap:var(--space-2);align-items:flex-start;font-size:13px;line-height:18px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md)}.warn .icon{width:16px;height:16px;margin-top:1px;stroke-width:2.2}.warn-error{background:var(--danger-soft);color:var(--danger)}.warn-warn{background:var(--warning-soft);color:var(--warning)}.warn-ok{color:var(--success);padding-left:0;padding-right:0;justify-content:center}.dl-controls{display:flex;flex-direction:column;gap:var(--space-3)}.dl-split{position:relative;display:flex;width:100%}.scan-reminder{display:flex;gap:var(--space-2);align-items:flex-start;margin:0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--success-soft);color:var(--ink);font:400 13px/18px var(--font-sans)}.scan-reminder .icon{width:16px;height:16px;flex:none;margin-top:1px;color:var(--success);stroke-width:2}.scan-reminder a{color:inherit;font-weight:600}.dl-split .btn-main{flex:1;border-radius:var(--radius-md) 0 0 var(--radius-md)}.dl-split .dl-toggle{width:44px;padding:0;border-radius:0 var(--radius-md) var(--radius-md) 0;border-left:1px solid #ffffff55}.dl-split .dl-toggle .icon{width:18px;height:18px}.menu{position:absolute;right:0;top:calc(100% + 6px);z-index:20;min-width:220px;list-style:none;margin:0;padding:var(--space-1);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-pop)}.menu button{display:flex;width:100%;justify-content:space-between;gap:var(--space-4);padding:var(--space-2) var(--space-3);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink);font:600 14px/20px var(--font-sans);text-align:left}.menu button small{font:400 12px/20px var(--font-sans);color:var(--ink-muted)}.menu button:hover,.menu button:focus-visible{background:var(--surface-sunken);outline-offset:-2px}.side-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.side-actions .btn{width:100%;padding:0 var(--space-2);font-size:13px;min-width:0}.side-actions .btn span{overflow:hidden;text-overflow:ellipsis}.side-actions .btn-reset{grid-column:span 2}.side-foot{display:flex;flex-direction:column;gap:var(--space-2);align-items:flex-start}.payload-view summary{cursor:pointer;font-size:13px;color:var(--ink-muted)}.payload-view textarea{margin-top:var(--space-2);width:100%;min-height:80px;font:400 12px/18px var(--font-mono);padding:var(--space-2);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--ink);resize:vertical}.unsupported{padding:var(--space-4);border-radius:var(--radius-md);background:var(--danger-soft);color:var(--danger);font-weight:500}.mobile-bar{display:none}.scanner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-6);padding:var(--space-6);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.scan-view{position:relative;aspect-ratio:4 / 3;background:var(--surface-sunken);border-radius:var(--radius-lg);overflow:hidden;display:flex;align-items:center;justify-content:center}.scan-view video{width:100%;height:100%;object-fit:cover;display:none}.scanner.is-scanning .scan-view video{display:block}.scanner.is-scanning .scan-placeholder{display:none}.scan-placeholder{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);color:var(--ink-muted);text-align:center;padding:var(--space-6)}.scan-placeholder .icon{width:40px;height:40px}.scan-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4)}.scanner [data-scan-stop]{display:none}.scanner.is-scanning [data-scan-stop]{display:inline-flex}.scanner.is-scanning [data-scan-start]{display:none}.scan-file{position:relative}.scan-file input{position:absolute;width:1px;height:1px;opacity:0}.scan-file input:focus-visible + label{outline:2px solid var(--focus);outline-offset:2px}.scan-status{display:flex;gap:var(--space-2);align-items:flex-start;margin-top:var(--space-4);font-size:14px;color:var(--ink-muted)}.scan-status .icon{width:16px;height:16px;margin-top:3px}.scan-status.is-error{color:var(--danger)}.scan-result{display:flex;flex-direction:column;gap:var(--space-3)}.scan-result:focus{outline:none}.result-text{margin:0;padding:var(--space-3);max-height:240px;overflow:auto;white-space:pre-wrap;word-break:break-word;background:var(--surface-sunken);border-radius:var(--radius-md);font-size:13px;line-height:20px}.result-rows{display:grid;grid-template-columns:auto 1fr;gap:var(--space-1) var(--space-4);margin:0;font-size:14px}.result-rows dt{color:var(--ink-muted)}.result-rows dd{margin:0;word-break:break-all}.result-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.fieldset-plain{border:0;padding:0;margin:0;min-width:0}