/* Online demo layout; typography follows the original project's current DESIGN.md. */
.v39-home-intro{margin:-8px -18px 0;padding:30px 18px 14px;background:radial-gradient(ellipse at 100% 0%,#e9d4e1 0%,#f2e4e544 42%,transparent 72%),#f8f7f3}
.v39-home-intro .eyebrow{font:400 28px/36px Arial,var(--font-ui);letter-spacing:0;color:#292a26;white-space:nowrap}
.v39-home-intro .h1{font:400 27px/41px var(--font-brand);letter-spacing:1px;margin:5px 0 16px;color:#292a26}
.v39-home-count{display:flex;align-items:center;gap:7px;min-height:30px;padding:0;border:0;background:none;color:#77786f;font:400 13px/20px var(--font-ui)}
.v39-home-count strong{font-weight:600;color:#34352f}.v39-home-count span{margin-left:3px;font-size:21px;font-weight:300}
.seg.wish-switch.v39-home-tabs{height:32px;min-height:32px;padding:2px;gap:0;margin:16px 0 18px;background:#eae9e6;border-radius:99px}
.seg.wish-switch.v39-home-tabs button{min-height:28px;height:28px;padding:3px 8px;font:400 13px/22px var(--font-ui);border-radius:99px;color:#797a74}
.seg.wish-switch.v39-home-tabs button.sel{background:#252522;color:#fff;font-weight:600}
.seg.wish-switch.v39-home-tabs button{display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}
.v39-home-tabs button svg,.v39-write-wish svg{display:block;width:16px;height:16px;flex:0 0 16px}
.row.v39-home-section-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:12px;min-height:36px;margin:0 0 16px}
.v39-home-section-head h1,.v39-home-section-head h2{margin:0;font-size:20px;line-height:28px}
.v39-home-section-head .btn.v39-write-wish{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;gap:6px;height:32px;min-height:32px;padding:0 13px;margin:0;border:0;border-radius:999px;background:#D70050;color:#fff;font:500 12px/18px var(--font-ui);white-space:nowrap}
@media(max-width:360px){.v39-home-intro .eyebrow{font-size:26px}.v39-home-intro .h1{font-size:25px}}
@font-face{font-family:'Yeseva One';src:url('/assets/fonts/YesevaOne-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
.shell[data-tab="today"][data-page="main"] .body{padding-top:18px}
.shell[data-tab="today"] .floating-add{left:auto;right:var(--floating-right);bottom:calc(94px + env(safe-area-inset-bottom));position:fixed;z-index:30}
.today-overview{--progress-light:#ed8cb3;--progress-deep:#d70050;--progress-ink:#bc1657;--progress-track:#eddfe5;display:grid;grid-template-columns:minmax(0,1fr) 58px;align-items:center;gap:4px 12px;border:1px solid #e9e2e3;border-radius:18px;padding:12px 14px 8px;margin-bottom:14px;background:var(--brand-wash);color:var(--ink)}
.today-overview.is-complete{--progress-light:#91c9a6;--progress-deep:#2c795a;--progress-ink:#2c795a;--progress-track:#dcebe2}
.today-overview-content{min-width:0}
.today-overview h2{font-size:17px;line-height:24px;margin:0}
.today-overview-progress{position:relative;width:58px;height:58px;align-self:center;color:var(--progress-ink);font-variant-numeric:tabular-nums}
.today-progress-ring{display:block;width:100%;height:100%;overflow:visible}
.today-progress-ring circle{fill:none;stroke-width:6}
.today-progress-track{stroke:var(--progress-track)}
.today-progress-value{stroke:url(#todayProgressGradient);stroke-linecap:round}
.today-progress-light{stop-color:var(--progress-light)}.today-progress-deep{stop-color:var(--progress-deep)}
.today-progress-center{position:absolute;inset:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border-radius:50%;background:#fffdf980}
.today-progress-fraction{display:flex;align-items:baseline;gap:2px;line-height:1.1;letter-spacing:-.04em}
.today-overview-progress b{font-size:20px;font-weight:600}.today-overview-progress small{font-size:10px;letter-spacing:0}
.today-progress-label{font-size:8px;line-height:12px;font-weight:500;white-space:nowrap}
@supports (background-clip:text){
  .today-overview-progress b,.today-overview-progress small{background:linear-gradient(135deg,var(--progress-ink),var(--progress-deep));background-clip:text;-webkit-background-clip:text;color:transparent}
}
.today-overview-summary{font-size:11px;line-height:18px;color:var(--sub);margin:3px 0 0}
.today-overview.is-complete .today-overview-summary{margin-bottom:0}
.today-overview-tasks{grid-column:1/-1;display:grid;gap:0;min-width:0}
.today-overview-tasks:empty{display:none}
.today-overview-tasks article{display:flex;align-items:center;gap:4px;min-width:0}
.today-overview-tasks article+article{border-top:1px solid #e9e2e380}
.today-overview-check{display:grid;place-items:center;flex:0 0 28px;width:28px;min-height:36px;padding:0;background:transparent;color:#3f4d6b}
.today-overview-check span{width:17px;height:17px}
.today-overview-task{display:flex;align-items:center;gap:8px;flex:1;min-width:0;min-height:36px;padding:2px 0;background:transparent;text-align:left}
.today-overview-task strong{display:block;flex:1;min-width:0;font-size:12px;line-height:18px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.today-overview-task small{flex:none;font-size:10px;line-height:16px;color:var(--sub);white-space:nowrap}
.today-overview-tasks .is-done strong{text-decoration:line-through;color:var(--sub)}
.today-overview-tasks .is-done .today-overview-check{opacity:.65}
.today-overview-more{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:4px;width:100%;min-height:30px;padding:4px 0;background:transparent;font-size:11px;color:var(--brand)}
.today-overview-more svg{width:12px;height:12px}
.today-overview-more[aria-expanded="false"] svg{transform:rotate(90deg)}
.today-overview-more[aria-expanded="true"] svg{transform:rotate(-90deg)}
@media(max-width:350px){.today-overview{gap:4px 8px;padding:10px 10px 6px}.today-overview-task{gap:4px}}
.date-head{min-height:38px}.date-head h1{font-size:21px;line-height:32px}
.date-head h1 small{display:inline;font-size:12px;font-weight:400}
.today-quote{margin:0 0 16px}
.view-toggle{border-radius:999px;padding:3px;gap:0}
.view-toggle button{min-height:30px;padding:5px 10px;border-radius:999px}
.calendarstrip{margin-bottom:20px;padding-bottom:5px}
.calendarstrip .day{border-radius:0;position:relative}
.calendarstrip .day.sel:after{content:"";position:absolute;bottom:-5px;left:20%;right:20%;height:2px;background:#9a988f}
.calendarstrip .day strong{width:32px;height:32px}
.day-axis{margin-left:44px}
.day-event-check{flex-basis:28px;width:28px;height:44px;padding:10px 4px 10px 9px}
.day-event-check span{width:13px;height:13px}
.day-event-check span,.today-overview-check span{border-color:#87909d80}
.day-event{--event-title-top:7px;--event-title-line:20px;--event-check-size:13px}
.day-event>.day-event-check{display:flex;align-items:flex-start;padding-top:calc(var(--event-title-top) + (var(--event-title-line) - var(--event-check-size))/2)}
.day-event>.day-event-check span{flex:none;width:var(--event-check-size);height:var(--event-check-size)}
.day-event-open{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;padding:var(--event-title-top) 3px 7px 0}
.day-event-open strong{flex-shrink:0;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:var(--event-title-line)}
.day-event.compact .day-event-open strong{-webkit-line-clamp:1}
.day-event-open>span:before{content:"◷";margin-right:3px}
.day-axis .now-line{background:#bf6676;height:1px;pointer-events:none}
.day-axis .now-line:before{content:"";position:absolute;left:-3px;top:-2px;width:5px;height:5px;background:#bf6676;border-radius:50%}
.day-axis .now-line span{background:var(--cream);color:#a85366;border-radius:0;padding:0;font-size:11px}
.day-loose{margin-bottom:14px;align-items:start}
.day-loose>span{padding-top:8px;font-size:11px}
.day-loose .day-event{min-height:38px;border-radius:8px;background:#f4eddf;color:#655943}
.day-loose .day-event{--event-title-top:8px}
.day-loose .day-event-open{padding:var(--event-title-top) 4px}
.day-loose .day-event-open>span{display:none}
.day-pending{margin:0 0 18px;padding:15px;background:#f6f1e7;border:1px solid #e9dfcf;border-radius:14px;color:#5f574b}
.day-pending-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.day-pending-head h2{margin:3px 0 0;font-size:17px}.day-pending-head>span{font-size:11px;color:#9b856d}.day-pending>p{margin:8px 0 11px;color:#8a8175;font-size:11px}.day-pending-list{display:grid;gap:7px}.day-pending-item{display:flex;align-items:center;gap:8px;padding:8px 9px;background:#fffdf8;border:1px solid #eee5d8;border-radius:10px}.day-pending-item .day-event-check{flex:0 0 28px;width:28px;height:28px;padding:6px 5px}.day-pending-item .day-event-check span{width:14px;height:14px}.day-pending-item>div{display:grid;gap:2px;min-width:0;flex:1}.day-pending-item strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-pending-item small{font-size:10px;color:#9a9185;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-pending-item .mini{flex:none}
.calendar-period{margin:12px 0}
.calendar-grid.month{gap:0;border-bottom:1px solid var(--line)}
.calendar-grid.month .calendar-weekday{font-size:12px}
.calendar-grid.month .calendar-cell{min-height:112px;padding:6px 2px;border-radius:0;display:flex;flex-direction:column;align-items:center;border-top:1px solid #e9e7e1;background:transparent;color:var(--ink);gap:5px}
.calendar-grid.month .calendar-cell.selected{background:#efeee8}
.calendar-grid.month .calendar-cell>strong{width:27px;height:27px;display:grid;place-items:center;border-radius:50%;flex-shrink:0;font-size:14px}
.calendar-grid.month .calendar-cell.selected>strong{background:var(--selected);color:#fff}
.calendar-grid.month .calendar-cell.outside{opacity:.5}
.calendar-grid.month .month-cell-events{width:100%;display:grid;gap:3px;min-height:0;color:var(--sub)}
.calendar-grid.month .month-event{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:0;margin:0;text-align:left;padding:3px;border-radius:4px;background:#e2e8f5;color:#3f4d6b;font-size:11px;line-height:14px;overflow-wrap:anywhere}
.calendar-grid.month .month-event.official{background:#f7dce6;color:#6b3547}
.calendar-grid.month .month-event.course{background:#e9e1f4;color:#58436b}
.calendar-grid.month .month-event.habit{background:#e1f1e8;color:#3d6051}
.month-cell-events small{font-size:11px;line-height:16px;text-align:left}
.week-loose{display:grid;gap:6px;margin-bottom:16px}
.week-loose>div{display:grid;grid-template-columns:78px 1fr;align-items:center;gap:4px}
.week-loose span{font-size:11px;color:var(--sub)}
.week-loose button{text-align:left;border:0;border-radius:8px;min-height:36px;padding:8px 10px;background:#f4eddf;font:400 12px/18px var(--font-ui)}
.week-scroll{overflow-x:auto;margin:0 -18px;overscroll-behavior-x:contain;position:relative;border-top:1px solid #e9e7e1}
.week-timeline{display:grid;grid-template-columns:50px repeat(7,112px);width:834px;background:#fdfcf9}
.week-time-column{position:sticky;left:0;z-index:3;background:#fdfcf9;border-right:1px solid #eee;min-height:1500px}
.week-time-column>span{position:absolute;right:6px;transform:translateY(-50%);font-size:11px;line-height:16px;color:#88877e}
.week-time-column>.week-zone{top:36px}
.week-day{border-right:1px solid #eee;min-width:0}.week-day.selected{background:#f3f0f680}
.week-day-heading{border:0;background:transparent;width:100%;height:60px;display:grid;place-content:center;justify-items:center;gap:2px;font:400 12px/18px var(--font-ui);color:var(--sub)}
.week-day-heading strong{display:grid;place-items:center;width:30px;height:30px;font-size:16px;font-weight:600;color:var(--ink);border-radius:50%}
.week-day.selected .week-day-heading strong{background:var(--selected);color:white}
.week-day-axis{height:1440px;position:relative;background:repeating-linear-gradient(to bottom,#e8e6e1 0 1px,transparent 1px 60px)}
.week-day .day-event{border-left:2px solid #8d9fce;padding-right:0}
.week-day .day-event:before{display:none}
.week-day .day-event-check{flex-basis:20px;width:20px;padding-right:2px;padding-left:3px}
.week-day .day-event{--event-title-top:5px;--event-title-line:16px}
.week-day .day-event-open{padding:var(--event-title-top) 2px}.week-day .day-event-open strong{font-size:12px;line-height:var(--event-title-line)}
.week-day .day-event-open>span{font-size:10px;line-height:14px}
.ref-profile{padding:22px 17px 0;border-radius:20px;margin-bottom:24px}
.ref-profile-main{padding:0 2px 20px;gap:14px}
.ref-avatar{font-family:var(--font-brand)!important;font-weight:400}
.ref-identity em{font-size:10px;border-radius:999px}
.ref-profile-id{display:flex;align-items:center;gap:4px;color:var(--sub);font-size:12px;line-height:18px}
.ref-profile-id code{font:400 12px/18px var(--font-ui);font-variant-numeric:tabular-nums}
.ref-profile-id button{display:grid;place-items:center;min-width:44px;height:36px;border:0;background:transparent;padding:8px}
.ref-profile-id svg{width:16px;height:16px}
.ref-profile-metrics{margin:20px 0;padding:0}
.ref-profile-metrics span{min-width:0}
.ref-profile-metrics strong,.ref-dashboard strong{font-family:'Yeseva One',Georgia,var(--font-ui);font-size:30px;font-weight:400;line-height:38px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.ref-profile-metrics small{font-size:12px;white-space:nowrap}
.ref-insight{margin:0 -17px;min-height:88px;display:flex;align-items:flex-start;padding:18px 20px;font-size:12px;line-height:20px;background:linear-gradient(110deg,#f7f0de,#f4edf7);text-align:left}
.ref-me-board>.ref-section-heading{gap:0;flex-wrap:nowrap}
.ref-me-board h2{font-size:20px;flex-shrink:0}
.ref-board-tools{margin-right:-9px;gap:0}
.ref-board-tools button{width:34px;height:44px;padding:8px 7px}
.ref-text-tool{font-family:Georgia,serif;font-size:20px}
.ref-me-badges .ref-badge-grid{border:1px solid #e9e7e2;border-radius:20px;padding:22px 14px;background:#fffdf9}
.ref-me-badges .ref-badge-grid>p{margin:0;line-height:22px}
.ref-other-grid button{border-radius:16px;padding:18px 15px;min-height:136px;background:white}
.ref-other-grid button svg{width:22px;height:22px;margin-bottom:12px}
.ref-other-grid button span{font-size:12px;line-height:20px}
.ref-more{margin:16px 0 24px}.ref-more summary{list-style:none;text-align:center;color:var(--sub);font-size:13px}
.ref-more summary::-webkit-details-marker{display:none}
.ref-more-links{display:grid;border:1px solid var(--line);background:var(--surface);border-radius:16px;overflow:hidden}
.ref-more-links button{display:flex;align-items:center;justify-content:space-between;min-height:48px;border:0;border-bottom:1px solid var(--line);padding:12px 16px;background:transparent;text-align:left;font:400 14px/22px var(--font-ui)}
.ref-more-links button:last-child{border:0}.ref-more-links svg{width:18px;height:18px}
.ref-support-fab{position:fixed;z-index:40;bottom:calc(82px + env(safe-area-inset-bottom));right:var(--floating-right);width:44px;height:44px;display:grid;place-items:center;border:1px solid #e9e7e2;border-radius:50%;background:white;box-shadow:0 4px 14px #28241d0c}
.ref-support-fab svg{width:23px;height:23px}
body.v40-editing .ref-support-fab{display:none}
.ref-course-catalog{display:grid;gap:12px}
.ref-course-catalog button{display:flex;align-items:center;gap:12px;min-height:100px;text-align:left;border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:12px}
.ref-catalog-cover{width:64px;height:80px;flex:0 0 64px;background-size:cover;background-position:center;border-radius:8px}
.ref-course-catalog button>span:nth-child(2){flex:1}.ref-course-catalog strong{display:block;font-size:16px;line-height:24px;font-weight:500}
.ref-course-catalog small{display:block;margin-top:6px;font-size:12px;line-height:18px;color:var(--sub)}
.ref-course-catalog svg{width:18px;height:18px;flex-shrink:0}
.ref-metric-notes{margin-top:24px;font-size:14px;line-height:22px}
@media(max-width:360px){.ref-me-board>.ref-section-heading{flex-wrap:wrap}.ref-board-tools{margin-left:auto}.ref-profile{padding:18px 14px 0}.ref-insight{margin:0 -14px}.ref-profile-metrics small{font-size:11px}.ref-profile-metrics strong{font-size:28px}.date-head h1{font-size:20px}.date-head h1 small{display:inline}}
.day-pending-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:44px;margin:0 0 14px;padding:9px 13px;background:#f6f1e7;border:1px solid #e9dfcf;border-radius:10px;color:#5f574b;text-align:left;font:inherit;cursor:pointer}.day-pending-summary strong{font-size:13px;line-height:20px}.day-pending-summary svg{width:16px;height:16px;flex:none;opacity:.6}.day-pending-summary:focus-visible{outline:2px solid #8a8175;outline-offset:2px}.v39-pending-sheet{display:flex;flex-direction:column;height:min(520px,calc(100dvh - 96px));overflow:hidden}.v39-pending-sheet .hint{text-align:left;margin:0 0 12px}.v39-pending-list{display:grid;gap:7px;overflow-y:auto;min-height:0;flex:1;margin:0 -3px 10px;padding:2px 3px}.v39-pending-item{display:flex;align-items:center;gap:8px;padding:9px;background:#fffdf8;border:1px solid #eee5d8;border-radius:10px}.v39-pending-item .day-event-check{flex:0 0 28px;width:28px;height:28px;padding:6px 5px}.v39-pending-item .day-event-check span{width:14px;height:14px}.v39-pending-item>div{display:grid;gap:2px;min-width:0;flex:1}.v39-pending-item strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v39-pending-item small{font-size:10px;color:#9a9185;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v39-pending-item .mini{flex:none}.v39-pending-group{display:flex;align-items:center;gap:7px;margin:10px 0 0;padding:0 2px;font-size:11px;color:#8a8175}.v39-pending-group:first-child{margin-top:0}.v39-pending-group span{font-size:10px;color:#b0a79b;background:#efe9dd;border-radius:8px;padding:1px 7px}
