:root{--bg:#0e1117;--panel:#161b24;--panel2:#1d2430;--line:#2a3342;--text:#e6edf3;--muted:#8b98a8;--accent:#ffd166;--accent2:#4cc9f0;--radius:8px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:13px}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--bg);height:100%;color:var(--text);margin:0;overflow:hidden}#app{grid-template:"top top top"44px"tools stage panel"1fr"status status status"24px/64px 1fr 272px;height:100vh;display:grid}#topbar{background:var(--panel);border-bottom:1px solid var(--line);grid-area:top;align-items:center;gap:12px;padding:0 12px;display:flex}.brand{align-items:center;gap:8px;display:flex}.brand .logo{background:linear-gradient(#0b2a4a,#0b2a4a) padding-box padding-box;border:2.5px solid #fff;border-radius:3px;width:18px;height:18px;position:relative}.brand .logo:after{content:"";background:linear-gradient(90deg,#0000 47%,#cfe6ff 47% 53%,#0000 53%),linear-gradient(#0000 47%,#cfe6ff 47% 53%,#0000 53%);position:absolute;inset:0}.brand strong{letter-spacing:.02em;font-size:15px}.brand .tag{color:var(--muted)}.ship-fields{gap:8px;display:flex}.ship-fields input{width:200px}.spacer{flex:1}#editionBadge{color:var(--muted);font-size:12px}#editionBadge b{color:var(--accent)}#tools{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;grid-area:tools;align-items:stretch;gap:2px;padding:6px 4px;display:flex;overflow-y:auto}#tools button{border-radius:var(--radius);color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;flex-direction:column;align-items:center;gap:1px;padding:6px 2px;display:flex}#tools button i{font-size:18px;font-style:normal;line-height:20px}#tools button span{color:var(--muted);font-size:10px}#tools button:hover{background:var(--panel2)}#tools button.active{background:var(--panel2);border-color:var(--accent)}#tools button.active span{color:var(--text)}#tools hr{border:0;border-top:1px solid var(--line);margin:4px 6px}#stage{-webkit-user-select:none;user-select:none;background:#0b2a4a;grid-area:stage;position:relative;overflow:hidden}#canvas{cursor:crosshair;touch-action:none;width:100%;height:100%;display:block}#canvas.pan{cursor:grab}#canvas.pan:active{cursor:grabbing}#panel{background:var(--panel);border-left:1px solid var(--line);grid-area:panel;padding:8px 12px 24px;overflow-y:auto}#panel section{border-bottom:1px solid var(--line);padding:10px 0}#panel h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 8px;font-size:11px}#panel label{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;margin:6px 0;display:flex}#panel label.row{justify-content:flex-start}#panel label.row input[type=checkbox]{flex:none;width:auto}#panel label input:not([type=checkbox]),#panel label select{width:130px}#panel .row{gap:6px;margin:6px 0;display:flex}#panel .row>*{flex:1;min-width:0}#panel button,#panel .button{width:100%;margin:4px 0}.hint{color:var(--muted);margin:6px 0;font-size:12px;line-height:1.4}code{background:var(--panel2);border-radius:3px;padding:1px 4px}input,select{background:var(--panel2);border:1px solid var(--line);color:var(--text);font:inherit;border-radius:6px;padding:5px 8px}input:focus,select:focus{outline:1px solid var(--accent2)}button,.button{background:var(--panel2);border:1px solid var(--line);color:var(--text);font:inherit;cursor:pointer;text-align:center;border-radius:6px;padding:7px 10px;text-decoration:none;display:inline-block}button:hover,.button:hover{border-color:var(--muted)}button.primary,.button.primary{background:var(--accent);color:#1a1400;border-color:var(--accent);font-weight:600}button.ghost{background:0 0}button:disabled{opacity:.4;cursor:default}#status button{margin-left:auto;padding:1px 8px;font-size:11px}#status{background:var(--panel);border-top:1px solid var(--line);color:var(--muted);font-variant-numeric:tabular-nums;grid-area:status;align-items:center;gap:24px;padding:0 12px;font-size:12px;display:flex}dialog{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:12px;max-width:420px;padding:18px 20px}dialog::backdrop{background:#00000080}dialog h3{margin:0 0 10px}dialog table{border-collapse:collapse;width:100%}dialog td{border-bottom:1px solid var(--line);vertical-align:top;padding:4px 6px}dialog td:first-child{white-space:nowrap;color:var(--accent);font-family:ui-monospace,monospace}dialog form{text-align:right;margin-top:12px}.toast{background:var(--panel2);border:1px solid var(--line);z-index:10;pointer-events:none;border-radius:8px;padding:8px 14px;position:fixed;bottom:40px;left:50%;transform:translate(-50%)}.toast.err{border-color:#ff7b54}@media (max-width:900px){#app{grid-template:"top top"44px"tools stage"1fr"panel panel""status status"24px/56px 1fr}#panel{border-left:0;border-top:1px solid var(--line);max-height:40vh}.ship-fields input{width:120px}}#deckTabs{z-index:2;pointer-events:none;flex-wrap:wrap;gap:4px;display:flex;position:absolute;top:8px;left:8px;right:8px}#deckTabs>*{pointer-events:auto}#deckTabs .tab{border:1px solid var(--line);color:var(--muted);cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0e1117d9;border-radius:6px;padding:4px 10px;font-size:12px}#deckTabs .tab.active{color:var(--text);border-color:var(--accent)}#deckTabs .tab.add{color:var(--accent)}#stampPicker{border:1px solid var(--line);z-index:2;background:#161b24f2;border-radius:10px;width:300px;padding:8px;position:absolute;bottom:8px;left:8px}.picker-grid{grid-template-columns:repeat(4,1fr);gap:4px;max-height:min(420px,45vh);display:grid;overflow-y:auto}.picker-grid button{color:var(--muted);background:0 0;border:1px solid #0000;flex-direction:column;align-items:center;gap:2px;padding:4px 2px;font-size:10px;display:flex}.picker-grid button canvas{border-radius:4px;width:36px;height:36px}.picker-grid button.active{border-color:var(--accent);color:var(--text);background:var(--panel2)}.picker-foot{color:var(--muted);padding:6px 2px 0;font-size:11px}.picker-foot b{color:var(--text)}.key-list{flex-direction:column;gap:4px;display:flex}.key-row{grid-template-columns:26px 1fr 22px;align-items:start;gap:4px;display:grid}.key-row .num{text-align:center;background:var(--accent);color:#1a1400;border-radius:50%;width:22px;height:22px;margin-top:3px;font-size:11px;font-weight:700;line-height:22px;display:inline-block}.key-row input,.key-row textarea{width:100%}.brief{resize:vertical;width:100%;min-height:48px;margin-bottom:6px;font-size:12px}.key-row textarea{resize:vertical;min-height:34px;margin-top:3px;font-size:12px}.key-row .x{color:var(--muted);background:0 0;border:0;padding:4px 0}.key-row .x:hover{color:#ff7b54}#intro{z-index:2;border:1px solid var(--line);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#161b24f5;border-radius:10px;flex-direction:column;gap:10px;max-width:560px;padding:12px 14px;line-height:1.45;display:flex;position:absolute;top:44px;left:8px}#intro b{color:var(--accent)}.intro-actions{flex-wrap:wrap;gap:8px;display:flex}.intro-actions button,.intro-actions .button{white-space:nowrap}.intro-actions .button{flex:none}.tint-row{flex-wrap:wrap;gap:6px;display:flex}#panel .tint-row button{border:2px solid var(--line);border-radius:6px;width:26px;height:26px;margin:0;padding:0}.tint-row button.active{border-color:var(--accent)}#panel .tint-row button.none{color:var(--muted);background:0 0;width:auto;padding:0 8px;font-size:12px}#fileName{color:var(--muted);margin-left:6px;font-size:12px}.picker-grid button.add-image{border:1px dashed var(--line);color:var(--accent);justify-content:center;min-height:58px}#panel .presets button{margin:0;padding:4px 6px;font-size:11px}
