:root{--bg:#0e1013;--panel:#171a1f;--text:#e8ebef;--muted:#98a2ad;--line:#2b3038;--accent:#4d9be6}@media (prefers-color-scheme:light){:root{--bg:#f4f5f7;--panel:#fff;--text:#1b1f24;--muted:#66707c;--line:#dde1e6;--accent:#0b6bcb}}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);margin:0;font:15px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}.kiosk{background:#000;position:fixed;inset:0}.kiosk canvas{width:100%;height:100%;display:block}.kiosk.idle{cursor:none}.status{color:#ccc;pointer-events:none;background:#0000008c;border-radius:6px;max-width:calc(100vw - 24px);padding:4px 8px;font-size:12px;transition:opacity .6s;position:fixed;bottom:10px;left:12px}.status.hidden{opacity:0}.status.error{color:#ffb4a9;opacity:1}.home{max-width:460px;margin:10vh auto;padding:0 16px}.home h1{margin:0 0 6px;font-size:24px}.home p{color:var(--muted);margin:0 0 18px}.home form{background:var(--panel);border:1px solid var(--line);border-radius:12px;gap:12px;padding:18px;display:grid}.home label{color:var(--muted);gap:4px;font-size:12px;display:grid}.home input,.home select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);text-transform:none;border-radius:8px;padding:9px 10px}.home input.code{letter-spacing:.05em;text-transform:uppercase;font-family:ui-monospace,Menlo,monospace}.home button{font:inherit;background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px}.home .error{color:#e06c5a}.review{max-width:1280px;margin:0 auto;padding:20px 16px}.review header h1{margin:0 0 2px;font-size:22px}.review header p{color:var(--muted);margin:0 0 16px}.mono{letter-spacing:.04em;font-family:ui-monospace,Menlo,monospace}.cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr));gap:16px;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}.card .preview{background:#000;justify-content:center;display:flex}.card .preview canvas{aspect-ratio:16/9;width:100%;display:block}.card .preview.portrait canvas{aspect-ratio:9/16;width:auto;max-width:100%;height:420px}.card .meta{flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px 0;display:flex}.card .meta .grow{flex:1}.card .meta button{font:inherit;border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;padding:3px 8px;font-size:12px}.card .meta button.on{color:var(--text);border-color:var(--accent)}.card .meta a{color:var(--accent);font-size:13px;text-decoration:none}.card .note{color:var(--muted);min-height:18px;padding:6px 12px 12px;font-size:12px}.kiosk-page,.kiosk-page body{overflow:hidden}.prompt{color:#fff;pointer-events:none;background:#000000b3;border-radius:12px;padding:14px 22px;font-size:18px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.menu{color:#e8ebef;z-index:10;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0c0e12e0;border:1px solid #ffffff1f;border-radius:12px;max-width:min(560px,100vw - 24px);max-height:calc(100vh - 24px);padding:10px 12px;font-size:13px;position:fixed;bottom:12px;left:12px;overflow:auto}.menu.on-face{max-width:min(560px,50vw - 24px);left:calc(25vw + 12px)}.menu table{border-collapse:collapse;width:100%}.menu th{text-align:left;color:#98a2ad;vertical-align:top;white-space:nowrap;padding:4px 10px 4px 0;font-weight:500}.menu td{padding:4px 0}.menu button{font:inherit;color:#cfd5dc;cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:6px;margin:0 4px 2px 0;padding:3px 9px;font-size:12px}.menu button.on{color:#fff;background:#4d9be62e;border-color:#4d9be6}.menu .warn{color:#ffb37a}.menu .dim{color:#7d8792}
