:root{--bg: #14110f;--ink: #fff;--muted: rgba(255, 255, 255, .66);--card: rgba(255, 255, 255, .07);--line: rgba(255, 255, 255, .16);--danger: #ff5656;--ok: #4ade80;--radius: 16px}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:var(--bg);color:var(--ink);font-family:system-ui,Segoe UI,Tahoma,Arial,sans-serif;font-size:17px}.app{max-width:520px;margin-inline:auto;padding:12px 16px 48px}.bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-block:12px;border-block-end:1px solid var(--line)}.spacer{flex:1}.badge{font-size:.78rem;padding:5px 10px;border-radius:999px;background:#ffffff1f;border:1px solid var(--line)}.badge.offline{background:#ff56562e;border-color:#ff565673}.notice{margin:12px 0 0;padding:12px 14px;border-radius:12px;background:#ffffff1a;border:1px solid var(--line);font-size:.92rem}main{padding-block-start:16px}h2{font-size:1.15rem;margin:0 0 12px}h3{font-size:1rem;margin:0 0 10px;color:var(--muted)}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-block-start:16px}.field+.field{margin-block-start:14px}label{display:block;font-size:.88rem;color:var(--muted);margin-block-end:6px}input{width:100%;padding:14px;font-size:1.1rem;font-family:inherit;border-radius:12px;border:1px solid var(--line);background:#00000040;color:var(--ink)}input:focus{outline:2px solid #fff;outline-offset:1px}button{font-family:inherit;cursor:pointer}.primary{width:100%;margin-block-start:18px;padding:16px;min-height:52px;font-size:1.05rem;font-weight:600;border:0;border-radius:12px;background:#fff;color:#14110f}.primary[disabled]{opacity:.55}.secondary{padding:10px 14px;min-height:44px;border-radius:10px;background:transparent;color:var(--ink);border:1px solid var(--line);font-size:.9rem}.secondary[disabled]{opacity:.45;cursor:not-allowed}.link{background:none;border:0;color:var(--muted);font-size:.88rem;padding:8px;text-decoration:underline}.error{margin-block-start:14px;padding:12px 14px;border-radius:12px;background:#ff565626;border:1px solid rgba(255,86,86,.4);font-size:.92rem}.note{color:var(--muted);font-size:.85rem;margin-block-start:12px}.customer{font-size:1.2rem;font-weight:600;margin:0}.member{font-family:ui-monospace,SF Mono,Menlo,monospace;letter-spacing:.14em;color:var(--muted);margin:4px 0 0;font-size:.9rem}.balance{font-size:2.6rem;font-weight:700;margin:10px 0 0}.balance .unit{font-size:1rem;font-weight:400;color:var(--muted);margin-inline-start:8px}.scan-region{width:100%;aspect-ratio:1;max-height:60vh;border-radius:var(--radius);overflow:hidden;background:#000;border:1px solid var(--line)}.scan-region video{width:100%;height:100%;object-fit:cover}.rewards{list-style:none;margin:0;padding:0}.rewards li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:12px}.rewards li+li{border-block-start:1px solid var(--line)}.rewards small{display:block;color:var(--muted);font-size:.82rem}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-block-start:12px;padding-block-end:8px;border-block-end:1px solid var(--line)}.tab{padding:10px 14px;min-height:44px;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--muted);font-size:.95rem}.tab.active{background:var(--card);border-color:var(--line);color:var(--ink)}.filters{display:flex;gap:14px;flex-wrap:wrap}.filters .field{flex:1 1 160px;margin-block-start:0}select{width:100%;padding:14px;font-size:1rem;font-family:inherit;border-radius:12px;border:1px solid var(--line);background:#00000040;color:var(--ink)}.table-wrap{margin-block-start:16px;overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{padding:12px 10px;text-align:start;white-space:nowrap}th{color:var(--muted);font-weight:500;border-block-end:1px solid var(--line)}tbody tr+tr td{border-block-start:1px solid var(--line)}.figures{display:grid;gap:12px;margin-block-start:16px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.figure{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:6px}.figure-label{color:var(--muted);font-size:.82rem}.figure-value{font-size:1.7rem;font-weight:700;line-height:1.1}.figure-hint{color:var(--muted);font-size:.78rem}
