:root{color-scheme:dark;--ink:#062420;--surface:#0c2b27;--surface-2:#0f332e;--border:#1c4a43;--fg:#e6fffb;--muted:#7fb8ae;--teal:#14b8a6;--teal-deep:#0c8073;--mint:#5eead4;--gold:#f2c94c;--gold-deep:#d9a93a;--error:#fda4a4;--danger-bg:rgba(248,113,113,0.12);--ok-bg:rgba(94,234,212,0.12);--radius:0.85rem}*{box-sizing:border-box}body,html{margin:0;padding:0;background:radial-gradient(1200px 600px at 50% -10%,rgba(20,184,166,.1),transparent 60%),var(--ink);color:var(--fg);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}.app{max-width:30rem;margin:0 auto;padding:1.75rem 1.25rem 3rem;min-height:100vh}.brand{display:inline-flex;align-items:baseline;gap:0;font-weight:800;letter-spacing:-.02em;font-size:1.5rem}.brand .print{color:var(--fg)}.brand .flow{color:var(--mint)}.brand-row{display:flex;align-items:center;gap:.6rem;margin-bottom:.5rem}.brand-tile{width:1.9rem;height:1.9rem;border-radius:.5rem;background:linear-gradient(150deg,#16c3b0,var(--teal-deep));display:grid;place-items:center;flex:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 6px 16px rgba(12,128,115,.35)}.brand-tile:after{content:"";width:.7rem;height:.7rem;border-radius:999px;background:var(--gold);box-shadow:0 0 12px rgba(242,201,76,.7)}h1{font-size:1.6rem;line-height:1.2;margin:.25rem 0 .75rem;letter-spacing:-.01em}p{line-height:1.55}.muted{color:var(--muted);margin:.25rem 0}.error{color:var(--error)}.empty{padding:1rem 0}.badge{display:inline-block;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:.25rem .75rem}.badge,form label{font-size:.85rem;color:var(--muted)}form label{display:block;font-weight:600;margin-top:.5rem}input{width:100%;padding:.85rem 1rem;font-size:1rem;border-radius:.75rem;border:1px solid var(--border);background:var(--surface);color:var(--fg);margin:.75rem 0;transition:border-color .15s ease,box-shadow .15s ease}input::placeholder{color:#5d9a90}input:focus-visible{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(20,184,166,.25)}.button,button{display:inline-block;width:100%;text-align:center;padding:.85rem 1rem;font-size:1rem;font-weight:700;border:0;border-radius:.75rem;background:linear-gradient(150deg,var(--teal),var(--teal-deep));color:#04201c;text-decoration:none;cursor:pointer;transition:filter .15s ease,transform .05s ease,opacity .15s ease}.button:hover,button:hover{filter:brightness(1.07)}button:active{transform:translateY(1px)}button:disabled{opacity:.6;cursor:progress;filter:none}a:focus-visible,button:focus-visible{outline:2px solid var(--mint);outline-offset:2px}.release-all button,.release-btn{background:linear-gradient(150deg,var(--gold),var(--gold-deep));color:#2a2000}.auth-gate{background:var(--surface);border:1px solid var(--border);border-radius:1rem;padding:1.25rem;margin:1.5rem 0}.fineprint{color:var(--muted);font-size:.8rem;margin-top:1.5rem}form{margin-top:1rem}a{color:var(--mint)}.stack>*+*{margin-top:.5rem}.jobs{list-style:none;padding:0;margin:1rem 0}.job{display:flex;align-items:center;gap:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem 1rem;margin-bottom:.6rem}.job-info{flex:1 1;min-width:0}.job-name{font-weight:600;word-break:break-word}.job-meta{font-size:.8rem;margin-top:.15rem}.job form{margin:0}.job-actions{display:flex;gap:.5rem;align-items:center;flex-shrink:0}.cancel-btn,.release-btn{width:auto;min-height:44px;padding:.55rem 1.1rem;font-size:.9rem}.cancel-btn{background:transparent;color:var(--muted);border:1px solid var(--border)}.cancel-btn:hover:not(:disabled){color:var(--fg);border-color:var(--muted)}.release-all{margin-top:.5rem}.signout{margin-top:1.5rem}.link-button{width:auto;background:transparent;color:var(--muted);font-weight:500;padding:.5rem 0}.link-button:hover{filter:none;color:var(--fg)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem}.feedback{font-size:.85rem;margin:.5rem 0 0;padding:.5rem .7rem;border-radius:.6rem}.feedback.error{color:var(--error);background:var(--danger-bg);border:1px solid rgba(248,113,113,.3)}.feedback.ok{color:var(--mint);background:var(--ok-bg);border:1px solid rgba(94,234,212,.3)}.scanner{margin-top:1rem}.scanner-video{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:1rem;border:1px solid var(--border);background:#000}.divider{text-align:center;font-size:.85rem;margin:1.25rem 0 .25rem}.upload{background:var(--surface-2);border:1px dashed var(--border);border-radius:var(--radius);padding:.9rem 1rem;margin:.5rem 0 1rem}.upload input[type=file]{width:100%;margin:0 0 .6rem;color:var(--muted);font-size:.9rem}.upload button{font-size:.95rem}.skeleton{background:linear-gradient(90deg,var(--surface),var(--surface-2),var(--surface));background-size:200% 100%;animation:shimmer 1.2s ease-in-out infinite;border-radius:var(--radius)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.subnav{margin:.25rem 0 1.25rem}.subnav a{color:var(--mint);font-size:.95rem;text-decoration:none}.subnav a:hover{text-decoration:underline}.status-tag{align-self:center;font-size:.72rem;font-weight:600;text-transform:capitalize;padding:.18rem .6rem;border-radius:999px;background:rgba(94,234,212,.14);color:var(--mint);white-space:nowrap}.status-tag.completed,.status-tag.printed,.status-tag.released{background:rgba(242,201,76,.16);color:var(--gold)}.status-tag.canceled,.status-tag.cancelled,.status-tag.expired,.status-tag.failed{background:rgba(127,184,174,.14);color:var(--muted)}body:has(.kiosk)>footer{display:none}body:has(.kiosk) .app{max-width:42rem;padding:2.5rem 2rem 3rem}.kiosk h1{font-size:2.2rem}.kiosk-site{font-size:1.05rem}.kiosk-lead{font-size:1.15rem;margin:.25rem 0 1rem}.kiosk-form label{font-size:1rem}.kiosk-form input{font-size:1.35rem;padding:1.05rem 1.2rem;margin:.6rem 0 .9rem}.kiosk-form button{font-size:1.2rem;padding:1.05rem 1.2rem}.kiosk .jobs .job{padding:1.1rem 1.2rem}.kiosk .job-name{font-size:1.15rem}.kiosk .job-meta{font-size:.95rem}.kiosk .cancel-btn,.kiosk .release-btn{min-height:52px;font-size:1.05rem;padding:.7rem 1.3rem}.kiosk .release-all button{font-size:1.25rem;padding:1.05rem 1.2rem;margin-top:.5rem}.kiosk-idle{margin-top:1.25rem;text-align:center}.kiosk-idle .link-button{font-size:1rem}.kiosk-done{text-align:center;padding-top:3rem}.kiosk-check{width:5.5rem;height:5.5rem;margin:0 auto 1.25rem;border-radius:999px;background:linear-gradient(150deg,var(--gold),var(--gold-deep));box-shadow:0 0 40px rgba(242,201,76,.45);position:relative}.kiosk-check:after{content:"";position:absolute;left:1.9rem;top:1.05rem;width:1.3rem;height:2.4rem;border:solid #2a2000;border-width:0 .55rem .55rem 0;transform:rotate(45deg)}