:root{--bg:#f8f7f4;--surface:#fff;--surface-2:#faf9f6;--ink:#29282d;--muted:#777670;--line:#e8e5de;--purple:#887cb8;--purple-dark:#695d96;--purple-soft:#f0edf7;--coral:#db8d72;--sage:#7fa28f;--shadow:0 8px 28px rgba(44,39,48,.055);--font:'DM Sans',sans-serif;--display:'Manrope','DM Sans',sans-serif}*{box-sizing:border-box}html{background-color:var(--bg)}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14px;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.sidebar{width:248px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);padding:27px 17px 17px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:10px;padding:0 12px;text-decoration:none;color:var(--ink);font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:-1.3px}.brand-mark{width:27px;height:27px;border-radius:9px;background:#8b7fbc;display:flex;align-items:flex-end;justify-content:center;gap:3px;padding:6px 5px;box-shadow:0 4px 9px #8b7fbc3d}.brand-mark span{width:4px;border-radius:3px;background:#fff}.brand-mark span:nth-child(1){height:8px;opacity:.7}.brand-mark span:nth-child(2){height:13px}.brand-mark span:nth-child(3){height:10px;opacity:.85}.profile-switcher{display:flex;align-items:center;text-align:left;gap:10px;border:1px solid var(--line);background:#fff;border-radius:12px;padding:9px 10px;margin:28px 1px 14px;color:var(--ink)}.avatar{width:31px;height:31px;background:#f2d7c9;color:#8d6556;border-radius:50%;display:inline-grid;place-items:center;font-weight:700;font-size:12px;flex:none}.profile-copy{display:flex;flex-direction:column;gap:2px;flex:1}.profile-copy strong{font-size:12px;font-weight:700}.profile-copy small{font-size:10px;color:var(--muted)}.chevron{font-size:17px;color:#aaa}.new-task-button{display:flex;align-items:center;gap:9px;border:0;border-radius:11px;background:#8a7fba;color:#fff;padding:12px 13px;font-weight:700;box-shadow:0 5px 12px #8a7fba36;transition:.2s}.new-task-button:hover,.primary-button:hover,.hero-button:hover{transform:translateY(-1px);filter:brightness(1.03)}.new-task-button>span{font-size:19px;line-height:14px}.new-task-button kbd{margin-left:auto;color:#eeebf6;background:#ffffff25}.nav-group{margin-top:29px}.nav-label{font-size:9px;letter-spacing:1.2px;color:#a2a29e;font-weight:700;padding:0 12px 10px}.nav-label-row{display:flex;justify-content:space-between;align-items:center}.tiny-add{border:0;background:none;color:#999;font-size:17px;padding:0 7px}.nav-item{width:100%;height:39px;display:flex;align-items:center;gap:12px;padding:0 12px;border:0;background:transparent;color:#777a77;border-radius:9px;text-align:left;margin:2px 0;font-size:12px;font-weight:500}.nav-item:hover{background:#f8f7f4;color:var(--ink)}.nav-item.active{background:#f0edf7;color:#71659e;font-weight:700}.nav-icon{font-size:17px;width:17px;text-align:center;color:#94958f}.nav-item.active .nav-icon{color:#8275b4}.nav-count{margin-left:auto;font-size:10px;color:#9187b7;background:#e5e0f1;border-radius:6px;padding:3px 6px}.inbox-dot{width:6px;height:6px;background:#e69b7c;border-radius:50%;margin-left:auto}.projects-nav{margin-top:29px}.project-nav-item .project-color-dot{width:9px;height:9px;border-radius:3px;flex:none}.project-nav-item .project-nav-count{margin-left:auto;color:#aaa;font-size:10px}.sidebar-bottom{margin-top:auto}.focus-card{background:#f7f5fb;border:1px solid #eeeaf7;border-radius:13px;padding:14px 14px 13px;margin:0 2px 15px;position:relative;overflow:hidden}.focus-spark{width:26px;height:26px;border-radius:8px;background:#e9e4f5;color:#897cba;display:grid;place-items:center;margin-bottom:10px}.focus-card strong{font-size:11px;display:block;max-width:160px}.focus-card p{font-size:10px;line-height:1.5;color:#89858f;margin:5px 0 12px}.focus-card button{border:0;background:none;padding:0;color:#75699f;font-weight:700;font-size:10px}.focus-card button span{margin-left:4px}.settings-link{margin-bottom:4px}.sidebar-footer{border-top:1px solid var(--line);padding:14px 11px 0;color:#a2a39f;font-size:10px;display:flex;align-items:center;gap:7px}.status-dot{width:6px;height:6px;background:#83b49b;border-radius:50%}.main-area{margin-left:248px;min-height:100vh}.topbar{height:70px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 48px;background:#f9f8f5}.breadcrumb{display:flex;align-items:center;gap:10px;font-size:11px;color:#a0a19c}.breadcrumb strong{color:#575a57;font-weight:600}.crumb-slash{color:#d2d1cb}.topbar-actions{display:flex;align-items:center;gap:18px}.search-wrap{height:34px;width:224px;border:1px solid #eae9e4;background:#fff;border-radius:9px;display:flex;align-items:center;padding:0 9px;gap:7px;color:#a0a09a}.search-wrap>span{font-size:20px;line-height:10px}.search-wrap input{border:0;outline:0;width:100%;font-size:10px;color:var(--ink);background:transparent}.search-wrap kbd{white-space:nowrap}.icon-button{width:31px;height:31px;background:#fff;border:1px solid var(--line);border-radius:9px;color:#81827d;font-size:17px;position:relative}.icon-button i{position:absolute;right:7px;top:6px;width:5px;height:5px;border-radius:50%;background:#e99a7b;display:none}.avatar-small{border:0;width:30px;height:30px}.page-content{max-width:1440px;margin:0 auto;padding:37px 48px 60px}.welcome-row{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:25px}.eyebrow{font-size:9px;letter-spacing:1.45px;font-weight:700;color:#9c9c96;margin-bottom:9px}.welcome-row h1,.view-title-row h1{font-family:var(--display);font-size:29px;letter-spacing:-1.15px;line-height:1.25;margin:0;font-weight:700}.wave{color:#e8a17c;font-size:22px;margin-left:3px}.page-subtitle{font-size:12px;color:#91928d;margin:7px 0 0}.date-pill{border:1px solid #e9e8e2;background:#fff;border-radius:9px;padding:9px 12px;display:flex;align-items:center;gap:9px;color:#777a75;font-size:10px}.date-pill-icon{font-size:15px;color:#8c80b7}.today-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(270px,.85fr);gap:27px;align-items:start}.primary-column,.right-column{min-width:0}.hero-card{height:220px;overflow:hidden;border-radius:17px;position:relative;background:linear-gradient(112deg,#e8e1f1 0%,#eee8f4 47%,#f3e9e2 100%);padding:24px 27px;display:flex;margin-bottom:25px}.hero-grain{position:absolute;inset:0;pointer-events:none;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E")}.hero-copy{position:relative;z-index:2;max-width:285px}.hero-overline{font-size:8px;letter-spacing:1.3px;font-weight:700;color:#7e7599;display:flex;gap:7px;align-items:center}.sun-dot{color:#d68f70;font-size:13px}.hero-copy h2{font-family:var(--display);font-size:25px;letter-spacing:-1px;line-height:1.2;margin:11px 0 7px;color:#464052}.hero-copy p{font-size:10px;color:#827c8c;margin:0 0 15px}.hero-button{border:0;background:#8275ad;color:#fff;border-radius:8px;padding:9px 13px;font-size:10px;font-weight:700;box-shadow:0 4px 9px #76699b30;transition:.2s}.hero-button span{margin-left:13px}.hero-art{position:absolute;right:0;top:0;width:49%;height:100%;overflow:hidden}.art-sun{position:absolute;width:94px;height:94px;right:79px;top:28px;border-radius:50%;background:linear-gradient(135deg,#f6c8a4,#e9a98f);box-shadow:0 0 0 13px #efc0a529,0 0 0 26px #efc0a51a}.art-orbit{position:absolute;border:1px solid #b7a8c570;border-radius:50%;transform:rotate(-27deg)}.orbit-one{width:240px;height:105px;right:14px;top:63px}.orbit-two{width:290px;height:140px;right:-8px;top:48px;transform:rotate(24deg)}.art-leaf{position:absolute;background:linear-gradient(145deg,#a9bda7,#779d8c);border-radius:100% 0 100% 0;transform:rotate(30deg);z-index:2}.leaf-one{width:46px;height:78px;right:49px;bottom:15px}.leaf-two{width:37px;height:64px;right:95px;bottom:4px;transform:rotate(-14deg);background:linear-gradient(145deg,#bdcbb1,#91a98e)}.art-ground{position:absolute;bottom:-46px;right:-20px;width:290px;height:90px;background:linear-gradient(130deg,#c4b9d5,#d5b7a9);border-radius:50%}.art-note{position:absolute;right:24px;bottom:18px;font-family:Georgia,serif;color:#766d81;font-size:9px;font-style:italic;z-index:3;transform:rotate(-5deg)}.art-note span{color:#b17e70;margin-right:5px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:0 1px 13px}.section-heading h2{font-family:var(--display);font-size:16px;letter-spacing:-.4px;margin:0}.section-heading p{font-size:10px;color:#a0a09b;margin:4px 0 0}.text-button{border:0;background:none;color:#8176a8;font-size:10px;font-weight:700;padding:7px 0}.text-button span{margin-left:5px}.focus-summary{border:1px solid #ebe9e4;background:#fff;border-radius:12px;display:flex;align-items:center;gap:12px;padding:11px 14px;margin-bottom:11px}.progress-ring{width:39px;height:39px;border-radius:50%;background:conic-gradient(#8b80b9 var(--progress,0%),#eeedf1 0);display:grid;place-items:center;position:relative;flex:none}.progress-ring:before{content:"";position:absolute;inset:4px;background:#fff;border-radius:50%}.progress-ring>div{position:relative;display:flex;flex-direction:column;align-items:center;line-height:1}.progress-ring strong{font-size:9px}.progress-ring small{font-size:6px;color:#aaa}.progress-copy{display:flex;flex-direction:column;gap:3px}.progress-copy strong{font-size:10px}.progress-copy span{font-size:9px;color:#a0a09a}.progress-spacer{flex:1}.progress-spark{color:#b4a9d2;font-size:18px}.task-list{display:flex;flex-direction:column;gap:7px}.task-row{background:#fff;border:1px solid #ecebe6;border-radius:11px;display:flex;align-items:center;gap:11px;padding:11px 12px;min-height:57px;transition:border-color .15s,transform .15s;position:relative}.task-row:hover{border-color:#dcd7eb;transform:translateY(-1px)}.task-check{width:17px;height:17px;border:1.5px solid #d2d1ce;border-radius:50%;background:#fff;display:grid;place-items:center;flex:none;color:#fff;font-size:10px;padding:0}.task-check:hover{border-color:#8a7fba}.task-row.completed .task-check{background:#8c80b9;border-color:#8c80b9}.task-row.completed .task-check:after{content:'✓'}.task-content{min-width:0;flex:1}.task-title{font-size:11px;font-weight:600;color:#484a47;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-row.completed .task-title{text-decoration:line-through;color:#aaa}.task-meta{display:flex;align-items:center;gap:8px;margin-top:5px;color:#a1a19b;font-size:9px}.task-project{display:flex;align-items:center;gap:4px}.mini-dot{width:6px;height:6px;border-radius:2px}.task-time{margin-left:auto;font-size:9px;color:#92928c;white-space:nowrap}.priority-mark{width:3px;height:24px;border-radius:5px;background:#d5d2cc}.priority-mark.high{background:#df9179}.priority-mark.medium{background:#d9bc79}.priority-mark.low{background:#91b19c}.task-more{border:0;background:none;color:#bab9b2;font-size:16px;padding:2px 4px;opacity:0}.task-row:hover .task-more{opacity:1}.add-inline{border:1px dashed #dcd9e6;background:transparent;border-radius:10px;margin-top:8px;width:100%;height:40px;text-align:left;padding:0 14px;color:#8d82b7;font-size:10px;font-weight:600}.add-inline span{font-size:17px;margin-right:8px;vertical-align:-1px}.right-column{display:flex;flex-direction:column;gap:15px}.card{background:#fff;border:1px solid #ecebe6;border-radius:14px;padding:17px}.card-heading{display:flex;justify-content:space-between;align-items:flex-start}.card-heading h3,.quick-capture-card h3{font-family:var(--display);font-size:14px;letter-spacing:-.3px;margin:0}.card-heading p{font-size:9px;color:#a0a09a;margin:4px 0 0}.more-button{border:0;background:none;color:#aaa;font-size:17px;line-height:12px}.agenda-date{display:flex;align-items:baseline;gap:6px;margin:16px 0 7px}.agenda-date strong{font-family:var(--display);font-size:12px}.agenda-date span{font-size:9px;color:#a2a29e}.agenda-list{display:flex;flex-direction:column}.agenda-item{display:grid;grid-template-columns:40px 1fr;gap:8px;min-height:49px;position:relative}.agenda-time{font-size:8px;color:#a3a39e;padding-top:10px}.agenda-event{border-left:2px solid #a99dd0;padding:7px 0 7px 10px;margin-left:1px}.agenda-event.task{border-color:#e5a184}.agenda-event strong{display:block;font-size:9px;font-weight:600;color:#51534f}.agenda-event span{display:block;color:#a3a39e;font-size:8px;margin-top:3px}.agenda-empty{font-size:10px;line-height:1.5;color:#a4a49f;padding:14px 0}.calendar-link{border:0;border-top:1px solid #f0efeb;background:none;width:100%;margin-top:8px;padding:13px 0 0;text-align:left;color:#8276ad;font-size:9px;font-weight:700}.calendar-link span{float:right}.quick-capture-card{display:grid;grid-template-columns:35px 1fr;gap:0 10px;background:#f6f4fa;border-color:#eeebf4;padding:15px}.quick-icon{width:31px;height:31px;border-radius:9px;background:#e9e4f3;color:#8a7eb4;display:grid;place-items:center;font-size:16px;grid-row:span 2}.quick-capture-card h3{font-size:12px;margin-top:2px}.quick-capture-card p{font-size:9px;color:#96919f;line-height:1.5;margin:4px 0 0}.capture-button{grid-column:2;border:0;background:#fff;border-radius:7px;color:#786da1;padding:8px 10px;text-align:left;font-size:9px;font-weight:700;margin-top:12px}.capture-button span{float:right;font-size:14px}.gentle-note{display:flex;gap:10px;padding:4px 6px;color:#9b968e}.gentle-note>span{font-size:17px;color:#b5aa98}.gentle-note p{font-size:9px;line-height:1.6;margin:0}.gentle-note strong{color:#77776f;font-size:9px}.hidden{display:none!important}.mobile-menu{display:none}.view-title-row{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:28px}.view-title-row h1{font-size:30px}.primary-button,.secondary-button{border-radius:8px;padding:10px 14px;font-size:10px;font-weight:700;border:0;transition:.2s}.primary-button{background:#877bb6;color:#fff;box-shadow:0 4px 10px #877bb629}.primary-button span{margin-left:9px}.secondary-button{background:#fff;border:1px solid #e9e8e3;color:#73756f}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.calendar-switch{background:#eeede8;padding:3px;border-radius:8px;display:flex;gap:2px}.calendar-mode{border:0;background:transparent;padding:7px 14px;border-radius:6px;color:#93938d;font-size:10px}.calendar-mode.active{background:#fff;color:#6d6296;box-shadow:0 1px 3px #0000000c;font-weight:700}.calendar-controls{display:flex;align-items:center;gap:13px;color:#777;font-size:10px}.calendar-controls button{border:1px solid var(--line);background:#fff;border-radius:6px;height:27px;min-width:27px;color:#777}.calendar-controls strong{font-size:10px;font-weight:700;color:#555}.calendar-controls .today-jump{padding:0 9px;font-size:9px}.week-calendar{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-height:490px}.week-day{border-right:1px solid #f0efeb;min-width:0}.week-day:last-child{border:0}.week-day-head{text-align:center;padding:17px 5px 14px;border-bottom:1px solid #efeee9}.week-day-head small{display:block;font-size:8px;color:#a6a69f;text-transform:uppercase;letter-spacing:.6px}.week-day-head strong{display:inline-grid;place-items:center;width:29px;height:29px;margin-top:7px;border-radius:50%;font-family:var(--display);font-size:13px}.week-day.today .week-day-head strong{background:#887cb7;color:#fff}.week-day-body{padding:9px 6px;display:flex;flex-direction:column;gap:6px}.calendar-chip{border:0;border-left:2px solid #a79acd;background:#f2eff8;border-radius:0 6px 6px 0;padding:7px 6px;text-align:left;font-size:8px;color:#625b78;line-height:1.35;min-height:41px;overflow-wrap:anywhere}.calendar-chip.task-chip{border-color:#e4a080;background:#fcf1eb;color:#805d4c}.calendar-chip small{display:block;font-size:7px;opacity:.7;margin-bottom:3px}.calendar-empty{color:#d2d0ca;text-align:center;padding-top:16px;font-size:10px}.calendar-legend{display:flex;gap:17px;align-items:center;padding:14px 3px;color:#92928c;font-size:9px}.calendar-legend span{display:flex;align-items:center;gap:6px}.calendar-legend i{width:7px;height:7px;border-radius:2px}.legend-task{background:#e4a080}.legend-event{background:#a79acd}.sync-hint{margin-left:auto;color:#aaa}.inbox-banner{display:flex;gap:13px;align-items:center;background:#f0edf7;border:1px solid #e9e5f2;border-radius:12px;padding:17px 18px;margin-bottom:18px}.inbox-banner-icon{width:34px;height:34px;border-radius:10px;background:#e2dcf0;color:#8579b1;display:grid;place-items:center;font-size:20px}.inbox-banner strong{font-size:11px}.inbox-banner p{font-size:9px;color:#96919f;margin:4px 0 0}.full-task-list .task-row{padding:13px 15px}.empty-state{text-align:center;padding:65px 15px;color:#a3a29d}.empty-state>span{font-size:33px;color:#b0a6cf}.empty-state h3{font-family:var(--display);font-size:17px;color:#555;margin:8px 0}.empty-state p{font-size:11px}.completed-stats{display:flex;align-items:center;gap:15px;background:#f1eee8;border:1px solid #ebe7df;border-radius:12px;padding:17px 20px;margin-bottom:20px}.completed-stats strong{font-family:var(--display);font-size:24px;color:#8379a8}.completed-stats span{font-size:10px;color:#898981}.project-overview{display:flex;align-items:center;gap:15px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:20px;margin-bottom:29px}.project-big-dot{width:38px;height:38px;border-radius:12px;background:#f0edf8;display:grid;place-items:center;font-size:16px}.project-overview-copy{flex:1}.project-overview-copy strong{font-size:12px}.project-overview-copy p{font-size:10px;color:#999;margin:5px 0 0}.project-progress{width:125px}.project-progress-line{height:5px;background:#efeee9;border-radius:6px;overflow:hidden;margin-bottom:5px}.project-progress-line span{display:block;height:100%;background:#8b80b9;border-radius:6px}.project-progress small{font-size:8px;color:#a1a19b}.settings-layout{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:20px;align-items:start}.settings-main{display:flex;flex-direction:column;gap:15px}.settings-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:19px}.settings-card-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:17px}.settings-card-head h3{font-family:var(--display);font-size:13px;margin:0}.settings-card-head p{font-size:9px;color:#9a9a94;margin:5px 0 0}.settings-icon{width:31px;height:31px;border-radius:9px;background:#f1eef7;color:#897db5;display:grid;place-items:center;font-size:16px}.integration-row{display:flex;align-items:center;gap:11px;padding:12px 0;border-top:1px solid #f0efeb}.integration-logo{width:31px;height:31px;border:1px solid #eee;border-radius:9px;display:grid;place-items:center;font-weight:700;font-size:15px}.google-logo{color:#4285f4}.apple-logo{color:#363636;font-size:16px}.integration-copy{display:flex;flex-direction:column;gap:4px;flex:1}.integration-copy strong,.setting-toggle-row strong{font-size:10px}.integration-copy small,.setting-toggle-row small{font-size:8px;color:#9d9d97}.coming-soon{font-size:8px;color:#999;border:1px solid #eeede8;background:#fbfaf8;border-radius:5px;padding:4px 6px}.settings-footnote,.data-note{font-size:8px;color:#a3a39c;line-height:1.6;background:#faf9f6;padding:10px;border-radius:7px;margin:10px 0 0}.settings-actions{display:flex;gap:8px;margin-top:14px}.setting-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-top:1px solid #f0efeb}.setting-toggle-row div{display:flex;flex-direction:column;gap:5px;max-width:75%}.toggle{width:34px;height:19px;border-radius:20px;background:#e5e4df;border:0;padding:2px;transition:.2s}.toggle span{width:15px;height:15px;display:block;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0002;transition:.2s}.toggle.on{background:#8d81bb}.toggle.on span{transform:translateX(15px)}.settings-tip{background:linear-gradient(145deg,#eae4f3,#f3eae2);border-radius:13px;padding:20px;min-height:190px}.settings-tip>span{font-size:20px;color:#8f80b4}.settings-tip h3{font-family:var(--display);font-size:14px;margin:12px 0 7px}.settings-tip p{font-size:10px;color:#88818f;line-height:1.6;margin:0}.modal-backdrop{position:fixed;inset:0;background:#25252c66;backdrop-filter:blur(4px);display:grid;place-items:center;padding:20px;z-index:100;animation:fadeIn .15s ease}.modal{width:min(100%,510px);max-height:92vh;overflow:auto;background:#fff;border-radius:17px;padding:25px;box-shadow:0 20px 70px #25252c30;animation:slideUp .18s ease}.small-modal{width:min(100%,440px)}.plan-modal{width:min(100%,570px)}.modal-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:19px}.modal-top h2{font-family:var(--display);font-size:22px;letter-spacing:-.7px;margin:0}.modal-top .eyebrow{margin-bottom:6px}.close-modal{border:0;background:#f5f4f1;color:#8d8d87;width:29px;height:29px;border-radius:8px;font-size:20px;line-height:20px}.form-label{display:block;font-size:9px;font-weight:700;color:#656762;margin:14px 0 7px}.form-label span{font-weight:400;color:#aaa;margin-left:3px}.text-input{width:100%;border:1px solid #e8e7e1;background:#fcfbf9;border-radius:8px;padding:10px 11px;outline:none;color:#454744;font-size:10px;resize:vertical}.text-input:focus{border-color:#a89dcc;box-shadow:0 0 0 3px #8b80b916}.task-name-input{font-size:12px;padding:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px;padding-top:15px;border-top:1px solid #f0efeb}.color-options{display:flex;gap:9px}.color-choice{width:23px;height:23px;border-radius:50%;background:var(--swatch);border:3px solid #fff;box-shadow:0 0 0 1px #e5e3dd}.color-choice.selected{box-shadow:0 0 0 2px #8378ae}.plan-intro{font-size:10px;color:#92928c;line-height:1.6;margin:-6px 0 16px}.plan-summary{background:#f2eff8;border-radius:9px;padding:12px 14px;display:flex;justify-content:space-between;color:#6f6692;font-size:9px;margin-bottom:12px}.plan-summary strong{font-size:11px}.plan-list{display:flex;flex-direction:column;gap:7px;max-height:310px;overflow:auto}.plan-item{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:9px;padding:10px}.plan-item-time{font-size:9px;color:#8378ad;font-weight:700;width:46px}.plan-item-copy{display:flex;flex-direction:column;gap:3px;flex:1}.plan-item-copy strong{font-size:10px}.plan-item-copy small{font-size:8px;color:#aaa}.plan-item input{accent-color:#887cb7}.toast{position:fixed;bottom:23px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#33353a;color:#fff;padding:11px 16px;border-radius:9px;font-size:10px;box-shadow:0 8px 25px #0002;z-index:200;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}kbd{border:1px solid #e9e8e3;border-radius:4px;padding:2px 4px;font-size:8px;color:#aaa;background:#faf9f7}.command-hint{position:fixed;right:25px;bottom:22px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 13px;box-shadow:var(--shadow);font-size:9px;color:#888;z-index:50}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes slideUp{from{opacity:.6;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1150px){.page-content{padding-left:30px;padding-right:30px}.topbar{padding:0 30px}.today-grid{grid-template-columns:minmax(0,1.45fr) minmax(245px,.85fr);gap:17px}.hero-card{height:205px}.hero-art{width:45%}.art-note{right:8px}.sidebar{width:225px}.main-area{margin-left:225px}}
@media(max-width:900px){.sidebar{transform:translateX(-100%);transition:transform .25s;box-shadow:10px 0 30px #0000000a}.sidebar.open{transform:translateX(0)}.main-area{margin-left:0}.mobile-menu{display:block;border:0;background:none;color:#777;font-size:17px;margin-right:13px}.topbar{justify-content:flex-start;padding:0 22px}.breadcrumb{flex:1}.topbar-actions{gap:10px}.page-content{padding:29px 22px 50px}.today-grid{grid-template-columns:minmax(0,1.5fr) minmax(230px,.9fr)}}
@media(max-width:680px){.topbar{height:60px;padding:0 15px}.search-wrap{width:35px;justify-content:center;padding:0}.search-wrap input,.search-wrap kbd{display:none}.topbar-actions{gap:8px}.page-content{padding:25px 15px 40px}.welcome-row{margin-bottom:18px}.welcome-row h1{font-size:24px}.date-pill{padding:8px;font-size:0;gap:0}.date-pill-icon{font-size:16px}.today-grid{grid-template-columns:1fr}.hero-card{height:195px;padding:20px}.hero-copy h2{font-size:22px}.hero-art{width:42%;opacity:.84}.art-sun{right:36px;width:70px;height:70px}.orbit-one{right:-54px}.orbit-two{right:-70px}.art-note{display:none}.right-column{display:grid;grid-template-columns:1fr 1fr;align-items:start}.agenda-card{grid-row:span 2}.gentle-note{grid-column:1/-1}.view-title-row{align-items:flex-start;gap:10px}.view-title-row h1{font-size:25px}.view-title-row .primary-button{white-space:nowrap;padding:9px}.calendar-toolbar{align-items:flex-start;gap:10px;flex-direction:column}.calendar-controls{width:100%;justify-content:space-between}.week-calendar{overflow-x:auto;grid-template-columns:repeat(7,minmax(92px,1fr))}.calendar-legend{flex-wrap:wrap}.sync-hint{margin-left:0;width:100%}.settings-layout{grid-template-columns:1fr}.settings-aside{display:none}.calendar-legend{gap:10px}.project-progress{width:85px}.modal{padding:20px}.welcome-row .eyebrow{font-size:8px}}
@media(max-width:420px){.right-column{grid-template-columns:1fr}.agenda-card{grid-row:auto}.quick-capture-card{max-width:none}.gentle-note{grid-column:auto}.hero-art{opacity:.55}.form-grid{gap:8px}.topbar-actions .avatar-small{display:none}.breadcrumb{font-size:10px}}

.modal-actions-spacer{flex:1}.delete-task-button{border:0;background:none;color:#c17e70;font-size:9px;font-weight:700;padding:8px 2px}.delete-task-button:hover{text-decoration:underline}

/* PWA polish */
html { min-height: 100%; -webkit-text-size-adjust: 100%; }
body { min-height: 100vh; min-height: 100dvh; overscroll-behavior-y: none; }
button, input, select, textarea { touch-action: manipulation; }
button { -webkit-tap-highlight-color: transparent; }
.install-card .settings-actions { margin-top: 10px; }
.install-card .primary-button { min-height: 42px; }
@media(max-width:680px) {
  body { padding-bottom: env(safe-area-inset-bottom); }
  .topbar { padding-top: env(safe-area-inset-top); }
  .page-content { padding-bottom: calc(40px + env(safe-area-inset-bottom)); }
  .modal-backdrop { padding: 12px; align-items: end; }
  .modal { max-height: calc(94dvh - env(safe-area-inset-top)); border-bottom-left-radius: 14px; border-bottom-right-radius: 14px; }
  .task-row { min-height: 58px; }
  .task-check, .task-more, .icon-button, .mobile-menu { min-width: 40px; min-height: 40px; }
}

/* Appearance: theme selector */
.theme-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.theme-option{display:flex;align-items:center;gap:10px;min-height:58px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--ink);font-size:11px;font-weight:600;text-align:left;transition:border-color .18s,background .18s,transform .18s}
.theme-option:hover{transform:translateY(-1px);border-color:var(--purple)}
.theme-option.active{border-color:var(--purple);background:var(--purple-soft);box-shadow:0 0 0 2px color-mix(in srgb,var(--purple) 14%,transparent)}
.theme-preview{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-size:16px;flex:none}

.language-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.language-option{display:flex;align-items:center;gap:10px;min-height:58px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--ink);font-size:11px;font-weight:600;text-align:left;transition:border-color .18s,background .18s,transform .18s}
.language-option:hover{transform:translateY(-1px);border-color:var(--purple)}
.language-option.active{border-color:var(--purple);background:var(--purple-soft);box-shadow:0 0 0 2px color-mix(in srgb,var(--purple) 14%,transparent)}
.language-flag{font-size:18px}
.theme-preview-light{background:#f7f4ec;color:#a17e45;border:1px solid #e9e3d5}
.theme-preview-dark{background:#242632;color:#d8cff8;border:1px solid #3c3f4c}
.theme-preview-system{background:linear-gradient(90deg,#f7f4ec 50%,#242632 50%);color:#8d83aa;border:1px solid #c8c5c5}
.profile-settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 0 4px}
.profile-settings-row>div{display:flex;flex-direction:column;gap:4px}
.profile-settings-row strong{font-size:11px;color:var(--ink)}
.profile-settings-row small{font-size:9px;color:var(--muted)}
.profile-name-actions{margin-top:10px;padding-top:0;border:0}
.profile-list-heading{display:flex;align-items:center;justify-content:space-between;margin:19px 0 8px;padding-top:15px;border-top:1px solid var(--line)}
.profile-list-heading strong{font-size:10px;color:var(--ink)}
.profile-list-heading span{font-size:9px;color:var(--muted)}
.local-profile-list{display:flex;flex-direction:column;gap:6px;max-height:190px;overflow:auto}
.local-profile-option{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--ink);text-align:left}
.local-profile-option.active{border-color:var(--purple);background:var(--purple-soft)}
.local-profile-avatar{width:29px;height:29px;display:grid;place-items:center;flex:none;border-radius:50%;background:#e9e3f4;color:#72659e;font-size:11px;font-weight:700}
.local-profile-copy{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}
.local-profile-copy strong{font-size:10px}
.local-profile-copy small{font-size:8px;color:var(--muted)}
.local-profile-check{font-size:13px;color:var(--purple)}
.add-profile-form{padding-top:5px}
.add-profile-row{display:flex;gap:8px;align-items:center}
.add-profile-row .text-input{flex:1;min-width:0}
.profile-privacy-note{margin-top:14px}

/* Dark theme tokens and component surfaces. The saved preference is per local profile. */
html[data-theme="dark"]{color-scheme:dark;--bg:#1e1b23;--surface:#28242e;--surface-2:#312c37;--ink:#f4f0f6;--muted:#b7afbd;--line:#433c4a;--purple:#b4a5e8;--purple-dark:#cbbef3;--purple-soft:#393345;--coral:#f0aa91;--sage:#a7c4b2;--shadow:0 8px 28px rgba(0,0,0,.26)}
html[data-theme="dark"]{background-color:var(--bg)}html[data-theme="dark"] body{background:var(--bg);color:var(--ink)}
html[data-theme="dark"] .sidebar,html[data-theme="dark"] .settings-card,html[data-theme="dark"] .card,html[data-theme="dark"] .task-row,html[data-theme="dark"] .focus-summary,html[data-theme="dark"] .date-pill,html[data-theme="dark"] .week-calendar,html[data-theme="dark"] .project-overview,html[data-theme="dark"] .modal,html[data-theme="dark"] .search-wrap,html[data-theme="dark"] .icon-button,html[data-theme="dark"] .command-hint{background:var(--surface);border-color:var(--line);color:var(--ink)}
html[data-theme="dark"] .topbar{background:#231f29;border-color:var(--line)}
html[data-theme="dark"] .profile-switcher,html[data-theme="dark"] .search-wrap input,html[data-theme="dark"] .text-input{background:var(--surface-2);border-color:var(--line);color:var(--ink)}
html[data-theme="dark"] .profile-switcher:hover,html[data-theme="dark"] .nav-item:hover{background:#393440;color:var(--ink)}
html[data-theme="dark"] .nav-item{color:#c0b9c6}
html[data-theme="dark"] .nav-item.active{background:var(--purple-soft);color:var(--purple-dark)}
html[data-theme="dark"] .focus-card,html[data-theme="dark"] .inbox-banner,html[data-theme="dark"] .completed-stats,html[data-theme="dark"] .plan-summary{background:#332e3b;border-color:#4a4153;color:#e2d9ef}
html[data-theme="dark"] .focus-card p,html[data-theme="dark"] .settings-card-head p,html[data-theme="dark"] .page-subtitle,html[data-theme="dark"] .section-heading p,html[data-theme="dark"] .task-meta,html[data-theme="dark"] .task-time,html[data-theme="dark"] .integration-copy small,html[data-theme="dark"] .setting-toggle-row small,html[data-theme="dark"] .settings-footnote,html[data-theme="dark"] .data-note{color:var(--muted)}
html[data-theme="dark"] .hero-card{background:linear-gradient(112deg,#302b40 0%,#353043 47%,#3b302f 100%)}
html[data-theme="dark"] .hero-copy h2{color:#f1edf8}
html[data-theme="dark"] .hero-copy p,html[data-theme="dark"] .hero-overline{color:#c2b9d4}
html[data-theme="dark"] .hero-art{opacity:.72}
html[data-theme="dark"] .week-day,html[data-theme="dark"] .week-day-head,html[data-theme="dark"] .integration-row,html[data-theme="dark"] .setting-toggle-row,html[data-theme="dark"] .modal-actions{border-color:var(--line)}
html[data-theme="dark"] .week-day-head strong{color:var(--ink)}
html[data-theme="dark"] .calendar-chip{background:#3a3447;color:#e0d7f4;border-color:var(--purple)}
html[data-theme="dark"] .calendar-chip.task-chip{background:#403136;color:#f2c5b2;border-color:#d9967c}
html[data-theme="dark"] .list-calendar-item,html[data-theme="dark"] .plan-item{background:var(--surface-2);border-color:var(--line);color:var(--ink)}
html[data-theme="dark"] .project-overview,html[data-theme="dark"] .focus-summary,html[data-theme="dark"] .task-row{box-shadow:none}
html[data-theme="dark"] .task-title,html[data-theme="dark"] .section-heading h2,html[data-theme="dark"] .card-heading h3,html[data-theme="dark"] .settings-card-head h3,html[data-theme="dark"] .profile-copy strong,html[data-theme="dark"] .breadcrumb strong{color:var(--ink)}
html[data-theme="dark"] .breadcrumb,html[data-theme="dark"] .eyebrow,html[data-theme="dark"] .nav-label,html[data-theme="dark"] .agenda-date span{color:#a5a6b2}
html[data-theme="dark"] .task-project{background:#3a3447;color:#e0d7f4}
html[data-theme="dark"] .modal-backdrop{background:#08090dbb}
html[data-theme="dark"] .close-modal,html[data-theme="dark"] kbd{background:#393440;border-color:#514957;color:#ded6e5}
html[data-theme="dark"] .text-input::placeholder{color:#777986}
html[data-theme="dark"] .settings-tip{background:linear-gradient(145deg,#393345,#403238);color:var(--ink)}
html[data-theme="dark"] .settings-tip p{color:var(--muted)}
html[data-theme="dark"] .settings-icon{background:#3a3447;color:#ded4f4}
html[data-theme="dark"] .coming-soon{background:#342f39;border-color:#4a424d;color:#c8c0cc}
html[data-theme="dark"] .settings-footnote,html[data-theme="dark"] .data-note{background:#302b35}
html[data-theme="dark"] .empty-state h3,html[data-theme="dark"] .empty-state{color:#a8a9b4}
html[data-theme="dark"] .empty-state>span{color:#b7a9e2}
html[data-theme="dark"] .theme-option{background:var(--surface-2);color:var(--ink);border-color:var(--line)}
html[data-theme="dark"] .theme-option.active{background:var(--purple-soft);border-color:var(--purple)}
html[data-theme="dark"] .language-option{background:var(--surface-2);color:var(--ink);border-color:var(--line)}
html[data-theme="dark"] .language-option.active{background:var(--purple-soft);border-color:var(--purple)}
html[data-theme="dark"] .local-profile-option{background:var(--surface-2);border-color:var(--line);color:var(--ink)}
html[data-theme="dark"] .local-profile-option.active{background:var(--purple-soft);border-color:var(--purple)}
html[data-theme="dark"] .local-profile-avatar{background:#423a50;color:#e2d8f5}
html[data-theme="dark"] .profile-list-heading{border-color:var(--line)}
html[data-theme="dark"] .date-pill,html[data-theme="dark"] .agenda-date{color:var(--ink)}
html[data-theme="dark"] .quick-capture-card,html[data-theme="dark"] .gentle-note{background:var(--surface);border-color:var(--line)}
html[data-theme="dark"] .progress-ring:before{background:var(--surface)}
html[data-theme="dark"] .progress-ring{background:conic-gradient(var(--purple) var(--progress,0%),#49414e 0)}
html[data-theme="dark"] .progress-copy span{color:#a5a6b2}
html[data-theme="dark"] .task-check{border-color:#626471}
html[data-theme="dark"] .list-calendar-day{border-color:var(--line)}
html[data-theme="dark"] .calendar-controls strong{color:var(--ink)}
html[data-theme="dark"] .add-inline{color:#bdb2e6}
@media(max-width:680px){.theme-options{gap:7px}.theme-option{padding:8px 7px;gap:6px;justify-content:center;flex-direction:column;font-size:10px}.theme-preview{width:31px;height:31px}.profile-modal{max-height:90dvh}}
@media(max-width:680px){.language-options{gap:7px}.language-option{padding:8px 7px;gap:6px;justify-content:center;flex-direction:column;font-size:10px}.language-flag{font-size:16px}}

/* Dayflow mobile app experience — iPhone, Android and small tablets */
:root { color-scheme: light; }
html { min-height: 100%; scroll-behavior: smooth; }
body { min-height: 100svh; min-height: 100dvh; -webkit-touch-callout: none; }
.app-shell { min-height: 100svh; min-height: 100dvh; }
.mobile-tabbar { display: none; }

@media (max-width: 680px) {
  html, body { width: 100%; overflow-x: hidden; background-color: var(--bg); }
  body { padding: 0; background: var(--bg); }
  .app-shell, .main-area { background-color: var(--bg); }
  .app-shell { min-height: 100svh; min-height: 100dvh; }
  .main-area { min-height: 100svh; min-height: 100dvh; }
  .topbar {
    position: sticky; top: 0; z-index: 18;
    height: calc(58px + env(safe-area-inset-top));
    min-height: calc(58px + env(safe-area-inset-top));
    padding: env(safe-area-inset-top) 13px 0;
    justify-content: flex-start;
    gap: 7px;
    background: color-mix(in srgb, var(--bg) 92%, transparent);
    -webkit-backdrop-filter: saturate(150%) blur(18px);
    backdrop-filter: saturate(150%) blur(18px);
  }
  /* On phones, the bottom More tab is the single drawer trigger. Keep the
     topbar hamburger for 681–900px tablet layouts, where the tabbar is hidden. */
  .mobile-menu { display: none !important; }
  .breadcrumb { min-width: 0; flex: 1; gap: 6px; overflow: hidden; white-space: nowrap; font-size: 11px; }
  .breadcrumb > span:first-child, .crumb-slash { display: none; }
  .breadcrumb strong { overflow: hidden; text-overflow: ellipsis; font-size: 13px; }
  .topbar-actions { flex: 0 0 auto; gap: 7px; }
  .search-wrap { width: 38px; height: 40px; justify-content: center; padding: 0; border-radius: 12px; background: var(--surface); border-color: var(--line); }
  .search-wrap > span { font-size: 21px; }
  .search-wrap input, .search-wrap kbd { display: none; }
  .search-wrap.search-open {
    position: absolute; left: 12px; right: 12px; top: calc(env(safe-area-inset-top) + 8px);
    width: auto; height: 42px; justify-content: flex-start; padding: 0 12px;
    box-shadow: 0 10px 32px rgba(25,25,30,.14); z-index: 25;
  }
  .search-wrap.search-open input { display: block; min-width: 0; font-size: 16px; }
  .search-wrap.search-open > span { flex: none; }
  .search-wrap.search-open ~ .icon-button, .topbar:has(.search-open) .breadcrumb { visibility: hidden; }
  .icon-button { width: 38px; height: 40px; border-radius: 12px; font-size: 18px; background: var(--surface); }
  .topbar-actions .avatar-small { display: none; }

  .page-content { width: 100%; max-width: 100%; padding: 22px 15px calc(104px + env(safe-area-inset-bottom)); }
  .welcome-row { gap: 10px; align-items: center; margin-bottom: 18px; }
  .welcome-row h1 { max-width: 100%; font-size: clamp(21px, 6vw, 25px); line-height: 1.18; letter-spacing: -.9px; }
  .welcome-row .eyebrow { margin-bottom: 7px; font-size: 8px; letter-spacing: 1.15px; }
  .page-subtitle { font-size: 12px; line-height: 1.45; }
  .date-pill { flex: none; padding: 9px; min-width: 36px; min-height: 36px; border-radius: 11px; }
  .today-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 19px; }
  .hero-card { min-height: 176px; height: auto; padding: 19px 18px; border-radius: 18px; margin-bottom: 21px; }
  .hero-copy { max-width: 66%; }
  .hero-copy h2 { font-size: clamp(20px, 5.7vw, 24px); line-height: 1.15; margin: 10px 0 7px; }
  .hero-copy p { max-width: 230px; font-size: 11px; line-height: 1.4; }
  .hero-button { min-height: 40px; padding: 10px 13px; border-radius: 11px; font-size: 11px; }
  .hero-art { width: 43%; opacity: .8; transform: scale(.88); transform-origin: right center; }
  .section-heading { margin-bottom: 11px; }
  .section-heading h2 { font-size: 17px; }
  .section-heading p { font-size: 11px; }
  .focus-summary { min-height: 76px; padding: 12px 14px; border-radius: 15px; margin-bottom: 10px; }
  .progress-ring { width: 48px; height: 48px; }
  .progress-copy strong { font-size: 12px; }
  .progress-copy span { font-size: 10px; }
  .task-list { gap: 8px; }
  .task-row { min-height: 66px; padding: 11px 10px; gap: 10px; border-radius: 14px; }
  .task-content { min-width: 0; }
  .task-title { font-size: 12px; line-height: 1.35; overflow-wrap: anywhere; }
  .task-meta { flex-wrap: wrap; gap: 5px 8px; font-size: 9px; }
  .task-check { width: 25px; height: 25px; min-width: 25px; min-height: 25px; }
  .task-time { font-size: 10px; }
  .task-more { width: 34px; min-width: 34px; min-height: 40px; }
  .add-inline { min-height: 48px; width: 100%; border-radius: 13px; font-size: 12px; }
  .right-column { display: grid; grid-template-columns: minmax(0,1fr); gap: 11px; }
  .agenda-card, .quick-capture-card, .gentle-note { width: 100%; border-radius: 15px; }
  .agenda-card { padding: 16px; }
  .quick-capture-card { padding: 15px; grid-template-columns: 38px minmax(0,1fr); }
  .quick-capture-card .capture-button { grid-column: 1/-1; min-height: 42px; width: 100%; }
  .gentle-note { padding: 13px 15px; }

  .view-title-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 17px; }
  .view-title-row > div { flex: 1 1 100%; min-width: 0; }
  .view-title-row h1 { font-size: 25px; letter-spacing: -.8px; }
  .view-title-row .primary-button { min-height: 42px; padding: 10px 13px; font-size: 11px; }
  .calendar-toolbar { gap: 11px; }
  .calendar-switch { width: 100%; }
  .calendar-switch button { flex: 1; min-height: 39px; }
  .calendar-controls { display: grid; grid-template-columns: 38px minmax(0,1fr) 38px auto; gap: 7px; align-items: center; }
  .calendar-controls button { min-height: 39px; border-radius: 10px; }
  .calendar-controls strong { font-size: 11px; text-align: center; white-space: nowrap; }
  .week-calendar { margin-left: -15px; margin-right: -15px; padding: 0 15px 9px; grid-template-columns: repeat(7,minmax(112px,1fr)); gap: 8px; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; }
  .week-day { scroll-snap-align: start; border-radius: 13px; min-height: 190px; }
  .calendar-legend { gap: 9px 13px; font-size: 10px; }
  .sync-hint { line-height: 1.45; }
  .inbox-banner { padding: 14px; border-radius: 14px; gap: 11px; }
  .inbox-banner p { line-height: 1.45; }
  .completed-stats { border-radius: 14px; }
  .settings-layout { display: block; }
  .settings-main { gap: 12px; }
  .settings-card { padding: 16px; border-radius: 15px; }
  .settings-card-head h3 { font-size: 14px; }
  .settings-card-head p { font-size: 11px; line-height: 1.45; }
  .settings-actions { flex-wrap: wrap; }
  .settings-actions button { flex: 1 1 auto; min-height: 42px; }
  .theme-option { min-height: 74px; }

  /* Native-feeling bottom tabs with room for the iPhone home indicator. */
  .mobile-tabbar {
    position: fixed; display: grid; grid-template-columns: repeat(5,minmax(0,1fr));
    left: 0; right: 0; bottom: 0; z-index: 90; isolation: isolate; pointer-events: auto;
    min-height: calc(66px + env(safe-area-inset-bottom));
    padding: 7px 8px calc(7px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--line);
    background: color-mix(in srgb, var(--surface) 94%, transparent);
    -webkit-backdrop-filter: saturate(160%) blur(22px);
    backdrop-filter: saturate(160%) blur(22px);
    box-shadow: 0 -8px 30px rgba(35,32,45,.055);
  }
  .mobile-tab { position: relative; z-index: 1; min-width: 0; border: 0; background: transparent; color: var(--muted); display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 3px; border-radius: 12px; font-size: 9px; font-weight: 600; padding: 2px 0; pointer-events: auto; touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
  .mobile-tab-icon { font-size: 21px; line-height: 1.1; height: 23px; display: grid; place-items: center; }
  .mobile-tab.active { color: var(--purple-dark); }
  .mobile-tab.active .mobile-tab-icon { transform: translateY(-1px); }
  .mobile-tab[aria-expanded="true"] { background: var(--purple-soft); color: var(--purple-dark); }
  .mobile-tab:focus-visible { outline: 2px solid var(--purple); outline-offset: 2px; }
  #mobileMoreButton { position: relative; z-index: 10; isolation: isolate; min-width: 44px; min-height: 48px; pointer-events: auto; touch-action: manipulation; -webkit-user-select: none; user-select: none; }
  .mobile-add { align-self: center; justify-self: center; width: 48px; height: 48px; margin-top: -17px; border: 4px solid var(--surface); border-radius: 17px; background: var(--purple); color: white; font-size: 28px; line-height: 1; display: grid; place-items: center; box-shadow: 0 7px 18px rgba(130,117,173,.32); }
  .mobile-add span { transform: translateY(-1px); }

  /* Sheets and controls sized for fingers and the iOS keyboard. */
  .modal-backdrop { align-items: flex-end; padding: 0; padding-top: max(12px, env(safe-area-inset-top)); }
  .modal { width: 100%; max-width: none; max-height: min(90dvh, 820px); overflow: auto; overscroll-behavior: contain; padding: 21px 18px calc(19px + env(safe-area-inset-bottom)); border-radius: 22px 22px 0 0; box-shadow: 0 -10px 50px rgba(15,15,20,.17); }
  .modal::before { content: ''; display: block; width: 38px; height: 4px; margin: -10px auto 17px; border-radius: 99px; background: var(--line); }
  .modal-top { align-items: flex-start; gap: 12px; }
  .modal-top h2 { font-size: 21px; }
  .close-modal { width: 40px; height: 40px; min-width: 40px; border-radius: 12px; }
  .form-label { display: block; margin: 14px 0 7px; font-size: 11px; }
  .text-input, .search-wrap input, input, select, textarea { font-size: 16px; }
  .text-input { min-height: 46px; padding: 11px 12px; border-radius: 11px; }
  textarea.text-input { min-height: 78px; }
  .form-grid { gap: 10px; }
  .modal-actions { position: sticky; bottom: calc(-19px - env(safe-area-inset-bottom)); padding: 12px 0 calc(3px + env(safe-area-inset-bottom)); margin-top: 16px; background: var(--surface); }
  .modal-actions button { min-height: 44px; }
  .profile-modal { max-height: 90dvh; }
  .local-profile-list { max-height: 24dvh; }
  .toast { bottom: calc(82px + env(safe-area-inset-bottom)); max-width: calc(100vw - 30px); }
}

@media (max-width: 380px) {
  .page-content { padding-left: 12px; padding-right: 12px; }
  .hero-card { padding-left: 15px; padding-right: 15px; }
  .hero-copy { max-width: 72%; }
  .hero-art { opacity: .58; transform: scale(.78); }
  .date-pill { display: none; }
  .task-row { gap: 8px; padding-left: 9px; padding-right: 8px; }
  .task-time { display: none; }
  .mobile-tabbar { padding-left: 5px; padding-right: 5px; }
  .mobile-tab { font-size: 8px; }
}

@media (min-width: 681px) and (max-width: 900px) {
  .page-content { padding-left: 24px; padding-right: 24px; }
  .today-grid { grid-template-columns: minmax(0,1fr); }
  .right-column { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .agenda-card { grid-row: span 2; }
}

@media (hover: none) and (pointer: coarse) {
  button, .task-row, .nav-item { -webkit-tap-highlight-color: transparent; }
  button:active { transform: scale(.98); }
  .new-task-button:hover, .primary-button:hover, .hero-button:hover, .theme-option:hover { transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

html[data-theme="dark"] .mobile-tabbar { background: color-mix(in srgb, var(--surface) 94%, transparent); box-shadow: 0 -8px 30px rgba(0,0,0,.26); }
html[data-theme="dark"] .mobile-menu, html[data-theme="dark"] .search-wrap, html[data-theme="dark"] .icon-button { background: var(--surface); border-color: var(--line); color: var(--ink); }
html[data-theme="dark"] .mobile-add { border-color: var(--surface); }

@media(max-width:900px){.sidebar.open{box-shadow:0 0 0 100vmax rgba(25,24,34,.28),10px 0 30px rgba(0,0,0,.12)}}
@media(max-width:680px){.sidebar{width:min(310px,calc(100vw - 54px));padding-top:calc(22px + env(safe-area-inset-top));padding-bottom:calc(17px + env(safe-area-inset-bottom));height:100dvh;max-height:100dvh;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}.sidebar.open{z-index:35}}

/* Dayflow v4 — calmer visual hierarchy, better planning and native-feeling touch UI */
:root {
  --df-radius-card: 18px;
  --df-radius-control: 13px;
  --df-accent-wash: color-mix(in srgb, var(--purple) 10%, var(--surface));
}
html { scroll-behavior: smooth; }
body { line-height: 1.48; }
button, .task-row, .calendar-chip { transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid color-mix(in srgb, var(--purple) 45%, transparent); outline-offset: 2px; }
.topbar { backdrop-filter: saturate(160%) blur(18px); -webkit-backdrop-filter: saturate(160%) blur(18px); }
.page-content { max-width: 1500px; }
.hero-card { border-radius: 22px; box-shadow: 0 12px 34px rgba(86,72,118,.10); }
.hero-button, .primary-button, .new-task-button { border-radius: 12px; }
.section-heading h2 { letter-spacing: -.35px; }
.task-row { border-radius: 14px; border: 1px solid var(--line); box-shadow: 0 2px 10px rgba(35,32,45,.025); }
.task-row:hover { border-color: color-mix(in srgb, var(--purple) 40%, var(--line)); box-shadow: 0 7px 20px rgba(35,32,45,.055); transform: translateY(-1px); }
.task-check { flex: none; }
.card, .settings-card, .focus-summary, .inbox-banner, .project-overview { border-radius: var(--df-radius-card); }
.focus-summary { box-shadow: 0 3px 16px rgba(45,38,70,.035); }
.agenda-item { min-height: 50px; }
.calendar-chip { border-radius: 10px; }
.text-input { border-radius: 12px; }

.planning-preferences-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-top: 15px; }
.planning-pref { display: flex; min-width: 0; flex-direction: column; gap: 7px; color: var(--muted); font-size: 11px; font-weight: 600; }
.planning-pref .text-input { min-height: 44px; font-size: 13px; }
.planning-pref-wide { grid-column: 1 / -1; }
.plan-protected { display: flex; align-items: center; gap: 11px; padding: 12px 14px; margin: 0 0 12px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface-2); }
.protected-icon { width: 34px; height: 34px; flex: none; display: grid; place-items: center; border-radius: 11px; background: var(--purple-soft); color: var(--purple-dark); font-size: 18px; }
.plan-protected > span:last-child { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.plan-protected strong { color: var(--ink); font-size: 11px; }
.plan-protected small { color: var(--muted); font-size: 9px; line-height: 1.4; }
.plan-item { display: flex; align-items: center; gap: 10px; min-height: 62px; border-radius: 13px; background: var(--surface); }
.plan-item > input { width: 18px; height: 18px; flex: none; accent-color: var(--purple); }
.plan-item-time { width: 58px; flex: none; font-size: 10px; }
.plan-item-copy { min-width: 0; }
.plan-item-copy strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.plan-item-copy small { font-size: 9px; }
.plan-priority { width: 7px; height: 7px; flex: none; border-radius: 50%; background: var(--purple); }
.plan-priority.high { background: var(--coral); }
.plan-priority.low { background: var(--sage); }
.plan-overflow { margin-top: 13px; padding: 13px 14px; border-radius: 13px; background: color-mix(in srgb, var(--coral) 10%, var(--surface)); border: 1px solid color-mix(in srgb, var(--coral) 28%, var(--line)); }
.plan-overflow strong { font-size: 11px; color: var(--ink); }
.plan-overflow p { margin: 4px 0 9px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.plan-overflow > div { display: flex; flex-wrap: wrap; gap: 6px; }
.plan-overflow > div span { padding: 5px 8px; border-radius: 8px; background: var(--surface); color: var(--ink); font-size: 9px; }
.plan-modal { max-width: 560px; }
.plan-modal .plan-list { max-height: min(42vh, 360px); padding: 1px 2px 4px; }

/* Full-screen PWA layout: content clears both the top safe area and the bottom tab bar. */
@media (max-width: 680px) {
  html, body { min-height: 100%; min-height: 100dvh; }
  body { padding-bottom: 0; }
  .app-shell { min-height: 100dvh; }
  .topbar { height: calc(60px + env(safe-area-inset-top)); min-height: calc(60px + env(safe-area-inset-top)); padding-top: env(safe-area-inset-top); padding-left: 14px; padding-right: 14px; position: sticky; top: 0; z-index: 25; background: color-mix(in srgb, var(--bg) 88%, transparent); }
  .page-content { padding: 20px 15px calc(104px + env(safe-area-inset-bottom)); }
  .welcome-row { align-items: flex-start; }
  .welcome-row h1 { font-size: clamp(23px, 6.2vw, 28px); letter-spacing: -1.1px; line-height: 1.16; }
  .page-subtitle { max-width: 34ch; line-height: 1.45; }
  .hero-card { min-height: 190px; height: auto; border-radius: 21px; padding: 19px 18px; }
  .hero-copy { max-width: 68%; }
  .hero-copy h2 { font-size: clamp(21px, 5.4vw, 25px); line-height: 1.12; }
  .hero-copy p { max-width: 26ch; font-size: 11px; line-height: 1.45; }
  .hero-button { min-height: 42px; padding: 10px 13px; }
  .task-heading { margin-top: 24px; }
  .task-row { min-height: 64px; padding: 10px 9px; border-radius: 14px; gap: 9px; }
  .task-title { line-height: 1.32; }
  .task-meta { flex-wrap: wrap; row-gap: 4px; }
  .focus-summary { padding: 12px; }
  .agenda-card, .quick-capture-card, .gentle-note { border-radius: 17px; }
  .mobile-tabbar { min-height: calc(70px + env(safe-area-inset-bottom)); padding: 7px 10px calc(8px + env(safe-area-inset-bottom)); grid-template-columns: repeat(5,minmax(0,1fr)); background: color-mix(in srgb, var(--surface) 91%, transparent); border-top-color: color-mix(in srgb, var(--line) 80%, transparent); }
  .mobile-tab { min-height: 48px; gap: 2px; border-radius: 13px; font-size: 9px; }
  .mobile-tab.active { background: var(--purple-soft); color: var(--purple-dark); }
  .mobile-tab-icon { font-size: 20px; }
  .mobile-add { width: 50px; height: 50px; border-radius: 17px; margin-top: -18px; box-shadow: 0 8px 22px rgba(111,94,162,.28); }
  .modal-backdrop { padding: max(10px, env(safe-area-inset-top)) 0 0; align-items: flex-end; }
  .modal { max-height: calc(94dvh - env(safe-area-inset-top)); border-radius: 23px 23px 0 0; padding: 20px 17px calc(18px + env(safe-area-inset-bottom)); }
  .modal-actions { bottom: calc(-18px - env(safe-area-inset-bottom)); padding-bottom: calc(8px + env(safe-area-inset-bottom)); }
  .plan-modal .plan-list { max-height: 35dvh; }
  .planning-preferences-grid { gap: 9px; }
  .planning-pref .text-input { min-height: 47px; }
  .toast { bottom: calc(82px + env(safe-area-inset-bottom)); }
}
@media (max-width: 390px) {
  .page-content { padding-left: 12px; padding-right: 12px; }
  .task-row { gap: 7px; }
  .task-content { min-width: 0; }
  .task-title { overflow-wrap: anywhere; }
  .mobile-tabbar { padding-left: 5px; padding-right: 5px; }
  .plan-item { gap: 7px; padding: 9px; }
  .plan-item-time { width: 51px; }
}
html[data-theme="dark"] .plan-protected { background: var(--surface-2); border-color: var(--line); }
html[data-theme="dark"] .plan-overflow { background: color-mix(in srgb, var(--coral) 9%, var(--surface)); border-color: color-mix(in srgb, var(--coral) 24%, var(--line)); }
html[data-theme="dark"] .plan-overflow > div span { background: var(--surface-2); }
html[data-theme="dark"] .mobile-tab.active { background: var(--purple-soft); }

/* Morning Briefing — the daily home base for Dayflow. */
.morning-briefing {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr);
  gap: 30px;
  position: relative;
  overflow: hidden;
  margin: 0 0 26px;
  padding: 25px 27px;
  border: 1px solid color-mix(in srgb, var(--purple) 17%, var(--line));
  border-radius: 21px;
  background:
    radial-gradient(circle at 92% 0%, rgba(235, 207, 187, .30), transparent 34%),
    linear-gradient(118deg, color-mix(in srgb, var(--purple-soft) 84%, var(--surface)), color-mix(in srgb, var(--surface) 91%, #f2e9e3));
  box-shadow: 0 12px 34px rgba(86,72,118,.075);
}
.briefing-main, .briefing-side { min-width: 0; position: relative; z-index: 1; }
.briefing-eyebrow { display: flex; align-items: center; gap: 8px; color: var(--purple-dark); font-size: 9px; font-weight: 800; letter-spacing: 1.2px; }
.briefing-eyebrow > span:first-child { color: var(--coral); font-size: 15px; }
.briefing-eyebrow i { width: 3px; height: 3px; border-radius: 50%; background: color-mix(in srgb, var(--muted) 70%, transparent); }
.briefing-eyebrow > span:last-child { color: var(--muted); font-size: 8px; letter-spacing: .8px; }
.briefing-main h2 { max-width: 590px; margin: 13px 0 7px; color: var(--ink); font-family: var(--display); font-size: clamp(23px, 2.2vw, 30px); line-height: 1.13; letter-spacing: -1.1px; }
.briefing-message { max-width: 58ch; min-height: 34px; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.briefing-metrics { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; margin-top: 20px; }
.briefing-metric { display: flex; min-width: 0; flex-direction: column; gap: 4px; padding: 10px 11px; border: 1px solid color-mix(in srgb, var(--line) 78%, transparent); border-radius: 11px; background: color-mix(in srgb, var(--surface) 74%, transparent); }
.briefing-metric > span { color: var(--muted); font-size: 7px; font-weight: 800; letter-spacing: 1px; }
.briefing-metric strong { color: var(--ink); font-family: var(--display); font-size: 20px; letter-spacing: -.7px; line-height: 1.1; }
.briefing-metric small { overflow: hidden; color: var(--muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.briefing-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 15px; }
.briefing-primary, .briefing-secondary { display: inline-flex; min-height: 39px; align-items: center; justify-content: center; gap: 10px; padding: 0 14px; border-radius: 10px; font-size: 10px; font-weight: 700; transition: transform .16s, filter .16s, background .16s; }
.briefing-primary { border: 1px solid var(--purple); background: var(--purple); color: #fff; box-shadow: 0 5px 13px color-mix(in srgb, var(--purple) 24%, transparent); }
.briefing-primary:hover { transform: translateY(-1px); filter: brightness(1.04); }
.briefing-primary span { font-size: 13px; }
.briefing-secondary { border: 1px solid var(--line); background: var(--surface); color: var(--ink); }
.briefing-secondary:hover { background: var(--surface-2); }
.briefing-side { display: flex; flex-direction: column; justify-content: center; padding-left: 26px; border-left: 1px solid color-mix(in srgb, var(--purple) 18%, var(--line)); }
.briefing-priority-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 9px; }
.briefing-side-eyebrow { color: var(--muted); font-size: 7px; font-weight: 800; letter-spacing: 1.15px; }
.briefing-priority-head h3 { margin: 4px 0 0; color: var(--ink); font-family: var(--display); font-size: 15px; letter-spacing: -.35px; }
.briefing-star { color: var(--purple); font-size: 23px; }
.briefing-priority-list { display: flex; flex-direction: column; gap: 6px; }
.briefing-priority { display: flex; width: 100%; min-width: 0; align-items: center; gap: 10px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 11px; background: color-mix(in srgb, var(--surface) 85%, transparent); color: var(--ink); text-align: left; transition: border-color .16s, transform .16s, background .16s; }
.briefing-priority:hover { transform: translateY(-1px); border-color: color-mix(in srgb, var(--purple) 45%, var(--line)); background: var(--surface); }
.briefing-priority-index { display: grid; width: 25px; height: 25px; flex: none; place-items: center; border-radius: 8px; background: var(--purple-soft); color: var(--purple-dark); font-family: var(--display); font-size: 9px; font-weight: 800; }
.briefing-priority-copy { display: flex; min-width: 0; flex: 1; flex-direction: column; gap: 3px; }
.briefing-priority-copy strong { overflow: hidden; color: var(--ink); font-size: 10px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.briefing-priority-copy small { overflow: hidden; color: var(--muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.briefing-priority-dot { width: 7px; height: 7px; flex: none; border-radius: 50%; background: var(--purple); }
.briefing-priority-dot.high { background: var(--coral); }
.briefing-priority-dot.low { background: var(--sage); }
.briefing-empty { display: flex; min-height: 108px; flex-direction: column; align-items: flex-start; justify-content: center; gap: 5px; padding: 12px 14px; border: 1px dashed var(--line); border-radius: 11px; color: var(--muted); }
.briefing-empty span { color: var(--purple); font-size: 18px; }
.briefing-empty strong { color: var(--ink); font-size: 10px; }
.briefing-empty small { font-size: 9px; line-height: 1.45; }
.briefing-footnote { margin: 9px 1px 0; color: var(--muted); font-size: 8px; line-height: 1.45; }
html[data-theme="dark"] .morning-briefing {
  border-color: #403b50;
  background: radial-gradient(circle at 92% 0%, rgba(105,83,86,.18), transparent 35%), linear-gradient(118deg,#292735,#252630 72%,#2b282b);
  box-shadow: 0 12px 34px rgba(0,0,0,.14);
}
/* The briefing subtly shifts with the user's day, without changing its layout. */
.morning-briefing.briefing-morning #briefingPeriodIcon { color: var(--coral); }
.morning-briefing.briefing-day #briefingPeriodIcon { color: var(--blue); }
.morning-briefing.briefing-evening #briefingPeriodIcon { color: var(--purple); }
.morning-briefing.briefing-day { --briefing-tone: var(--purple); }
.morning-briefing.briefing-evening { --briefing-tone: #a99bcf; }
html[data-theme="dark"] .morning-briefing.briefing-morning { background: radial-gradient(circle at 92% 0%, rgba(226,164,126,.13), transparent 36%), linear-gradient(118deg,#292735,#252630 72%,#2b282b); }
html[data-theme="dark"] .morning-briefing.briefing-day { background: radial-gradient(circle at 92% 0%, rgba(128,169,204,.12), transparent 36%), linear-gradient(118deg,#292735,#252630 72%,#292a32); }
html[data-theme="dark"] .morning-briefing.briefing-evening { background: radial-gradient(circle at 92% 0%, rgba(169,155,207,.17), transparent 36%), linear-gradient(118deg,#292735,#252630 72%,#282631); }
html[data-theme="dark"] .briefing-metric { background: color-mix(in srgb, var(--surface-2) 88%, transparent); border-color: var(--line); }
html[data-theme="dark"] .briefing-secondary, html[data-theme="dark"] .briefing-priority { background: var(--surface-2); border-color: var(--line); color: var(--ink); }
html[data-theme="dark"] .briefing-priority:hover { background: #2d2f3a; }
html[data-theme="dark"] .briefing-side { border-left-color: #403b50; }
@media (max-width: 900px) {
  .morning-briefing { grid-template-columns: minmax(0,1fr) minmax(260px,.9fr); gap: 20px; padding: 22px; }
  .briefing-side { padding-left: 19px; }
}
@media (max-width: 680px) {
  .morning-briefing { grid-template-columns: minmax(0,1fr); gap: 17px; margin-bottom: 19px; padding: 19px 16px; border-radius: 19px; }
  .briefing-main h2 { margin-top: 11px; font-size: 24px; }
  .briefing-message { min-height: 0; font-size: 11px; }
  .briefing-metrics { gap: 6px; margin-top: 16px; }
  .briefing-metric { padding: 9px 8px; border-radius: 10px; }
  .briefing-metric strong { font-size: 18px; }
  .briefing-metric small { font-size: 7px; }
  .briefing-actions { margin-top: 12px; }
  .briefing-primary, .briefing-secondary { min-height: 43px; }
  .briefing-side { padding: 16px 0 0; border-top: 1px solid color-mix(in srgb, var(--purple) 18%, var(--line)); border-left: 0; }
  .briefing-priority { min-height: 54px; padding: 9px 10px; }
  .briefing-priority-copy strong { font-size: 11px; }
  .briefing-priority-copy small { font-size: 9px; }
  .briefing-footnote { font-size: 8px; }
}
@media (max-width: 360px) {
  .briefing-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .briefing-metric > span { font-size: 6px; letter-spacing: .7px; }
  .briefing-metric strong { font-size: 16px; }
  .briefing-actions > button { flex: 1; padding: 0 8px; }
}

/* Life Areas — a single, connected view of work and personal life. */
.life-areas-title-row { align-items: center; }
.life-areas-title-row h1 { max-width: 760px; }
.life-areas-intro { display:flex; align-items:center; gap:13px; padding:15px 17px; margin:0 0 17px; border:1px solid var(--line); border-radius:16px; background:linear-gradient(110deg,color-mix(in srgb,var(--purple-soft) 86%,var(--surface)),var(--surface)); }
.life-areas-intro-icon { width:39px; height:39px; flex:none; display:grid; place-items:center; border-radius:12px; background:var(--purple-soft); color:var(--purple); font-size:21px; }
.life-areas-intro>div:nth-child(2) { min-width:0; flex:1; }
.life-areas-intro strong { display:block; color:var(--ink); font-size:11px; }
.life-areas-intro p { margin:4px 0 0; color:var(--muted); font-size:10px; line-height:1.5; }
.life-areas-total { flex:none; padding:7px 10px; border-radius:20px; color:var(--purple-dark); background:var(--purple-soft); font-size:9px; font-weight:700; }
.life-area-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:27px; }
.life-area-card { min-width:0; min-height:161px; display:flex; flex-direction:column; align-items:stretch; gap:7px; padding:14px 15px 12px; text-align:left; color:var(--ink); background:var(--surface); border:1px solid var(--line); border-radius:16px; box-shadow:0 3px 13px rgba(35,32,45,.025); transition:transform .16s,border-color .16s,box-shadow .16s; }
.life-area-card:hover { transform:translateY(-2px); border-color:color-mix(in srgb,var(--area-color,var(--purple)) 52%,var(--line)); box-shadow:0 9px 22px rgba(35,32,45,.055); }
.life-area-card.selected { border-color:var(--area-color,var(--purple)); box-shadow:0 0 0 2px color-mix(in srgb,var(--area-color,var(--purple)) 15%,transparent),0 6px 18px rgba(35,32,45,.04); }
.life-area-card-top { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.life-area-icon { width:34px; height:34px; display:grid; place-items:center; border-radius:11px; color:var(--area-color,var(--purple)); background:color-mix(in srgb,var(--area-color,var(--purple)) 13%,var(--surface)); font-size:18px; }
.life-area-open-count { color:var(--muted); font-size:9px; font-weight:600; }
.life-area-card>strong { margin-top:3px; color:var(--ink); font-family:var(--display); font-size:14px; letter-spacing:-.25px; }
.life-area-card>small { min-height:27px; color:var(--muted); font-size:9px; line-height:1.45; }
.life-area-progress { width:100%; height:4px; overflow:hidden; margin-top:auto; border-radius:99px; background:var(--surface-2); }
.life-area-progress i { display:block; height:100%; border-radius:inherit; background:var(--area-color,var(--purple)); }
.life-area-card-foot { display:flex; align-items:center; justify-content:space-between; gap:5px; color:var(--muted); font-size:8px; }
.life-area-card.unassigned { --area-color:#92949a; border-style:dashed; }
.life-area-card.unassigned .life-area-icon { background:var(--surface-2); }
.life-area-task-section { scroll-margin-top:88px; padding-top:2px; }
.life-area-task-heading { align-items:flex-end; }
.life-area-task-heading .eyebrow { margin-bottom:6px; }
.life-area-task-heading h2 { font-size:18px; }
.life-area-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 1px 12px; }
.life-area-toolbar>span { color:var(--muted); font-size:9px; }
.life-area-filters { display:flex; flex-wrap:wrap; gap:5px; padding:3px; border:1px solid var(--line); border-radius:11px; background:var(--surface-2); }
.life-filter { min-height:29px; padding:5px 10px; border:0; border-radius:8px; color:var(--muted); background:transparent; font-size:9px; font-weight:600; }
.life-filter.active { color:var(--purple-dark); background:var(--surface); box-shadow:0 1px 4px rgba(30,25,45,.07); }
.task-area-tag { display:inline-flex; align-items:center; padding:3px 6px; border-radius:6px; color:var(--area-color); background:color-mix(in srgb,var(--area-color) 12%,transparent); font-size:8px; font-weight:700; line-height:1.2; }
.task-area-tag.unassigned { color:var(--muted); background:var(--surface-2); }
.briefing-area-summary { display:flex; flex-wrap:wrap; align-items:center; gap:7px 9px; padding-top:11px; margin-top:10px; border-top:1px solid color-mix(in srgb,var(--line) 75%,transparent); }
.briefing-area-label { color:var(--muted); font-size:7px; font-weight:800; letter-spacing:1px; }
.briefing-area-chips { display:flex; flex-wrap:wrap; gap:5px; }
.briefing-area-chip { display:inline-flex; align-items:center; gap:5px; padding:4px 7px; border-radius:7px; color:var(--area-color,var(--muted)); background:color-mix(in srgb,var(--area-color,var(--muted)) 12%,transparent); font-size:8px; font-weight:600; }
.briefing-area-chip b { font-size:8px; }
@media(max-width:1050px) { .life-area-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:680px) {
  .life-areas-title-row { align-items:stretch; }
  .life-areas-title-row .primary-button { width:100%; min-height:44px; }
  .life-areas-intro { align-items:flex-start; padding:13px; gap:10px; }
  .life-areas-total { display:none; }
  .life-area-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin-bottom:22px; }
  .life-area-card { min-height:153px; padding:12px 11px 10px; gap:6px; border-radius:14px; }
  .life-area-card>strong { font-size:13px; }
  .life-area-card>small { font-size:8px; min-height:34px; }
  .life-area-card-foot { font-size:7px; }
  .life-area-task-heading { align-items:center; }
  .life-area-toolbar { align-items:flex-start; }
  .life-area-filters { max-width:100%; }
  .life-filter { padding:5px 8px; }
  .briefing-area-summary { gap:6px; }
}
@media(max-width:360px) { .life-area-grid { grid-template-columns:1fr; } .life-area-card { min-height:140px; } }
html[data-theme="dark"] .life-areas-intro { background:linear-gradient(110deg,#2d2a3a,var(--surface)); border-color:var(--line); }
html[data-theme="dark"] .life-area-card { background:var(--surface); border-color:var(--line); box-shadow:none; }
html[data-theme="dark"] .life-area-card.selected { border-color:var(--area-color,var(--purple)); }
html[data-theme="dark"] .life-filter.active { background:#34313f; color:#d0c5f0; box-shadow:none; }
html[data-theme="dark"] .life-area-progress { background:#373944; }

/* Calendar v7 — a unified personal calendar for tasks, events, deadlines and protected time. */
.calendar-title-row{align-items:center}
.calendar-title-actions{display:flex;align-items:center;gap:8px;flex:none}
.calendar-title-actions button{min-height:40px;white-space:nowrap}
.calendar-toolbar-v2{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 13px}
.calendar-mode-switch{display:flex;gap:3px;padding:4px;background:var(--surface-2);border:1px solid var(--line);border-radius:11px}
.calendar-mode-switch .calendar-mode{border:0;background:transparent;color:var(--muted);border-radius:8px;padding:8px 12px;font-size:10px;font-weight:700;min-height:32px}
.calendar-mode-switch .calendar-mode.active{background:var(--surface);color:var(--purple-dark);box-shadow:0 2px 8px rgba(30,28,40,.08)}
.calendar-filterbar{display:flex;align-items:center;gap:13px;flex-wrap:wrap;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-bottom:14px}
.calendar-filter-select{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:9px;font-weight:700}
.calendar-filter-select select{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:8px;padding:7px 9px;font-size:10px;outline:none}
.calendar-toggles{display:flex;align-items:center;gap:12px;flex:1;flex-wrap:wrap}
.calendar-toggles label{display:inline-flex;align-items:center;gap:5px;font-size:9px;color:var(--muted);font-weight:600;cursor:pointer}
.calendar-toggles input{accent-color:var(--purple);width:13px;height:13px;margin:0}
.calendar-toggle-dot{width:7px;height:7px;border-radius:50%;display:inline-block}
.task-dot{background:#d99a7c}.event-dot{background:#9b8fc7}.deadline-dot{background:#d0a45c}
.calendar-add-task{border:0;background:var(--purple-soft);color:var(--purple-dark);border-radius:8px;padding:8px 11px;font-size:9px;font-weight:700;white-space:nowrap}
.calendar-canvas{display:block;min-height:160px;padding:13px;background:var(--surface);border:1px solid var(--line);border-radius:15px;overflow:visible}
.calendar-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:start}
.calendar-columns-7{grid-template-columns:repeat(7,minmax(130px,1fr));min-width:980px}
.calendar-canvas-week{overflow-x:auto;-webkit-overflow-scrolling:touch}
.calendar-day-column{min-width:0;min-height:230px;padding:9px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;transition:background .15s,border-color .15s,box-shadow .15s}
.calendar-day-column.is-today{background:color-mix(in srgb,var(--purple-soft) 45%,var(--surface-2));border-color:color-mix(in srgb,var(--purple) 38%,var(--line))}
.calendar-day-heading{display:flex;align-items:center;justify-content:space-between;padding-bottom:8px;border-bottom:1px solid var(--line);margin-bottom:8px}
.calendar-day-select{display:flex;align-items:center;gap:8px;border:0;background:transparent;color:var(--ink);padding:0;text-align:left}
.calendar-day-select small{font-size:8px;color:var(--muted);font-weight:800;letter-spacing:.7px}
.calendar-day-select strong{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:var(--surface);font-size:12px}
.is-today .calendar-day-select strong{background:var(--purple);color:#fff}
.calendar-day-add{width:28px;height:28px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--purple-dark);font-size:17px;line-height:1}
.calendar-column-items{display:flex;flex-direction:column;gap:6px;min-height:125px}
.calendar-column-empty{display:grid;place-items:center;min-height:110px;text-align:center;color:var(--muted);font-size:9px;line-height:1.5;padding:10px}
.calendar-column-add{width:100%;margin-top:8px;padding:8px;border:1px dashed var(--line);border-radius:8px;background:transparent;color:var(--muted);font-size:9px;font-weight:700}
.calendar-item{display:flex;flex-direction:column;align-items:stretch;gap:4px;width:100%;min-width:0;padding:8px 9px;border:1px solid color-mix(in srgb,var(--item-color) 30%,var(--line));border-left:3px solid var(--item-color);border-radius:8px;background:color-mix(in srgb,var(--item-color) 9%,var(--surface));color:var(--ink);text-align:left;cursor:grab;transition:transform .15s,box-shadow .15s,opacity .15s}
.calendar-item:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(25,25,35,.07)}
.calendar-item:active{cursor:grabbing}
.calendar-item.is-dragging{opacity:.35}
.calendar-item-top{display:flex;align-items:center;justify-content:space-between;gap:6px;color:var(--muted);font-size:8px}
.calendar-item-top time{font-weight:800;color:var(--item-color)}
.calendar-item-top i{font-style:normal;font-size:7px;text-transform:uppercase;letter-spacing:.4px}
.calendar-item strong{font-size:9px;line-height:1.35;overflow-wrap:anywhere}
.calendar-item-foot{font-size:7px;color:var(--muted);line-height:1.3}
.calendar-item-deadline{border-left-style:dashed;background:color-mix(in srgb,#d0a45c 10%,var(--surface));border-color:color-mix(in srgb,#d0a45c 35%,var(--line))}
.calendar-item-event.is-protected{border-style:dashed}
.calendar-item-event.is-protected strong:before{content:'♡ ';color:var(--item-color)}
.calendar-drop-active{outline:2px dashed var(--purple)!important;outline-offset:2px;background:var(--purple-soft)!important}
.calendar-day-view{max-width:900px;margin:0 auto}
.calendar-day-view-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin:2px 0 15px}
.calendar-day-view-head h2{font-family:var(--display);font-size:20px;letter-spacing:-.5px;margin:4px 0}
.calendar-day-view-head p{font-size:9px;color:var(--muted);margin:0;line-height:1.5}
.calendar-day-view-head .secondary-button{white-space:nowrap;flex:none}
.calendar-all-day{padding:11px;margin:0 0 12px 69px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.calendar-all-day>strong{display:block;font-size:8px;letter-spacing:.7px;color:var(--muted);text-transform:uppercase;margin-bottom:8px}
.calendar-all-day>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.calendar-time-grid{border-top:1px solid var(--line)}
.calendar-hour-row{display:grid;grid-template-columns:58px minmax(0,1fr);min-height:67px;border-bottom:1px solid var(--line);transition:background .15s}
.calendar-hour-label{padding:11px 9px 0 0;color:var(--muted);font-size:9px;text-align:right;font-weight:700}
.calendar-hour-content{position:relative;padding:6px 7px;display:flex;flex-direction:column;gap:5px;border-left:1px solid var(--line);min-width:0}
.calendar-open-slot{align-self:flex-start;color:color-mix(in srgb,var(--muted) 68%,transparent);font-size:8px;padding:5px 8px;border:1px dashed color-mix(in srgb,var(--line) 80%,var(--muted));border-radius:6px}
.calendar-hour-content .calendar-item{max-width:100%;}
.calendar-canvas-month{padding:12px}
.calendar-month-weekdays,.calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.calendar-month-weekdays{margin-bottom:6px}
.calendar-month-weekdays span{text-align:center;color:var(--muted);font-size:8px;font-weight:800;padding:6px 0}
.calendar-month-cell{display:flex;flex-direction:column;align-items:flex-start;min-width:0;min-height:94px;padding:7px 6px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--ink);text-align:left;overflow:hidden}
.calendar-month-cell.outside-month{opacity:.38}
.calendar-month-cell.is-today{border-color:var(--purple);background:var(--purple-soft)}
.calendar-month-cell.is-selected{box-shadow:inset 0 0 0 1px var(--purple)}
.calendar-month-date{display:grid;place-items:center;width:23px;height:23px;border-radius:7px;font-size:10px;font-weight:800}
.calendar-month-cell.is-today .calendar-month-date{background:var(--purple);color:#fff}
.calendar-month-markers{display:flex;gap:3px;margin:4px 0}
.calendar-month-markers i{width:6px;height:6px;border-radius:50%;background:var(--item-color)}
.calendar-month-items{width:100%;display:flex;flex-direction:column;gap:2px;min-width:0}
.calendar-month-items small{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 3px;border-radius:3px;font-size:7px;background:color-mix(in srgb,var(--item-color, var(--purple)) 12%,var(--surface));border-left:2px solid var(--item-color, var(--purple))}
.calendar-month-items small.deadline{--item-color:#d0a45c}
.calendar-month-cell em{font-style:normal;font-size:7px;color:var(--muted);margin-top:2px}
.calendar-canvas-agenda{padding:15px}
.calendar-agenda{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.calendar-agenda-day{padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2)}
.calendar-agenda-day header{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}
.calendar-agenda-day header strong{font-size:11px}
.calendar-agenda-day header button{width:27px;height:27px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--purple-dark)}
.calendar-agenda-day>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.calendar-legend .legend-deadline{background:#d0a45c}
.event-protect-option{display:flex;gap:10px;align-items:center;margin-top:15px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);cursor:pointer}
.event-protect-option input{width:16px;height:16px;accent-color:var(--purple)}
.event-protect-option span{display:flex;flex-direction:column;gap:3px}
.event-protect-option strong{font-size:10px;color:var(--ink)}
.event-protect-option small{font-size:8px;color:var(--muted);line-height:1.4}
.task-deadline-tag{color:#a67c3c;background:#f7efdF;padding:2px 5px;border-radius:5px;font-size:8px}
html[data-theme="dark"] .calendar-filterbar,html[data-theme="dark"] .calendar-day-column,html[data-theme="dark"] .calendar-day-column.is-today,html[data-theme="dark"] .calendar-month-cell,html[data-theme="dark"] .calendar-agenda-day,html[data-theme="dark"] .event-protect-option{background:var(--surface-2);border-color:var(--line);color:var(--ink)}
html[data-theme="dark"] .calendar-mode-switch{background:#1b1d25;border-color:var(--line)}
html[data-theme="dark"] .calendar-mode-switch .calendar-mode.active{background:var(--surface);color:var(--ink)}
html[data-theme="dark"] .calendar-filter-select select,html[data-theme="dark"] .calendar-day-select strong,html[data-theme="dark"] .calendar-day-add,html[data-theme="dark"] .calendar-agenda-day header button{background:var(--surface);border-color:var(--line);color:var(--ink)}
html[data-theme="dark"] .calendar-item{background:color-mix(in srgb,var(--item-color) 17%,var(--surface));border-color:color-mix(in srgb,var(--item-color) 42%,var(--line));color:var(--ink)}
html[data-theme="dark"] .calendar-month-cell.is-today{background:#302c3d;border-color:var(--purple)}
html[data-theme="dark"] .task-deadline-tag{background:#4a3c29;color:#e9c98f}
@media(max-width:900px){.calendar-toolbar-v2{align-items:stretch;flex-direction:column}.calendar-mode-switch{width:100%;overflow-x:auto}.calendar-mode-switch .calendar-mode{flex:1;white-space:nowrap;padding-left:9px;padding-right:9px}.calendar-title-actions{width:100%}.calendar-title-actions button{flex:1}}
@media(max-width:680px){
  .calendar-title-actions button{min-height:43px}
  .calendar-filterbar{align-items:stretch;gap:10px;padding:10px;border-radius:13px}
  .calendar-filter-select{width:100%;justify-content:space-between}
  .calendar-filter-select select{flex:1;max-width:72%}
  .calendar-toggles{gap:13px;justify-content:flex-start}
  .calendar-toggles label{font-size:10px;min-height:25px}
  .calendar-add-task{min-height:40px;width:100%;font-size:11px}
  .calendar-canvas{padding:10px;border-radius:14px}
  .calendar-columns-7{min-width:1050px}
  .calendar-columns-3{grid-template-columns:repeat(3,minmax(230px,1fr));min-width:720px}
  .calendar-canvas-columns{overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}
  .calendar-day-column{scroll-snap-align:start;min-height:300px}
  .calendar-item{padding:10px;min-height:58px}
  .calendar-item strong{font-size:11px}
  .calendar-item-foot{font-size:8px}
  .calendar-item-top{font-size:9px}
  .calendar-day-view-head{align-items:flex-start}
  .calendar-day-view-head h2{font-size:17px}
  .calendar-day-view-head p{max-width:225px;font-size:9px}
  .calendar-day-view-head .secondary-button{padding:9px 10px;font-size:9px;min-height:39px}
  .calendar-all-day{margin-left:0}
  .calendar-all-day>div,.calendar-agenda-day>div{grid-template-columns:1fr}
  .calendar-hour-row{grid-template-columns:47px minmax(0,1fr);min-height:72px}
  .calendar-hour-label{font-size:9px;padding-right:7px}
  .calendar-hour-content{padding:6px}
  .calendar-month-weekdays,.calendar-month-grid{gap:3px}
  .calendar-month-cell{min-height:70px;padding:4px 3px;border-radius:6px}
  .calendar-month-date{width:21px;height:21px;font-size:9px}
  .calendar-month-items small{font-size:6px;padding:1px 2px}
  .calendar-month-markers{margin:3px 0;gap:2px}
  .calendar-month-markers i{width:5px;height:5px}
  .calendar-month-cell em{font-size:6px}
  .calendar-canvas-month{padding:7px}
  .calendar-canvas-agenda{padding:9px}
  .calendar-agenda-day{padding:10px}
  .calendar-agenda-day header strong{font-size:11px}
  .task-deadline-tag{font-size:8px}
}


/* Dayflow v8 — Smart Calendar and Life Balance. */
.life-balance-panel{margin:0 0 16px;padding:19px 20px 14px;background:linear-gradient(130deg,color-mix(in srgb,var(--purple-soft) 58%,var(--surface)) 0%,var(--surface) 72%);border:1px solid color-mix(in srgb,var(--purple) 20%,var(--line));border-radius:17px;box-shadow:0 5px 20px rgba(37,31,58,.035)}
.life-balance-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.life-balance-topline h2{font-family:var(--display);font-size:18px;letter-spacing:-.55px;margin:4px 0 4px;color:var(--ink)}.life-balance-topline p{font-size:10px;color:var(--muted);margin:0;line-height:1.45}.life-balance-period{flex:none;padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);font-size:9px;font-weight:700;color:var(--muted)}
.life-balance-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:16px 0 15px}.life-balance-stat{display:flex;flex-direction:column;gap:4px;min-width:0;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--surface) 84%,transparent)}.life-balance-stat>span{font-size:8px;letter-spacing:.75px;font-weight:800;color:var(--muted)}.life-balance-stat strong{font-family:var(--display);font-size:20px;letter-spacing:-.7px;color:var(--ink);overflow-wrap:anywhere}.life-balance-stat small{font-size:8px;color:var(--muted);line-height:1.35}
.life-balance-lower{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(240px,.85fr);gap:16px;align-items:stretch}.life-balance-breakdown{min-width:0;padding:2px 0}.life-balance-breakdown-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}.life-balance-breakdown-head strong{font-size:10px;color:var(--ink)}.life-balance-breakdown-head>span{font-size:8px;color:var(--muted)}.life-balance-stack{display:flex;overflow:hidden;width:100%;height:11px;border-radius:99px;background:var(--surface-2);border:1px solid var(--line)}.life-balance-stack>span{display:block;min-width:2px;background:var(--area-color);border-right:1px solid color-mix(in srgb,var(--surface) 65%,transparent)}.life-balance-stack-empty{width:100%;background:repeating-linear-gradient(135deg,var(--surface-2),var(--surface-2) 5px,var(--line) 5px,var(--line) 6px)}.life-balance-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin-top:12px}.life-balance-legend-item{display:grid;grid-template-columns:8px minmax(0,1fr) auto auto;align-items:center;gap:6px;min-width:0}.life-balance-legend-dot{width:7px;height:7px;border-radius:50%;background:var(--area-color)}.life-balance-legend-item>span:nth-child(2){font-size:9px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.life-balance-legend-item strong{font-size:9px;color:var(--ink);font-weight:700;white-space:nowrap}.life-balance-legend-item small{font-size:8px;color:var(--muted);min-width:25px;text-align:right}.life-balance-empty{font-size:9px;color:var(--muted);line-height:1.5}
.life-balance-insight{display:grid;grid-template-columns:28px minmax(0,1fr);gap:9px;align-content:start;padding:13px;border:1px solid color-mix(in srgb,var(--purple) 22%,var(--line));border-radius:12px;background:var(--surface-2)}.life-balance-insight-icon{display:grid;place-items:center;width:27px;height:27px;border-radius:9px;background:var(--purple-soft);color:var(--purple-dark);font-size:15px;font-weight:800}.life-balance-insight-copy strong{display:block;font-size:10px;line-height:1.4;color:var(--ink)}.life-balance-insight-copy p{margin:5px 0 0;font-size:9px;line-height:1.55;color:var(--muted)}.life-balance-insight-copy small{display:block;margin-top:6px;font-size:8px;color:#b47e47}.life-balance-action{grid-column:2;justify-self:start;margin-top:4px;min-height:31px;padding:6px 10px;border:0;border-radius:8px;background:var(--purple-soft);color:var(--purple-dark);font-size:9px;font-weight:800}.life-balance-action span{padding-left:8px}.life-balance-footnote{margin:12px 0 0;padding-top:9px;border-top:1px solid var(--line);font-size:8px;line-height:1.4;color:var(--muted)}
html[data-theme="dark"] .life-balance-panel{background:linear-gradient(130deg,#2c2939 0%,var(--surface) 76%);border-color:var(--line);box-shadow:none}html[data-theme="dark"] .life-balance-stat{background:#252731}html[data-theme="dark"] .life-balance-insight{background:#252731;border-color:#454052}
@media(max-width:900px){.life-balance-lower{grid-template-columns:1fr}.life-balance-insight{grid-template-columns:28px minmax(0,1fr)}}
@media(max-width:680px){.life-balance-panel{padding:14px 13px 11px;border-radius:14px;margin-bottom:12px}.life-balance-topline h2{font-size:16px}.life-balance-topline p{max-width:245px;font-size:9px}.life-balance-period{font-size:8px;padding:6px 8px}.life-balance-stats{gap:6px;margin:13px 0}.life-balance-stat{padding:9px 8px;gap:3px;border-radius:9px}.life-balance-stat>span{font-size:7px;letter-spacing:.45px}.life-balance-stat strong{font-size:16px}.life-balance-stat small{font-size:7px}.life-balance-lower{gap:12px}.life-balance-breakdown-head strong{font-size:9px}.life-balance-breakdown-head>span{font-size:7px}.life-balance-legend{gap:7px 8px}.life-balance-legend-item{gap:5px;grid-template-columns:7px minmax(0,1fr) auto}.life-balance-legend-item>span:nth-child(2){font-size:8px}.life-balance-legend-item strong{font-size:8px}.life-balance-legend-item small{display:none}.life-balance-insight{padding:11px;gap:8px}.life-balance-insight-copy strong{font-size:9px}.life-balance-insight-copy p{font-size:8px}.life-balance-action{font-size:9px;min-height:36px}.life-balance-footnote{font-size:7px;line-height:1.5}}

/* Dayflow v9 — Routines, Habits & Weekly Review. */
.routine-summary{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:18px 0 22px;padding:22px 24px;border:1px solid color-mix(in srgb,var(--purple) 22%,var(--line));border-radius:17px;background:linear-gradient(125deg,color-mix(in srgb,var(--purple-soft) 62%,var(--surface)),var(--surface) 75%)}
.routine-summary-copy{max-width:540px}.routine-summary-copy h2{margin:6px 0 6px;font:700 20px/1.25 var(--display);letter-spacing:-.6px;color:var(--ink)}.routine-summary-copy p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}.routine-summary-stats{display:flex;gap:10px;flex:none}.routine-summary-stats>div{min-width:112px;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--surface) 88%,transparent);display:flex;flex-direction:column;gap:5px}.routine-summary-stats strong{font:700 22px var(--display);letter-spacing:-.7px;color:var(--ink)}.routine-summary-stats span{font-size:9px;color:var(--muted)}
.routine-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}.routine-panel{min-width:0;padding:19px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 4px 18px rgba(34,30,48,.025)}.routine-panel .section-heading{margin-bottom:14px}.routine-panel .section-heading h2{font:700 17px var(--display);letter-spacing:-.4px}.routine-panel .section-heading p{font-size:9px}.routine-list{display:flex;flex-direction:column;gap:10px}.routine-card{padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2);min-width:0}.routine-card.is-done{background:color-mix(in srgb,var(--sage) 8%,var(--surface-2));border-color:color-mix(in srgb,var(--sage) 35%,var(--line))}.routine-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.routine-kind-tag{font-size:7px;font-weight:800;letter-spacing:1px;padding:5px 7px;border-radius:999px}.routine-tag{color:var(--purple-dark);background:var(--purple-soft)}.habit-tag{color:#54856b;background:color-mix(in srgb,var(--sage) 17%,var(--surface))}.routine-edit-button{width:29px;height:27px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);font-weight:800}.routine-card-title-row{display:flex;align-items:center;gap:10px;margin:7px 0 12px}.routine-card-icon{width:34px;height:34px;display:grid;place-items:center;flex:none;border-radius:11px;background:color-mix(in srgb,var(--routine-color) 15%,var(--surface));color:var(--routine-color);font-size:17px}.routine-card-title{display:flex;flex-direction:column;gap:4px;min-width:0}.routine-card-title strong{font-size:11px;color:var(--ink);overflow-wrap:anywhere}.routine-card-title small,.routine-card-note{font-size:8px;color:var(--muted);line-height:1.45}.routine-card-note{margin:0 0 10px}.routine-week-track{display:flex;align-items:center;gap:6px;margin:8px 0 7px}.routine-week-dot{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--muted);font-size:7px;font-weight:700}.routine-week-dot.scheduled{border-color:color-mix(in srgb,var(--routine-color) 45%,var(--line));background:color-mix(in srgb,var(--routine-color) 9%,var(--surface));color:var(--routine-color)}.routine-week-dot.done{background:var(--routine-color);border-color:var(--routine-color);color:white}.routine-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:4px 0 10px}.routine-week-progress{font-size:8px;font-weight:700;color:var(--ink)}.routine-today-state{font-size:8px;color:var(--muted)}.routine-check-button{width:100%;min-height:36px;padding:8px 12px;border:1px solid color-mix(in srgb,var(--purple) 25%,var(--line));border-radius:9px;background:var(--purple-soft);color:var(--purple-dark);font-size:9px;font-weight:800}.routine-check-button.checked{background:color-mix(in srgb,var(--sage) 19%,var(--surface));border-color:color-mix(in srgb,var(--sage) 42%,var(--line));color:#54856b}.routine-check-button:disabled{opacity:.58;cursor:not-allowed;background:var(--surface);color:var(--muted)}.routine-empty{min-height:185px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px 17px;border:1px dashed var(--line);border-radius:12px}.routine-empty>span{font-size:23px;color:var(--purple);margin-bottom:9px}.routine-empty strong{font:700 12px var(--display);color:var(--ink)}.routine-empty p{max-width:260px;margin:6px 0 12px;font-size:9px;line-height:1.5;color:var(--muted)}.compact-empty{min-height:110px}.routine-gentle-note{display:flex;align-items:center;gap:9px;margin:16px 2px 0;color:var(--muted);font-size:9px}.routine-gentle-note span{color:var(--purple);font-size:15px}.form-field{margin:12px 0}.routine-day-picker{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.routine-day-picker label{position:relative;cursor:pointer}.routine-day-picker input{position:absolute;opacity:0;inset:0}.routine-day-picker span{min-height:38px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--muted);font-size:9px;font-weight:700}.routine-day-picker input:checked+span{border-color:var(--purple);background:var(--purple-soft);color:var(--purple-dark)}.routine-day-picker input:focus-visible+span{outline:2px solid var(--purple);outline-offset:2px}.routine-modal{max-width:520px}
.today-rhythm-list{display:flex;flex-direction:column;gap:9px;min-height:32px}.today-rhythm-row{display:flex;align-items:center;gap:8px;min-width:0}.today-rhythm-check{width:22px;height:22px;display:grid;place-items:center;flex:none;border:1px solid var(--line);border-radius:50%;background:var(--surface-2);color:var(--purple);font-size:11px}.today-rhythm-check.checked{background:var(--sage);border-color:var(--sage);color:white}.today-rhythm-row>span{display:flex;flex-direction:column;gap:3px;min-width:0}.today-rhythm-row strong{font-size:9px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.today-rhythm-row small{font-size:7px;color:var(--muted)}.today-rhythm-empty{font-size:9px;color:var(--muted);line-height:1.5;padding:6px 0}.today-rhythm-card .calendar-link{margin-top:12px}
.week-review-nav{display:flex;align-items:center;gap:6px;flex:none}.week-review-nav .secondary-button{min-height:35px;padding:8px 11px}.weekly-review-range{margin:-2px 0 13px;font-size:10px;font-weight:700;color:var(--muted)}.weekly-review-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px;border:1px solid color-mix(in srgb,var(--purple) 23%,var(--line));border-radius:17px;background:linear-gradient(125deg,color-mix(in srgb,var(--purple-soft) 65%,var(--surface)),var(--surface) 74%)}.weekly-review-hero h2{margin:6px 0 6px;font:700 21px var(--display);letter-spacing:-.6px;color:var(--ink)}.weekly-review-hero p{max-width:560px;margin:0;color:var(--muted);font-size:10px;line-height:1.55}.weekly-review-progress{width:160px;flex:none;display:flex;flex-direction:column;gap:4px}.weekly-review-progress strong{font:700 30px var(--display);letter-spacing:-1px;color:var(--purple-dark)}.weekly-review-progress span{font-size:8px;color:var(--muted)}.weekly-progress-track,.weekly-area-track{height:7px;overflow:hidden;border-radius:99px;background:var(--surface-2);border:1px solid var(--line)}.weekly-progress-track i,.weekly-area-track i{display:block;height:100%;border-radius:99px;background:var(--purple);transition:width .2s}.weekly-review-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:14px 0}.weekly-review-stat{min-width:0;display:flex;flex-direction:column;gap:5px;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.weekly-review-stat>span{font-size:7px;letter-spacing:.8px;font-weight:800;color:var(--muted)}.weekly-review-stat strong{font:700 20px var(--display);letter-spacing:-.6px;color:var(--ink);overflow-wrap:anywhere}.weekly-review-stat small{font-size:8px;color:var(--muted)}.weekly-review-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;align-items:start}.weekly-review-card{min-width:0;padding:18px;border:1px solid var(--line);border-radius:15px;background:var(--surface)}.weekly-review-card .section-heading{margin-bottom:14px}.weekly-review-card .section-heading h2{font:700 16px var(--display);letter-spacing:-.4px}.weekly-review-card .section-heading p{font-size:9px}.weekly-area-breakdown{display:flex;flex-direction:column;gap:12px}.weekly-area-row-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:5px}.weekly-area-row-top>span{display:flex;align-items:center;gap:7px;font-size:9px;color:var(--ink)}.weekly-area-row-top>span i{width:8px;height:8px;border-radius:50%;background:var(--area-color)}.weekly-area-row-top>strong{font-size:9px;color:var(--muted)}.weekly-area-track{height:6px}.weekly-area-track i{background:var(--area-color)}.weekly-busiest-note{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:15px;padding-top:12px;border-top:1px solid var(--line);font-size:8px;color:var(--muted)}.weekly-busiest-note strong{font-size:8px;color:var(--ink);text-align:right}.weekly-carry-count{min-width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:var(--purple-soft);color:var(--purple-dark);font-size:9px;font-weight:800}.weekly-carry-list{display:flex;flex-direction:column;gap:5px}.weekly-carry-item{width:100%;display:flex;align-items:center;gap:9px;padding:10px 2px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;color:var(--ink)}.weekly-carry-item:last-child{border-bottom:0}.weekly-carry-check{width:19px;height:19px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;color:var(--muted);font-size:11px;flex:none}.weekly-carry-item>span:nth-child(2){display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.weekly-carry-item strong{font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.weekly-carry-item small{font-size:7px;color:var(--muted)}.weekly-carry-item>span:last-child{color:var(--purple);font-size:13px}.weekly-carry-empty{padding:18px 8px;text-align:center;color:var(--muted);font-size:9px;line-height:1.5}.weekly-rhythm-card{margin-bottom:14px}.weekly-rhythm-breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 18px}.weekly-rhythm-row{display:flex;align-items:center;gap:9px;min-width:0}.weekly-rhythm-icon{width:31px;height:31px;display:grid;place-items:center;flex:none;border-radius:10px;background:color-mix(in srgb,var(--routine-color) 15%,var(--surface-2));color:var(--routine-color);font-size:15px}.weekly-rhythm-copy{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.weekly-rhythm-copy strong{font-size:9px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.weekly-rhythm-copy small{font-size:7px;color:var(--muted)}.weekly-rhythm-copy i{height:4px;overflow:hidden;border-radius:99px;background:var(--surface-2)}.weekly-rhythm-copy i b{display:block;height:100%;border-radius:99px;background:var(--routine-color)}.weekly-rhythm-count{font-size:9px;color:var(--ink);white-space:nowrap}.weekly-reflection-card{margin-bottom:30px}.reflection-spark{font-size:24px;color:var(--purple)}.weekly-reflection-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.weekly-reflection-grid label{display:flex;flex-direction:column;gap:7px}.weekly-reflection-grid label>span{font-size:9px;font-weight:700;color:var(--ink)}.weekly-reflection-grid .text-input{font-size:10px}.weekly-reflection-wide{grid-column:1/-1}.weekly-reflection-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:13px;border-top:1px solid var(--line)}.weekly-reflection-footer>span{font-size:8px;color:var(--muted)}
html[data-theme="dark"] .routine-summary,html[data-theme="dark"] .weekly-review-hero{background:linear-gradient(125deg,#2d2a3a,var(--surface) 76%)}html[data-theme="dark"] .routine-panel,html[data-theme="dark"] .weekly-review-card,html[data-theme="dark"] .weekly-review-stat{background:var(--surface);border-color:var(--line)}html[data-theme="dark"] .routine-card{background:var(--surface-2);border-color:var(--line)}html[data-theme="dark"] .routine-card.is-done{background:#25332d;border-color:#405d4e}html[data-theme="dark"] .routine-check-button.checked{color:#b8d7c2;background:#283c31;border-color:#456b53}html[data-theme="dark"] .routine-check-button:disabled{background:var(--surface);color:var(--muted)}html[data-theme="dark"] .routine-week-dot{background:var(--surface);border-color:var(--line)}html[data-theme="dark"] .routine-week-dot.done{background:var(--routine-color);color:#fff}
@media(max-width:900px){.routine-columns{grid-template-columns:1fr}.weekly-review-grid{grid-template-columns:1fr}.weekly-review-hero{align-items:flex-start}.weekly-review-progress{width:135px}}
@media(max-width:680px){.routines-title-row,.weekly-review-title-row{align-items:flex-start;flex-direction:column}.routines-title-row .primary-button{width:100%}.routine-summary{align-items:stretch;flex-direction:column;padding:15px;gap:14px}.routine-summary-copy h2{font-size:17px}.routine-summary-stats{display:grid;grid-template-columns:1fr 1fr}.routine-summary-stats>div{min-width:0;padding:10px}.routine-panel{padding:13px}.routine-card{padding:12px}.routine-week-track{gap:5px}.routine-week-dot{width:25px;height:25px}.weekly-review-hero{flex-direction:column;padding:16px;gap:14px}.weekly-review-hero h2{font-size:18px}.weekly-review-progress{width:100%;display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:9px}.weekly-review-progress strong{grid-row:span 2;font-size:27px}.weekly-review-progress .weekly-progress-track{grid-column:2}.weekly-review-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.weekly-review-stat{padding:10px}.weekly-review-stat strong{font-size:18px}.weekly-review-card{padding:13px}.weekly-rhythm-breakdown{grid-template-columns:1fr;gap:12px}.weekly-reflection-grid{grid-template-columns:1fr}.weekly-reflection-wide{grid-column:auto}.weekly-reflection-footer{align-items:flex-start;flex-direction:column}.weekly-reflection-footer .primary-button{width:100%}.week-review-nav{width:100%}.week-review-nav .secondary-button:nth-child(2){flex:1}}
@media(max-width:380px){.routine-day-picker{gap:4px}.routine-day-picker span{min-height:35px;font-size:8px}.routine-week-dot{width:22px;height:22px}.weekly-review-stat>span{font-size:6px}.weekly-review-stat strong{font-size:16px}}

/* v10 — Daily Assistant, Evening Check-in and smarter local reminder controls */
.daily-assistant-card,.evening-checkin-card{position:relative;overflow:hidden}
.daily-assistant-card{background:linear-gradient(145deg,var(--surface) 0%,var(--purple-soft) 100%);border-color:color-mix(in srgb,var(--purple) 24%,var(--line))}
.assistant-eyebrow{display:block;margin-bottom:5px;color:var(--purple);font-size:8px;letter-spacing:.14em;font-weight:800}
.assistant-spark,.evening-icon{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:10px;background:var(--purple-soft);color:var(--purple);font-size:17px}
.assistant-suggestion{display:flex;align-items:flex-start;gap:11px;padding:13px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.assistant-suggestion-icon{display:grid;place-items:center;flex:none;width:31px;height:31px;border-radius:9px;background:var(--purple-soft);color:var(--purple);font-size:16px}
.assistant-warm .assistant-suggestion-icon{background:#f6e9df;color:#b77e5f}
.assistant-calm .assistant-suggestion-icon{background:#e7edf5;color:#6e8eae}
.assistant-soft .assistant-suggestion-icon{background:#e6eee8;color:#6f967e}
.assistant-suggestion-copy{min-width:0;flex:1}
.assistant-suggestion-copy>strong{display:block;color:var(--ink);font-size:11px;line-height:1.45}
.assistant-suggestion-copy p{margin:4px 0 8px;color:var(--muted);font-size:9px;line-height:1.6}
.assistant-action{padding:0;border:0;background:none;color:var(--purple);font-size:9px;font-weight:800;cursor:pointer}
.assistant-action span{padding-left:4px}
.assistant-more-note{padding:9px 2px 0;color:var(--muted);font-size:8px}
.evening-checkin-card{background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--coral) 9%,var(--surface)));border-color:color-mix(in srgb,var(--coral) 20%,var(--line))}
.evening-checkin-card>p{margin:0 0 9px;color:var(--muted);font-size:9px;line-height:1.6}
.evening-icon{background:color-mix(in srgb,var(--coral) 15%,var(--surface));color:var(--coral)}
.notification-permission-note{margin:8px 0 12px;padding:9px 10px;border-radius:8px;background:var(--surface-2);color:var(--muted);font-size:9px;line-height:1.5}
.notification-preference-row{display:grid;grid-template-columns:minmax(0,1fr) auto 112px;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.notification-preference-copy{display:flex;flex-direction:column;gap:4px;min-width:0}
.notification-preference-copy strong{font-size:10px;color:var(--ink)}
.notification-preference-copy small{font-size:8px;color:var(--muted);line-height:1.45}
.notification-time{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:8px}
.notification-time input{min-width:0;width:82px;padding:7px 6px;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);color:var(--ink);font:inherit;font-size:10px}
.evening-checkin-modal,.notification-center-modal{width:min(100%,560px)}
.checkin-day-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 17px}
.checkin-day-summary>span{display:flex;flex-direction:column;gap:4px;padding:11px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.checkin-day-summary strong{font-size:19px;line-height:1;color:var(--ink)}
.checkin-day-summary small{font-size:8px;color:var(--muted)}
.checkin-carry-panel{margin-top:16px;padding:13px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2)}
.checkin-carry-heading{display:flex;flex-direction:column;gap:4px;margin-bottom:9px}
.checkin-carry-heading strong{font-size:10px;color:var(--ink)}
.checkin-carry-heading small{font-size:8px;color:var(--muted);line-height:1.45}
.checkin-carry-list{display:flex;flex-direction:column;gap:6px;max-height:160px;overflow:auto}
.checkin-carry-row{display:flex;align-items:center;gap:8px;padding:8px 9px;border-radius:8px;background:var(--surface);cursor:pointer}
.checkin-carry-row input{width:15px;height:15px;accent-color:var(--purple)}
.checkin-carry-row span{flex:1;min-width:0;color:var(--ink);font-size:9px;overflow-wrap:anywhere}
.checkin-carry-row small{color:var(--muted);font-size:8px}
.checkin-no-carry{margin:0;color:var(--muted);font-size:9px}
.notification-center-status{padding:10px 12px;border-radius:9px;background:var(--surface-2);color:var(--muted);font-size:9px;line-height:1.5}
.notification-center-section{margin-top:17px}
.notification-center-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.notification-center-heading strong{color:var(--ink);font-size:10px}
.notification-center-heading>span{color:var(--muted);font-size:8px}
.notification-center-heading .text-button{font-size:8px}
.notification-center-list{display:flex;flex-direction:column;gap:6px;max-height:190px;overflow:auto}
.notification-list-row{display:flex;align-items:flex-start;gap:10px;padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}
.notification-list-row.seen{opacity:.68}
.notification-list-icon{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:8px;background:var(--purple-soft);color:var(--purple)}
.notification-list-copy{display:flex;flex-direction:column;gap:4px;min-width:0}
.notification-list-copy strong{color:var(--ink);font-size:9px}
.notification-list-copy small{color:var(--muted);font-size:8px;line-height:1.5}
.notification-empty{margin:0;padding:12px;color:var(--muted);font-size:9px;text-align:center}
@media(max-width:680px){
  .notification-preference-row{grid-template-columns:minmax(0,1fr) auto;gap:9px}
  .notification-time{grid-column:1/-1;justify-content:space-between;padding-left:1px}
  .notification-time input{width:105px;padding:9px}
  .checkin-day-summary{gap:6px}
  .checkin-day-summary>span{padding:9px 7px}
  .checkin-day-summary strong{font-size:17px}
  .evening-checkin-modal,.notification-center-modal{max-height:calc(94dvh - env(safe-area-inset-top));overflow:auto}
}
html[data-theme="dark"] .assistant-warm .assistant-suggestion-icon{background:#3a302d;color:#e5ad8d}
html[data-theme="dark"] .assistant-calm .assistant-suggestion-icon{background:#2d3542;color:#a6bfd9}
html[data-theme="dark"] .assistant-soft .assistant-suggestion-icon{background:#2d3b34;color:#a6c9b1}


/* v11 — Natural-language Quick Capture and editable review cards */
.quick-capture-top-button{display:flex;align-items:center;gap:7px;min-height:35px;padding:0 11px;border:1px solid color-mix(in srgb,var(--purple) 24%,var(--line));border-radius:9px;background:var(--purple-soft);color:var(--purple-dark);font-size:10px;font-weight:700;white-space:nowrap}
.quick-capture-top-button span{font-size:15px}
.quick-capture-modal{width:min(100%,700px);max-height:min(92dvh,900px);overflow:auto;overscroll-behavior:contain}
.quick-capture-intro{margin:-7px 0 13px;color:var(--muted);font-size:11px;line-height:1.6;max-width:62ch}
.quick-capture-input{min-height:112px;font-size:13px;line-height:1.6;padding:13px 14px;background:var(--surface-2)}
.quick-capture-examples{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:10px 0 13px;color:var(--muted);font-size:9px}
.quick-capture-examples button{border:1px solid var(--line);border-radius:99px;background:var(--surface);color:var(--muted);padding:6px 9px;font-size:9px}
.quick-capture-examples button:hover{border-color:var(--purple);color:var(--purple-dark)}
.quick-capture-parse-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0 15px;border-bottom:1px solid var(--line)}
.quick-capture-parse-row>span{color:var(--muted);font-size:9px;line-height:1.5}
.quick-capture-parse-row .primary-button{flex:none;min-height:38px}
.capture-preview-section{padding-top:15px}
.capture-preview-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.capture-preview-heading>div{display:flex;flex-direction:column;gap:4px}
.capture-preview-heading strong{font-size:12px;color:var(--ink)}
.capture-preview-heading small{font-size:9px;color:var(--muted)}
.capture-preview-heading .text-button{white-space:nowrap}
.capture-preview-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.capture-preview-card{min-width:0;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface-2)}
.capture-card-top{display:flex;align-items:center;gap:8px;margin-bottom:9px}
.capture-card-index{width:23px;height:23px;display:grid;place-items:center;flex:none;border-radius:7px;background:var(--purple-soft);color:var(--purple-dark);font-size:9px;font-weight:800}
.capture-kind-select{min-width:0;flex:1;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);padding:6px 8px;font-size:9px}
.capture-remove{width:27px;height:27px;border:0;border-radius:7px;background:var(--surface);color:var(--muted);font-size:18px}
.capture-preview-card .form-label{margin:10px 0 5px;font-size:8px}
.capture-preview-card .text-input{min-height:34px;padding:8px;font-size:10px;background:var(--surface)}
.capture-preview-card input[type="text"]{font-size:11px}
.capture-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.capture-task-only{display:block}
.capture-source-note{display:block;margin-top:9px;color:var(--muted);font-size:8px;line-height:1.4;overflow-wrap:anywhere}
.capture-preview-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:14px;margin-top:12px;border-top:1px solid var(--line)}
.capture-preview-footer>span{color:var(--muted);font-size:9px}
.capture-preview-footer .primary-button{min-height:39px}
.quick-capture-bottom{display:flex;align-items:center;gap:7px;margin-top:13px;color:var(--muted);font-size:9px}
.quick-capture-bottom span{color:var(--purple)}
html[data-theme="dark"] .quick-capture-top-button{background:#302b40;color:#c7bde8;border-color:#51486b}
html[data-theme="dark"] .quick-capture-examples button,html[data-theme="dark"] .capture-kind-select,html[data-theme="dark"] .capture-remove{background:var(--surface);color:var(--ink);border-color:var(--line)}
@media(max-width:680px){
  .quick-capture-top-button{width:38px;height:40px;min-height:40px;justify-content:center;padding:0;border-radius:12px;font-size:0}
  .quick-capture-top-button span{font-size:18px}
  .quick-capture-modal{max-height:calc(95dvh - env(safe-area-inset-top));padding:20px 16px calc(20px + env(safe-area-inset-bottom))}
  .quick-capture-intro{font-size:11px}
  .quick-capture-input{min-height:125px;font-size:16px;line-height:1.55}
  .quick-capture-examples{gap:6px}
  .quick-capture-examples button{font-size:9px;padding:7px 9px}
  .quick-capture-parse-row{align-items:stretch;flex-direction:column}
  .quick-capture-parse-row .primary-button{width:100%;min-height:45px}
  .capture-preview-list{grid-template-columns:1fr}
  .capture-preview-card{padding:13px}
  .capture-preview-card .text-input{min-height:42px;font-size:16px}
  .capture-kind-select{min-height:38px;font-size:12px}
  .capture-remove{width:36px;height:36px}
  .capture-preview-footer{align-items:stretch;flex-direction:column}
  .capture-preview-footer .primary-button{width:100%;min-height:46px}
}

/* v12 — Smart Weekly Planning */
.weekly-planner-title-row{align-items:center}
.weekly-planner-title-row .week-review-nav{display:flex;align-items:center;gap:6px;flex:none}
.weekly-planner-range{margin:-2px 0 14px;color:var(--muted);font-size:10px;font-weight:700}
.weekly-planner-hero{display:flex;align-items:flex-start;gap:15px;padding:21px 23px;margin-bottom:14px;border:1px solid color-mix(in srgb,var(--purple) 23%,var(--line));border-radius:16px;background:linear-gradient(125deg,color-mix(in srgb,var(--purple-soft) 68%,var(--surface)),var(--surface) 78%)}
.weekly-planner-hero-icon{width:43px;height:43px;display:grid;place-items:center;flex:none;border-radius:13px;background:var(--purple-soft);color:var(--purple);font-size:23px}
.weekly-planner-hero h2{margin:5px 0 5px;color:var(--ink);font:700 19px var(--display);letter-spacing:-.5px}
.weekly-planner-hero p{max-width:670px;margin:0;color:var(--muted);font-size:10px;line-height:1.6}
.weekly-planner-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(235px,.8fr);gap:13px;align-items:start}
.weekly-planner-builder,.weekly-planner-context,.weekly-plan-preview{min-width:0;padding:19px;border:1px solid var(--line);border-radius:15px;background:var(--surface)}
.weekly-planner-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.weekly-planner-section-head h2{margin:5px 0 4px;color:var(--ink);font:700 16px var(--display);letter-spacing:-.35px}
.weekly-planner-section-head p{margin:0;color:var(--muted);font-size:9px;line-height:1.55}
.weekly-planner-step{width:29px;height:29px;display:grid;place-items:center;flex:none;border-radius:9px;background:var(--purple-soft);color:var(--purple-dark);font:800 10px var(--display)}
.weekly-plan-goals{min-height:138px;resize:vertical;font-size:11px;line-height:1.65;background:var(--surface-2)}
.weekly-plan-example-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:9px 0 19px;color:var(--muted);font-size:8px}
.weekly-plan-example-row button{padding:6px 9px;border:1px solid var(--line);border-radius:99px;background:var(--surface-2);color:var(--muted);font-size:8px}
.weekly-plan-example-row button:hover{border-color:var(--purple);color:var(--purple-dark)}
.weekly-planner-section-head-small{padding-top:14px;border-top:1px solid var(--line)}
.weekly-plan-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:10px 0 14px}
.weekly-plan-days label{position:relative;cursor:pointer}
.weekly-plan-days input{position:absolute;opacity:0;inset:0;pointer-events:none}
.weekly-plan-days span{min-height:42px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--muted);font-size:9px;font-weight:700;transition:all .15s}
.weekly-plan-days input:checked+span{border-color:color-mix(in srgb,var(--purple) 48%,var(--line));background:var(--purple-soft);color:var(--purple-dark)}
.weekly-plan-days input:focus-visible+span{outline:2px solid var(--purple);outline-offset:2px}
.weekly-plan-inbox-option{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);cursor:pointer}
.weekly-plan-inbox-option input{width:16px;height:16px;margin:2px 0 0;accent-color:var(--purple);flex:none}
.weekly-plan-inbox-option span{display:flex;flex-direction:column;gap:4px;min-width:0}
.weekly-plan-inbox-option strong{font-size:9px;color:var(--ink)}
.weekly-plan-inbox-option small{font-size:8px;color:var(--muted);line-height:1.45}
.weekly-planner-build-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}
.weekly-planner-build-row>span{max-width:230px;color:var(--muted);font-size:8px;line-height:1.5}
.weekly-planner-build-row .primary-button{flex:none;min-height:39px}
.weekly-planner-context{display:flex;flex-direction:column;gap:9px}
.weekly-context-stat{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2)}
.weekly-context-stat strong{color:var(--ink);font:700 20px var(--display)}
.weekly-context-stat span{color:var(--muted);font-size:8px;text-align:right}
.weekly-context-window{display:flex;flex-direction:column;gap:5px;margin-top:3px;padding:12px;border-radius:10px;background:var(--purple-soft)}
.weekly-context-window span{color:var(--purple-dark);font-size:7px;font-weight:800;letter-spacing:.8px}
.weekly-context-window strong{color:var(--purple-dark);font:700 15px var(--display)}
.weekly-context-window small{color:var(--muted);font-size:8px}
.weekly-context-note{display:flex;gap:8px;margin:4px 0 0;color:var(--muted);font-size:8px;line-height:1.6}
.weekly-context-note span{color:var(--coral);font-size:14px}
.weekly-plan-preview{margin-top:14px;scroll-margin-top:20px}
.weekly-plan-preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:13px}
.weekly-plan-preview-head h2{margin:5px 0;color:var(--ink);font:700 19px var(--display);letter-spacing:-.5px}
.weekly-plan-preview-head p{margin:0;color:var(--muted);font-size:9px;line-height:1.5}
.weekly-plan-preview-head .text-button{white-space:nowrap}
.weekly-plan-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:10px}
.weekly-plan-summary>div{display:flex;flex-direction:column;gap:4px;min-width:0;padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2)}
.weekly-plan-summary strong{color:var(--ink);font:700 18px var(--display);overflow-wrap:anywhere}
.weekly-plan-summary span{color:var(--muted);font-size:7px;line-height:1.4}
.weekly-plan-distribution{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 14px}
.weekly-plan-day-chip{display:flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}
.weekly-plan-day-chip span{color:var(--muted);font-size:8px}
.weekly-plan-day-chip strong{color:var(--ink);font-size:8px}
.weekly-plan-day-chip small{color:var(--purple-dark);font-size:8px;font-weight:700}
.weekly-plan-no-days{color:var(--muted);font-size:9px}
.weekly-plan-suggestions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.weekly-plan-suggestion{min-width:0;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2);transition:opacity .15s,border-color .15s}
.weekly-plan-suggestion.is-excluded{opacity:.52}
.weekly-suggestion-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.weekly-suggestion-include{width:18px;height:18px;display:grid;place-items:center;cursor:pointer}
.weekly-suggestion-include input{width:15px;height:15px;accent-color:var(--purple)}
.weekly-suggestion-kind{padding:4px 6px;border-radius:5px;background:var(--purple-soft);color:var(--purple-dark);font-size:6px;font-weight:800;letter-spacing:.6px}
.weekly-suggestion-kind.inbox{background:color-mix(in srgb,var(--sage) 16%,var(--surface));color:#638873}
.weekly-suggestion-head>strong{margin-left:auto;color:var(--muted);font-size:8px}
.weekly-suggestion-title-label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:8px;font-weight:700}
.weekly-suggestion-title-label .text-input{min-height:36px;padding:8px 9px;font-size:10px}
.weekly-suggestion-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:9px}
.weekly-suggestion-fields label{display:flex;flex-direction:column;gap:5px;min-width:0;color:var(--muted);font-size:7px;font-weight:700}
.weekly-suggestion-fields .text-input{width:100%;min-width:0;min-height:34px;padding:7px 8px;font-size:9px}
.weekly-suggestion-fields .weekly-suggestion-area{grid-column:1/-1}
.weekly-suggestion-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:9px;padding-top:8px;border-top:1px solid var(--line)}
.weekly-suggestion-foot>span{color:var(--muted);font-size:7px;line-height:1.4}
.weekly-suggestion-foot .text-button{flex:none;font-size:8px}
.weekly-plan-overflow{margin-top:12px;padding:11px 12px;border-radius:9px;background:color-mix(in srgb,var(--coral) 10%,var(--surface-2));border:1px solid color-mix(in srgb,var(--coral) 25%,var(--line))}
.weekly-plan-overflow strong{color:var(--ink);font-size:9px}
.weekly-plan-overflow p{margin:4px 0 0;color:var(--muted);font-size:8px;line-height:1.5}
.weekly-plan-apply-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:13px;border-top:1px solid var(--line)}
.weekly-plan-apply-row>span{color:var(--muted);font-size:8px}
.weekly-plan-apply-row .primary-button{flex:none}
.weekly-planner-footnote{display:flex;align-items:flex-start;gap:8px;margin:14px 0 30px;color:var(--muted);font-size:8px;line-height:1.6}
.weekly-planner-footnote span{color:var(--purple);font-size:13px}
html[data-theme="dark"] .weekly-planner-hero{background:linear-gradient(125deg,#302b40,var(--surface) 78%)}
html[data-theme="dark"] .weekly-planner-builder,html[data-theme="dark"] .weekly-planner-context,html[data-theme="dark"] .weekly-plan-preview,html[data-theme="dark"] .weekly-plan-suggestion{background:var(--surface);border-color:var(--line)}
html[data-theme="dark"] .weekly-plan-days span,html[data-theme="dark"] .weekly-plan-inbox-option,html[data-theme="dark"] .weekly-context-stat,html[data-theme="dark"] .weekly-plan-summary>div,html[data-theme="dark"] .weekly-plan-day-chip{background:var(--surface-2);border-color:var(--line);color:var(--ink)}
html[data-theme="dark"] .weekly-plan-days input:checked+span{background:#302c3d;color:#c7bde8;border-color:#635987}
@media(max-width:900px){.weekly-planner-layout{grid-template-columns:1fr}.weekly-planner-context{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.weekly-planner-context>.weekly-planner-section-head,.weekly-context-window,.weekly-context-note{grid-column:1/-1}.weekly-context-stat{flex-direction:column;align-items:flex-start;gap:2px}.weekly-context-stat span{text-align:left}}
@media(max-width:680px){.weekly-planner-title-row{align-items:flex-start;flex-direction:column}.weekly-planner-title-row .week-review-nav{width:100%}.weekly-planner-title-row .week-review-nav .secondary-button:nth-child(2){flex:1}.weekly-planner-hero{padding:15px;gap:11px}.weekly-planner-hero-icon{width:37px;height:37px}.weekly-planner-hero h2{font-size:16px}.weekly-planner-layout{grid-template-columns:1fr}.weekly-planner-builder,.weekly-planner-context,.weekly-plan-preview{padding:13px}.weekly-plan-goals{font-size:16px;min-height:130px}.weekly-plan-days{gap:4px}.weekly-plan-days span{min-height:40px;font-size:8px}.weekly-planner-build-row{align-items:stretch;flex-direction:column}.weekly-planner-build-row>span{max-width:none}.weekly-planner-build-row .primary-button{width:100%;min-height:45px}.weekly-planner-context{grid-template-columns:1fr 1fr}.weekly-planner-context>.weekly-planner-section-head,.weekly-context-window,.weekly-context-note{grid-column:1/-1}.weekly-context-stat{padding:10px}.weekly-context-stat strong{font-size:18px}.weekly-plan-preview-head{align-items:flex-start}.weekly-plan-preview-head .text-button{font-size:8px}.weekly-plan-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.weekly-plan-suggestions{grid-template-columns:1fr}.weekly-plan-suggestion{padding:12px}.weekly-suggestion-title-label .text-input{font-size:16px;min-height:43px}.weekly-suggestion-fields .text-input{font-size:15px;min-height:42px}.weekly-plan-apply-row{align-items:stretch;flex-direction:column}.weekly-plan-apply-row .primary-button{width:100%;min-height:46px}}


/* v13 — calendar integrations */
.calendar-provider-block{padding:14px 0;border-top:1px solid var(--line)}
.calendar-provider-block:first-of-type{border-top:0;padding-top:4px}
.calendar-provider-block .integration-row{margin:0 0 14px}
.google-client-label{display:flex;gap:8px;align-items:center;margin:10px 0 7px}
.google-client-label span{font-size:8px;color:var(--muted);font-weight:600}
.google-connection-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.google-connection-actions button{min-height:38px}
.google-connection-status{margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--muted);font-size:9px;line-height:1.55}
.provider-state{flex:none;padding:5px 8px;border-radius:99px;background:var(--surface-2);color:var(--muted);font-size:8px;font-weight:700}
.provider-state.is-connected{background:color-mix(in srgb,var(--sage) 18%,var(--surface));color:#5e8a70}
.provider-state-file{background:var(--purple-soft);color:var(--purple-dark)}
.google-calendar-manager{margin-top:13px;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2)}
.google-manager-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.google-manager-heading strong{font-size:10px;color:var(--ink)}
.google-calendar-list{display:flex;flex-direction:column;gap:7px;margin:10px 0 14px}
.google-calendar-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(115px,150px);gap:8px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.google-calendar-check{display:flex;align-items:center;gap:8px;min-width:0;cursor:pointer}
.google-calendar-check input{width:15px;height:15px;flex:none;accent-color:var(--purple)}
.google-calendar-color{width:9px;height:9px;flex:none;border-radius:50%;background:var(--calendar-color)}
.google-calendar-name{display:flex;flex-direction:column;gap:2px;min-width:0}
.google-calendar-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;color:var(--ink)}
.google-calendar-name small{font-size:7px;color:var(--muted);text-transform:capitalize}
.google-calendar-area{min-height:34px;padding:6px 8px;font-size:8px}
.google-calendar-empty{padding:12px;border:1px dashed var(--line);border-radius:8px;color:var(--muted);font-size:9px}
.google-disconnect-button{margin-top:10px;color:var(--muted)}
.google-disconnect-button:hover{color:var(--coral)}
.apple-provider-block{margin-top:12px}
.calendar-item-external{border-style:dashed;cursor:default}
.calendar-item-external:hover{transform:none}
.calendar-item-external .calendar-item-top i{color:var(--muted)}
@media(max-width:680px){
  .google-calendar-row{grid-template-columns:minmax(0,1fr) 112px;gap:6px;padding:7px}
  .google-calendar-area{font-size:11px;min-height:38px}
  .google-connection-actions{display:grid;grid-template-columns:1fr}
  .google-connection-actions button{width:100%;min-height:43px}
  .google-manager-heading{align-items:flex-start}
}


/* v14 — Smart Conflict Detection & safe rescheduling */
.calendar-title-actions #calendarConflictButton{display:inline-flex;align-items:center;gap:7px}
.conflict-count,.conflict-section-count{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:99px;background:var(--purple-soft);color:var(--purple-dark);font-size:9px;font-weight:800}
.conflict-count.is-alert{background:color-mix(in srgb,var(--coral) 15%,var(--surface));color:var(--coral)}
.conflict-center-modal{width:min(720px,calc(100vw - 28px));max-height:min(88vh,900px);overflow:auto}
.conflict-intro{margin:0 0 14px;color:var(--muted);font-size:10px;line-height:1.65}
.conflict-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 18px}
.conflict-overview-card{padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.conflict-overview-card span{display:block;color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.55px;text-transform:uppercase}
.conflict-overview-card strong{display:block;margin-top:5px;color:var(--ink);font-family:var(--display);font-size:22px;letter-spacing:-.6px}
.conflict-overview-card small{display:block;margin-top:2px;color:var(--muted);font-size:8px;line-height:1.4}
.conflict-section{margin-top:17px}
.conflict-section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:9px}
.conflict-section-head .eyebrow{font-size:7px}
.conflict-section-head h3{margin:3px 0 0;color:var(--ink);font-family:var(--display);font-size:16px;letter-spacing:-.3px}
.conflict-list,.reschedule-proposal-list{display:flex;flex-direction:column;gap:8px}
.conflict-card{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:9px;padding:11px;border:1px solid color-mix(in srgb,var(--coral) 24%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--coral) 4%,var(--surface))}
.conflict-card-item{min-width:0;display:flex;flex-direction:column;gap:4px}
.conflict-card-item strong{color:var(--ink);font-size:10px;line-height:1.35;overflow-wrap:anywhere}
.conflict-card-item small{color:var(--muted);font-size:8px;line-height:1.4}
.conflict-card-item em{align-self:flex-start;padding:3px 6px;border-radius:99px;background:var(--surface-2);color:var(--muted);font-size:7px;font-style:normal;font-weight:800;text-transform:uppercase}
.conflict-card-item em.movable{background:var(--purple-soft);color:var(--purple-dark)}
.conflict-card-overlap{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--coral);font-size:8px;font-weight:800;text-align:center;white-space:nowrap}
.conflict-card-overlap span{font-size:16px}
.conflict-empty{padding:18px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);font-size:9px;line-height:1.6;text-align:center}
.conflict-deadline-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.conflict-deadline-risk{padding:9px 11px;border:1px solid color-mix(in srgb,#d0a45c 35%,var(--line));border-radius:9px;background:color-mix(in srgb,#d0a45c 7%,var(--surface));color:var(--muted);font-size:8px;line-height:1.5}
.conflict-deadline-risk strong{color:var(--ink)}
.reschedule-proposal{padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2)}
.reschedule-proposal-top{display:flex;align-items:flex-start;gap:9px}
.reschedule-proposal-top input{width:16px;height:16px;margin:2px 0 0;accent-color:var(--purple);flex:none}
.reschedule-proposal-copy{min-width:0;flex:1}
.reschedule-proposal-copy strong{display:block;color:var(--ink);font-size:10px;line-height:1.4}
.reschedule-proposal-copy small{display:block;margin-top:3px;color:var(--muted);font-size:8px;line-height:1.5}
.reschedule-proposal-status{flex:none;padding:4px 7px;border-radius:99px;background:var(--purple-soft);color:var(--purple-dark);font-size:7px;font-weight:800}
.reschedule-proposal-status.no-slot{background:color-mix(in srgb,var(--coral) 12%,var(--surface));color:var(--coral)}
.reschedule-proposal-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin:10px 0 0 25px}
.reschedule-proposal-fields label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:8px;font-weight:700}
.reschedule-proposal-fields input{width:100%;min-height:36px;padding:7px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:11px}
.reschedule-proposal-reason{margin:8px 0 0 25px;color:var(--muted);font-size:8px;line-height:1.5}
.conflict-safety-note{margin-top:13px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--muted);font-size:8px;line-height:1.6}
.conflict-undo-button{margin-right:auto}
html[data-theme="dark"] .conflict-card,html[data-theme="dark"] .conflict-overview-card,html[data-theme="dark"] .reschedule-proposal,html[data-theme="dark"] .conflict-safety-note{background:var(--surface-2);border-color:var(--line)}
@media(max-width:680px){
  .calendar-title-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}
  .calendar-title-actions #calendarConflictButton{grid-column:1/-1;justify-content:center}
  .calendar-title-actions button{width:100%;min-height:43px}
  .conflict-center-modal{width:calc(100vw - 16px);max-height:92dvh;padding:16px}
  .conflict-overview{gap:6px}
  .conflict-overview-card{padding:9px}
  .conflict-overview-card strong{font-size:19px}
  .conflict-card{grid-template-columns:minmax(0,1fr);gap:7px}
  .conflict-card-overlap{flex-direction:row;justify-content:flex-start}
  .conflict-card-overlap span{font-size:12px}
  .conflict-card-overlap small{display:inline}
  .reschedule-proposal-fields{margin-left:25px}
  .conflict-modal-actions{display:grid;grid-template-columns:1fr 1fr}
  .conflict-modal-actions .conflict-undo-button{grid-column:1/-1;margin:0;justify-self:start}
  .conflict-modal-actions .modal-actions-spacer{display:none}
  .conflict-modal-actions button{width:100%;min-height:43px}
  .conflict-modal-actions .primary-button{grid-column:1/-1}
}


/* v15 — Dayflow Smart Assistant (local, profile-aware guidance) */
.assistant-nav-pill{margin-left:auto;padding:3px 6px;border-radius:99px;background:var(--purple-soft);color:var(--purple-dark);font-size:7px;font-weight:800;letter-spacing:.4px}
.assistant-title-row{align-items:flex-end;margin-bottom:16px}
.assistant-local-badge{display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid var(--line);border-radius:99px;background:var(--surface);color:var(--muted);font-size:8px;white-space:nowrap}
.assistant-local-badge i{width:7px;height:7px;border-radius:50%;background:var(--sage);box-shadow:0 0 0 3px color-mix(in srgb,var(--sage) 17%,transparent)}
.smart-assistant-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(245px,.72fr);gap:14px;align-items:start}
.smart-assistant-chat,.assistant-context-card,.assistant-tools-card{min-width:0;border:1px solid var(--line);background:var(--surface);border-radius:16px;box-shadow:0 8px 26px rgba(30,24,48,.045)}
.smart-assistant-chat{display:flex;flex-direction:column;min-height:660px;overflow:hidden}
.smart-assistant-chat-head{display:flex;align-items:center;gap:11px;padding:16px 18px;border-bottom:1px solid var(--line)}
.smart-assistant-avatar,.smart-chat-avatar{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:12px;background:var(--purple-soft);color:var(--purple);font-size:19px}
.smart-assistant-chat-head>div:nth-child(2){display:flex;flex-direction:column;gap:3px;min-width:0}
.smart-assistant-chat-head strong{font-size:11px;color:var(--ink)}
.smart-assistant-chat-head small{font-size:8px;color:var(--muted)}
.assistant-mode-label{margin-left:auto;padding:5px 7px;border-radius:99px;background:var(--surface-2);color:var(--muted);font-size:6px;font-weight:800;letter-spacing:.8px;white-space:nowrap}
.smart-assistant-messages{display:flex;flex:1;flex-direction:column;gap:18px;min-height:310px;max-height:530px;overflow:auto;padding:21px 18px;scroll-behavior:smooth}
.smart-assistant-welcome{display:flex;align-items:flex-start;gap:9px;max-width:88%}
.smart-assistant-welcome-mark{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:9px;background:var(--purple-soft);color:var(--purple)}
.smart-assistant-bubble,.smart-chat-bubble{padding:12px 14px;border:1px solid var(--line);border-radius:4px 13px 13px 13px;background:var(--surface-2);color:var(--ink);font-size:10px;line-height:1.7}
.smart-assistant-bubble strong{display:block;margin-bottom:3px;font-size:11px}
.smart-assistant-bubble p{margin:0;color:var(--muted)}
.smart-chat-message{display:flex;align-items:flex-start;gap:9px;max-width:92%}
.smart-chat-message.from-user{align-self:flex-end;flex-direction:row-reverse}
.smart-chat-message-body{min-width:0;max-width:100%}
.smart-chat-sender{display:block;margin:0 0 5px;color:var(--muted);font-size:7px;font-weight:800;letter-spacing:.5px;text-transform:uppercase}
.from-user .smart-chat-sender{text-align:right}
.from-user .smart-chat-bubble{border-color:color-mix(in srgb,var(--purple) 22%,var(--line));border-radius:13px 4px 13px 13px;background:var(--purple-soft)}
.smart-chat-avatar{width:28px;height:28px;border-radius:9px;font-size:13px}
.from-user .smart-chat-avatar{background:var(--surface-2);color:var(--muted);font-size:10px;font-weight:800}
.smart-chat-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.smart-chat-actions button,.smart-assistant-starters button{min-height:30px;padding:6px 9px;border:1px solid var(--line);border-radius:99px;background:var(--surface);color:var(--purple-dark);font-size:8px;font-weight:700;cursor:pointer}
.smart-chat-actions button:hover,.smart-assistant-starters button:hover{border-color:var(--purple);background:var(--purple-soft)}
.smart-chat-actions button span{padding-left:4px}
.smart-assistant-starters{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:11px 17px;border-top:1px solid var(--line)}
.smart-assistant-starters>span{width:100%;color:var(--muted);font-size:6px;font-weight:800;letter-spacing:.9px}
.smart-assistant-composer{margin:0 13px 10px;padding:9px 10px 8px;border:1px solid var(--line-strong,var(--line));border-radius:12px;background:var(--surface)}
.smart-assistant-composer textarea{display:block;width:100%;min-height:54px;max-height:150px;resize:vertical;border:0;outline:0;background:transparent;color:var(--ink);font:500 12px/1.55 'DM Sans',sans-serif;}
.smart-assistant-composer textarea::placeholder{color:var(--muted)}
.smart-assistant-composer-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:5px}
.smart-assistant-composer-foot>span{color:var(--muted);font-size:7px}
.smart-assistant-composer-foot .primary-button{min-height:34px;padding:7px 13px;font-size:8px}
.smart-assistant-privacy{display:flex;align-items:flex-start;gap:6px;margin:0;padding:0 17px 14px;color:var(--muted);font-size:7px;line-height:1.5}
.smart-assistant-privacy span{color:var(--purple);font-size:11px}
.smart-assistant-side{display:flex;flex-direction:column;gap:12px;min-width:0}
.assistant-context-card,.assistant-tools-card{padding:15px}
.assistant-context-spark{color:var(--purple);font-size:18px}
.assistant-context-stats{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:11px}
.assistant-context-stats>div{display:flex;flex-direction:column;gap:4px;padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2)}
.assistant-context-stats strong{color:var(--ink);font:700 20px var(--display)}
.assistant-context-stats span{color:var(--muted);font-size:7px}
.assistant-context-note{display:flex;gap:8px;margin-top:11px;padding:10px;border-radius:9px;background:var(--purple-soft)}
.assistant-context-note>span{color:var(--purple);font-size:14px}
.assistant-context-note p{margin:0;color:var(--purple-dark);font-size:8px;line-height:1.55}
.assistant-tools-card .card-heading{margin-bottom:8px}
.assistant-tools-card>button{display:flex;align-items:center;gap:9px;width:100%;min-height:40px;padding:8px 3px;border:0;border-top:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}
.assistant-tools-card>button>span{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--purple-soft);color:var(--purple);font-size:13px}
.assistant-tools-card>button strong{flex:1;color:var(--ink);font-size:9px}
.assistant-tools-card>button i{color:var(--muted);font-size:13px;font-style:normal}
.assistant-tools-card>button:hover strong{color:var(--purple)}
html[data-theme="dark"] .smart-assistant-chat,html[data-theme="dark"] .assistant-context-card,html[data-theme="dark"] .assistant-tools-card{background:var(--surface);border-color:var(--line)}
html[data-theme="dark"] .smart-assistant-bubble,html[data-theme="dark"] .smart-chat-bubble,html[data-theme="dark"] .assistant-context-stats>div{background:var(--surface-2);border-color:var(--line)}
html[data-theme="dark"] .from-user .smart-chat-bubble{background:#302b40;border-color:#4c4265}
html[data-theme="dark"] .assistant-context-note{background:#302b40}
html[data-theme="dark"] .assistant-context-note p{color:#c5b9e8}
@media(max-width:900px){.smart-assistant-layout{grid-template-columns:1fr}.smart-assistant-side{display:grid;grid-template-columns:1fr 1fr}}
@media(max-width:680px){.assistant-title-row{align-items:flex-start;flex-direction:column;gap:9px}.smart-assistant-layout{grid-template-columns:1fr;gap:10px}.smart-assistant-chat{min-height:calc(100dvh - 250px);border-radius:13px}.smart-assistant-messages{min-height:240px;max-height:42dvh;padding:16px 12px}.smart-assistant-chat-head{padding:12px}.assistant-mode-label{font-size:5px}.smart-assistant-starters{padding:9px 11px}.smart-assistant-starters button{min-height:34px;font-size:9px}.smart-assistant-composer{margin:0 9px 8px;padding:9px}.smart-assistant-composer textarea{font-size:16px;min-height:58px}.smart-assistant-composer-foot .primary-button{min-height:40px}.smart-assistant-privacy{padding:0 12px 11px}.smart-assistant-side{grid-template-columns:1fr}.smart-assistant-welcome,.smart-chat-message{max-width:98%}.smart-chat-bubble,.smart-assistant-bubble{font-size:11px}}

.assistant-chat-link{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:8px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--purple-dark);font-size:8px;font-weight:800;text-align:left;cursor:pointer}
.assistant-chat-link:hover{background:var(--purple-soft);border-color:color-mix(in srgb,var(--purple) 30%,var(--line))}
.assistant-chat-link span{font-size:13px}
.assistant-clear-button{margin-left:5px;padding:5px 7px;border:1px solid var(--line);border-radius:7px;background:transparent;color:var(--muted);font-size:7px;cursor:pointer}
.assistant-clear-button:hover{color:var(--coral);border-color:var(--coral)}
@media(max-width:680px){.assistant-clear-button{min-height:30px;font-size:9px}.assistant-chat-link{min-height:40px;font-size:10px}}


/* Dayflow v16 — local profile-aware personalization and planning insights */
.personalization-settings-card{scroll-margin-top:18px}
.personalization-preferences-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:15px 0 12px}
.personalization-preferences-grid .planning-pref{min-width:0}
.personalization-preferences-grid .text-input{font-size:12px;min-height:40px}
.personalization-days-block{padding:12px 0 5px;border-top:1px solid var(--line)}
.personalization-days-block>strong{display:block;margin-bottom:10px;font-size:10px;color:var(--ink)}
.personalization-days{display:flex;flex-wrap:wrap;gap:6px}
.personalization-days label{position:relative;cursor:pointer}
.personalization-days input{position:absolute;opacity:0;pointer-events:none}
.personalization-days span{display:grid;place-items:center;min-width:42px;height:31px;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--muted);font-size:9px;font-weight:700}
.personalization-days input:checked+span{background:var(--purple-soft);border-color:var(--purple);color:var(--purple-dark)}
.personalization-days input:focus-visible+span{outline:2px solid var(--purple);outline-offset:2px}
.personalization-insights{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2)}
.personalization-insight-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:11px}
.personalization-insight-heading strong{font-size:10px;color:var(--ink)}
.personalization-insight-heading span{font-size:8px;color:var(--muted)}
.personalization-insight-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:10px}
.personalization-insight-grid>div{display:flex;flex-direction:column;gap:5px;padding:9px;border-radius:8px;background:var(--surface)}
.personalization-insight-grid span{font-size:7px;color:var(--muted);text-transform:uppercase;letter-spacing:.45px}
.personalization-insight-grid strong{font-size:11px;color:var(--ink)}
.personalization-insights>p{margin:7px 0 0;color:var(--muted);font-size:8px;line-height:1.6}
.personalization-paused-note{margin-top:10px;padding:9px;border-radius:7px;background:var(--purple-soft);color:var(--purple-dark);font-size:8px}
.personalization-footer{display:flex;align-items:flex-end;gap:12px;justify-content:space-between}
.personalization-footer .data-note{flex:1}
.personalization-footer .text-button{flex:none;white-space:nowrap;font-size:8px;color:#b46f66}
.assistant-pattern-snapshot{margin-top:13px;padding:11px 12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line)}
.assistant-pattern-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}
.assistant-pattern-heading strong{font-size:9px;color:var(--ink)}
.assistant-pattern-heading button{border:0;background:none;color:var(--purple-dark);font-size:8px;font-weight:700;padding:3px}
.assistant-pattern-snapshot p{margin:8px 0 4px;font-size:9px;color:var(--ink);line-height:1.45}
.assistant-pattern-snapshot small{font-size:7px;color:var(--muted)}
html[data-theme="dark"] .personalization-insights,html[data-theme="dark"] .assistant-pattern-snapshot{background:var(--surface-2);border-color:var(--line)}
html[data-theme="dark"] .personalization-insight-grid>div{background:var(--surface)}
html[data-theme="dark"] .personalization-days span{background:var(--surface);border-color:var(--line);color:var(--muted)}
html[data-theme="dark"] .personalization-days input:checked+span{background:#302c3d;border-color:#a99bdf;color:#d3c8ee}
@media(max-width:680px){.personalization-preferences-grid{gap:9px}.personalization-insight-grid{grid-template-columns:1fr 1fr}.personalization-footer{align-items:flex-start;flex-direction:column}.personalization-footer .text-button{align-self:flex-end}.personalization-days span{min-width:38px;height:35px}}


/* v17 — Smart Life Dashboard */
.dashboard-nav-mark{font-size:8px;letter-spacing:.5px;color:var(--purple);background:var(--purple-soft);padding:3px 6px;border-radius:20px}
.life-dashboard-title-row{align-items:flex-end;margin-bottom:19px}
.life-dashboard-range{display:flex;gap:4px;padding:4px;background:var(--surface-2);border:1px solid var(--line);border-radius:11px;flex:none}
.life-dashboard-range-button{border:0;background:transparent;color:var(--muted);padding:9px 13px;border-radius:8px;font-size:10px;font-weight:700;cursor:pointer;min-height:35px;transition:all .18s}
.life-dashboard-range-button.active{background:var(--surface);color:var(--ink);box-shadow:0 2px 9px #29223a12}
.life-dashboard-intro{display:flex;align-items:center;gap:13px;padding:17px 19px;margin-bottom:15px;background:linear-gradient(105deg,#eee9f6 0%,#f5eee8 100%);border:1px solid #e8e0ef;border-radius:15px;color:#453f56}
.life-dashboard-intro-icon{width:39px;height:39px;flex:none;display:grid;place-items:center;border-radius:12px;background:#fff9;color:#8172af;font-size:21px}
.life-dashboard-intro>div:nth-child(2){flex:1;min-width:0}
.life-dashboard-intro strong{display:block;font-family:Manrope,sans-serif;font-size:14px;letter-spacing:-.25px}
.life-dashboard-intro p{margin:4px 0 0;color:#7b7488;font-size:10px;line-height:1.55}
.life-dashboard-period{flex:none;padding:7px 9px;border:1px solid #ded6e9;background:#ffffff80;border-radius:8px;color:#716784;font-size:9px;font-weight:700}
.life-dashboard-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-bottom:14px}
.life-dashboard-stat{position:relative;min-width:0;padding:16px 15px 14px;background:var(--surface);border:1px solid var(--line);border-radius:13px;box-shadow:0 3px 12px #30263a05;overflow:hidden}
.life-dashboard-stat>span{display:block;color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.85px;padding-right:22px}
.life-dashboard-stat>strong{display:block;margin-top:9px;color:var(--ink);font-family:Manrope,sans-serif;font-size:27px;line-height:1.1;letter-spacing:-1px}
.life-dashboard-stat>small{display:block;margin-top:6px;color:var(--muted);font-size:8px;line-height:1.4}
.dashboard-stat-icon{position:absolute;right:13px;top:12px;color:var(--purple);font-size:17px;font-style:normal;opacity:.75}
.life-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:13px;margin-bottom:13px}
.life-dashboard-card{min-width:0;padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 3px 12px #30263a05}
.life-dashboard-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:17px}
.life-dashboard-card-head>div{min-width:0}
.life-dashboard-card-head .eyebrow{font-size:7px;letter-spacing:1px;color:var(--muted);font-weight:800;margin-bottom:6px}
.life-dashboard-card-head h2{margin:0;color:var(--ink);font-family:Manrope,sans-serif;font-size:16px;letter-spacing:-.35px}
.life-dashboard-card-head p{margin:5px 0 0;color:var(--muted);font-size:9px;line-height:1.5}
.life-dashboard-card-head .text-button{white-space:nowrap;font-size:9px;padding-top:2px}
.life-dashboard-card-symbol{display:grid;place-items:center;width:31px;height:31px;flex:none;background:var(--purple-soft);border-radius:10px;color:var(--purple);font-size:17px}
.life-dashboard-area-mix{display:flex;flex-direction:column;gap:13px;min-height:124px}
.life-dashboard-area-row{display:grid;grid-template-columns:minmax(88px,1fr) minmax(80px,1.8fr) auto;align-items:center;gap:10px}
.life-dashboard-area-name{display:flex;align-items:center;gap:7px;min-width:0;color:var(--ink);font-size:9px;font-weight:700}
.life-dashboard-area-dot{width:8px;height:8px;flex:none;border-radius:3px;background:var(--dashboard-area-color)}
.life-dashboard-area-track,.life-dashboard-goal-track{height:7px;overflow:hidden;background:var(--surface-2);border-radius:20px}
.life-dashboard-area-track i,.life-dashboard-goal-track i{display:block;height:100%;width:0;background:var(--dashboard-area-color);border-radius:20px;transition:width .3s ease}
.life-dashboard-area-value{color:var(--muted);font-size:9px;font-weight:700;white-space:nowrap}
.life-dashboard-empty{display:grid;place-items:center;min-height:115px;padding:12px;text-align:center;color:var(--muted);font-size:10px;line-height:1.6}
.life-dashboard-empty strong{display:block;color:var(--ink);font-size:11px;margin-bottom:3px}
.life-dashboard-footnote{margin-top:14px;padding-top:11px;border-top:1px solid var(--line);color:var(--muted);font-size:8px;line-height:1.55}
.life-dashboard-goals{display:flex;flex-direction:column;gap:16px}
.life-dashboard-goal{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 10px;align-items:center}
.life-dashboard-goal-title{display:flex;align-items:center;gap:7px;color:var(--ink);font-size:10px;font-weight:700}
.life-dashboard-goal-title i{width:8px;height:8px;border-radius:3px;background:var(--dashboard-area-color)}
.life-dashboard-goal-value{color:var(--muted);font-size:9px;font-weight:700;white-space:nowrap}
.life-dashboard-goal-track{grid-column:1/-1;height:8px}
.life-dashboard-goal-track i{background:var(--dashboard-area-color)}
.life-dashboard-goal-note{grid-column:1/-1;margin-top:-3px;color:var(--muted);font-size:8px}
.life-dashboard-card-link{margin-top:12px}
.life-dashboard-trend{display:flex;flex-direction:column;gap:10px;min-height:123px}
.life-dashboard-trend-row{display:grid;grid-template-columns:62px minmax(0,1fr) 26px;align-items:center;gap:9px}
.life-dashboard-trend-week{color:var(--muted);font-size:8px;font-weight:700}
.life-dashboard-trend-bars{display:flex;flex-direction:column;gap:4px}
.life-dashboard-trend-bar{height:6px;width:0;min-width:0;border-radius:20px;background:#9b8bc7;transition:width .3s ease}
.life-dashboard-trend-bar.planned{height:4px;background:#c6c0d6;opacity:.85}
.life-dashboard-trend-count{color:var(--ink);font-size:9px;text-align:right;font-weight:800}
.life-dashboard-trend-meta{grid-column:2/4;margin-top:-7px;color:var(--muted);font-size:7px}
.life-dashboard-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px;color:var(--muted);font-size:8px}
.life-dashboard-legend span{display:inline-flex;align-items:center;gap:5px}
.life-dashboard-legend i{width:8px;height:8px;border-radius:3px;background:#9b8bc7}
.life-dashboard-legend i.dashboard-legend-planned{height:4px;background:#c6c0d6}
.life-dashboard-signals{display:flex;flex-direction:column;gap:9px;min-height:120px}
.life-dashboard-signal{display:grid;grid-template-columns:25px minmax(0,1fr);gap:9px;padding:10px;border:1px solid var(--line);background:var(--surface-2);border-radius:10px}
.life-dashboard-signal-icon{width:25px;height:25px;display:grid;place-items:center;border-radius:8px;background:var(--purple-soft);color:var(--purple);font-size:12px}
.life-dashboard-signal strong{display:block;color:var(--ink);font-size:9px;line-height:1.4}
.life-dashboard-signal p{margin:3px 0 0;color:var(--muted);font-size:8px;line-height:1.5}
.life-dashboard-patterns-card{margin-bottom:13px}
.life-dashboard-patterns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.life-dashboard-pattern{min-width:0;padding:13px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px}
.life-dashboard-pattern span{display:block;color:var(--muted);font-size:7px;font-weight:800;letter-spacing:.65px;text-transform:uppercase}
.life-dashboard-pattern strong{display:block;margin-top:7px;color:var(--ink);font-family:Manrope,sans-serif;font-size:17px;letter-spacing:-.4px}
.life-dashboard-pattern small{display:block;margin-top:4px;color:var(--muted);font-size:8px;line-height:1.5}
.life-dashboard-footer-note{display:flex;gap:9px;align-items:flex-start;padding:12px 14px;margin-bottom:12px;border:1px solid var(--line);background:var(--surface-2);border-radius:10px;color:var(--muted)}
.life-dashboard-footer-note>span{color:var(--purple);font-size:14px;line-height:1.35}
.life-dashboard-footer-note p{margin:0;font-size:8px;line-height:1.6}
.life-dashboard-footer-note strong{color:var(--ink)}
.life-dashboard-quick-links{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.life-dashboard-quick-links button{font-size:9px;min-height:36px}
html[data-theme="dark"] .life-dashboard-intro{background:linear-gradient(105deg,#302b40 0%,#353043 100%);border-color:#40394f;color:#f0edf8}
html[data-theme="dark"] .life-dashboard-intro p{color:#b8b0ca}
html[data-theme="dark"] .life-dashboard-period{background:#282532;border-color:#4a425d;color:#cfc5e6}
html[data-theme="dark"] .life-dashboard-range{background:var(--surface-2)}
html[data-theme="dark"] .life-dashboard-range-button.active{background:var(--surface);color:var(--ink)}
html[data-theme="dark"] .life-dashboard-trend-bar.planned{background:#5c566c}
@media(max-width:1000px){.life-dashboard-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.life-dashboard-grid{grid-template-columns:1fr 1fr}.life-dashboard-area-card,.life-dashboard-trend-card{grid-column:1/-1}}
@media(max-width:680px){
  .life-dashboard-title-row{align-items:flex-start;flex-direction:column;gap:12px}
  .life-dashboard-title-row>div:first-child{width:100%}
  .life-dashboard-range{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}
  .life-dashboard-range-button{padding:8px 5px}
  .life-dashboard-intro{align-items:flex-start;padding:13px;gap:9px;flex-wrap:wrap}
  .life-dashboard-intro-icon{width:33px;height:33px;font-size:17px}
  .life-dashboard-intro strong{font-size:11px}
  .life-dashboard-intro p{font-size:8px}
  .life-dashboard-period{margin-left:42px;margin-top:-3px}
  .life-dashboard-stat-grid{gap:7px}
  .life-dashboard-stat{padding:12px 11px 11px;border-radius:11px}
  .life-dashboard-stat>span{font-size:7px;letter-spacing:.5px}
  .life-dashboard-stat>strong{font-size:22px;margin-top:8px}
  .life-dashboard-stat>small{font-size:7px}
  .dashboard-stat-icon{right:10px;top:9px;font-size:14px}
  .life-dashboard-grid{grid-template-columns:1fr;gap:9px}
  .life-dashboard-area-card,.life-dashboard-trend-card{grid-column:auto}
  .life-dashboard-card{padding:13px;border-radius:12px}
  .life-dashboard-card-head{gap:7px;margin-bottom:13px}
  .life-dashboard-card-head h2{font-size:14px}
  .life-dashboard-card-head p{font-size:8px}
  .life-dashboard-card-head .text-button{font-size:8px}
  .life-dashboard-area-row{grid-template-columns:minmax(83px,1fr) minmax(60px,1.3fr) auto;gap:7px}
  .life-dashboard-area-name{font-size:8px}
  .life-dashboard-area-value{font-size:8px}
  .life-dashboard-goals{gap:13px}
  .life-dashboard-trend-row{grid-template-columns:52px minmax(0,1fr) 23px;gap:7px}
  .life-dashboard-patterns{grid-template-columns:1fr 1fr;gap:7px}
  .life-dashboard-pattern{padding:10px}
  .life-dashboard-pattern strong{font-size:15px}
  .life-dashboard-pattern:last-child:nth-child(odd){grid-column:1/-1}
  .life-dashboard-quick-links{display:grid;grid-template-columns:1fr 1fr}
  .life-dashboard-quick-links button:last-child{grid-column:1/-1}
}
@media(max-width:360px){.life-dashboard-stat>strong{font-size:19px}.life-dashboard-patterns{grid-template-columns:1fr}.life-dashboard-pattern:last-child:nth-child(odd){grid-column:auto}}


/* v18 — calmer navigation, keyboard command palette and consistent controls */
:root {
  --nav-width: 248px;
  --nav-compact-width: 78px;
  --control-height: 42px;
  --focus-ring: 0 0 0 3px color-mix(in srgb, var(--purple) 24%, transparent);
}
html { scroll-padding-top: 84px; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
}
.skip-link {
  position: fixed; top: 10px; left: 10px; z-index: 300; transform: translateY(-150%);
  padding: 10px 14px; border-radius: 10px; background: var(--ink); color: var(--surface);
  text-decoration: none; font-size: 12px; font-weight: 700; box-shadow: var(--shadow);
}
.skip-link:focus { transform: translateY(0); }
.brand-row { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:30px; }
.brand-row .brand { min-width:0; }
.sidebar-collapse-button {
  display:grid; place-items:center; width:30px; height:30px; flex:none; border:1px solid var(--line);
  background:var(--surface-2); color:var(--muted); border-radius:9px; font-size:22px; line-height:1;
  transition:background .18s,color .18s,transform .18s;
}
.sidebar-collapse-button:hover { background:var(--purple-soft); color:var(--purple-dark); }
.nav-section-label { margin-top:14px; padding-bottom:6px; color:color-mix(in srgb,var(--muted) 82%,var(--purple)); font-size:8px; letter-spacing:1.25px; }
.nav-group { margin-top:24px; }
.nav-item { min-height:42px; height:42px; gap:11px; transition:background .16s,color .16s,transform .16s; }
.nav-item.active { box-shadow: inset 2px 0 0 var(--purple); }
.nav-item:active { transform:scale(.985); }
.new-task-button { min-height:44px; }
.new-task-label { font-size:inherit; line-height:inherit; }
.main-area { transition:margin-left .22s ease; }
.sidebar { transition:width .22s ease,transform .25s ease; }
.sidebar-scrim { display:none; }

/* Optional compact desktop navigation. Preference is stored per local profile. */
.app-shell.sidebar-compact .sidebar { width:var(--nav-compact-width); padding:25px 10px 15px; }
.app-shell.sidebar-compact .main-area { margin-left:var(--nav-compact-width); }
.app-shell.sidebar-compact .brand-row { justify-content:center; flex-direction:column; gap:12px; }
.app-shell.sidebar-compact .brand { justify-content:center; padding:0; }
.app-shell.sidebar-compact .brand > span:not(.brand-mark) { display:none; }
.app-shell.sidebar-compact .sidebar-collapse-button { transform:rotate(180deg); }
.app-shell.sidebar-compact .profile-switcher { justify-content:center; padding:7px; margin:22px 0 12px; }
.app-shell.sidebar-compact .profile-copy, .app-shell.sidebar-compact .profile-switcher .chevron { display:none; }
.app-shell.sidebar-compact .new-task-button { justify-content:center; padding:11px 8px; }
.app-shell.sidebar-compact .new-task-label, .app-shell.sidebar-compact .new-task-button kbd { display:none; }
.app-shell.sidebar-compact .nav-label { display:none; }
.app-shell.sidebar-compact .nav-section-label { display:none; }
.app-shell.sidebar-compact .nav-group { margin-top:19px; }
.app-shell.sidebar-compact .nav-item { justify-content:center; gap:0; padding:0; }
.app-shell.sidebar-compact .nav-item > span:not(.nav-icon),
.app-shell.sidebar-compact .nav-item > small,
.app-shell.sidebar-compact .nav-item > .nav-count,
.app-shell.sidebar-compact .project-nav-item > span,
.app-shell.sidebar-compact .project-nav-item > small { display:none; }
.app-shell.sidebar-compact .nav-icon { width:auto; font-size:19px; }
.app-shell.sidebar-compact .inbox-dot { margin:0; position:absolute; transform:translate(11px,-10px); }
.app-shell.sidebar-compact .project-nav-item { justify-content:center; padding:0; }
.app-shell.sidebar-compact .project-nav-item .project-color-dot { width:11px; height:11px; }
.app-shell.sidebar-compact .projects-nav { margin-top:20px; }
.app-shell.sidebar-compact .focus-card, .app-shell.sidebar-compact .sidebar-footer { display:none; }
.app-shell.sidebar-compact .sidebar-bottom { margin-top:auto; }
.app-shell.sidebar-compact .settings-link { justify-content:center; padding:0; }
.app-shell.sidebar-compact .settings-link .nav-icon { font-size:19px; }

/* Command palette */
.command-palette-backdrop { align-items:flex-start; padding-top:min(13vh,120px); }
.command-palette {
  width:min(100%,620px); max-height:min(76vh,690px); overflow:hidden; display:flex; flex-direction:column;
  background:var(--surface); color:var(--ink); border:1px solid var(--line); border-radius:19px;
  box-shadow:0 24px 90px rgba(25,24,34,.22); animation:slideUp .18s ease;
}
.command-palette-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:22px 23px 14px; }
.command-palette-head .eyebrow { margin-bottom:6px; }
.command-palette-head h2 { margin:0; font-family:var(--display); font-size:20px; letter-spacing:-.6px; }
.command-palette-close { width:34px; height:34px; flex:none; border:1px solid var(--line); background:var(--surface-2); color:var(--muted); border-radius:10px; font-size:21px; }
.command-palette-search { display:flex; align-items:center; gap:10px; margin:0 18px; padding:0 13px; min-height:48px; border:1px solid var(--line); border-radius:12px; background:var(--surface-2); color:var(--muted); }
.command-palette-search > span { font-size:21px; }
.command-palette-search input { min-width:0; width:100%; border:0; outline:0; box-shadow:none!important; background:transparent; color:var(--ink); font-size:14px; }
.command-palette-search:focus-within { border-color:var(--purple); box-shadow:var(--focus-ring); }
.command-palette-hint { margin:10px 22px 6px; color:var(--muted); font-size:10px; }
.command-palette-results { padding:5px 12px 13px; overflow-y:auto; overscroll-behavior:contain; }
.command-palette-group-label { padding:10px 10px 6px; color:var(--muted); font-size:9px; font-weight:800; letter-spacing:1px; text-transform:uppercase; }
.command-palette-item { width:100%; display:flex; align-items:center; gap:11px; min-height:48px; padding:7px 10px; border:0; border-radius:11px; background:transparent; color:var(--ink); text-align:left; }
.command-palette-item:hover, .command-palette-item.selected { background:var(--purple-soft); }
.command-palette-item-icon { width:31px; height:31px; display:grid; place-items:center; flex:none; border-radius:10px; background:var(--surface-2); color:var(--purple-dark); font-size:15px; }
.command-palette-item-copy { display:flex; flex-direction:column; gap:3px; flex:1; min-width:0; }
.command-palette-item-copy strong { font-size:11px; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.command-palette-item-copy small { color:var(--muted); font-size:9px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.command-palette-item kbd { margin-left:auto; }
.command-palette-empty { padding:30px 12px; color:var(--muted); text-align:center; font-size:11px; }
.command-palette-footer { display:flex; flex-wrap:wrap; align-items:center; gap:14px; padding:11px 20px; border-top:1px solid var(--line); background:var(--surface-2); color:var(--muted); font-size:9px; }
.command-palette-footer span { display:flex; align-items:center; gap:5px; }
html[data-theme="dark"] .command-palette { background:var(--surface); border-color:var(--line); }
html[data-theme="dark"] .command-palette-search { background:var(--surface-2); border-color:var(--line); }
html[data-theme="dark"] .command-palette-item:hover, html[data-theme="dark"] .command-palette-item.selected { background:#302d40; }
html[data-theme="dark"] .command-palette-item-icon { background:#2a2c36; }
html[data-theme="dark"] .command-palette-footer { background:var(--surface-2); border-color:var(--line); }

/* Normalize page headings, content rhythm and touch targets. */
.view-title-row, .welcome-row { scroll-margin-top:90px; }
.view-title-row { margin-bottom:20px; }
.view-title-row h1 { line-height:1.16; }
.page-subtitle { max-width:64ch; line-height:1.55; }
.primary-button, .secondary-button { min-height:40px; border-radius:10px; }
.text-button { min-height:36px; }
.empty-state { border:1px dashed var(--line); border-radius:15px; background:color-mix(in srgb,var(--surface) 68%,transparent); }
.view:not(.hidden) { animation:viewEnter .18s ease both; }
@keyframes viewEnter { from { opacity:.82; transform:translateY(3px); } to { opacity:1; transform:translateY(0); } }
@media (max-width:900px) {
  .sidebar-collapse-button { display:none; }
  .app-shell.sidebar-compact .sidebar { width:min(290px,calc(100vw - 54px)); padding:calc(22px + env(safe-area-inset-top)) 17px calc(17px + env(safe-area-inset-bottom)); }
  .app-shell.sidebar-compact .main-area { margin-left:0; }
  .app-shell.sidebar-compact .brand-row { justify-content:space-between; flex-direction:row; gap:8px; }
  .app-shell.sidebar-compact .brand > span:not(.brand-mark),
  .app-shell.sidebar-compact .profile-copy,
  .app-shell.sidebar-compact .profile-switcher .chevron,
  .app-shell.sidebar-compact .new-task-label,
  .app-shell.sidebar-compact .nav-label,
  .app-shell.sidebar-compact .nav-section-label,
  .app-shell.sidebar-compact .nav-item > span:not(.nav-icon),
  .app-shell.sidebar-compact .nav-item > small,
  .app-shell.sidebar-compact .project-nav-item > span,
  .app-shell.sidebar-compact .project-nav-item > small,
  .app-shell.sidebar-compact .focus-card,
  .app-shell.sidebar-compact .sidebar-footer { display:initial; }
  .app-shell.sidebar-compact .profile-copy { display:flex; }
  .app-shell.sidebar-compact .nav-label { display:block; }
  .app-shell.sidebar-compact .nav-section-label { display:block; }
  .app-shell.sidebar-compact .nav-item { justify-content:flex-start; padding:0 12px; gap:11px; }
  .app-shell.sidebar-compact .nav-icon { width:17px; }
  .app-shell.sidebar-compact .new-task-button { justify-content:flex-start; padding:12px 13px; }
  .app-shell.sidebar-compact .new-task-label { display:inline; }
  .app-shell.sidebar-compact .new-task-button kbd { display:inline; }
  .app-shell.sidebar-compact .focus-card { display:block; }
  .app-shell.sidebar-compact .sidebar-footer { display:flex; }
  .app-shell.sidebar-compact .sidebar-collapse-button { transform:none; }
}
@media (max-width:680px) {
  .sidebar-collapse-button { display:none; }
  .sidebar-scrim { position:fixed; inset:0; z-index:30; display:none; border:0; border-radius:0; background:rgba(22,22,29,.34); backdrop-filter:blur(2px); }
  .app-shell.mobile-nav-open .sidebar-scrim { display:block; }
  .app-shell.mobile-nav-open .sidebar { z-index:35; box-shadow:12px 0 40px rgba(20,20,28,.16); }
  .app-shell.sidebar-compact .sidebar { width:min(290px,calc(100vw - 54px)); }
  .app-shell.mobile-nav-open .main-area { pointer-events:none; }
  .command-palette-backdrop { align-items:flex-end; padding:0; padding-top:max(12px,env(safe-area-inset-top)); }
  .command-palette { width:100%; max-height:min(84dvh,760px); border-radius:22px 22px 0 0; padding-bottom:env(safe-area-inset-bottom); }
  .command-palette-head { padding:17px 17px 12px; }
  .command-palette-head h2 { font-size:18px; }
  .command-palette-search { min-height:48px; margin:0 13px; }
  .command-palette-search input { font-size:16px; }
  .command-palette-hint { margin:9px 17px 4px; }
  .command-palette-results { max-height:52dvh; padding:4px 9px 10px; }
  .command-palette-item { min-height:52px; }
  .command-palette-footer { padding:10px 15px; gap:10px; }
  .nav-item { min-height:45px; height:45px; font-size:13px; }
  .nav-section-label { margin-top:16px; }
  .page-content { scroll-margin-top:65px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
}


/* v19 — Personal Productivity & Focus Experience */
.task-focus-button{width:29px;height:29px;display:grid;place-items:center;flex:none;border:1px solid color-mix(in srgb,var(--purple) 26%,var(--line));background:var(--purple-soft);color:var(--purple-dark);border-radius:9px;font-size:10px;transition:transform .16s,background .16s,border-color .16s}
.task-focus-button:hover{transform:scale(1.06);background:color-mix(in srgb,var(--purple) 17%,var(--surface));border-color:var(--purple)}
.task-tracked-time{color:var(--sage)!important;font-weight:700}
.today-focus-banner-host:empty{display:none}
.today-focus-banner{width:100%;display:flex;align-items:center;gap:11px;margin:-10px 0 21px;padding:12px 15px;border:1px solid color-mix(in srgb,var(--purple) 22%,var(--line));border-radius:13px;background:linear-gradient(105deg,var(--purple-soft),var(--surface));color:var(--ink);text-align:left;box-shadow:0 5px 16px rgba(65,55,90,.045)}
.today-focus-banner-icon{width:32px;height:32px;display:grid;place-items:center;flex:none;border-radius:10px;background:var(--surface);color:var(--purple);font-size:16px}
.today-focus-banner-copy{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}
.today-focus-banner-copy strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.today-focus-banner-copy small{font-size:9px;color:var(--muted)}
.today-focus-banner-action{font-size:9px;font-weight:800;color:var(--purple-dark);white-space:nowrap}
.focus-page-title-row{align-items:center}
.focus-page-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(275px,.8fr);gap:15px;align-items:start}
.focus-main-column,.focus-side-column{display:flex;flex-direction:column;gap:14px;min-width:0}
.focus-session-panel,.focus-work-card,.focus-metrics-card,.focus-history-card{min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 4px 16px rgba(35,32,45,.025)}
.focus-session-panel{overflow:hidden}
.focus-empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:36px 22px 32px;background:radial-gradient(circle at 50% 5%,var(--purple-soft),transparent 65%)}
.focus-empty-orbit{width:70px;height:70px;display:grid;place-items:center;margin-bottom:16px;border-radius:50%;border:1px solid color-mix(in srgb,var(--purple) 26%,var(--line));background:var(--surface);box-shadow:0 0 0 9px color-mix(in srgb,var(--purple) 7%,transparent),0 0 0 19px color-mix(in srgb,var(--purple) 4%,transparent);color:var(--purple);font-size:29px}
.focus-empty-state .eyebrow{margin-bottom:7px}
.focus-empty-state h2{margin:0;font-family:var(--display);font-size:21px;letter-spacing:-.65px}
.focus-empty-state p{max-width:440px;margin:9px auto 15px;color:var(--muted);font-size:11px;line-height:1.65}
.focus-empty-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:7px}
.focus-empty-meta span{padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);font-size:8px}
.focus-live-card{padding:23px 25px 19px;background:linear-gradient(135deg,var(--purple-soft),var(--surface) 76%)}
.focus-live-card.on-break{background:linear-gradient(135deg,#e7f0e9,var(--surface) 76%)}
.focus-live-card.paused{background:linear-gradient(135deg,var(--surface-2),var(--surface))}
.focus-live-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.focus-live-top .eyebrow{margin-bottom:7px}
.focus-live-top h2{margin:0;font-family:var(--display);font-size:19px;letter-spacing:-.6px;line-height:1.25}
.focus-live-top p{margin:5px 0 0;color:var(--muted);font-size:10px}
.focus-live-indicator{padding:6px 8px;border-radius:7px;background:var(--surface);color:var(--purple-dark);font-size:8px;font-weight:800;letter-spacing:.7px;white-space:nowrap}
.focus-live-card.running .focus-live-indicator{color:#4e8a68}
.focus-live-card.on-break .focus-live-indicator{color:#608b6d}
.focus-clock-wrap{display:flex;flex-direction:column;align-items:center;padding:26px 0 22px}
.focus-live-timer{font-family:var(--display);font-size:clamp(48px,7vw,74px);font-weight:700;line-height:1;letter-spacing:-3px;font-variant-numeric:tabular-nums;color:var(--ink)}
.focus-live-status{margin-top:9px;color:var(--purple-dark);font-size:10px;font-weight:800;letter-spacing:.8px;text-transform:uppercase}
.focus-break-note{margin-top:6px;color:var(--muted);font-size:9px;text-align:center}
.focus-live-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;padding-top:14px;border-top:1px solid color-mix(in srgb,var(--line) 85%,transparent)}
.focus-live-actions .primary-button,.focus-live-actions .secondary-button{min-height:39px;padding:0 15px;font-size:10px}
.focus-break-button{min-height:38px;padding:0 12px;border:1px solid color-mix(in srgb,var(--sage) 35%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--sage) 11%,var(--surface));color:color-mix(in srgb,var(--sage) 84%,var(--ink));font-size:9px;font-weight:700}
.focus-break-button.subtle{background:var(--surface);border-color:var(--line);color:var(--muted)}
.focus-finish-button{min-height:38px;padding:0 13px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);font-size:9px;font-weight:700}
.focus-discard-button{min-height:38px;padding:0 9px;border:0;background:transparent;color:var(--muted);font-size:9px}
.focus-work-card{padding:18px}
.focus-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.focus-section-head .eyebrow{margin-bottom:5px}
.focus-section-head h2{margin:0;font-family:var(--display);font-size:15px;letter-spacing:-.35px}
.focus-section-head p{margin:5px 0 0;color:var(--muted);font-size:9px;line-height:1.5}
.focus-section-symbol{width:31px;height:31px;display:grid;place-items:center;border-radius:10px;background:var(--purple-soft);color:var(--purple);font-size:17px}
.focus-task-list{display:flex;flex-direction:column;gap:7px}
.focus-pick-row{display:flex;align-items:center;gap:12px;min-width:0;padding:10px 11px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2)}
.focus-pick-copy{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.focus-pick-copy strong{font-size:10px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.focus-pick-copy span{color:var(--muted);font-size:8px;line-height:1.4}
.focus-start-task,.focus-current-task{min-height:34px;flex:none;padding:0 11px;border:1px solid color-mix(in srgb,var(--purple) 30%,var(--line));border-radius:8px;background:var(--purple-soft);color:var(--purple-dark);font-size:9px;font-weight:800}
.focus-current-task{border-color:var(--line);background:var(--surface);color:var(--muted)}
.focus-start-task:disabled,.focus-current-task:disabled{opacity:.65;cursor:not-allowed}
.focus-empty-tasks,.focus-history-empty{padding:20px 12px;text-align:center;color:var(--muted);font-size:9px;line-height:1.6}
.focus-empty-tasks strong{display:block;margin-bottom:3px;color:var(--ink);font-size:11px}
.focus-metrics-card,.focus-history-card{padding:17px}
.focus-metrics-card h2{margin:0 0 16px;font-family:var(--display);font-size:16px;letter-spacing:-.4px}
.focus-metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.focus-metric-grid>div{display:flex;flex-direction:column;gap:7px;min-width:0;padding:10px 8px;border-radius:10px;background:var(--surface-2)}
.focus-metric-grid span{color:var(--muted);font-size:7px;font-weight:800;letter-spacing:.7px}
.focus-metric-grid strong{font-family:var(--display);font-size:18px;letter-spacing:-.5px;font-variant-numeric:tabular-nums}
.focus-data-note{margin:11px 0 0;color:var(--muted);font-size:8px;line-height:1.55}
.focus-history-card .focus-section-head{margin-bottom:10px}
.focus-history-list{display:flex;flex-direction:column;gap:2px}
.focus-history-row{display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid var(--line)}
.focus-history-row:last-child{border-bottom:0}
.focus-history-dot{width:27px;height:27px;display:grid;place-items:center;flex:none;border-radius:8px;background:var(--purple-soft);color:var(--purple);font-size:13px}
.focus-history-row>div{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}
.focus-history-row strong{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.focus-history-row small{font-size:8px;color:var(--muted)}
.focus-history-row>b{color:var(--ink);font-size:9px;white-space:nowrap}
.focus-nav-live{background:color-mix(in srgb,var(--sage) 20%,var(--surface-2));color:#4e8a68}
@media(max-width:1050px){.focus-page-layout{grid-template-columns:1fr}.focus-side-column{display:grid;grid-template-columns:1fr 1fr}.focus-metrics-card,.focus-history-card{min-width:0}}
@media(max-width:680px){
  .focus-page-title-row{align-items:stretch;flex-direction:column;gap:12px}
  .focus-page-title-row .secondary-button{width:100%}
  .focus-page-layout{grid-template-columns:1fr;gap:10px}
  .focus-live-card{padding:17px 14px 14px}
  .focus-live-top h2{font-size:16px}
  .focus-live-timer{font-size:58px;letter-spacing:-2px}
  .focus-live-actions{gap:6px}
  .focus-live-actions .primary-button,.focus-live-actions .secondary-button,.focus-break-button,.focus-finish-button{min-height:42px;padding:0 10px;font-size:9px}
  .focus-discard-button{min-height:42px}
  .focus-work-card,.focus-metrics-card,.focus-history-card{padding:13px;border-radius:13px}
  .focus-pick-row{gap:8px;padding:9px}
  .focus-pick-copy strong{font-size:9px}
  .focus-pick-copy span{font-size:7px}
  .focus-start-task,.focus-current-task{min-height:36px;padding:0 8px;font-size:8px}
  .focus-side-column{grid-template-columns:1fr;gap:10px}
  .focus-metric-grid strong{font-size:20px}
  .today-focus-banner{gap:8px;padding:10px 11px;margin:-6px 0 15px}
  .today-focus-banner-action{font-size:8px}
  .task-focus-button{width:28px;height:30px}
}
@media(max-width:380px){.task-focus-button{width:25px;height:28px}.focus-live-actions{justify-content:stretch}.focus-live-actions>*{flex:1}.focus-live-timer{font-size:51px}.today-focus-banner-action{display:none}}
/* v19 dashboard metric reflow for the additional actual-focus statistic */
.life-dashboard-stat-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:1100px){.life-dashboard-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.life-dashboard-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* v20 — Smart Life Recommendations */
.recommendations-title-row{align-items:center}
.recommendations-title-row .secondary-button{white-space:nowrap}
.recommendations-hero{display:flex;align-items:center;gap:15px;padding:20px 22px;margin-bottom:13px;border:1px solid color-mix(in srgb,var(--purple) 18%,var(--line));border-radius:16px;background:linear-gradient(115deg,var(--purple-soft),var(--surface) 72%);}
.recommendations-hero-mark{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:14px;background:var(--surface);color:var(--purple);font-size:24px;box-shadow:0 4px 16px #483b6810}
.recommendations-hero-copy{flex:1;min-width:0}
.recommendations-hero-copy .eyebrow{color:var(--purple);font-size:7px;font-weight:800;letter-spacing:1px;margin-bottom:6px}
.recommendations-hero-copy h2{margin:0;color:var(--ink);font:700 17px/1.3 var(--display);letter-spacing:-.45px}
.recommendations-hero-copy p{margin:6px 0 0;color:var(--muted);font-size:9px;line-height:1.55}
.recommendations-hero-count{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none;min-width:58px;padding:8px;border:1px solid var(--line);border-radius:11px;background:var(--surface)}
.recommendations-hero-count strong{font:700 22px var(--display);color:var(--ink);font-variant-numeric:tabular-nums}
.recommendations-hero-count span{font-size:7px;color:var(--muted);font-weight:700;letter-spacing:.4px}
.recommendations-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:26px}
.recommendations-summary-card{position:relative;display:flex;flex-direction:column;gap:5px;min-width:0;padding:14px 15px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.recommendations-summary-card span{font-size:7px;letter-spacing:.8px;font-weight:800;color:var(--muted)}
.recommendations-summary-card strong{font:700 23px var(--display);letter-spacing:-.6px;color:var(--ink)}
.recommendations-summary-card small{font-size:8px;color:var(--muted)}
.recommendations-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}
.recommendations-section-head h2{margin:0;color:var(--ink);font:700 17px var(--display);letter-spacing:-.35px}
.recommendations-section-head p{margin:5px 0 0;color:var(--muted);font-size:9px;line-height:1.5}
.recommendations-section-head .eyebrow{margin-bottom:5px;font-size:7px;letter-spacing:1px;color:var(--muted);font-weight:800}
.recommendations-section-head .text-button{white-space:nowrap;font-size:8px}
.recommendations-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.recommendation-card{display:flex;flex-direction:column;min-width:0;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 5px 18px #30263a06}
.recommendation-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}
.recommendation-type{display:inline-flex;align-items:center;gap:5px;color:var(--purple-dark);font-size:7px;font-weight:800;letter-spacing:.75px}
.recommendation-confidence{max-width:52%;padding:4px 7px;border-radius:99px;background:var(--surface-2);color:var(--muted);font-size:7px;text-align:center;line-height:1.3}
.recommendation-card h3{margin:0;color:var(--ink);font:700 14px/1.35 var(--display);letter-spacing:-.25px}
.recommendation-card>p{margin:7px 0 13px;color:var(--muted);font-size:9px;line-height:1.65}
.recommendation-evidence{display:flex;flex-direction:column;gap:4px;margin-top:auto;padding:10px 11px;border-radius:9px;background:var(--surface-2);border:1px solid var(--line)}
.recommendation-evidence span{font-size:6px;letter-spacing:.85px;font-weight:800;color:var(--muted)}
.recommendation-evidence strong{font-size:8px;line-height:1.5;color:var(--ink);font-weight:600}
.recommendation-card-actions{display:flex;align-items:center;gap:7px;margin-top:12px;flex-wrap:wrap}
.recommendation-card-actions .primary-button{min-height:34px;padding:8px 10px;font-size:8px}
.recommendation-soft-action,.recommendation-dismiss-action{min-height:32px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--muted);font-size:8px;cursor:pointer}
.recommendation-soft-action:hover{border-color:var(--purple);color:var(--purple)}
.recommendation-dismiss-action{margin-left:auto;width:32px;font-size:16px;line-height:1}
.recommendation-dismiss-action:hover{border-color:var(--coral);color:var(--coral)}
.recommendation-attention{border-top:3px solid var(--coral)}
.recommendation-planning{border-top:3px solid var(--purple)}
.recommendation-balance{border-top:3px solid var(--sage)}
.recommendation-focus{border-top:3px solid var(--blue)}
.recommendation-rhythm{border-top:3px solid var(--peach)}
.recommendation-organize{border-top:3px solid #9a9aa3}
.recommendations-empty{padding:28px 20px;text-align:center;border:1px dashed var(--line-strong,var(--line));border-radius:14px;background:var(--surface)}
.recommendations-empty>span{display:grid;place-items:center;width:40px;height:40px;margin:0 auto 10px;border-radius:13px;background:var(--purple-soft);color:var(--purple);font-size:20px}
.recommendations-empty h3{margin:0;color:var(--ink);font:700 16px var(--display)}
.recommendations-empty p{max-width:470px;margin:7px auto 14px;color:var(--muted);font-size:9px;line-height:1.6}
.recommendations-empty-actions{display:flex;justify-content:center;gap:7px;flex-wrap:wrap}
.recommendations-empty-actions .secondary-button{min-height:35px;font-size:8px}
.recommendations-transparency{display:flex;align-items:flex-start;gap:8px;margin-top:14px;padding:12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line)}
.recommendations-transparency>span{color:var(--purple);font-size:14px;flex:none}
.recommendations-transparency p{margin:0;color:var(--muted);font-size:8px;line-height:1.6}
.recommendations-transparency strong{color:var(--ink)}
html[data-theme="dark"] .recommendations-hero{background:linear-gradient(115deg,#2c283a,var(--surface) 72%);border-color:var(--line)}
html[data-theme="dark"] .recommendations-hero-mark,html[data-theme="dark"] .recommendations-hero-count{background:var(--surface-2);border-color:var(--line)}
html[data-theme="dark"] .recommendation-evidence,html[data-theme="dark"] .recommendations-transparency{background:var(--surface-2);border-color:var(--line)}
@media(max-width:850px){.recommendations-list{grid-template-columns:1fr}}
@media(max-width:680px){
  .recommendations-title-row{align-items:stretch;flex-direction:column}
  .recommendations-title-row .secondary-button{width:100%;min-height:42px}
  .recommendations-hero{align-items:flex-start;padding:14px;gap:10px}
  .recommendations-hero-mark{width:38px;height:38px;border-radius:11px;font-size:20px}
  .recommendations-hero-copy h2{font-size:15px}
  .recommendations-hero-count{min-width:48px;padding:6px}
  .recommendations-hero-count strong{font-size:19px}
  .recommendations-summary-grid{gap:6px;margin-bottom:20px}
  .recommendations-summary-card{padding:10px 9px}
  .recommendations-summary-card span{font-size:6px;letter-spacing:.4px}
  .recommendations-summary-card strong{font-size:20px}
  .recommendations-summary-card small{font-size:7px;line-height:1.35}
  .recommendations-section-head{align-items:flex-start;flex-direction:column;gap:7px}
  .recommendations-section-head .text-button{min-height:32px}
  .recommendations-list{gap:9px}
  .recommendation-card{padding:13px;border-radius:12px}
  .recommendation-card h3{font-size:14px}
  .recommendation-card>p{font-size:10px}
  .recommendation-card-actions .primary-button{min-height:40px;font-size:9px}
  .recommendation-soft-action,.recommendation-dismiss-action{min-height:38px}
  .recommendations-empty-actions{flex-direction:column}
  .recommendations-empty-actions button{width:100%}
}


/* v21 — guided onboarding and complete personalization */
.onboarding-settings-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:13px;border-top:1px solid var(--line)}
.onboarding-settings-row>div{display:flex;flex-direction:column;gap:5px;min-width:0}
.onboarding-settings-row strong{font-size:10px;color:var(--ink)}
.onboarding-settings-row small{font-size:8px;color:var(--muted);line-height:1.5}
.onboarding-backdrop{z-index:150;background:rgba(28,27,35,.55);backdrop-filter:blur(8px)}
.onboarding-modal{width:min(100%,680px);max-height:min(92vh,860px);max-height:min(92dvh,860px);padding:25px 30px 20px;border-radius:22px;display:flex;flex-direction:column;overflow:hidden;background:var(--surface);color:var(--ink)}
.onboarding-modal::before{display:none}
.onboarding-topbar{display:flex;align-items:center;justify-content:space-between;flex:none;margin-bottom:20px}
.onboarding-brand{display:flex;align-items:center;gap:9px;color:var(--ink);text-decoration:none;font:800 19px var(--display);letter-spacing:-1px}
.onboarding-brand .brand-mark{width:25px;height:25px}
.onboarding-skip{border:0;background:transparent;color:var(--muted);font-size:10px;padding:8px 4px}
.onboarding-skip:hover{color:var(--ink)}
.onboarding-progress{display:flex;align-items:center;justify-content:space-between;gap:6px;flex:none;margin:0 0 22px}
.onboarding-progress-step{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:8px;white-space:nowrap}
.onboarding-progress-step i{display:grid;place-items:center;width:23px;height:23px;border:1px solid var(--line);border-radius:50%;font-style:normal;font-size:8px;font-weight:700;background:var(--surface-2)}
.onboarding-progress-step b{font-weight:600}
.onboarding-progress-step.active{color:var(--purple-dark)}
.onboarding-progress-step.active i,.onboarding-progress-step.done i{border-color:var(--purple);background:var(--purple);color:#fff}
.onboarding-progress-step.done b{color:var(--muted)}
.onboarding-progress-line{height:1px;flex:1;min-width:8px;background:var(--line)}
.onboarding-form{min-height:0;overflow:auto;overscroll-behavior:contain;flex:1;padding:1px 2px 10px}
.onboarding-step{animation:onboardingIn .2s ease}
@keyframes onboardingIn{from{opacity:.5;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.onboarding-step>.eyebrow{color:var(--purple);font-size:8px;letter-spacing:1.25px;font-weight:800;margin:3px 0 8px}
.onboarding-step h2{margin:0;color:var(--ink);font:750 clamp(23px,4vw,30px)/1.15 var(--display);letter-spacing:-1px}
.onboarding-description{max-width:540px;margin:9px 0 18px;color:var(--muted);font-size:11px;line-height:1.65}
.onboarding-illustration{height:74px;width:100%;display:flex;align-items:center;justify-content:center;gap:15px;margin:0 0 15px;border-radius:15px;background:linear-gradient(110deg,var(--purple-soft),var(--surface-2));overflow:hidden}
.onboarding-illustration span{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:var(--surface);box-shadow:0 5px 18px rgba(60,50,85,.07);color:var(--purple);font-size:19px}
.onboarding-name-input{max-width:360px;font-size:13px;padding:12px 13px}
.onboarding-field-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:20px 0 9px}
.onboarding-field-head strong{font-size:10px;color:var(--ink)}
.onboarding-field-head>span{font-size:8px;color:var(--muted)}
.onboarding-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.onboarding-choice{position:relative;display:flex;flex-direction:column;gap:5px;min-height:103px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;transition:border-color .16s,background .16s,transform .16s}
.onboarding-choice:has(input:checked){border-color:var(--purple);background:var(--purple-soft);box-shadow:0 0 0 2px color-mix(in srgb,var(--purple) 12%,transparent)}
.onboarding-choice input{position:absolute;opacity:0;pointer-events:none}
.onboarding-choice-icon{font-size:18px;color:var(--purple);margin-bottom:3px}
.onboarding-choice strong{font-size:9px;color:var(--ink)}
.onboarding-choice small{font-size:8px;color:var(--muted);line-height:1.45}
.onboarding-time-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:460px}
.onboarding-time-grid .planning-pref{display:flex;flex-direction:column;gap:7px}
.onboarding-time-grid .planning-pref span{font-size:9px;color:var(--muted)}
.onboarding-time-grid .text-input{font-size:13px;min-height:43px}
.onboarding-day-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
.onboarding-day-grid label{position:relative;cursor:pointer}
.onboarding-day-grid input{position:absolute;opacity:0}
.onboarding-day-grid span{display:grid;place-items:center;min-height:39px;border:1px solid var(--line);border-radius:9px;color:var(--muted);font-size:9px;font-weight:700;background:var(--surface)}
.onboarding-day-grid input:checked+span{border-color:var(--purple);background:var(--purple-soft);color:var(--purple-dark)}
.onboarding-soft-note{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;margin-top:18px;border-radius:10px;background:var(--surface-2)}
.onboarding-soft-note>span{color:var(--purple);font-size:17px}
.onboarding-soft-note p{margin:0;color:var(--muted);font-size:9px;line-height:1.55}
.onboarding-focus-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.onboarding-focus-choice{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);text-align:left}
.onboarding-focus-choice>span{font-size:17px;color:var(--purple)}
.onboarding-focus-choice strong{font-size:9px}
.onboarding-focus-choice small{font-size:8px;color:var(--muted)}
.onboarding-focus-choice.active{border-color:var(--purple);background:var(--purple-soft);box-shadow:0 0 0 2px color-mix(in srgb,var(--purple) 12%,transparent)}
.onboarding-area-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.onboarding-area-grid label{display:flex;align-items:center;gap:7px;min-height:37px;padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:var(--surface);cursor:pointer}
.onboarding-area-grid label:has(input:checked){border-color:var(--purple);background:var(--purple-soft)}
.onboarding-area-grid input{accent-color:var(--purple);width:13px;height:13px;margin:0}
.onboarding-area-grid strong{font-size:8px;color:var(--ink)}
.area-dot{width:8px;height:8px;border-radius:50%;flex:none}
.area-work{background:#8b7fbc}.area-personal{background:#7195b8}.area-family{background:#bd9163}.area-wellbeing{background:#79a18a}.area-growth{background:#b47791}.area-free{background:#7e91a5}
.onboarding-goals-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:14px}
.onboarding-goals-grid label{display:flex;flex-direction:column;gap:5px;min-width:0}
.onboarding-goals-grid label span{font-size:8px;color:var(--muted)}
.onboarding-goals-grid input{min-height:38px;padding:8px 9px;font-size:11px}
.onboarding-reminder-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 15px;padding:13px 14px;margin:10px 0;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.onboarding-reminder-copy{display:flex;align-items:center;gap:10px;min-width:0}
.onboarding-reminder-icon{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:10px;background:var(--purple-soft);color:var(--purple);font-size:17px}
.onboarding-reminder-copy>div{display:flex;flex-direction:column;gap:4px}
.onboarding-reminder-copy strong{font-size:10px;color:var(--ink)}
.onboarding-reminder-copy small{font-size:8px;color:var(--muted);line-height:1.4}
.onboarding-switch{position:relative;display:block;width:38px;height:22px;align-self:center}
.onboarding-switch input{position:absolute;opacity:0}
.onboarding-switch span{position:absolute;inset:0;border-radius:20px;background:var(--line);transition:.18s}
.onboarding-switch span:after{content:'';position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;transition:.18s}
.onboarding-switch input:checked+span{background:var(--purple)}
.onboarding-switch input:checked+span:after{transform:translateX(16px)}
.onboarding-reminder-time{grid-column:1/-1;display:flex;align-items:center;gap:12px;padding-left:44px}
.onboarding-reminder-time span{font-size:8px;color:var(--muted)}
.onboarding-reminder-time input{width:125px;min-height:35px;font-size:11px;padding:6px 9px}
.onboarding-summary{display:flex;flex-direction:column;gap:5px;padding:13px 14px;margin-top:14px;border:1px solid color-mix(in srgb,var(--purple) 22%,var(--line));border-radius:11px;background:var(--purple-soft)}
.onboarding-summary strong{font-size:10px;color:var(--ink)}
.onboarding-summary span{font-size:8px;line-height:1.4;color:var(--muted)}
.onboarding-privacy-note{margin:10px 0 0;color:var(--muted);font-size:8px;line-height:1.5}
.onboarding-footer{display:flex;align-items:center;gap:12px;flex:none;padding-top:15px;margin-top:12px;border-top:1px solid var(--line)}
.onboarding-footer>span{flex:1;text-align:center;color:var(--muted);font-size:8px;font-weight:700}
.onboarding-footer button{min-width:104px;min-height:40px}
.onboarding-footer button:disabled{opacity:0;pointer-events:none}
html[data-theme="dark"] .onboarding-choice,html[data-theme="dark"] .onboarding-focus-choice,html[data-theme="dark"] .onboarding-area-grid label,html[data-theme="dark"] .onboarding-reminder-card{background:var(--surface)}
html[data-theme="dark"] .onboarding-choice:has(input:checked),html[data-theme="dark"] .onboarding-focus-choice.active,html[data-theme="dark"] .onboarding-area-grid label:has(input:checked){background:var(--purple-soft)}
@media(max-width:680px){
  .onboarding-backdrop{padding:0;padding-top:env(safe-area-inset-top);align-items:flex-end}
  .onboarding-modal{width:100%;max-width:none;max-height:calc(100dvh - env(safe-area-inset-top));height:auto;min-height:min(680px,calc(100dvh - env(safe-area-inset-top)));padding:17px 18px calc(12px + env(safe-area-inset-bottom));border-radius:21px 21px 0 0}
  .onboarding-topbar{margin-bottom:14px}
  .onboarding-progress{gap:4px;margin-bottom:17px}
  .onboarding-progress-step{gap:4px;font-size:7px}
  .onboarding-progress-step i{width:21px;height:21px;font-size:7px}
  .onboarding-progress-line{min-width:4px}
  .onboarding-step h2{font-size:24px}
  .onboarding-description{font-size:10px;margin:8px 0 15px}
  .onboarding-choice-grid{grid-template-columns:1fr;gap:7px}
  .onboarding-choice{min-height:0;display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;column-gap:8px;padding:9px 11px}
  .onboarding-choice-icon{grid-row:span 2;margin:0}
  .onboarding-choice strong{font-size:9px}
  .onboarding-choice small{font-size:8px}
  .onboarding-day-grid{gap:5px}
  .onboarding-day-grid span{min-height:38px;font-size:8px}
  .onboarding-focus-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .onboarding-focus-choice{padding:9px 10px}
  .onboarding-area-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .onboarding-goals-grid{gap:6px}
  .onboarding-goals-grid label span{font-size:7px;line-height:1.3}
  .onboarding-goals-grid input{min-height:40px;font-size:13px}
  .onboarding-footer{padding-top:12px;margin-top:8px}
  .onboarding-footer button{min-width:94px;min-height:44px}
}
@media(max-width:380px){.onboarding-modal{padding-left:14px;padding-right:14px}.onboarding-progress-step b{display:none}.onboarding-progress-step i{width:24px;height:24px}.onboarding-goals-grid{grid-template-columns:1fr}.onboarding-goals-grid label{display:grid;grid-template-columns:1fr 74px;align-items:center}.onboarding-goals-grid input{min-height:36px}}
@media(prefers-reduced-motion:reduce){.onboarding-step{animation:none}}

/* v22 — Data & Privacy Foundation */
.data-privacy-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:2px 0 14px}
.data-privacy-stat{display:flex;flex-direction:column;gap:3px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:11px 12px;min-width:0}
.data-privacy-stat strong{font-family:var(--display);font-size:20px;line-height:1.1;color:var(--ink)}
.data-privacy-stat span{font-size:9px;color:var(--muted)}
.data-privacy-size{grid-column:1/-1;font-size:9px;color:var(--muted);padding:2px 2px 0}
.backup-status-row{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:9px;padding:2px 0 10px}
.backup-status-dot{width:7px;height:7px;border-radius:50%;background:var(--sage);box-shadow:0 0 0 3px color-mix(in srgb,var(--sage) 15%,transparent);flex:none}
.data-actions-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:5px 0 17px}
.data-actions-grid .secondary-button{min-height:39px;padding:9px 10px;white-space:normal;line-height:1.35}
.backup-history-block{border-top:1px solid var(--line);padding-top:14px}
.backup-history-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.backup-history-heading strong{font-size:10px;color:var(--ink)}
.automatic-backup-list{display:flex;flex-direction:column;gap:6px}
.backup-history-item{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:9px;padding:9px 10px;min-width:0}
.backup-history-copy{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}
.backup-history-copy strong{font-size:9px;font-weight:600;color:var(--ink)}
.backup-history-copy small{font-size:8px;color:var(--muted)}
.backup-history-item .text-button{font-size:9px;padding:5px 6px;white-space:nowrap}
.backup-delete-button{font-size:17px!important;line-height:1;color:var(--muted)!important}
.privacy-details-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}
.privacy-details-grid>div{background:var(--surface-2);border:1px solid var(--line);border-radius:9px;padding:11px}
.privacy-details-grid strong{font-size:9px;color:var(--ink)}
.privacy-details-grid p{font-size:8px;line-height:1.55;color:var(--muted);margin:5px 0 0}
.data-danger-zone{display:flex;justify-content:space-between;align-items:center;gap:14px;border-top:1px solid var(--line);margin-top:15px;padding-top:14px}
.data-danger-zone>div{display:flex;flex-direction:column;gap:4px;min-width:0}
.data-danger-zone strong{font-size:9px;color:var(--ink)}
.data-danger-zone small{font-size:8px;line-height:1.5;color:var(--muted)}
.danger-button{border:1px solid #e7c8c5;background:#fff8f7;color:#a45d58;border-radius:8px;padding:8px 10px;font-size:9px;font-weight:700;white-space:nowrap}
.danger-button:hover{background:#fcecea}
.backup-review-modal{width:min(100%,520px)}
.backup-review-summary{background:var(--surface-2);border:1px solid var(--line);border-radius:11px;padding:13px}
.backup-review-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.backup-review-metrics>div{display:flex;flex-direction:column;gap:3px}
.backup-review-metrics strong{font-family:var(--display);font-size:20px;color:var(--ink)}
.backup-review-metrics small{font-size:8px;color:var(--muted)}
.backup-profile-preview{display:flex;flex-direction:column;gap:7px;margin-top:13px;padding-top:11px;border-top:1px solid var(--line)}
.backup-profile-preview>div{display:flex;align-items:center;gap:9px}
.backup-profile-preview>div>span:last-child{display:flex;flex-direction:column;gap:3px;min-width:0}
.backup-profile-preview strong{font-size:9px;color:var(--ink)}
.backup-profile-preview small{font-size:8px;color:var(--muted)}
html[data-theme="dark"] .danger-button{background:#382b2e;border-color:#674449;color:#e2aaa8}
html[data-theme="dark"] .backup-review-summary,html[data-theme="dark"] .data-privacy-stat,html[data-theme="dark"] .privacy-details-grid>div{background:var(--surface-2);border-color:var(--line)}
@media(max-width:760px){
  .data-privacy-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
  .data-actions-grid{grid-template-columns:1fr 1fr}
  .data-actions-grid button:last-of-type{grid-column:1/-1}
  .privacy-details-grid{grid-template-columns:1fr}
  .data-danger-zone{align-items:flex-start;flex-direction:column}
  .backup-review-metrics{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:12px}
  .backup-history-item{gap:5px;padding:8px}
}

/* Dayflow v22.2 — Today screen hierarchy and Morning Briefing polish */
#todayView .welcome-row { margin-bottom: 18px; }
#todayView .welcome-row h1 { letter-spacing: -1.2px; }
#todayView .welcome-row .wave {
  display: inline-grid;
  width: 25px;
  height: 25px;
  margin-left: 4px;
  place-items: center;
  border-radius: 8px;
  background: var(--purple-soft);
  color: var(--purple);
  font-family: Georgia, serif;
  font-size: 17px;
  line-height: 1;
  vertical-align: 3px;
}
.morning-briefing.briefing-no-priorities { grid-template-columns: minmax(0,1fr); }
.briefing-side[hidden], .briefing-area-summary[hidden] { display: none !important; }
.briefing-priority-list:empty { display: none; }
.briefing-area-summary { align-items: flex-start; }
.briefing-area-label { line-height: 1.4; }
.briefing-metric small { white-space: normal; line-height: 1.3; }
#todayView .task-heading { margin-top: 0; }
#todayView .primary-column { min-width: 0; }
#todayView .right-column { align-content: start; }
#todayView .agenda-card { order: 0; }
#todayView .today-rhythm-card { order: 1; }
#todayView .daily-assistant-card { order: 2; }
#todayView .evening-checkin-card { order: 3; }
#todayView .quick-capture-card { order: 4; }
#todayView .gentle-note { order: 5; }

@media (max-width: 680px) {
  #todayView .welcome-row { margin-bottom: 14px; align-items: flex-start; }
  #todayView .welcome-row .date-pill { display: none; }
  #todayView .welcome-row .eyebrow { margin-bottom: 6px; font-size: 8px; letter-spacing: 1.25px; }
  #todayView .welcome-row h1 { font-size: clamp(24px, 6.3vw, 29px); line-height: 1.12; }
  #todayView .welcome-row .wave { width: 22px; height: 22px; font-size: 15px; vertical-align: 2px; }
  #todayView .welcome-row .page-subtitle { margin-top: 6px; font-size: 11px; line-height: 1.4; }

  #todayView .morning-briefing {
    display: block;
    margin: 0 0 16px;
    padding: 17px 15px 15px;
    border-radius: 18px;
    box-shadow: 0 7px 22px rgba(75,62,103,.055);
  }
  #todayView .briefing-main h2 { margin: 9px 0 6px; font-size: clamp(21px, 5.7vw, 24px); line-height: 1.13; letter-spacing: -.8px; }
  #todayView .briefing-message { max-width: 38ch; font-size: 11px; line-height: 1.45; }
  #todayView .briefing-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; margin-top: 13px; }
  #todayView .briefing-metric { min-height: 76px; padding: 9px 8px 8px; border-radius: 11px; gap: 4px; }
  #todayView .briefing-metric > span { font-size: 7px; letter-spacing: .75px; line-height: 1.2; }
  #todayView .briefing-metric strong { font-size: 20px; letter-spacing: -.6px; }
  #todayView .briefing-metric small { display: -webkit-box; overflow: hidden; font-size: 8px; line-height: 1.25; white-space: normal; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  #todayView .briefing-actions { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); gap: 8px; margin-top: 11px; }
  #todayView .briefing-primary, #todayView .briefing-secondary { width: 100%; min-height: 43px; padding: 0 9px; border-radius: 11px; font-size: 10px; }
  #todayView .briefing-primary { box-shadow: 0 4px 12px color-mix(in srgb,var(--purple) 18%,transparent); }
  #todayView .briefing-secondary { gap: 5px; }
  /* On a phone the detailed priority list lives in Today's focus below; avoid showing it twice. */
  #todayView .briefing-side { display: none !important; }
  #todayView .today-focus-banner-host { margin-bottom: 13px; }
  #todayView .today-grid { gap: 17px; }
  #todayView .task-heading { margin: 1px 0 10px; }
  #todayView .section-heading h2 { font-size: 17px; }
  #todayView .section-heading p { font-size: 10px; }
  #todayView .focus-summary { min-height: 68px; padding: 10px 12px; margin-bottom: 9px; }
  #todayView .progress-ring { width: 43px; height: 43px; }
  #todayView .add-inline { min-height: 44px; margin-top: 8px; }
  #todayView .right-column { gap: 10px; }
  #todayView .right-column > .card { padding: 15px; }
  #todayView .agenda-card { padding: 15px; }
  #todayView .agenda-date { margin: 10px 0 8px; }
  #todayView .agenda-item { min-height: 45px; }
}

@media (max-width: 390px) {
  #todayView .morning-briefing { padding: 15px 13px 13px; }
  #todayView .briefing-metric { padding: 8px 6px; }
  #todayView .briefing-metric > span { font-size: 6.5px; }
  #todayView .briefing-metric strong { font-size: 18px; }
  #todayView .briefing-metric small { font-size: 7px; }
  #todayView .briefing-primary, #todayView .briefing-secondary { font-size: 9px; }
}

html[data-theme="dark"] #todayView .morning-briefing { box-shadow: 0 10px 24px rgba(0,0,0,.12); }
html[data-theme="dark"] #todayView .briefing-metric { background: color-mix(in srgb,var(--surface-2) 91%,transparent); }
html[data-theme="dark"] #todayView .briefing-secondary { background: color-mix(in srgb,var(--surface) 94%,transparent); }

/* Dayflow v22.3 — mobile weekly calendar: date strip + focused daily agenda. */
.calendar-week-mobile{display:none}
.mobile-week-view{width:100%;min-width:0}
.mobile-week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;width:100%;margin:0 0 17px}
.mobile-week-day{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:5px;min-width:0;min-height:78px;padding:9px 3px 7px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);color:var(--ink);transition:background .15s,border-color .15s,transform .15s}
.mobile-week-day:active{transform:scale(.97)}
.mobile-week-day-name{font-size:9px;font-weight:800;letter-spacing:.4px;color:var(--muted);line-height:1}
.mobile-week-day>strong{display:grid;place-items:center;width:31px;height:31px;border-radius:10px;background:var(--surface);font-family:var(--display);font-size:13px;line-height:1;color:var(--ink)}
.mobile-week-day.is-today:not(.is-selected){border-color:color-mix(in srgb,var(--purple) 48%,var(--line))}
.mobile-week-day.is-today:not(.is-selected)>strong{color:var(--purple-dark)}
.mobile-week-day.is-selected{border-color:var(--purple);background:var(--purple-soft);box-shadow:0 3px 12px color-mix(in srgb,var(--purple) 12%,transparent)}
.mobile-week-day.is-selected .mobile-week-day-name{color:var(--purple-dark)}
.mobile-week-day.is-selected>strong{background:var(--purple);color:#fff}
.mobile-week-day-markers{display:flex;align-items:center;justify-content:center;gap:3px;min-height:5px}
.mobile-week-day-markers i{display:block;width:5px;height:5px;border-radius:50%;background:var(--item-color,var(--purple))}
.mobile-week-day-markers i.is-empty{background:transparent}
.mobile-week-day-count{font-size:7px;line-height:1;color:var(--muted);font-weight:700;white-space:nowrap}
.mobile-week-day.is-selected .mobile-week-day-count{color:var(--purple-dark)}
.mobile-week-agenda{min-width:0;padding-top:2px}
.mobile-week-agenda-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 12px;padding:0 1px}
.mobile-week-agenda-head .eyebrow{margin-bottom:5px;font-size:8px}
.mobile-week-agenda-head h2{font-family:var(--display);font-size:19px;letter-spacing:-.55px;line-height:1.2;margin:0;color:var(--ink)}
.mobile-week-agenda-head p{margin:5px 0 0;color:var(--muted);font-size:9px;line-height:1.35}
.mobile-week-today-tag{display:none;flex:none;padding:6px 8px;border-radius:999px;background:var(--purple-soft);color:var(--purple-dark);font-size:7px;font-weight:800;letter-spacing:.65px}
.mobile-week-today-tag.is-visible{display:inline-flex}
.mobile-week-items{display:flex;flex-direction:column;gap:8px;min-width:0}
.mobile-week-items .calendar-item{padding:12px 13px;gap:5px;min-height:68px;border-radius:12px;cursor:pointer}
.mobile-week-items .calendar-item-top{font-size:9px}
.mobile-week-items .calendar-item-top i{font-size:8px}
.mobile-week-items .calendar-item strong{font-size:12px;line-height:1.35}
.mobile-week-items .calendar-item-foot{font-size:9px;line-height:1.35}
.mobile-week-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px;padding:23px 17px 21px;border:1px dashed color-mix(in srgb,var(--purple) 28%,var(--line));border-radius:13px;background:var(--surface-2)}
.mobile-week-empty-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:var(--purple-soft);color:var(--purple);font-size:18px}
.mobile-week-empty strong{font-family:var(--display);font-size:13px;color:var(--ink)}
.mobile-week-empty p{max-width:31ch;margin:0;color:var(--muted);font-size:10px;line-height:1.5}
.mobile-week-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:11px}
.mobile-week-actions button{min-height:43px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--purple-dark);font-size:10px;font-weight:800}
.mobile-week-actions button:active{background:var(--purple-soft)}
html[data-theme="dark"] .mobile-week-day{background:var(--surface-2);border-color:var(--line);color:var(--ink)}
html[data-theme="dark"] .mobile-week-day>strong{background:var(--surface);color:var(--ink)}
html[data-theme="dark"] .mobile-week-day.is-selected{background:#343044;border-color:var(--purple)}
html[data-theme="dark"] .mobile-week-day.is-selected>strong{background:var(--purple);color:#fff}
html[data-theme="dark"] .mobile-week-empty{background:var(--surface-2);border-color:#514a66}
html[data-theme="dark"] .mobile-week-actions button{background:var(--surface-2);border-color:var(--line);color:#c8b9ef}
@media(max-width:680px){
  #weekCalendar.calendar-canvas-week{padding:11px 10px 13px;overflow:visible}
  #weekCalendar .calendar-week-desktop{display:none}
  #weekCalendar .calendar-week-mobile{display:block}
  .mobile-week-strip{gap:5px;margin-bottom:15px}
  .mobile-week-day{min-height:72px;padding:8px 2px 6px;gap:5px;border-radius:10px}
  .mobile-week-day-name{font-size:8px;letter-spacing:0}
  .mobile-week-day>strong{width:29px;height:29px;border-radius:9px;font-size:12px}
  .mobile-week-day-count{font-size:7px}
  .mobile-week-agenda-head h2{font-size:18px}
  .mobile-week-items .calendar-item{min-height:66px;padding:11px 12px}
  .mobile-week-empty{padding:20px 14px 18px}
  .mobile-week-actions button{min-height:45px;font-size:10px}
  #upcomingView .calendar-legend{display:none}
}
@media(max-width:370px){
  .mobile-week-strip{gap:3px}
  .mobile-week-day{min-height:68px;padding:7px 1px 5px;border-radius:9px}
  .mobile-week-day-name{font-size:7px}
  .mobile-week-day>strong{width:26px;height:26px;font-size:11px}
  .mobile-week-day-count{font-size:6px}
  .mobile-week-day-markers{gap:2px}
  .mobile-week-day-markers i{width:4px;height:4px}
}

/* v22.4 — Quick Capture touch-first refinement */
.quick-capture-modal{width:min(100%,720px);max-height:min(92dvh,920px);overscroll-behavior:contain;scrollbar-width:thin}
.capture-modal-top{align-items:flex-start;margin-bottom:12px}
.capture-modal-top h2{max-width:18ch;line-height:1.12}
.quick-capture-intro{max-width:58ch;margin:-2px 0 18px;font-size:12px;line-height:1.55}
.capture-compose-label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px}
.capture-compose-label .form-label{margin:0}
#quickCaptureCharCount{color:var(--muted);font-size:10px;font-variant-numeric:tabular-nums}
.quick-capture-input{width:100%;min-height:118px;max-height:230px;resize:none;border-radius:14px;padding:15px 16px;line-height:1.55;font-size:15px;outline:none;transition:border-color .15s,box-shadow .15s}
.quick-capture-input:focus{border-color:color-mix(in srgb,var(--purple) 65%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--purple) 13%,transparent)}
.quick-capture-helper-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 1px 14px;color:var(--muted);font-size:10px;line-height:1.4}
#quickCaptureEntryCount{font-weight:700;white-space:nowrap;color:var(--purple-dark)}
.quick-capture-examples{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 7px;color:var(--muted);font-size:10px}
.quick-capture-examples>span{font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-right:2px}
.quick-capture-examples button{min-height:34px;padding:7px 12px;border-radius:999px;font-size:10px;font-weight:700;color:var(--ink);background:var(--surface);border-color:var(--line);transition:background .15s,border-color .15s,transform .15s}
.quick-capture-examples button:active{transform:scale(.97);background:var(--purple-soft);border-color:var(--purple)}
.quick-capture-parse-row{position:sticky;bottom:-25px;z-index:5;margin:12px -25px -25px;padding:13px 25px 17px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 96%,transparent);backdrop-filter:blur(16px);border-radius:0 0 17px 17px}
.quick-capture-parse-row>span{font-size:10px;line-height:1.45;max-width:38ch}
.quick-capture-parse-row .primary-button{min-height:44px;padding:0 17px;border-radius:11px;font-size:12px}
.quick-capture-modal.has-preview .quick-capture-intro,.quick-capture-modal.has-preview .capture-compose-label,.quick-capture-modal.has-preview .quick-capture-input,.quick-capture-modal.has-preview .quick-capture-helper-row,.quick-capture-modal.has-preview .quick-capture-examples,.quick-capture-modal.has-preview .quick-capture-parse-row{display:none}
.capture-preview-section{padding-top:5px}
.capture-preview-heading{margin:0 0 13px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.capture-preview-heading strong{font-size:14px}
.capture-preview-heading small{font-size:10px;line-height:1.4}
.capture-preview-heading .text-button{font-size:11px}
.capture-preview-card{padding:14px;border-radius:14px;background:var(--surface-2)}
.capture-card-top{margin-bottom:11px}
.capture-card-index{width:27px;height:27px;border-radius:9px;font-size:11px}
.capture-kind-select{min-height:36px;border-radius:9px;padding:7px 10px;font-size:11px;font-weight:700}
.capture-remove{width:34px;height:34px;border-radius:9px;font-size:20px}
.capture-preview-card>.form-label{display:block;margin:4px 0 6px;font-size:10px}
.capture-preview-card>.text-input{min-height:43px;padding:10px 11px;border-radius:9px;font-size:14px;background:var(--surface)}
.capture-preview-card .form-label{font-size:9px;letter-spacing:.01em}
.capture-preview-card .text-input{min-height:40px;font-size:13px;border-radius:9px;background:var(--surface);color:var(--ink)}
.capture-field-grid{gap:9px}
.capture-primary-fields{margin-top:11px}
.capture-advanced{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.capture-advanced summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:35px;cursor:pointer;list-style:none;color:var(--purple-dark);font-size:11px;font-weight:800}
.capture-advanced summary::-webkit-details-marker{display:none}
.capture-advanced summary:after{content:'＋';font-size:16px;font-weight:500;transition:transform .15s}
.capture-advanced[open] summary:after{content:'−'}
.capture-advanced summary small{margin-left:auto;color:var(--muted);font-size:9px;font-weight:500;text-align:right}
.capture-advanced .capture-task-only{margin-top:9px}
.capture-advanced>.capture-field-grid{margin-top:11px}
.capture-source-note{margin-top:10px;font-size:9px;line-height:1.45}
.capture-preview-footer{position:sticky;bottom:-25px;z-index:6;margin:13px -25px -25px;padding:13px 25px 17px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 96%,transparent);backdrop-filter:blur(16px);border-radius:0 0 17px 17px}
.capture-preview-footer>span{font-size:10px}
.capture-preview-footer .primary-button{min-height:45px;padding:0 17px;border-radius:11px;font-size:12px}
.quick-capture-bottom{font-size:9px;line-height:1.4;margin-top:13px}
html[data-theme="dark"] .quick-capture-parse-row,html[data-theme="dark"] .capture-preview-footer{background:color-mix(in srgb,var(--surface) 94%,transparent);border-color:var(--line)}
html[data-theme="dark"] .capture-advanced{border-color:var(--line)}
@media(max-width:680px){
  .quick-capture-modal{width:100%;max-height:calc(96dvh - env(safe-area-inset-top));padding:19px 17px calc(18px + env(safe-area-inset-bottom));border-radius:23px 23px 0 0}
  .capture-modal-top{position:sticky;top:-19px;z-index:8;margin:-19px -17px 12px;padding:19px 17px 10px;background:var(--surface);border-radius:23px 23px 0 0}
  .capture-modal-top h2{font-size:23px;letter-spacing:-.7px}
  .quick-capture-intro{font-size:11px;line-height:1.5;margin:0 0 15px}
  .capture-compose-label .form-label{font-size:11px}
  #quickCaptureCharCount{font-size:10px}
  .quick-capture-input{min-height:112px;max-height:210px;padding:14px;border-radius:14px;font-size:16px;line-height:1.5}
  .quick-capture-helper-row{font-size:9px;margin:7px 1px 13px}
  .quick-capture-examples{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;padding:1px 1px 5px;margin-bottom:5px}
  .quick-capture-examples::-webkit-scrollbar{display:none}
  .quick-capture-examples>span{flex:none;font-size:8px}
  .quick-capture-examples button{flex:none;min-height:36px;padding:8px 13px;font-size:10px}
  .quick-capture-parse-row{bottom:0;align-items:stretch;flex-direction:column;gap:8px;margin:12px -17px -18px;padding:12px 17px calc(15px + env(safe-area-inset-bottom));border-radius:0;background:var(--surface)}
  .quick-capture-parse-row>span{font-size:9px;max-width:none}
  .quick-capture-parse-row .primary-button{width:100%;min-height:49px;font-size:13px}
  .capture-preview-section{padding-top:0}
  .capture-preview-heading{position:sticky;top:47px;z-index:4;background:var(--surface);padding:8px 0 12px}
  .capture-preview-heading strong{font-size:13px}
  .capture-preview-heading small{font-size:9px}
  .capture-preview-heading .text-button{font-size:10px}
  .capture-preview-list{grid-template-columns:1fr;gap:9px}
  .capture-preview-card{padding:13px;border-radius:14px}
  .capture-card-top{gap:7px}
  .capture-kind-select{min-height:40px;font-size:12px}
  .capture-preview-card>.text-input{min-height:46px;font-size:16px}
  .capture-preview-card .text-input{min-height:44px;font-size:16px}
  .capture-advanced summary{min-height:42px;font-size:12px}
  .capture-advanced summary small{font-size:8px;max-width:48%;}
  .capture-advanced .capture-field-grid{gap:8px}
  .capture-preview-footer{bottom:0;align-items:stretch;flex-direction:column;gap:8px;margin:13px -17px -18px;padding:12px 17px calc(15px + env(safe-area-inset-bottom));border-radius:0;background:var(--surface)}
  .capture-preview-footer>span{text-align:center;font-size:9px}
  .capture-preview-footer .primary-button{width:100%;min-height:49px;font-size:13px}
  .quick-capture-modal.has-preview .capture-preview-heading{top:47px;padding-top:13px}
  .quick-capture-bottom{font-size:8px;margin:10px 0 0}
}
@media(max-width:370px){
  .quick-capture-modal{padding-left:14px;padding-right:14px}
  .capture-modal-top{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}
  .quick-capture-parse-row,.capture-preview-footer{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}
  .capture-field-grid{gap:6px}
  .capture-advanced summary small{display:none}
}

/* v22.5 — Modal & Forms Refinement: consistent sheets, clearer controls, native date/time support. */
:root{--modal-radius:22px;--field-height:48px}
.modal-backdrop{overscroll-behavior:contain;-webkit-tap-highlight-color:transparent}
.modal{overscroll-behavior:contain;scrollbar-gutter:stable;scroll-behavior:smooth}
.modal-top{scroll-margin-top:10px}
.modal form{min-width:0}
.modal .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.modal .form-grid>div{min-width:0}
.modal .form-label{line-height:1.35}
.modal .text-input{min-width:0;transition:border-color .16s,box-shadow .16s,background .16s}
.modal .text-input:focus-visible{outline:2px solid color-mix(in srgb,var(--purple) 55%,transparent);outline-offset:1px}
.modal input[type="date"],.modal input[type="time"],.modal input[type="datetime-local"]{min-height:var(--field-height);padding:10px 12px;font-variant-numeric:tabular-nums;letter-spacing:.01em;accent-color:var(--purple);color-scheme:light}
.modal input[type="date"]::-webkit-calendar-picker-indicator,.modal input[type="time"]::-webkit-calendar-picker-indicator,.modal input[type="datetime-local"]::-webkit-calendar-picker-indicator{opacity:.72;cursor:pointer;padding:4px;margin-right:-3px}
.field-quick-picks{display:flex;align-items:center;gap:6px;max-width:100%;overflow-x:auto;padding:7px 1px 2px;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.field-quick-picks::-webkit-scrollbar{display:none}
.field-quick-pick{flex:none;min-height:31px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:10px;font-weight:650;white-space:nowrap;transition:background .15s,border-color .15s,color .15s,transform .15s}
.field-quick-pick:active{transform:scale(.97)}
.field-quick-pick.active,.field-quick-pick[aria-pressed="true"]{background:var(--purple-soft);border-color:color-mix(in srgb,var(--purple) 55%,var(--line));color:var(--purple-dark)}
html[data-theme="dark"] .modal input[type="date"],html[data-theme="dark"] .modal input[type="time"],html[data-theme="dark"] .modal input[type="datetime-local"]{color-scheme:dark;background:var(--surface-2);color:var(--ink)}
html[data-theme="dark"] .field-quick-pick{background:var(--surface-2);color:var(--muted);border-color:var(--line)}
html[data-theme="dark"] .field-quick-pick.active,html[data-theme="dark"] .field-quick-pick[aria-pressed="true"]{background:var(--purple-soft);color:var(--purple-dark);border-color:var(--purple)}
.modal-actions{align-items:center;flex-wrap:wrap}
.modal-actions button{min-height:40px}
.modal-backdrop:not(.hidden){touch-action:pan-y}
@media(max-width:680px){
  .modal-backdrop:not(.onboarding-backdrop){height:var(--dayflow-visual-height,100dvh);max-height:var(--dayflow-visual-height,100dvh);overflow:hidden;align-items:flex-end;justify-content:center;padding: max(8px,env(safe-area-inset-top)) 0 0}
  .modal:not(.onboarding-modal){width:100%;max-width:none;max-height:calc(var(--modal-visible-height,var(--dayflow-visual-height,100dvh)) - max(8px,env(safe-area-inset-top)));min-height:0;display:block;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:20px 17px calc(18px + env(safe-area-inset-bottom));border-radius:var(--modal-radius) var(--modal-radius) 0 0;box-shadow:0 -12px 46px rgba(12,12,18,.20);scroll-padding-top:76px;scroll-padding-bottom:100px;-webkit-overflow-scrolling:touch}
  .modal:not(.quick-capture-modal):not(.onboarding-modal)::before{content:"";display:block;width:38px;height:4px;margin:-10px auto 17px;border-radius:99px;background:var(--line)}
  .modal-top{position:sticky;top:-20px;z-index:7;margin:-20px -17px 15px;padding:20px 17px 10px;background:var(--surface);border-radius:var(--modal-radius) var(--modal-radius) 0 0}
  .modal-top h2{font-size:22px;line-height:1.15;letter-spacing:-.65px}
  .close-modal{width:42px;height:42px;min-width:42px;border-radius:13px;font-size:23px}
  .modal .form-label{font-size:11px;margin-top:14px;margin-bottom:7px}
  .modal .text-input{min-height:48px;padding:12px 13px;border-radius:12px;font-size:16px;line-height:1.35}
  .modal textarea.text-input{min-height:88px;line-height:1.5}
  .modal .task-name-input{font-size:17px;min-height:52px}
  .modal .form-grid{gap:10px}
  .modal input[type="date"],.modal input[type="time"],.modal input[type="datetime-local"]{min-height:52px;padding:11px 10px;font-size:16px}
  .field-quick-picks{gap:6px;padding:7px 1px 3px;margin-bottom:2px}
  .field-quick-pick{min-height:34px;padding:7px 11px;font-size:10px}
  .modal-actions{position:sticky;bottom:calc(-18px - env(safe-area-inset-bottom));z-index:8;margin:18px -17px -18px;padding:12px 17px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 96%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
  .modal-actions button{min-height:46px;border-radius:12px;font-size:12px}
  .modal-actions .primary-button{min-width:120px}
  .modal-actions .modal-actions-spacer{display:none}
  .modal-actions:has(.delete-task-button:not(.hidden)){display:grid;grid-template-columns:1fr 1fr 1.2fr}
  .modal-actions:has(.delete-task-button:not(.hidden)) .delete-task-button{grid-column:1/-1;justify-self:start}
  .modal-actions:has(.delete-task-button:not(.hidden)) .secondary-button,.modal-actions:has(.delete-task-button:not(.hidden)) .primary-button{width:100%}
  .routine-day-picker{gap:5px}
  .routine-day-picker span{min-height:42px;font-size:10px;border-radius:10px}
  .color-choice{width:30px;height:30px}
  .modal-backdrop.keyboard-visible .modal:not(.onboarding-modal){max-height:calc(var(--modal-visible-height,var(--dayflow-visual-height,100dvh)) - 4px);border-radius:17px 17px 0 0}
}
@media(max-width:390px){
  .modal:not(.onboarding-modal){padding-left:14px;padding-right:14px}
  .modal-top{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}
  .modal-actions{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}
  .modal .form-grid{gap:7px}
  .modal input[type="date"],.modal input[type="time"]{padding-left:8px;padding-right:7px;font-size:15px}
  .field-quick-pick{padding-left:9px;padding-right:9px}
}
@media(max-height:620px) and (max-width:680px){
  .modal-backdrop:not(.onboarding-backdrop){padding-top:max(4px,env(safe-area-inset-top))}
  .modal:not(.onboarding-modal){max-height:calc(var(--modal-visible-height,var(--dayflow-visual-height,100dvh)) - 4px);padding-top:14px}
  .modal-top{top:-14px;margin-top:-14px;padding-top:14px}
  .modal:not(.quick-capture-modal):not(.onboarding-modal)::before{margin-top:-5px;margin-bottom:10px}
  .modal-actions{margin-top:12px}
}
@media(prefers-reduced-motion:reduce){.modal,.modal-backdrop,.field-quick-pick{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* v22.7 — Quiet empty states: keep helpful guidance, remove oversized blank cards. */
.empty-state.compact-empty-state {
  display: flex;
  min-height: 0;
  align-items: center;
  justify-content: flex-start;
  gap: 11px;
  padding: 11px 13px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: color-mix(in srgb, var(--surface-2) 82%, transparent);
  color: var(--muted);
  text-align: left;
}
.empty-state.compact-empty-state > span {
  display: grid;
  width: 29px;
  height: 29px;
  flex: 0 0 29px;
  place-items: center;
  margin: 0;
  border-radius: 9px;
  background: var(--purple-soft);
  color: var(--purple);
  font-size: 15px;
}
.empty-state.compact-empty-state > div { min-width: 0; flex: 1; }
.empty-state.compact-empty-state h3 {
  margin: 0;
  color: var(--ink);
  font: 700 11px var(--display);
  line-height: 1.35;
}
.empty-state.compact-empty-state p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.4;
}
#focusSummary[hidden], .briefing-side[hidden] { display: none !important; }
.agenda-empty-compact {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 0 3px;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.4;
}
.agenda-empty-compact > span:first-child { color: var(--purple); font-size: 13px; }
.agenda-empty-compact > span:last-child { min-width: 0; }
.routine-empty.compact-routine-empty {
  min-height: 0;
  flex-direction: row;
  justify-content: flex-start;
  align-items: center;
  gap: 10px;
  padding: 12px 13px;
  text-align: left;
  border-style: solid;
  background: var(--surface-2);
}
.routine-empty.compact-routine-empty > span {
  display: grid;
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  place-items: center;
  margin: 0;
  border-radius: 9px;
  background: var(--purple-soft);
  font-size: 15px;
}
.routine-empty.compact-routine-empty > div { min-width: 0; flex: 1; }
.routine-empty.compact-routine-empty strong { display: block; font-size: 10px; line-height: 1.35; }
.routine-empty.compact-routine-empty p { max-width: none; margin: 3px 0 0; font-size: 8px; line-height: 1.4; }
.routine-empty.compact-routine-empty .secondary-button { flex: none; min-height: 34px; padding: 7px 9px; font-size: 8px; white-space: nowrap; }
.routine-empty.compact-empty { min-height: 0; padding: 10px 12px; }
.routine-empty.inline-empty { flex-direction: row; align-items: center; justify-content: flex-start; gap: 9px; border-style: solid; background: var(--surface-2); text-align: left; }
.routine-empty.inline-empty > span { display: grid; width: 28px; height: 28px; flex: 0 0 28px; place-items: center; margin: 0; border-radius: 8px; background: var(--purple-soft); font-size: 14px; }
.routine-empty.inline-empty > div { min-width: 0; }
.routine-empty.inline-empty strong { font-size: 10px; }
.routine-empty.inline-empty p { margin: 2px 0 0; font-size: 8px; }
.calendar-column-empty {
  display: grid;
  min-height: 48px;
  place-items: center;
  padding: 8px 5px;
  color: color-mix(in srgb, var(--muted) 85%, transparent);
  font-size: 8px;
  line-height: 1.3;
}
.mobile-week-empty {
  min-height: 0;
  flex-direction: row;
  justify-content: flex-start;
  align-items: center;
  gap: 9px;
  padding: 10px 11px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface-2);
  text-align: left;
}
.mobile-week-empty > span {
  display: grid;
  width: 27px;
  height: 27px;
  flex: 0 0 27px;
  place-items: center;
  border-radius: 8px;
  background: var(--purple-soft);
  color: var(--purple);
  font-size: 14px;
}
.mobile-week-empty > div { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.mobile-week-empty strong { font-size: 10px; line-height: 1.3; }
.mobile-week-empty small { color: var(--muted); font-size: 8px; line-height: 1.35; }
.life-dashboard-empty { min-height: 58px; padding: 9px 10px; }
.life-dashboard-empty.compact-dashboard-empty { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 3px; text-align: left; }
.life-dashboard-empty.compact-dashboard-empty strong { margin: 0; font-size: 10px; }
.life-dashboard-empty.compact-dashboard-empty span { color: var(--muted); font-size: 9px; line-height: 1.4; }
.weekly-carry-empty { padding: 10px 8px; }
.recommendations-empty { padding: 17px 15px; border-radius: 12px; }
.recommendations-empty > span { width: 30px; height: 30px; margin-bottom: 7px; border-radius: 10px; font-size: 16px; }
.recommendations-empty h3 { font-size: 13px; }
.recommendations-empty p { margin: 5px auto 10px; font-size: 9px; }
.life-balance-empty { display: inline-block; padding: 2px 0; font-size: 8px; }
.conflict-empty { padding: 11px 12px; text-align: left; }
.google-calendar-empty { padding: 9px 10px; }
@media (max-width: 680px) {
  .empty-state.compact-empty-state { gap: 9px; padding: 10px 11px; border-radius: 10px; }
  .routine-empty.compact-routine-empty { gap: 8px; padding: 10px; }
  .routine-empty.compact-routine-empty .secondary-button { min-height: 36px; }
  .mobile-week-empty { padding: 9px 10px; }
  .life-dashboard-empty { min-height: 48px; }
  .recommendations-empty { padding: 14px 12px; }
}


/* Dayflow v22.9 — less scrolling on iPhone without hiding useful features. */
.today-task-overflow { display: contents; }
.today-task-expand { display: none; }
.today-secondary-details { display: contents; }
.today-secondary-summary { display: none; }
.today-secondary-content { display: contents; }
#todayView .today-secondary-details:not([open]) > .today-secondary-content { display: contents !important; }

@media (max-width: 680px) {
  /* Recover vertical space while keeping the fixed tab bar comfortably tappable. */
  .page-content { padding-top: 15px; padding-bottom: calc(84px + env(safe-area-inset-bottom)); }
  #todayView .welcome-row { margin-bottom: 10px; }
  #todayView .welcome-row .page-subtitle { display: none; }
  #todayView .morning-briefing { margin-bottom: 11px; padding: 13px 13px 12px; border-radius: 16px; }
  #todayView .briefing-main h2 { margin: 6px 0 4px; font-size: clamp(19px, 5.2vw, 22px); }
  #todayView .briefing-message { display: -webkit-box; overflow: hidden; margin: 0; font-size: 10px; line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  #todayView .briefing-metrics { gap: 5px; margin-top: 9px; }
  #todayView .briefing-metric { min-height: 60px; padding: 7px 6px; gap: 3px; }
  #todayView .briefing-metric strong { font-size: 18px; }
  #todayView .briefing-metric small { font-size: 7px; -webkit-line-clamp: 1; }
  #todayView .briefing-actions { margin-top: 9px; gap: 7px; }
  #todayView .briefing-primary, #todayView .briefing-secondary { min-height: 39px; font-size: 9px; }
  #todayView .today-focus-banner-host { margin-bottom: 9px; }
  #todayView .today-grid { gap: 11px; }
  #todayView .task-heading { margin: 0 0 8px; }
  #todayView .focus-summary { min-height: 58px; padding: 8px 10px; margin-bottom: 7px; }
  #todayView .progress-ring { width: 39px; height: 39px; }
  #todayView .task-list { gap: 6px; }
  #todayView .task-row { min-height: 55px; padding: 8px 9px; border-radius: 12px; }
  #todayView .task-meta { font-size: 8px; }
  #todayView .add-inline { min-height: 42px; margin-top: 7px; }
  #todayView .right-column { gap: 8px; }
  #todayView .right-column > .card { padding: 12px; border-radius: 13px; }
  #todayView .agenda-card { padding: 12px; }
  #todayView .agenda-date { margin: 7px 0 6px; }
  #todayView .agenda-item { min-height: 40px; }
  #todayView .today-rhythm-list { gap: 7px; }
  #todayView .today-rhythm-row { min-height: 29px; }
  #todayView .today-rhythm-check { width: 20px; height: 20px; }

  /* Keep the top three Today tasks in view; reveal the remainder only on request. */
  #todayView .today-task-overflow { display: none; flex-direction: column; gap: 6px; }
  #todayView .today-task-overflow.is-open { display: flex; }
  #todayView .today-task-expand { display: inline-flex; align-self: flex-start; align-items: center; gap: 7px; min-height: 34px; margin: 1px 0 0 2px; padding: 5px 8px; border: 0; border-radius: 8px; background: transparent; color: var(--purple-dark); font-size: 10px; font-weight: 750; }
  #todayView .today-task-expand span { font-size: 13px; }

  /* Secondary Today tools live behind one tidy disclosure instead of four stacked cards. */
  #todayView .today-secondary-details { display: block; min-width: 0; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); overflow: hidden; }
  #todayView .today-secondary-summary { display: flex; min-height: 55px; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; list-style: none; cursor: pointer; -webkit-tap-highlight-color: transparent; }
  #todayView .today-secondary-summary::-webkit-details-marker { display: none; }
  #todayView .today-secondary-copy { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
  #todayView .today-secondary-copy strong { color: var(--ink); font-size: 11px; font-weight: 750; }
  #todayView .today-secondary-copy small { overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
  #todayView .today-secondary-chevron { display: grid; width: 28px; height: 28px; flex: 0 0 28px; place-items: center; border-radius: 9px; background: var(--surface-2); color: var(--purple-dark); font-size: 17px; transition: transform .18s ease; }
  #todayView .today-secondary-details[open] .today-secondary-chevron { transform: rotate(180deg); }
  #todayView .today-secondary-content { display: grid; gap: 8px; padding: 0 8px 8px; }
  #todayView .today-secondary-content > .card { padding: 12px; border-radius: 11px; }
  #todayView .today-secondary-content .gentle-note { margin: 0; padding: 10px 11px; border-radius: 10px; }
  #todayView .today-secondary-summary:focus-visible { outline: 2px solid var(--purple); outline-offset: -3px; }
}

@media (max-width: 380px) {
  .page-content { padding-left: 12px; padding-right: 12px; }
  #todayView .briefing-metric { min-height: 57px; }
  #todayView .today-secondary-copy small { font-size: 8px; }
}

html[data-theme="dark"] #todayView .today-secondary-details { background: var(--surface); border-color: var(--line); }
html[data-theme="dark"] #todayView .today-secondary-chevron { background: var(--surface-2); color: #c8b9ef; }

/* v23.1 — Evening intention becomes part of the Morning Briefing */
.today-evening-handoff-host:empty{display:none}
.today-evening-handoff{display:flex;align-items:center;gap:10px;margin:12px 0 0;padding:10px 12px;border:1px solid color-mix(in srgb,var(--coral) 24%,var(--line));border-radius:12px;background:linear-gradient(105deg,color-mix(in srgb,var(--coral) 8%,var(--surface)),color-mix(in srgb,var(--surface) 96%,transparent))}
.today-evening-handoff-icon{width:30px;height:30px;display:grid;place-items:center;flex:none;border-radius:9px;background:color-mix(in srgb,var(--coral) 13%,var(--surface));color:var(--coral);font-size:15px}
.today-evening-handoff-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}
.today-evening-handoff-copy .eyebrow{font-size:7px;letter-spacing:.1em;color:var(--muted)}
.today-evening-handoff-copy>strong{font-size:10px;color:var(--ink)}
.today-evening-handoff-copy>p{margin:0;color:var(--ink);font-size:10px;line-height:1.4;overflow-wrap:anywhere}
.today-evening-handoff-copy>small{color:var(--muted);font-size:8px;line-height:1.35}
html[data-theme="dark"] .today-evening-handoff{background:color-mix(in srgb,var(--coral) 8%,var(--surface));border-color:color-mix(in srgb,var(--coral) 24%,var(--line))}
.checkin-tomorrow-hint{margin:-8px 0 13px;color:var(--muted);font-size:8px;line-height:1.45}
@media(max-width:600px){.today-evening-handoff{align-items:flex-start;gap:8px;margin-top:10px;padding:9px}.today-evening-handoff-icon{width:27px;height:27px;border-radius:8px;font-size:14px}.today-evening-handoff-copy>strong{font-size:9px}.today-evening-handoff-copy>p{font-size:9px}}
@media(max-width:380px){.today-evening-handoff{flex-wrap:wrap}.today-evening-handoff-copy{flex-basis:calc(100% - 40px)}}


/* v23.2 — Evening intention joins Daily Priorities as a non-task priority. */
.briefing-priority-intention{cursor:default;border-color:color-mix(in srgb,var(--coral) 30%,var(--line));background:linear-gradient(105deg,color-mix(in srgb,var(--coral) 8%,var(--surface)),color-mix(in srgb,var(--surface) 96%,transparent));}
.briefing-priority-intention:hover{transform:none;border-color:color-mix(in srgb,var(--coral) 36%,var(--line));background:linear-gradient(105deg,color-mix(in srgb,var(--coral) 8%,var(--surface)),color-mix(in srgb,var(--surface) 96%,transparent));}
.briefing-priority-intention .briefing-priority-copy strong{display:-webkit-box;overflow:hidden;white-space:normal;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2;}
.briefing-priority-source{color:var(--coral);font-size:.88em;font-weight:800;letter-spacing:.04em;}
.briefing-priority-intention-mark{display:grid;width:22px;height:22px;flex:none;place-items:center;border-radius:7px;background:color-mix(in srgb,var(--coral) 13%,var(--surface));color:var(--coral);font-size:12px;}
.briefing-priority-from-evening{border-color:color-mix(in srgb,var(--coral) 30%,var(--line));}
.briefing-priority-from-evening .briefing-priority-index{background:color-mix(in srgb,var(--coral) 13%,var(--surface));color:var(--coral);}
html[data-theme="dark"] .briefing-priority-intention{background:color-mix(in srgb,var(--coral) 9%,var(--surface));}
@media(max-width:600px){.briefing-priority-intention{align-items:flex-start;padding:9px}.briefing-priority-intention-mark{width:20px;height:20px;}}


/* Dayflow v23.3 — clearer calendar cards, life-area color and duration timeline. */
.calendar-item{gap:6px;padding:9px 10px;border-left-width:4px;border-radius:10px;background:color-mix(in srgb,var(--item-color) 13%,var(--surface));border-color:color-mix(in srgb,var(--item-color) 38%,var(--line));}
.calendar-item-top{align-items:flex-start;justify-content:space-between;gap:5px;flex-wrap:wrap;font-size:9px;}
.calendar-item-top time{display:block;min-width:0;max-width:100%;font-size:9px;line-height:1.35;letter-spacing:-.1px;color:color-mix(in srgb,var(--item-color) 88%,var(--ink));font-weight:800;}
.calendar-kind-badge{display:inline-flex;align-items:center;gap:3px;flex:none;padding:3px 5px;border-radius:5px;background:color-mix(in srgb,var(--item-color) 16%,var(--surface));color:color-mix(in srgb,var(--item-color) 82%,var(--ink));font-size:7px;line-height:1;text-transform:uppercase;letter-spacing:.35px;font-style:normal;font-weight:800;white-space:nowrap;}
.calendar-kind-badge b{font-size:9px;line-height:1;}
.calendar-item strong{font-size:10px;line-height:1.35;}
.calendar-item-foot{display:flex;align-items:center;gap:5px 8px;flex-wrap:wrap;font-size:8px;line-height:1.35;}
.calendar-area-label{display:inline-flex;align-items:center;gap:4px;min-width:0;}
.calendar-area-label i{display:inline-block;width:6px;height:6px;flex:none;border-radius:50%;background:var(--item-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--item-color) 15%,transparent);}
.calendar-duration-label{padding:2px 5px;border-radius:5px;background:color-mix(in srgb,var(--item-color) 12%,var(--surface));color:color-mix(in srgb,var(--item-color) 78%,var(--ink));font-weight:800;white-space:nowrap;}
.calendar-item-location,.calendar-readonly-label{color:var(--muted);}
.calendar-item-task{border-left-style:solid;}
.calendar-item-task .calendar-kind-badge{border-radius:4px;}
.calendar-item-event{border-left-style:solid;}
.calendar-item-event.is-protected{border-style:dashed;background:color-mix(in srgb,var(--item-color) 8%,var(--surface));}
.calendar-item-deadline{border:1px dashed color-mix(in srgb,#d0a45c 65%,var(--line));border-left:4px dashed #d0a45c;background:color-mix(in srgb,#d0a45c 13%,var(--surface));}
.calendar-item-deadline .calendar-kind-badge{background:#f4e8cf;color:#8b682f;}
.calendar-item-external{border-style:dashed;cursor:default;}
.calendar-item-external:hover{transform:none;}
.calendar-item-external .calendar-kind-badge{background:color-mix(in srgb,var(--item-color) 12%,var(--surface));}
.calendar-area-unassigned{--item-color:#9296a3;}
.calendar-time-grid{position:relative;border-top:1px solid var(--line);}
.calendar-hour-row{height:72px;min-height:72px;}
.calendar-hour-label{padding-top:9px;font-size:9px;font-variant-numeric:tabular-nums;}
.calendar-hour-content{padding:0 7px;border-left:1px solid var(--line);}
.calendar-open-slot{margin:7px 0 0 2px;padding:4px 7px;font-size:7px;opacity:.72;}
.calendar-time-items{position:absolute;z-index:3;top:0;right:0;bottom:0;left:58px;pointer-events:none;}
.calendar-timeline-item{position:absolute;z-index:2;display:flex;align-items:flex-start;justify-content:flex-start;overflow:hidden;min-width:0;min-height:38px;padding:7px 8px;border-radius:9px;box-shadow:0 2px 6px rgba(35,35,45,.045);pointer-events:auto;cursor:grab;}
.calendar-timeline-item .calendar-item-top{width:100%;gap:4px;}
.calendar-timeline-item .calendar-item-top time{font-size:8px;line-height:1.2;}
.calendar-timeline-item .calendar-kind-badge{padding:2px 4px;font-size:6px;}
.calendar-timeline-item strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:9px;line-height:1.25;}
.calendar-timeline-item .calendar-item-foot{margin-top:auto;}
.calendar-timeline-item.is-compact{justify-content:center;padding:4px 7px;}
.calendar-timeline-item.is-compact .calendar-item-top{align-items:center;}
.calendar-timeline-item.is-compact .calendar-kind-badge{display:none;}
.calendar-timeline-item.is-compact strong{-webkit-line-clamp:1;font-size:8px;}
.calendar-month-items small{background:color-mix(in srgb,var(--item-color,var(--purple)) 15%,var(--surface));border-left:2px solid var(--item-color,var(--purple));}
.calendar-month-items small time{font-weight:800;color:color-mix(in srgb,var(--item-color,var(--purple)) 88%,var(--ink));}
.calendar-area-legend{display:flex;align-items:center;gap:7px 10px;flex-wrap:wrap;}
.calendar-area-legend>span{display:inline-flex;align-items:center;gap:4px;font-size:8px;color:var(--muted);}
.calendar-area-legend i{width:7px;height:7px;border-radius:50%;background:var(--area-color);}
html[data-theme="dark"] .calendar-item{background:color-mix(in srgb,var(--item-color) 20%,var(--surface));border-color:color-mix(in srgb,var(--item-color) 48%,var(--line));}
html[data-theme="dark"] .calendar-item-deadline{background:color-mix(in srgb,#b48c4c 20%,var(--surface));border-color:#b48c4c;}
html[data-theme="dark"] .calendar-item-deadline .calendar-kind-badge{background:#493b27;color:#e6c98f;}
html[data-theme="dark"] .calendar-kind-badge{background:color-mix(in srgb,var(--item-color) 28%,var(--surface));color:color-mix(in srgb,var(--item-color) 62%,#fff);}
@media(max-width:680px){
  .calendar-item{padding:10px 11px;gap:5px;}
  .calendar-item-top{gap:6px;}
  .calendar-item-top time{font-size:9px;}
  .calendar-kind-badge{font-size:7px;}
  .calendar-item strong{font-size:11px;}
  .calendar-item-foot{font-size:8px;}
  .calendar-hour-row{height:72px;min-height:72px;}
  .calendar-hour-label{font-size:8px;padding-right:6px;}
  .calendar-time-items{left:47px;}
  .calendar-timeline-item{padding:6px 7px;}
  .calendar-timeline-item .calendar-item-top time{font-size:7px;}
  .calendar-timeline-item strong{font-size:8px;}
  .calendar-timeline-item .calendar-kind-badge{font-size:5px;}
  .calendar-month-items small time{display:none;}
}

.calendar-item-event.is-protected strong:before{content:none;}


/* ================================================================
   Dayflow v24.1 — Typography & Theme Polish
   Readability is prioritised without changing the app's layout model.
   ================================================================ */

/* Slightly clearer light surfaces and quieter borders. */
html:not([data-theme="dark"]) .topbar {
  background: color-mix(in srgb, var(--bg) 92%, #fff);
}
html:not([data-theme="dark"]) .task-row,
html:not([data-theme="dark"]) .settings-card,
html:not([data-theme="dark"]) .card {
  border-color: var(--line);
}

/* Readable defaults for important content on larger screens. */
@media (min-width: 681px) {
  .task-title { font-size: 12px; line-height: 1.4; }
  .task-meta, .task-time { font-size: 10px; line-height: 1.4; }
  .section-heading p, .card-heading p { font-size: 10px; line-height: 1.5; }
  .agenda-date span { font-size: 10px; }
  .agenda-time { font-size: 9px; }
  .agenda-event strong { font-size: 10px; }
  .agenda-event span { font-size: 9px; }
  .routine-card-title strong { font-size: 12px; }
  .routine-card-title small, .routine-card-note { font-size: 9px; line-height: 1.4; }
  .briefing-message { font-size: 12px; line-height: 1.55; }
  .briefing-priority-copy strong { font-size: 11px; }
  .briefing-priority-copy small { font-size: 9px; }
  .calendar-item strong { font-size: 11px; line-height: 1.4; }
  .calendar-item-foot { font-size: 9px; }
}

/* Phone typography: increase the information people read, not tiny metadata. */
@media (max-width: 680px) {
  .page-subtitle { font-size: 13px; line-height: 1.5; }
  .section-heading h2 { font-size: 18px; line-height: 1.25; }
  .section-heading p { font-size: 12px; line-height: 1.45; }
  .task-title { font-size: clamp(13px, 3.7vw, 14px); line-height: 1.4; }
  #todayView .task-meta { font-size: 10px; line-height: 1.4; }
  .task-time { font-size: 11px; }
  .card-heading h3, .quick-capture-card h3 { font-size: 14px; }
  .card-heading p, .quick-capture-card p { font-size: 11px; line-height: 1.45; }
  .agenda-date strong { font-size: 13px; }
  .agenda-date span { font-size: 10px; }
  .agenda-time { font-size: 9px; }
  .agenda-event strong { font-size: 11px; line-height: 1.35; }
  .agenda-event span { font-size: 10px; line-height: 1.4; }
  .routine-summary-copy p { font-size: 12px; line-height: 1.45; }
  .routine-card-title strong { font-size: 12px; line-height: 1.35; }
  .routine-card-title small, .routine-card-note { font-size: 9px; line-height: 1.4; }
  .routine-check-button { font-size: 10px; }
  .weekly-review-hero p, .weekly-planner-hero p { font-size: 11px; line-height: 1.5; }
  .weekly-carry-item strong, .weekly-rhythm-copy strong { font-size: 10px; }
  .weekly-carry-item small, .weekly-rhythm-copy small { font-size: 8px; }
  .briefing-message { font-size: 12px; line-height: 1.55; }
  .briefing-priority-copy strong { font-size: 11px; line-height: 1.4; }
  .briefing-priority-copy small { font-size: 9px; line-height: 1.4; }
  .mobile-week-items .calendar-item-top time { font-size: 10px; }
  .mobile-week-items .calendar-item strong { font-size: 13px; line-height: 1.4; }
  .mobile-week-items .calendar-item-foot { font-size: 10px; line-height: 1.4; }
  .calendar-timeline-item .calendar-item-top time { font-size: 9px; }
  .calendar-timeline-item strong { font-size: 10px; line-height: 1.3; }
  .calendar-timeline-item.is-compact strong { font-size: 9px; }
  .mobile-tab { font-size: 10px; }
  .settings-card-head h3 { font-size: 15px; }
  .settings-card-head p { font-size: 12px; line-height: 1.5; }
  .today-secondary-copy strong { font-size: 12px; line-height: 1.35; }
  .today-secondary-copy small { font-size: 10px; line-height: 1.35; white-space: normal; overflow-wrap: anywhere; }
  .today-evening-handoff-copy > strong { font-size: 11px; }
  .today-evening-handoff-copy > p { font-size: 11px; line-height: 1.45; }
  .today-evening-handoff-copy > small { font-size: 9px; }
  .checkin-tomorrow-hint { font-size: 9px; line-height: 1.45; }
  .quick-capture-helper-row { font-size: 10px; line-height: 1.4; }
}

/* Narrow phones: let cards grow vertically instead of shrinking their text. */
@media (max-width: 380px) {
  .task-row { min-height: 70px; }
  .task-title { font-size: 13px; }
  .task-meta { gap: 4px 7px; }
  .mobile-tab { font-size: 9.5px; }
  .calendar-timeline-item strong { font-size: 9px; }
  .calendar-timeline-item .calendar-item-top time { font-size: 8px; }
  .today-secondary-copy small { max-width: 28ch; }
}

/* Respect users who prefer less motion and preserve readable focus states. */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}


/* Final dark-theme harmonisation for legacy component overrides. */
html[data-theme="dark"] .hero-card { background: linear-gradient(112deg, #373044 0%, #3b3446 47%, #44363a 100%); }
html[data-theme="dark"] .hero-copy h2 { color: #f6f0f7; }
html[data-theme="dark"] .hero-copy p,
html[data-theme="dark"] .hero-overline { color: #d0c5d9; }
html[data-theme="dark"] .text-input::placeholder { color: #a79cac; }
html[data-theme="dark"] .empty-state h3,
html[data-theme="dark"] .empty-state { color: var(--muted); }
html[data-theme="dark"] .task-check { border-color: #746a7d; }


/* iOS Home Screen status-bar surface: an opaque, real edge element is sampled by Safari 26+. */
.status-bar-surface { display:none; }
@media (max-width:680px) {
  .status-bar-surface {
    display:block;
    position:fixed;
    top:0; left:0; right:0;
    width:100%;
    height:max(8px, env(safe-area-inset-top, 0px));
    min-height:8px;
    background-color:var(--bg);
    z-index:1;
    pointer-events:none !important;
    user-select:none;
  }
  html, body { background-color:var(--bg); }
}


/* v24.2.6 — mobile dock position, complete More drawer scrolling and iOS dark edge */
@media (max-width: 680px) {
  /* Reduce the dock's visual height so its controls sit closer to the home-indicator
     safe area instead of appearing unnecessarily elevated. Keep the safe-area fill. */
  .mobile-tabbar {
    min-height: calc(58px + env(safe-area-inset-bottom));
    padding: 4px 8px env(safe-area-inset-bottom);
  }
  .mobile-tab { top: 4px; }
  .mobile-add { top: 4px; margin-top: -14px; }

  /* Keep every sidebar section at its natural height. The whole drawer scrolls,
     so Settings and the footer cannot be compressed below the visible viewport. */
  .sidebar {
    display: flex;
    flex-direction: column;
    height: 100dvh;
    min-height: 100dvh;
    max-height: 100dvh;
    overflow-x: hidden;
    overflow-y: auto;
    padding-top: calc(22px + env(safe-area-inset-top));
    padding-bottom: calc(20px + env(safe-area-inset-bottom));
    scroll-padding-block: 18px 30px;
  }
  .sidebar > * { flex: 0 0 auto; }
  .sidebar .nav-group,
  .sidebar .projects-nav,
  .sidebar .sidebar-bottom,
  .sidebar .nav-item { flex-shrink: 0; }
  .sidebar-bottom { margin-top: 22px; }
  .sidebar .settings-link { scroll-margin-bottom: 30px; }

  /* The dark topbar previously used a slightly lighter legacy shade than the
     document/safe-area surface. Use the theme canvas so both sides of the notch match. */
  html[data-theme="dark"] .topbar {
    background: var(--bg) !important;
    border-bottom-color: var(--line);
  }
  .status-bar-surface { background-color: var(--bg) !important; }
}

/* v24.2.7 — floating Liquid Glass-inspired mobile dock and live iOS theme edge */
@media (max-width: 680px) {
  /* iOS 27 samples the topmost real fixed element near the top edge. Keep this
     simple, opaque, and above the sticky topbar so theme changes are immediate. */
  .status-bar-surface {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 12px;
    min-height: 12px;
    z-index: 80;
    background: var(--status-surface-color, var(--bg)) !important;
    background-image: none !important;
    pointer-events: auto;
    touch-action: pan-y;
    user-select: none;
    -webkit-user-select: none;
  }

  .topbar {
    background: var(--bg) !important;
  }

  /* Detached glass dock: sits slightly closer to the home-indicator area while
     leaving a clear gesture gap and keeping all five targets finger-friendly. */
  .mobile-tabbar {
    position: fixed;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    left: 50%;
    right: auto;
    width: min(520px, calc(100vw - 18px));
    height: 58px;
    min-height: 58px;
    bottom: max(0px, calc(env(safe-area-inset-bottom, 0px) - 6px));
    padding: 4px 7px;
    transform: translateX(-50%);
    overflow: visible;
    isolation: isolate;
    border: 1px solid color-mix(in srgb, var(--line) 70%, white 30%);
    border-radius: 23px;
    background: color-mix(in srgb, var(--surface) 66%, transparent);
    -webkit-backdrop-filter: saturate(190%) blur(28px);
    backdrop-filter: saturate(190%) blur(28px);
    box-shadow: 0 10px 30px rgba(35, 31, 46, .16),
                0 2px 7px rgba(35, 31, 46, .08),
                inset 0 1px 0 rgba(255, 255, 255, .62);
  }

  .mobile-tabbar::before {
    content: '';
    position: absolute;
    inset: 1px;
    z-index: 0;
    border-radius: 22px;
    background: linear-gradient(180deg, rgba(255,255,255,.24), rgba(255,255,255,.04) 48%, transparent 100%);
    pointer-events: none;
  }

  .mobile-tab {
    position: relative;
    top: auto;
    z-index: 1;
    align-self: center;
    height: 48px;
    min-height: 48px;
    padding: 2px 0;
    border: 1px solid transparent;
    border-radius: 15px;
    gap: 2px;
    font-size: 9px;
    transition: background-color .18s ease, color .18s ease, transform .18s ease;
  }

  .mobile-tab.active {
    background: color-mix(in srgb, var(--purple) 14%, transparent);
    border-color: color-mix(in srgb, var(--purple) 12%, transparent);
    color: var(--purple-dark);
  }

  .mobile-tab[aria-expanded="true"] {
    background: color-mix(in srgb, var(--purple) 16%, transparent);
    color: var(--purple-dark);
  }

  .mobile-tab-icon {
    font-size: 20px;
    height: 22px;
  }

  .mobile-add {
    position: relative;
    top: auto;
    z-index: 2;
    align-self: center;
    width: 43px;
    height: 43px;
    margin: 0;
    border: 1px solid rgba(255,255,255,.38);
    border-radius: 15px;
    background: linear-gradient(145deg, #9b8dcb 0%, var(--purple) 58%, #7669a7 100%);
    box-shadow: 0 5px 14px rgba(111, 94, 162, .28),
                inset 0 1px 0 rgba(255,255,255,.34);
  }

  #mobileMoreButton {
    position: relative;
    top: auto;
    z-index: 10;
    min-height: 48px;
    height: 48px;
    pointer-events: auto;
    touch-action: manipulation;
  }

  .page-content {
    padding-bottom: calc(94px + env(safe-area-inset-bottom));
  }

  .toast {
    bottom: calc(76px + env(safe-area-inset-bottom));
  }
}

html[data-theme="dark"] .mobile-tabbar {
  border-color: rgba(255,255,255,.16);
  background: color-mix(in srgb, #37313f 70%, transparent);
  box-shadow: 0 12px 34px rgba(0,0,0,.34),
              0 2px 8px rgba(0,0,0,.18),
              inset 0 1px 0 rgba(255,255,255,.16);
}
html[data-theme="dark"] .mobile-tabbar::before {
  background: linear-gradient(180deg, rgba(255,255,255,.13), rgba(255,255,255,.025) 52%, transparent 100%);
}
html[data-theme="dark"] .mobile-tab.active,
html[data-theme="dark"] .mobile-tab[aria-expanded="true"] {
  background: color-mix(in srgb, var(--purple) 19%, transparent);
  border-color: color-mix(in srgb, var(--purple) 22%, transparent);
  color: var(--purple-dark);
}
html[data-theme="dark"] .mobile-add {
  border-color: rgba(255,255,255,.22);
  box-shadow: 0 6px 16px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.28);
}

@media (prefers-reduced-transparency: reduce) and (max-width: 680px) {
  .mobile-tabbar {
    background: var(--surface);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: 0 6px 20px rgba(35,31,46,.14);
  }
  .mobile-tabbar::before { display: none; }
}


/* v24.3.1 — calm, non-blocking offline status */
.offline-status {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 12px 48px 0;
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: var(--surface-2);
  color: var(--muted);
  font-size: 11px;
  line-height: 1.4;
}
.offline-status.hidden { display: none !important; }
.offline-status-dot {
  width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%;
  background: var(--coral);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--coral) 14%, transparent);
}
@media (max-width: 680px) { .offline-status { margin: 9px 15px 0; font-size: 10px; } }


/* v24.4 — dialog context focus is programmatic; retain visible focus on controls. */
.modal[tabindex="-1"]:focus, .command-palette[tabindex="-1"]:focus { outline: none; }
button:disabled { cursor: not-allowed; opacity: .58; }


/* v24.4.1 — desktop/tablet sidebar scrolling and Settings reachability.
   Keep each sidebar section at its natural height; when the expanded navigation
   exceeds the viewport, scroll the sidebar itself rather than clipping its footer. */
.sidebar {
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior-y: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--muted) 28%, transparent) transparent;
}
.sidebar > * { flex: 0 0 auto; min-width: 0; }
.sidebar::-webkit-scrollbar { width: 6px; }
.sidebar::-webkit-scrollbar-track { background: transparent; }
.sidebar::-webkit-scrollbar-thumb {
  background: color-mix(in srgb, var(--muted) 26%, transparent);
  border: 2px solid transparent;
  border-radius: 999px;
  background-clip: padding-box;
}
.sidebar::-webkit-scrollbar-thumb:hover {
  background: color-mix(in srgb, var(--muted) 42%, transparent);
  background-clip: padding-box;
}

/* v24.5 — Accessibility & Mobile Experience */
:root {
  --focus-outline-color: #695d96;
}
html[data-theme="dark"] {
  --focus-outline-color: #c8bdf0;
}
/* Visible, predictable keyboard focus for native and custom interactive controls. */
button:focus-visible,
a[href]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[role="button"]:focus-visible,
[role="switch"]:focus-visible,
[role="option"]:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible {
  outline: 3px solid var(--focus-outline-color) !important;
  outline-offset: 3px;
  box-shadow: 0 0 0 2px var(--surface), 0 0 0 5px color-mix(in srgb, var(--focus-outline-color) 35%, transparent) !important;
}
.modal[tabindex="-1"]:focus,
.command-palette[tabindex="-1"]:focus,
#mainContent:focus { outline: none; box-shadow: none; }

/* Higher contrast preference: strengthen text, component boundaries and selected states. */
@media (prefers-contrast: more) {
  :root { --muted: #56534e; --line: #bdb8ae; }
  html[data-theme="dark"] { --muted: #d0c9d6; --line: #716978; }
  .nav-item, .text-button, .calendar-filter-select, .data-note { color: var(--ink); }
  .task-row, .card, .settings-card, .modal, .text-input { border-color: var(--line); }
  button:focus-visible, a[href]:focus-visible, input:focus-visible,
  select:focus-visible, textarea:focus-visible, [role="switch"]:focus-visible {
    outline-width: 4px !important;
  }
}
@media (forced-colors: active) {
  button:focus-visible, a[href]:focus-visible, input:focus-visible,
  select:focus-visible, textarea:focus-visible, [role="switch"]:focus-visible {
    outline: 2px solid Highlight !important;
    outline-offset: 3px;
    box-shadow: none !important;
  }
  .mobile-tab.active, .nav-item.active, .theme-option.active { outline: 1px solid Highlight; }
}

/* Touch-first controls: enlarge common icon and secondary actions without changing desktop layout. */
@media (max-width: 680px) and (pointer: coarse) {
  .mobile-menu,
  .icon-button,
  .avatar-small,
  .quick-capture-top-button,
  .close-modal,
  .command-palette-close,
  .calendar-controls > button,
  .calendar-title-actions > button,
  .week-review-nav > button,
  .calendar-day-add,
  .calendar-agenda-day header button,
  .calendar-mode-switch .calendar-mode,
  .calendar-column-add,
  .calendar-add-task,
  .routine-check-button,
  .life-filter,
  .today-task-expand,
  .quick-capture-examples button,
  .recommendation-card-actions button,
  .task-focus-button,
  .routine-edit-button,
  .task-check,
  .task-more,
  .field-quick-pick,
  .color-choice {
    min-width: 44px;
    min-height: 44px;
  }
  .calendar-day-add, .routine-edit-button, .task-check, .task-more, .task-focus-button { flex: 0 0 44px; }
  .color-choice { width: 44px; height: 44px; }
  .calendar-toggles label { min-height: 44px; padding: 5px 3px; }
  .routine-day-picker span, .weekly-plan-days span { min-height: 44px; }
  .personalization-days span { min-height: 40px; }
  .text-button { min-height: 40px; padding-top: 8px; padding-bottom: 8px; }
  .toggle {
    position: relative;
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
    padding: 0;
    border-radius: 50%;
    background: transparent;
    display: grid;
    place-items: center;
  }
  .toggle::before {
    content: "";
    position: absolute;
    width: 36px;
    height: 20px;
    left: 4px;
    top: 12px;
    border-radius: 20px;
    background: #e5e4df;
    transition: background-color .2s ease;
  }
  .toggle span {
    position: absolute;
    left: 6px;
    top: 14px;
    width: 16px;
    height: 16px;
    z-index: 1;
    transition: transform .2s ease;
  }
  .toggle.on { background: transparent; }
  .toggle.on::before { background: #8d81bb; }
  .toggle.on span { transform: translateX(16px); }
  html[data-theme="dark"] .toggle::before { background: #5a5362; }
  html[data-theme="dark"] .toggle.on::before { background: #a99bd8; }
}

/* iOS Safari zooms focused text fields below 16px; keep form entry comfortable on phones. */
@media (max-width: 680px) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
  select,
  textarea {
    font-size: 16px !important;
  }
  .modal input[type="date"],
  .modal input[type="time"],
  .modal input[type="datetime-local"] { font-size: 16px !important; }
}

/* Make the compact page controls wrap instead of clipping at narrow phone widths. */
@media (max-width: 360px) {
  .topbar { gap: 6px; }
  .topbar-actions { min-width: 0; gap: 5px; }
  .breadcrumb { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .calendar-controls { flex-wrap: wrap; row-gap: 8px; }
  .calendar-controls > strong { flex: 1 1 100%; order: -1; text-align: center; }
  .modal-actions { gap: 7px; }
  .modal-actions > button { flex: 1 1 auto; }
}


/* v24.5.2 — native document scrolling on mobile + visualViewport-aware dock.
   Android installed PWAs are more reliable when the document remains the single
   vertical scroll owner. The fixed dock follows the visible viewport so it remains
   reachable during iOS Reachability (one-handed) mode and viewport resizing. */
@media (max-width: 680px) {
  html {
    width: 100%;
    min-height: 100%;
    height: auto !important;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior-y: auto;
  }

  body {
    width: 100%;
    height: auto !important;
    min-height: 100svh;
    min-height: 100dvh;
    padding: 0;
    position: relative;
    overflow-x: hidden;
    overflow-y: visible;
    overscroll-behavior-y: auto;
  }

  .app-shell {
    width: 100%;
    height: auto !important;
    min-height: 100svh;
    min-height: 100dvh;
    overflow: visible !important;
  }

  /* Do not create a nested touch scroller here. Let the browser scroll the page
     itself; this is the most interoperable path for Android Chrome/PWA and iOS. */
  .main-area {
    width: 100%;
    height: auto !important;
    min-height: 100svh;
    min-height: 100dvh;
    max-height: none !important;
    overflow: visible !important;
    overscroll-behavior: auto;
    -webkit-overflow-scrolling: auto;
    touch-action: auto;
    scrollbar-width: auto;
  }

  .main-area > .page-content {
    min-height: 0;
    /* Dock is 58px + safe-area bottom offset. Add comfortable scroll clearance. */
    padding-bottom: calc(var(--dayflow-dock-height) + var(--dayflow-dock-bottom) + 40px);
  }

  :root {
    --dayflow-dock-height: 58px;
    --dayflow-dock-bottom: max(0px, calc(env(safe-area-inset-bottom, 0px) - 6px));
  }

  /* Position against the visible viewport, not only the full layout viewport.
     This lets the dock follow the shortened viewport in iOS Reachability mode.
     JS sets inline 'top' via updateModalViewport() for reliable Reachability tracking. */
  .mobile-tabbar {
    z-index: 90;
    pointer-events: auto;
    bottom: auto !important;
    /* top is set inline by updateModalViewport() */
  }
}

/* ==========================================================================
   FIX 1: Week Calendar Mobile - Better horizontal scroll handling
   ========================================================================== */
@media (max-width: 680px) {
  .week-calendar {
    /* Already has scroll-snap, but ensure scrollbar is visible as affordance */
    scrollbar-width: thin;
    scrollbar-color: color-mix(in srgb, var(--muted) 40%, transparent) transparent;
  }
  .week-calendar::-webkit-scrollbar {
    height: 6px;
  }
  .week-calendar::-webkit-scrollbar-track {
    background: transparent;
  }
  .week-calendar::-webkit-scrollbar-thumb {
    background: color-mix(in srgb, var(--muted) 40%, transparent);
    border-radius: 999px;
  }
  
  /* Ensure week-day has minimum width but can shrink if needed */
  .week-day {
    min-width: min(112px, 100vw / 7);
  }
}

/* ==========================================================================
   FIX 2: Toast positioning - account for floating dock on mobile
   ========================================================================== */
@media (max-width: 680px) {
  .toast {
    /* Dock is 58px tall, positioned at bottom of visual viewport.
       Toast should appear above dock with comfortable gap. */
    bottom: calc(var(--dayflow-dock-height) + var(--dayflow-dock-bottom) + 16px + env(safe-area-inset-bottom));
    max-width: calc(100vw - 32px);
  }
}

/* Override the 380px specific toast rule to use the same calculation */
@media (max-width: 380px) {
  .toast {
    bottom: calc(var(--dayflow-dock-height) + var(--dayflow-dock-bottom) + 16px + env(safe-area-inset-bottom));
    max-width: calc(100vw - 24px);
  }
}

/* ==========================================================================
   FIX 3: Color Choice Focus Styles (Project Modal)
   ========================================================================== */
.color-choice:focus-visible {
  outline: 3px solid var(--focus-outline-color) !important;
  outline-offset: 3px;
  box-shadow: 0 0 0 2px var(--surface), 0 0 0 5px color-mix(in srgb, var(--focus-outline-color) 35%, transparent) !important;
}

/* ==========================================================================
   FIX 4: Calendar Legend Accessibility - Replace <i> with proper elements
   ========================================================================== */
/* This will be applied via HTML change, but add supporting styles here */
.calendar-legend .legend-swatch {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 2px;
  flex-shrink: 0;
}
.calendar-legend .legend-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

/* ==========================================================================
   FIX 5: Month Calendar Day Numbers - Prevent clipping
   ========================================================================== */
@media (max-width: 680px) {
  .calendar-month-day-number {
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .calendar-month-day {
    min-height: 80px;
    padding: 6px 4px;
  }
}

/* ==========================================================================
   FIX 6: Command Palette Placeholder - Responsive
   ========================================================================== */
@media (max-width: 480px) {
  .command-palette-search input::placeholder {
    /* Shorter placeholder on narrow screens */
    content: "Search...";
  }
}

/* ==========================================================================
   FIX 7: Focus Ring Unification - Ensure consistent focus styles
   ========================================================================== */
/* The base focus-visible styles at line 2809+ are good, but ensure
   custom elements like .mobile-tab, .nav-item, .theme-option also use them */
.mobile-tab:focus-visible,
.nav-item:focus-visible,
.theme-option:focus-visible,
.life-filter:focus-visible,
.calendar-mode:focus-visible {
  outline: 3px solid var(--focus-outline-color) !important;
  outline-offset: 2px;
  box-shadow: 0 0 0 2px var(--surface), 0 0 0 5px color-mix(in srgb, var(--focus-outline-color) 35%, transparent) !important;
}

/* ==========================================================================
   FIX 8: Life Balance Stack - Dynamic aria-label when empty
   ========================================================================== */
/* Handled in JS, but ensure CSS doesn't hide it */
.life-balance-stack[aria-label=""]::before {
  content: "No planned time yet";
  display: block;
  text-align: center;
  padding: 20px;
  color: var(--muted);
}

/* ==========================================================================
   FIX 9: External Profile Update - Toast with reload action
   ========================================================================== */
/* Styles for toast with action button */
.toast.with-action {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
}
.toast-action {
  border: 1px solid rgba(255,255,255,0.3);
  background: transparent;
  color: #fff;
  padding: 6px 12px;
  border-radius: 6px;
  font-size: 10px;
  font-weight: 700;
  white-space: nowrap;
}
.toast-action:hover {
  background: rgba(255,255,255,0.15);
}

/* ==========================================================================
   FIX 10: Backup Version Warning Styles
   ========================================================================== */
.backup-version-warning {
  background: color-mix(in srgb, var(--coral) 12%, var(--surface-2));
  border: 1px solid color-mix(in srgb, var(--coral) 40%, var(--line));
  border-radius: 10px;
  padding: 12px 14px;
  margin-bottom: 16px;
  color: var(--ink);
  font-size: 10px;
  line-height: 1.5;
}
.backup-version-warning strong {
  color: var(--coral);
}

/* ==========================================================================
   FIX 11: Hero Card Dark Gradient - Brand Consistency Check
   ========================================================================== */
/* The dark hero gradient at line 2517 should be verified visually.
   Current: linear-gradient(112deg, #373044 0%, #3b3446 47%, #44363a 100%)
   This is a warm dark gradient matching the light version's warmth. */

/* ==========================================================================
   FIX 12: Reduced Motion - Ensure All Animations Respect Preference
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  /* Ensure visualViewport tracking doesn't cause layout shifts */
  .mobile-tabbar {
    transition: none !important;
  }
  /* Toast should appear without animation */
  .toast {
    transition: opacity .15s ease !important;
  }
}

/* ==========================================================================
   FIX 13: Focus State on Command Palette Results
   ========================================================================== */
.command-palette-item:focus-visible,
.command-palette-item.selected {
  outline: 3px solid var(--focus-outline-color) !important;
  outline-offset: -3px;
  box-shadow: 0 0 0 2px var(--surface), 0 0 0 5px color-mix(in srgb, var(--focus-outline-color) 35%, transparent) !important;
}

/* ==========================================================================
   FIX 14: Mobile Tabbar - Ensure Focus Visible on Keyboard Navigation
   ========================================================================== */
@media (max-width: 680px) {
  .mobile-tab:focus-visible,
  .mobile-add:focus-visible,
  #mobileMoreButton:focus-visible {
    outline: 3px solid var(--focus-outline-color) !important;
    outline-offset: 3px;
    box-shadow: 0 0 0 2px var(--surface), 0 0 0 5px color-mix(in srgb, var(--focus-outline-color) 35%, transparent) !important;
    z-index: 91;
  }
}

/* ==========================================================================
   FIX 15: Calendar Mode Switch - Focus Styles
   ========================================================================== */
.calendar-mode:focus-visible {
  outline: 3px solid var(--focus-outline-color) !important;
  outline-offset: 2px;
  border-radius: 6px;
  box-shadow: 0 0 0 2px var(--surface), 0 0 0 5px color-mix(in srgb, var(--focus-outline-color) 35%, transparent) !important;
}

/* ==========================================================================
   FIX 16: Search Input Focus
   ========================================================================== */
.search-wrap:focus-within {
  border-color: var(--purple);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--purple) 15%, transparent);
}
.search-wrap input:focus-visible {
  outline: none;
}

/* ==========================================================================
   FIX 17: Task Check Focus
   ========================================================================== */
.task-check:focus-visible {
  outline: 3px solid var(--focus-outline-color) !important;
  outline-offset: 3px;
  box-shadow: 0 0 0 2px var(--surface), 0 0 0 5px color-mix(in srgb, var(--focus-outline-color) 35%, transparent) !important;
  border-radius: 50%;
}

/* ==========================================================================
   FIX 18: Toggle Switch Focus (Mobile)
   ========================================================================== */
@media (max-width: 680px) and (pointer: coarse) {
  .toggle:focus-visible {
    outline: 3px solid var(--focus-outline-color) !important;
    outline-offset: 4px;
    border-radius: 50%;
  }
}

/* ==========================================================================
   FIX 19: Date/Time Input Focus in Modals
   ========================================================================== */
.modal .text-input:focus-visible,
.modal input[type="date"]:focus-visible,
.modal input[type="time"]:focus-visible,
.modal input[type="datetime-local"]:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--purple) 55%, transparent);
  outline-offset: 1px;
}

/* ==========================================================================
   FIX 20: Ensure VisualViewport Variables Have Fallbacks
   ========================================================================== */
:root {
  --dayflow-visual-height: 100dvh;
  --dayflow-visual-offset-top: 0px;
  --dayflow-dock-height: 58px;
  --dayflow-dock-bottom: max(0px, calc(env(safe-area-inset-bottom, 0px) - 6px));
}

