:root{color:#172321;font-synthesis:none;text-rendering:optimizelegibility;background:#f4f7f5;font-family:Pretendard,Noto Sans KR,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}input,select,textarea{background:#fff;border:1px solid #b8c9c4;border-radius:.6rem;width:100%;margin-top:.4rem;padding:.75rem}input:focus{border-color:#0f766e;outline:3px solid #99f6e4}.app-shell{min-height:100vh}.app-header{color:#f7fffc;background:linear-gradient(135deg,#0f766e,#115e59);justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem clamp(1rem,4vw,3rem);display:flex}.app-header h1{margin:.2rem 0 0;font-size:clamp(1.45rem,4vw,2rem)}.eyebrow{color:#0f766e;letter-spacing:.14em;margin:0;font-size:.72rem;font-weight:800}.app-header .eyebrow{color:#99f6e4}.status-badge{border:1px solid #5eead4;border-radius:999px;padding:.4rem .7rem;font-size:.78rem}.main-nav{background:#fff;border-bottom:1px solid #dce7e3;gap:.35rem;padding:.7rem clamp(.7rem,4vw,3rem);display:flex;overflow-x:auto}.main-nav a{color:#52625f;border-radius:.55rem;flex:none;padding:.55rem .75rem;font-weight:700;text-decoration:none}.main-nav a:hover,.main-nav a.active{color:#0f766e;background:#ccfbf1}.page-container{width:min(1080px,100%);margin:0 auto;padding:clamp(1rem,4vw,2.5rem)}.page-card{background:#fff;border:1px solid #dce7e3;border-radius:1rem;padding:clamp(1.25rem,4vw,2rem);box-shadow:0 12px 35px #0f766e14}.page-card h2{margin:.4rem 0 .7rem;font-size:clamp(1.35rem,4vw,1.8rem)}.page-description{color:#52625f;line-height:1.7}.feature-list{gap:.7rem;margin:1.4rem 0 0;padding:0;list-style:none;display:grid}.feature-list li{background:#f0fdfa;border-left:4px solid #14b8a6;border-radius:.7rem;padding:.85rem 1rem}.auth-page{background:linear-gradient(150deg,#ecfdf5,#f8fafc);place-items:center;min-height:100vh;padding:1rem;display:grid}.auth-card{background:#fff;border:1px solid #dce7e3;border-radius:1rem;width:min(430px,100%);padding:clamp(1.4rem,5vw,2.2rem);box-shadow:0 18px 50px #0f766e1f}.wide-card{width:min(820px,100%)}.form-stack{gap:1rem;margin-top:1.2rem;display:grid}.form-stack label{color:#334541;font-size:.9rem;font-weight:700}.form-stack h2{margin:0;font-size:1.1rem}.primary-button,.secondary-button,.text-button{cursor:pointer;border:0;border-radius:.6rem;font-weight:800}.primary-button,.secondary-button{padding:.75rem 1rem}.primary-button{color:#fff;background:#0f766e}.secondary-button{color:#0f5e58;background:#ccfbf1}.text-button{color:#0f766e;background:0 0;margin-top:1rem;padding:.55rem 0}button:disabled{cursor:wait;opacity:.6}.form-error{color:#b42318;font-weight:700}.form-message{color:#0f766e;line-height:1.6}.setup-grid{gap:1.5rem;display:grid}.invite-panel{background:#f0fdfa;border-radius:.8rem;margin-top:1.5rem;padding:1rem}.invite-code-row{align-items:center;gap:.75rem;display:flex}.invite-code-row code{letter-spacing:.08em;background:#fff;border-radius:.5rem;flex:1;padding:.75rem;font-size:1rem}.two-column{gap:2rem;display:grid}.compact-form,.transaction-form{background:#f8faf9;border-radius:.8rem;gap:.8rem;padding:1rem;display:grid}.compact-form label,.transaction-form label{font-size:.82rem;font-weight:700}.record-list,.transaction-list{gap:.6rem;padding:0;list-style:none;display:grid}.record-list li,.transaction-list li{border-bottom:1px solid #e3ebe8;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem;display:flex}.record-list small,.transaction-list small{color:#64748b;margin-top:.25rem;display:block}.row-actions{align-items:center;gap:.5rem;display:flex}.danger-button{cursor:pointer;color:#b42318;background:#fee4e2;border:0;border-radius:.5rem;padding:.45rem .6rem;font-weight:700}.color-dot{border-radius:50%;width:.8rem;height:.8rem;margin-right:.45rem;display:inline-block}.filters{gap:.7rem;margin:1.4rem 0;display:grid}.transaction-amount{justify-items:end;gap:.5rem;display:grid}.income{color:#0f766e}.expense{color:#dc2626}.small{padding:.4rem .55rem}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin:1.2rem 0 2rem;display:grid}.summary-grid article{background:#f0fdfa;border-radius:.8rem;gap:.35rem;padding:1rem;display:grid}.summary-grid strong{font-size:1.1rem}.summary-grid small{color:#52625f}.chart-box{width:100%;min-height:320px;margin:1rem 0 2rem}.category-bars{gap:.6rem;display:grid}.category-bars div{background:#f8faf9;border-radius:.6rem;justify-content:space-between;padding:.75rem;display:flex}.title-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.title-row input{width:auto}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem;margin:1rem 0 1.5rem;display:grid}.calendar-grid button{text-align:left;background:#fff;border:1px solid #dce7e3;border-radius:.45rem;align-content:start;gap:.2rem;min-height:4.3rem;padding:.4rem;display:grid;overflow:hidden}.calendar-grid button.selected{outline:3px solid #5eead4}.calendar-grid small{text-overflow:ellipsis;font-size:.65rem;overflow:hidden}.calendar-legend{flex-wrap:wrap;gap:10px;font-size:.78rem;display:flex}.calendar-legend span{font-weight:600}.legend-expense,.calendar-expense{color:#dc2626}.legend-scheduled,.calendar-scheduled{color:#d97706}.legend-payment,.calendar-payment{color:#7c3aed}.legend-income{color:#0f766e}.button-row{flex-wrap:wrap;gap:.75rem;margin:1.2rem 0;display:flex}.file-picker{border:1px dashed #99b8b0;border-radius:.8rem;margin:1.5rem 0;padding:1rem;font-weight:700;display:block}.preview-panel{background:#f8faf9;border-radius:.8rem;margin-top:1rem;padding:1rem}@media (width>=720px){.feature-list{grid-template-columns:repeat(3,minmax(0,1fr))}.setup-grid,.two-column{grid-template-columns:repeat(2,minmax(0,1fr))}.transaction-form{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}.transaction-form .span-two{grid-column:span 2}.filters{grid-template-columns:2fr 1fr 1fr}.summary-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}.install-help{color:#134e4a;background:#f0fdfa;border-radius:12px;margin:12px 0;padding:12px 16px;font-size:.875rem}.install-help summary{cursor:pointer;font-weight:600}.install-help p{line-height:1.6}@media (display-mode:standalone){.install-help{display:none}}.overdue-button{align-self:flex-start;margin:8px 0}.overdue-dialog{color:#183b38;border:0;border-radius:20px;width:min(640px,100vw - 32px);max-height:85vh;padding:24px}.overdue-dialog::backdrop{background:#0f172a99}.overdue-list{gap:16px;margin:20px 0;display:grid}.overdue-row{border:1px solid #cbd5e1;border-radius:12px;gap:8px;padding:16px;display:grid}.overdue-row label{gap:6px;display:grid}.monthly-chart{min-width:0;margin:24px 0}.monthly-table{overflow-x:auto}.monthly-table table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:.85rem}.monthly-table th,.monthly-table td{text-align:right;border-bottom:1px solid #e2e8f0;padding:8px}.balance-section{margin:28px 0}.balance-table-wrap{overflow-x:auto}.balance-table{border-collapse:collapse;white-space:nowrap;width:100%;min-width:680px;font-size:.88rem}.balance-table th,.balance-table td{text-align:right;border-bottom:1px solid #e2e8f0;padding:10px 8px}.balance-table th:first-child,.balance-table tbody th{text-align:left}
