:root{--bg: #f4f6fb;--surface: #ffffff;--border: #e2e8f0;--text: #0f172a;--muted: #64748b;--primary: #1e3a8a;--primary-hover: #1d4ed8;--success: #047857;--success-bg: #ecfdf5;--warn: #b45309;--warn-bg: #fffbeb;--danger: #b91c1c;--danger-bg: #fef2f2;--radius: 14px;--shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px rgba(15, 23, 42, .06)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}code{font-family:JetBrains Mono,Cascadia Mono,Consolas,monospace;font-size:.86em;background:#0f172a0f;padding:.1em .4em;border-radius:5px;word-break:break-all}.app{min-height:100vh;display:flex;flex-direction:column}.container{width:100%;max-width:1120px;margin:0 auto;padding:0 20px}.main-area{flex:1;padding-top:32px;padding-bottom:72px}.site-header{background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;height:66px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}.brand-mark{width:38px;height:38px;border-radius:10px;background:var(--primary);color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px;letter-spacing:.04em}.brand strong{display:block;font-size:15px;line-height:1.2}.brand small{display:block;color:var(--muted);font-size:12px}.header-right{display:flex;align-items:center;gap:10px}.env-badge{font-size:11px;font-weight:700;letter-spacing:.06em;padding:4px 9px;border-radius:999px;border:1px solid transparent}.env-sandbox{background:var(--warn-bg);color:var(--warn);border-color:#fcd34d}.env-prod{background:var(--danger-bg);color:var(--danger);border-color:#fca5a5}.cart-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:var(--text);color:#fff;text-decoration:none;font-size:13px;font-weight:600}.cart-count{background:#ffffff38;border-radius:999px;min-width:20px;text-align:center;padding:0 6px;font-size:12px}.site-footer{border-top:1px solid var(--border);background:var(--surface);color:var(--muted);font-size:13px;padding:20px 0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.card-title{margin:0 0 16px;font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.page-head{margin-bottom:24px}.page-head h1{margin:0 0 4px;font-size:27px;letter-spacing:-.02em}.page-head p{margin:0}.muted{color:var(--muted)}.small{font-size:13px}.center{text-align:center}.price{font-weight:700;font-size:17px;letter-spacing:-.01em}.price-lg{font-size:26px}.tag{display:inline-block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:2px 9px;margin-bottom:8px}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:10px;padding:10px 18px;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:background .15s ease,border-color .15s ease,opacity .15s ease}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-ghost{background:var(--surface);border-color:var(--border);color:var(--text)}.btn-ghost:hover:not(:disabled){border-color:#cbd5e1;background:var(--bg)}.btn-block{width:100%;margin-top:6px}.btn-sm{padding:6px 12px;font-size:13px}.link-danger{background:none;border:none;color:var(--danger);font-size:13px;font-family:inherit;cursor:pointer;padding:0;text-decoration:underline}.alert{border-radius:10px;padding:14px 16px;margin-top:16px;font-size:14px;border:1px solid transparent}.alert p{margin:6px 0 0}.alert-error{background:var(--danger-bg);border-color:#fecaca;color:var(--danger)}.alert-warn{background:var(--warn-bg);border-color:#fde68a;color:var(--warn)}.alert .btn{margin-top:12px}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}.product-card{display:flex;flex-direction:column;padding:0;overflow:hidden}.product-thumb{height:130px;display:grid;place-items:center;font-size:46px;background:linear-gradient(135deg,#e0e7ff,#f1f5f9)}.thumb-audio{background:linear-gradient(135deg,#ddd6fe,#ede9fe)}.thumb-komputer{background:linear-gradient(135deg,#cffafe,#e0f2fe)}.thumb-wearable{background:linear-gradient(135deg,#fce7f3,#fae8ff)}.thumb-aksesori{background:linear-gradient(135deg,#fef3c7,#fef9c3)}.thumb-kamera{background:linear-gradient(135deg,#dcfce7,#d1fae5)}.thumb-rumah{background:linear-gradient(135deg,#ffedd5,#fef3c7)}.product-body{padding:16px 18px 6px;flex:1}.product-body h3{margin:0 0 6px;font-size:16px;line-height:1.35}.product-desc{margin:0;font-size:13px}.product-foot{padding:14px 18px 18px;display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.sticky-bar{position:sticky;bottom:16px;margin-top:28px}.sticky-inner{background:var(--text);color:#fff;border-radius:var(--radius);padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;box-shadow:0 12px 30px #0f172a38}.sticky-inner .btn-primary{background:#fff;color:var(--text)}.sticky-inner .btn-primary:hover{background:#e2e8f0}.checkout-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:20px;align-items:start}.line-list{list-style:none;margin:0;padding:0}.line-item{display:grid;grid-template-columns:1fr auto auto auto;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--border)}.line-item.compact{grid-template-columns:1fr auto;padding:9px 0;font-size:14px}.line-list.plain .line-item:last-child{border-bottom:none}.line-main{display:flex;flex-direction:column}.line-total{font-weight:600;min-width:110px;text-align:right}.qty{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:9px;overflow:hidden}.qty button{width:30px;height:30px;border:none;background:var(--surface);cursor:pointer;font-size:15px;font-family:inherit;color:var(--text)}.qty button:hover{background:var(--bg)}.qty span{min-width:34px;text-align:center;font-weight:600;font-size:14px}.total-row{display:flex;align-items:center;justify-content:space-between;padding-top:16px;margin-top:4px;border-top:2px solid var(--text)}.form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field span{font-size:13px;font-weight:600;color:var(--muted)}.field input{border:1px solid var(--border);border-radius:9px;padding:10px 12px;font-size:14px;font-family:inherit;background:var(--surface);color:var(--text)}.field input:focus{outline:2px solid rgba(30,58,138,.35);outline-offset:1px;border-color:var(--primary)}.empty-state{text-align:center;padding:48px 24px;max-width:440px;margin:40px auto}.empty-state h2{margin:0 0 6px}.empty-state .btn{margin-top:16px}.payment-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:20px;align-items:start}.payment-side{display:flex;flex-direction:column;gap:20px}.qr-card{text-align:center}.status-chip{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:5px 12px;border-radius:999px;background:var(--warn-bg);color:var(--warn);border:1px solid #fde68a}.status-settlement,.status-capture{background:var(--success-bg);color:var(--success);border-color:#a7f3d0}.status-expire,.status-cancel,.status-deny{background:var(--danger-bg);color:var(--danger);border-color:#fecaca}.amount-line{margin:18px 0 20px}.qr-frame{display:inline-block;background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}.qr-image{display:block;width:250px;height:250px;object-fit:contain}.countdown{margin-top:14px;font-weight:600;font-size:14px;color:var(--warn)}.countdown-done{color:var(--danger)}.polling-note{margin-top:10px;margin-bottom:0}.sim-card{border-color:#bfdbfe;background:#f8fbff}.copy-field{margin:14px 0;text-align:left}.copy-row{display:flex;align-items:center;gap:8px;margin-top:5px}.copy-row code{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:11.5px;line-height:1.4;max-height:62px;overflow:auto}.center-card{text-align:center;padding:56px 24px;max-width:420px;margin:40px auto}.spinner{width:34px;height:34px;margin:0 auto 16px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.success-card{max-width:520px;margin:24px auto;text-align:center;border-color:#a7f3d0}.success-mark{width:66px;height:66px;margin:4px auto 16px;border-radius:50%;background:var(--success-bg);color:var(--success);display:grid;place-items:center;font-size:34px;font-weight:700;border:2px solid #6ee7b7;animation:pop .35s ease-out}@keyframes pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.success-title{margin:0 0 6px;font-size:25px;color:var(--success);letter-spacing:-.02em}.detail-list{margin:22px 0;text-align:left;border-top:1px solid var(--border)}.detail-list>div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--border);font-size:14px}.detail-list dt{color:var(--muted);flex-shrink:0}.detail-list dd{margin:0;text-align:right;word-break:break-all}@media (max-width: 880px){.checkout-layout,.payment-layout{grid-template-columns:1fr}}@media (max-width: 560px){.line-item{grid-template-columns:1fr auto;row-gap:8px}.line-total{text-align:left;min-width:0}.header-inner{height:auto;padding-top:12px;padding-bottom:12px;flex-wrap:wrap}.qr-image{width:210px;height:210px}}
