:root{font-family:"Apple SD Gothic Neo","Malgun Gothic",sans-serif;color:#14202b;background:#f7f3e8}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;border-radius:9px;padding:.7rem .95rem;background:#1d6b59;color:#fff;font-weight:700}button:focus-visible,input:focus-visible{outline:3px solid #e5b65a;outline-offset:2px}button.secondary{background:#e8eee8;color:#173d35}.wrap{max-width:1100px;margin:auto;padding:1rem}.card{background:#fffdf8;border:1px solid #e9e1d3;border-radius:14px;padding:1rem;box-shadow:0 10px 30px #173d3510;margin-bottom:1rem}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}label{display:grid;gap:.42rem;margin-bottom:.9rem;color:#20322e;font-size:.9rem;font-weight:700}input,select,textarea{width:100%;border:1px solid #cbd6cd;border-radius:9px;padding:.72rem .8rem;background:#fffefb;color:#14202b}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.65rem .4rem;border-bottom:1px solid #ebe5da}.muted{color:#64736d}.danger{color:#ae3b33}.balance{color:#173d35;font-size:1.8rem;font-weight:800}.actions{display:flex;flex-wrap:wrap;gap:.5rem}.pill{padding:.25rem .5rem;border-radius:999px;background:#d9eee6;color:#173d35}
#app:has(#loginPhone){min-height:100vh;display:grid;place-items:center;padding:clamp(1rem,4vw,4rem);background:#102238}#app:has(#loginPhone)::before{content:"PREPAID LEDGER";position:fixed;top:clamp(1.5rem,4vw,3rem);left:clamp(1.5rem,4vw,3rem);color:#e5b65a;font-size:.72rem;font-weight:800;letter-spacing:.16em}#app:has(#loginPhone)::after{content:"";position:fixed;right:clamp(-12rem,-8vw,-4rem);bottom:clamp(-12rem,-8vw,-4rem);width:clamp(20rem,36vw,34rem);aspect-ratio:1;border:clamp(1rem,2.4vw,2.4rem) solid #e5b65a;border-radius:50%;opacity:.9;pointer-events:none}.wrap:has(#loginPhone){position:relative;z-index:1;width:min(100%,29rem);max-width:none;margin:0;padding:0}.card:has(#loginPhone){position:relative;margin:0;padding:clamp(2rem,5vw,3.5rem);border:0;border-radius:18px;background:#f7f3e8;box-shadow:0 26px 70px #0005}.card:has(#loginPhone)::before{content:"선불금액 관리 프로그램";display:block;margin-bottom:.45rem;color:#102238;font-size:clamp(2rem,5vw,3.1rem);font-weight:800;letter-spacing:-.075em}.card:has(#loginPhone) .muted{margin:0 0 2.2rem;line-height:1.6}.card:has(#loginPhone) button{display:flex;width:100%;justify-content:space-between;margin-top:.35rem;padding:.9rem 1rem;box-shadow:0 7px 0 #124638}.card:has(#loginPhone) button::after{content:"→";font-size:1.2rem}.card:has(#loginPhone) .danger{min-height:1.3rem;margin:1rem 0 0;font-size:.88rem;font-weight:700}@media(max-width:600px){#app:has(#loginPhone){place-items:end center;padding:1rem}#app:has(#loginPhone)::before{top:1.25rem;left:1.25rem}.wrap:has(#loginPhone){width:100%}.card:has(#loginPhone){padding:2rem 1.5rem;border-radius:16px}th:nth-child(4),td:nth-child(4){display:none}.wrap{padding:.7rem}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.quick-charge{display:flex;flex-wrap:wrap;gap:.5rem;margin:-.25rem 0 1rem}.quick-charge button{flex:1 1 4.5rem}@media(max-width:420px){.quick-charge button{min-width:calc(50% - .25rem)}}
.dashboard h1{margin:0}.dashboard h2{margin:.1rem 0 .3rem;font-size:1.1rem}.dashboard-stats .card{margin-bottom:0}.dashboard-stats .card p{margin:.1rem 0 .5rem}.trend-card{overflow:hidden}.section-title{display:flex;justify-content:space-between;align-items:start}.section-title p{margin:.2rem 0 1.25rem;font-size:.85rem}.charge-chart{display:grid;grid-template-columns:repeat(10,minmax(2rem,1fr));align-items:end;gap:.55rem;height:13rem;padding:.5rem 0 0;border-bottom:1px solid #cbd6cd}.chart-day{display:grid;grid-template-rows:1fr auto;min-width:0;height:100%;gap:.45rem;text-align:center;color:#64736d;font-size:.65rem}.chart-bars{display:flex;align-items:end;justify-content:center;gap:.16rem;height:100%;border-bottom:1px solid #e6ded0}.chart-bars i{display:block;width:min(42%,1.1rem);min-height:3px;border-radius:4px 4px 0 0}.charge-bar{background:#1d6b59}.deduct-bar{background:#e5b65a}@media(max-width:600px){.dashboard .actions>div{width:100%;margin-bottom:.5rem}.dashboard .actions>button{flex:1}.charge-chart{gap:.22rem;height:11rem}.chart-day{font-size:.53rem}.dashboard table{font-size:.78rem}.dashboard table th:nth-child(4),.dashboard table td:nth-child(4){display:none}}
.dashboard>.card:nth-last-child(-n+2){display:none}.settings-menu{display:flex;gap:.5rem;margin:1rem 0;overflow:auto}.settings-menu button{white-space:nowrap}.settings-menu button.active{background:#1d6b59;color:#fff}.settings-list{margin:1rem 0}.settings-list div{display:flex;justify-content:space-between;padding:.8rem 0;border-bottom:1px solid #ebe5da}.settings-list dt{font-weight:700}.settings-list dd{margin:0;color:#64736d}@media(max-width:600px){.settings-menu{margin-inline:-.7rem;padding-inline:.7rem}.settings-menu button{flex:1}}
@media(max-width:600px){body{font-size:16px}.wrap{padding:.75rem}.card{padding:1rem;border-radius:12px}.actions{gap:.65rem}.actions>button{min-height:44px}.dashboard .actions>button,.quick-charge button{min-height:48px}.grid{grid-template-columns:1fr;gap:.75rem}input,select,textarea{min-height:48px;font-size:16px}textarea{min-height:6rem}table{display:block;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}th,td{padding:.75rem .55rem}.dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-stats .card{padding:.9rem}.dashboard-stats .balance{font-size:1.35rem}.trend-card{margin-inline:-.1rem}.charge-chart{grid-template-columns:repeat(10,minmax(1.65rem,1fr));overflow-x:auto;padding-bottom:.2rem}.quick-charge{gap:.6rem;margin:.1rem 0 1.1rem}.quick-charge button{flex:1 1 calc(50% - .3rem)}.settings-page .actions{align-items:stretch}.settings-page .actions>div{width:100%}.settings-page .actions>#backDashboard{width:100%}.settings-menu{position:sticky;top:0;z-index:2;margin-inline:-.75rem;padding:.65rem .75rem;background:#f7f3e8;box-shadow:0 1px #e9e1d3}.settings-menu button{min-height:44px}.settings-list div{align-items:center;gap:1rem}.settings-list dd{text-align:right}button.secondary.select-member{min-height:42px}}
.recent-table{width:100%;table-layout:fixed}.recent-table th:nth-child(1),.recent-table td:nth-child(1){width:24%}.recent-table th:nth-child(2),.recent-table td:nth-child(2){width:16%}.recent-table th:nth-child(3),.recent-table td:nth-child(3){width:24%;text-align:right}.recent-table th:nth-child(4),.recent-table td:nth-child(4){width:36%;text-align:right}@media(max-width:600px){.dashboard .recent-table{display:table;white-space:normal;font-size:.77rem}.dashboard .recent-table th:nth-child(4),.dashboard .recent-table td:nth-child(4){display:table-cell}.recent-table th,.recent-table td{overflow-wrap:anywhere}.recent-table th:nth-child(1),.recent-table td:nth-child(1){width:25%}.recent-table th:nth-child(2),.recent-table td:nth-child(2){width:15%}.recent-table th:nth-child(3),.recent-table td:nth-child(3){width:28%}.recent-table th:nth-child(4),.recent-table td:nth-child(4){width:32%;font-size:.68rem}}
.tx-amount{display:grid;gap:.14rem}.tx-amount strong{font-variant-numeric:tabular-nums}.tx-amount small{color:#64736d;font-size:.72em;font-weight:400;line-height:1.35}@media(max-width:600px){.recent-table .tx-amount small{font-size:.62em}.recent-table .tx-amount strong{font-size:.9em}}
.backup-list{display:grid;gap:8px;margin-top:18px}.backup-list h3{margin:0}.backup-list .restore-snapshot{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left}.backup-list .restore-snapshot small{color:var(--muted);font-weight:500}

.backup-list .restore-snapshot span{display:grid;gap:2px}.backup-list .restore-snapshot strong{font-size:.8rem}.backup-list .restore-snapshot time{color:#173d35;font-variant-numeric:tabular-nums;font-weight:700}


.receipt-table .receipt-open{min-height:36px;padding:.45rem .65rem;font-size:.8rem}.receipt-overlay{position:fixed;inset:0;z-index:10;display:grid;place-items:center;padding:1rem;background:#102238b8;overflow:auto}.receipt-dialog{width:min(100%,40rem);max-height:calc(100vh - 2rem);overflow:auto;border-radius:18px;background:#f7f3e8;padding:clamp(1rem,3vw,2rem);box-shadow:0 26px 70px #0008}.receipt-dialog-head{display:flex;align-items:start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.receipt-dialog-head h1{margin:0;color:#102238}.receipt-dialog-head .muted{margin:0 0 .2rem;font-size:.8rem}.receipt-sheet{position:relative;overflow:hidden;border:1px solid #173d35;background:#fffdf8;padding:clamp(1.2rem,4vw,2rem)}.receipt-kicker{margin:0 0 .35rem;color:#1d6b59;font-size:.78rem;font-weight:800}.receipt-sheet h2{margin:0;color:#102238;font-size:1.5rem}.receipt-id{margin:.5rem 0 1rem;padding-bottom:1rem;border-bottom:2px solid #173d35;color:#64736d;font-size:.75rem}.receipt-sheet dl{margin:0}.receipt-sheet dl div{display:grid;grid-template-columns:minmax(6rem,.85fr) minmax(0,1.4fr);gap:1rem;padding:.7rem 0;border-bottom:1px solid #ebe5da}.receipt-sheet dt{color:#64736d;font-size:.84rem}.receipt-sheet dd{margin:0;color:#14202b;font-weight:800;text-align:right;overflow-wrap:anywhere}.receipt-note{margin:1rem 0 0;color:#64736d;font-size:.77rem;line-height:1.6}.receipt-seal{position:absolute;top:1.3rem;right:1.1rem;border:2px solid #b47b16;border-radius:50%;padding:.7rem .4rem;color:#a56c13;font-size:.68rem;font-weight:800;transform:rotate(-9deg)}.receipt-actions{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:1rem 0}.receipt-mail{border-top:1px solid #e9e1d3;padding-top:1rem}.receipt-mail label{margin-bottom:.55rem}.receipt-mail .muted{margin:.65rem 0 0;font-size:.78rem;line-height:1.5}@media(max-width:600px){.receipt-overlay{align-items:start;padding:.6rem}.receipt-dialog{max-height:none;min-height:calc(100vh - 1.2rem);border-radius:14px;padding:1rem}.receipt-sheet dl div{grid-template-columns:1fr;gap:.2rem}.receipt-sheet dd{text-align:left}.receipt-seal{top:1rem;right:.7rem}.receipt-actions{grid-template-columns:1fr}.receipt-table th:nth-child(4),.receipt-table td:nth-child(4){display:none}}

.privacy-link{margin:1rem 0 0;color:#64736d;font-size:.78rem;line-height:1.55}.privacy-link a{color:#1d6b59;font-weight:800}


.transaction-overlay{position:fixed;inset:0;z-index:9;display:grid;place-items:center;padding:1rem;background:#102238a8}.transaction-dialog{width:min(100%,32rem);border-radius:16px;background:#fffdf8;padding:clamp(1.1rem,3vw,1.7rem);box-shadow:0 26px 70px #0008}.transaction-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.transaction-head h2{margin:.15rem 0 0;color:#102238}.transaction-head .muted{margin:0;font-size:.82rem}.transaction-actions{display:grid;grid-template-columns:.8fr 1.4fr;gap:.6rem;margin-top:.35rem}.transaction-deduction #submitTx{background:#9a6416}.transaction-refund #submitTx{background:#8c4a42}.transaction-dialog .danger{min-height:1.25rem;margin:.75rem 0 0;font-size:.85rem;font-weight:700}@media(max-width:600px){.transaction-overlay{align-items:end;padding:0}.transaction-dialog{width:100%;border-radius:18px 18px 0 0;padding:1.1rem}.transaction-actions{grid-template-columns:1fr}.transaction-dialog label{margin-bottom:.75rem}}
