:root{--bg: #f4f5fb;--surface: #ffffff;--surface-2: #eef0f8;--text: #1c2030;--muted: #6b7280;--border: #e3e6f0;--accent: #4356e0;--accent-contrast: #ffffff;--danger: #dc2626;--shadow: 0 8px 24px rgb(28 32 48 / .12);--radius: 16px;color-scheme:light}:root[data-theme=dark]{--bg: #10131f;--surface: #1a1e2e;--surface-2: #232840;--text: #e8eaf4;--muted: #9aa1b5;--border: #2a3048;--accent: #6478ff;--accent-contrast: #ffffff;--danger: #ef4444;--shadow: 0 8px 24px rgb(0 0 0 / .45);color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}.mono{font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.screen{display:flex;flex-direction:column;min-height:100dvh;max-width:560px;margin:0 auto}.appbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:8px;padding:calc(env(safe-area-inset-top) + 10px) 16px 10px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.appbar h1{font-size:1.15rem;font-weight:700;flex:1;min-width:0}.appbar-actions{display:flex;align-items:center;gap:4px}.content{flex:1;padding:14px 16px 16px;width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:12px;border:1px solid var(--border);background:var(--surface);font-weight:600;font-size:.95rem;transition:filter .15s ease,opacity .15s ease}.btn:active{filter:brightness(.92)}.btn.primary{background:var(--accent);color:var(--accent-contrast);border-color:transparent}.btn.danger{background:var(--danger);color:#fff;border-color:transparent}.btn.danger-outline{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,transparent)}.btn.big{width:100%;padding:14px 16px;font-size:1rem}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;color:var(--text);flex:none;transition:background .15s ease}.btn-icon:active{background:var(--surface-2)}.btn-icon.light{color:#fff}.btn-icon.light.active{background:#ffffff40}.btn-icon.small{width:32px;height:32px}.menu{position:relative}.menu summary{list-style:none}.menu summary::-webkit-details-marker{display:none}.menu-panel{position:absolute;right:0;top:calc(100% + 6px);z-index:20;min-width:210px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);overflow:hidden;padding:6px}.menu-panel button{display:flex;align-items:center;gap:10px;width:100%;padding:11px 12px;border-radius:10px;font-size:.95rem;text-align:left}.menu-panel button:active{background:var(--surface-2)}.search-row{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:6px 10px;margin-bottom:14px;color:var(--muted)}.search-row input{flex:1;min-width:0;border:none;background:none;color:var(--text);font-size:1rem;outline:none;padding:6px 0}.search-row input::-webkit-search-cancel-button{display:none}.card-list{list-style:none;display:flex;flex-direction:column;gap:10px}.card-row{display:flex;align-items:center;gap:14px;width:100%;padding:14px;background:var(--surface);border:1px solid var(--border);border-left:5px solid var(--card-color, var(--accent));border-radius:var(--radius);text-align:left;box-shadow:0 1px 3px #1c20300f;transition:transform .1s ease}.card-row:active{transform:scale(.985)}.card-avatar{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:var(--card-color, var(--accent));color:#fff;font-weight:700;font-size:.95rem;letter-spacing:.02em;flex:none}.card-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.card-info strong{font-size:1rem}.card-info small{color:var(--muted);font-size:.82rem}.card-chevron{color:var(--muted);flex:none}.fab{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:calc(max(20px,env(safe-area-inset-bottom)) + 14px);z-index:15;width:60px;height:60px;border-radius:20px;background:var(--accent);color:var(--accent-contrast);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px color-mix(in srgb,var(--accent) 45%,transparent);transition:transform .1s ease}.fab:active{transform:scale(.94)}.float-search{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:calc(max(20px,env(safe-area-inset-bottom)) + 88px);z-index:15;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow)}.empty{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:48px 24px;color:var(--muted)}.empty h2{color:var(--text);font-size:1.15rem}.empty p{max-width:300px;line-height:1.5;font-size:.95rem}.empty .btn{margin-top:8px}.form{display:flex;flex-direction:column;gap:18px}.field{display:flex;flex-direction:column;gap:7px}.field label{font-size:.85rem;font-weight:600;color:var(--muted)}.field input,.field select{padding:13px 14px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:1rem;outline:none;width:100%;transition:border-color .15s ease}.field input:focus,.field select:focus{border-color:var(--accent)}.field-row{display:flex;gap:8px}.field-row input{flex:1;min-width:0}.scan-btn{flex:none}.field-error{color:var(--danger);font-size:.85rem}.color-row{display:flex;gap:10px;flex-wrap:wrap}.color-dot{width:36px;height:36px;border-radius:50%;border:3px solid transparent;transition:transform .1s ease,border-color .15s ease}.color-dot.selected{border-color:var(--text);transform:scale(1.12)}.detail{display:flex;flex-direction:column;gap:18px}.ticket{background:#fff;color:#000;border-radius:var(--radius);border-top:6px solid var(--card-color, var(--accent));padding:26px 18px 18px;display:flex;flex-direction:column;align-items:center;gap:16px;box-shadow:var(--shadow)}.ticket-barcode{width:100%;height:auto;max-height:46dvh}.ticket-code{display:inline-flex;align-items:center;gap:8px;font-size:1.05rem;font-weight:600;letter-spacing:.04em;color:#111;padding:6px 10px;border-radius:8px;max-width:100%}.ticket-code span{overflow-wrap:anywhere}.ticket-code:active{background:#f0f0f0}.meta{display:flex;flex-direction:column;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.meta>div{display:flex;justify-content:space-between;gap:16px}.meta dt{color:var(--muted);font-size:.9rem;flex:none}.meta dd{text-align:right;overflow-wrap:anywhere}.hint{color:var(--muted);font-size:.85rem;text-align:center;line-height:1.5}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#00000080;display:flex;align-items:center;justify-content:center;padding:24px}.dialog{background:var(--surface);border-radius:18px;padding:22px;max-width:360px;width:100%;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow)}.dialog h3{font-size:1.1rem}.dialog p{color:var(--muted);line-height:1.5;font-size:.95rem}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.scanner-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#000;display:flex;flex-direction:column}.scanner-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.scanner-topbar{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:calc(env(safe-area-inset-top) + 14px) 18px 0}.scanner-frame{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(82vw,360px);aspect-ratio:1.55;border:2px solid rgb(255 255 255 / .9);border-radius:18px;box-shadow:0 0 0 9999px #0000008c}.scanner-hint{position:absolute;bottom:calc(env(safe-area-inset-bottom) + 40px);left:0;right:0;text-align:center;color:#fff;font-size:.98rem;text-shadow:0 1px 4px rgb(0 0 0 / .8);padding:0 24px}.scanner-error{position:relative;z-index:2;margin:auto;background:var(--surface);color:var(--text);border-radius:18px;padding:22px;max-width:340px;display:flex;flex-direction:column;gap:14px;text-align:center;box-shadow:var(--shadow)}.scanner-error p{line-height:1.5;font-size:.95rem}.toast{position:fixed;left:50%;bottom:calc(max(20px,env(safe-area-inset-bottom)) + 100px);transform:translate(-50%);z-index:60;background:#262b3f;color:#fff;padding:11px 18px;border-radius:999px;font-size:.92rem;box-shadow:var(--shadow);max-width:min(88vw,420px);text-align:center;animation:toast-in .2s ease}:root[data-theme=dark] .toast{background:#e8eaf4;color:#1c2030}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}
