@font-face{font-family:Poppins;font-style:normal;font-weight:300;font-display:swap;src:url(/assets/Poppins-300-Dku2WoCh.woff2) format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/Poppins-400-cpxAROuN.woff2) format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/Poppins-500-C8OXljZJ.woff2) format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/Poppins-600-zEkxB9Mr.woff2) format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500 600;font-display:swap;src:url(/assets/CormorantGaramond-CUoBjw-S.woff2) format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(/assets/CormorantGaramond-italic-Y14P-dkT.woff2) format("woff2")}:root{--bg:#14110d;--surface:#1d1913;--surface-2:#231d14;--line:#3a3226;--line-strong:#5a4a31;--text:#f1e9dc;--muted:#bdae94;--faint:#8f826c;--accent:#e3a857;--accent-soft:#f0c78e;--on-accent:#1a140b;--danger:#e58f7a;--serif:"Cormorant Garamond",Georgia,serif;--sans:Poppins,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color-scheme:dark;font-family:var(--sans);color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;font-size:15px;line-height:1.5;background:var(--bg)}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a{color:var(--accent);text-decoration:none}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}input,textarea{width:100%;border:1px solid var(--line);border-radius:14px;background:var(--bg);color:var(--text);padding:12px 14px;font-size:14px;outline:none}input{min-height:48px}textarea{resize:vertical;line-height:1.6;min-height:96px}input::placeholder,textarea::placeholder{color:var(--faint)}input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #e3a85726}.field{display:flex;flex-direction:column;gap:7px}.field label{font-size:13px;font-weight:500}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 18px;border-radius:16px;border:1px solid var(--line);background:transparent;color:var(--text);font-weight:500;font-size:14px;text-align:center}.btn.full{width:100%}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600;min-height:54px;font-size:15px}.btn.primary:hover{background:var(--accent-soft)}.btn.soft{background:var(--surface-2);border:1px dashed var(--line-strong);color:var(--accent-soft)}.btn.ghost{background:var(--surface)}.btn.ghost:hover,.btn.soft:hover{border-color:var(--accent)}.btn-row{display:flex;flex-wrap:wrap;gap:10px}.btn-row .btn{flex:1 1 160px}.btn-row .btn.primary{flex:2 1 200px}.icon-btn{position:relative;flex:none;width:44px;height:44px;display:grid;place-items:center;border-radius:14px;border:1px solid var(--line);background:transparent;color:var(--text);cursor:pointer}.icon-btn:hover{border-color:var(--accent)}.icon-btn:disabled{opacity:.3}.icon-btn.small{width:40px;height:40px;font-size:18px}.link-btn{align-self:flex-start;min-height:44px;border:0;background:transparent;color:var(--accent-soft);font-size:13px;font-weight:500;padding:0}.link-btn:hover{text-decoration:underline}.link-btn.danger{color:var(--danger)}.login-page{position:relative;min-height:100vh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:44px;padding:64px 32px 44px;max-width:460px;margin:0 auto}.login-glow span{position:fixed;border-radius:50%;pointer-events:none}.login-glow span:first-child{top:-120px;right:-120px;width:320px;height:320px;background:#2a2114;opacity:.8}.login-glow span:last-child{top:-60px;right:-60px;width:200px;height:200px;background:#3a2c17;opacity:.7}.login{position:relative;display:flex;flex-direction:column;gap:16px}.login-intro{display:flex;flex-direction:column;gap:16px;margin-bottom:28px}.login-lamp{color:var(--accent)}.login h1{margin:0;font:500 52px/1 var(--serif)}.login-intro p{margin:0;color:var(--muted);line-height:1.6}.login .field label{font-size:12px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.login input{min-height:52px;border-radius:16px;background:var(--surface);font-size:15px}.code-input{letter-spacing:.3em;font-size:18px}.code-hint{margin:0;font-size:12px;color:var(--muted)}.login .btn.primary{margin-top:8px}.login-quote{position:relative;margin:0;font:italic 500 19px/1.35 var(--serif);color:var(--accent)}.error{margin:0;color:var(--danger)}.loading{min-height:100vh;display:grid;place-items:center;color:var(--accent);font:italic 500 22px var(--serif)}.app{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}.side{position:sticky;top:0;height:100vh;padding:28px 18px;border-right:1px solid var(--line);background:#100e0a;display:flex;flex-direction:column;gap:28px}.brand{display:flex;align-items:center;gap:12px;padding:0 8px}.brand-lamp{width:40px;height:40px;border-radius:14px;border:1px solid var(--line);display:grid;place-items:center;color:var(--accent)}.brand strong{display:block;font:600 19px/1.1 var(--serif)}.brand small{display:block;margin-top:3px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.nav{display:grid;gap:6px}.nav button{min-height:46px;border:0;border-radius:14px;background:transparent;color:var(--muted);text-align:left;padding:0 16px;font-size:14px}.nav button:hover{color:var(--text);background:var(--surface)}.nav button.active{background:var(--accent);color:var(--on-accent);font-weight:600}.nav-short{display:none}.side-note{margin:auto 0 0;padding:16px;border-radius:18px;background:var(--surface);color:var(--accent-soft);font:italic 500 17px/1.4 var(--serif)}.profile{min-height:44px;border:0;background:transparent;color:var(--muted);text-align:left;padding:0 8px;border-radius:12px}.profile:hover{color:var(--text)}.main{width:100%;max-width:780px;margin:0 auto;padding:30px clamp(18px,4vw,40px) 80px}.top{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:20px}.top h1{margin:2px 0 0;font:500 40px/1.05 var(--serif)}.top-right{display:flex;gap:8px;flex:none;justify-content:flex-end}.top-right .btn{padding:0 14px}.signout{display:none}.eyebrow{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.eyebrow.accent{color:var(--accent)}.toast{position:fixed;z-index:20;bottom:28px;left:50%;transform:translate(-50%);background:var(--accent);color:var(--on-accent);font-weight:500;padding:12px 18px;border-radius:14px;box-shadow:0 10px 30px #0008;max-width:calc(100% - 32px)}.unsaved{margin:0 0 14px;padding:10px 14px;border-radius:12px;background:#2e2412;color:var(--accent-soft);font-size:12px}.day-picker{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 12px;margin-bottom:14px;border-radius:18px;background:var(--surface);border:1px solid var(--line)}.day-picker-main{flex:1;min-width:150px}.day-picker-main strong{display:block;font:600 20px/1.2 var(--serif)}.day-picker-main strong:first-letter{text-transform:uppercase}.day-picker-choose input{position:absolute;inset:0;opacity:0;width:100%;height:100%;min-height:0;padding:0;border:0;cursor:pointer}.day-picker-choose:focus-within{outline:3px solid var(--accent);outline-offset:2px}.today-link{flex-basis:100%;min-height:36px}.stack{display:flex;flex-direction:column;gap:14px}.card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:18px}.step-card{display:flex;flex-direction:column;gap:12px}.step-card.dashed{background:transparent;border-style:dashed;border-color:var(--line-strong)}.step-head{display:flex;align-items:center;gap:12px}.step-number{flex:none;width:28px;height:28px;border-radius:50%;border:1px solid var(--accent);color:var(--accent);display:grid;place-items:center;font-size:12px;font-weight:600}.step-title{margin:0;font:500 22px/1.15 var(--serif)}.card-hint{margin:-4px 0 0;font-size:12px;color:var(--muted)}.card-title{margin:6px 0 4px;font:500 26px/1.15 var(--serif)}.numbered{display:flex;flex-direction:column;gap:10px}.mini-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.reflection-block{display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:16px;background:var(--surface)}.trail-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.trail-head h3{margin:0;font:500 21px/1.2 var(--serif)}.guidance{margin:0;font:italic 500 16px/1.45 var(--serif);color:#d9c9ad}.intro{margin:-6px 0 0;color:var(--muted);font-size:14px}.empty{margin:0;padding:22px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:18px}.balance{display:flex;flex-direction:column;gap:12px}.balance-card{display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:16px;background:var(--surface-2)}.balance-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.balance-head label{font-size:14px;font-weight:500}.balance-share{flex:none;font-size:13px;font-weight:600;color:var(--accent)}.balance-dots{display:flex;justify-content:center;gap:6px}.balance-dots span{width:5px;height:5px;border-radius:50%;background:var(--line-strong)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{min-height:44px;padding:0 16px;border-radius:12px;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:13px}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}.chip.add{border-style:dashed;border-color:var(--line-strong)}.trail{display:flex;flex-direction:column}.trail-step{display:grid;grid-template-columns:28px minmax(0,1fr);column-gap:12px}.trail-rail{display:flex;flex-direction:column;align-items:center}.trail-dot{width:14px;height:14px;margin-top:22px;border-radius:50%;background:var(--accent)}.trail-arrow{margin-top:20px;color:var(--accent)}.trail-line{flex:1;width:2px;margin-top:4px;background:var(--line)}.trail-card{display:flex;flex-direction:column;gap:10px;padding:16px;margin-bottom:14px}.trail-card h3{font-size:21px}.item-row{display:flex;align-items:center;gap:8px}.trail-actions{display:flex;flex-direction:column;gap:6px;margin-left:40px}.trail-actions .link-btn{align-self:center}.history-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.calendar{display:flex;flex-direction:column;gap:12px;padding:16px}.cal-head{display:flex;align-items:center;justify-content:space-between}.cal-head strong{font:600 22px var(--serif)}.cal-head strong:first-letter{text-transform:uppercase}.days,.dates{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}.days{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.dates button,.dates span{height:44px;border:0;border-radius:12px;background:transparent;color:var(--text);font-size:13px;position:relative}.dates button:hover{background:var(--surface-2)}.dates button.future{color:#6e634f}.dates button.has:after{content:"";position:absolute;left:calc(50% - 2.5px);bottom:6px;width:5px;height:5px;border-radius:50%;background:var(--accent)}.dates button.selected{background:var(--accent);color:var(--on-accent);font-weight:600}.dates button.selected:after{background:var(--on-accent)}.export-link{font-size:12px;color:var(--muted);text-decoration:underline;align-self:flex-start;min-height:32px}.entry-preview,.entry-preview .card{display:flex;flex-direction:column;gap:12px}.entry-preview .eyebrow.accent:first-letter{text-transform:uppercase}.entry-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:var(--surface-2);color:var(--accent)}.entry-item strong{display:block;color:var(--text);font-size:14px;font-weight:500}.entry-item small{display:block;color:var(--muted);font-size:12px}.summary{margin:0;color:var(--muted);font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:160px;overflow:auto}.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stats div{padding:12px;border-radius:14px;border:1px solid var(--line);display:flex;flex-direction:column;gap:2px}.stats span{font-size:12px;color:var(--muted)}.stats strong{font-size:14px;font-weight:500}.stats strong.done{color:var(--accent-soft)}.shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.shortcuts .btn{min-height:44px;padding:0 8px;font-size:13px}.pdf-help{margin:0;font-size:12px;color:var(--muted)}.empty-card{text-align:center;align-items:center}.empty-card p{margin:0;color:var(--muted)}.history-row{display:flex;align-items:center;gap:12px;min-height:64px;padding:12px 16px;border-radius:16px;border:1px solid var(--line);background:var(--surface);color:var(--text);text-align:left}.history-row:hover{border-color:var(--accent)}.history-row>span:first-child{flex:1;min-width:0}.history-row strong{display:block;font-size:14px;font-weight:500}.history-row strong:first-letter{text-transform:uppercase}.history-row small{display:block;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tag{flex:none;border-radius:99px;background:var(--surface-2);color:var(--muted);padding:5px 10px;font-size:11px;white-space:nowrap}@media(min-width:1100px){.main{max-width:1080px}.history-layout{grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);align-items:start}}@media(max-width:850px){.app{grid-template-columns:1fr}.side{position:fixed;z-index:10;inset:auto 12px 12px;height:62px;padding:6px;border:1px solid var(--line);border-radius:20px;background:var(--surface);display:block;box-shadow:0 10px 30px #000a}.brand,.side-note,.profile,.nav-full{display:none}.nav{height:100%;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.nav button{display:grid;place-items:center;padding:0 4px;font-size:12px;text-align:center;min-height:0;height:100%}.nav-short{display:inline}.main{padding:24px 18px 104px}.signout{display:inline-flex}.toast{bottom:90px}}@media(max-width:560px){.top h1{font-size:36px}.pair{grid-template-columns:1fr}.trail-actions{margin-left:0}}
