:root{--brand:#0F3D3E;--brand-d:#0A2A2B;--accent:#E8A33D;--wa:#1F8A4C;--wa-d:#17643A;--bg:#F7F5F0;--ink:#1C2321;--mute:#4A5553;--line:#E4DED2;--card:#fff;--warn-bg:#FCEFD8;--warn:#7A4B0B;--ok-bg:#E3F3EA;--ok:#17643A;--bad-bg:#FBE4E2;--bad:#9A2A1F}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Plus Jakarta Sans","Noto Sans Telugu",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:15px;line-height:1.45}
a{color:var(--brand)}
img{max-width:100%;display:block}
h1,h2,h3{margin:0;line-height:1.25}
.wrap{max-width:560px;margin:0 auto;padding:0 16px}
.wide{max-width:1040px}
.te{font-family:"Noto Sans Telugu","Plus Jakarta Sans",sans-serif}
.muted{color:var(--mute)}
.small{font-size:13px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 16px;border-radius:12px;border:1.5px solid transparent;font:inherit;font-weight:700;font-size:14px;text-decoration:none;cursor:pointer;background:#fff;color:var(--ink);border-color:#CFC8BA}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--brand);color:#fff;border-color:var(--brand)}
.btn-accent{background:var(--accent);color:var(--ink);border-color:var(--accent)}
.btn-wa{background:var(--wa);color:#fff;border-color:var(--wa)}
.btn-ghost{background:transparent}
.btn-danger{color:var(--bad);border-color:#E7B7B1;background:#fff}
.btn-block{width:100%}
.btn-sm{min-height:40px;padding:0 12px;font-size:13px;border-radius:10px}
.btn svg{width:18px;height:18px;flex-shrink:0}

/* admin */
.topbar{background:var(--brand);color:#fff}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:16px;padding-bottom:16px}
.tb-title{font-size:19px;font-weight:800}
.tb-sub{font-size:12px;opacity:.85}
.tb-back{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,.12);color:#fff;text-decoration:none}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:14px;background:var(--accent);color:var(--ink);text-decoration:none;border:0}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding-bottom:18px}
.stat{background:rgba(255,255,255,.1);border-radius:12px;padding:12px 10px}
.stat .l{font-size:11px;opacity:.85}
.stat .v{font-size:19px;font-weight:800}
.stat .v.gold{color:#F2C77A}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 12px}
.chip{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:20px;border:1.5px solid #CFC8BA;background:#fff;color:var(--ink);text-decoration:none;font-weight:700;font-size:13px}
.chip.on{background:var(--brand);border-color:var(--brand);color:#fff}
.search{display:flex;gap:8px;margin-top:4px}
.search input{flex:1}
.list{display:flex;flex-direction:column;gap:12px;margin:14px 0 40px}
.item{background:#fff;border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:12px}
.item-top{display:flex;align-items:center;gap:12px}
.ava{width:46px;height:46px;border-radius:50%;background:#EAF2F1;color:var(--brand);display:flex;align-items:center;justify-content:center;font-weight:800;flex-shrink:0;overflow:hidden}
.ava img{width:100%;height:100%;object-fit:cover}
.item-name{font-weight:700;font-size:15px}
.item-sub{font-size:12px;color:var(--mute)}
.badge{font-size:11px;font-weight:800;padding:6px 10px;border-radius:20px;white-space:nowrap}
.b-active{background:var(--ok-bg);color:var(--ok)}
.b-due{background:var(--warn-bg);color:var(--warn)}
.b-expired{background:var(--bad-bg);color:var(--bad)}
.b-paused{background:#ECEAE5;color:#4A4A4A}
.item-actions{display:flex;gap:8px;flex-wrap:wrap}
.item-actions form{display:contents}
.empty{background:#fff;border-radius:16px;padding:28px 18px;text-align:center}
.alert{background:var(--bad-bg);color:var(--bad);border-radius:12px;padding:12px 14px;margin:12px 0;font-weight:600}
.notice{background:var(--ok-bg);color:var(--ok);border-radius:12px;padding:12px 14px;margin:12px 0;font-weight:600}

.card{background:#fff;border-radius:16px;padding:16px;margin-bottom:14px}
.card h2{font-size:18px;margin-bottom:8px}
.form{display:flex;flex-direction:column;gap:14px}
.sec-title{font-size:12px;font-weight:800;color:var(--brand);letter-spacing:.6px}
label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700}
input,select,textarea{min-height:46px;border:1.5px solid #CFC8BA;border-radius:10px;padding:0 12px;font:inherit;font-size:16px;color:var(--ink);background:#fff;width:100%;font-weight:500}
textarea{padding:10px 12px;min-height:80px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--brand)}
input[type=color]{padding:4px;height:46px}
input[type=file]{padding:10px 8px;font-size:14px}
.row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.check{flex-direction:row;align-items:center;gap:10px;min-height:44px;font-weight:600;font-size:14px}
.check input{width:22px;height:22px;min-height:0;accent-color:var(--brand)}
.items-ed{display:flex;flex-direction:column;gap:10px}
.it-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 84px 40px;gap:6px;align-items:center}
.it-row input{padding:0 8px;font-size:15px}
.it-del{width:40px;height:46px;border-radius:10px;border:1.5px solid #E7B7B1;background:#fff;color:var(--bad);font-size:20px;font-weight:700}
.plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.plan{position:relative}
.plan input{position:absolute;opacity:0;width:1px;height:1px}
.plan span{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:78px;border:1.5px solid #CFC8BA;border-radius:12px;background:#fff;font-weight:700;text-align:center;padding:6px}
.plan b{font-size:19px}
.plan small{font-size:11px;font-weight:500;color:var(--mute)}
.plan input:checked+span{border:2px solid var(--brand);background:#EAF2F1;color:var(--brand)}
.plan input:focus-visible+span{outline:2px solid var(--accent)}
.thumbs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.thumb{position:relative;border-radius:10px;overflow:hidden;aspect-ratio:1;background:var(--line)}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb label{position:absolute;left:4px;bottom:4px;flex-direction:row;align-items:center;gap:4px;background:rgba(255,255,255,.92);border-radius:8px;padding:4px 6px;font-size:11px}
.thumb input{width:16px;height:16px;min-height:0}
.sticky-save{position:sticky;bottom:0;background:linear-gradient(transparent,var(--bg) 30%);padding:18px 0 16px}
.pay-row{display:flex;justify-content:space-between;border-bottom:1px solid #ECE6DA;padding:8px 0;font-size:14px}
.qr-box{display:flex;justify-content:center;padding:12px;background:#fff;border-radius:14px}
.qr-box img,.qr-box canvas{width:220px;height:220px;image-rendering:pixelated}
.link-box{background:var(--warn-bg);color:#5C3A08;border-radius:12px;padding:12px 14px;font-weight:700;word-break:break-all}
.stack{display:flex;flex-direction:column;gap:10px}
.login-wrap{min-height:100vh;display:flex;align-items:center}

/* public card */
.pc-hero{padding:22px 22px 112px;color:#fff;text-align:center}
.pc-loc{font-size:12px;letter-spacing:1.4px;font-weight:700;opacity:.9;text-transform:uppercase}
.pc-main{margin:-58px 16px 0;background:#fff;border-radius:22px;padding:22px 18px;box-shadow:0 8px 24px rgba(15,61,62,.12);display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}
.pc-logo{width:92px;height:92px;border-radius:50%;background:var(--warn-bg);border:3px solid var(--accent);display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:800;margin-top:-68px;overflow:hidden}
.pc-logo img{width:100%;height:100%;object-fit:cover}
.pc-name{font-size:24px;font-weight:800}
.pc-te{font-size:16px;font-weight:600;color:var(--mute)}
.pc-tag{font-size:14px;color:var(--mute)}
.pc-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;margin-top:8px}
.pc-act{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:62px;border-radius:14px;text-decoration:none;font-weight:700;font-size:13px;color:#fff}
.pc-act svg{width:22px;height:22px}
.pc-sec{padding:24px 16px 0}
.pc-h{font-size:17px;font-weight:800;margin-bottom:12px}
.pc-items{display:flex;flex-direction:column;gap:10px}
.pc-item{background:#fff;border-radius:14px;padding:12px 14px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.pc-item .n{font-weight:700}
.pc-item .t{font-size:13px;color:var(--mute)}
.pc-item .r{display:flex;align-items:center;gap:10px;flex-shrink:0}
.pc-item .p{font-weight:800}
.pc-order{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;border-radius:10px;border:1.5px solid var(--wa);color:var(--wa-d);font-weight:700;font-size:13px;text-decoration:none;background:#fff}
.pc-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.pc-photos a{display:block;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--line)}
.pc-photos img{width:100%;height:100%;object-fit:cover}
.pc-info{background:#fff;border-radius:14px;padding:4px 14px}
.pc-info div{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid #EFEAE0;font-size:14px}
.pc-info div:last-child{border-bottom:0}
.pc-info svg{width:20px;height:20px;flex-shrink:0;margin-top:1px}
.pc-share{margin:24px 16px 0;border-radius:18px;padding:18px;display:flex;gap:16px;align-items:center;color:#fff}
.pc-qr{width:96px;height:96px;background:#fff;border-radius:10px;padding:6px;flex-shrink:0}
.pc-qr img{width:100%;height:100%;image-rendering:pixelated}
.pc-foot{padding:22px 16px 30px;text-align:center;font-size:12px;color:var(--mute)}
.pc-foot a{color:var(--mute);font-weight:700}

/* landing */
.ld-hero{background:var(--brand);color:#fff;padding:28px 0 40px}
.ld-hero h1{font-size:32px;margin:18px 0 10px}
.ld-hero p{opacity:.9;margin:0 0 20px}
.ld-logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:20px}
.ld-logo i{width:38px;height:38px;border-radius:11px;background:var(--accent);color:var(--brand);display:flex;align-items:center;justify-content:center;font-style:normal}
.ld-feats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ld-feat{background:#fff;border-radius:14px;padding:14px;font-weight:700;font-size:14px}
.ld-feat small{display:block;font-weight:500;color:var(--mute);margin-top:2px}
.ld-price{background:#fff;border-radius:18px;padding:20px;text-align:center;border:2px solid var(--line)}
.ld-price.hot{border-color:var(--brand)}
.ld-price b{display:block;font-size:34px;color:var(--brand)}
.ld-section{padding:26px 0 0}
.ld-section h2{font-size:20px;margin-bottom:12px}
@media (min-width:720px){.ld-feats{grid-template-columns:repeat(3,minmax(0,1fr))}}
.tb-back svg,.icon-btn svg{width:22px;height:22px}

/* review booster */
.rv-body{background:var(--bg)}
.rv{max-width:480px;margin:0 auto;min-height:100vh}
.rv-head{color:#fff;text-align:center;padding:28px 20px 70px}
.rv-head h1{font-size:22px;font-weight:800;margin-top:10px}
.rv-area{font-size:13px;opacity:.9;margin-top:2px}
.rv-logo{width:84px;height:84px;border-radius:50%;background:#fff;margin:0 auto;display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:28px;font-weight:800;border:3px solid rgba(255,255,255,.6)}
.rv-logo img{width:100%;height:100%;object-fit:cover}
.rv-box{margin:-48px 16px 0;background:#fff;border-radius:22px;padding:24px 18px;box-shadow:0 10px 28px rgba(0,0,0,.08);text-align:center;display:flex;flex-direction:column;gap:10px;position:relative}
.rv-box+.rv-box{margin-top:14px}
.rv-box h2{font-size:20px;font-weight:800}
.rv-box p{margin:0}
.rv-stars{display:flex;justify-content:center;gap:4px;margin-top:8px}
.rv-star{width:54px;height:54px;border:0;background:none;padding:4px;cursor:pointer;color:#D9D3C7;transition:transform .15s}
.rv-star svg{width:100%;height:100%;fill:currentColor;stroke:currentColor}
.rv-star.on{color:#F5B400}
.rv-star:active{transform:scale(1.2)}
.rv-star:focus-visible{outline:2px solid var(--rv,var(--brand));border-radius:10px}
.rv-lbl{font-weight:700;color:var(--mute);min-height:22px}
.rv-big{font-size:44px;line-height:1}
.rv-g{background:var(--rv,var(--brand));color:#fff;border-color:var(--rv,var(--brand));min-height:54px;font-size:16px}
.rv-g svg{fill:#F5B400;stroke:#F5B400}
.rv-link{background:none;border:0;color:var(--mute);font:inherit;font-size:13px;text-decoration:underline;cursor:pointer;min-height:40px}
.rv-alt{font-size:13px;color:var(--mute)}
.rv-alt a{font-weight:700}
.rv-bar{display:grid;grid-template-columns:38px 1fr 30px;align-items:center;gap:8px;font-size:13px;font-weight:700;margin:6px 0}
.rv-bar i{height:10px;background:#EFEAE0;border-radius:6px;overflow:hidden;display:block}
.rv-bar b{display:block;height:100%;border-radius:6px}
.rv-bar em{font-style:normal;text-align:right;color:var(--mute)}
.rv-fb{border-top:1px solid #EFEAE0;padding:12px 0;display:flex;flex-direction:column;gap:8px}
.rv-fb p{margin:0;font-size:14px}
.rv-fb-top{display:flex;align-items:center;gap:8px;font-size:13px}
.rv-fb-top small{margin-left:auto;color:var(--mute)}
.rv-r{padding:3px 8px;border-radius:8px;font-size:12px;background:var(--bad-bg);color:var(--bad)}
.rv-r.r3{background:var(--warn-bg);color:var(--warn)}
.rv-r.r4,.rv-r.r5{background:var(--ok-bg);color:var(--ok)}
.sw{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;flex-direction:row;min-height:44px}
.sw input{width:48px;height:28px;min-height:0;accent-color:var(--brand)}
/* printable QR stand */
.stand-body{background:#E9E5DC}
.stand-tools{max-width:148mm;margin:16px auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:0 12px}
.stand{width:148mm;height:210mm;margin:0 auto 30px;background:#fff;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 6px 24px rgba(0,0,0,.15)}
.stand-top{background:var(--sb);color:#fff;text-align:center;padding:10mm 8mm 8mm}
.stand-logo{width:24mm;height:24mm;border-radius:50%;background:#fff;margin:0 auto 4mm;display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:9mm;font-weight:800;color:var(--sb)}
.stand-logo img{width:100%;height:100%;object-fit:cover}
.stand-name{font-size:8mm;font-weight:800;line-height:1.15}
.stand-te{font-size:5mm;opacity:.9;margin-top:1mm}
.stand-mid{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2.5mm;padding:4mm 10mm;text-align:center}
.stand-h{font-size:7mm;font-weight:800;color:var(--sb)}
.stand-hte{font-size:4.6mm;color:#4A5553}
.stand-stars{display:flex;gap:2mm;color:#F5B400}
.stand-stars svg{width:9mm;height:9mm;fill:currentColor;stroke:currentColor}
.stand-qr{width:68mm;height:68mm;padding:3mm;border:1.2mm solid var(--sb);border-radius:5mm;margin:2mm 0}
.stand-qr img{width:100%;height:100%;image-rendering:pixelated}
.stand-scan{font-size:5mm;font-weight:700}
.stand-g{font-size:4.6mm;font-weight:700;color:#4A5553}
.stand-foot{background:#F7F5F0;text-align:center;font-size:4mm;font-weight:700;color:#4A5553;padding:4mm}
@page{size:A5 portrait;margin:0}
@media print{.stand-tools{display:none}.stand-body{background:#fff}.stand{margin:0;box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.rv-box[hidden],[hidden]{display:none!important}
