:root{--page: #f4f5f7;--panel: #ffffff;--panel-soft: #f8fafc;--panel-recessed: #eef2f6;--line: #d9dde3;--line-strong: #b8c2cc;--text: #111827;--muted: #606b78;--accent: #25b7e8;--accent-strong: #0aa5dc;--accent-soft: #e8f8fd;--button: var(--accent);--button-soft: #eef1f4;--danger: #9f3434;--success: #256f45;--shadow: 0 4px 16px rgba(17, 24, 39, .06);--shadow-sm: 0 1px 3px rgba(17, 24, 39, .05);--radius: 8px;--radius-sm: 6px}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}html{min-height:100%;background:var(--page)}body{min-width:320px;min-height:100%;margin:0;overflow-x:hidden;color:var(--text);background:var(--page);font-family:Inter,Pretendard Variable,Pretendard,system-ui,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled,input:disabled,textarea:disabled,select:disabled{cursor:not-allowed;opacity:.62}input,select,textarea,button{-webkit-tap-highlight-color:transparent}.app-shell{width:min(100%,720px);margin:0 auto;padding:0 12px calc(32px + env(safe-area-inset-bottom))}input:focus-visible,textarea:focus-visible,select:focus-visible{border-color:var(--accent)}.app-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:70px;margin:0 -12px 16px;padding:13px 14px;border-bottom:0;background:var(--accent);color:#fff;box-shadow:var(--shadow)}.auth-screen{display:grid;min-height:100vh;place-items:center;padding:20px;background:var(--page)}.auth-panel{display:grid;gap:16px;width:min(100%,360px);border:1px solid var(--line);border-radius:calc(var(--radius) + 2px);padding:28px 24px;background:var(--panel);box-shadow:var(--shadow)}.auth-panel p{margin:0;color:var(--muted);font-weight:700;line-height:1.45}.account-info{min-width:0;margin:0;color:var(--muted);font-size:.8rem;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-actions{display:grid;justify-items:end;gap:6px;min-width:72px}.account-actions{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:6px}.account-footer{display:grid;gap:8px;margin-top:18px;border-top:1px solid var(--line);padding:14px 2px 0}.small-icon-button{min-height:36px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:0 11px;background:var(--panel);color:var(--text);font-size:.82rem;font-weight:900}.eyebrow{margin:0 0 4px;color:var(--muted);font-size:.88rem;font-weight:800}h1,h2{margin:0;color:var(--text)}h1{font-size:1.22rem;font-weight:800;letter-spacing:0;color:var(--text);padding-left:2px}.app-header h1{color:#fff}h2{font-size:1.08rem;font-weight:800}.secondary-tools h2,.secondary-tools .completed-toggle strong{font-size:1rem;font-weight:800}.save-status{min-width:68px;min-height:24px;color:#ffffffeb;font-size:.86rem;font-weight:800;text-align:right}.balance-section,.completed-section,.new-panel,.search-panel{margin-bottom:10px}.new-panel,.secondary-tools{position:relative;margin-top:18px}.new-panel:before,.secondary-tools:before{content:none}.secondary-tools{display:grid;gap:8px;margin-top:16px}.secondary-tools .completed-section,.secondary-tools .search-panel{margin-bottom:0;background:var(--panel);box-shadow:none}.secondary-tools .completed-toggle{background:var(--panel)}.section-heading{display:block;align-items:left;justify-content:space-between;gap:12px;margin-bottom:10px;padding:0}.section-heading p{margin:4px 0 0;color:var(--muted);font-size:.9rem}.monthly-card-summary{display:flex;align-items:baseline;justify-content:space-between;gap:8px 12px;margin-bottom:10px;border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;background:var(--panel);box-shadow:var(--shadow-sm);color:var(--text)}.monthly-card-summary span{font-size:.92rem;font-weight:800}.monthly-card-summary strong{font-size:1.08rem;font-weight:900;white-space:nowrap}.balance-list{display:grid;gap:9px}.balance-card,.new-panel,.completed-section,.search-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow);overflow:hidden}.new-panel{border-color:#25b7e857;background:var(--accent-soft)}.secondary-tools .completed-section,.secondary-tools .search-panel{border-color:var(--line)}.balance-card{box-shadow:var(--shadow-sm)}.balance-toggle{position:relative;display:block;width:100%;min-height:122px;border:0;padding:14px 14px 14px 18px;background:var(--panel);color:inherit;text-align:left}.balance-toggle:focus-visible,.primary-button:focus-visible,.secondary-button:focus-visible,.small-icon-button:focus-visible,.transaction-action:focus-visible,.prepayment-memo-button:focus-visible,.prepayment-cancel-button:focus-visible,.prepayment-restore-button:focus-visible,.danger-small-button:focus-visible,.completed-toggle:focus-visible,.completed-month-button:focus-visible,.completed-older-toggle:focus-visible,.archive-year-toggle:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid rgba(37,183,232,.18);outline-offset:2px}.accent{position:absolute;inset:0 auto 0 0;width:4px;background:#8a8a8a}.card-summary,.remaining-line,.summary-grid{min-width:0}.card-title-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;margin-bottom:10px}.top-card-name{display:inline-flex;min-width:0;justify-self:start}.top-card-memo{max-width:9rem;min-width:0;overflow:hidden;color:var(--text);font-size:.92rem;font-weight:800;text-align:right;text-overflow:ellipsis;white-space:nowrap}.remaining-line{display:block;margin-bottom:12px;background:var(--button-soft);padding:6px;border-radius:6px}.remaining-text{display:block;min-width:0;overflow-wrap:anywhere;color:var(--text);font-size:1.32rem;font-weight:850;letter-spacing:0}.status-badge{justify-self:end;border:1px solid var(--line);border-radius:999px;padding:5px 9px;background:var(--accent-soft);color:var(--accent-strong);font-size:.78rem;font-weight:750;white-space:nowrap}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px 12px}.summary-grid span{min-width:0}.summary-grid small,label span{display:block;margin-bottom:4px;color:var(--muted);font-size:.78rem;font-weight:700}.summary-grid b{display:block;min-width:0;overflow:hidden;color:var(--text);font-size:.92rem;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.summary-grid b.approval-number,.summary-grid b.card-label{overflow:visible;overflow-wrap:anywhere;text-overflow:clip;white-space:normal}.card-name-badge{display:inline-flex;align-items:center;max-width:100%;min-height:30px;border-radius:6px;padding:4px 8px;color:#fff;font-size:1.18rem;font-weight:850;line-height:1.2}.balance-detail{display:none;border-top:1px solid var(--line);padding:12px;background:var(--panel-soft)}.balance-card.is-open .balance-detail{display:grid;gap:12px}.detail-info{display:grid;gap:8px;border:1px solid var(--line);border-radius:var(--radius);padding:12px;background:var(--panel)}.detail-row{display:flex;justify-content:space-between;gap:12px;min-width:0;color:var(--muted);font-size:.9rem}.detail-row strong{min-width:0;color:var(--text);text-align:right;overflow-wrap:anywhere}.memo-detail{align-items:flex-start}.memo-detail strong{white-space:pre-wrap}.remaining-detail{align-items:center;border-radius:var(--radius-sm);padding:12px;background:var(--panel);border:1px solid var(--line);color:var(--text);font-size:.98rem;font-weight:800}.remaining-detail strong{font-size:1.12rem;font-weight:950}.usage-total-detail{margin-top:-4px}.usage-form{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;border:1px solid var(--line);border-radius:var(--radius);padding:12px;background:var(--panel)}.usage-form label{min-width:0}.usage-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.history-title{margin:2px 0 0;color:var(--text);font-size:.98rem;font-weight:800}.transaction-list{display:grid;gap:8px}.transaction-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;min-height:58px;border:1px solid var(--line);border-radius:var(--radius);padding:9px;background:var(--panel)}.transaction-item.is-cancelled{background:#f2f2f2;color:var(--muted)}.transaction-item.is-cancelled .transaction-line{color:var(--muted);text-decoration:line-through;text-decoration-thickness:1.5px}.transaction-main{min-width:0}.transaction-line{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin:0;color:var(--text);font-size:.92rem;font-weight:750;line-height:1.35}.transaction-line strong{font-size:1rem;font-weight:850}.transaction-date{color:var(--muted)}.transaction-action{min-width:40px;min-height:40px;border:1px solid var(--line-strong);border-radius:var(--radius);padding:0 8px;background:var(--panel);color:var(--text);font-size:.9rem;font-weight:800;white-space:nowrap}.transaction-action.cancel{color:var(--danger)}.transaction-action.restore{color:var(--success)}.prepayment-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;border-top:1px solid var(--line);padding-top:10px}.prepayment-memo-button,.prepayment-cancel-button,.prepayment-restore-button,.danger-small-button{min-height:40px;min-width:48%;border-radius:var(--radius);padding:0 12px;font-size:.9rem;font-weight:800}.prepayment-memo-button{border:1px solid var(--line-strong);background:#fff;color:var(--text)}.prepayment-cancel-button{border:1px solid rgba(159,52,52,.3);background:#fff;color:var(--danger)}.prepayment-restore-button{border:1px solid rgba(37,111,69,.3);background:#fff;color:var(--success)}.danger-small-button{border:1px solid rgba(159,52,52,.3);background:var(--danger);color:#fff}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:18px;background:#00000047}.dialog-panel{width:min(100%,360px);border:1px solid var(--line);border-radius:var(--radius);padding:18px;background:var(--panel);box-shadow:0 18px 50px #0000002e}.dialog-panel h2{margin-bottom:10px}.dialog-panel p{margin:8px 0;color:var(--text);line-height:1.45}.dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}.admin-screen{display:grid;gap:14px;padding-bottom:calc(20px + env(safe-area-inset-bottom))}.admin-screen-header{display:flex;align-items:start;gap:12px}.admin-screen-header h2{margin:0;font-size:1.35rem;font-weight:950}.admin-screen-header p{margin:5px 0 0;color:var(--muted);font-size:.86rem;font-weight:800}.admin-back-button{flex:0 0 auto}.admin-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;border:1px solid var(--line);border-radius:var(--radius);padding:4px;background:var(--panel)}.admin-tab{min-height:44px;border:0;border-radius:calc(var(--radius) - 2px);background:transparent;color:var(--muted);font-size:.9rem;font-weight:800}.admin-tab.is-active{background:var(--accent);color:#fff}.admin-content{display:grid;gap:14px}.admin-section{display:grid;gap:10px;border:1px solid var(--line);border-radius:var(--radius);padding:12px;background:var(--panel)}.admin-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px}.admin-section-heading h3{margin:0;color:var(--text);font-size:1rem;font-weight:800;padding-left:10px}.admin-section-heading small{color:var(--muted);font-size:.84rem;font-weight:850;padding-right:16px}.admin-form,.admin-card-item,.admin-record-item,.backup-grid{border:0;border-radius:var(--radius);padding:12px;background:var(--panel-soft)}.admin-form,.admin-card-item{display:grid;gap:10px}.admin-compact-list{display:grid;gap:8px}.admin-list-item{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-soft)}.admin-row-button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:58px;border:0;padding:10px 12px;background:transparent;color:var(--text);text-align:left}.admin-row-button strong,.admin-row-button small{display:block}.admin-row-button strong{font-size:.98rem;font-weight:950}.admin-row-button small{margin-top:3px;color:var(--muted);font-size:.82rem;font-weight:850}.admin-row-side{display:flex;flex:0 0 auto;align-items:center;gap:8px}.admin-actions,.backup-grid{display:flex;flex-wrap:wrap;gap:8px}.metadata{color:var(--muted);font-size:.78rem;font-weight:800;line-height:1.4}.status-pill{border:1px solid var(--line-strong);border-radius:999px;padding:4px 8px;background:var(--panel);color:var(--muted);font-size:.76rem;font-weight:900}.status-pill.active{color:var(--success)}.status-pill.inactive{color:var(--danger)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.empty-state{display:flex;align-items:center;justify-content:center;min-height:76px;border:1px dashed var(--line-strong);border-radius:var(--radius);padding:14px;background:var(--panel);color:var(--muted);font-weight:800;text-align:center}.completed-section{overflow:hidden}.completed-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:56px;border:0;padding:12px 14px;background:var(--panel);color:inherit;text-align:left}.completed-toggle strong,.completed-toggle small{display:block}.completed-toggle strong{font-size:1rem;font-weight:800}.completed-toggle small{margin-top:3px;color:var(--muted);font-size:.84rem;font-weight:800}.toggle-mark{color:var(--muted);font-size:.85rem;font-weight:800}.completed-content{border-top:1px solid var(--line);padding:10px;background:var(--panel-soft)}.completed-months{display:grid;gap:8px;margin-bottom:10px}.completed-month-options{display:flex;flex-wrap:wrap;gap:8px}.completed-month-button,.completed-older-toggle{min-height:44px;border:1px solid var(--line-strong);border-radius:999px;padding:0 14px;background:var(--panel);color:var(--text);font-size:.94rem;font-weight:800}.completed-month-button[aria-pressed=true]{border-color:var(--button);background:var(--button);color:#fff}.completed-older-toggle{justify-self:start;min-height:40px;border-radius:var(--radius);background:var(--button-soft);color:var(--muted);font-size:.88rem}.new-panel{padding:14px}.new-panel .section-heading h2{color:var(--accent-strong)}.search-panel{padding:14px}.search-label{display:grid;gap:6px}.search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.clear-search-button{min-width:72px;min-height:52px;padding:0 10px}.search-results{display:grid;gap:10px;margin-top:12px}.section-subheading{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--text);font-weight:950}.section-subheading small{color:var(--muted);font-size:.84rem;font-weight:850}.archive-year-list-wrap{display:grid;gap:8px;border-top:1px solid var(--line);padding:10px;background:var(--panel-soft)}.admin-archive-list{border-top:0;padding:0}.archive-year-section{display:grid;gap:8px}.archive-year-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:54px;border:1px solid var(--line);border-radius:var(--radius);padding:0 12px;background:var(--panel);color:var(--text);font-weight:950;text-align:left}.archive-year-list{padding-bottom:2px}form{display:grid;gap:12px;min-width:0}label{display:grid;gap:6px;width:100%;min-width:0}textarea,select{display:block;width:100%;max-width:100%;min-width:0;min-height:52px;border:1px solid var(--line-strong);border-radius:var(--radius);padding:0 12px;background:var(--panel);color:var(--text);font-size:16px;line-height:1.2;outline:none}input{display:block;width:100%;max-width:100%;min-width:0;min-height:40px;border:1px solid var(--line-strong);border-radius:var(--radius);padding:0 12px;background:var(--panel);color:var(--text);font-size:16px;line-height:1.2;outline:none}textarea{display:block;min-height:86px;padding:12px;resize:vertical;line-height:1.45}input[readonly]{background:var(--panel-soft);color:var(--muted)}select{height:56px;min-height:56px;padding-right:38px;font-size:16px}.date-field{position:relative;display:block;width:100%;min-width:0}input[type=date]{-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;display:flex;align-items:center;width:100%;max-width:100%;min-width:0;min-inline-size:0;height:52px;min-height:52px;padding:0 12px;color:transparent;font:inherit;font-size:16px;line-height:normal;text-align:left;caret-color:transparent;-webkit-text-fill-color:transparent}input[type=date]::-webkit-date-and-time-value{display:flex;align-items:center;width:100%;max-width:100%;min-width:0;height:100%;min-height:0;padding:0;text-align:left}input[type=date]::-webkit-datetime-edit{display:flex;align-items:center;min-height:0}.date-display{pointer-events:none;position:absolute;top:0;right:12px;bottom:0;left:12px;display:flex;align-items:center;min-width:0;overflow:hidden;color:var(--text);font-size:16px;font-weight:400;line-height:1.2;text-align:left;white-space:nowrap}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.unregistered-fields{display:grid;gap:12px}.card-preview{min-height:48px;border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;background:#ffffffb8;color:var(--muted);font-weight:750}.card-preview strong{color:var(--text)}.primary-button,.secondary-button{min-height:40px;border-radius:var(--radius);font-weight:800;font-size:1rem;transition:opacity .12s}.primary-button{border:0;background:var(--button);color:#fff;letter-spacing:0}.primary-button:active{opacity:.8}.secondary-button{border:1px solid var(--line);background:var(--button-soft);color:var(--text)}.secondary-button:active{opacity:.7}@media(min-width:620px){.app-shell{padding-top:24px}.balance-list{gap:12px}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.usage-form{grid-template-columns:minmax(0,1fr)}}@media(max-width:380px){.app-shell{padding-inline:10px}.app-header{gap:8px}.header-actions{justify-items:end}.remaining-text,.card-name-badge{font-size:1.08rem}.remaining-line{grid-template-columns:minmax(0,1fr) auto}.remaining-text{grid-column:1}.summary-grid{gap:8px}.transaction-item{grid-template-columns:minmax(0,1fr) auto;gap:6px;min-height:46px;padding:7px}.transaction-line{flex-wrap:nowrap;gap:4px;font-size:.86rem;white-space:nowrap}.transaction-line strong{font-size:.92rem}.transaction-action{min-width:48px;min-height:34px;padding:0 8px;font-size:.82rem}}
