.gen{display:grid;grid-template-columns:320px 1fr;gap:16px}@media(max-width:760px){.gen{grid-template-columns:1fr}}
.panel{padding:14px}.gen label{display:block;font-size:12px;color:var(--mute);margin:12px 0 4px;text-transform:uppercase;letter-spacing:.05em}
.gen label b{color:var(--amber);float:right}.gen select,.gen input[type=range]{width:100%}input[type=range]{accent-color:var(--amber);height:28px}
.gen select{background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:10px;font-size:15px}
#dl{width:100%;margin-top:16px;font-size:15px;padding:12px}#view{height:460px;padding:0;position:relative;overflow:hidden}
@media(max-width:760px){#view{height:340px;order:-1}}#c{width:100%;height:100%;display:block;touch-action:none;cursor:grab}
.hint{position:absolute;left:12px;bottom:10px;font-size:12px;color:var(--mute);pointer-events:none;margin:0}
.note{font-size:12px;color:var(--mute);margin-top:12px}.price{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px;margin:14px 0}
.price strong{color:var(--amber);font-size:18px}.steps li{margin-bottom:8px}.warn{border-left:3px solid var(--amber);padding:10px 14px;background:var(--panel);border-radius:6px}
table{border-collapse:collapse;width:100%;max-width:640px}td,th{border:1px solid var(--line);padding:6px 10px;text-align:left;font-size:14px}th{color:var(--amber)}
.txt{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:10px;font-size:16px}
.warnbox{margin-top:10px;font-size:13px;color:#ffd27a;background:#2a2108;border:1px solid #5a4510;border-radius:6px;padding:8px 10px}
.mini{background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-size:14px;cursor:pointer}.mini:hover{border-color:var(--amber)}
.adds{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:16px;padding:6px 10px;font-size:13px;cursor:pointer}
.chip.on{border-color:#66ccff;color:#66ccff}.chip.hole{border-style:dashed}.frow{display:grid;grid-template-columns:1fr 74px;gap:4px 8px;align-items:center}.frow label{grid-column:1/3;margin:8px 0 0}
.frow input[type=number]{width:74px;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:6px;font-size:15px}.tog{text-transform:none!important;font-size:14px!important;color:var(--text)!important}
.agree{display:flex!important;gap:8px;text-transform:none!important;letter-spacing:0!important;font-size:12px!important;margin-top:16px!important}#ddl{width:100%;margin-top:10px;padding:12px}#ddl:disabled{opacity:.45;cursor:not-allowed}
