@font-face{font-family:Pretendard;font-weight:400;font-display:swap;src:url(/assets/Pretendard-Regular-BZqc2FCe.woff2)format("woff2")}@font-face{font-family:Pretendard;font-weight:600;font-display:swap;src:url(/assets/Pretendard-SemiBold-DdMYyxPR.woff2)format("woff2")}@font-face{font-family:Pretendard;font-weight:700;font-display:swap;src:url(/assets/Pretendard-Bold-NvQkMce4.woff2)format("woff2")}@font-face{font-family:Pretendard;font-weight:800;font-display:swap;src:url(/assets/Pretendard-ExtraBold-C8ahUYWx.woff2)format("woff2")}:root{--color-primary:#06c;--color-primary-focus:#0071e3;--color-ink:#1d1d1f;--color-ink-muted-80:#333;--color-ink-muted-48:#7a7a7a;--color-canvas:#fff;--color-parchment:#f5f5f7;--color-pearl:#fafafc;--color-hairline:#e0e0e0;--color-divider-soft:#f0f0f0;--color-surface-black:#000;--color-on-dark:#fff;--color-hover-tint:#0000000a;--font-display:"Pretendard", -apple-system, BlinkMacSystemFont, "SF Pro Display", system-ui, "Segoe UI", sans-serif;--font-text:"Pretendard", -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, "Segoe UI", sans-serif;--radius-sm:8px;--radius-md:11px;--radius-lg:18px;--radius-pill:9999px;--space-xxs:4px;--space-xs:8px;--space-sm:12px;--space-md:17px;--space-lg:24px;--space-xl:32px;--space-xxl:48px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=dark]{--color-primary:#0a84ff;--color-primary-focus:#409cff;--color-ink:#f5f5f7;--color-ink-muted-80:#d1d1d6;--color-ink-muted-48:#98989d;--color-canvas:#1c1c1e;--color-parchment:#2c2c2e;--color-pearl:#232325;--color-hairline:#38383a;--color-divider-soft:#2c2c2e;--color-hover-tint:#ffffff14;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%;margin:0;padding:0}body{font-family:var(--font-text);letter-spacing:-.16px;color:var(--color-ink);background:var(--color-canvas);font-size:17px;line-height:1.47}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.24px;color:var(--color-ink);margin:0;font-weight:700}p{margin:0}button,input,select,textarea{font-family:var(--font-text)}.app{background:var(--color-canvas);min-height:100vh}header{align-items:center;gap:var(--space-sm);height:52px;padding:0 var(--space-lg);background:var(--color-surface-black);color:var(--color-on-dark);z-index:60;display:flex;position:sticky;top:0}header h1{letter-spacing:-.1px;color:var(--color-on-dark);white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0;font-size:15px;font-weight:700;overflow:hidden}.menu-toggle{color:var(--color-on-dark);cursor:pointer;padding:var(--space-xxs) var(--space-xs);border-radius:var(--radius-sm);background:0 0;border:none;font-size:1.2rem;display:none}.menu-toggle:active{transform:scale(.95)}.header-icon-btn{color:var(--color-on-dark);opacity:.72;cursor:pointer;padding:var(--space-xxs);border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;display:inline-flex}.header-icon-btn:hover{opacity:1;background:#ffffff1f}.badge{font-family:var(--font-text);letter-spacing:-.12px;border-radius:var(--radius-pill);margin-left:auto;padding:3px 10px;font-size:12px;font-weight:400}.badge.online{color:#30d158;background:#30d15829}.badge.offline{color:#b45309;background:#ffd60a2e}.layout{align-items:stretch;min-height:calc(100vh - 52px);display:flex;position:relative}.sidebar-wrap{background:var(--color-parchment);border-right:1px solid var(--color-hairline);flex:0 0 232px}.sidebar{padding:var(--space-lg) var(--space-sm);position:sticky;top:52px}.sidebar .theme-toggle{justify-content:center;align-items:center;gap:var(--space-xs);width:100%;padding:8px var(--space-sm);margin-bottom:var(--space-md);border:1px solid var(--color-hairline);border-radius:var(--radius-pill);background:var(--color-canvas);color:var(--color-ink-muted-80);cursor:pointer;letter-spacing:-.1px;font-size:12.5px;display:flex}.sidebar .theme-toggle:hover{background:var(--color-hover-tint)}.sidebar ul{margin:0;padding:0;list-style:none}.sidebar li{margin-bottom:1px}.sidebar button{justify-content:space-between;align-items:center;gap:var(--space-xs);text-align:left;width:100%;padding:9px var(--space-sm);cursor:pointer;letter-spacing:-.12px;border-radius:var(--radius-sm);color:var(--color-ink);background:0 0;border:none;font-size:13px;display:flex}.sidebar button:hover{background:var(--color-hover-tint)}.sidebar button.active{background:var(--color-canvas);color:var(--color-primary);font-weight:600}.menu-label{align-items:center;gap:var(--space-xs);min-width:0;display:flex}.menu-icon{color:var(--color-ink-muted-48);flex-shrink:0}.sidebar button.active .menu-icon{color:var(--color-primary)}.soon{letter-spacing:-.08px;color:var(--color-ink-muted-48);background:var(--color-divider-soft);border-radius:var(--radius-pill);white-space:nowrap;padding:1px 7px;font-size:10px}.content{min-width:0;padding:var(--space-xl) var(--space-xxl);flex:1}.content h2{margin-bottom:var(--space-xs);font-size:22px}.content h3{margin:var(--space-lg) 0 var(--space-xs);font-size:15px}.page-desc{color:var(--color-ink-muted-48);margin-bottom:var(--space-md);font-size:13px}.page-tabs{gap:var(--space-xs);border-bottom:1px solid var(--color-hairline);margin-bottom:var(--space-lg);display:flex;overflow-x:auto}.page-tabs button{cursor:pointer;letter-spacing:-.12px;color:var(--color-ink-muted-48);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 4px;font-size:13.5px}.page-tabs button+button{margin-left:var(--space-md)}.page-tabs button:hover{color:var(--color-ink)}.page-tabs button.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.icon-btn{cursor:pointer;color:var(--color-ink-muted-48);border-radius:var(--radius-sm);background:0 0;border:none;padding:4px;display:inline-flex}.icon-btn:hover{background:var(--color-divider-soft);color:var(--color-ink)}.hub-grid{gap:var(--space-md);margin-top:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.hub-card{align-items:flex-start;gap:var(--space-xs);padding:var(--space-md);background:var(--color-parchment);border-radius:var(--radius-lg);cursor:pointer;text-align:left;color:var(--color-ink);border:none;flex-direction:column;display:flex}.hub-card:hover{background:var(--color-divider-soft)}.hub-card strong{font-size:14px}.hub-card span{color:var(--color-ink-muted-48);font-size:12px}.summary-cards{gap:var(--space-sm);margin-bottom:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(160px,1fr));display:grid}.summary-card{padding:var(--space-md);border-radius:var(--radius-lg);background:var(--color-parchment)}.summary-card .label{color:var(--color-ink-muted-48);font-size:12px}.summary-card .value{margin-top:4px;font-size:20px;font-weight:600}.settings-form{gap:var(--space-xs);max-width:360px;margin-bottom:var(--space-lg);flex-direction:column;display:flex}.settings-form input{border:1px solid var(--color-hairline);border-radius:var(--radius-sm);padding:9px 12px}.settings-form>button:last-child{align-self:flex-end}.order-list{margin:0 0 var(--space-lg);max-width:320px;padding:0;list-style:none}.order-list li{padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-hairline);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;margin-bottom:6px;font-size:13px;display:flex}.order-list .order-actions button{margin-left:4px}.lock-screen{background:var(--color-surface-black);min-height:100vh;color:var(--color-on-dark);justify-content:center;align-items:center;display:flex}.lock-screen form{align-items:center;gap:var(--space-sm);padding:var(--space-xxl);flex-direction:column;display:flex}.lock-screen h1{color:var(--color-on-dark);font-size:20px}.lock-screen p{color:var(--color-body-muted,#ccc);font-size:13px}.lock-screen input{border-radius:var(--radius-sm);border:1px solid var(--color-hairline);text-align:center;padding:10px 14px;font-size:14px}.lock-error{color:#ff453a}.inline-number{border:1px solid var(--color-hairline);border-radius:var(--radius-sm);width:140px;padding:6px 10px;font-size:13px}.placeholder-page h2{font-size:22px}.placeholder-page p{margin-top:var(--space-sm);color:var(--color-ink-muted-48);font-size:14px}.sidebar-backdrop{display:none}@media (width<=768px){.menu-toggle{align-items:center;display:inline-flex}.content{padding:var(--space-lg) var(--space-md)}.sidebar-wrap{z-index:50;width:260px;height:calc(100% - 52px);transition:transform .2s;position:fixed;top:52px;left:0;overflow-y:auto;transform:translate(-100%)}.sidebar-wrap.open{transform:translate(0)}.sidebar-backdrop{z-index:40;background:#0000004d;display:block;position:fixed;inset:52px 0 0}}.btn{letter-spacing:-.16px;cursor:pointer;border-radius:var(--radius-pill);border:none;align-items:center;gap:6px;padding:10px 20px;font-size:14px;font-weight:400;transition:transform 80ms;display:inline-flex}.btn:active{transform:scale(.95)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn:focus-visible{outline:2px solid var(--color-primary-focus);outline-offset:2px}.btn-primary{background:var(--color-primary);color:#fff}.btn-secondary{background:var(--color-ink);color:var(--color-canvas);border-radius:var(--radius-sm);padding:8px 15px;font-size:13px}.tx-form,.report-controls{align-items:center;gap:var(--space-xs);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.tx-form input,.tx-form select,.report-controls input{border:1px solid var(--color-hairline);border-radius:var(--radius-sm);background:var(--color-canvas);color:var(--color-ink);flex:120px;padding:9px 12px;font-size:14px}.tx-form input:focus,.tx-form select:focus,.report-controls input:focus{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary);outline:none}.report-controls label{color:var(--color-ink-muted-48);flex-direction:column;gap:4px;font-size:12px;display:flex}.tx-form>button:first-of-type,.report-controls>button:first-of-type,.sync-bar>button:first-of-type{margin-left:auto}.crud-actions{margin-bottom:var(--space-md);justify-content:flex-end;display:flex}.autocomplete{flex:120px;position:relative}.autocomplete input{width:100%}.autocomplete-list{z-index:20;background:var(--color-canvas);border:1px solid var(--color-hairline);border-radius:var(--radius-sm);max-height:220px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 4px 16px #0000001f}.autocomplete-list li button{text-align:left;width:100%;color:var(--color-ink);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;padding:8px 10px;font-size:14px;display:block}.autocomplete-list li button:hover,.autocomplete-list li button.active{background:var(--color-parchment)}.amount-field{align-items:center;gap:var(--space-xs);flex:180px;display:flex}.amount-field input{flex:auto}.thousand-toggle{color:var(--color-ink-muted-48);white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:flex}.sync-bar{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg);flex-wrap:wrap;display:flex}.tx-table .col-idx{width:36px;color:var(--color-ink-muted-48);text-align:center}.tx-table .col-check{text-align:center;width:28px}.tx-table tr.editing{background:#0066cc0f}.tx-table tr.editing td input,.tx-table tr.editing td select{border:1px solid var(--color-hairline);border-radius:var(--radius-sm);width:100%;padding:4px 6px;font-size:13px}.tx-table .row-actions{white-space:nowrap;gap:2px;display:flex}.sync-status{color:var(--color-ink-muted-48);font-size:13px}.filter-chips{gap:var(--space-xs);margin-bottom:var(--space-sm);flex-wrap:wrap;display:flex}.filter-chip{border:1px solid var(--color-hairline);background:var(--color-canvas);color:var(--color-ink-muted-48);cursor:pointer;border-radius:999px;padding:6px 14px;font-size:13px}.filter-chip.active{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-canvas)}.search-bar{align-items:center;gap:var(--space-xs);margin-bottom:var(--space-sm);border:1px solid var(--color-hairline);border-radius:var(--radius-sm);background:var(--color-canvas);color:var(--color-ink-muted-48);padding:8px 12px;display:flex}.search-bar input{color:var(--color-ink);background:0 0;border:none;outline:none;flex:1;font-size:14px}.donor-order-layout{gap:var(--space-lg);grid-template-columns:280px 1fr;align-items:start;display:grid}@media (width<=760px){.donor-order-layout{grid-template-columns:1fr}}.donor-order-panel{min-width:0}.donor-order-panel h3{margin:0;font-size:14px;font-weight:700}.donor-order-panel-head{margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;display:flex}.order-list{margin:0 0 var(--space-md);border:1px solid var(--color-hairline);border-radius:var(--radius-md);padding:0;list-style:none;overflow:hidden}.order-list li{justify-content:space-between;align-items:center;gap:var(--space-xs);border-bottom:1px solid var(--color-divider-soft);padding:8px 10px;font-size:13.5px;display:flex}.order-list li:last-child{border-bottom:none}.order-list li.empty{color:var(--color-ink-muted-48);padding:var(--space-md);justify-content:flex-start;font-size:12.5px}.order-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.order-position{color:var(--color-ink-muted-48);font-size:11.5px}.order-actions{flex-shrink:0;gap:2px;display:flex}.report-period{color:var(--color-ink-muted-80);margin-bottom:var(--space-md);font-size:14px}.table-scroll{margin-bottom:var(--space-xl);overflow-x:auto}.tx-table,.report-table{border-collapse:collapse;width:100%}.tx-table th,.report-table th{letter-spacing:-.12px;color:var(--color-ink-muted-48);text-align:left;padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--color-ink);white-space:nowrap;font-size:12px;font-weight:600}.tx-table td,.report-table td{color:var(--color-ink);padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--color-hairline);white-space:nowrap;font-size:13.5px}@media (width<=480px){.tx-table th,.report-table th,.tx-table td,.report-table td{font-size:12px}}.income-print{--tint-warm:#fdeaea;--tint-tan:#f3e6d0;width:210mm;max-width:100%;margin:0 auto var(--space-xl);background:var(--color-canvas);color:var(--color-ink);border:1px solid var(--color-hairline);padding:10mm;font-size:11px;box-shadow:0 1px 8px #0000001f}:root[data-theme=dark] .income-print{--tint-warm:#3a2426;--tint-tan:#3a3324}.income-print table{border-collapse:collapse;table-layout:fixed;width:100%}.income-print th,.income-print td{border:1px solid var(--color-ink);word-break:break-all;padding:3px 5px;font-size:10.5px;line-height:1.4}.income-print th{background:var(--color-divider-soft);font-weight:700}.income-print td.num{text-align:right}.income-summary-embed{width:100%;margin:0 0 var(--space-xl);padding:var(--space-md);background:var(--color-parchment);color:var(--color-ink);border-radius:var(--radius-lg);border:1px solid var(--color-hairline);font-size:13px}.income-summary-embed table{border-collapse:collapse;table-layout:fixed;width:100%}.income-summary-embed th,.income-summary-embed td{border:1px solid var(--color-hairline);word-break:break-word;color:var(--color-ink);padding:6px 8px;font-size:12.5px;line-height:1.4}.income-summary-embed th{background:var(--color-divider-soft);font-weight:700}.income-summary-embed td.num{text-align:right}.income-summary-embed .print-summary-table{margin-bottom:var(--space-sm)}.income-summary-embed .week-total-bar{background:var(--color-divider-soft);border:1px solid var(--color-hairline);color:var(--color-ink);border-radius:var(--radius-sm)}.print-header-table{margin-bottom:6px}.print-header-table .logo-cell{text-align:center;vertical-align:middle;width:26%}.print-header-table .church-mark{color:#7a1f1f;font-size:28px;line-height:1}.print-header-table .church-name{margin-top:2px;font-size:11px;font-weight:700}.print-header-table .title-cell{text-align:center;letter-spacing:4px;vertical-align:middle;width:38%;font-size:24px;font-weight:800}.print-header-table .date-cell{text-align:center;width:22%;font-weight:600}.print-header-table .approval-label{text-align:center;vertical-align:middle;width:14%;font-weight:700}.print-header-table .approval-cell{padding:0}.approval-table th,.approval-table td{text-align:center;height:20px}.print-summary-table th,.print-summary-table td{text-align:center}.print-summary-table td:first-child{font-weight:700}.week-total-bar{background:var(--tint-warm,#fdeaea);border:1px solid var(--color-ink);margin:6px 0;padding:4px 8px;font-size:12px;font-weight:700}.week-total-bar .note{margin-left:6px;font-size:10.5px;font-weight:400}.print-detail-table{margin-bottom:6px}.print-detail-table td:first-child,.print-detail-table td:nth-child(2){text-align:center;font-weight:700}.donor-section-title{background:var(--color-divider-soft);border:1px solid var(--color-ink);break-inside:avoid;break-after:avoid;border-bottom:none;align-items:baseline;gap:8px;margin-top:8px;padding:3px 8px;font-size:11px;font-weight:700;display:flex}.donor-section-title .note{font-size:10px;font-weight:400}.donor-grid,.dept-grid{break-inside:avoid;margin-bottom:4px}.donor-grid th,.donor-grid td,.dept-grid th,.dept-grid td{text-align:center}.print-header-table .subtitle-cell{text-align:left;background:var(--color-canvas);border-top:none;font-size:11px;font-weight:600}.expense-total-bar{border:1px solid var(--color-ink);border-bottom:none;margin-bottom:0;font-size:11px;font-weight:700;display:flex}.expense-total-bar span{text-align:center;flex:1;padding:3px 8px}.expense-total-bar .general{background:var(--color-divider-soft)}.expense-total-bar .special{background:var(--tint-tan,#f3e6d0)}.deposit-plan-box{border:1px solid var(--color-ink);background:var(--color-primary);color:#fff;border-radius:2px;flex-direction:column;justify-content:center;align-items:center;gap:6px;height:100%;min-height:90px;padding:8px;display:flex}.deposit-plan-box .label{font-size:11px;font-weight:700}.deposit-plan-box .value{font-size:20px;font-weight:800}.deposit-plan-box input{text-align:center;border:none;border-radius:4px;width:90%;padding:4px;font-size:16px;font-weight:700}.expense-detail-table th,.expense-detail-table td{text-align:center}.expense-detail-table th:nth-child(2),.expense-detail-table td:nth-child(2),.expense-detail-table th:last-child,.expense-detail-table td:last-child{text-align:left}.expense-detail-table .col-no{width:5%}.expense-detail-table td.empty,.tx-table td.empty,.report-table td.empty{text-align:center;color:var(--color-ink-muted-48);padding:var(--space-md)}.ledger-settings{border:1px solid var(--color-hairline);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-lg);background:var(--color-parchment)}.ledger-settings h3{margin:var(--space-sm) 0 var(--space-xs);font-size:14px}.ledger-settings h3:first-child{margin-top:0}.ledger-settings-grid{gap:var(--space-sm);margin-bottom:var(--space-sm);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.ledger-settings-grid label{color:var(--color-ink-muted-48);flex-direction:column;gap:4px;font-size:12px;display:flex}.ledger-settings-grid input,.ledger-settings input[type=date]{border:1px solid var(--color-hairline);border-radius:var(--radius-sm);background:var(--color-canvas);color:var(--color-ink);padding:8px 10px;font-size:13px}.ledger-settings .report-table{margin-bottom:var(--space-sm)}.ledger-doc{border:1px solid var(--color-hairline);border-radius:var(--radius-md);padding:var(--space-lg)}.ledger-doc-title{text-align:center;margin-bottom:var(--space-sm);font-size:20px}.ledger-doc-head{color:var(--color-ink-muted-80);margin-bottom:var(--space-sm);justify-content:space-between;font-size:13px;font-weight:600;display:flex}.ledger-section-title{margin:var(--space-lg) 0 var(--space-xs);font-size:14px}.ledger-summary-table th,.ledger-summary-table td{text-align:center}.ledger-total-row{background:var(--color-divider-soft);font-weight:700}.ledger-columns{gap:var(--space-md);grid-template-columns:1fr 1fr;align-items:start;display:grid}@media (width<=760px){.ledger-columns{grid-template-columns:1fr}}.ledger-columns .report-table th:not(:first-child),.ledger-columns .report-table td:not(:first-child){text-align:right}.ledger-signoff{margin-top:var(--space-md)}.ledger-signoff td{text-align:center}.ledger-signoff td:nth-child(odd){background:var(--color-divider-soft);width:12%;font-weight:700}.dept-item-table th,.dept-item-table td{text-align:right}.dept-item-table td:first-child{text-align:left;background:var(--color-parchment);vertical-align:middle;font-weight:700}.dept-item-table td:nth-child(2){text-align:left}.overseas-ledger-table th,.overseas-ledger-table td{text-align:right;white-space:nowrap;font-size:12px}.overseas-ledger-table td:first-child{text-align:left;font-weight:700}@media print{header,.sidebar-wrap,.sidebar-backdrop,.report-controls,.app>header+.layout .sync-bar{display:none!important}.layout{min-height:auto!important;display:block!important}.content{padding:0!important}.income-print{--color-canvas:#fff;--color-ink:#1d1d1f;--color-hairline:#e0e0e0;--color-divider-soft:#f0f0f0;--tint-warm:#fdeaea;--tint-tan:#f3e6d0;box-shadow:none;border:none;width:auto;margin:0;padding:0}@page{size:A4;margin:10mm}}
