:root{
  --coin-normal:#e0aa21;
  --coin-normal-soft:#fff4c9;
  --coin-paid:#7557c8;
  --coin-paid-soft:#eee9ff;
  --ticket:#2f7772;
  --ticket-soft:#e4f3f0;
}
.header-wallet{display:inline-flex;align-items:center;gap:5px;min-height:36px;padding:5px 8px;border:1px solid var(--line);background:var(--surface)}
.wallet-mini{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
.wallet-mini i,.wallet-balance i{display:inline-block;width:11px;height:11px;border:2px solid currentColor;border-radius:50%;box-shadow:inset 0 0 0 2px rgba(255,255,255,.65)}
.wallet-mini.normal,.wallet-balance.normal{color:#9b7100}.wallet-mini.normal i,.wallet-balance.normal i{background:var(--coin-normal);border-color:#bd8c12}
.wallet-mini.paid,.wallet-balance.paid{color:#6244b3}.wallet-mini.paid i,.wallet-balance.paid i{background:var(--coin-paid);border-color:#5f43ae}
.wallet-mini.ticket,.wallet-balance.ticket{color:#296c67}.wallet-mini.ticket i,.wallet-balance.ticket i{border-radius:3px;background:var(--ticket);border-color:#296c67}
.wallet-unlimited{color:var(--accent-ink);font-size:12px;font-weight:700}
.wallet-balance-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.wallet-balance{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:6px;padding:13px;border:1px solid currentColor;background:#fff}
.wallet-balance i{width:16px;height:16px}.wallet-balance b{font-size:18px;font-variant-numeric:tabular-nums}.wallet-balance small{justify-self:end;color:var(--ink-3);font-size:12px}
.wallet-balance-row.compact{gap:5px}.wallet-balance-row.compact .wallet-balance{grid-template-columns:auto auto;padding:9px;gap:5px}.wallet-balance-row.compact .wallet-balance i{width:13px;height:13px}.wallet-balance-row.compact .wallet-balance b{font-size:14px}.wallet-balance-row.compact .wallet-balance small{grid-column:1/-1;justify-self:start;font-size:12px}

.setup-wallet-card{display:grid;grid-template-columns:minmax(0,1fr) 235px;gap:14px;margin-bottom:18px;padding:16px;border:1px solid rgba(224,170,33,.35);background:linear-gradient(135deg,#fff9e5,#fff 58%,#f2edff)}
.setup-wallet-copy span{display:block;color:#9b7100;font-size:12px;font-weight:700;letter-spacing:.08em}.setup-wallet-copy b{display:block;margin-top:4px;font-size:13px}.setup-wallet-copy small{display:block;margin-top:4px;color:var(--ink-3);font-size:12px;line-height:1.6}
.setup-wallet-link{grid-column:2;justify-self:end;color:var(--ink-2);font-size:12px;border-bottom:1px solid var(--line)}
.setup-wallet-empty{grid-column:1/-1;margin:0;padding:10px 12px;background:#fff0e9;color:#9a4a39;font-size:12px;line-height:1.7}
.setup-wallet-card.is-empty{border-color:#d9a193;background:#fff8f5}.setup-wallet-unlimited{align-self:center;justify-self:end;color:var(--accent);font-family:var(--serif);font-size:40px}

.wallet-page{max-width:920px;padding-top:30px;padding-bottom:34px}.wallet-page-head span,.wallet-section-title span{color:var(--accent-ink);font-size:12px;letter-spacing:.14em}.wallet-page-head h1{margin:5px 0 7px;font-size:24px}.wallet-page-head p{margin:0;color:var(--ink-3);font-size:14px;line-height:1.8}
.wallet-overview{margin-top:22px;padding:20px;background:var(--surface);border:1px solid var(--line)}.wallet-overview-top{display:flex;justify-content:space-between;align-items:start;gap:16px;margin-bottom:14px}.wallet-overview-top h2{margin:0;font-size:17px}.wallet-overview-top p{margin:5px 0 0;color:var(--ink-3);font-size:13px}.premium-badge{padding:6px 9px;background:var(--coin-paid-soft);color:var(--coin-paid);font-size:12px;font-weight:700}
.wallet-rules{display:grid;gap:7px;margin:13px 0 0;padding:0;list-style:none}.wallet-rules li{position:relative;padding-left:17px;color:var(--ink-2);font-size:13px;line-height:1.65}.wallet-rules li::before{content:'';position:absolute;left:2px;top:.65em;width:6px;height:6px;border-radius:50%;background:var(--coin-normal)}
.wallet-section{margin-top:34px}.wallet-section-title{display:flex;align-items:end;justify-content:space-between;gap:15px;margin-bottom:13px}.wallet-section-title h2{margin:4px 0 0;font-size:19px}.wallet-section-title small{color:var(--ink-3);font-size:12px}
.product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.product-card{position:relative;display:flex;flex-direction:column;padding:18px;background:var(--surface);border:1px solid var(--line)}.product-card.premium{grid-column:1/-1;background:linear-gradient(135deg,#f2edff,#fff)}.product-badge{align-self:flex-start;padding:4px 7px;background:var(--ink);color:#fff;font-size:12px}.product-card h3{margin:13px 0 4px;font-size:15px}.product-card p{min-height:34px;margin:0;color:var(--ink-3);font-size:13px;line-height:1.65}.product-price{margin:14px 0 12px;font-size:19px;font-weight:700}.product-price small{font-size:12px;font-weight:400}.purchase-button{width:100%;min-height:43px;background:var(--coin-paid);color:#fff;font-size:13px;font-weight:700}.purchase-button:disabled{background:#d4d0db;color:#817d87;cursor:not-allowed}
.wallet-notice{margin-top:14px;padding:13px;border-left:3px solid var(--coin-paid);background:var(--coin-paid-soft);font-size:13px;line-height:1.8}.wallet-notice.warning{border-color:#b66f43;background:#fff2e9;color:#824c2f}.wallet-links{display:flex;flex-wrap:wrap;gap:16px;margin-top:18px}.wallet-links a{color:var(--ink-3);font-size:12px;text-decoration:underline}
.wallet-ledger{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}.ledger-row{display:grid;grid-template-columns:78px minmax(0,1fr) auto;gap:9px;align-items:center;padding:11px;background:var(--surface)}.ledger-row time{color:var(--ink-3);font-size:12px}.ledger-row span{min-width:0;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ledger-row b{font-size:13px}.ledger-row b.plus{color:#2b7563}.ledger-row b.minus{color:#a34e3d}
.mypage-wallet-admin{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:17px;border:1px solid rgba(117,87,200,.3);background:#f1edff}.mypage-wallet-admin b{color:#6043ae;font-size:13px}.mypage-wallet-admin span{color:var(--ink-3);font-size:12px}.wallet-page .mypage-empty{padding:24px 16px;background:var(--surface);border:1px solid var(--line);color:var(--ink-3);font-size:12px;text-align:center}
.purchase-modal{position:fixed;inset:0;z-index:600;display:none;align-items:end;justify-content:center;padding:18px;background:rgba(24,27,28,.58)}.purchase-modal.open{display:flex}.purchase-panel{width:min(520px,100%);max-height:calc(100dvh - 36px);overflow:auto;padding:22px;background:var(--bg);box-shadow:0 24px 80px rgba(0,0,0,.3)}.purchase-panel h2{margin:0 0 7px;font-size:19px}.purchase-panel>p{margin:0;color:var(--ink-3);font-size:13px;line-height:1.75}.purchase-summary{margin:16px 0;padding:14px;background:var(--surface);border:1px solid var(--line)}.purchase-summary div{display:flex;justify-content:space-between;gap:10px;font-size:13px}.purchase-summary div+div{margin-top:8px;padding-top:8px;border-top:1px solid var(--line-soft)}.purchase-agree{display:flex;align-items:flex-start;gap:9px;font-size:13px;line-height:1.65}.purchase-agree input{margin-top:3px}.purchase-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:8px;margin-top:18px}.purchase-actions .btn{min-height:44px}.purchase-legal{margin-top:13px;text-align:center;font-size:12px}.purchase-legal a{text-decoration:underline}
.legal-page{max-width:760px;padding-top:32px;padding-bottom:36px}.legal-page h1{font-size:23px}.legal-state{margin:14px 0;padding:12px;background:#fff3e9;color:#814a2d;font-size:13px;line-height:1.7}.legal-table{margin-top:22px;border-top:1px solid var(--line)}.legal-row{display:grid;grid-template-columns:150px minmax(0,1fr);border-bottom:1px solid var(--line)}.legal-row dt,.legal-row dd{margin:0;padding:14px 12px;font-size:13px;line-height:1.75}.legal-row dt{color:var(--ink-3);background:rgba(255,255,255,.45)}
.policy-intro{color:var(--ink-3);font-size:14px;line-height:1.8}.policy-section{margin-top:26px}.policy-section h2{font-size:16px}.policy-section p,.policy-section li{color:var(--ink-2);font-size:13px;line-height:1.9}.policy-section ul{padding-left:1.4em}

@media(max-width:620px){
  .header-wallet{padding:5px 6px}.wallet-mini{font-size:12px}.account-button>b{display:none}.account-button{padding-right:5px}
  .setup-wallet-card{grid-template-columns:1fr}.setup-wallet-link{grid-column:1}.product-grid{grid-template-columns:1fr}.product-card.premium{grid-column:auto}
  .wallet-balance{padding:10px;grid-template-columns:auto auto}.wallet-balance small{grid-column:1/-1;justify-self:start}
  .legal-row{grid-template-columns:1fr}.legal-row dt{padding-bottom:5px}.legal-row dd{padding-top:5px}
}
@media(min-width:700px){.purchase-modal{align-items:center}.purchase-panel{padding:28px}}
