:root{font:15px system-ui,-apple-system,"Segoe UI",sans-serif;color:#14203a;background:#eff3fa}*{box-sizing:border-box}body{margin:0}.top{background:#121a39;color:white;padding:13px max(17px,calc((100vw - 1270px)/2));display:flex;justify-content:space-between;align-items:center;gap:12px}.brand{font-weight:900;letter-spacing:.4px;font-size:18px}.brand span{color:#a9c0ff;font-size:12px}a{color:#3058b2;text-decoration:none}.top a{color:white}.top nav{display:flex;gap:14px;flex-wrap:wrap}.top nav a{font-size:12px;color:#d3defb}main{max-width:1270px;margin:auto;padding:26px 18px 70px}.eyebrow{color:#644bc2;font-size:11px;font-weight:900;letter-spacing:2px}h1{margin:6px 0;font-size:clamp(28px,3.8vw,44px)}h2{font-size:18px;margin:0 0 16px}.intro{color:#5a6b86;margin:0 0 18px}.notice{padding:13px 16px;background:#e3ecff;color:#263f8a;border-radius:10px;margin:18px 0;line-height:1.5}.notice.error{background:#fff0f2;color:#a41835}.notice.ready{background:#e7f8ee;color:#176647}.layout{display:grid;grid-template-columns:minmax(310px,450px) minmax(300px,1fr);gap:18px;align-items:start}.settings{display:grid;gap:14px}.card{background:#fff;border:1px solid #dde5f0;box-shadow:0 6px 25px #12244909;padding:20px;border-radius:15px}.step{background:#e6e8ff;color:#533f9d;border-radius:50%;display:inline-grid;place-items:center;width:29px;height:29px;margin-right:7px;font-size:14px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.row>*{flex:1}.row.right{justify-content:flex-end}.row.right>*{flex:none}.row.space{justify-content:space-between}.row.space>*{flex:none}label{display:block;font-size:13px;font-weight:700;color:#34455e;margin:10px 0}input:not([type=color]):not([type=range]):not([type=file]),select{width:100%;display:block;border:1px solid #c5d1e0;border-radius:9px;padding:12px;background:#fbfcff;color:#192746;font:16px system-ui;margin-top:6px}input[type=color]{height:43px;width:100%;min-width:80px;background:white;border:1px solid #bccce0;border-radius:8px;display:block;margin-top:5px}input[type=range]{width:100%;display:block}input[type=file]{width:100%;font-size:13px;margin-top:6px}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid #c8d6e8;border-radius:9px;background:#fff;padding:11px 13px;font-weight:750;font-size:14px;cursor:pointer;color:#223d60;min-height:42px;white-space:nowrap}.btn.primary{background:#e02b47;color:#fff;border-color:#e02b47}.btn.primary:disabled{opacity:.6;cursor:wait}.btn.soft{background:#edf3fc}.btn.full{width:100%}.hint{font-size:12px;color:#62718a;line-height:1.5;margin:8px 0;overflow-wrap:anywhere}code{word-break:break-all;color:#2b48a9;background:#f0f4ff;padding:3px 6px;border-radius:5px}.previewCard{position:sticky;top:15px}.previewCard canvas{display:block;width:100%;height:auto;aspect-ratio:16/9;background:#11162c;border-radius:9px;box-shadow:0 9px 24px #12132a35}.previewCard p{margin-bottom:0}.previewColumn{display:grid;gap:15px}.info{border-left:4px solid #725ad2}.info p{color:#52647f;line-height:1.5}.shade{position:fixed;inset:0;z-index:40;background:#0c1228cc;display:grid;place-items:center;padding:18px}.shade[hidden],[hidden]{display:none!important}.dialog{max-width:530px;width:100%;max-height:90vh;overflow:auto;padding:24px;background:#fff;border-radius:15px;box-shadow:0 16px 60px #0005}.dialog p{line-height:1.5;color:#41526d}.dialog .danger{border:1px solid #f4c3c9;background:#fff2f3;padding:10px;border-radius:8px;color:#a31d34}.login{max-width:480px}.login .btn{margin-top:8px}@media(max-width:760px){.top{padding:12px}.brand{font-size:15px}.brand span{display:none}.top nav{gap:9px}.top nav a{font-size:11px}main{padding:19px 10px 60px}.layout{display:flex;flex-direction:column}.previewColumn{order:-1;width:100%}.settings{order:1;width:100%}.card{padding:15px}.previewCard{position:static}.previewCard canvas{width:100%}h2{font-size:17px}.intro{font-size:13px}.info{display:none}}

/* v0.0.12 */
.check-inline{display:flex;gap:8px;align-items:center;margin:10px 0;font-weight:600}.check-inline input{width:auto;margin:0;flex:0 0 auto}

/* v0.0.13: tool-style page, fixed checkbox */
.page-h1{font-size:clamp(22px,3vw,32px);margin:2px 0 8px}main{padding-top:14px}
.notice{margin:10px 0}
label.check-inline{display:flex!important;align-items:center;gap:10px}
label.check-inline input[type=checkbox]{width:22px!important;height:22px;min-width:22px;display:inline-block!important;margin:0!important;padding:0!important;flex:0 0 auto;accent-color:#e02b47}
@media(max-width:760px){main{padding:10px 10px 50px}.card{padding:13px}.card h2{margin-bottom:10px}}

/* v0.0.14: slide shapes */
.previewCard canvas{aspect-ratio:auto!important;width:auto!important;max-width:100%;max-height:68vh;margin:0 auto}
@media(max-width:760px){.previewCard canvas{max-height:50vh}}

/* v0.0.16: dialogs above the pinned bar; sticky preview clears the bar */
.shade{z-index:1000!important}
.previewCard{top:72px}
