:root{--orange:#ff6b35}
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(circle at 75% -10%,var(--bg-glow) 0,transparent 36%),var(--bg);color:var(--text);font:16px/1.6 system-ui,sans-serif;min-height:100vh;padding:20px 14px}
.wrap{max-width:560px;margin:auto}
h1{font-size:24px;margin:0 0 4px}
.sub{color:var(--muted);font-size:13px;margin-bottom:16px}
.box{background:var(--card-bg);border:1px solid var(--border);border-radius:16px;padding:20px;margin-bottom:12px}
.searchrow{display:flex;gap:8px}
input{flex:1;background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:13px 14px;font-size:17px;letter-spacing:1px;text-transform:uppercase}
button{background:var(--gold);color:#241d08;border:0;border-radius:10px;padding:0 20px;font-weight:800;cursor:pointer;font-size:15px}
.btn2{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer;margin-top:8px;font-size:14px}
.btn2:disabled{opacity:.4}
.btn2.ok{background:#203b2b;color:var(--green);border-color:#2e5a3f}
.btn2.cancel{background:#3b2020;color:var(--danger);border-color:#5a2e2e}
.btn2.used{background:#3b2a4a;color:#c9a3ff;border-color:#4a3a5a}
.ticket{text-align:center;padding:8px}
.oid{font-size:19px;font-weight:800;color:var(--blue);letter-spacing:1px}
.info{margin:12px 0;font-size:15px;text-align:left}
.info b{color:var(--gold)}
.info .row{display:flex;justify-content:space-between;padding:3px 0;border-bottom:1px solid var(--border)}
.status{display:inline-block;border-radius:99px;padding:4px 14px;font-size:13px;font-weight:700;margin:6px 0}
.st-new{background:#3d381b;color:var(--gold)}
.st-paid{background:#203b2b;color:var(--green)}
.st-used{background:#3b2a4a;color:#c9a3ff}
.st-cancelled{background:#3b2020;color:var(--danger)}
.msg{font-size:15px;margin-top:10px;min-height:24px}
.msg.ok{color:var(--green)}.msg.err{color:var(--danger)}
.quick{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.q{background:var(--panel2);border:1px solid var(--border);color:var(--muted);border-radius:8px;padding:6px 12px;font-size:12px;cursor:pointer}
.q:hover{color:var(--text)}
#scanBox{position:relative;border-radius:12px;overflow:hidden;background:#000}
#scanBox video{width:100%;border-radius:12px}
#scanBox.hidden{display:none}
.badge{display:inline-block;background:var(--panel2);color:var(--blue);border-radius:8px;padding:4px 10px;font-size:12px;margin-bottom:8px}
.authrow{display:flex;gap:8px;margin-bottom:12px}
.authrow input{flex:1;text-transform:none}

/* 亮色主題：深底狀態徽章改淺底深字（2026-08-08） */
:root[data-theme="light"] .st-new{background:rgba(201,162,39,.16);color:#8a6d10}
:root[data-theme="light"] .st-paid{background:rgba(47,143,91,.14);color:#1e6b3f}
:root[data-theme="light"] .st-used{background:rgba(122,92,208,.14);color:#5c46a8}
:root[data-theme="light"] .st-cancelled{background:rgba(214,69,69,.12);color:#b23b3b}
:root[data-theme="light"] .btn2.ok{background:rgba(47,143,91,.14);color:#1e6b3f;border-color:rgba(47,143,91,.3)}
:root[data-theme="light"] .btn2.cancel{background:rgba(214,69,69,.12);color:#b23b3b;border-color:rgba(214,69,69,.3)}
:root[data-theme="light"] .btn2.used{background:rgba(122,92,208,.14);color:#5c46a8;border-color:rgba(122,92,208,.3)}
