:root{color-scheme:light;--bg:#f3efe7;--bg-accent:#e8dcc5;--panel:rgba(255,251,246,0.88);--panel-strong:#fffdf8;--line:rgba(65,46,28,0.12);--line-strong:rgba(65,46,28,0.2);--text:#20170f;--muted:#756250;--accent:#a2471f;--accent-strong:#7d3311;--success:#245f46;--error:#a13030;--shadow:0 24px 80px rgba(78,50,23,0.1);--radius-xl:28px;--radius-lg:22px;--radius-md:16px;--font-sans:"Pretendard Variable","Pretendard","Noto Sans KR","Apple SD Gothic Neo",sans-serif}*{box-sizing:border-box}html{min-height:100%}body{margin:0;min-height:100vh;color:var(--text);font-family:var(--font-sans);background:radial-gradient(circle at top left,rgba(162,71,31,.18),transparent 25%),radial-gradient(circle at top right,rgba(110,78,43,.16),transparent 22%),linear-gradient(180deg,#f8f2e8 0,var(--bg) 42%,#efe8dc 100%)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.dashboard-shell,.print-shell,.setup-shell{width:min(1280px,calc(100vw - 32px));margin:0 auto;padding:32px 0 48px}.hero-card,.panel,.print-hero,.report-hero,.setup-panel{background:var(--panel);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow)}.hero-card,.print-hero,.report-hero,.setup-panel{padding:28px}.hero-card{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);grid-gap:24px;gap:24px}.hero-controls{display:grid;grid-gap:16px;gap:16px;align-content:start}.course-back-bar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.course-back-link{display:inline-flex;align-items:center;gap:10px;min-height:40px;padding:0;border:0;background:transparent;color:var(--text);font-weight:700}.course-back-link:disabled{cursor:not-allowed;opacity:.6}.course-back-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:rgba(255,247,238,.96);border:1px solid rgba(129,87,41,.22);font-size:1rem;line-height:1}.course-back-meta{display:grid;justify-items:end;grid-gap:4px;gap:4px;text-align:right}.course-list-caption,.selected-course-label{color:var(--muted)}.selected-course-label{margin:0 0 10px;font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.course-select-field{width:min(100%,360px)}.selected-course-card{display:grid;grid-gap:12px;gap:12px;justify-items:start;padding:22px;border-radius:var(--radius-lg);background:rgba(255,248,239,.72);border:1px solid rgba(129,87,41,.14)}.course-list-table strong,.selected-course-card strong{font-size:1.3rem;letter-spacing:-.03em}.course-title-row{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.course-status-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.04em}.course-status-badge.is-ended{background:rgba(108,117,125,.14);color:#666f77}.course-status-badge.is-active{background:rgba(52,168,83,.14);color:#23733b}.table-subcopy{margin-top:6px;color:var(--muted);font-size:.92rem;line-height:1.5}.eyebrow,.panel-kicker{margin:0 0 10px;color:var(--accent);font-size:.75rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}h1,h2,h3{margin:0}h1{font-size:clamp(2.2rem,5vw,4rem);line-height:.95;letter-spacing:-.04em}h2{font-size:1.4rem}h2,h3{letter-spacing:-.03em}h3{font-size:1.1rem}.export-box p,.hero-copy,.panel-meta,.setup-copy{color:var(--muted);line-height:1.6}.field,.form-grid,.metric-grid,.report-grid,.stack,.status-row{display:grid}.field{gap:8px}.field span{font-size:.9rem;color:var(--muted)}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line-strong);border-radius:14px;padding:14px 16px;background:rgba(255,255,255,.86);color:var(--text)}.field textarea{resize:vertical}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 18px;border-radius:999px;border:0;transition:transform .18s ease,opacity .18s ease,background-color .18s ease}.button:hover{transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.6;transform:none}.button-primary{background:linear-gradient(135deg,var(--accent) 0,var(--accent-strong) 100%);color:white}.button-secondary{background:rgba(255,247,238,.96);color:var(--text);border:1px solid rgba(129,87,41,.22)}.file-button{width:-moz-fit-content;width:fit-content}.status-row{margin:16px 0 20px;gap:8px}.status-error,.status-ok{margin:0;padding:12px 14px;border-radius:14px;font-size:.95rem}.status-ok{background:rgba(36,95,70,.08);color:var(--success)}.status-error{background:rgba(161,48,48,.08);color:var(--error)}.tab-row{display:inline-grid;grid-auto-flow:column;gap:8px;margin-bottom:20px;padding:8px;background:rgba(255,252,247,.72);border:1px solid var(--line);border-radius:999px}.tab{min-height:42px;border:0;border-radius:999px;padding:0 18px;background:transparent;color:var(--muted)}.tab.active{background:var(--text);color:white}.grid-two{display:grid;grid-template-columns:minmax(360px,440px) minmax(0,1fr);grid-gap:20px;gap:20px}.ledger-layout{grid-template-columns:minmax(0,1.2fr) minmax(360px,440px);align-items:start;max-height:calc(100vh - 220px);overflow:hidden}.ledger-layout .ledger-list-panel{min-width:0;height:100%}.ledger-layout .ledger-form-panel{min-width:0}.ledger-layout .ledger-list-panel>.panel{display:grid;grid-template-rows:auto minmax(0,1fr);height:100%}.ledger-layout .form-grid{grid-template-columns:repeat(4,minmax(150px,220px));justify-content:space-between;align-items:start}.ledger-layout .field,.ledger-layout .receipt-box{align-content:start}.stack{gap:20px}.course-picker-panel{display:grid;grid-gap:22px;gap:22px}.course-list-shell{overflow:hidden}.course-list-table td{padding-top:18px;padding-bottom:18px}.course-list-row{cursor:pointer;transition:background-color .18s ease,outline-color .18s ease}.course-list-row.is-ended{color:#85786b}.course-list-row.is-ended strong{color:inherit}.course-list-table tbody .course-list-row:hover{background:rgba(255,248,239,.72)}.course-list-row:focus-visible{outline:2px solid rgba(162,71,31,.45);outline-offset:-2px;background:rgba(255,248,239,.72)}.course-number-col{width:84px;color:var(--muted);text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.panel{padding:22px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.form-panel{position:-webkit-sticky;position:sticky;top:18px}.ledger-layout .table-shell{height:100%;overflow-x:auto;overflow-y:auto;min-width:0}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}.field-span-2{grid-column:1/-1}.receipt-box{display:grid;grid-gap:14px;gap:14px;padding:18px;border-radius:20px;background:rgba(162,71,31,.05);border:1px solid rgba(162,71,31,.12)}.radio-row,.toggle-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center;color:var(--text)}.radio-row label,.toggle-row{cursor:pointer}.radio-row input,.toggle-row input{accent-color:var(--accent)}.table-shell{overflow-x:auto;border-radius:18px;border:1px solid var(--line);background:var(--panel-strong)}.intake-table-shell{overflow:auto}.intake-table{min-width:1040px}.donation-entry-row td{background:rgba(255,248,239,.86)}.table-input{width:100%;min-height:42px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:12px;background:rgba(255,255,255,.92);color:var(--text)}.table-input-compact{min-width:88px}.intake-amount-cell,.intake-amount-meta,.modal-grid,.receipt-cell,.receipt-cell-copy{display:grid}.intake-amount-cell,.modal-grid,.receipt-cell{gap:10px}.intake-amount-meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.receipt-cell{grid-template-columns:auto minmax(0,1fr);align-items:start}.receipt-add-button{width:42px;height:42px;border:1px dashed rgba(162,71,31,.36);border-radius:12px;background:rgba(255,250,244,.96);color:var(--accent);font-size:1.1rem;font-weight:700}.receipt-cell-copy{gap:2px}.receipt-cell-copy strong{font-size:.92rem}.receipt-cell-copy span{color:var(--muted);font-size:.86rem;line-height:1.4}.table-save-button{min-width:88px;min-height:42px}table{width:100%;border-collapse:collapse}td,th{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:.94rem}th{background:#f9f3ea;color:var(--muted);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}tbody tr:last-child td{border-bottom:0}.amount{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.empty{text-align:center;color:var(--muted);padding:24px 14px}.text-button{border:0;padding:0;background:transparent;color:var(--accent)}.modal-backdrop{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:24px;background:rgba(32,23,15,.34)}.modal-card{width:min(560px,100%);padding:24px;background:var(--panel-strong);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.export-box{display:grid;grid-gap:14px;gap:14px}.print-hero,.report-hero{display:grid;grid-gap:22px;gap:22px;margin-bottom:20px}.report-hero-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.report-actions{display:flex;justify-content:flex-end;flex-shrink:0}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.metric-card{padding:18px;border-radius:20px;background:rgba(255,255,255,.75);border:1px solid var(--line)}.metric-card span{display:block;color:var(--muted);margin-bottom:8px}.metric-card strong{font-size:1.3rem;color:var(--accent-strong)}.skeleton{display:inline-block;position:relative;overflow:hidden;vertical-align:middle;border-radius:999px;background:linear-gradient(90deg,rgba(129,87,41,.08) 25%,rgba(255,255,255,.75) 50%,rgba(129,87,41,.08) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite}.skeleton-title{width:min(320px,70vw);max-width:100%;height:1.4em;border-radius:14px}.skeleton-text{width:min(260px,56vw);max-width:100%;height:1em;border-radius:10px}.skeleton-metric{width:92px;height:1.2em;border-radius:12px}.skeleton-metric-course{width:180px;max-width:100%}.skeleton-cell{width:100%;height:.95rem;border-radius:8px}.skeleton-cell-short{width:56px}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.report-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.report-wide{grid-column:1/-1}.print-target-report,.print-target-report .panel,.print-target-report .print-hero,.print-target-report .report-hero{min-width:0}.dashboard-footer,.print-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center}.dashboard-footer{margin-top:20px;color:var(--muted);font-size:.92rem}.print-toolbar{margin-bottom:14px}.setup-panel{max-width:760px;margin:80px auto 0}.setup-card{margin-top:18px;padding:18px;border-radius:18px;background:rgba(255,255,255,.72);border:1px solid var(--line)}.login-card{position:relative;overflow:hidden;padding:22px;background:radial-gradient(circle at top right,rgba(162,71,31,.14),transparent 34%),linear-gradient(180deg,rgba(255,255,255,.92),rgba(255,249,242,.82));border-color:rgba(125,51,17,.12)}.login-submit-row{display:flex;justify-content:flex-end;margin-top:1.1rem}.login-submit-button{min-width:220px;min-height:54px;padding:0 24px;box-shadow:0 18px 34px rgba(125,51,17,.2);font-weight:800;letter-spacing:-.02em}.login-submit-button:hover{box-shadow:0 22px 42px rgba(125,51,17,.24)}.login-submit-button span{position:relative}.setup-card pre{margin:0;white-space:pre-wrap;word-break:break-word}@media (max-width:1100px){.grid-two,.hero-card,.report-grid{grid-template-columns:1fr}.ledger-layout{max-height:none;overflow:visible}.ledger-layout .ledger-form-panel,.ledger-layout .ledger-list-panel,.ledger-layout .panel{min-height:0}.ledger-layout .table-shell{max-height:none;overflow:auto}.form-panel{position:static}}@media (max-width:720px){.dashboard-shell,.print-shell,.setup-shell{width:min(100vw - 20px,1280px);padding-top:20px}.hero-card,.panel,.print-hero,.report-hero,.setup-panel{padding:18px;border-radius:22px}.course-select-field{width:100%}.form-grid,.intake-amount-meta,.metric-grid{grid-template-columns:1fr}.login-submit-row{justify-content:stretch}.login-submit-button{width:100%;min-width:0}.course-back-bar,.dashboard-footer,.modal-actions,.panel-head,.print-toolbar,.receipt-cell,.report-actions,.report-hero-head,.tab-row{display:grid}.course-back-meta{justify-items:start;text-align:left}}@media print{body{background:white}body.printing-report .dashboard-shell>:not(.print-target-report){display:none!important}body.printing-report .dashboard-shell{width:100%;padding:0}body.printing-report .print-target-report{display:block!important}.print-toolbar{display:none}.dashboard-shell,.print-shell{width:100%;padding:0}.panel,.print-hero,.report-hero{box-shadow:none;border-radius:0;background:white}.report-actions{display:none}.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}