:root{--paper: #f7f3e9;--paper-alt: #efe8d8;--ink: #1f1b16;--ink-muted: #6b6255;--rule: #d8cfb8;--accent: #a4302a;--font-display: "Playfair Display", Georgia, serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--radius: 2px}@media (prefers-color-scheme: dark){:root{--paper: #1c1a16;--paper-alt: #262319;--ink: #ede6d3;--ink-muted: #a89e88;--rule: #3a352a;--accent: #d9714f}}@font-face{font-family:Playfair Display;src:url(/fonts/playfair-display-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.5}#root{max-width:640px;margin:2rem auto;padding:2rem;background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius)}.error-banner{max-width:640px;margin:1rem auto 0;padding:.75rem 1rem;border:1px solid var(--accent);color:var(--accent);font-size:.9rem}h1,h2{font-family:var(--font-display);font-weight:700;margin:0 0 .5rem}.subtext{color:var(--ink-muted)}@keyframes workspace-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.workspace-enter{animation:workspace-enter .15s ease-out}.masthead{max-width:640px;margin:2rem auto 0;padding:0 2rem;text-align:center}.masthead-title{font-size:2rem;letter-spacing:.02em}.masthead-rule{height:4px;margin:.5rem 0;border-top:3px solid var(--ink);border-bottom:1px solid var(--ink)}.masthead-dateline{margin:.5rem 0 0;font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted)}.ruled-form{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.entry-label{font-family:var(--font-display);font-size:1.1rem}.ruled-input{border:none;border-bottom:1px solid var(--rule);background:transparent;color:var(--ink);font-family:var(--font-body);font-size:1rem;padding:.5rem .25rem;outline:none}.ruled-input:focus{border-bottom-color:var(--accent)}.stamp-button{align-self:flex-start;background:transparent;border:1px solid var(--accent);border-radius:var(--radius);color:var(--accent);font-family:var(--font-body);font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:.6rem 1.2rem;cursor:pointer;transition:transform .1s ease}.stamp-button:active{transform:scale(.97)}.ornament{font-size:1.5rem;color:var(--accent);margin:0 0 .5rem}.chip-torn{display:inline-block;border:1px dashed var(--rule);border-radius:var(--radius);padding:.25rem .6rem;font-size:.85rem;color:var(--ink-muted)}.loading-status{margin-top:1rem;color:var(--ink-muted)}.ticks{display:inline-flex;gap:.3rem;margin-left:.4rem;vertical-align:middle}.tick{width:6px;height:6px;border-radius:50%;background:var(--rule);animation:tick-pulse 1.2s ease-in-out infinite}.tick:nth-child(2){animation-delay:.2s}.tick:nth-child(3){animation-delay:.4s}@keyframes tick-pulse{0%,80%,to{background:var(--rule)}40%{background:var(--accent)}}.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.75rem;margin:1rem 0}.day-tile{display:block;position:relative;border:1px solid var(--rule);border-radius:var(--radius);background:var(--paper-alt);padding:.5rem;cursor:pointer;color:var(--ink-muted)}.day-tile:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.day-tile-selected{border:2px solid var(--accent);background:var(--paper);color:var(--ink)}.day-tile input[type=checkbox]{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.day-tile-month{display:block;font-size:.7rem;letter-spacing:.05em;color:var(--accent);text-transform:uppercase}.day-tile-day{display:block;font-family:var(--font-display);font-size:1.75rem;line-height:1.1}.day-tile-caption{display:block;font-size:.75rem;margin-top:.25rem}.day-tile-source{display:block;font-size:.7rem;margin-top:.25rem;color:var(--ink-muted)}.ledger-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--rule);font-size:.85rem}.ledger-row:last-child{border-bottom:none}.ledger-label{color:var(--ink-muted);white-space:nowrap}.ledger-value{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere;text-align:right;color:var(--ink)}
