@import"https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300..700;1,9..144,300..700&family=Public+Sans:wght@400;500;600&display=swap";:root{--paper: #f7f2e9;--paper-deep: #efe7d8;--ink: #211d16;--ink-soft: #6f6759;--hairline: #d9cfbc;--accent: #c2431d;--accent-deep: #9c3212;--serif: "Fraunces", "Iowan Old Style", Georgia, serif;--sans: "Public Sans", "Helvetica Neue", sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100vh}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}::selection{background:var(--accent);color:var(--paper)}.auth-shell{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,4fr);min-height:100vh}.auth-hero{position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:3rem 3.5rem;border-right:1px solid var(--hairline);background:repeating-linear-gradient(to bottom,transparent 0,transparent 2.75rem,rgba(33,29,22,.055) 2.75rem,rgba(33,29,22,.055) calc(2.75rem + 1px)),var(--paper-deep);overflow:hidden}.auth-hero:after{content:"¶";position:absolute;right:-.35em;bottom:-.42em;font-family:var(--serif);font-weight:300;font-size:22rem;line-height:1;color:#c2431d24;pointer-events:none}.wordmark{font-family:var(--serif);font-size:1.6rem;font-weight:600;letter-spacing:.01em;color:var(--ink);text-decoration:none}.wordmark em{color:var(--accent);font-style:normal}.auth-hero h1{font-family:var(--serif);font-weight:340;font-size:clamp(2.4rem,4.5vw,4rem);line-height:1.08;letter-spacing:-.015em;margin:0;max-width:11em}.auth-hero h1 i{font-style:italic;color:var(--accent)}.auth-hero .footnote{font-size:.85rem;color:var(--ink-soft);max-width:30ch}.auth-panel{display:flex;align-items:center;justify-content:center;padding:3rem 2rem}.auth-card{width:100%;max-width:24rem}.auth-card>*{animation:rise .55s cubic-bezier(.22,1,.36,1) both}.auth-card>*:nth-child(2){animation-delay:.07s}.auth-card>*:nth-child(3){animation-delay:.14s}.auth-card>*:nth-child(4){animation-delay:.21s}@keyframes rise{0%{opacity:0;transform:translateY(.6rem)}to{opacity:1;transform:none}}.auth-card h2{font-family:var(--serif);font-weight:420;font-size:2rem;margin:0 0 .4rem}.auth-card .lede{color:var(--ink-soft);font-size:.95rem;margin:0 0 2.2rem}.field{margin-bottom:1.6rem}.field label{display:block;font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.35rem}.field input{width:100%;border:none;border-bottom:1px solid var(--hairline);background:linear-gradient(to right,var(--accent),var(--accent)) no-repeat left bottom / 0 2px;padding:.45rem .1rem;font:inherit;color:var(--ink);outline:none;border-radius:0;transition:background-size .35s cubic-bezier(.22,1,.36,1)}.field input:focus{background-size:100% 2px}.field .error{color:var(--accent-deep);font-size:.82rem;margin-top:.4rem}.form-error{border-left:2px solid var(--accent);padding:.35rem 0 .35rem .8rem;margin:0 0 1.4rem;color:var(--accent-deep);font-size:.88rem}button[type=submit]{width:100%;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font:inherit;font-weight:600;letter-spacing:.04em;padding:.8rem 1rem;cursor:pointer;transition:background .2s,border-color .2s,transform .15s}button[type=submit]:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}button[type=submit]:active:not(:disabled){transform:translateY(1px)}button[type=submit]:disabled{opacity:.55;cursor:default}.auth-switch{margin-top:1.6rem;font-size:.9rem;color:var(--ink-soft)}.auth-switch a{color:var(--accent-deep);font-weight:500;text-decoration:none;border-bottom:1px solid currentColor}.auth-switch a:hover{color:var(--accent)}.home-shell{min-height:100vh;display:flex;flex-direction:column}.home-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:1.4rem 2.5rem;border-bottom:1px solid var(--hairline)}.home-header .whoami{font-size:.85rem;color:var(--ink-soft)}.home-header button{border:none;background:none;font:inherit;font-size:.85rem;font-weight:500;color:var(--accent-deep);cursor:pointer;border-bottom:1px solid currentColor;padding:0 0 1px}.home-header button:hover{color:var(--accent)}.ledger-main{flex:1;width:100%;max-width:52rem;margin:0 auto;padding:2.5rem 2rem 4rem}.ledger-date{font-family:var(--serif);font-weight:340;font-size:clamp(2rem,4vw,3rem);line-height:1.1;margin:0 0 2rem}.ledger-loading,.ledger-empty{color:var(--ink-soft);font-family:var(--serif);font-style:italic}.ledger-section{margin-bottom:3rem}.ledger-section h2{font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--hairline);padding-bottom:.5rem;margin:0 0 1rem}.goal-list{list-style:none;margin:0;padding:0}.goal-row{display:flex;align-items:center;gap:.85rem;padding:.55rem 0;border-bottom:1px solid var(--hairline)}.goal-check{flex:none;width:1.6rem;height:1.6rem;border-radius:50%;border:1.5px solid var(--ink-soft);background:transparent;color:var(--paper);font-size:.9rem;line-height:1;cursor:pointer;transition:background .2s,border-color .2s,transform .12s}.goal-check:hover{border-color:var(--accent)}.goal-check.done{background:var(--accent);border-color:var(--accent)}.goal-check:active{transform:scale(.92)}.goal-title{flex:1;cursor:text;transition:color .2s}.goal-title.done{color:var(--ink-soft);text-decoration:line-through;text-decoration-color:var(--accent)}.goal-edit{flex:1;font:inherit;color:var(--ink);border:none;border-bottom:2px solid var(--accent);background:transparent;outline:none;padding:0}.goal-delete{flex:none;border:none;background:none;color:var(--ink-soft);font-size:1.2rem;line-height:1;cursor:pointer;opacity:0;transition:opacity .15s,color .15s}.goal-row:hover .goal-delete,.goal-delete:focus{opacity:1}.goal-delete:hover{color:var(--accent-deep)}.add-goal{display:flex;gap:.75rem;margin-top:.9rem}.add-goal input{flex:1;font:inherit;color:var(--ink);border:none;border-bottom:1px solid var(--hairline);background:transparent;outline:none;padding:.35rem .1rem}.add-goal input:focus{border-bottom-color:var(--accent)}.add-goal button{border:1px solid var(--ink);background:transparent;color:var(--ink);font:inherit;font-size:.85rem;font-weight:600;padding:.35rem 1rem;cursor:pointer;transition:background .2s,color .2s}.add-goal button:hover:not(:disabled){background:var(--ink);color:var(--paper)}.add-goal button:disabled{opacity:.4;cursor:default}.checkin-grid{display:flex;flex-wrap:wrap;gap:2.5rem}.checkin-item label,.checkin-item .checkin-label{display:block;font-size:.85rem;color:var(--ink-soft);margin-bottom:.5rem}.checkin-item input[type=number]{width:6rem;font:inherit;font-family:var(--serif);font-size:1.4rem;color:var(--ink);border:none;border-bottom:1px solid var(--hairline);background:transparent;outline:none;padding:.15rem .1rem}.checkin-item input[type=number]:focus{border-bottom-color:var(--accent)}.mood-picker{display:flex;gap:.5rem}.mood-picker button{display:flex;flex-direction:column;align-items:center;gap:.15rem;border:1px solid var(--hairline);background:transparent;color:var(--ink-soft);font:inherit;font-size:.72rem;padding:.45rem .7rem;cursor:pointer;transition:border-color .2s,color .2s,background .2s}.mood-picker button b{font-family:var(--serif);font-size:1.05rem;font-weight:500}.mood-picker button:hover{border-color:var(--accent);color:var(--ink)}.mood-picker button.selected{background:var(--accent);border-color:var(--accent);color:var(--paper)}.history-scroll{overflow-x:auto}.history-table{border-collapse:collapse;min-width:100%}.history-table th,.history-table td{text-align:center;padding:.4rem .45rem;font-size:.82rem;border-bottom:1px solid var(--hairline)}.history-table thead th{color:var(--ink-soft);font-weight:500;font-family:var(--serif)}.history-table tbody th{text-align:left;font-weight:500;white-space:nowrap;max-width:12rem;overflow:hidden;text-overflow:ellipsis;padding-right:1rem}.history-table .today{background:var(--paper-deep)}.history-table .metric td{font-family:var(--serif);color:var(--ink-soft)}.dot{width:.95rem;height:.95rem;border-radius:50%;border:1.5px solid var(--hairline);background:transparent;padding:0;cursor:pointer;transition:background .15s,border-color .15s}.dot:hover{border-color:var(--accent)}.dot.filled{background:var(--accent);border-color:var(--accent)}.loading-screen{min-height:100vh;display:grid;place-items:center;font-family:var(--serif);font-style:italic;color:var(--ink-soft)}@media(max-width:860px){.auth-shell{grid-template-columns:1fr}.auth-hero{border-right:none;border-bottom:1px solid var(--hairline);min-height:34vh;gap:1.5rem}.auth-hero:after{font-size:12rem}}
