/* Shared appearance tokens. Note colors remain independent of these palettes. */
:root {
  --bg:#f7f7f2; --panel:#ffffff; --ink:#29372f; --muted:#59685f; --line:#d4ddd3;
  --green:#3c624c; --on-accent:#ffffff; --sidebar:#edf1e8; --soft:#e8eee4;
  --serif:Georgia,'Times New Roman',serif;
  font-size:18px; color-scheme:light;
}
:root[data-palette="ocean"] {--bg:#f3f7fa;--sidebar:#e9f0f5;--soft:#e3edf4;--green:#285f83;--ink:#253747;--muted:#526878;--line:#cfdde7}
:root[data-palette="lavender"] {--bg:#f8f5fa;--sidebar:#f0ebf5;--soft:#ece5f2;--green:#71518c;--ink:#3d3048;--muted:#6b5b79;--line:#dfd4e6}
:root[data-palette="clay"] {--bg:#faf6f0;--sidebar:#f3ebe1;--soft:#f0e5d8;--green:#89583d;--ink:#44342a;--muted:#776251;--line:#e2d4c4}
:root[data-scheme="dark"] {--bg:#171c1a;--panel:#212924;--sidebar:#1c241f;--soft:#2c3730;--ink:#eef3ee;--muted:#b4c3b7;--line:#405046;--green:#a2cfb1;--on-accent:#14271b;color-scheme:dark}
:root[data-scheme="dark"][data-palette="ocean"] {--bg:#151c23;--panel:#1e2933;--sidebar:#19222b;--soft:#293947;--ink:#edf4fa;--muted:#b2c4d2;--line:#3c5263;--green:#9dcaed;--on-accent:#142635}
:root[data-scheme="dark"][data-palette="lavender"] {--bg:#1d1823;--panel:#292231;--sidebar:#221c29;--soft:#382d43;--ink:#f5eef9;--muted:#c8b7d4;--line:#53415f;--green:#d4b5ed;--on-accent:#2c1b3b}
:root[data-scheme="dark"][data-palette="clay"] {--bg:#211a16;--panel:#2d241e;--sidebar:#271f19;--soft:#3d3026;--ink:#faf0e8;--muted:#d1bcaa;--line:#594636;--green:#e8bc95;--on-accent:#362214}
:root[data-text-size="large"] {font-size:20px}
:root[data-text-size="largest"] {font-size:22px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:1rem}button,input,select{font:inherit}button,a,input,select,[contenteditable]{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:3px}svg{width:19px;height:19px;vertical-align:middle;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}#app{display:flex;min-height:100vh}.sidebar{width:238px;background:var(--sidebar);border-right:1px solid var(--soft);padding:35px 23px 20px;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;z-index:20}.brand{font-family:var(--serif);font-size:2.25rem;font-weight:bold;letter-spacing:-2px;color:var(--green);text-decoration:none;display:flex;align-items:center;margin:0 13px 37px}.brand-mark{font-size:1.9375rem;background:var(--green);border-radius:12px;width:35px;height:38px;color:var(--panel);line-height:31px;text-align:center;letter-spacing:-5px;margin-right:10px;transform:rotate(-5deg)}.brand-mark span{font-size:1.25rem;color:var(--muted)}.brand-dot{color:var(--green)}.workspace{display:flex;gap:11px;align-items:center;margin:0 2px 33px}.avatar{border-radius:50%;width:36px;height:36px;background:var(--line);display:grid;place-items:center;font-family:var(--serif);font-size:1.125rem}.workspace strong{font-size:1rem;font-weight:600}.workspace small{display:block;color:var(--muted);font-size:0.875rem;margin-top:5px}.workspace-lock{margin-left:auto;color:var(--muted)}.workspace-lock svg{width:14px}.nav-caption{font-size:0.8125rem;letter-spacing:1.5px;color:var(--muted);font-weight:600;margin:0 13px 15px}.nav-item{width:100%;border:0;background:transparent;display:flex;gap:12px;align-items:center;padding:12px 13px;border-radius:7px;text-align:left;font-size:1rem;margin-bottom:5px;color:var(--muted)}.nav-item.active{color:var(--green);background:var(--line);font-weight:600}.nav-item:hover{background:var(--soft)}.nav-item svg{width:17px;height:17px}.count{margin-left:auto;background:var(--line);border-radius:4px;min-width:20px;text-align:center;padding:2px;font-size:0.875rem}.category-heading{display:flex;align-items:center;justify-content:space-between;margin-top:31px}.category-heading .nav-caption{margin-bottom:0}.icon-btn{border:0;background:transparent;display:inline-grid;place-items:center;min-width:30px;min-height:30px;border-radius:5px;font-size:1.375rem;line-height:1}.icon-btn:hover{background:var(--soft)}.category-item{border:0;background:none;width:100%;display:flex;gap:11px;align-items:center;padding:12px 13px;font-size:1rem;color:var(--muted);text-align:left;border-radius:6px}.category-item:hover,.category-item.active{background:var(--soft)}.category-dot{width:8px;height:8px;flex-shrink:0;border-radius:50%}.category-count{margin-left:auto;font-size:0.875rem;color:var(--muted)}.sidebar-bottom{margin-top:auto;padding-top:30px}.quiet-card{padding:20px 18px;border:1px solid var(--line);border-radius:8px;margin-bottom:25px;position:relative}.quiet-card>span{position:absolute;right:16px;top:19px;color:var(--muted);transform:rotate(-20deg)}.quiet-card p{font:italic 1.0625rem/1.6 var(--serif);margin:0 0 10px;color:var(--muted)}.quiet-card small{font-size:0.8125rem;color:var(--muted)}.sidebar-bottom .nav-item{font-size:0.9375rem}.privacy{border-top:1px solid var(--line);padding-top:18px;margin-top:15px;font-size:0.8125rem;color:var(--muted);display:flex;gap:7px;align-items:center}.status-dot{display:inline-block;width:5px;height:5px;background:var(--muted);border-radius:50%;vertical-align:middle}main{margin-left:238px;width:calc(100% - 238px)}.topbar{height:77px;display:flex;align-items:center;justify-content:space-between;padding:0 43px;border-bottom:1px solid var(--line);font-size:0.875rem;color:var(--muted)}.topbar>span span{padding:0 12px;color:var(--muted)}.topbar-right{display:flex;align-items:center;gap:22px}.encrypted{color:var(--muted);display:flex;align-items:center;gap:6px}.encrypted svg{width:13px;height:13px}#today-label{color:var(--muted)}#mobile-menu{display:none}.main-content{max-width:1450px;padding:43px 43px 20px;margin:auto}.welcome{display:flex;align-items:center;justify-content:space-between;margin-bottom:38px}.eyebrow{font-size:0.8125rem;font-weight:600;color:var(--muted);letter-spacing:1.7px}.tiny-sun{font-size:1.0625rem;margin-right:5px;color:var(--muted)}.welcome h1{font-family:var(--serif);font-weight:400;font-size:2.4375rem;letter-spacing:-1.1px;margin:13px 0 10px}.welcome h1>span{color:var(--green)}.welcome p{font-size:1rem;color:var(--muted);margin:0}.primary-btn{display:flex;justify-content:center;align-items:center;gap:12px;border:1px solid var(--green);border-radius:6px;background:var(--green);color:var(--panel);padding:12px 17px;font-size:0.9375rem;box-shadow:0 3px 6px #31452b0c}.primary-btn:hover{background:var(--green)}.primary-btn>span{font-size:1.125rem;font-weight:300}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}h2{font-size:1rem;font-weight:600;margin:0}.soft-badge{font-family:inherit;font-size:0.8125rem;color:var(--muted);font-weight:400;background:var(--soft);border-radius:4px;padding:4px 7px;margin-left:10px}.range-control{display:flex;gap:3px;font-size:0.875rem}.range-control button{border:0;background:none;color:var(--muted);padding:6px 11px;border-radius:4px}.range-control button.selected{background:var(--soft);color:var(--ink)}.upcoming{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:36px;min-height:166px}.sticky{position:relative;padding:20px 21px 16px;min-height:166px;text-align:left;border:0;border-radius:2px 2px 8px 2px;color:var(--ink);box-shadow:1px 4px 5px #373f3010;transition:transform .18s;overflow:hidden}.sticky:hover{transform:translateY(-4px)}.sticky:before{content:'';position:absolute;top:0;left:38%;width:24%;height:14px;background:#ffffff50;transform:rotate(-3deg)}.sticky:after{content:'';position:absolute;right:0;bottom:0;width:22px;height:22px;background:linear-gradient(135deg,#ffffff00 50%,#ffffff65 51%)}.sticky-top{display:flex;justify-content:space-between;gap:8px;font-size:0.8125rem;color:var(--ink);margin-bottom:17px}.sticky h3{font-size:1.0625rem;font-weight:500;margin:0 0 7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sticky-description{font-size:0.875rem;opacity:.65;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:90%;margin:0 0 20px}.countdown{font-size:0.875rem;padding-top:11px;border-top:1px dashed #5a634125;display:flex;align-items:center;gap:6px}.countdown svg{width:12px;height:12px}.countdown strong{font-weight:600}.empty-upcoming{grid-column:1/-1;background:var(--soft);border:1px dashed var(--line);border-radius:8px;padding:24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.empty-upcoming .empty-art{display:flex;gap:8px;align-items:center;flex-shrink:0;padding:6px 22px}.empty-art span{width:43px;height:54px;background:var(--line);border-radius:2px;transform:rotate(-12deg);box-shadow:0 4px 5px #3344220a;display:grid;place-items:center;font:1.4375rem var(--serif);color:var(--muted)}.empty-art span+span{background:var(--line);transform:rotate(8deg);margin-left:-20px;margin-top:15px}.empty-upcoming h3{font:1.375rem var(--serif);margin:0 0 9px}.empty-upcoming p{font-size:0.9375rem;color:var(--muted);margin:0;line-height:1.7}.empty-upcoming button{margin-left:auto;flex-shrink:0}.secondary-btn{padding:10px 14px;border:1px solid var(--line);border-radius:5px;background:transparent;font-size:0.9375rem;color:var(--ink)}.secondary-btn:hover{background:var(--soft)}.calendar-section{background:var(--panel);border:1px solid var(--soft);border-radius:9px;overflow:hidden}.calendar-toolbar{padding:21px 22px;display:flex;align-items:center;justify-content:space-between}.calendar-title{display:flex;align-items:center;gap:11px}.calendar-title>span{color:var(--muted)}.calendar-title svg{width:16px;height:16px}.calendar-title h2{font-size:1.0625rem;font-weight:500}.period-arrows{display:flex;margin-left:7px;gap:1px}.period-arrows button{font-size:1.1875rem;min-width:24px;min-height:24px;color:var(--muted)}.today-btn{border:1px solid var(--soft);background:var(--panel);border-radius:4px;padding:6px 11px;font-size:0.875rem;color:var(--muted)}.view-control{background:var(--soft);padding:3px;border-radius:6px;display:flex}.view-control button{font-size:0.875rem;border:0;background:transparent;color:var(--muted);padding:7px 15px;border-radius:4px}.view-control button.selected{background:var(--panel);color:var(--ink);box-shadow:0 1px 4px #35432b12}.weekday-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:var(--panel);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.weekday-row>div{padding:12px 0;text-align:center;font-size:0.8125rem;letter-spacing:1px;color:var(--muted)}.weekday-row>div:nth-child(n+6){color:var(--muted)}.month-grid,.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.day{min-height:106px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;padding:10px 9px 8px;cursor:pointer;overflow:hidden;background:var(--panel)}.day:nth-child(7n){border-right:0}.day:hover{background:var(--panel)}.day:focus-visible{outline:2px solid var(--green);outline-offset:-2px}.day.outside{background:var(--panel)}.day.outside .day-number{color:var(--muted)}.day-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.day-number{font-size:0.9375rem;width:23px;height:23px;display:inline-grid;place-items:center;color:var(--muted)}.day.current .day-number{background:var(--green);color:var(--panel);border-radius:50%}.day.current{background:var(--panel)}.day-add{font-size:1rem;color:var(--muted);opacity:0}.day:hover .day-add,.day:focus-visible .day-add{opacity:1}.day-note{display:block;width:100%;font-size:0.8125rem;border:0;text-align:left;padding:6px 6px;border-radius:3px;color:var(--ink);margin-bottom:4px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;line-height:1.3}.day-note small{display:block;font-size:0.75rem;color:var(--muted);margin-bottom:3px}.day-more{font-size:0.8125rem;color:var(--muted);padding:2px 4px}.calendar-footer{display:flex;justify-content:space-between;padding:14px 20px;font-size:0.8125rem;color:var(--muted)}.calendar-footer .status-dot{margin-right:6px}.calendar-footer svg{width:12px;height:12px;margin-left:6px}.page-footer{display:flex;justify-content:space-between;margin-top:23px;color:var(--muted);font-size:0.8125rem}.footer-flower{font-size:1.0625rem;margin-left:5px;color:var(--green)}.week-grid .day{min-height:285px}.week-grid .day-note{white-space:normal;font-size:0.9375rem;line-height:1.6;margin-top:9px;padding:10px}.week-date{font-size:0.8125rem;color:var(--muted)}.year-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line)}.mini-month{padding:20px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel);text-align:left}.mini-month:hover{background:var(--panel)}.mini-month h3{font-weight:500;font-size:1rem;margin:0 0 16px}.mini-days{display:grid;grid-template-columns:repeat(7,1fr);gap:7px 3px;text-align:center;font-size:0.8125rem;color:var(--muted)}.mini-days .mini-heading{font-size:0.75rem;color:var(--muted)}.mini-days .has-notes{color:var(--green);font-weight:bold;text-decoration:underline;text-underline-offset:4px}.mini-days .mini-today{background:var(--green);color:var(--panel);border-radius:3px}.notes-toolbar{display:flex;gap:15px;margin-bottom:25px}.notes-toolbar input{max-width:340px}.notes-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.notes-empty{padding:60px 20px;text-align:center;grid-column:1/-1;color:var(--muted)}.filter-label{font-size:0.9375rem;color:var(--muted)}.note-preview{white-space:pre-wrap;max-height:100px;overflow:hidden;line-height:1.7;font-size:1rem;margin-bottom:20px}.note-date-label{font-size:0.875rem;opacity:.6}dialog{border:1px solid var(--line);border-radius:14px;padding:30px;background:var(--panel);color:var(--ink);width:min(530px,calc(100% - 28px));box-shadow:0 24px 100px #1e332f25;max-height:90dvh;overflow:auto}dialog::backdrop{background:#253d3245;backdrop-filter:blur(5px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.dialog-heading h2{font:1.5625rem var(--serif);margin:6px 0 0}.dialog-heading .icon-btn{color:var(--muted)}.dialog-heading .eyebrow{font-size:0.75rem}label{display:block;font-size:0.9375rem;color:var(--muted);margin-bottom:17px}input:not([type=checkbox]),select{width:100%;padding:11px 12px;border:1px solid var(--line);background:var(--panel);border-radius:5px;color:var(--ink);margin-top:7px;outline:none;min-width:0}input:focus,select:focus,[contenteditable]:focus{border-color:var(--green);box-shadow:0 0 0 3px #94ac7915}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.editor-label,.color-label{font-size:0.9375rem;color:var(--muted);margin:2px 0 10px}.editor-label span,.color-label small{font-size:0.8125rem;color:var(--muted);float:right}.editor-toolbar{display:flex;gap:5px;border:1px solid var(--line);border-bottom:0;padding:6px;background:var(--soft);border-radius:5px 5px 0 0}.editor-toolbar button{width:30px;height:26px;border:0;background:none;border-radius:3px;font-size:1rem}.editor-toolbar button:hover{background:var(--line)}.editor-toolbar>span{border-right:1px solid var(--line);margin:4px 5px}#note-body{min-height:120px;max-height:250px;overflow:auto;border:1px solid var(--line);border-radius:0 0 5px 5px;padding:12px;background:var(--panel);outline:none;line-height:1.7;font-size:1rem;margin-bottom:18px;word-break:break-word}#note-body:empty:before{content:attr(data-placeholder);color:var(--muted);pointer-events:none}.color-options{display:flex;gap:11px;margin-bottom:22px}.color-option{width:25px;height:25px;border:2px solid transparent;border-radius:50%;outline:0}.color-option.selected{outline:1px solid var(--green);outline-offset:3px}.checkbox-row{display:flex;align-items:center;gap:8px;font-size:0.9375rem}.checkbox-row input{accent-color:var(--green)}.form-hint{font-size:0.875rem;line-height:1.7;color:var(--muted)}.dialog-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:24px}.danger-btn{color:var(--muted);background:none;border:0;font-size:0.9375rem;margin-right:auto;padding:8px 0}.error{font-size:0.9375rem;color:var(--muted);line-height:1.5}.error:empty{display:none}.unlock-dialog{text-align:center;width:min(420px,calc(100% - 28px));padding:35px}.unlock-brand{font:bold 2.0625rem var(--serif);letter-spacing:-1px;color:var(--green);margin-bottom:22px}.unlock-brand span{color:var(--green)}.unlock-symbol{display:grid;place-items:center;width:44px;height:44px;background:var(--soft);border-radius:50%;margin:0 auto 20px;color:var(--green)}.unlock-dialog h2{font:1.6875rem var(--serif)}.unlock-dialog>p{font-size:1rem;line-height:1.8;color:var(--muted);margin:14px 0 23px}.unlock-dialog label{text-align:left}.unlock-dialog .primary-btn{width:100%;margin-top:20px}.unlock-dialog .unlock-footnote{font-size:0.875rem;margin-bottom:0}.settings-copy,.setting-block p{font-size:1rem;color:var(--muted);line-height:1.9}.setting-block{border-top:1px solid var(--line);padding:18px 0}.setting-block h3{font-size:1rem;font-weight:500;margin:0}.file-label{display:inline-block;cursor:pointer;margin-bottom:0}#settings-status{font-size:0.9375rem;color:var(--muted)}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,15px);padding:12px 22px;background:var(--green);color:var(--on-accent);border-radius:8px;box-shadow:0 5px 30px #25352425;z-index:100;font-size:1rem;opacity:0;pointer-events:none;transition:.2s;max-width:90vw;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}[hidden]{display:none!important}
@media(min-width:1500px){.main-content{padding-top:55px}.day{min-height:125px}.upcoming{min-height:185px}.sticky{min-height:185px}}
@media(max-width:1150px){.sidebar{width:205px;padding:30px 16px 20px}main{margin-left:205px;width:calc(100% - 205px)}.main-content{padding:32px 25px 20px}.topbar{padding:0 25px}.welcome h1{font-size:2rem}.sticky{padding:19px 15px 15px}.year-grid{grid-template-columns:repeat(3,1fr)}.day{padding:8px 5px;min-height:100px}.calendar-title{gap:7px}.calendar-title h2{font-size:1rem}.calendar-footer{font-size:0.75rem}.empty-upcoming .empty-art{padding:6px}.empty-upcoming h3{font-size:1.25rem}}
@media(max-width:800px){.sidebar{width:180px;padding:27px 12px 15px}.brand{font-size:1.875rem;margin-left:9px}.brand-mark{width:30px;height:33px;font-size:1.6875rem}.workspace{gap:7px}.workspace-lock{display:none}main{margin-left:180px;width:calc(100% - 180px)}.main-content{padding:28px 20px 20px}.topbar{padding:0 20px}.encrypted{display:none}.welcome{align-items:flex-start;gap:12px}.welcome h1{font-size:1.8125rem}.welcome p{font-size:0.9375rem;line-height:1.8;max-width:260px}.welcome>.primary-btn{font-size:0.875rem;gap:7px;white-space:nowrap;margin-top:29px;padding:10px}.upcoming{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.calendar-toolbar{padding:16px 12px;gap:10px;flex-wrap:wrap}.view-control button{padding:6px 10px}.calendar-footer>span+span{display:none}.weekday-row>div{font-size:0.75rem;letter-spacing:0}.day-note{font-size:0.75rem;padding:4px}.day{min-height:90px}.empty-upcoming{padding:20px;flex-wrap:wrap}.empty-upcoming .empty-art{display:none}.empty-upcoming button{margin-left:0}.page-footer>span+span{display:none}.year-grid{grid-template-columns:repeat(2,1fr)}.notes-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quiet-card{padding:15px 12px}.quiet-card p{font-size:1rem}.privacy{font-size:0.75rem}.day-number{font-size:0.875rem}.week-date{display:none}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:transform .2s;width:220px;box-shadow:15px 0 40px #25352410}.sidebar.open{transform:translateX(0)}main{margin-left:0;width:100%}.topbar{height:61px;padding:0 19px}.topbar>span{font-size:0.8125rem}.topbar>span span{padding:0 7px}.topbar-right{gap:10px}#today-label{display:none}#mobile-menu{display:grid}.main-content{padding:29px 17px 20px}.welcome{margin-bottom:28px}.eyebrow{font-size:0.75rem;letter-spacing:1.3px}.welcome h1{font-size:1.8125rem;margin-top:10px;letter-spacing:-.8px}.welcome p{max-width:210px;font-size:0.875rem}.welcome>.primary-btn{font-size:0.8125rem;padding:8px;margin-top:32px;gap:4px}.welcome>.primary-btn>span{font-size:1.0625rem}.section-heading h2{font-size:1rem}.soft-badge{font-size:0.75rem;margin-left:5px}.upcoming{gap:11px;margin-bottom:27px}.sticky{min-height:160px;padding:19px 12px 14px}.sticky-top{font-size:0.75rem;margin-bottom:16px}.sticky h3{font-size:1rem}.sticky-description{font-size:0.8125rem;margin-bottom:17px}.countdown{font-size:0.8125rem;gap:4px}.calendar-title h2{font-size:1rem}.calendar-title>span{display:none}.calendar-toolbar{padding:13px 10px;row-gap:11px}.calendar-title{gap:8px}.view-control{margin-left:auto}.view-control button{padding:6px 10px}.calendar-toolbar .today-btn{padding:5px 8px}.period-arrows{margin-left:0}.day{min-height:86px;padding:7px 3px}.day-top{margin-bottom:5px}.day-number{width:21px;height:21px}.day-add{display:none}.day-note{font-size:0.75rem;padding:4px 3px}.day-note small{font-size:0.75rem}.weekday-row>div{font-size:0.75rem;padding:10px 0}.calendar-footer{padding:12px}.page-footer{font-size:0.75rem;margin-top:19px}.empty-upcoming{min-height:160px;padding:20px}.empty-upcoming h3{font-size:1.3125rem}.empty-upcoming p{font-size:0.875rem}.empty-upcoming button{padding:7px 10px;font-size:0.875rem}.week-grid .day{min-height:210px}.week-grid .day-note{font-size:0.8125rem;padding:6px 3px;word-break:break-word}.mini-month{padding:14px}.mini-days{gap:8px 2px}.notes-grid{grid-template-columns:1fr 1fr}.notes-grid .sticky{padding:18px 12px}.dialog-heading h2{font-size:1.375rem}dialog{padding:23px}.form-row{gap:12px}.dialog-actions{gap:8px}.unlock-dialog{padding:30px}.calendar-title .icon-btn{min-width:21px}.notes-toolbar input{width:65%}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.demo-button{background:none;border:0;color:var(--green);font-size:0.9375rem;text-decoration:underline;text-underline-offset:4px;margin-top:19px;padding:5px}.demo-banner{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--line);background:var(--soft);color:var(--muted);padding:10px 14px;font-size:0.875rem;border-radius:6px;margin-bottom:23px}.demo-banner button{border:0;background:none;text-decoration:underline;color:inherit;font-size:0.875rem;white-space:nowrap}

.upcoming.has-notes{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - 36px)/3);overflow-x:auto;padding:3px 0 9px;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.upcoming.has-notes .sticky{scroll-snap-align:start}
@media(max-width:1000px){.upcoming.has-notes{grid-auto-columns:calc((100% - 12px)/2)}}
@media(max-width:420px){.upcoming.has-notes{grid-auto-columns:78%}.demo-banner{font-size:0.8125rem}.demo-banner button{font-size:0.8125rem}}

.cell-date{font-size:0.75rem;color:var(--muted);white-space:nowrap;margin-left:auto;margin-right:4px}.day-add{position:absolute;right:6px;top:36px}.day-top{min-height:23px}@media(max-width:1000px){.cell-date{font-size:0.75rem;margin:0}.day-top{flex-wrap:wrap;gap:2px}.cell-date{width:100%;padding-left:4px}}

.sync-status{border:1px solid var(--line);background:var(--soft);color:var(--green);border-radius:5px;padding:6px 9px;font-size:0.8125rem;white-space:nowrap}.sync-status[data-state="error"]{background:var(--soft);color:var(--muted)}.sync-status[data-state="syncing"]{background:var(--soft);color:var(--muted)}.conflict-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 15px;margin-bottom:18px;background:var(--soft);border:1px solid var(--line);border-radius:6px;font-size:0.9375rem;color:var(--ink)}.conflict-banner button{border:0;background:none;color:inherit;text-decoration:underline;font-size:0.9375rem}.setup-link{color:var(--green);font-size:0.9375rem;margin-left:13px}.drive-status-box{background:var(--soft);padding:16px;border-radius:7px;margin:22px 0 15px}.drive-status-box strong{font-size:1rem;font-weight:500}.drive-status-box p{font-size:0.9375rem;line-height:1.8;color:var(--muted);margin:7px 0 0}.drive-actions{display:flex;gap:9px;flex-wrap:wrap}#drive-vaults{border-top:1px solid var(--line);padding-top:20px;margin-top:20px}.conflict-group{border-top:1px solid var(--line);padding:18px 0}.conflict-group h3{font-size:1rem;font-weight:500}.conflict-version{padding:14px;margin:10px 0;background:var(--soft);border-radius:6px}.conflict-version p{font-size:0.9375rem;white-space:pre-wrap;overflow-wrap:anywhere;max-height:150px;overflow:auto;line-height:1.8}.conflict-version small{font-size:0.875rem;color:var(--muted)}.conflict-version h4{font-size:1rem;margin:8px 0}.conflict-version .secondary-btn{margin-top:9px}.settings-copy+.setting-block .secondary-btn{margin-right:8px}#unlock-dialog .demo-button{margin-top:13px}@media(max-width:760px){.topbar-right{gap:6px}.sync-status{font-size:0.75rem;padding:6px}.conflict-banner,.conflict-banner button{font-size:0.875rem}.topbar .encrypted{display:none}}
.help-page{max-width:780px;padding:45px 25px 70px;margin:0 auto}.help-page>.eyebrow{margin-top:35px}.help-page h1{font:2.25rem/1.2 var(--serif);font-weight:400;margin:20px 0}.help-page h2{font:1.375rem var(--serif);margin:30px 0 14px}.help-page p,.help-page li{font-size:1rem;line-height:1.9;color:var(--muted)}.help-page li{margin-bottom:10px}.help-page a{color:var(--green);text-underline-offset:3px}.help-page code{font-size:0.9375rem;background:var(--soft);padding:3px 5px;border-radius:4px;overflow-wrap:anywhere}.help-page .help-sources{font-size:0.9375rem;border-top:1px solid var(--line);padding-top:20px}

/* Readable controls and layouts at every text size. */
body{line-height:1.55;-webkit-text-size-adjust:100%}
button,input,select{line-height:1.4}
button{touch-action:manipulation}
.primary-btn,.brand-mark,#toast{color:var(--on-accent)}
.primary-btn:hover{background:var(--green);filter:brightness(.94)}
.sidebar{width:280px;overflow-y:auto;overscroll-behavior:contain;padding:28px 22px 20px}
.sidebar>*{flex-shrink:0}
main{margin-left:280px;width:calc(100% - 280px)}
.brand{margin-bottom:28px}.workspace{margin-bottom:25px}
.nav-item,.category-item,.workspace strong{font-size:1rem}
.nav-caption{font-size:.8125rem;letter-spacing:.1em}
.nav-item,.category-item{min-height:46px;padding:11px 12px}
.nav-item.active,.category-item.active{background:var(--soft);color:var(--green)}
.nav-item:hover,.category-item:hover,.secondary-btn:hover,.icon-btn:hover{background:var(--soft)}
.sidebar-bottom .nav-item{font-size:1rem}
.topbar{height:auto;min-height:80px;padding:16px 30px;gap:14px;flex-wrap:wrap;font-size:.875rem}
.topbar-right{gap:14px;flex-wrap:wrap}.encrypted{color:var(--muted)}
.main-content{padding:36px 30px 24px}
.welcome{gap:24px;flex-wrap:wrap}.welcome p{font-size:1rem;color:var(--muted);line-height:1.65;max-width:unset}
.welcome>.primary-btn{font-size:1rem;margin-top:0;padding:12px 18px}
h2,.section-heading h2{font-size:1.125rem}
.primary-btn,.secondary-btn{font-size:1rem;min-height:44px}
.icon-btn{min-width:40px;min-height:40px}
.range-control button,.view-control button,.today-btn{font-size:.875rem;min-height:40px}
.sync-status{font-size:.875rem;min-height:40px;white-space:normal;text-align:left}
.calendar-toolbar{gap:14px;flex-wrap:wrap;padding:20px}
.calendar-title{gap:10px;flex-wrap:wrap}.calendar-title h2{font-size:1.125rem;white-space:nowrap}
.period-arrows button{min-width:36px;min-height:40px}
#calendar{overflow-x:auto;overscroll-behavior-x:contain}
.month-grid,.week-grid,.weekday-row{min-width:720px}
.day{min-height:132px;padding:10px 8px}.day-number{font-size:1rem;min-width:30px;height:30px}
.cell-date{font-size:.75rem;line-height:1.4;white-space:normal;color:var(--muted)}
.day-top{flex-wrap:wrap;gap:4px}.day-more{font-size:.8125rem}
.day-note,.day-note small{font-size:.8125rem;line-height:1.5}
.day-note{padding:7px 6px}.week-grid .day-note{font-size:.875rem}
.weekday-row>div{font-size:.8125rem;color:var(--muted)}
.day.outside .day-number{color:var(--muted)}
.day.current{background:var(--soft)}.day.current .day-number,.mini-days .mini-today{color:var(--on-accent)}
.mini-days{font-size:.875rem;gap:9px 4px}.mini-days .mini-heading{font-size:.75rem;color:var(--muted)}
.mini-month h3{font-size:1rem}.year-grid{min-width:560px}
.sticky{color:#29372f;padding:22px;min-height:200px}
.sticky-top{color:#46523e;font-size:.8125rem;flex-wrap:wrap;line-height:1.5}
.sticky h3{font-size:1.125rem;font-weight:600;line-height:1.45;white-space:normal;overflow-wrap:anywhere}
.sticky-description,.note-preview{font-size:.9375rem;opacity:1;color:#46523e}
.note-date-label{font-size:.8125rem;opacity:1;color:#46523e}
.countdown{font-size:.875rem}.day-note,.day-note small{color:#34432f}
.empty-upcoming p,.settings-copy,.setting-block p,.drive-status-box p{font-size:1rem;color:var(--muted);line-height:1.7}
.soft-badge{color:var(--muted)}
dialog{width:min(640px,calc(100% - 32px));padding:30px;background:var(--panel);border-color:var(--line)}
.unlock-dialog{width:min(480px,calc(100% - 32px))}
.unlock-dialog>p{font-size:1rem;color:var(--muted)}
.unlock-dialog .unlock-footnote,.form-hint{font-size:.875rem;color:var(--muted)}
.dialog-heading{gap:16px;align-items:flex-start}.dialog-heading h2{font-size:1.625rem;line-height:1.3}
.dialog-heading .icon-btn{flex-shrink:0}
label,.editor-label,.color-label,.checkbox-row{font-size:.9375rem;color:var(--ink)}
input:not([type=checkbox]),select{font-size:1rem;background:var(--panel);color:var(--ink);min-height:48px;border-color:var(--line)}
input::placeholder,#note-body:empty:before{color:var(--muted);opacity:1}
#note-body{font-size:1rem;background:var(--panel);color:var(--ink);min-height:150px}
.editor-toolbar{flex-wrap:wrap;background:var(--soft)}.editor-toolbar button{width:40px;height:40px;font-size:1rem}
.setting-block h3{font-size:1.125rem;font-weight:600}
.setting-block .secondary-btn{margin:4px 6px 4px 0}
.demo-button,.setup-link{font-size:.9375rem;color:var(--green);line-height:1.6}
.error,.danger-btn{color:#aa372e;font-size:.9375rem}
:root[data-scheme="dark"] .error,:root[data-scheme="dark"] .danger-btn{color:#ffa99c}
.sync-status[data-state="error"]{background:var(--soft);color:#aa372e}
:root[data-scheme="dark"] .sync-status[data-state="error"]{color:#ffa99c}
.sync-status[data-state="syncing"]{background:var(--soft);color:var(--green)}
.drive-status-box,.conflict-version,.conflict-banner,.demo-banner{background:var(--soft);color:var(--ink)}
.drive-status-box strong{font-size:1.0625rem;font-weight:600}
.demo-banner{font-size:.875rem;flex-wrap:wrap}.demo-banner button{font-size:.8755rem}
.form-row>label{min-width:0}.palette-label{display:block;font-size:.9375rem;margin-bottom:12px}
.appearance-palettes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.appearance-palettes button{display:flex;align-items:center;gap:10px;text-align:left;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);min-height:52px;font-size:.9375rem}
.appearance-palettes button[aria-pressed="true"]{border:2px solid var(--green);padding:11px;background:var(--soft);font-weight:600}
.palette-swatch{width:26px;height:26px;flex-shrink:0;border-radius:50%;border:1px solid #ffffff55}
.palette-swatch.sage{background:#3c624c}.palette-swatch.ocean{background:#285f83}.palette-swatch.lavender{background:#71518c}.palette-swatch.clay{background:#89583d}
.appearance-status:empty{display:none}.setting-block .appearance-status{font-size:.8125rem;margin-bottom:0}
:root[data-scheme="dark"] .palette-swatch.sage{background:#a2cfb1}
:root[data-scheme="dark"] .palette-swatch.ocean{background:#9dcaed}
:root[data-scheme="dark"] .palette-swatch.lavender{background:#d4b5ed}
:root[data-scheme="dark"] .palette-swatch.clay{background:#e8bc95}
@media(min-width:1100px){.unlock-dialog{width:min(520px,calc(100% - 32px))}}
@media(max-width:1150px){.sidebar{width:250px;padding:24px 16px}main{margin-left:250px;width:calc(100% - 250px)}.main-content{padding:28px 24px}.topbar{padding:14px 24px}.year-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1000px){.sidebar{transform:translateX(-100%);width:min(300px,85vw);box-shadow:15px 0 40px #00000020}.sidebar.open{transform:translateX(0)}main{margin-left:0;width:100%}#mobile-menu{display:grid}.encrypted{display:none}.sidebar .workspace-lock{display:block}.sidebar .privacy{font-size:.75rem}.cell-date{padding:0;width:auto}.topbar>span{font-size:.8125rem}}
@media(max-width:760px){
 :root{font-size:16px}:root[data-text-size="large"]{font-size:18px}:root[data-text-size="largest"]{font-size:20px}
 .main-content{padding:24px 16px}.topbar{min-height:66px;padding:12px 16px}.topbar>span{display:none}.topbar-right{width:100%;justify-content:space-between;gap:8px}
 .welcome{gap:18px}.welcome h1{font-size:1.875rem}.welcome>.primary-btn{font-size:.9375rem;padding:10px 14px;margin:0}.welcome p{font-size:1rem;max-width:unset}
 .upcoming.has-notes{grid-auto-columns:88%}.sticky{padding:20px;min-height:195px}.sticky h3{font-size:1.125rem}.sticky-top{font-size:.8125rem}.sticky-description,.countdown{font-size:.875rem}
 .calendar-title h2{font-size:1.0625rem}.calendar-title .icon-btn{min-width:36px}.calendar-toolbar{padding:14px;gap:12px}.view-control{margin-left:0}
 .notes-grid{grid-template-columns:1fr}.notes-grid .sticky{padding:20px}.notes-toolbar{flex-wrap:wrap}.notes-toolbar input{width:100%;max-width:unset}
 .form-row{grid-template-columns:1fr}.dialog-heading h2{font-size:1.5rem}dialog{padding:22px;max-height:88dvh}.unlock-dialog{padding:26px}
 .dialog-actions{flex-wrap:wrap}.form-hint{font-size:.875rem}.drive-actions{flex-direction:column;align-items:stretch}.drive-actions button{width:100%}
 .calendar-footer,.page-footer{font-size:.75rem}.year-grid{grid-template-columns:repeat(2,1fr)}
}
.editor-label span,.color-label small{float:none;display:block;margin-top:4px;font-size:.8125rem;color:var(--muted);line-height:1.5}
