/* Shop: builds on portal.css (same tokens, buttons, forms and panels). */
.shop-hero{padding:70px 5vw 40px;background:radial-gradient(ellipse at 70% 0%,#c8a76c18,transparent 60%);border-bottom:1px solid var(--edge);position:relative;overflow:hidden}
.shop-hero h1{max-width:12ch}
.shop-hero .lede{max-width:46ch;font-size:16px;margin-bottom:0}
.shop-hero .editorial-number{bottom:-30px}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:34px}
.chip{border:1px solid var(--edge);background:transparent;color:var(--muted);padding:9px 16px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;border-radius:999px}
.chip:hover{color:var(--cream);border-color:var(--gold)}
.chip.on{background:var(--gold);border-color:var(--gold);color:var(--bg)}
.shop-body{padding:40px 5vw 70px;max-width:1400px;margin:auto}
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:22px}
.product-card{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--edge);min-width:0;transition:border-color .25s,transform .25s}
.product-card:hover{border-color:var(--gold);transform:translateY(-4px)}
.cover{aspect-ratio:1;background:linear-gradient(135deg,#1d2126,#101317);display:grid;place-items:center;overflow:hidden;position:relative}
.cover img{width:100%;height:100%;object-fit:cover;display:block}
.cover .mono{font:64px Anton;color:#c8a76c40;letter-spacing:-.03em}
.cover .tag{position:absolute;top:12px;left:12px;background:#0b0d10d9;border:1px solid var(--edge);color:var(--cream);font-size:9px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;padding:5px 9px}
.cover .off{position:absolute;top:12px;right:12px;background:var(--gold);color:var(--bg);font-size:10px;font-weight:700;padding:5px 9px}
.product-info{padding:20px;display:flex;flex-direction:column;gap:10px;flex:1}
.product-info h3{margin:0;font-size:16px;color:var(--text)}
.product-info p{margin:0;font-size:12px}
.price{display:flex;align-items:baseline;gap:10px;margin-top:auto;padding-top:8px}
.price strong{font:28px Anton;color:var(--cream);letter-spacing:.02em}
.price s{color:var(--muted);font-size:13px}
.price .free{color:#a4d3b4}
.product-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:50px;align-items:start}
.product-detail .cover{border:1px solid var(--edge)}
.product-detail h1{font-size:clamp(38px,5vw,64px);margin-bottom:14px}
.product-detail .price strong{font-size:44px}
.desc{white-space:pre-line;color:var(--muted);font-size:14px;margin:22px 0}
.includes{list-style:none;padding:0;margin:0 0 26px;display:grid;gap:9px}
.includes li{font-size:13px;color:var(--text);padding-left:24px;position:relative}
.includes li:before{content:"✓";position:absolute;left:0;color:var(--gold)}
.buy-box{border:1px solid var(--edge);background:var(--panel);padding:24px;margin-top:10px}
.buy-box .button{width:100%}
.buy-box .google{margin:12px 0 0}
.back-link{display:inline-block;color:var(--gold);font-size:12px;margin-bottom:26px}
.order-steps{counter-reset:s;list-style:none;padding:0;margin:16px 0;display:grid;gap:10px}
.order-steps li{counter-increment:s;font-size:12px;color:var(--muted);padding-left:30px;position:relative}
.order-steps li:before{content:counter(s);position:absolute;left:0;top:-1px;width:20px;height:20px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;color:var(--gold);font-size:10px}
.whatsapp{background:#1f8f4e;border-color:#1f8f4e;color:#fff}
.whatsapp:hover{background:#27a85d}
.status.paid{border-color:#94c4a450;color:#a4d3b4}
.status.cancelled{color:var(--red);border-color:#efa59c40}
.thumb{width:64px;height:64px;flex-shrink:0;object-fit:cover;border:1px solid var(--edge);background:#101317}
.purchase{display:flex;gap:18px;align-items:flex-start}
.purchase>div{flex:1;min-width:0}
.admin-product{display:flex;gap:18px;align-items:center}
.admin-product>div{flex:1;min-width:0}
.hidden-tag{font-size:10px;color:var(--red);margin-left:8px}
.image-field{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.image-field img,.image-field .thumb{width:110px;height:110px}
.guide ol{padding-left:20px;color:var(--muted);font-size:13px}
.guide li{margin-bottom:10px}
.guide b{color:var(--text)}
.guide h3{color:var(--cream);margin-top:26px}
.empty-shop{text-align:center;padding:70px 20px;border:1px dashed var(--edge)}
.empty-shop h2{font-size:38px}
@media(max-width:800px){.product-detail{grid-template-columns:1fr;gap:28px}.shop-hero{padding:50px 20px 30px}.shop-body{padding:30px 20px 60px}}
@media(max-width:650px){.product-grid{grid-template-columns:1fr 1fr;gap:12px}.product-info{padding:14px}.product-info h3{font-size:14px}.price strong{font-size:22px}.cover .mono{font-size:44px}.chips{gap:6px}.chip{padding:8px 12px;font-size:10px}.portal-header nav a.back{display:none}}
@media(max-width:340px){.product-grid{grid-template-columns:1fr}}
.narrow{max-width:470px}
.gold-link{color:var(--gold)}
.signout{margin-top:30px}
.record-meta.tight{margin:6px 0 0}
.warn{color:var(--red)!important}
.file-input{max-width:320px}
.check.inline{margin:0}
.linkish{background:none;border:0;padding:0;color:var(--muted);text-decoration:underline;font-size:11px}
.linkish:hover{color:var(--cream)}
.order-form{flex-wrap:wrap;align-items:flex-end}.pay-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%}.pay-fields label{font-size:11px;color:var(--muted);display:flex;flex-direction:column;gap:5px}@media(max-width:650px){.pay-fields{grid-template-columns:1fr}}
/* Readability */
.chip{font-size:12.5px}
.cover .tag{font-size:10.5px}
.product-info p{font-size:13.5px}
.price s{font-size:14px}
.desc{font-size:15.5px}
.includes li{font-size:14.5px}
.order-steps li{font-size:14px}
.linkish{font-size:13px}
.pay-fields label{font-size:13px}
@media(max-width:650px){.product-info p{font-size:12.5px}.cover .tag{font-size:9.5px}}
/* Product files */
.dl-list{display:flex;flex-direction:column;gap:10px}.dl-list .button{width:100%}
.button .size{font-weight:500;opacity:.75;margin-left:4px}
.files-panel h3{color:var(--cream);margin:6px 0 8px}
.file-rows{display:grid;gap:10px;margin:16px 0 22px}
.file-row{display:flex;gap:14px;align-items:center;justify-content:space-between;border:1px solid var(--edge);background:#101317;padding:12px 14px}
.file-row>div{display:flex;flex-direction:column;gap:3px;min-width:0}.file-row b{color:var(--text)}.file-row .fine{overflow-wrap:anywhere}
.upload-progress{margin-top:14px}.upload-progress .bar{height:8px;background:#ffffff14;border-radius:99px;overflow:hidden}.upload-progress .bar span{display:block;height:100%;width:0;background:linear-gradient(90deg,#b89359,#e5c78f);transition:width .3s}
/* Agreement box, product row actions */
.check.agree{margin:4px 0 16px;line-height:1.6}.check.agree a{text-decoration:underline;text-underline-offset:3px}
.buy-box .button:disabled{cursor:not-allowed;opacity:.45}
.admin-product>.row-actions{display:flex;flex:0 0 auto;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}.row-actions .button{min-height:40px;padding:8px 16px}
.button.danger{background:transparent;color:var(--red);border-color:#efa59c55}.button.danger:hover{background:#efa59c14;border-color:var(--red)}
.row-actions .keep{margin:0;max-width:120px;text-align:right;line-height:1.3}
@media(max-width:650px){.admin-product{flex-wrap:wrap}.admin-product>.row-actions{flex-basis:100%;justify-content:flex-start}.row-actions .keep{text-align:left;max-width:none}}
/* Plugin activation: devices, admin licenses, activate page */
.devices{border-top:1px solid var(--edge);margin:14px 0 4px;padding-top:12px}.devices .eyebrow{margin-bottom:8px}
.activation-note{color:var(--cream)}
.plugin-fields{border:1px solid var(--edge);padding:16px 18px 6px;margin:6px 0 18px}.plugin-fields legend{font-size:10px;letter-spacing:.2em;font-weight:700;color:var(--gold);padding:0 8px}
.license-form{align-items:flex-end;gap:10px}.license-form .mini{display:flex;flex-direction:column;font-size:11px;color:var(--muted);gap:4px}.license-form .mini input{width:150px;min-height:40px}
.activate .buy-box h1{font-size:clamp(34px,6vw,58px)}.activation-facts{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;margin:0 0 18px}.activation-facts dt{color:var(--muted);font-size:12px;letter-spacing:.08em;text-transform:uppercase}.activation-facts dd{margin:0}
.activate .limit{border:1px solid #efa59c55;background:#efa59c0d;padding:14px 16px;margin-bottom:14px}.warn{color:var(--red)}
@media(max-width:650px){.activation-facts{grid-template-columns:1fr}.license-form .mini input{width:120px}}
