:root{--bg:#f5f7fa;--surface:#fff;--text:#111a2b;--muted:#5a6577;--border:#e0e5ec;--subtle:#edf0f5;--primary:#1b2e4f;--primary-pressed:#13223b;--primary-soft:#e9edf4;--accent:#1a7d60;--brand-green:#26a37e;--gold:#d6a441;--gold-bg:#fbf3e1;--ink:#1b2e4f;--danger:#c62f2f;--danger-bg:#fdeeee;--success:#1a7d60;--success-bg:#e6f5ef;--warning:#8a5a00;--warning-bg:#fff6e0;--radius:12px;--shadow:0 4px 14px #1b2e4f12;--shadow-raised:0 8px 24px #1b2e4f24;color:var(--text);background:var(--bg);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{min-height:100vh;margin:0;font-size:15px;line-height:1.45}a{color:var(--primary)}h1{margin:0 0 4px;font-size:24px}h2{margin:0 0 12px;font-size:17px}.muted{color:var(--muted)}.small{font-size:13px}.topbar{background:var(--ink);color:#fff;justify-content:space-between;align-items:center;padding:12px 24px;display:flex}.topbar a{color:#fff;font-weight:600;text-decoration:none}.topbar .who{align-items:center;gap:16px;font-size:13px;display:flex}.page{max-width:1100px;margin:0 auto;padding:24px}.card{background:var(--surface);box-shadow:var(--shadow);border-radius:18px;padding:20px}.stack{flex-direction:column;gap:16px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.grid2{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (max-width:800px){.grid2{grid-template-columns:1fr}}label{flex-direction:column;gap:6px;font-size:14px;font-weight:600;display:flex}input,textarea{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);padding:10px 12px}input:focus,textarea:focus,button:focus-visible{outline:2px solid var(--primary);outline-offset:1px}button{font:inherit;border-radius:var(--radius);cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);min-height:42px;padding:10px 16px;font-weight:600}button:disabled{opacity:.55;cursor:not-allowed}button.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.primary:hover:not(:disabled){background:var(--primary-pressed)}button.success{background:var(--success);border-color:var(--success);color:#fff}button.danger{color:var(--danger);border-color:var(--danger)}button.link{color:var(--primary);background:0 0;border:none;min-height:0;padding:0}.notice{border-radius:var(--radius);padding:12px 14px;font-size:14px}.notice.error{background:var(--danger-bg);color:var(--danger)}.notice.warn{background:var(--warning-bg);color:var(--warning)}.notice.ok{background:var(--success-bg);color:var(--success)}.tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px;margin-bottom:16px;display:flex}.tabs button{color:var(--muted);background:0 0;border:none;border-radius:8px 8px 0 0}table{border-collapse:collapse;background:var(--surface);width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px;font-size:14px}th{color:var(--muted);background:var(--subtle);font-weight:600}tr.clickable{cursor:pointer}.badge{border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700;display:inline-block}.badge.UNDER_REVIEW{background:var(--warning-bg);color:var(--warning)}.badge.APPROVED{background:var(--success-bg);color:var(--success)}.badge.REJECTED,.badge.SUSPENDED{background:var(--danger-bg);color:var(--danger)}.badge.DRAFT,.badge.CLOSED{background:var(--subtle);color:var(--muted)}dl.facts{grid-template-columns:160px 1fr;gap:8px 16px;margin:0;display:grid}dl.facts dt{color:var(--muted);font-size:14px}dl.facts dd{word-break:break-word;margin:0;font-size:14px}.photos{flex-wrap:wrap;gap:10px;display:flex}.photos img{object-fit:cover;border:1px solid var(--border);border-radius:8px;width:160px;height:120px}.centered{place-items:center;min-height:100vh;padding:24px;display:grid}.login{width:100%;max-width:400px}.qr{width:220px;height:220px;image-rendering:pixelated;margin:0 auto;display:block}.secret{letter-spacing:2px;word-spacing:4px;background:var(--subtle);text-align:center;border-radius:8px;padding:8px;font-family:ui-monospace,Consolas,monospace}dialog{border:none;border-radius:14px;width:min(480px,92vw);padding:24px}dialog::backdrop{background:#0f172a80}.nav{align-items:center;gap:18px;display:flex}.nav a{color:#fffc;font-weight:500}.nav a[aria-current=page]{color:#fff;font-weight:700}.stats{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.stat{background:var(--surface);border:1px solid var(--border);color:inherit;border-radius:14px;flex-direction:column;gap:4px;padding:16px;text-decoration:none;display:flex}.stat strong{font-size:24px}.stat.alert{border-color:var(--warning);background:var(--warning-bg)}.badge.ACTIVE,.badge.PENDING_OK{background:var(--success-bg);color:var(--success)}.badge.FROZEN,.badge.BLOCKED{background:var(--danger-bg);color:var(--danger)}.badge.PENDING,.badge.AWAITING_MERCHANT_APPROVAL,.badge.AWAITING_PAYMENT{background:var(--warning-bg);color:var(--warning)}.badge.CANCELLED,.badge.EXPIRED{background:var(--subtle);color:var(--muted)}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.pos{color:var(--success)}.topbar{background:linear-gradient(110deg, var(--ink) 0%, var(--ink) 55%, var(--accent) 160%);box-shadow:var(--shadow-raised);padding:14px 24px}.topbar .nav>a:first-child{letter-spacing:.3px;margin-right:8px;font-weight:800}.nav a{border-radius:8px;padding:6px 10px;transition:background .15s}.nav a:hover{background:#ffffff14}.nav a[aria-current=page]{background:#ffffff24}h1{letter-spacing:-.3px;font-size:26px;font-weight:800}button{border-radius:10px;transition:background .15s,transform 50ms,box-shadow .15s}button:active:not(:disabled){transform:translateY(1px)}button.primary{box-shadow:0 4px 12px #1b2e4f40}input,textarea{border-radius:10px}input:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:0;border-color:var(--primary)}table{box-shadow:var(--shadow);border-radius:14px;overflow:hidden}th{background:var(--subtle);text-transform:uppercase;letter-spacing:.5px;font-size:12px}tr.clickable:hover td{background:var(--primary-soft)}.stat{box-shadow:var(--shadow);border:none;transition:transform .15s,box-shadow .15s}a.stat:hover{box-shadow:var(--shadow-raised);transform:translateY(-2px)}.stat strong{letter-spacing:-.5px;font-size:28px}.stat.alert{background:var(--warning-bg);box-shadow:inset 4px 0 0 #f0a500, var(--shadow)}.notice{border-left:4px solid}.tabs button[aria-selected=true]{color:var(--primary);box-shadow:inset 0 -3px 0 var(--primary)}dialog,.login.card{box-shadow:var(--shadow-raised)}.centered{background:radial-gradient(circle at 20% 10%, var(--primary-soft), transparent 50%), var(--bg)}.topbar .who span{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.nav{flex-wrap:wrap;gap:4px}.brand{align-items:center;gap:8px;display:inline-flex}.brand img{background:#fff;border-radius:7px;width:28px;height:28px;padding:3px}.kpis{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;display:grid}.kpi{background:var(--surface);box-shadow:var(--shadow);color:inherit;border-radius:16px;flex-direction:column;gap:4px;padding:16px 18px;text-decoration:none;display:flex;position:relative;overflow:hidden}.kpi:before{content:"";background:var(--ink);width:4px;position:absolute;inset:0 auto 0 0}.kpi.green:before{background:var(--brand-green)}.kpi.gold:before{background:var(--gold)}.kpi .label{color:var(--muted);font-size:13px;font-weight:600}.kpi .value{letter-spacing:-.5px;font-variant-numeric:tabular-nums;font-size:28px;font-weight:800}.kpi .hint{color:var(--muted);font-size:12px}a.kpi:hover{box-shadow:var(--shadow-raised)}.banner{background:var(--danger-bg);color:var(--danger);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;font-weight:600;display:flex}.banner a{color:var(--danger);white-space:nowrap;font-weight:800}.chart{grid-template-columns:repeat(14,1fr);align-items:end;gap:8px;height:160px;padding-top:8px;display:grid}.chart .day{justify-content:center;align-items:flex-end;gap:3px;height:100%;display:flex}.chart .bar{background:var(--ink);border-radius:4px 4px 0 0;width:40%;max-width:16px;min-height:3px}.chart .bar.b{background:var(--brand-green)}.chart .bar.zero{background:var(--border)}.chart-labels{color:var(--muted);text-align:center;grid-template-columns:repeat(14,1fr);gap:8px;font-size:11px;display:grid}.legend{color:var(--muted);flex-wrap:wrap;gap:18px;font-size:13px;display:flex}.legend i{background:var(--ink);vertical-align:middle;border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.legend i.b{background:var(--brand-green)}.dash-grid{grid-template-columns:2fr 1fr;gap:16px;display:grid}@media (max-width:900px){.dash-grid{grid-template-columns:1fr}}.todo{flex-direction:column;gap:8px;display:flex}.todo a{background:var(--subtle);color:inherit;border-radius:10px;justify-content:space-between;align-items:center;padding:10px 12px;font-weight:600;text-decoration:none;display:flex}.todo a.hot{background:var(--warning-bg);color:var(--warning)}.todo a .count{font-variant-numeric:tabular-nums;font-weight:800}.pay-page{background:var(--primary);justify-content:center;align-items:flex-start;min-height:100vh;padding:24px 16px 40px;display:flex}.pay-card{background:var(--surface);width:100%;max-width:420px;box-shadow:var(--shadow-raised);border-radius:20px;flex-direction:column;gap:12px;padding:28px 22px;display:flex}.pay-logo{align-self:center;width:auto;height:34px;margin-bottom:4px}.pay-for{text-align:center;margin:8px 0 0}.pay-shop{text-align:center;margin:0;font-size:22px}.pay-amount{text-align:center;color:var(--primary);letter-spacing:-.5px;font-size:40px;font-weight:800}.pay-facts{background:var(--subtle);border-radius:var(--radius);grid-template-columns:auto 1fr;gap:6px 14px;margin:4px 0 8px;padding:14px;font-size:14px;display:grid}.pay-facts dt{color:var(--muted)}.pay-facts dd{margin:0;font-weight:600}.pay-button{text-align:center;background:var(--brand-green);color:#fff;border-radius:14px;padding:15px;font-size:17px;font-weight:800;text-decoration:none;display:block}.pay-button:active{background:var(--accent)}.pay-qr{border-top:1px solid var(--border);text-align:center;flex-direction:column;align-items:center;gap:4px;padding-top:8px;display:flex}.pay-upi{text-align:center;border-top:1px solid var(--border);flex-direction:column;align-items:center;gap:4px;padding-top:8px;display:flex}.pay-center{text-align:center;margin:0}.pay-save{border:2px solid var(--primary);color:var(--primary);border-radius:12px;margin:4px 0;padding:9px 16px;font-weight:700;text-decoration:none;display:inline-block}.poster-page{background:var(--bg);min-height:100vh;font-family:var(--poster-font), Inter, system-ui, sans-serif;padding:20px 16px 40px}.poster-toolbar{flex-direction:column;gap:10px;max-width:860px;margin:0 auto 18px;font-family:Inter,system-ui,sans-serif;display:flex}.poster-toolbar>.row{justify-content:space-between}.poster-sheet{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.poster{width:420px;height:592px;box-shadow:var(--shadow-raised);color:#1b2e4f;background:#fff;flex-direction:column;flex:none;align-items:center;display:flex;position:relative;overflow:hidden}.poster .p-top{padding:22px 0 10px}.poster .p-top img{height:52px;display:block}.poster .p-band{color:#fff;text-align:center;background:#1b2e4f;width:100%;padding:12px 10px 13px}.poster .p-band b{letter-spacing:.3px;font-size:22px;font-weight:800;display:block}.poster .p-band span{color:#d6a441;letter-spacing:1.5px;text-transform:uppercase;font-size:12.5px;font-weight:600}.poster .p-shop{text-align:center;overflow-wrap:anywhere;max-width:100%;margin-top:14px;padding:0 16px;font-size:25px;font-weight:800;line-height:1.05}.poster .p-area{color:#6b7587;margin-top:4px;font-size:12px;font-weight:500}.poster .p-qr{flex:none;justify-content:center;align-items:center;width:244px;height:244px;margin-top:12px;display:flex;position:relative}.poster .p-qr .code{width:208px;height:208px;display:block}.poster .p-qr i{border:0 solid #26a37e;width:34px;height:34px;position:absolute}.poster .p-qr .tl{border-top-width:5px;border-left-width:5px;border-top-left-radius:14px;top:0;left:0}.poster .p-qr .tr{border-top-width:5px;border-right-width:5px;border-top-right-radius:14px;top:0;right:0}.poster .p-qr .bl{border-bottom-width:5px;border-left-width:5px;border-bottom-left-radius:14px;bottom:0;left:0}.poster .p-qr .br{border-bottom-width:5px;border-right-width:5px;border-bottom-right-radius:14px;bottom:0;right:0}.poster .p-qr .mid{background:#fff;border-radius:12px;justify-content:center;align-items:center;width:50px;height:50px;display:flex;position:absolute}.poster .p-qr .mid img{width:78%}.poster .p-steps{gap:10px;width:100%;margin-top:12px;padding:0 22px;display:flex}.poster .p-steps>div{background:#f1f4f8;border-radius:10px;flex:1;align-items:center;gap:7px;padding:7px 9px;display:flex}.poster .p-steps em{color:#fff;background:#26a37e;border-radius:50%;flex:none;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-style:normal;font-weight:800;display:flex}.poster .p-steps p{margin:0;font-size:10.5px;font-weight:600;line-height:1.25}.poster .p-foot{color:#fff;background:#26a37e;justify-content:space-between;align-items:center;gap:10px;width:100%;margin-top:auto;padding:10px 18px;display:flex}.poster .p-foot p{margin:0;font-size:11.5px;font-weight:600;line-height:1.3}.poster .p-foot b{font-weight:800}.poster .p-play{background:#0f1a2c;border-radius:8px;flex:none;align-items:center;gap:6px;padding:5px 10px;display:flex}.poster .p-play svg{width:16px;height:16px}.poster .p-play span{color:#cfd6e2;font-size:8px;line-height:1.05}.poster .p-play span b{color:#fff;font-size:12px;display:block}@media print{.poster-page{background:#fff;padding:0}.poster-toolbar{display:none}.poster-sheet{justify-content:start;gap:0;display:grid}.poster-sheet.a4{grid-template-columns:105mm 105mm}.poster{zoom:.9449;box-shadow:none;break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}.poster-sheet.a4 .poster{outline:.2mm dashed #c9d0db}}.button-link{background:var(--primary);color:#fff;border-radius:10px;padding:8px 14px;font-size:14px;font-weight:700;text-decoration:none;display:inline-block}.poster-sheet.in4x6 .poster{height:630px}@media print{.poster-sheet.in4x6 .poster{zoom:.9143}}
