:root{--paper:#fbf7f2;--paper-dim:#f3ece4;--ink:#2a2623;--muted:#8a8178;--accent:#c98989;--accent-soft:#f3d6d4;--tab:#e8b4b4;--tab-active:#fbf7f2;--binding:#c9c2b8;--rule:#2a26231f;--bg:#cfc3b4;--desk:#b9ad9c;--shadow:0 1px 0 #ffffff73 inset, 0 10px 18px #3223161a, 0 28px 56px #32201238;--safe-t:env(safe-area-inset-top,0px);--safe-r:env(safe-area-inset-right,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);color:var(--ink);background:var(--bg);font-family:Iowan Old Style,Palatino,Palatino Linotype,Times New Roman,serif}[data-theme=neutral]{--accent:#a89078;--accent-soft:#e6ddd2;--tab:#d4c4b0;--bg:#d5cec4}[data-theme=blue]{--accent:#5d7ea3;--accent-soft:#d5e2ef;--tab:#8fa6c2;--bg:#c9d2dc}[data-theme=dark]{--paper:#2b2825;--paper-dim:#23211e;--ink:#f3ece4;--muted:#b5aaa0;--accent:#d4a5a5;--accent-soft:#4a3c3c;--tab:#5c4a4a;--tab-active:#2b2825;--binding:#6a635c;--rule:#f3ece424;--bg:#161412;--desk:#1b1815}*{box-sizing:border-box}html,body,#root{height:100%;height:var(--app-h,100dvh);max-height:var(--app-h,100dvh);margin:0;overflow:hidden}body{-webkit-tap-highlight-color:transparent;min-height:100dvh;overflow:hidden}button,input,textarea,select{font:inherit;color:inherit}button{background:var(--accent-soft);cursor:pointer;border:0;border-radius:999px;min-width:44px;min-height:44px;padding:.4rem .9rem}button.primary{background:var(--accent);color:#fff}button.ghost,button.tiny{border:1px solid var(--rule);background:0 0;min-width:auto;min-height:36px}button.tiny{padding:.2rem .6rem;font-size:.78rem}button.add-row{margin-top:.4rem}input,textarea{border:0;border-bottom:1px solid var(--rule);background:0 0;width:100%;padding:.35rem 0}textarea{resize:none;line-height:1.45}.boot{background:var(--bg);place-items:center;height:100%;display:grid}.home-screen,.wizard{height:100%;min-height:100%;padding:calc(24px + var(--safe-t)) calc(24px + var(--safe-r)) calc(24px + var(--safe-b)) calc(24px + var(--safe-l));background:radial-gradient(1200px 600px at 20% -10%, var(--accent-soft), transparent 55%), var(--bg);overflow:auto}.home-hero{max-width:720px}.brand{letter-spacing:.28em;text-transform:uppercase;color:var(--accent);font-size:.8rem}.home-hero h1{margin:.2rem 0;font-size:clamp(2.2rem,5vw,3.6rem);font-weight:500}.planner-shelf{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1.2rem;max-width:980px;margin-top:2rem;display:grid}.planner-card{flex-direction:column;gap:.45rem;display:flex}.notebook-thumb{aspect-ratio:3/4;background:var(--paper);box-shadow:var(--shadow);text-align:left;border-left:10px solid var(--tab);border-radius:12px;flex-direction:column;justify-content:flex-end;align-items:flex-start;width:100%;padding:1.1rem;display:flex}.notebook-thumb.new{border-style:dashed;border-left-width:1px}.thumb-year{font-size:1.8rem}.thumb-title{font-size:1rem}.thumb-meta{color:var(--muted);font-size:.85rem}.thumb-actions{gap:.4rem;display:flex}.thumb-rename{border-bottom:1px solid var(--ink);font-size:1rem}button.tiny.danger{color:#8b3a3a;border-color:#8b3a3a}.home-actions{gap:.8rem;margin-top:2rem;display:flex}.file-btn{align-items:center;display:inline-flex}.wizard-card{background:var(--paper);max-width:640px;box-shadow:var(--shadow);border-radius:18px;margin:4vh auto;padding:2rem}.wizard-card.sections{max-width:920px}.wizard-card h1{margin:.2rem 0 .4rem}.wizard-lede{color:var(--muted);margin:0 0 1rem;line-height:1.4}.year-picker{align-items:center;gap:.8rem;display:flex}.year-picker input{text-align:center;width:8rem;font-size:2rem}.choice-row{flex-wrap:wrap;gap:.7rem;display:flex}.choice-row button.active,.chip-row button.active{background:var(--accent);color:#fff}.section-toolbar{justify-content:space-between;align-items:center;gap:.8rem;margin:0 0 1.1rem;display:flex}.section-toolbar p{color:var(--muted);margin:0;font-size:.92rem}.section-toolbar-actions{gap:.4rem;display:flex}.section-group+.section-group{margin-top:1.35rem}.section-group-head h2{margin:0;font-size:1.05rem;font-weight:600}.section-group-head p{color:var(--muted);margin:.15rem 0 .7rem;font-size:.9rem}.section-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;display:grid}.section-tile{text-align:left;border:1px solid var(--rule);background:var(--paper-dim);width:100%;min-width:0;min-height:0;box-shadow:none;border-radius:14px;grid-template-rows:auto auto auto auto;grid-template-columns:1.4rem minmax(0,1fr);align-items:start;gap:.12rem .55rem;padding:.85rem .9rem .8rem;display:grid;position:relative}.section-tile-mark{border:1.5px solid var(--rule);background:var(--paper);width:1.35rem;height:1.35rem;color:var(--accent);border-radius:999px;grid-row:1/span 4;place-items:center;margin-top:.1rem;font-size:.75rem;line-height:1;display:grid}.section-tile.active{background:var(--accent-soft);border-color:var(--accent)}.section-tile.active .section-tile-mark{background:var(--accent);border-color:var(--accent);color:#fff}.section-tile strong{font-size:1rem;font-weight:600;line-height:1.2}.section-tile em{color:var(--accent);letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;font-style:normal}.section-tile-blurb{color:var(--ink);opacity:.88;font-size:.86rem;line-height:1.35}.section-tile small{color:var(--muted);font-size:.78rem}@media (width>=820px){.section-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.wizard-nav{justify-content:space-between;margin-top:1.5rem;display:flex}.text-back{background:0 0}.planner-shell{background:radial-gradient(900px 620px at 50% 42%, #fff3, transparent 58%), linear-gradient(180deg, color-mix(in srgb, var(--bg) 70%, #fff) 0%, var(--desk) 100%);width:100%;min-width:0;max-width:100%;height:100%;min-height:0;display:grid;overflow:hidden}.planner-shell.landscape,.planner-shell.portrait{padding:var(--safe-t) var(--safe-r) var(--safe-b) var(--safe-l);grid-template:"top""main"minmax(0,1fr)"tools"/minmax(0,1fr)}.planner-shell.mobile{grid-template-rows:auto minmax(0,1fr) auto auto;grid-template-areas:"top""main""tools""dock";padding-bottom:0}.planner-shell.mobile .view-tabs,.planner-shell.mobile .nav-right,.planner-shell.mobile .today-btn{display:none}.planner-shell.mobile .pencil-toolbar{margin-bottom:4px}.planner-shell.focus .top-nav{opacity:.15}.planner-shell.focus .top-nav:hover{opacity:1}.top-nav{padding:.35rem max(.7rem, var(--safe-r)) .3rem max(.7rem, var(--safe-l));z-index:40;flex-wrap:nowrap;grid-area:top;align-items:center;gap:.45rem;min-height:0;display:flex;position:relative}.nav-left,.nav-center,.nav-right{flex:none;align-items:center;gap:.28rem;display:flex}.nav-center{margin-left:auto}.nav-right{margin-left:.2rem}.undo-redo{background:color-mix(in srgb, var(--paper) 78%, #fff);border-radius:999px;align-items:center;gap:.2rem;margin-left:.35rem;padding:.12rem;display:flex;box-shadow:inset 0 1px #ffffff73}.undo-redo button{min-width:58px;min-height:36px;font-size:.82rem}.undo-redo button:disabled{opacity:.38}.planner-shell.portrait .nav-center{margin-left:0}.view-tabs{scrollbar-width:none;flex:none;gap:.25rem;padding:.15rem 0;display:flex;overflow-x:auto}.view-tabs::-webkit-scrollbar{display:none}.view-tabs button{background:var(--tab);min-width:max-content;color:var(--ink);white-space:nowrap;border-radius:999px;flex:none;min-height:36px;padding:.4rem .75rem;font-size:.8rem}.section-tabs button{background:var(--tab);width:max-content;min-width:max-content;color:var(--ink);white-space:nowrap;border-radius:999px;flex:none;min-height:36px;padding:.45rem .85rem;font-size:.84rem;line-height:1;transition:background .2s,box-shadow .2s;overflow:visible}.section-tabs button.active,.view-tabs button.active{background:var(--tab-active);box-shadow:0 0 0 1px color-mix(in srgb, var(--ink) 12%, transparent)}.home-btn{background:0 0;flex:none;min-width:max-content;padding:.4rem .7rem;font-size:.84rem}.top-meta{flex-shrink:0;align-items:center;gap:.35rem;font-size:.84rem;display:flex}.title-btn{text-overflow:ellipsis;background:0 0;min-width:0;max-width:9rem;padding:.35rem .55rem;font-size:.84rem;overflow:hidden}.planner-shell.portrait .title-btn,.planner-shell.portrait .title-edit{display:none}.today-btn.active{background:var(--accent);color:#fff}.menu-wrap{flex:none;position:relative}.chrome-menu{z-index:50;background:color-mix(in srgb, var(--paper) 94%, #fff);border:1px solid var(--rule);border-radius:14px;min-width:168px;max-height:min(70vh,420px);padding:.4rem;position:absolute;top:calc(100% + 6px);left:0;overflow:auto}.chrome-menu.right{left:auto;right:0}.pencil-toolbar .chrome-menu{top:auto;bottom:calc(100% + 6px)}.chrome-menu button,.chrome-menu .file-tool{text-align:left;background:0 0;border-radius:10px;width:100%;min-height:40px;display:block}.chrome-menu button.active,.chrome-menu .file-tool.active{background:var(--accent-soft)}.menu-grid{grid-template-columns:repeat(4,1fr);gap:.25rem;margin:.35rem 0;display:grid}.menu-grid button{text-align:center;min-width:0;padding:.35rem .2rem;font-size:.75rem}.menu-row{gap:.25rem;margin-top:.35rem;display:flex}.menu-row button{text-align:center;flex:1}.shell-main{touch-action:none;isolation:isolate;z-index:1;grid-area:main;justify-content:center;align-items:center;min-width:0;min-height:0;padding:.5rem;display:flex;overflow:hidden}.planner-shell.landscape .shell-main{padding:.5rem}.notebook-viewport{touch-action:none;justify-content:center;align-items:center;width:100%;min-width:0;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}.notebook-pan{transform-origin:50%;will-change:transform;justify-content:center;align-items:center;width:100%;max-width:100%;height:100%;max-height:100%;display:flex}.notebook-pan.settling{transition:transform .22s ease-out}.notebook{justify-content:center;align-items:center;gap:0;width:100%;min-width:0;max-width:100%;height:100%;min-height:0;max-height:100%;display:flex;position:relative}.notebook.landscape{align-items:stretch;height:100%}.notebook.portrait{flex-direction:column;width:100%;max-width:100%;height:100%}.binding{z-index:3;pointer-events:none;flex-direction:column;justify-content:space-evenly;align-items:center;width:22px;display:flex}.ring{border:2px solid var(--binding);background:radial-gradient(circle at 35% 30%,#fff,#d7d0c6 42%,#9e958a);border-radius:50%;width:15px;height:15px;box-shadow:inset 0 1px 1px #ffffff80,0 2px 3px #0000002e}[data-theme=dark] .ring{background:linear-gradient(90deg,#4a4540,#6d6660 45%,#4a4540)}.page-frame{flex:auto;place-items:center;width:100%;min-width:0;max-width:100%;height:100%;min-height:0;max-height:100%;display:grid}.page-stage{box-shadow:var(--shadow);background:var(--paper);border-radius:3px;max-width:100%;animation:.55s cubic-bezier(.22,1,.36,1) page-settle;position:relative;overflow:hidden}@keyframes page-settle{0%{opacity:0;transform:translateY(14px)scale(.985)}to{opacity:1;transform:none}}.page-logical{position:relative}.page-paper{background:linear-gradient(180deg, #ffffff47, transparent 26%), var(--paper);color:var(--ink);font-size:var(--page-font,48px);-webkit-overflow-scrolling:touch;padding:52px 56px 60px;line-height:1.28;position:absolute;inset:0;overflow:auto}.page-paper input,.page-paper textarea,.page-paper button,.page-paper select,.page-paper label,.page-paper [data-open],.hit{z-index:6;pointer-events:auto;position:relative}.ink-layer{z-index:2;touch-action:none;position:absolute;inset:0}.ink-canvas{z-index:2;touch-action:none;width:100%;height:100%;position:absolute;inset:0}.ink-canvas.live{z-index:3;pointer-events:none}.ink-textbox{z-index:4;background:color-mix(in srgb, var(--paper) 70%, transparent);border:2px dashed var(--accent);box-sizing:border-box;touch-action:none;cursor:grab;padding:20px 4px 4px;line-height:1.15;position:absolute;overflow:hidden}.ink-textbox textarea{resize:none;width:100%;height:100%;color:inherit;line-height:1.15;font-size:inherit;touch-action:none;background:0 0;border:0;padding:0;overflow:auto}.ink-textbox.active,.ink-textbox.selected{box-shadow:0 0 0 5px color-mix(in srgb, var(--accent) 35%, transparent), 0 0 24px color-mix(in srgb, var(--accent) 65%, transparent);transform-origin:50%;border-style:solid;transform:scale(1.03)}.ink-frame{z-index:3;box-sizing:border-box;border:2px dashed var(--accent);background:color-mix(in srgb, var(--paper) 28%, transparent);touch-action:none;cursor:grab;pointer-events:auto;position:absolute;overflow:visible}.ink-frame.active{border-style:solid}.ink-frame.draft{pointer-events:none;background:color-mix(in srgb, var(--accent) 10%, transparent);border-style:dashed}.ink-frame-canvas{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.ink-layer.drawing .ink-frame,.ink-layer.selecting .ink-frame,.ink-layer.typing .ink-frame{pointer-events:auto}.ink-layer.drawing .ink-textbox{pointer-events:none}.ink-layer.drawing .text-del,.ink-layer.typing .ink-textbox,.ink-layer.selecting .ink-textbox{pointer-events:auto}.box-drag{background:color-mix(in srgb, var(--accent) 28%, var(--paper));cursor:grab;touch-action:none;border-radius:8px;height:16px;position:absolute;top:2px;left:6px;right:48px}.ink-select{z-index:5;border:3px solid var(--accent);box-sizing:border-box;cursor:grab;touch-action:none;background:color-mix(in srgb, var(--accent) 16%, transparent);box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 35%, transparent), 0 0 28px color-mix(in srgb, var(--accent) 70%, transparent);border-radius:8px;animation:1.2s ease-in-out infinite alternate select-glow;position:absolute}@keyframes select-glow{0%{box-shadow:0 0 0 5px color-mix(in srgb, var(--accent) 28%, transparent), 0 0 18px color-mix(in srgb, var(--accent) 50%, transparent)}to{box-shadow:0 0 0 8px color-mix(in srgb, var(--accent) 42%, transparent), 0 0 36px color-mix(in srgb, var(--accent) 80%, transparent)}}.lasso-actions{background:var(--paper);pointer-events:auto;z-index:8;white-space:nowrap;border-radius:999px;gap:6px;padding:6px;display:flex;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 8px 22px #32201238}.ink-select.actions-below .lasso-actions{top:calc(100% + 8px);bottom:auto}.lasso-actions button{min-width:72px;min-height:40px;font-size:.85rem}button.danger{color:#fff;background:#c45b5b}.ink-image{z-index:4;position:absolute;box-shadow:0 8px 24px #00000029}.ink-image img{object-fit:fill;pointer-events:none;width:100%;height:100%}.ink-image.active{outline:3px solid var(--accent);box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 35%, transparent), 0 0 28px color-mix(in srgb, var(--accent) 70%, transparent);transform:scale(1.03)}.ink-image.locked{z-index:1;box-shadow:none;outline:2px dashed color-mix(in srgb, var(--accent) 55%, transparent)}.ink-layer.drawing .ink-image.locked{pointer-events:none;z-index:1;outline:none}.ink-layer.selecting .ink-image.locked,.ink-layer.typing .ink-image.locked{pointer-events:auto;z-index:4}.ink-layer.drawing .ink-image:not(.locked) .img-lock,.ink-layer.drawing .ink-image:not(.locked) .img-del{pointer-events:auto}.img-lock{background:var(--paper);border:1px solid var(--ink);min-width:64px;height:44px;padding:0 .7rem;font-size:.85rem;position:absolute;top:-18px;left:-18px}.ink-image.locked .img-lock{left:auto;right:36px}.img-del{background:var(--paper);border:1px solid var(--ink);width:44px;min-width:44px;height:44px;min-height:44px;padding:0;position:absolute;top:-18px;right:-18px}.img-handle{background:var(--accent);border-radius:4px;width:28px;height:28px;position:absolute;bottom:-10px;right:-10px}.page-dots{flex:none;justify-content:center;gap:.5rem;padding:.35rem;display:flex}.page-dots button{background:var(--binding);border-radius:50%;width:10px;min-width:10px;height:10px;min-height:10px;padding:0}.page-dots button.active{background:var(--accent)}.mobile-dock{z-index:42;margin:0 10px calc(6px + var(--safe-b));background:color-mix(in srgb, var(--paper) 90%, #fff);border-radius:22px;grid-area:dock;grid-template-columns:repeat(5,minmax(0,1fr));gap:.15rem;padding:.28rem;display:grid;position:relative;box-shadow:inset 0 1px #ffffff8c,0 10px 24px #281c1029}.mobile-dock button{letter-spacing:.04em;background:0 0;border-radius:16px;min-width:0;min-height:48px;padding:.35rem .2rem;font-size:.78rem}.mobile-dock button.active{background:var(--accent);color:#fff}.dock-sheet{z-index:70;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.dock-backdrop{background:#1a161247;border-radius:0;min-width:0;min-height:0;position:absolute;inset:0}.dock-card{width:min(520px,100% - 16px);margin:0 8px calc(76px + var(--safe-b));background:color-mix(in srgb, var(--paper) 96%, #fff);border-radius:22px;padding:.55rem .7rem .8rem;position:relative;box-shadow:0 18px 40px #281c103d}.dock-handle{background:var(--rule);border-radius:999px;width:42px;height:4px;margin:.15rem auto .7rem}.dock-label{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin:.7rem .15rem .4rem;font-size:.72rem}.dock-actions,.dock-pages{gap:.35rem;display:grid}.dock-actions{grid-template-columns:repeat(4,minmax(0,1fr))}.dock-actions.quiet{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:.7rem}.dock-pages{grid-template-columns:repeat(2,minmax(0,1fr))}.dock-card button{background:var(--paper-dim);border-radius:14px;min-width:0;min-height:44px;font-size:.86rem}.dock-card button.active{background:var(--accent);color:#fff}.pencil-toolbar{z-index:40;margin:0 10px calc(6px + var(--safe-b));background:color-mix(in srgb, var(--paper) 86%, #fff);border-radius:18px;flex-wrap:wrap;grid-area:tools;justify-content:flex-start;align-items:center;gap:.55rem;padding:.35rem .6rem;display:flex;position:relative;overflow:visible;box-shadow:inset 0 1px #ffffff8c,0 8px 22px #281c1029}.toolbar-group{flex:none;align-items:center;gap:.28rem;display:flex}.toolbar-actions{margin-left:auto}.tool-mods{flex-wrap:wrap;max-width:42rem}.pencil-toolbar button,.pencil-toolbar .file-tool{flex:none;min-width:max-content;min-height:34px;padding:.25rem .58rem;font-size:.8rem;transition:background .18s}.pencil-toolbar button.active{background:var(--accent);color:#fff}.pencil-toolbar .swatch{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border:2px solid #0000;width:28px;min-width:28px;height:28px;min-height:28px;padding:0}.pencil-toolbar .swatch.active{border-color:var(--ink)}.pencil-toolbar .swatch.recent.empty{background:conic-gradient(#ff4d4d,#ffd166,#6fbf73,#64b5f6,#ab47bc,#ff4d4d)}.color-popover{z-index:40;background:color-mix(in srgb, var(--paper) 94%, #fff);touch-action:manipulation;border-radius:18px;max-height:min(70vh,460px);padding:.7rem .75rem .8rem;position:fixed;overflow:auto;box-shadow:0 16px 40px #281c1047}.color-popover-head{align-items:center;gap:.5rem;margin-bottom:.55rem;display:flex}.color-popover-head strong{flex:1;font-size:.92rem}.color-preview{border:1px solid var(--rule);border-radius:50%;flex:none;width:22px;height:22px}.color-grid{grid-template-columns:repeat(8,1fr);gap:.28rem;display:grid}.color-cell{aspect-ratio:1;border:2px solid #0000;width:100%;min-width:0;min-height:0;padding:0}.color-cell.active{border-color:var(--ink)}.any-color{justify-content:space-between;align-items:center;gap:.6rem;margin-top:.7rem;font-size:.85rem;display:flex}.any-color input[type=color]{border:1px solid var(--rule);background:var(--paper);border-radius:10px;width:52px;height:36px;padding:0}.toolbar-sep{background:var(--rule);flex:none;width:1px;height:18px}.width-label{color:var(--ink);white-space:nowrap;flex:none;align-items:center;gap:.4rem;font-size:.75rem;display:flex}.width-copy{align-items:baseline;gap:.28rem;display:inline-flex}.width-copy strong{font-variant-numeric:tabular-nums;font-weight:600}.width-label input[type=range]{accent-color:var(--accent);width:92px;min-width:92px;height:22px}.type-label{font-variant-numeric:tabular-nums}.size-dot{background:var(--ink);border-radius:50%;flex:none;display:inline-block}.zoom-cluster{flex:none;gap:.15rem;display:flex}.zoom-btn{min-width:34px;font-weight:600}.file-tool{background:var(--accent-soft);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.file-tool.active{background:var(--accent);color:#fff}.page-kicker{letter-spacing:.04em;color:color-mix(in srgb, var(--ink) 72%, transparent);margin:0 0 .35em;font-size:1.15em;font-weight:500}.page-kicker.inputish{color:var(--ink);border:0;font-size:1.05em}.lede{color:var(--muted);margin-top:-8px;font-size:.7em}.index-page{height:100%;color:var(--ink);overflow:auto}.index-page h2{color:var(--ink)}.year-page{flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.mini-head{color:var(--muted);letter-spacing:.08em;font-size:.42em}.year-grid{flex:1;grid-template-rows:repeat(4,minmax(0,1fr));grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;min-height:0;display:grid}.year-jumps{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:16px;display:grid}.year-notes{flex:1;min-height:0}.mini-month{text-align:left;background:0 0;border-radius:8px;flex-direction:column;align-items:stretch;width:100%;height:100%;min-height:0;padding:8px;display:flex}.mini-month-title{letter-spacing:.08em;text-align:left;min-width:0;min-height:0;color:var(--ink);background:0 0;border-radius:0;margin-bottom:6px;padding:4px 0;font-size:.55em}.mini-grid{flex-direction:column;flex:1;gap:1px;min-height:0;display:flex}.mini-week{grid-template-columns:repeat(7,minmax(0,1fr)) 1.15em;font-size:.38em;display:grid}.mini-day{text-align:center;color:var(--ink);padding:2px 0}button.mini-day{background:0 0;border-radius:4px;min-width:0;min-height:0;padding:2px 0}.mini-day.today{background:var(--accent-soft);border-radius:4px}.mini-day.empty{opacity:0;pointer-events:none}.mini-wn{color:var(--muted);background:0 0;border-radius:0;min-width:0;min-height:0;padding:0;font-size:.85em}.month-page{flex-direction:column;height:100%;display:flex}.month-title-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.month-title-row h1{margin:0;font-size:1.15em;font-weight:500}.month-title-row h1 span{color:var(--muted);font-weight:400}.month-grid{border-top:1px solid var(--ink);border-left:1px solid var(--ink);flex:1;grid-template-columns:repeat(7,minmax(0,1fr));min-height:0;display:grid}.month-head{background:var(--accent-soft);text-align:center;letter-spacing:.12em;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:10px;font-size:.42em}.day-cell{border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);min-width:0;min-height:0;color:var(--ink);padding:4px;position:relative}.day-cell .day-num{background:color-mix(in srgb, var(--accent-soft) 88%, transparent);z-index:6;pointer-events:auto;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:0 10px;font-size:.52em;font-weight:600;display:inline-flex;position:relative}.day-cell.today .day-num{background:var(--accent);color:#fff}.day-cell .write-slot{pointer-events:none;position:absolute;inset:52px 8px 8px}.day-cell.empty{background:color-mix(in srgb, var(--ink) 4%, transparent)}.day-cell.today{box-shadow:inset 0 0 0 2px var(--accent)}.week-label{color:var(--muted);writing-mode:vertical-rl;font-size:.32em;position:absolute;bottom:6px;left:4px;transform:rotate(180deg)}.month-right{flex:1;grid-template-columns:1.6fr .9fr;gap:16px;min-height:0;display:grid}.month-right.notes-only{grid-template-columns:1fr}.month-side{flex-direction:column;gap:12px;min-height:0;display:flex}.side-card{border:1px solid var(--ink);flex-direction:column;min-height:0;padding:12px;display:flex}.side-card.grow,.card.grow{flex:1}.side-card h3,.card h3{letter-spacing:.12em;margin:0 0 8px;font-size:.5em}.todo-row{align-items:center;gap:8px;min-height:52px;font-size:.7em;display:flex}.todo-row input[type=checkbox]{width:28px;height:28px}.notes-area{border:0;flex:1;min-height:120px;font-size:.7em}.notes-area.tall{min-height:420px}.plain-page{flex-direction:column;gap:16px;height:100%;display:flex}.index-cols{grid-template-columns:1fr 1fr;gap:28px;display:grid}.index-page h2{letter-spacing:.12em;margin:0 0 10px;font-size:.62em}.hub-list{-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-y:auto}.index-link,.hub-item{text-align:left;border-bottom:1px solid var(--rule);width:100%;min-height:48px;color:var(--ink);background:0 0;border-radius:0;font-size:.55em;display:block}.month-jump{grid-template-columns:1fr 1fr;gap:4px 16px;display:grid}.week-jump-row,.week-jump-head{text-align:left;background:0 0;border-radius:0;grid-template-columns:80px 1fr;gap:8px;display:grid}.hub-item{align-items:center;gap:12px;display:flex}.hub-item span{background:var(--paper-dim);border-radius:8px;place-items:center;width:48px;height:48px;font-size:.9em;display:grid}.lined-notes{background-image:repeating-linear-gradient(to bottom, transparent, transparent 31px, var(--rule) 32px)}.dash-grid,.finance-tables,.card-stack{gap:16px;display:grid}.dash-grid{grid-template-columns:1fr 1fr}.card{border:1px solid var(--rule);background:color-mix(in srgb, var(--paper-dim) 70%, transparent);color:var(--ink);padding:14px}.chip-grid,.chip-row{flex-wrap:wrap;gap:8px;display:flex}.chip-grid button,.chip-row button{min-width:64px}.table{flex-direction:column;display:flex}.tr{grid-template-columns:repeat(auto-fit,minmax(80px,1fr));align-items:center;gap:8px;display:grid}.tr.head{letter-spacing:.08em;color:var(--muted);font-size:.45em}.muted{color:var(--muted);font-size:.65em}.goal-card,.project-card{border:1px solid var(--ink);flex-direction:column;gap:8px;padding:14px;display:flex}.goal-card header,.project-card header,.finance-top{align-items:center;gap:10px;display:flex}.card-title{border:0;font-size:.75em}.goal-dates{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;display:grid}.progress-row{flex-wrap:wrap;gap:6px;display:flex}.progress-row button{min-width:64px;min-height:40px;font-size:.45em}.progress-row button.active{background:var(--accent);color:#fff}.finance-top{grid-template-columns:1fr 1fr;display:grid}.finance-tables{grid-template-columns:1fr 1fr}.total-row{justify-content:space-between;margin-top:8px;display:flex}.tracker-rows{flex-direction:column;gap:8px;display:flex}.tracker-row{grid-template-columns:28px 1fr 1fr;align-items:center;gap:8px;display:grid}.glance-days{grid-template-columns:repeat(7,1fr);gap:8px;display:grid}.glance-day{border:1px solid var(--rule);min-height:72px;color:var(--ink);pointer-events:none;background:0 0;border-radius:0;flex-direction:column;min-width:0;padding:8px;display:flex}.glance-day strong{pointer-events:auto;z-index:5;position:relative}.template-grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.template-thumb{background:0 0;border-radius:12px;flex-direction:column;align-items:center;gap:8px;display:flex}.mini-paper,.note-paper{border:1px solid var(--ink);background:var(--paper);border-radius:16px}.mini-paper{aspect-ratio:1;width:100%}.note-paper{flex:1;min-height:900px}.note-list{margin:0;padding:0;list-style:none}.note-list li{align-items:center;gap:8px;display:flex}.tpl-ruled,.tpl-wide-ruled,.tpl-narrow-ruled{background-image:repeating-linear-gradient(to bottom, transparent, transparent 27px, var(--rule) 28px)}.tpl-wide-ruled{background-size:auto;background-image:repeating-linear-gradient(to bottom, transparent, transparent 39px, var(--rule) 40px)}.tpl-narrow-ruled{background-image:repeating-linear-gradient(to bottom, transparent, transparent 19px, var(--rule) 20px)}.tpl-grid,.tpl-small-grid,.tpl-weekly-grid{background-image:repeating-linear-gradient(to right, var(--rule) 0 1px, transparent 1px 28px), repeating-linear-gradient(to bottom, var(--rule) 0 1px, transparent 1px 28px)}.tpl-small-grid{background-image:repeating-linear-gradient(to right, var(--rule) 0 1px, transparent 1px 16px), repeating-linear-gradient(to bottom, var(--rule) 0 1px, transparent 1px 16px)}.tpl-dot{background-image:radial-gradient(var(--muted) 1px, transparent 1.4px);background-size:22px 22px}.tpl-cornell{background-image:linear-gradient(to right, transparent 28%, var(--rule) 28% 28.4%, transparent 28.4%), linear-gradient(to top, var(--rule) 18%, transparent 18.3%), repeating-linear-gradient(to bottom, transparent, transparent 27px, var(--rule) 28px)}.tpl-two-column{background-image:linear-gradient(to right, transparent 49.5%, var(--rule) 49.5% 50.2%, transparent 50.2%)}.tpl-three-column{background-image:linear-gradient(to right, transparent 33%, var(--rule) 33% 33.4%, transparent 33.4%), linear-gradient(to right, transparent 66%, var(--rule) 66% 66.4%, transparent 66.4%)}.tpl-checklist{background-image:repeating-linear-gradient(to bottom, transparent, transparent 35px, var(--rule) 36px)}.tpl-meeting,.tpl-brainstorm,.tpl-project,.tpl-storyboard{background-image:repeating-linear-gradient(to bottom, transparent, transparent 31px, var(--rule) 32px)}.day-title{flex-direction:column;gap:0;display:flex}.day-page{flex-direction:column;gap:0;height:100%;min-height:0;display:flex}.day-hero{flex:none;margin-bottom:.15em}.day-hero-row{grid-template-columns:auto 1fr auto;align-items:center;gap:18px;display:grid}.day-numeral{letter-spacing:-.04em;color:var(--accent);min-width:1.4ch;font-size:2.35em;font-weight:500;line-height:.85}.day-hero-copy h1{letter-spacing:-.02em;margin:0;font-size:.92em;font-weight:500;line-height:1.05}.day-hero-copy p{color:var(--muted);margin:.08em 0 0;font-size:.48em}.day-hero-meta{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);gap:.55em;margin-top:.28em;font-size:.36em;display:flex}.day-hero-nav{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.day-nav{background:var(--accent-soft);min-width:52px;min-height:52px;font-size:.7em}.day-month-link{letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--rule);background:0 0;min-height:40px;padding:.15em .55em;font-size:.32em}.day-entry{border-bottom:1px solid var(--rule);margin:0 0 .45em;padding:.2em 0 .45em}.day-entry.done input[type=text]{opacity:.55;text-decoration:line-through}.day-entry-notes{background:0 0;width:100%;min-height:2.1em;margin-top:.15em;font-size:.78em}.day-hours{border-top:1px solid var(--rule);flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.day-hour{border-bottom:1px solid var(--rule);min-height:92px;color:var(--ink);background-image:repeating-linear-gradient(to bottom, transparent, transparent 30px, color-mix(in srgb, var(--ink) 7%, transparent) 31px);grid-template-columns:108px 1fr;align-items:stretch;display:grid}.day-hour.now{background-color:color-mix(in srgb, var(--accent-soft) 55%, transparent);box-shadow:inset 4px 0 0 var(--accent)}.day-time{border-right:1px solid var(--rule);background:color-mix(in srgb, var(--paper-dim) 40%, transparent);flex-direction:column;justify-content:flex-start;align-items:flex-end;padding:10px 14px 0 0;display:flex}.day-time strong{letter-spacing:-.03em;font-size:.72em;font-weight:500;line-height:1}.day-time em{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:4px;font-size:.32em;font-style:normal}.day-hour .write-slot{width:100%;min-height:100%;padding:6px 8px}.hour-event{border-left:3px solid var(--accent);background:color-mix(in srgb, var(--accent-soft) 70%, var(--paper));margin:0 0 6px;padding:5px 8px;font-size:.72em;line-height:1.25}.hour-event strong{margin-right:.4em}.day-dot{white-space:nowrap;text-overflow:ellipsis;padding:0 4px;font-size:.28em;line-height:1.2;display:block;overflow:hidden}.day-dot.event{color:var(--accent)}.day-details{flex-direction:column;gap:14px;height:100%;min-height:0;display:flex}.day-details .folio-display{font-size:1.2em}.day-card{border:1px solid var(--rule);background:color-mix(in srgb, var(--paper-dim) 35%, transparent);border-radius:16px;padding:14px 16px 12px}.day-card.grow{flex:1;min-height:0;overflow:auto}.day-card h2{letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0 0 .45em;font-size:.42em;font-weight:600}.day-must{grid-template-columns:48px 36px 1fr;align-items:center;gap:10px;min-height:72px;margin-bottom:6px;font-size:.78em;display:grid}.day-must.done input[type=text]{opacity:.5;text-decoration:line-through}.day-must-n{background:var(--accent-soft);border-radius:50%;place-items:center;width:48px;height:48px;font-size:.85em;font-weight:600;display:grid}.day-must input[type=text]{border:0;border-bottom:1px solid var(--rule);background:0 0;width:100%;min-height:48px;padding:.1em 0}.day-details .todo-row{min-height:52px;font-size:.72em}.day-chip-row{align-items:baseline;gap:10px;margin:0 0 .28em;font-size:.58em;display:flex}.day-chip-row span{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);min-width:5.5em;font-size:.72em}.day-highlight{background:0 0;border:0;width:100%;min-height:110px;font-size:.68em;line-height:1.35}.title-btn{background:0 0;min-width:0;min-height:0;padding:.15rem .35rem;font-weight:600}.title-edit{border-bottom:1px solid var(--ink);width:10rem;font-weight:600}.folio-head{margin-bottom:.45em}.folio-eye{letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin:0 0 .15em;font-size:.32em}.folio-title-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.folio-title-row h1,.folio-display{letter-spacing:-.02em;margin:0;font-size:1.35em;font-weight:500;line-height:1.05}.folio-display span{color:var(--muted);font-size:.62em;font-weight:400}.folio-rule{background:linear-gradient(90deg, var(--accent), transparent 78%);height:2px;margin:.28em 0 .35em;display:block}.folio-lede{color:var(--muted);max-width:28em;margin:0 0 .6em;font-size:.42em}.quick-row{flex-wrap:wrap;gap:8px;margin-bottom:.7em;display:flex}.quick-chip,.jump-pill{background:var(--accent-soft);min-height:44px;color:var(--ink);border-radius:999px;padding:.25em .7em;font-size:.42em}.quick-chip.primary,.jump-pill:hover{background:var(--accent);color:#fff}.jump-pill.ghost{border:1px solid var(--rule);background:0 0}.pretty-jump{gap:8px}.toc-block{margin-bottom:.7em}.toc-block h2,.toc-section{letter-spacing:.16em;text-transform:uppercase;color:var(--accent);text-align:left;cursor:pointer;background:0 0;border-radius:0;min-width:0;min-height:44px;margin:0 0 .25em;padding:.12em 0;font-size:.38em}.toc-row{text-align:left;border-bottom:1px solid var(--rule);background:0 0;border-radius:0;grid-template-columns:auto 1fr auto auto;align-items:end;gap:8px;width:100%;min-height:46px;padding:.15em 0;font-size:.48em;display:grid}.toc-n{color:var(--muted);font-variant-numeric:tabular-nums}.toc-label{color:var(--ink)}.toc-dots{border-bottom:1px dotted color-mix(in srgb, var(--ink) 28%, transparent);min-width:24px;height:.7em}.toc-go{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.78em}.toc-row:active{background:var(--accent-soft)}.folio-cols{grid-template-columns:1fr}.index-page.folio{padding-right:8px}.mini-month.carded{background:color-mix(in srgb, var(--paper-dim) 55%, transparent);border-radius:12px;padding:8px 8px 6px;box-shadow:inset 0 1px #ffffff59}.mini-month-title em{color:var(--muted);margin-left:.4em;font-size:.78em;font-style:normal}.feature-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;display:grid}.feature-tile{background:var(--accent-soft);text-align:left;border-radius:16px;flex-direction:column;align-items:flex-start;gap:6px;min-height:120px;padding:14px;display:flex}.feature-tile span{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:.32em}.feature-tile strong{font-size:.52em;font-weight:500}.hub-notes{border-radius:12px;flex:1;min-height:280px;padding:12px}.pretty-rows .tracker-row{border-bottom:1px solid var(--rule);padding:4px 0}.tracker-row.done input:not([type=checkbox]){opacity:.45;text-decoration:line-through}.goal-card,.project-card,.card{border-radius:16px;box-shadow:0 8px 20px #281c100f}.notebook{position:relative}.notebook.landscape:before{content:"";background:linear-gradient(180deg, var(--accent), color-mix(in srgb, var(--accent) 60%, #6b3030));z-index:4;pointer-events:none;border-radius:2px 2px 6px 6px;width:18px;height:72px;position:absolute;top:-6px;left:50%;transform:translate(-50%);box-shadow:0 8px 16px #28140a2e}@media (width<=900px){.index-cols,.dash-grid,.finance-tables,.finance-top,.template-grid,.month-right{grid-template-columns:1fr}.page-paper{padding:40px 32px 48px}.page-kicker{font-size:1.05em}}@media (orientation:portrait){.planner-shell,.planner-shell.landscape{padding-right:var(--safe-r);grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"top""main""tools";grid-template-columns:minmax(0,1fr)!important}.planner-shell.mobile{grid-template-rows:auto minmax(0,1fr) auto auto;grid-template-areas:"top""main""tools""dock";padding-bottom:0}.top-nav{flex-wrap:wrap}.notebook.landscape{flex-direction:column}.month-right{grid-template-columns:1fr}.glance-days{grid-template-columns:repeat(3,1fr)}.index-cols,.dash-grid,.finance-tables,.template-grid{grid-template-columns:1fr}.top-nav{padding-right:.4rem}}.overlay{z-index:80;background:#1a161259;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.overlay-card{background:var(--paper);width:min(520px,100%);max-height:86vh;color:var(--ink);border-radius:18px;flex-direction:column;gap:.7rem;padding:1rem 1.1rem 1.2rem;display:flex;overflow:auto}.overlay-card h2{margin:0}.overlay-card label{flex-direction:column;gap:.3rem;font-size:.92rem;display:flex}.overlay-card code{word-break:break-all;font-size:.78em}.overlay-card input,.overlay-card textarea,.overlay-card select{border:1px solid var(--rule);background:var(--paper);border-radius:10px;width:100%;min-height:44px;padding:.45rem .6rem}.field-row{gap:.4rem;display:flex}.field-row>*{flex:1;min-width:0}.check-inline{align-items:center;gap:.45rem;display:flex}.search-hits{margin:0;padding:0;list-style:none}.search-hits button{text-align:left;background:0 0;flex-direction:column;align-items:flex-start;width:100%;display:flex}.search-hits span{color:var(--muted);font-size:.85rem}.week-grid{grid-template-columns:1fr 1fr;gap:.7rem;display:grid}.week-col{border-top:1px solid var(--rule);min-height:8rem;padding-top:.4rem}.week-col-head{background:0 0;justify-content:space-between;width:100%;display:flex}.week-item{align-items:center;gap:.4rem;min-height:36px;display:flex}.week-item.done span{opacity:.55;text-decoration:line-through}.layer-bar{z-index:6;flex-wrap:wrap;gap:.25rem;display:flex;position:absolute;bottom:8px;left:8px}.layer-bar button{min-height:32px;font-size:.75rem}.widget-page{background:var(--paper);min-height:100%;color:var(--ink);padding:1.2rem}.widget-page li.done{text-decoration:line-through}.choice-row.wrap{flex-wrap:wrap}input,textarea,select,[contenteditable=true]{-webkit-touch-callout:default;caret-color:var(--ink);-webkit-user-select:text!important;user-select:text!important}@media print{.top-nav,.pencil-toolbar,.mobile-dock,.dock-sheet,.overlay,.layer-bar,.page-dots{display:none!important}.planner-shell{background:#fff;height:auto;display:block}.shell-main{height:auto;overflow:visible}}
