:root{color:#17221f;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#17221f;--muted:#68746f;--paper:#fffef9;--line:#d9ddd6;--accent:#176b55;--accent-dark:#0e4d3d;--accent-soft:#dcebe3;--danger:#a23b3b;background:#f3f1e9;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{overscroll-behavior-x:none;max-width:100%;min-height:100%;overflow-x:hidden}body{overscroll-behavior-x:none;touch-action:pan-y;max-width:100%;min-height:100vh;margin:0;overflow-x:hidden}#root{max-width:100%;overflow-x:hidden}button,input,textarea{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:not-allowed}a{color:inherit}code{color:var(--ink);background:#eeece3;border-radius:5px;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.app-shell{overscroll-behavior-x:none;max-width:100%;min-height:100dvh;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);touch-action:pan-y;position:relative;overflow-x:hidden}.app-shell:before{z-index:-1;content:"";background:radial-gradient(circle at 12% 5%,#176b5524,#0000 28rem),radial-gradient(circle at 90% 90%,#dba95d26,#0000 25rem),linear-gradient(135deg,#f6f4ed 0%,#eeeee7 100%);position:fixed;inset:0}.app-header{width:min(1120px,100% - 48px);padding:calc(20px + env(safe-area-inset-top)) 0 20px;justify-content:space-between;align-items:center;margin:0 auto;display:flex}.brand{color:var(--ink);letter-spacing:-.02em;align-items:center;gap:11px;font-size:17px;font-weight:720;text-decoration:none;display:inline-flex}.brand-mark{color:#fff;background:var(--accent);border-radius:10px;place-items:center;width:34px;height:34px;font-family:Georgia,serif;font-size:19px;display:grid;box-shadow:0 8px 20px #176b5533}.text-button{color:var(--muted);background:0 0;border:0;padding:8px 4px;font-size:14px;font-weight:650}.text-button:hover{color:var(--accent-dark)}.logout-button{width:34px;height:34px;color:var(--muted);background:0 0;border:0;border-radius:10px;place-items:center;padding:0;display:grid}.logout-button:hover{color:var(--accent-dark);background:#176b5514}.text-button:focus-visible,.logout-button:focus-visible,.primary-button:focus-visible,.secondary-button:focus-visible,.icon-button:focus-visible,.plus-button:focus-visible,.stats-date:focus-visible,.search-day-date:focus-visible,.entry-check:focus-visible,.entry-handle:focus-visible,.add-entry:focus-visible,.bulk-input:focus-visible,input:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #176b553b}.content{place-items:center;width:min(1120px,100% - 48px);min-width:0;min-height:calc(100vh - 90px);margin:0 auto;padding:42px 0 110px;display:grid}.loading{color:var(--muted);font-size:15px}.login-layout{grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);align-items:center;gap:clamp(50px,9vw,132px);width:100%;display:grid}.intro{max-width:650px}.eyebrow{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 15px;font-size:12px;font-weight:780}.intro h1,.dashboard h1{color:var(--ink);letter-spacing:-.055em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(50px,6vw,84px);font-weight:500;line-height:.98}.intro-copy,.dashboard-copy{max-width:520px;color:var(--muted);margin:28px 0 0;font-size:17px;line-height:1.65}.login-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffef9db;border:1px solid #fffc;border-radius:24px;gap:22px;padding:36px;display:grid;box-shadow:0 30px 70px #24342e1a,0 2px 8px #24342e0d}.login-card h2{color:var(--ink);letter-spacing:-.035em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:32px;font-weight:500}.login-card label{color:#3f4a46;gap:8px;font-size:13px;font-weight:700;display:grid}.login-card input{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:10px;padding:13px 14px;font-size:15px;transition:border-color .15s,box-shadow .15s}.login-card input:hover{border-color:#aeb8b2}.login-card input:focus{border-color:var(--accent)}.primary-button{color:#fff;background:var(--accent);border:0;border-radius:10px;padding:14px 18px;font-size:14px;font-weight:750;transition:background .15s,transform .15s}.primary-button:hover:not(:disabled){background:var(--accent-dark);transform:translateY(-1px)}.primary-button:disabled{opacity:.65;cursor:wait}.confirm-dialog{width:min(320px,100% - 32px);color:var(--ink);background:#fffef9f5;border:1px solid #fffc;border-radius:20px;margin:auto;padding:28px 24px 22px;box-shadow:0 30px 70px #24342e1f,0 2px 8px #24342e0f}.confirm-dialog::backdrop{background:#17221f52}.confirm-dialog h2{letter-spacing:-.035em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:28px;font-weight:500}.confirm-dialog .form-error{margin:12px 0 0}.confirm-actions{gap:10px;margin-top:22px;display:flex}.confirm-actions .primary-button,.confirm-actions .secondary-button{flex:1;min-height:44px;padding:10px 16px}.form-error,.page-error{color:var(--danger);margin:-8px 0 0;font-size:13px}.dashboard{width:min(820px,100%)}.dashboard h1{font-size:clamp(54px,8vw,92px)}.status-grid{border:1px solid var(--line);background:var(--line);border-radius:17px;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:48px 0 18px;padding:0;display:grid;overflow:hidden}.status-item{background:#fffef9cc;min-width:0;padding:21px 18px}.status-item dt{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:750}.status-item dd{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;overflow:hidden}.db-clock{border:1px solid var(--line);color:var(--muted);background:#fffef98c;border-radius:12px;align-items:center;gap:9px;padding:13px 15px;font-size:12px;display:flex}.db-clock strong{color:var(--ink);margin-left:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:500}.pulse{background:#2d9d73;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #2d9d7321}.page-error{right:24px;bottom:calc(24px + env(safe-area-inset-bottom));background:#fff5f5;border:1px solid #eed0d0;border-radius:10px;max-width:calc(100% - 48px);padding:12px 14px;position:fixed;box-shadow:0 10px 30px #64141414}.journal-content{width:min(560px,100% - 48px);padding:8px 0 calc(36px + env(safe-area-inset-bottom));place-items:start stretch}.journal-home,.day-page,.search-page{width:100%;min-width:0}.calendar-nav{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.calendar-nav h1{min-width:0;color:var(--ink);letter-spacing:-.04em;text-align:center;flex:1;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(28px,7vw,40px);font-weight:500}.icon-button,.plus-button{width:44px;height:44px;color:var(--ink);background:#fffef9cc;border:0;border-radius:50%;place-items:center;font-size:22px;line-height:1;display:grid;box-shadow:0 8px 20px #24342e14}.plus-button{color:#fff;background:var(--accent);width:56px;height:56px;font-size:32px;box-shadow:0 10px 24px #176b553d}.calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px 2px;display:grid}.calendar-weekday{color:var(--muted);letter-spacing:.02em;text-align:center;padding:4px 0 8px;font-size:12px;font-weight:750}.calendar-day{min-height:48px;color:var(--ink);background:0 0;border:0;place-items:center;padding:2px;display:grid}.calendar-num{border:2px solid #0000;border-radius:50%;place-items:center;width:40px;height:40px;font-size:15px;font-weight:650;display:grid}.calendar-day.is-today .calendar-num{background:var(--accent-soft)}.calendar-day.is-open .calendar-num{border-color:#c57a2c}.calendar-day.is-complete .calendar-num{border-color:var(--accent)}.calendar-day.is-outside{color:#9aa39e}.journal-stats{grid-template-columns:1fr 1fr;gap:16px;margin:22px 0 0;display:grid}.journal-stats dt{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:750}.journal-stats dd{color:var(--ink);letter-spacing:-.02em;margin:6px 0 0;font-family:Georgia,Times New Roman,serif;font-size:18px;font-weight:500}.stats-date{color:inherit;font:inherit;text-align:left;background:0 0;border:0;padding:0}.stats-date:hover{color:var(--accent-dark)}.journal-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:28px;display:flex}.toolbar-actions{align-items:center;gap:10px;display:flex}.secondary-button{border:1px solid var(--line);min-height:44px;color:var(--ink);background:#fffef9cc;border-radius:12px;padding:10px 16px;font-size:14px;font-weight:700}.journal-notice,.day-page .form-error,.journal-home .form-error,.search-page .form-error{margin:16px 0 0}.journal-notice{color:var(--muted);font-size:14px}.day-toolbar{justify-content:space-between;align-items:center;min-height:44px;margin-bottom:8px;display:flex}.day-badge{color:var(--accent);letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:780}.day-title,.day-date-input{width:100%;color:var(--ink);letter-spacing:-.04em;overflow-wrap:anywhere;background:0 0;border:0;margin:0 0 22px;padding:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(28px,8vw,42px);font-weight:500}.day-date-label{display:block}.day-date-input{min-width:0;max-width:100%;min-height:48px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.entry-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.entry-row{grid-template-columns:44px minmax(0,1fr);align-items:start;gap:8px;display:grid}.entry-list.has-handles .entry-row{grid-template-columns:44px minmax(0,1fr) 44px}.entry-row.is-dragging{opacity:.65}.entry-check{background:radial-gradient(circle, transparent 0 9px, var(--line) 9px 11px, transparent 11px);border:0;width:44px;height:44px;padding:0}.entry-check.is-checked{background:radial-gradient(circle, var(--accent) 0 5px, transparent 5px 9px, var(--accent) 9px 11px, transparent 11px)}.entry-handle{width:44px;height:44px;color:var(--muted);touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;background:0 0;border:0;padding:0}.entry-handle:active,.entry-row.is-dragging .entry-handle{cursor:grabbing}.entry-handle svg{fill:currentColor;pointer-events:none;margin:0 auto;display:block}.entry-input,.entry-body{width:100%;min-width:0;min-height:44px;color:var(--ink);overflow-wrap:anywhere;resize:none;field-sizing:content;background:0 0;border:0;margin:0;padding:10px 0;font-size:16px;line-height:1.45;overflow:hidden}.entry-row.is-finalized .entry-body{color:#3f4a46}.add-entry{min-height:44px;color:var(--accent);text-align:left;background:0 0;border:0;margin-top:10px;padding:10px 0;font-size:15px;font-weight:750}.day-actions{flex-wrap:wrap;gap:8px 18px;display:flex}.day-actions .add-entry{margin-top:4px}.bulk-form{gap:12px;margin-top:8px;display:grid}.bulk-input{border:1px solid var(--line);width:100%;min-height:132px;color:var(--ink);resize:vertical;background:#fff;border-radius:12px;padding:12px 14px;font-size:16px;line-height:1.45}.bulk-actions{align-items:center;gap:12px;display:flex}.bulk-actions .secondary-button{min-width:88px}.search-field{display:block}.search-input{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--ink);background:0 0;border-radius:0;margin:4px 0 8px;padding:12px 0;font-size:18px}.search-input:focus{border-bottom-color:var(--accent)}.search-input::-webkit-search-cancel-button{appearance:none}.search-results{gap:26px;margin-top:18px;display:grid}.search-day-date{color:var(--ink);text-align:left;background:0 0;border:0;justify-items:start;gap:2px;padding:0;display:grid}.search-day-date:hover .search-day-num{color:var(--accent-dark)}.search-day-num{letter-spacing:-.04em;font-family:Georgia,Times New Roman,serif;font-size:32px;font-weight:500;line-height:1}.search-day-label{color:var(--muted);font-size:13px;font-weight:650}.search-entries{gap:2px;margin:10px 0 0;padding:0;list-style:none;display:grid}.search-entry{color:var(--ink);overflow-wrap:anywhere;white-space:pre-wrap;margin:0;padding:6px 0;font-size:16px;line-height:1.45}.search-entry strong{font-weight:750}@media (width<=760px){.app-header,.content{width:min(100% - 32px,560px)}.app-header{padding:calc(16px + env(safe-area-inset-top)) 0 16px}.content{min-height:auto;padding:56px 0 80px}.journal-content{width:min(100% - 32px,560px);padding:4px 0 calc(28px + env(safe-area-inset-bottom))}.login-layout{grid-template-columns:1fr;gap:42px}.intro h1{font-size:clamp(45px,14vw,64px)}.intro-copy{margin-top:20px}.login-card{padding:28px 22px}.login-card input{font-size:16px}.dashboard{padding-top:28px}.status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
