@import "https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css";:root{--color-primary:#3182f6;--color-primary-pressed:#1b64da;--color-ink:#191919;--color-ink-muted:#8b95a1;--color-surface:#fff;--color-surface-subtle:#f5f6f8;--color-border:#e5e8eb;--color-expense:#f04452;--color-income:#00a881;--color-neutral:#8b95a1;--color-danger:#f04452;--color-overlay:#1919197a;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:40px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-full:9999px;--text-display:700 24px/1.35 Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--text-title:600 18px/1.4 Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--text-body:400 16px/1.5 Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--text-body-strong:600 16px/1.5 Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--text-caption:400 13px/1.4 Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}:root[data-theme=dark]{--color-primary:#4593fc;--color-primary-pressed:#6aaaff;--color-ink:#f2f4f6;--color-ink-muted:#b0b8c1;--color-surface:#1b1d20;--color-surface-subtle:#101214;--color-border:#34383d;--color-expense:#ff7a85;--color-income:#40d4ae;--color-neutral:#b0b8c1;--color-danger:#ff7a85;--color-overlay:#000000a3}:root{color:var(--color-ink);background:var(--color-surface-subtle);font-synthesis:none;text-rendering:optimizelegibility;font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--color-surface-subtle);min-width:320px}body{min-width:320px;margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.app-shell{max-width:480px;min-height:100vh;padding-bottom:calc(144px + env(safe-area-inset-bottom));background:var(--color-surface-subtle);margin:0 auto}.topbar,.date-row,.section-heading,.summary-main,.entry-top,.form-actions{justify-content:space-between;align-items:center;display:flex}.topbar{height:64px;padding:0 var(--space-4);position:relative}.topbar-actions{align-items:center;gap:var(--space-1);display:flex}.brand,.icon-button{align-items:center;display:inline-flex}.brand{gap:var(--space-2);font:var(--text-body-strong)}.brand-mark{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--color-surface);background:var(--color-primary);place-items:center;font-weight:700;display:grid}.icon-button{justify-content:center;gap:var(--space-1);min-width:44px;min-height:44px;padding:var(--space-2);border-radius:var(--radius-md);color:var(--color-ink-muted);font:var(--text-caption);background:0 0}.icon-button:hover,.today-button:hover{color:var(--color-ink);background:var(--color-surface)}.theme-button{min-width:72px}.export-button{min-width:88px}.copy-status{top:56px;right:var(--space-4);min-width:56px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);color:var(--color-surface);background:var(--color-ink);font:var(--text-caption);text-align:center;position:absolute}.sort-icon,.date-arrow{color:var(--color-ink);font-size:20px}.date-section{padding:var(--space-6) var(--space-4) var(--space-5)}.eyebrow,.entry-count,.optional{color:var(--color-ink-muted);font:var(--text-caption)}.date-row{margin-top:var(--space-2)}.date-row h1,.section-heading h2,.editor-header h2,.confirm-card h2,.empty-state h3,.entry-card h3{margin:0}.date-row h1{text-align:center;font:var(--text-display)}.today-pill{width:max-content;margin:var(--space-2) auto 0;padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);color:var(--color-surface);background:var(--color-primary);font-size:11px;font-weight:600;display:block}.today-button{min-height:44px;margin:var(--space-2) auto 0;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-ink-muted);background:var(--color-surface);font:var(--text-caption);display:block}.summary-card{margin:0 var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--color-surface)}.summary-main{padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.summary-main span,.summary-stats small{color:var(--color-ink-muted);font:var(--text-caption)}.summary-main strong{color:var(--color-ink);font:var(--text-body-strong);font-variant-numeric:tabular-nums;font-size:22px}.summary-main .negative{color:var(--color-expense)}.summary-stats{gap:var(--space-3);padding-top:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.summary-stats div{align-items:center;column-gap:var(--space-1);grid-template-columns:auto 1fr;display:grid}.summary-stats b{margin-top:var(--space-1);font:var(--text-body-strong);font-variant-numeric:tabular-nums;grid-column:2;font-size:14px}.stat-dot{border-radius:var(--radius-full);grid-row:1/span 2;width:7px;height:7px}.income-dot{background:var(--color-income)}.expense-dot{background:var(--color-expense)}.neutral-dot{background:var(--color-neutral)}.timeline-section{padding:var(--space-7) var(--space-4) var(--space-4)}.section-heading{margin-bottom:var(--space-5);align-items:end}.timeline-tools{align-items:center;gap:var(--space-2);display:flex}.sort-button{min-width:auto;padding:0 var(--space-2)}.section-heading h2,.editor-header h2,.confirm-card h2{font:var(--text-title)}.section-heading h2,.editor-header h2{margin-top:var(--space-1)}.timeline-entry{width:100%;min-height:64px;color:inherit;text-align:left;background:0 0;border:0;grid-template-columns:48px 12px 1fr;padding:0;display:grid}.timeline-entry:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.time-col{padding-top:var(--space-2)}.time-col strong{color:var(--color-ink-muted);font:var(--text-caption);font-variant-numeric:tabular-nums}.entry-line{border-left:1px solid var(--color-border);position:relative}.entry-line span{width:7px;height:7px;top:var(--space-2);border-radius:var(--radius-full);background:var(--color-primary);position:absolute;left:-4px}.entry-card{margin:0 0 var(--space-3) var(--space-3);padding:var(--space-3) 0 var(--space-3) var(--space-3);border-bottom:1px solid var(--color-border);transition:background .12s ease-in-out}.timeline-entry:hover .entry-card,.timeline-entry:focus-visible .entry-card{border-radius:var(--radius-md);background:var(--color-surface)}.entry-top{gap:var(--space-2)}.entry-card h3{font:var(--text-body-strong);font-size:15px}.entry-card p{margin:var(--space-1) 0 0;color:var(--color-ink-muted);font:var(--text-caption);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.amount{color:var(--color-neutral);font:var(--text-body-strong);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14px}.amount.income{color:var(--color-income)}.amount.expense{color:var(--color-expense)}.tags{gap:var(--space-1);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.tags span{padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);color:var(--color-ink-muted);background:var(--color-surface);font:var(--text-caption);font-size:11px}.empty-state{padding:var(--space-8) 0;text-align:center}.empty-icon,.confirm-icon{border-radius:var(--radius-full);place-items:center;display:grid}.empty-icon{width:48px;height:48px;margin:0 auto var(--space-3);color:var(--color-primary);background:var(--color-surface);font-size:22px}.empty-state h3{font:var(--text-body-strong)}.empty-state p,.confirm-card p{color:var(--color-ink-muted);font:var(--text-caption)}.empty-state p{margin:var(--space-2) 0 0;line-height:1.6}.quick-actions{z-index:5;right:max(var(--space-4), calc((100vw - 480px) / 2 + var(--space-4)));bottom:calc(var(--space-5) + env(safe-area-inset-bottom));gap:var(--space-2);display:grid;position:fixed}.quick-action{justify-content:center;align-items:center;gap:var(--space-2);min-width:120px;min-height:48px;padding:0 var(--space-4);border-radius:var(--radius-full);font:var(--text-body-strong);font-size:14px;transition:background .1s ease-in-out,transform .1s ease-in-out;display:inline-flex;box-shadow:0 8px 18px #19191924}.quick-action--memo{color:var(--color-surface);background:var(--color-primary)}.quick-action--expense{border:1px solid var(--color-border);color:var(--color-ink);background:var(--color-surface)}.quick-action__icon{font-size:18px;line-height:1}.quick-action--memo:hover,.save-button:hover{background:var(--color-primary-pressed)}.quick-action--expense:hover{background:var(--color-surface-subtle)}.quick-action:active,.save-button:active,.delete-button:active{transform:scale(.96)}.editor-page,.confirm-backdrop{position:fixed;inset:0}.editor-page{z-index:10;background:var(--color-surface-subtle);overflow:auto}.editor-content{width:min(480px,100%);min-height:100%;padding:var(--space-4) var(--space-4) calc(var(--space-8) + env(safe-area-inset-bottom));background:var(--color-surface);margin:0 auto}.editor-header{margin-bottom:var(--space-7);grid-template-columns:44px 1fr 44px;align-items:center;display:grid}.back-button{color:var(--color-ink);justify-self:start;padding:0;font-size:20px}.header-spacer{width:44px}.editor-date{margin:0 0 var(--space-5);color:var(--color-ink-muted);font:var(--text-caption)}.form-grid,.segmented-control,.confirm-actions{gap:var(--space-3);display:grid}.form-grid{grid-template-columns:1fr 1fr}.editor-content label,.editor-content legend{color:var(--color-ink);font:var(--text-caption)}.editor-content label{margin-bottom:var(--space-5);display:block}.editor-content fieldset{margin:0 0 var(--space-5);border:0;padding:0}.editor-content legend{margin-bottom:var(--space-2)}.optional{font-size:12px}.editor-content input,.editor-content textarea{width:100%;min-height:48px;margin-top:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-ink);background:var(--color-surface);font:var(--text-body);display:block}.editor-content input:focus,.editor-content textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 1.5px var(--color-primary);outline:0}.editor-content textarea{resize:vertical;min-height:96px}.title-input{font-size:17px}.segmented-control{gap:var(--space-1);min-height:44px;padding:var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-subtle);grid-template-columns:repeat(2,1fr)}.segmented-control label{border-radius:var(--radius-sm);min-height:36px;color:var(--color-ink-muted);font:var(--text-caption);place-items:center;margin:0;display:grid}.segmented-control input{opacity:0;width:1px;min-height:0;position:absolute}.segmented-control label:has(input:checked){color:var(--color-surface);background:var(--color-primary);font-weight:600}.form-actions{gap:var(--space-2);padding-top:var(--space-2)}.save-button,.delete-button,.confirm-actions button{border-radius:var(--radius-md);min-height:44px;font:var(--text-body-strong);font-size:14px}.save-button{min-height:48px;color:var(--color-surface);background:var(--color-primary);flex:1;transition:background .1s ease-in-out,transform .1s ease-in-out}.delete-button{min-height:48px;padding:0 var(--space-5);border:1px solid var(--color-danger);color:var(--color-danger);background:var(--color-surface)}.confirm-backdrop{z-index:20;padding:var(--space-4);background:var(--color-overlay);place-items:center;display:grid}.confirm-card{width:min(340px,100%);padding:var(--space-6);border-radius:var(--radius-lg);background:var(--color-surface);text-align:center;animation:.16s ease-in-out dialog-in}.confirm-icon{width:40px;height:40px;margin:0 auto var(--space-3);color:var(--color-danger);background:#f044521a;font-weight:700}.confirm-card p{margin:var(--space-2) 0 var(--space-5)}.confirm-actions{gap:var(--space-2);grid-template-columns:1fr 1fr}.confirm-actions button{color:var(--color-ink);background:var(--color-surface-subtle)}.confirm-actions .danger{color:var(--color-surface);background:var(--color-danger)}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.entry-card,.quick-action,.save-button,.confirm-card{transition:none;animation:none}}
