:root{color-scheme:light;--paper:#fbfcfd;--soft:#f3f6f8;--softblue:#eaf1f5;--line:#e4e9ec;--strong:#24313a;--ink:#394a54;--muted:#84939c;--accent:#7899a7;--accentdark:#52717e;--task:#e7ecef;--event:#dbeaf0;--time-hour:66px;--radius:18px;font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic","Segoe UI",sans-serif;font-synthesis:none}
*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;color:var(--ink);background:var(--paper);min-height:100svh}button,input,select,textarea{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #7b9eaf;outline-offset:2px}button:disabled{opacity:.42;cursor:not-allowed}svg{width:20px;height:20px;display:block}.app-shell{max-width:1080px;margin:0 auto;min-height:100svh;position:relative;padding-bottom:calc(85px + env(safe-area-inset-bottom))}.app-header{display:flex;align-items:center;justify-content:space-between;padding:calc(17px + env(safe-area-inset-top)) 24px 0;gap:12px}.branding{display:flex;align-items:center;gap:8px;letter-spacing:2px;font-size:10px;font-weight:800;color:var(--strong)}.brand-symbol{font-size:19px;color:var(--accent);line-height:1}.brand-separator{font-weight:300;color:#aab8c0}.brand-light{font-weight:500;color:#7d8d97;letter-spacing:2.8px}.header-controls{display:flex;gap:10px;align-items:center}.pill-button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 12px;font-size:12px;color:var(--ink)}.icon-button{border:1px solid var(--line);background:#fff;border-radius:50%;width:35px;height:35px;display:grid;place-items:center}.icon-button svg{width:17px;height:17px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:21px 24px 16px}.overline{margin:0 0 7px;letter-spacing:2px;font-size:10px;font-weight:650;color:#94a5af}.page-heading h1{margin:0;color:var(--strong);font-size:26px;font-weight:650;letter-spacing:-1.4px}.subtext{color:var(--muted);font-size:12px;line-height:1.5;margin:5px 0 0}.chat-btn{border:1px solid #dbe5e8;background:#eef4f6;color:var(--accentdark);border-radius:13px;display:flex;align-items:center;gap:7px;padding:10px 12px;font-size:12px;font-weight:700;flex-shrink:0}.chat-btn svg{width:17px;height:17px}.date-navigation{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:space-between;padding:9px 16px}.nav-arrow{width:36px;height:36px;background:var(--soft);border:0;border-radius:11px;font-size:24px;line-height:1;color:#6c818c;display:grid;place-items:center}.nav-title{text-align:center;display:flex;flex-direction:column;gap:3px}.nav-title strong{font-size:14px;color:var(--strong);letter-spacing:-.35px}.nav-title span{font-size:9px;color:#a0aeb6;letter-spacing:1.3px}.secondary-controls{background:#fff;padding:10px 17px;border-bottom:1px solid var(--line)}.secondary-controls[hidden]{display:none}.main-view{min-height:430px}.empty-state{padding:35px 22px;text-align:center;color:var(--muted)}.empty-state .empty-icon{font-size:34px;line-height:1;opacity:.65;margin-bottom:12px}.empty-state h2{font-size:16px;color:var(--ink);font-weight:650}.empty-state p{max-width:300px;margin:8px auto 18px;font-size:12px;line-height:1.8}.soft-btn{border:1px solid var(--line);border-radius:11px;background:#fff;padding:10px 14px;color:var(--ink);font-size:12px;font-weight:600}.soft-btn.emphasis{background:var(--accentdark);color:white;border-color:var(--accentdark)}.soft-btn.danger{color:#ad6868}.inline-actions{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap}.tab-bar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:1080px;background:rgba(251,252,253,.95);backdrop-filter:blur(16px);display:flex;align-items:center;justify-content:space-around;z-index:20;border-top:1px solid var(--line);padding:8px 8px calc(7px + env(safe-area-inset-bottom))}.tab{display:flex;align-items:center;flex-direction:column;gap:4px;min-width:60px;padding:7px;border:0;border-radius:13px;background:transparent;color:#9cabb3;font-size:10px;font-weight:600}.tab svg{width:21px;height:21px}.tab.active{color:#526f7c;background:#edf3f6}.quick-add{position:fixed;z-index:19;bottom:calc(95px + env(safe-area-inset-bottom));right:max(calc((100vw - 1080px) / 2 + 25px),22px);border:0;border-radius:17px;width:51px;height:51px;background:#7397a5;color:#fff;box-shadow:0 8px 22px #7695a34d;font-size:33px;display:grid;place-items:center}.quick-add span{transform:translateY(-2px)}
/* Monthly */
.month-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:#fff;position:sticky;top:0;z-index:3;border-bottom:1px solid var(--line)}.month-weekdays span{padding:12px 2px;color:var(--muted);text-align:center;letter-spacing:.4px;font-size:10px}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:#fff}.month-cell{height:112px;min-width:0;position:relative;border-right:1px solid #eaf0f2;border-bottom:1px solid #eaf0f2;padding:6px 4px;overflow:hidden}.month-cell:nth-child(7n){border-right:none}.month-cell.other{background:#fafbfc}.month-cell .date-num{border:0;background:transparent;color:#4c5d65;font-size:12px;font-weight:530;width:27px;height:27px;display:grid;place-items:center;border-radius:50%;padding:0;margin:0 auto 4px}.month-cell.other .date-num{color:#bec9ce}.month-cell .date-num.today{background:#e2edf2;color:#476c7d;font-weight:800}.month-cell .date-num.picked{box-shadow:inset 0 0 0 1.5px #9fb8c2}.month-entry{border:0;text-align:left;width:100%;border-radius:4px;background:#e4f0f4;display:block;margin:3px 0;padding:4px 4px;color:#5b7b89;line-height:1.25;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-entry.category-important{background:#e9eef6;color:#7183a5}.month-more{font-size:9px;color:#9aa9b1;display:block;padding-left:3px}.month-note{font-size:11px;color:var(--muted);padding:12px 16px;background:#fafbfd;border-top:1px solid var(--line)}
/* Timeline */
.timeline-shell{background:#fff}.timeline-week-pills{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;padding:10px 11px;border-bottom:1px solid var(--line)}.weekday-pill{border:0;background:#f5f7f8;display:flex;flex-direction:column;align-items:center;border-radius:11px;gap:4px;padding:9px 2px;color:#7b8d96;min-width:0}.weekday-pill small{font-size:10px}.weekday-pill b{font-size:15px;font-weight:600}.weekday-pill.selected{background:#dfeef3;color:#456d7b}.timeline-hint{padding:9px 16px;font-size:10px;color:#95a5ac;display:flex;align-items:center;justify-content:space-between;gap:8px}.mode-toggle{background:#f2f5f6;border-radius:9px;border:0;padding:6px 9px;color:#587480;font-size:10px}.timeline-scroll{overflow:auto;max-height:min(66svh,730px);position:relative;overscroll-behavior:contain;scrollbar-color:#d0dce2 transparent}.timeline-track{min-width:100%;background:#fff}.week-track{min-width:704px}.week-track.overview{min-width:0}.week-header,.all-day-row,.timeline-body-grid{display:grid;grid-template-columns:46px repeat(7,minmax(0,1fr))}.week-header{position:sticky;top:0;background:#fff;z-index:10;border-bottom:1px solid var(--line)}.week-header .corner{font-size:9px;color:#abb9be;display:grid;place-items:center}.week-header .lane-header{padding:8px 3px;text-align:center;border-left:1px solid var(--line);font-size:11px;font-weight:600;color:#657b85}.week-header .lane-header.current{color:#416879;background:#edf5f8}.all-day-row{background:#f9fbfc;border-bottom:1px solid #e7eef0}.all-day-row .all-label{font-size:9px;color:#9babb3;text-align:center;line-height:1.5;padding:14px 2px}.all-day-cell{min-height:67px;border-left:1px solid var(--line);padding:5px 3px}.all-day-item{display:flex;gap:4px;align-items:flex-start;border:1px solid #e6ecef;background:white;border-radius:5px;font-size:10px;color:#526a76;margin-bottom:3px;padding:4px 3px;min-width:0}.all-day-item.completed{opacity:.44;text-decoration:line-through}.all-day-item input{width:11px;height:11px;margin:0;flex-shrink:0;accent-color:#7697a5}.all-day-item .all-text{overflow-wrap:anywhere;line-height:1.2;flex:1;min-width:0}.all-day-item.event{background:#e8f1f5;border-color:#e8f1f5}.week-track.overview .all-day-item{font-size:8px;padding:3px 1px;gap:1px}.week-track.overview .all-day-item input{width:9px;height:9px}.timeline-body-grid{position:relative}.hour-scale{grid-column:1;position:relative;background:#fff}.hour-label{position:absolute;top:-7px;right:7px;color:#95a4ad;font-size:10px;white-space:nowrap;font-variant-numeric:tabular-nums}.time-lane{position:relative;border-left:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0px,transparent calc(var(--time-hour) - 1px),#e8eff2 calc(var(--time-hour) - 1px),#e8eff2 var(--time-hour));min-width:0}.time-lane.current-lane{background-color:#fcfefe}.time-block{position:absolute;left:3px;right:3px;background:#deedf3;border-left:3px solid #92b1be;border-radius:5px;color:#4c6c7b;overflow:hidden;text-align:left;padding:5px 4px;font-size:10px;z-index:2;min-height:22px}.time-block .block-title{font-weight:650;line-height:1.25;overflow-wrap:anywhere;display:block}.time-block .block-time{display:block;font-size:9px;opacity:.83;margin-top:3px}.time-block.kind-task{background:#edf1f3;border-left-color:#a4b5be;color:#556b75;display:flex;gap:4px}.time-block.kind-task.done{opacity:.45}.time-block input{width:12px;height:12px;accent-color:#7395a4;margin:1px 0 0;flex-shrink:0}.week-track.overview .time-block{font-size:8px;padding:4px 1px;border-left-width:2px}.week-track.overview .time-block input{width:9px;height:9px}.week-track.overview .block-time{display:none}.time-block.kind-task .block-title.done{text-decoration:line-through}.now-line{position:absolute;height:1.5px;background:#a8bbc5;left:0;right:0;z-index:4;pointer-events:none}.now-line:before{content:"";position:absolute;top:-3px;left:-3px;background:#8daab9;border-radius:50%;width:7px;height:7px}.day-view{background:#fff}.day-all-row{border-bottom:1px solid var(--line);padding:11px 17px;background:#fbfcfc}.tiny-label{font-size:10px;letter-spacing:1px;color:#92a5b0;font-weight:650;margin-bottom:9px}.day-all-list{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.day-all-list .all-day-item{padding:8px 10px;font-size:12px;border-radius:8px;margin:0;max-width:100%}.day-all-list .all-day-item input{width:15px;height:15px}.day-timeline-grid{display:grid;grid-template-columns:58px minmax(0,1fr)}.day-timeline-grid .hour-label{right:10px}.day-timeline-grid .time-block{left:10px;right:12px;font-size:13px;padding:9px 11px;border-left-width:4px;border-radius:8px}.day-timeline-grid .time-block input{width:17px;height:17px}.day-timeline-grid .block-time{font-size:11px}.day-log{margin:16px;background:#f5f8f9;border:1px solid var(--line);border-radius:15px;padding:15px}.day-log-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.day-log h3{margin:0;font-size:14px;color:#425967}.day-log p{font-size:12px;color:#8b9ba4;margin:4px 0}.log-entry{padding:9px 0;border-top:1px solid #e1e8ed;font-size:12px;line-height:1.6}.log-entry button{float:right;border:0;background:none;color:#99a9b0}.link-button{border:0;background:transparent;color:#5b8295;font-size:11px;padding:5px}.all-empty{font-size:10px;color:#b0bdc3;margin:8px 3px}.day-all-empty{font-size:11px;color:#a5b3bb;margin:5px 0}.timeline-tip{color:#8b9da6;font-size:10px;padding:13px 16px;border-top:1px solid var(--line);background:#fafcfd}
/* Pinboard */
.pin-wrap{padding:14px 17px 25px}.pin-intro{font-size:12px;color:#8a9ba5;margin:0 0 14px;line-height:1.75}.capture-card{background:white;border:1px solid #e0e9ed;border-radius:16px;padding:15px;box-shadow:0 3px 18px #526f8008}.capture-card textarea{border:0;width:100%;min-height:115px;resize:vertical;outline:0;background:transparent;font-size:14px;color:#344b56;line-height:1.8}.capture-card textarea::placeholder{color:#abb8bd}.capture-foot{border-top:1px solid var(--line);padding-top:11px;display:flex;justify-content:space-between;align-items:center;gap:8px}.capture-foot small{font-size:10px;color:#a4b2b9}.capture-foot button{background:#7698a7;border:0;color:white;border-radius:10px;padding:10px 13px;font-weight:650;font-size:12px}.pin-segment{display:flex;gap:6px;overflow:auto;margin:19px 0 12px;padding-bottom:3px;scrollbar-width:none}.pin-segment button{white-space:nowrap;border:1px solid #e1e9ec;background:white;color:#7b919c;border-radius:22px;padding:8px 10px;font-size:11px}.pin-segment button.active{background:#dcebf1;border-color:#dcebf1;color:#456c7b;font-weight:750}.pin-card{border:1px solid #e4ecef;background:white;border-radius:14px;padding:13px 14px;margin-bottom:10px}.pin-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.pin-meta{font-size:10px;color:#9caeb7}.pin-status{font-size:10px;color:#738e9c;background:#f0f5f7;border-radius:5px;padding:4px 7px}.pin-status.sorted{color:#6b9285;background:#eaf5ef}.pin-card .pin-text{margin:10px 0 13px;white-space:pre-wrap;font-size:13px;line-height:1.7;overflow-wrap:anywhere}.pin-card .pin-actions{display:flex;justify-content:flex-end;gap:7px}.pin-card .pin-actions button{border:1px solid var(--line);border-radius:9px;background:#f9fbfc;padding:7px 10px;font-size:11px;color:#67828e}.pin-card .pin-actions .primary-action{background:#e6f0f4;border-color:#e6f0f4;color:#527481;font-weight:650}.pin-collection{padding:8px 0}.pin-collection h3{font-size:12px;color:#869ba5;font-weight:700;letter-spacing:.5px;margin:15px 0 9px}.collection-item{background:white;border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;justify-content:space-between;padding:11px 13px;margin-bottom:8px;gap:10px;font-size:12px}.collection-item small{color:#8b9da5}.collection-item button{border:0;background:transparent;color:#78929d;padding:5px}
/* Modals */
.modal-layer[hidden]{display:none}.modal-layer{position:fixed;inset:0;z-index:50;background:#1c293454;display:flex;align-items:flex-end;justify-content:center;backdrop-filter:blur(3px);padding:0}.modal-card{width:100%;max-width:590px;max-height:min(92svh,900px);overflow:auto;background:#fafcfc;border-radius:22px 22px 0 0;padding:23px 20px calc(23px + env(safe-area-inset-bottom));box-shadow:0 -8px 40px #25333a17}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.modal-header h2{font-size:19px;margin:0;color:#334650;letter-spacing:-.4px}.modal-description{font-size:12px;color:#90a1a8;line-height:1.7;margin:6px 0 20px}.modal-close{border:0;background:#edf2f4;color:#627d89;width:31px;height:31px;border-radius:50%;font-size:21px}.field{display:flex;flex-direction:column;gap:7px;margin:13px 0}.field label{font-size:11px;color:#788f9a;font-weight:650}.field input,.field select,.field textarea{width:100%;background:white;border:1px solid #dce6ea;border-radius:10px;padding:11px 12px;color:#344a55;font-size:13px;min-height:42px}.field textarea{resize:vertical;min-height:85px;line-height:1.6}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field-check{display:flex;gap:8px;align-items:center;font-size:12px;color:#647b86;margin:12px 0}.field-check input{accent-color:#7295a4;width:16px;height:16px}.modal-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:20px}.modal-actions .soft-btn{min-height:42px}.grow{flex:1}.settings-section{padding:13px 0;border-bottom:1px solid var(--line)}.settings-section h3{font-size:13px;margin:0 0 8px;color:#455c67}.settings-section p{font-size:11px;color:#8296a0;line-height:1.8;margin:0 0 9px}.notice-warning{border:1px solid #e7d6cc;border-radius:10px;background:#fcf9f7;color:#896e62;font-size:11px;line-height:1.7;padding:11px 12px}.toast{position:fixed;z-index:100;left:50%;bottom:calc(90px + env(safe-area-inset-bottom));transform:translate(-50%,12px);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;background:#425865;color:white;border-radius:11px;max-width:min(90vw,440px);padding:11px 15px;font-size:12px;box-shadow:0 5px 22px #42586533;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}.classification{border:1px solid #e1e9ec;background:white;border-radius:12px;padding:12px;margin:12px 0}.classification h3{font-size:12px;margin:0 0 8px}.hint-small{color:#8799a3;font-size:10px;line-height:1.6}.linegap{height:5px}
@media(max-width:430px){.app-header{padding-left:16px;padding-right:16px}.page-heading{padding:20px 17px 15px}.page-heading h1{font-size:24px}.month-cell{height:97px}.month-entry{font-size:8px}.week-track.overview .all-day-cell{padding:4px 1px}}
@media(min-width:760px){.app-shell{border-left:1px solid var(--line);border-right:1px solid var(--line);box-shadow:0 0 100px #8399a409}.month-cell{height:146px}.month-entry{font-size:11px}.timeline-scroll{max-height:680px}.week-track{min-width:0}.week-track.overview{min-width:0}.tab-bar{justify-content:center;gap:45px}.quick-add{right:max(calc((100vw - 1080px) / 2 + 36px),40px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}

.all-edit{background:none;border:0;color:inherit;text-align:left;padding:0;line-height:1.25;min-width:0;flex:1;overflow-wrap:anywhere;font-size:inherit}.time-block .inline-edit{background:none;border:0;padding:0;color:inherit;text-align:left;min-width:0;flex:1;font-size:inherit}.time-block .inline-edit .block-title{text-align:left}
.date-navigation[hidden]{display:none}

/* Notion read-only references (v2) */
.notion-pill{background:#eff3f5;color:#607b87;border:1px solid #e2e9ed;font-size:11px;white-space:nowrap}
.notion-source{padding:12px;background:#eff5f7;border-radius:12px;margin-bottom:11px;border:1px solid #e3ecef;color:#526d7a;font-size:12px}
.notion-source b{font-weight:700}.notion-source p{margin:5px 0 0;line-height:1.6;font-size:11px;color:#8296a0}
.notion-section{border:1px solid #e4ebee;border-radius:12px;margin:9px 0;background:white;overflow:hidden}
.notion-section summary{list-style:disclosure-closed;cursor:pointer;padding:14px 13px;font-size:12px;font-weight:720;color:#445b67}
.notion-section[open] summary{border-bottom:1px solid #eaf0f2}
.notion-lines{padding:12px 13px;color:#495f6b;font-size:11px;line-height:1.8;white-space:pre-wrap;max-height:260px;overflow:auto;overflow-wrap:anywhere}
.notion-lines>div{border-bottom:1px solid #f1f4f5;padding:3px 0}.notion-lines>div:last-child{border:0}
.notion-link{padding:5px 13px 13px}.notion-link a{color:#547f95;font-size:11px}
.notion-log-field{margin:8px 13px;font-size:11px;color:#78909e}.notion-log-field summary{padding:5px;font-size:11px;border:0!important}.notion-log-field p{white-space:pre-wrap}
.notion-empty,.notion-loading{padding:8px 12px;color:#8397a1;line-height:1.7;font-size:11px}
.notion-disclaimer{font-size:10px;color:#8295a0;line-height:1.8;padding:4px 5px}
.notion-failed{background:#faf6f0;border:1px solid #efe1d1;color:#997651;padding:10px;margin-bottom:10px;font-size:11px;border-radius:8px;line-height:1.5}
@media(max-width:420px){.notion-pill{padding:6px 9px;font-size:10px}.branding .brand-light{display:none}}

/* v3 · iPhone 14-first refinements; restrained cool-white paper, clearer hairlines */
:root{--line:#cbd2d5;--paper:#fafbfa;--soft:#f5f6f5;--strong:#272d31;--ink:#3d464c;--muted:#68767d}
body{overscroll-behavior-y:none;-webkit-text-size-adjust:100%}
.app-shell{padding-bottom:calc(94px + env(safe-area-inset-bottom,0px))}
.app-header{padding-top:calc(15px + env(safe-area-inset-top,0px))}
.tab-bar{padding-bottom:calc(9px + env(safe-area-inset-bottom,0px));border-color:#c7cfd2;box-shadow:0 -5px 20px #34475208}
.tab{min-height:53px;touch-action:manipulation}
.tab.active{background:#edf1f2;color:#435760}
.quick-add{bottom:calc(91px + env(safe-area-inset-bottom,0px));box-shadow:0 4px 15px #526d7830}
.month-weekdays,.month-grid{background:var(--paper)}
.month-cell{border-right-color:#ccd2d4;border-bottom-color:#ccd2d4}
.month-cell.other{background:#f6f7f6}
.timeline-week-pills{background:var(--paper)}
.weekday-pill{background:#f1f3f2}
.weekday-pill.selected{background:#e5eced;color:#405763}
.week-header,.all-day-row{border-bottom-color:#bfc9cd}
.time-lane{background-image:repeating-linear-gradient(to bottom,transparent 0px,transparent calc(var(--time-hour) - 1px),#cdd5d8 calc(var(--time-hour) - 1px),#cdd5d8 var(--time-hour))}
.week-header .lane-header,.all-day-cell,.time-lane{border-left-color:#c9d1d5}
.timeline-scroll{-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}
/* Keep the time ruler visible while the seven day grid moves horizontally. */
.week-track .hour-scale,.week-track .week-header .corner,.week-track .all-day-row .all-label{position:sticky;left:0;z-index:7;background:var(--paper)}
.week-track .week-header .corner{z-index:12}
.week-track .all-day-row .all-label{z-index:9;background:#f8faf9}
.week-track .hour-scale{z-index:7;align-self:stretch}
.week-track .hour-scale .hour-label{color:#5f6d74}
.week-header{z-index:10}
.date-navigation{border-color:#cbd2d5}
.modal-layer{overscroll-behavior:contain}
.modal-card{max-height:min(94dvh,900px);overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.field input,.field select,.field textarea{font-size:16px;border-color:#c8d1d6}
.storage-status{background:#f3f5f4;border:1px solid #ccd4d5;border-radius:9px;padding:9px 10px;font-size:11px;color:#5e6a70}
@media(max-width:430px){
 .app-shell{max-width:390px;width:100%;margin-inline:auto}
 .app-header{padding-left:17px;padding-right:17px;gap:8px}
 .header-controls{gap:7px}
 .page-heading{padding:18px 17px 13px}
 .page-heading h1{font-size:25px}
 .subtext{font-size:11px}
 .chat-btn{padding:9px 10px;border-radius:11px}
 .date-navigation{padding:8px 14px}
 .nav-arrow{width:38px;height:38px;border-radius:10px}
 .month-cell{height:92px;padding:5px 3px}
 .month-entry{font-size:9px;background:#e8eeef;color:#465d65;padding:3px 2px}
 .month-weekdays span{padding:10px 2px}
 .week-track{min-width:746px}
 .week-track.overview{min-width:100%}
 .timeline-scroll{max-height:calc(100dvh - 347px);min-height:260px}
 .week-track .all-day-item{font-size:10px}
 .day-view .timeline-scroll{max-height:calc(100dvh - 420px);min-height:280px}
 .modal-card{padding:21px 18px calc(21px + env(safe-area-inset-bottom,0px));border-radius:18px 18px 0 0}
 .quick-add{right:19px;width:49px;height:49px;border-radius:14px}
 .tab{min-width:64px}
}
@media(max-width:360px){
 .chat-btn span{display:none}
 .branding{gap:5px}
 .month-cell{height:83px}
 .month-entry{font-size:8px}
 .app-header{padding-left:12px;padding-right:12px}
}
@media(display-mode:standalone){
 .app-shell{padding-bottom:calc(98px + env(safe-area-inset-bottom,0px))}
 .tab-bar{padding-bottom:calc(11px + env(safe-area-inset-bottom,0px))}
}

/* v4: function-first. Retain v3 visual language until design iteration. */
.notion-connection-status{padding:10px 12px;border:1px solid #bfcbd0;background:#f1f5f5;color:#455b63!important;border-radius:9px;overflow-wrap:anywhere;}
/* v5 — Notion app-managed writes, no visual redesign */
.notion-write-btn{background:#eef2f3!important;border:1px solid #b8c7cc!important;color:#405960!important;white-space:nowrap}
.notion-managed-summary{padding:12px 13px;margin:12px 0;border:1px solid #bfcbd0;background:#f6f8f8;border-radius:9px;color:#40545c;font-size:12px}
.notion-managed-summary p{line-height:1.65;font-size:11px;color:#677981;margin:6px 0 10px}
.notion-sync-tag{display:inline-block;padding:2px 5px;font-size:9px;color:#456774;margin-left:6px;border:1px solid #bfced3;border-radius:5px}
@media(max-width:430px){.modal-actions{flex-wrap:wrap}.notion-write-btn{order:1;margin-right:auto}}

.sync-error{outline:1px solid #b98168}.notion-sync-tag.sync-failed{color:#a26348;border-color:#d7ad93}

/* v6 pinboard review: restrained layout, clearly defined separators for iPhone 14. */
.pin-batch-actions{display:grid;gap:8px;margin:17px 0 10px;grid-template-columns:1fr 1fr}
.pin-batch-actions button{min-height:44px;line-height:1.35;padding:9px 8px;font-size:11px}
.batch-help{background:#f0f3f2;border:1px solid #abb8bd;border-radius:10px;padding:12px;font-size:12px;line-height:1.65;color:#52656c;margin-bottom:12px}
.batch-row{background:#fff;border:1px solid #bdc9cd;border-radius:13px;padding:12px;margin:12px 0}
.batch-row:has(.batch-use:not(:checked)){opacity:.55}
.batch-row .field{margin:8px 0}
.batch-row .field label{color:#5d737c}
.batch-original{display:flex;align-items:flex-start;gap:10px;font-size:12px;color:#3e525b;line-height:1.6;border-bottom:1px solid #c7d0d3;padding:0 0 9px;margin-bottom:8px;overflow-wrap:anywhere}
.batch-original input{width:18px;height:18px;flex-shrink:0;accent-color:#6f8f9c;margin-top:2px}
.batch-nsync{border-top:1px solid #aabac0;padding-top:14px;margin-top:16px}
@media(max-width:430px){.batch-row{padding:10px}.batch-row .field-row{gap:8px}.batch-row .field input,.batch-row .field select{padding:10px 8px;font-size:12px;min-width:0}.pin-batch-actions{gap:6px}}

/* v7 — ChatGPT ↔ TITI Planner approval-based handoff; keep the v6 theme unchanged. */
.bridge-info{border:1px solid #a8b8bf;background:#f4f6f6;color:#3d545f;border-radius:12px;padding:13px;font-size:12px;line-height:1.9;margin:13px 0}
.bridge-info small{display:block;color:#647780;font-size:11px;margin-top:5px;line-height:1.65}
.bridge-switch,.bridge-steps{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}
.bridge-switch button,.bridge-steps button{min-height:42px;font-size:12px;white-space:normal;line-height:1.4;padding:10px}
.bridge-details{border:1px solid #bbc7cd;border-radius:10px;padding:10px;margin:12px 0;color:#536772;font-size:12px}
.bridge-details summary{cursor:pointer}
.bridge-details textarea{display:block;width:100%;box-sizing:border-box;min-height:170px;margin-top:10px;resize:vertical;background:#fff;border:1px solid #bdc9cf;border-radius:8px;padding:10px;color:#364852;font-size:11px}
.bridge-answer{border-top:1px solid #bac7cb;padding-top:14px;margin-top:20px}
.bridge-answer textarea{min-height:125px;font-family:ui-monospace,Menlo,monospace;font-size:12px}
.bridge-operation{display:flex;align-items:flex-start;gap:10px;border:1px solid #b9c7ce;padding:13px 11px;border-radius:11px;margin:10px 0;line-height:1.65;cursor:pointer}
.bridge-operation input{width:18px;height:18px;flex-shrink:0;margin-top:2px;accent-color:#577984}
.bridge-operation>span{display:grid;gap:3px;min-width:0;overflow-wrap:anywhere}
.bridge-operation b{font-size:12px;color:#465e69}.bridge-operation span span{font-size:12px;color:#283f4a}.bridge-operation small{font-size:11px;color:#677984}
.bridge-questions{border:1px solid #b7c5ca;border-radius:11px;padding:13px;margin:14px 0;background:#f7f8f7;font-size:12px;line-height:1.7;color:#4e626a}
.bridge-questions p{margin:7px 0}.bridge-sync{border-top:1px solid #bac7cc;padding-top:13px;margin-top:15px}
@media(max-width:430px){.bridge-info{padding:11px;font-size:11px}.bridge-switch,.bridge-steps{gap:6px}.bridge-switch button,.bridge-steps button{font-size:11px;padding:8px 6px}}

/* v8 cloud sync control — small enough for iPhone 14 top bar. */
.cloud-sync-pill {min-width:35px;padding:0 9px;font-size:19px;line-height:1.1;}
.cloud-sync-pill.sync-working {opacity:.5;cursor:wait;}
@media(max-width:390px){.header-controls{gap:6px}.cloud-sync-pill{padding:0 7px;min-width:33px}}


/* =============================================================
   v8.6  ·  DIARY BOOK THEME — visual-only iteration
   Design reference: matte blush paper, architectural rules,
   tiny uppercase labels and ink-black selected tabs.
   The canonical data model and Cloudflare/Notion sync are untouched.
   ============================================================= */
:root {
  color-scheme:light;
  --paper:#f8f2f3;
  --soft:#f5ecee;
  --softblue:#f2e9eb;
  --line:#cbbfc2;
  --strong:#272326;
  --ink:#3c3538;
  --muted:#877b7f;
  --accent:#514249;
  --accentdark:#292326;
  --task:#f0e7e8;
  --event:#e9dfe2;
  --radius:4px;
  --time-hour:66px;
  font-family:-apple-system,BlinkMacSystemFont,'Helvetica Neue','Apple SD Gothic Neo','Malgun Gothic',Arial,sans-serif;
}
html, body {background:#f8f2f3;color:var(--ink)}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {outline:2px solid #494045;outline-offset:2px}
.app-shell {background:#faf5f6;box-shadow:none;border-left:1px solid #e2d6d8;border-right:1px solid #e2d6d8;padding-bottom:calc(82px + env(safe-area-inset-bottom,0px))}
.app-header {padding:calc(15px + env(safe-area-inset-top,0px)) 19px 9px;align-items:center;border-bottom:1px solid #e4d9da}
.branding {letter-spacing:0;font-size:11px;font-weight:560;gap:6px;color:#262125}
.brand-symbol {font-size:8px;color:#1e1c1d}
.brand-separator {color:#b7aeb1;font-size:10px}
.brand-light {color:#82777c;letter-spacing:.55px;font-weight:450;font-size:10px}
.header-controls {gap:6px}
.pill-button {background:transparent;border:1px solid #dacdd0;border-radius:3px;font-size:10px;padding:7px 8px;line-height:1.25;color:#5d5157;font-weight:500}
.icon-button {background:transparent;border:1px solid #dacdd0;border-radius:50%;width:29px;height:29px;color:#494045}
.icon-button svg {width:15px;height:15px}
.notion-pill {background:transparent!important;border-color:#dacdd0!important;color:#61555a!important;font-size:10px}
.cloud-sync-pill {background:transparent;min-width:30px;padding:4px 6px;font-size:17px}
.page-heading {padding:23px 19px 13px;align-items:flex-start;border-bottom:1px solid #aca0a5;min-height:91px;gap:9px}
.heading-copy {min-width:0;flex:1}
.overline {display:none}
.page-heading h1 {font-size:25px;letter-spacing:-.7px;color:#201d1f;font-weight:620;line-height:1.08;white-space:nowrap}
.subtext {margin:6px 0 0;font-size:9px;letter-spacing:1px;color:#9d8f93;line-height:1.4;text-transform:uppercase;white-space:nowrap}
.heading-actions {display:flex;align-items:flex-start;gap:12px;padding-top:4px;flex-shrink:0}
.date-navigation {display:flex;align-items:center;justify-content:flex-start;gap:8px;border:0;background:transparent;padding:0;min-height:25px}
.date-navigation[hidden] {display:none!important}
.nav-arrow {display:flex;align-items:center;gap:2px;width:auto;min-width:0;height:30px;padding:2px 0;border:0;border-radius:0;background:transparent;color:#64575c;font-size:9px;line-height:1;font-weight:500;letter-spacing:1px;white-space:nowrap}
.nav-arrow span {font-size:10px;line-height:1}
.nav-arrow:hover {color:#1e1a1c}
.nav-title {position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.chat-btn {border:1px solid #bfb2b7;background:transparent;color:#41363b;border-radius:50%;width:30px;height:30px;min-width:30px;min-height:30px;padding:0;display:grid;place-items:center;gap:0}
.chat-btn span {display:none}
.chat-btn svg {width:17px;height:17px}
.main-view {background:#faf5f6}
/* In the original book reference the month area has fine, visible grid rules. */
.month-weekdays {position:static;top:auto;background:#faf5f6;border-top:0;border-bottom:1px solid #bcafb3;}
.month-weekdays span {font-size:9px;letter-spacing:1.3px;padding:12px 0;color:#716468;font-weight:500}
.month-grid {background:#faf5f6;border-left:1px solid #cdbec3;border-top:0}
.month-cell {height:109px;background:#faf5f6;border-right:1px solid #cdbec3;border-bottom:1px solid #cdbec3;padding:7px 5px;overflow:hidden}
.month-cell:nth-child(7n) {border-right:1px solid #cdbec3}
.month-cell.other {background:#f7eff1}
.month-cell .date-num {margin:0 0 6px;width:23px;height:23px;border-radius:1px;display:grid;place-items:center;font-size:10px;color:#4c4045;font-weight:520}
.month-cell.other .date-num {color:#b3a8ac}
.month-cell .date-num.today {background:#282327;color:#fff;font-weight:600}
.month-cell .date-num.picked:not(.today) {box-shadow:inset 0 0 0 1px #42373c;border-radius:1px}
.month-entry {display:block;width:100%;margin:3px 0;border-radius:1px;border-left:2px solid #bfb0b5;background:transparent;padding:2px 1px 2px 4px;text-align:left;color:#67575e;font-size:9px;line-height:1.36;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.month-entry.category-important {border-left-color:#5e4f56;background:#f3e9ec;color:#3d3338}
.month-more {font-size:9px;color:#8e7c84}
.month-note {font-size:9px;color:#98878c;background:#faf5f6;padding:12px 18px;line-height:1.7;border-top:0}
/* Flat seven-day selector and fine-line paper time grid */
.timeline-shell, .day-view, .timeline-track, .timeline-scroll,.week-header,.hour-scale {background:#faf5f6}
.timeline-week-pills {background:#faf5f6;display:grid;gap:0;grid-template-columns:repeat(7,minmax(0,1fr));padding:0 12px 0;border-bottom:1px solid #c9babf}
.weekday-pill {background:transparent;color:#786c70;gap:5px;padding:11px 1px 9px;border:0;border-radius:0;position:relative}
.weekday-pill small {font-size:9px;letter-spacing:.7px;font-weight:480}
.weekday-pill b {font-size:15px;color:#51454b;font-weight:480}
.weekday-pill.selected {background:transparent;color:#272226}
.weekday-pill.selected b {font-weight:710;color:#262124}
.weekday-pill.selected:after {content:'';position:absolute;left:26%;right:26%;bottom:0;background:#252023;height:2px}
.timeline-hint {background:#faf5f6;color:#9a8990;padding:9px 15px;border-bottom:1px solid #dacdd1;font-size:9px}
.mode-toggle {background:transparent;color:#594d53;border:1px solid #cbbbc0;border-radius:1px;font-size:9px;padding:6px 7px}
.week-header {border-bottom:1px solid #baabb0}
.week-header .corner {color:#9b8b90;font-size:9px}
.week-header .lane-header {background:#faf5f6;border-left:1px solid #d3c5c9;color:#67585f;font-size:9px;font-weight:520;letter-spacing:.35px}
.week-header .lane-header.current {background:#f0e5e8;color:#2d2529}
.all-day-row {background:#f8f0f2;border-bottom:1px solid #bfb0b5}
.all-day-row .all-label {color:#8f7f84;font-size:9px}
.all-day-cell {border-left:1px solid #d3c5c9}
.all-day-item {background:transparent;border:1px solid #d5c9cc;border-radius:1px;color:#544850;font-size:10px}
.all-day-item input,.time-block input {accent-color:#282327}
.all-day-item.event {background:#f0e5e8;border-color:#e6d8dc}
.time-lane,.time-lane.current-lane {background-color:#faf5f6;background-image:repeating-linear-gradient(to bottom,transparent 0px,transparent calc(var(--time-hour) - 1px),#d4c7cb calc(var(--time-hour) - 1px),#d4c7cb var(--time-hour));border-left:1px solid #d3c5c9}
.hour-label,.week-track .hour-scale .hour-label {color:#85767b;font-size:9px}
.time-block {background:#eee3e6;border-left:2px solid #84757c;border-radius:1px;color:#42363c;padding:5px 5px;box-shadow:none}
.time-block.kind-task {background:#f3ebed;border-left-color:#b2a3a9;color:#4b4146}
.time-block .block-title {font-weight:600}
.now-line {background:#63555c;height:1px}
.now-line:before {background:#63555c}
.day-all-row {background:#f8f1f3;padding:16px 19px;border-bottom-color:#c9bdc1}
.tiny-label {font-size:9px;font-weight:550;letter-spacing:1.3px;color:#8b7c83}
.day-all-list .all-day-item {border-radius:1px;padding:8px 11px}
.day-timeline-grid .time-block {border-radius:1px;border-left-width:3px;background:#ede2e5;font-size:12px}
.day-log {margin:18px;border:0;border-top:1px solid #b6a8ad;background:transparent;border-radius:0;padding:17px 1px}
.day-log h3 {font-size:14px;letter-spacing:.1px;color:#2d2529}
.day-log p {color:#8d7c84}
.log-entry {border-top:1px solid #d8cbd0}
.link-button {color:#55444d}
.timeline-tip {background:#faf5f6;border-top:1px solid #d4c6ca;color:#8e7f84;font-size:10px}
/* Writing/notes: sections and separators instead of elevated cards */
.pin-wrap {padding:19px 19px 26px}
.pin-intro {color:#8c7c81;font-size:11px}
.capture-card {background:#faf5f6;border:1px solid #cbbec2;border-radius:1px;box-shadow:none;padding:15px}
.capture-card textarea {color:#383035}
.capture-card textarea::placeholder {color:#a29499}
.capture-foot small {color:#94858b}
.capture-foot button {background:#292327;border-radius:1px;color:#fff;padding:10px 12px;font-size:11px}
.pin-segment {gap:4px}
.pin-segment button {background:transparent;color:#806f77;border:1px solid #d6c9cd;border-radius:1px;font-size:10px;padding:7px 9px}
.pin-segment button.active {background:#282327;color:white;border-color:#282327}
.pin-card,.collection-item {border:1px solid #d0c1c7;background:#faf5f6;border-radius:1px;box-shadow:none}
.pin-status {background:#f0e5e8;color:#7c6870;border-radius:1px}
.pin-status.sorted {color:#5e665f;background:#edf0eb}
.pin-card .pin-actions button {border-radius:1px;color:#5b4d54;background:transparent}
.pin-card .pin-actions .primary-action {background:#f0e5e8;border-color:#d4c7cc;color:#3e3037}
/* bottom book labels: rectangular ink selected state, no icon bar */
.tab-bar {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;width:100%;max-width:1080px;justify-content:stretch;background:rgba(250,245,246,.98);border-top:1px solid #b9acb0;box-shadow:none;padding:10px 15px calc(10px + env(safe-area-inset-bottom,0px));backdrop-filter:none}
.tab {min-width:0;min-height:44px;width:100%;height:44px;display:grid;place-items:center;padding:0 3px;gap:0;border:1px solid #ddd1d4;border-radius:1px;background:transparent;color:#877a7f;font-size:10px;font-weight:510;letter-spacing:.7px}
.tab svg {display:none}
.tab span {display:inline-block;padding:6px 8px}
.tab.active {background:transparent;color:#1f1b1d;border-color:#9b8c91}
.tab.active span {background:#241f23;color:#fff;font-weight:700}
.quick-add {width:45px;height:45px;bottom:calc(78px + env(safe-area-inset-bottom,0px));right:max(calc((100vw - 1080px) / 2 + 22px),18px);border-radius:50%;background:#292427;color:white;box-shadow:none;font-size:27px}
.quick-add span {transform:translateY(-1px)}
/* Panels and dialogs use the same paper stock but retain all functions */
.modal-card {background:#faf5f6;color:#3f343a;border-radius:12px 12px 0 0}
.field input,.field select,.field textarea {border-color:#c9babf;background:#fffdfd;color:#3c3438}
.soft-btn {background:#faf5f6;border:1px solid #c8b9be;border-radius:3px;color:#40353b}
.soft-btn.emphasis {background:#292327;border-color:#292327;color:#fff}
.notion-connection-status,.notion-managed-summary,.notion-source,.storage-status,.bridge-info,.bridge-questions,.batch-help,.batch-row {border-radius:3px;background:#f6edef;border-color:#cdbfc4;color:#51454a}
/* App is designed for iPhone 14; rules remain visible in seven-column month. */
@media(max-width:430px) {
  .app-shell {max-width:390px;width:100%;border-left:0;border-right:0}
  .app-header {padding:calc(13px + env(safe-area-inset-top,0px)) 15px 9px}
  .branding {font-size:10px;gap:4px}
  .branding .brand-light {display:inline}
  .brand-light {font-size:9px;letter-spacing:.1px}
  .header-controls {gap:5px}
  .pill-button {font-size:9px;padding:7px 6px}
  .icon-button {width:28px;height:28px}
  .page-heading {padding:22px 16px 13px;min-height:87px}
  .page-heading h1 {font-size:24px}
  .subtext {font-size:8px;letter-spacing:.55px}
  .heading-actions {gap:7px;padding-top:0}
  .date-navigation {gap:7px}
  .nav-arrow {font-size:8px;letter-spacing:.35px;height:30px}
  .chat-btn {width:30px;height:30px;min-width:30px}
  .month-cell {height:92px;padding:5px 3px}
  .month-cell .date-num {width:20px;height:20px;font-size:10px;margin-bottom:4px}
  .month-entry {font-size:8px;padding:2px 1px 2px 3px;margin:2px 0}
  .month-weekdays span {padding:10px 1px;font-size:9px}
  .week-track {min-width:746px}
  .week-track.overview {min-width:100%}
  .timeline-scroll {max-height:calc(100dvh - 310px);min-height:260px}
  .day-view .timeline-scroll {max-height:calc(100dvh - 360px);min-height:280px}
  .tab-bar {padding:9px 12px calc(9px + env(safe-area-inset-bottom,0px));gap:3px}
  .tab {min-height:44px;height:44px;font-size:9px;letter-spacing:.55px}
  .tab span {padding:6px 7px}
  .quick-add {right:17px;bottom:calc(74px + env(safe-area-inset-bottom,0px))}
  .pin-wrap {padding-inline:15px}
}
@media(max-width:360px) {
  .brand-light {display:none}
  .page-heading h1 {font-size:22px}
  .heading-actions {gap:5px}
  .date-navigation {gap:5px}
  .nav-arrow {font-size:8px}
  .chat-btn {width:28px;height:28px;min-width:28px}
  .month-cell {height:85px}
}
@media(min-width:760px) {
 .app-shell {box-shadow:0 16px 80px #3b252b0d}
 .month-cell {height:148px}
 .tab-bar {gap:8px;justify-content:center}
 .tab {max-width:160px;justify-self:center}
}
@media(display-mode:standalone) {
 .app-shell {padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
 .tab-bar {padding-bottom:calc(11px + env(safe-area-inset-bottom,0px))}
}

/* v8.6 refinements: slightly tighter time gutter, actual timed Log items,
   ordered DAY/WEEK/MONTH/PINBOARD tabs, iPhone 14 (390x844 CSS px). */
.week-header,.all-day-row,.timeline-body-grid{grid-template-columns:40px repeat(7,minmax(0,1fr))}
.day-timeline-grid{grid-template-columns:46px minmax(0,1fr)}
.hour-label,.day-timeline-grid .hour-label{right:3px;font-size:9px}
.day-timeline-grid .time-block{left:5px;right:8px}
.week-track .hour-scale .hour-label{right:3px}
.day-all-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}
.day-all-head .link-button{border:1px solid #d1c2c7;background:transparent;border-radius:1px;padding:6px 9px;font-size:10px}
.all-day-item.log{background:#f8eff1;border-color:#d4bdc4;color:#665259}
.time-block.kind-log{background:#eadde1;border-left-color:#9a757f;color:#4c3942}
.day-timeline-grid .time-block.kind-log{background:#eadde1;border-left-color:#9a757f}
.tab-bar{grid-template-columns:repeat(4,minmax(0,1fr))}
.tab span{white-space:nowrap}
@media(max-width:430px){
  .week-header,.all-day-row,.timeline-body-grid{grid-template-columns:40px repeat(7,minmax(0,1fr))}
  .day-timeline-grid{grid-template-columns:46px minmax(0,1fr)}
  .tab{font-size:9px;letter-spacing:.3px}
  .tab span{padding:6px 4px}
}

/* v8.7 — Events stay in the calendar; checklist categories are independent timed cards. */
:root{--time-hour:66px}
.week-header,.all-day-row,.timeline-body-grid{grid-template-columns:36px repeat(7,minmax(0,1fr))}
.day-timeline-grid{grid-template-columns:38px minmax(0,1fr)}
.hour-label,.day-timeline-grid .hour-label,.week-track .hour-scale .hour-label{right:2px;font-size:9px}
.day-timeline-grid .time-block{left:2px;right:4px;padding:6px 7px;border-left-width:3px}
.time-block,.all-day-item{touch-action:none;user-select:none;-webkit-user-select:none}
.time-block button,.all-day-item button{-webkit-user-select:none;user-select:none}
.time-block.check-card{background:#f8f3f3;border:1px solid #cfc2c6;border-left:3px solid #9c8b92;color:#3e3338;display:flex;gap:5px}
.time-block.event-card{background:#e7dce1;border:1px solid #b49da8;border-left:4px solid #6c505e;color:#382831;display:block}
.time-block.kind-log{background:#f8f2f1;border-left-color:#aa9797}
.time-block.kind-wish{background:#f8f3ec;border-left-color:#bbac87}
.time-block.kind-shopping{background:#f4f6f1;border-left-color:#9da893}
.time-block.kind-task{background:#f5f0f2;border-left-color:#94838e}
.time-block input{margin-top:2px;accent-color:#44343d}
.time-block .item-type,.all-day-item .item-type{display:block;font-size:8px;letter-spacing:.5px;text-transform:uppercase;opacity:.78;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.all-day-item.check-card{background:#fbf8f7;border-color:#cbbec2;display:flex}
.all-day-item.event-card{background:#e7dce1;border-color:#aa939e;border-left:3px solid #6c505e;display:flex}
.all-day-item .all-text{text-align:left}
.all-day-item .all-text small{display:block;font-size:8px;margin-top:3px;opacity:.75}
.month-entry.multiday{background:#eee3e7;border-left:3px solid #866b7a;font-weight:600}
.drag-source{opacity:.4!important}
.drag-ghost{pointer-events:none;position:fixed;z-index:9999;min-width:115px;max-width:200px;border:1px solid #2f2630;background:#f2e9ec;color:#2f2630;padding:9px 12px;font-size:11px;line-height:1.35;box-shadow:0 7px 30px #49333c44;overflow-wrap:anywhere}
.zoom-buttons{display:flex;align-items:center;gap:3px;flex-shrink:0}
.zoom-buttons button{border:1px solid #d2c5c8;background:transparent;color:#4c3b44;font-size:11px;min-width:28px;height:27px;padding:2px 5px;border-radius:1px}
.zoom-buttons button[data-zoom=fit]{min-width:31px;font-size:10px}
.timeline-hint{gap:7px;min-height:36px;padding:6px 8px}
.timeline-hint>span{font-size:9px;line-height:1.35;min-width:0}
.day-zoom-hint{border-top:1px solid #e0d3d6}
.field-footnote{font-size:10px;color:#81737a;line-height:1.6;margin-top:4px}
#entryEndDateRow,#entryCalendarRow{display:flex}
.timeline-scroll{touch-action:pan-x pan-y;overflow:auto}
@media(max-width:430px){
 .week-header,.all-day-row,.timeline-body-grid{grid-template-columns:36px repeat(7,minmax(0,1fr))}
 .day-timeline-grid{grid-template-columns:38px minmax(0,1fr)}
 .timeline-hint>span{font-size:8px}
 .week-track{min-width:720px}
}

/* Tiny 24-hour fit view keeps text legible, without overflowing adjacent slots. */
.timeline-scroll.compact-zoom .time-block{padding:2px 3px!important;font-size:9px!important;min-height:15px;align-items:center;gap:3px}
.timeline-scroll.compact-zoom .time-block .item-type,.timeline-scroll.compact-zoom .time-block .block-time{display:none}
.timeline-scroll.compact-zoom .time-block .block-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:9px;line-height:1.15}
.timeline-scroll.compact-zoom .time-block input{width:10px;height:10px;margin-top:1px}
.timeline-scroll.compact-zoom .time-block .inline-edit{overflow:hidden}
/* Keep multi-day Events visible while scrolling the week's hour grid. */
.week-track .all-day-row{position:sticky;top:27px;z-index:9}
.week-track .all-day-row .all-label{position:sticky;left:0;z-index:10}

/* v8.8 · compact Event / Items staging and gesture-free presentation */
.app-shell{padding-bottom:0;min-height:100dvh}
.main-view{min-height:0}
.main-view:has(.month-grid),.main-view:has(.pin-wrap){padding-bottom:calc(75px + env(safe-area-inset-bottom,0px))}
.day-view,.timeline-shell{padding-bottom:0}
.day-fixed-events{border-bottom:1px solid #c9bdc1;background:#f4e9ed;padding:10px 13px 9px}
.day-items-strip{border-bottom:1px solid #cfc3c7;background:#faf5f6;padding:5px 13px 8px;min-height:34px}
.day-items-strip.items-empty{padding-top:3px;padding-bottom:3px;min-height:30px}
.day-items-header{display:flex;align-items:center;justify-content:space-between;gap:8px}
.day-section-label{color:#67575e;letter-spacing:1.1px;font-size:9px;font-weight:650;line-height:1.4}
.day-items-add{background:transparent;border:0;color:#5b4b53;min-width:27px;min-height:25px;font-size:18px;font-weight:400;display:grid;place-items:center;padding:0}
.day-fixed-events .day-all-list,.day-items-strip .day-all-list{gap:5px;flex-wrap:wrap}
.day-fixed-events .day-all-list{margin-top:5px}
.day-items-strip .day-all-list{margin-top:4px}
.day-fixed-events .all-day-item,.day-items-strip .all-day-item{padding:6px 8px;font-size:11px}
.timeline-hint.toolbar-minimal{display:flex;justify-content:flex-end;padding:4px 12px;min-height:34px;background:#faf5f6}
.timeline-hint.toolbar-minimal .zoom-buttons button{height:25px;min-width:27px}
.timeline-tip,.month-note{display:none!important}
.time-block.fixed-event,.all-day-item.fixed-event{touch-action:auto;user-select:text;-webkit-user-select:text}
.time-block.movable-item,.all-day-item.movable-item{touch-action:none}
@media (max-width:430px){
 .app-shell{max-width:390px;min-height:100dvh;padding-bottom:0}
 .day-view .timeline-scroll,.timeline-scroll{min-height:0;max-height:none}
}
@media (display-mode:standalone){.app-shell{padding-bottom:0}}
