:root{--bg:#fff8e6;--card:#fff;--stage:#f3ecff;--ink:#1a1030;--muted:#5d5277;--line:#e3dbf2;--pop:#ffd23f;--pink:#ff5d8f;--ok:#1f8a4c;--over:#c0392b;--accent:#5b3fd0;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#150c33;--card:#221654;--stage:#2d1f66;--ink:#f4efff;--muted:#b8acd9;--line:#3a2b7a;--ok:#5fd08f;--over:#ff7a6b;--accent:#b9a6ff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#150c33;--card:#221654;--stage:#2d1f66;--ink:#f4efff;--muted:#b8acd9;--line:#3a2b7a;--ok:#5fd08f;--over:#ff7a6b;--accent:#b9a6ff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);padding:max(20px, env(safe-area-inset-top)) 16px max(40px, env(safe-area-inset-bottom));font:600 15px/1.45 Nunito,system-ui,sans-serif;overflow-x:hidden}code{font-size:.9em}button,.button{font:inherit;color:var(--ink);background:var(--card);border:2px solid var(--ink);cursor:pointer;border-radius:10px;padding:4px 10px;font-weight:800;text-decoration:none;display:inline-block}button[aria-pressed=true]{background:var(--pop);color:#1a1030}button:disabled{opacity:.4;cursor:default}.intro{max-width:760px;margin:0 auto 24px}h1{color:var(--pop);-webkit-text-stroke:2.5px #1a1030;paint-order:stroke fill;text-shadow:4px 4px 0 var(--pink);margin:0 0 8px;font:400 clamp(34px,8vw,56px)/1 Luckiest Guy,system-ui,sans-serif}.intro p{color:var(--muted);margin:0 0 8px}details{color:var(--muted)}summary{cursor:pointer;color:var(--ink);font-weight:800}details ul{margin:6px 0 0;padding-left:20px}.grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:16px;max-width:1280px;margin:0 auto;display:grid}.card{background:var(--card);border:2px solid var(--line);border-radius:16px;flex-direction:column;gap:8px;min-width:0;padding:10px;display:flex}.stage{aspect-ratio:1;background:var(--stage);touch-action:pan-y;cursor:grab;border-radius:12px;position:relative}.stage .empty{color:var(--muted);place-items:center;font-weight:800;display:grid;position:absolute;inset:0}.card h2{flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:18px;font-weight:900;display:flex}.badge{border:1.5px solid;border-radius:99px;padding:1px 8px;font-size:12px;font-weight:800}.badge.ok{color:var(--ok)}.badge.over{color:var(--over)}.row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.stats{color:var(--muted);font-variant-numeric:tabular-nums;margin:0;font-size:13px}.prompt{color:var(--muted);margin:0;font-size:13px;font-style:italic}.actions a{font-size:13px}#gl{pointer-events:none;z-index:1;width:100%;height:100%;position:fixed;inset:0}dialog{border:2px solid var(--ink);background:var(--stage);width:min(92vw,820px);height:min(86svh,820px);color:var(--ink);border-radius:18px;padding:0}dialog::backdrop{background:#0a0620cc}dialog[open]{flex-direction:column;display:flex}.viewer-stage{touch-action:none;cursor:grab;flex:1}.viewer-bar{background:var(--card);border-top:2px solid var(--line);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}input,textarea{font:inherit;color:var(--ink);background:var(--bg);border:2px solid var(--line);border-radius:10px;width:100%;padding:6px 8px}.card.drop{border-color:var(--accent);border-style:dashed}.card.new{justify-content:center;min-height:180px}.card.new input{flex:1;min-width:0}.pending{flex-direction:column;gap:4px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.pending:empty{display:none}.pending-title{color:var(--accent);font-weight:900}.pending li{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pending button{padding:2px 8px;font-size:13px}.pending .note{color:var(--muted);flex-basis:100%;font-style:italic}.upload{height:100%;display:flex}.upload-stage{touch-action:none;cursor:grab;flex:1;min-width:0}.upload-fields{background:var(--card);flex-direction:column;gap:10px;width:300px;padding:16px;display:flex;overflow-y:auto}.upload-fields h2{margin:0;font-size:20px;font-weight:900}.upload-fields label{flex-direction:column;gap:4px;font-weight:800;display:flex}.upload-fields label[hidden]{display:none}.error{color:var(--over);min-height:1.2em;margin:0;font-weight:800}button.primary{background:var(--pop);color:#1a1030}@media (max-width:640px){.upload{flex-direction:column}.upload-stage{flex:none;height:38svh}.upload-fields{flex:1;width:auto}}
