: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}}
