@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f172a;--bg-surface: #1e293b;--bg-card: #334155;--text: #f1f5f9;--text-muted: #94a3b8;--green: #22c55e;--yellow: #eab308;--red: #ef4444;--blue: #3b82f6;--radius: 12px;--font: "Manrope", sans-serif}html{font-size:16px}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;min-height:100vh}.status-bar{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--bg-surface)}.status-bar__dot{width:8px;height:8px;border-radius:50%}.status-bar__dot--online{background:var(--green)}.status-bar__dot--offline{background:var(--red);animation:blink 1.5s infinite}.status-bar__text{font-size:13px;color:var(--text-muted)}.status-bar__pending{font-size:12px;color:var(--yellow);margin-left:auto}.status-bar__logout{margin-left:auto;background:none;border:1px solid #475569;color:var(--text-muted);padding:6px 12px;border-radius:6px;font-size:12px;cursor:pointer;font-family:var(--font)}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.login{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:24px}.login__title{font-size:28px;font-weight:800;margin-bottom:4px}.login__subtitle{font-size:14px;color:var(--text-muted);margin-bottom:32px}.login__form{display:flex;flex-direction:column;gap:12px;width:100%;max-width:320px}.login__input{padding:16px;background:var(--bg-surface);border:1px solid #475569;border-radius:var(--radius);color:var(--text);font-size:16px;font-family:var(--font);min-height:52px}.login__input:focus{outline:none;border-color:var(--blue)}.login__error{color:var(--red);font-size:13px;text-align:center}.login__btn{padding:16px;background:var(--blue);color:#fff;border:none;border-radius:var(--radius);font-size:16px;font-weight:700;cursor:pointer;font-family:var(--font);min-height:52px}.login__btn:disabled{opacity:.5}.scanner{flex:1;display:flex;align-items:center;justify-content:center;position:relative}.scanner__viewport{width:100%;height:100%;position:relative}.scanner__video{width:100%;height:calc(100vh - 52px);object-fit:cover}.scanner__overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.scanner__frame{width:240px;height:240px;border:3px solid rgba(255,255,255,.7);border-radius:16px;box-shadow:0 0 0 9999px #0006}.scanner__paused{position:absolute;bottom:80px;left:50%;transform:translate(-50%);background:#000000b3;color:#fff;padding:8px 20px;border-radius:20px;font-size:14px}.scanner__error{text-align:center;padding:40px 24px}.scanner__error p{color:var(--red);margin-bottom:16px}.scanner__retry{padding:14px 28px;background:var(--blue);color:#fff;border:none;border-radius:var(--radius);font-size:16px;font-weight:600;cursor:pointer;font-family:var(--font);min-height:52px}.ticket-result{margin:16px;padding:24px;border:2px solid;border-radius:16px;display:flex;flex-direction:column;gap:20px}.ticket-result__status{display:flex;align-items:center;gap:12px;justify-content:center}.ticket-result__icon{font-size:40px}.ticket-result__label{font-size:24px;font-weight:800;letter-spacing:1px}.ticket-result__info{display:flex;flex-direction:column;gap:8px}.ticket-result__row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #475569;font-size:16px}.ticket-result__row span{color:var(--text-muted)}.ticket-result__row strong{font-weight:700}.ticket-result__debt{text-align:center;padding:16px;background:#eab30826;border-radius:var(--radius)}.ticket-result__debt-amount{font-size:20px;font-weight:700;color:var(--yellow);margin-bottom:12px}.ticket-result__debt-btn{width:100%;padding:16px;background:var(--yellow);color:#000;border:none;border-radius:var(--radius);font-size:18px;font-weight:700;cursor:pointer;font-family:var(--font);min-height:56px}.ticket-result__reset{width:100%;padding:16px;background:var(--bg-surface);color:var(--text);border:1px solid #475569;border-radius:var(--radius);font-size:16px;font-weight:600;cursor:pointer;font-family:var(--font);min-height:56px}.debt-confirm{margin:16px;padding:24px;background:var(--bg-surface);border-radius:16px;display:flex;flex-direction:column;gap:20px}.debt-confirm__header{text-align:center}.debt-confirm__title{font-size:18px;font-weight:600;color:var(--text-muted)}.debt-confirm__booking{font-size:20px;font-weight:800;margin-top:8px}.debt-confirm__amount{font-size:32px;font-weight:800;color:var(--yellow);margin-top:8px}.debt-confirm__actions{display:flex;flex-direction:column;gap:12px}.debt-confirm__btn{width:100%;padding:18px;border:none;border-radius:var(--radius);font-size:18px;font-weight:700;cursor:pointer;font-family:var(--font);min-height:60px}.debt-confirm__btn--confirm{background:var(--green);color:#fff}.debt-confirm__btn--cancel{background:transparent;color:var(--text-muted);border:1px solid #475569}.debt-confirm__btn:disabled{opacity:.5}.debt-confirm__result{text-align:center;padding:16px;border-radius:var(--radius);font-size:16px;font-weight:600}.debt-confirm__result--success{background:#22c55e26;color:var(--green)}.debt-confirm__result--queued{background:#3b82f626;color:var(--blue)}.debt-confirm__result--error{background:#ef444426;color:var(--red)}
