
.trend-chart{margin:12px 0 16px;color:var(--primary);min-height:70px}.trend-chart svg{display:block;width:100%;height:64px;overflow:visible}.trend-chart circle,.trend-chart rect{fill:currentColor}.trend-labels{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.trend-chart+.record{border-top:1px solid var(--line)}
@charset "UTF-8";
:root{--bg:#f7f7fa;--surface:#fff;--ink:#292938;--muted:#898897;--sub:#626170;--line:#eeedf3;--primary:#7766b4;--primary-dark:#63519f;--lavender:#f0ecf8;--green:#4f917c;--green-bg:#edf6f1;--orange:#c18c4d;--orange-bg:#faf2e8;--blue:#5f88b5;--blue-bg:#edf3fa;--red:#b65e6d;--red-bg:#fbf0f1;--radius:18px;--shadow:0 8px 35px #30304d06}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--primary);text-decoration:none}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #b7a5e1;outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:29px;letter-spacing:-.7px;line-height:1.35;font-weight:650}h2{font-size:17px;font-weight:650}h3{font-size:15px;font-weight:600}small{font-size:12px}.icon-definitions{position:absolute;width:0;height:0;overflow:hidden}.icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;left:0;top:0;bottom:0;width:230px;background:#fdfdfe;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:34px 20px 20px;z-index:30}.brand{display:flex;gap:13px;align-items:center;padding:0 13px;color:var(--ink);font-size:23px;line-height:1.25;font-weight:630;letter-spacing:-.7px}.brand-mark{height:44px;width:44px;display:block;border-radius:14px;background:var(--primary);color:white;font:italic 39px/.98 Georgia,serif;padding-left:9px;position:relative}.brand-mark span{color:#efe3ac;font-size:40px;position:absolute;right:5px;bottom:0}.brand-sub{display:block;font-size:9px;letter-spacing:3.5px;font-weight:500;color:var(--muted);margin-top:6px}.side-label{font-size:10px;letter-spacing:1.4px;color:#aaa9b7;margin:50px 15px 16px}.nav-link{display:flex;align-items:center;gap:13px;height:47px;padding:0 16px;margin-bottom:7px;color:#777582;border-radius:11px;font-weight:500;transition:.16s}.nav-link:hover{background:#f5f2fa;color:var(--primary)}.nav-link.active{background:#eeeaf7;color:#7864b2;font-weight:600}.nav-link.active:after{content:"";width:5px;height:5px;background:var(--primary);margin-left:auto;border-radius:50%}.nav-link .icon{width:18px;height:18px}.nav-separator{height:1px;background:var(--line);margin:20px 14px}.sidebar-bottom{margin-top:auto;padding-top:50px}.local-status{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;padding:10px 13px 21px}.status-dot{width:6px;height:6px;border-radius:50%;background:#73a58d}.profile{display:flex;gap:11px;padding:18px 12px 0;border-top:1px solid var(--line);align-items:center}.avatar{width:36px;height:36px;border-radius:50%;background:#eee8f5;color:var(--primary);display:grid;place-items:center;font:17px Georgia,serif}.profile strong{font-size:13px;display:block;font-weight:600}.profile div>span{font-size:10px;color:var(--muted);display:block;margin-top:3px}.main{margin-left:230px;width:calc(100% - 230px);min-width:0}.topbar{height:82px;border-bottom:1px solid var(--line);background:#fbfbfdb3;display:flex;align-items:center;justify-content:space-between;padding:0 42px;gap:20px}.topbar-left{display:flex;gap:14px;align-items:center}.breadcrumb{font-size:12px;color:#a09eab}.breadcrumb span{padding:0 13px;color:#cfccd8}.breadcrumb b{font-weight:500;color:#6b6979}.topbar-actions{display:flex;align-items:center;gap:17px}.btn{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:9px;padding:8px 15px;background:#fff;border:1px solid #e6e4ed;color:var(--sub);font-size:12px;line-height:1.6;transition:background .15s,transform .15s;white-space:nowrap}.btn:hover{background:#f6f3fb}.btn:active{transform:translateY(1px)}.btn .icon{width:15px;height:15px}.btn-primary{background:var(--primary);color:white;border-color:var(--primary);box-shadow:0 3px 7px #7766b415}.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.btn-quiet{border-color:transparent;background:transparent;color:var(--muted);padding-left:8px;padding-right:8px;box-shadow:none}.btn-soft{background:var(--lavender);color:var(--primary);border-color:var(--lavender)}.btn-danger{color:var(--red);background:var(--red-bg);border-color:var(--red-bg)}.btn-sm{min-height:30px;padding:5px 10px;font-size:11px}.icon-btn{border:0;background:transparent;color:var(--muted);width:31px;height:31px;border-radius:8px;display:inline-grid;place-items:center}.icon-btn:hover{background:var(--lavender);color:var(--primary)}.icon-btn .icon{width:16px;height:16px}.mobile-menu{display:none}.content{max-width:1500px;margin:auto;padding:36px 42px 42px;min-height:calc(100vh - 145px)}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:22px;margin-bottom:27px}.eyebrow{font-size:10px;letter-spacing:1.8px;color:var(--primary);font-weight:600;margin-bottom:9px}.page-heading p{color:var(--muted);font-size:12px;margin-top:9px}.date-control{display:flex;align-items:center;gap:5px;background:#fff;border:1px solid var(--line);padding:5px 8px;border-radius:10px}.date-control input{padding:3px 1px;width:120px;border:0;font-size:12px;color:#626070;background:transparent;outline:none}.date-control .icon-btn{width:25px;height:25px}.date-control .prev{transform:rotate(180deg)}.date-control button.today-label{border:0;background:#f5f3fa;font-size:10px;color:var(--primary);border-radius:5px;padding:3px 7px;margin-left:3px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:24px}.stat-card{position:relative;border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);padding:20px 21px;box-shadow:var(--shadow);overflow:hidden}.stat-top{display:flex;justify-content:space-between;align-items:center;color:var(--sub);font-size:12px}.stat-icon{height:32px;width:32px;border-radius:10px;display:grid;place-items:center;color:var(--primary);background:var(--lavender)}.stat-card.green .stat-icon{background:var(--green-bg);color:var(--green)}.stat-card.orange .stat-icon{background:var(--orange-bg);color:var(--orange)}.stat-card.blue .stat-icon{background:var(--blue-bg);color:var(--blue)}.stat-number{font-size:29px;letter-spacing:-.6px;font-weight:600;line-height:1.35;margin:12px 0 5px;font-variant-numeric:tabular-nums}.stat-number .unit{font-size:11px;color:var(--muted);font-weight:400;letter-spacing:0;margin-left:6px}.stat-note{font-size:10px;color:#a2a0ad;white-space:normal}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(270px,1fr);gap:23px;align-items:start}.stack{display:grid;gap:23px;min-width:0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;overflow:hidden}.card-pad{padding:23px 24px}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.card-heading h2{display:flex;align-items:center;gap:9px}.card-heading small{color:var(--muted);font-size:11px}.text-link{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:11px;border:0;background:none;padding:3px 0}.text-link .icon{height:13px;width:13px}.text-link:hover{color:var(--primary)}.badge{font-size:10px;padding:3px 8px;border-radius:5px;display:inline-flex;align-items:center;gap:4px;background:#f4f3f6;color:var(--muted);white-space:nowrap}.badge.primary{color:var(--primary);background:var(--lavender)}.badge.green{color:var(--green);background:var(--green-bg)}.badge.orange{color:var(--orange);background:var(--orange-bg)}.badge.red{color:var(--red);background:var(--red-bg)}.badge.blue{color:var(--blue);background:var(--blue-bg)}.composer{background:linear-gradient(110deg,#fbf9ff,#fff);border-color:#e9e3f1}.composer .card-heading{margin-bottom:9px}.composer .card-heading h2{font-size:15px}.composer-hint{color:var(--muted);font-size:11px;margin:0 0 13px}.composer textarea{width:100%;height:83px;padding:13px 14px;border:1px solid #e8e1f0;background:#fff;border-radius:10px;resize:vertical;color:var(--ink);font-size:12px;line-height:1.9}.composer textarea::placeholder{color:#b1aabc}.composer-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.composer-footer>span{font-size:10px;color:#aaa3b7}.quick-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:15px}.quick-action{border:1px solid #eeebf2;color:#91889f;background:#fff;border-radius:7px;display:flex;gap:6px;align-items:center;padding:5px 10px;font-size:10px}.quick-action .icon{height:12px;width:12px}.quick-action:hover{border-color:#c5b5df;color:var(--primary)}.empty-state{padding:31px 18px;text-align:center;color:var(--muted)}.empty-icon{width:45px;height:45px;background:#f6f4fa;color:#b3a7cb;border-radius:14px;display:grid;place-items:center;margin:0 auto 11px}.empty-icon .icon{height:22px;width:22px}.empty-state h3{font-size:12px;font-weight:500;color:#7c758b;margin-bottom:5px}.empty-state p{font-size:11px;line-height:1.9;max-width:360px;margin:auto}.empty-state .btn{margin-top:14px}.empty-small{padding:22px 10px}.timeline{display:grid;gap:0}.record{display:flex;gap:13px;align-items:flex-start;padding:15px 0;border-bottom:1px solid #f3f1f6;position:relative}.record:last-child{border-bottom:0}.record-icon{width:34px;height:34px;border-radius:10px;background:var(--lavender);color:var(--primary);display:grid;place-items:center;flex-shrink:0}.record-icon.meal,.record-icon.expense{background:var(--orange-bg);color:var(--orange)}.record-icon.workout,.record-icon.body{background:var(--green-bg);color:var(--green)}.record-icon.event,.record-icon.income{background:var(--blue-bg);color:var(--blue)}.record-icon .icon{width:16px;height:16px}.record-content{min-width:0;flex:1}.record-title{font-size:12px;font-weight:500;overflow-wrap:anywhere}.record-meta{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-top:5px;font-size:10px;color:#a3a0ae}.record-note{color:var(--muted);font-size:11px;line-height:1.8;margin-top:5px;white-space:pre-wrap;overflow-wrap:anywhere}.record-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:42px}.record-value{font-size:13px;font-weight:550;color:#67606f;white-space:nowrap}.record-actions{display:flex;gap:0;opacity:.3;transition:opacity .15s}.record:hover .record-actions,.record:focus-within .record-actions{opacity:1}.record-actions .icon-btn{width:25px;height:25px}.record-actions .icon{height:13px;width:13px}.timeline-footer{text-align:center;margin-top:13px;padding-top:10px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.habit-row{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:10px;padding:12px 13px;margin-bottom:9px;background:#fff}.habit-row:last-child{margin-bottom:0}.habit-toggle{width:20px;height:20px;border-radius:6px;border:1.5px solid #ddd7e8;background:#fff;display:grid;place-items:center;flex-shrink:0;color:#fff}.habit-toggle[aria-checked=true]{background:var(--primary);border-color:var(--primary)}.habit-toggle .icon{width:13px;height:13px}.habit-label{font-size:12px;flex:1}.habit-row.done .habit-label{color:#9b94a8}.habit-row>small{color:#aea8b9;font-size:10px}.progress{height:5px;background:#f0ecf6;border-radius:5px;overflow:hidden}.progress>span{display:block;height:100%;background:#ac99d0;border-radius:5px;max-width:100%}.habit-progress{display:flex;justify-content:space-between;margin:15px 0 8px;color:var(--muted);font-size:10px}.agenda-item{display:flex;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}.agenda-item:last-child{border:0}.agenda-time{font-size:11px;color:var(--primary);font-weight:600;width:41px;flex-shrink:0;padding-top:2px}.agenda-body{border-left:2px solid #c3b2e1;padding-left:13px;flex:1;min-width:0}.agenda-body h3{font-size:12px;font-weight:500}.agenda-body p{font-size:10px;color:var(--muted);margin-top:5px;overflow-wrap:anywhere}.meal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.meal-tile{border:1px solid var(--line);border-radius:10px;padding:13px 6px;text-align:center;background:#fff;min-width:0}.meal-tile .meal-symbol{font-size:17px;line-height:1.3;margin:0 0 7px;color:#b5a5cb}.meal-tile h3{font-size:11px;font-weight:500;margin-bottom:5px}.meal-tile small{font-size:9px;color:#b0a9b7;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meal-tile.filled{background:#fcfaf6;border-color:#f0e7d8}.meal-tile.filled small{color:var(--orange)}.meal-tile.skipped{background:#f7f6f8}.meal-tile .text-link{font-size:9px;margin-top:6px;color:var(--primary)}.hint{font-size:10px;color:#aaa5b1;margin-top:13px;line-height:1.8}.notice{display:flex;gap:11px;align-items:flex-start;padding:13px 16px;border:1px solid #e9e1f2;border-radius:11px;background:#f8f5fc;color:#8a7a9f;font-size:11px;line-height:1.9;margin-bottom:20px}.notice .icon{width:16px;height:16px;margin-top:3px}.notice.warning{background:#fdf8f0;color:#a27d45;border-color:#f2e7d6}.notice.success{background:var(--green-bg);color:var(--green);border-color:#dbeade}.notice .btn{margin-left:auto;flex-shrink:0;align-self:center}.notice>div{flex:1}.section-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}.tabs{display:flex;gap:4px;background:#efedf4;padding:4px;border-radius:10px;width:max-content;max-width:100%;overflow:auto}.tab{border:0;background:transparent;padding:7px 14px;font-size:11px;color:#9b95a5;border-radius:7px;white-space:nowrap}.tab.active{background:white;color:var(--primary);box-shadow:0 2px 6px #41344f08}.filters{display:flex;gap:9px;flex-wrap:wrap}.filters input,.filters select{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 10px;color:var(--sub);font-size:11px;min-width:100px}.search-field{display:flex;align-items:center;gap:8px;background:#fff;padding:0 12px;border:1px solid var(--line);border-radius:8px}.search-field input{border:0;width:190px;min-width:0;padding:8px 0;outline:none}.search-field .icon{width:15px;color:var(--muted)}.records-panel .record{padding:16px 22px}.records-panel .record:first-child{padding-top:21px}.records-panel .record:last-child{padding-bottom:21px}.list-count{font-size:11px;color:var(--muted);margin:15px 2px}.task-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.task-card{padding:20px}.task-card-head{display:flex;gap:12px;align-items:flex-start}.task-card h3{font-size:13px}.task-card .task-detail{color:var(--muted);font-size:11px;line-height:1.9;margin-top:12px;white-space:pre-wrap;overflow-wrap:anywhere}.task-footer{margin-top:15px;display:flex;justify-content:space-between;gap:10px;align-items:center}.task-footer small{font-size:10px;color:var(--muted)}.task-stages{display:flex;gap:9px;flex-wrap:wrap;margin-top:12px}.task-stage{font-size:10px;color:#9e97a9;display:flex;gap:5px;align-items:center}.task-stage .icon{width:12px;height:12px;color:#9c8cbb}.course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.course-card{padding:21px;position:relative}.course-card .course-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.course-card .record-icon{height:37px;width:37px}.course-card h3{font-size:13px;margin-bottom:9px}.course-meta{font-size:11px;color:var(--muted);line-height:2}.course-footer{border-top:1px solid var(--line);margin-top:16px;padding-top:13px;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted)}.course-footer button{font-size:10px}.learning-goals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:23px}.goal-card{padding:19px}.goal-head{display:flex;align-items:center;gap:8px;color:var(--sub);font-size:12px;margin-bottom:12px}.goal-head .icon{width:16px;color:var(--primary)}.goal-number{font-size:24px;margin-bottom:12px;font-weight:550}.goal-number span{font-size:10px;color:var(--muted);font-weight:400;margin-left:5px}.calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-bottom:22px}.day-column{background:#fff;border:1px solid var(--line);border-radius:12px;min-height:170px;padding:11px 8px}.day-column.selected{border-color:#bfb0d8;box-shadow:0 0 0 1px #e6def0}.day-column-head{display:flex;flex-direction:column;align-items:center;gap:5px;margin-bottom:13px;cursor:pointer}.day-column-head small{font-size:10px;color:var(--muted)}.day-column-head strong{font-size:16px;font-weight:550}.day-event{padding:8px 7px;border-radius:6px;background:var(--lavender);color:var(--primary);font-size:10px;line-height:1.7;margin-bottom:6px;cursor:pointer;overflow-wrap:anywhere}.day-event.green{background:var(--green-bg);color:var(--green)}.day-event small{display:block;font-size:9px;opacity:.8}.day-empty{text-align:center;color:#ccc6d4;font-size:10px;padding:15px 0}.wellness-meals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:23px}.wellness-meal{padding:21px}.wellness-meal h3{display:flex;gap:8px;align-items:center;font-size:14px;margin-bottom:18px}.wellness-meal .food-name{font-size:12px;min-height:40px;color:var(--sub);line-height:1.9;overflow-wrap:anywhere}.wellness-meal .meal-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:18px;gap:8px}.wellness-meal .meal-bottom span{font-size:12px;color:var(--orange)}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:23px;margin-top:23px}.chart-wrap{display:flex;align-items:flex-end;gap:13px;height:165px;padding:12px 2px 0}.bar-slot{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;position:relative}.bar-fill{width:100%;max-width:34px;min-height:2px;background:#c3b5df;border-radius:6px 6px 3px 3px;transition:height .3s}.bar-fill.active{background:var(--primary)}.bar-fill.zero{background:#eeebf3;height:3px!important}.bar-label{margin-top:9px;font-size:9px;color:var(--muted)}.bar-value{font-size:9px;color:#a59ab4;margin-bottom:6px}.category-row{margin:17px 0}.category-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:11px;color:var(--sub)}.category-title strong{font-size:11px;font-weight:550}.category-row .progress{height:6px}.finance-table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}.finance-table th{font-size:10px;font-weight:500;color:#a5a0af;background:#fbfafc;padding:13px 20px;border-bottom:1px solid var(--line)}.finance-table td{padding:15px 20px;border-bottom:1px solid #f2f0f5;color:var(--sub)}.finance-table tr:last-child td{border-bottom:0}.finance-table .amount-cell{font-variant-numeric:tabular-nums;font-weight:550}.table-title{display:flex;align-items:center;gap:9px}.table-title .icon{height:15px;width:15px;color:var(--orange)}.table-scroll{overflow:auto}.budget-strip{display:flex;gap:25px;align-items:center;padding:20px 25px;margin-bottom:23px}.budget-strip>div{flex:1}.budget-strip p{font-size:11px;color:var(--muted);margin-top:3px}.budget-strip .progress{width:180px}.report-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.report-toolbar input{font-size:11px;color:var(--sub);padding:7px;border:1px solid var(--line);border-radius:7px;background:white}.report-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:23px;align-items:start}.report-paper{padding:30px 34px;position:relative}.report-paper:before{content:"";height:4px;position:absolute;top:0;left:34px;right:34px;background:#c4b5df;border-radius:0 0 4px 4px}.report-paper h1{font-size:23px;margin:0 0 12px}.report-paper h2{font-size:15px;margin:24px 0 10px;padding-bottom:9px;border-bottom:1px solid var(--line)}.report-paper h3{font-size:13px;margin:18px 0 8px}.report-paper p{font-size:12px;color:var(--sub);line-height:2;margin:9px 0;white-space:pre-wrap}.report-paper ul{padding-left:19px;color:var(--sub);font-size:12px;line-height:2;margin:10px 0}.report-paper strong{color:var(--ink);font-weight:550}.report-paper blockquote{border-left:3px solid #d9cee9;padding-left:14px;color:var(--muted);margin:14px 0;font-size:11px}.report-note{font-size:10px;color:var(--muted);line-height:1.9}.report-section{margin-top:20px}.report-section h3{font-size:12px;margin-bottom:12px}.preview-list{margin-top:20px;display:grid;gap:12px}.preview-card{background:white;border:1px solid #e5ddef;border-radius:12px;padding:17px 19px}.preview-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.preview-head strong{font-size:12px}.preview-fields{display:grid;grid-template-columns:1.2fr 2fr 1.2fr;gap:10px}.preview-fields label{display:grid;gap:5px;font-size:10px;color:var(--muted)}.preview-fields input,.preview-fields select{width:100%;min-width:0;padding:7px 9px;border:1px solid var(--line);border-radius:7px;color:var(--sub);background:white;font-size:11px}.preview-fields .span-2{grid-column:span 2}.preview-footer{display:flex;justify-content:flex-end;margin-top:17px;gap:10px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:23px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.field{display:grid;gap:6px;align-content:start;font-size:11px;color:var(--sub)}.field.full{grid-column:1 / -1}.field input,.field select,.field textarea{padding:10px 12px;background:#fff;border:1px solid #e4e0ec;border-radius:8px;color:var(--ink);width:100%;min-width:0;font-size:12px;line-height:1.65}.field textarea{resize:vertical;min-height:92px}.field small{font-size:10px;color:var(--muted);line-height:1.7}.form-grid+.dialog-actions{margin-top:25px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 0;border-bottom:1px solid var(--line)}.setting-row:last-child{border:0;padding-bottom:0}.setting-row h3{font-size:12px;margin-bottom:4px}.setting-row p{font-size:10px;color:var(--muted);max-width:320px}.settings-section{margin-top:22px}.settings-section h3{font-size:12px;margin-bottom:13px}.settings-help{margin-top:17px;font-size:11px;color:var(--muted);line-height:1.9}.trash-item{display:flex;justify-content:space-between;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding:12px 0;font-size:11px;color:var(--sub)}.trash-item small{display:block;color:var(--muted);font-size:9px}.source-link{font-size:10px;color:#aa9abe}.entry-dialog{border:1px solid var(--line);border-radius:18px;padding:26px 30px 24px;width:560px;max-width:calc(100vw - 24px);max-height:90vh;box-shadow:0 18px 100px #30234430;color:var(--ink)}dialog::backdrop{background:#25203050;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:22px}.dialog-head h2{font-size:19px}.dialog-head p{font-size:11px;color:var(--muted);margin-top:5px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:23px}.dialog-actions .spacer{margin-right:auto}.dialog-error{font-size:11px;padding:10px;color:var(--red);background:var(--red-bg);border-radius:8px;margin-top:15px}.confirm-dialog{padding:26px;border:0;border-radius:16px;width:420px;max-width:calc(100vw - 28px);color:var(--ink)}.confirm-dialog .dialog-head{margin-bottom:10px}.confirm-dialog>p{font-size:12px;line-height:1.9;color:var(--sub);white-space:pre-wrap}.toast{position:fixed;bottom:28px;left:calc(50% + 110px);transform:translateX(-50%);padding:13px 19px;background:#3b354a;color:#fff;border-radius:11px;z-index:200;box-shadow:0 6px 30px #25203025;max-width:calc(100vw - 35px);font-size:12px;display:flex;align-items:center;gap:17px}.toast[hidden]{display:none}.toast.error{background:#9a5260}.toast button{background:none;border:0;color:#d7c4ff;font-size:11px;white-space:nowrap}.loading{padding:100px 20px;text-align:center;color:var(--muted);font-size:13px}.loading-dot{display:inline-block;width:8px;height:8px;background:var(--primary);border-radius:50%;margin-right:9px;animation:pulse 1s infinite alternate}@keyframes pulse{to{opacity:.3}}.app-footer{max-width:1500px;margin:auto;padding:20px 42px 27px;display:flex;gap:15px;color:#b3adbf;font-size:10px}.app-footer span:first-child{color:#9f94ae}.app-footer .version{margin-left:auto}.week-buttons{display:flex;align-items:center;gap:7px}.blank-inline{padding:15px 0;color:#a8a0b5;font-size:11px}.span-all{grid-column:1/-1}.print-only{display:none}.source-disclaimer{font-size:10px;color:var(--muted);margin-bottom:16px;line-height:1.9}.stages-editor{display:grid;gap:8px}.stage-edit-row{display:flex;align-items:center;gap:8px}.stage-edit-row input[type=checkbox]{width:15px;height:15px;accent-color:var(--primary)}.stage-edit-row input[type=text]{flex:1}.report-paper pre{white-space:pre-wrap;font:12px/2 inherit;color:var(--sub)}
@media(min-width:1550px){.content{padding-top:45px}.stat-card{padding:23px 25px}.dashboard-grid{gap:26px}.stack{gap:26px}.card-pad{padding:25px 27px}}
@media(max-width:1200px){.sidebar{width:205px;padding:28px 14px 17px}.main{margin-left:205px;width:calc(100% - 205px)}.content{padding:28px}.topbar{padding:0 28px}.app-footer{padding-left:28px;padding-right:28px}.stats-grid{gap:12px}.stat-card{padding:17px}.dashboard-grid{grid-template-columns:minmax(0,1.4fr) minmax(250px,1fr);gap:18px}.card-pad{padding:20px}.stack{gap:18px}.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wellness-meals{gap:12px}.wellness-meal{padding:16px}.report-layout{grid-template-columns:minmax(0,1.5fr) minmax(230px,1fr)}.toast{left:calc(50% + 100px)}}
@media(max-width:1000px){.sidebar{width:185px;padding-left:10px;padding-right:10px}.brand{font-size:21px;gap:10px}.brand-mark{width:38px;height:38px;font-size:34px;padding-left:7px}.main{margin-left:185px;width:calc(100% - 185px)}.nav-link{font-size:12px;gap:11px}.content{padding:25px 22px}.topbar{padding:0 22px}.dashboard-grid{grid-template-columns:1fr}.stack-secondary{display:grid;grid-template-columns:1fr 1fr;align-items:start}.stack-secondary>.card:last-child{grid-column:1/-1}.stat-number{font-size:25px}.page-heading{align-items:flex-start}.page-heading h1{font-size:25px}.course-grid{grid-template-columns:1fr 1fr}.wellness-meals{grid-template-columns:1fr 1fr}.settings-grid,.report-layout{grid-template-columns:1fr}.report-aside{display:grid;grid-template-columns:1fr 1fr;gap:18px}.two-columns{gap:18px}.calendar-week{gap:5px}.day-column{padding:8px 5px}.day-event{font-size:9px}.learning-goals{gap:10px}.goal-card{padding:14px}.toast{left:calc(50% + 90px)}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);width:230px;transition:transform .2s}.sidebar.open{transform:translateX(0)}.sidebar-overlay:not([hidden]){display:block;position:fixed;inset:0;background:#29223645;backdrop-filter:blur(2px);border:0;z-index:25}.main{margin:0;width:100%}.mobile-menu{display:inline-grid}.topbar{height:66px;padding:0 18px}.topbar-actions{gap:6px}.topbar-actions .btn-quiet span{display:none}.breadcrumb{font-size:10px}.breadcrumb span{padding:0 8px}.btn-primary{font-size:11px}.content{padding:25px 18px}.page-heading{flex-direction:column;gap:16px;margin-bottom:20px}.page-heading h1{font-size:27px}.page-heading p{font-size:11px}.date-control{align-self:flex-start}.stats-grid{grid-template-columns:1fr 1fr;gap:11px;margin-bottom:18px}.stat-card{padding:15px 17px;border-radius:13px}.stat-top{font-size:11px}.stat-icon{width:27px;height:27px;border-radius:8px}.stat-icon .icon{height:15px;width:15px}.stat-number{font-size:26px;margin:8px 0 3px}.stat-note{font-size:9px}.card{border-radius:14px}.card-pad{padding:19px}.dashboard-grid,.stack{gap:18px}.stack-secondary{grid-template-columns:1fr}.stack-secondary>.card:last-child{grid-column:auto}.composer textarea{height:100px}.composer-footer>span{max-width:140px;font-size:9px}.quick-actions{gap:6px}.quick-action{font-size:9px;padding:5px 8px}.task-grid{grid-template-columns:1fr}.course-grid{grid-template-columns:1fr 1fr;gap:12px}.course-card{padding:17px}.course-card h3{font-size:12px}.two-columns{grid-template-columns:1fr}.learning-goals{grid-template-columns:1fr 1fr}.calendar-week{display:flex;overflow:auto;padding-bottom:9px;scroll-snap-type:x mandatory}.day-column{min-width:110px;scroll-snap-align:start}.filters{width:100%}.filters .search-field{flex:1}.filters input{width:100%}.section-toolbar{gap:15px}.wellness-meal{padding:17px}.report-toolbar{gap:6px}.report-toolbar input{width:120px}.report-aside{grid-template-columns:1fr}.report-paper{padding:24px 22px}.report-paper h1{font-size:20px}.report-paper:before{left:22px;right:22px}.settings-grid{gap:18px}.setting-row{gap:15px}.preview-fields{grid-template-columns:1fr 1fr}.preview-fields .span-2{grid-column:1 / -1}.preview-head{gap:10px}.preview-head strong{font-size:11px}.toast{left:50%;bottom:20px;min-width:230px}.record-actions{opacity:.7}.app-footer{padding:15px 20px 25px;font-size:9px;gap:10px}.record-note{font-size:10px}.record{gap:10px}.record-title{font-size:11px}.record-meta{gap:5px}.record-value{font-size:12px}.finance-table th,.finance-table td{padding:12px 14px;white-space:nowrap}.budget-strip{gap:15px;padding:17px;flex-wrap:wrap}.budget-strip .progress{width:100%}.budget-strip .budget-progress{width:100%;flex-basis:100%}.entry-dialog{padding:22px 20px}.dialog-head h2{font-size:17px}.settings-help{font-size:10px}.notice{font-size:10px;padding:12px}.notice .btn{white-space:normal;padding:7px 9px;font-size:10px}.tabs{width:100%}.tab{flex:1;padding:7px 10px}.record-side{max-width:85px}.course-footer{gap:8px}.page-heading .report-toolbar{width:100%}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media print{body{background:white;font-size:12px}.sidebar,.topbar,.app-footer,.section-toolbar,.page-heading,.stats-grid,.report-aside,.toast,.notice,.no-print{display:none!important}.main{margin:0;width:100%}.content{padding:0;max-width:none}.report-layout{display:block}.report-paper{border:0;box-shadow:none;padding:10px 20px}.report-paper:before{display:none}.report-paper h2{break-after:avoid}.report-paper p,.report-paper li{break-inside:avoid}.print-only{display:block}dialog{display:none!important}}
/* Durable timer, allowance and image-led health views. */
.timer-panel,.allowance-panel{overflow:hidden}.timer-clock{font-size:clamp(2.5rem,6vw,4.5rem);font-variant-numeric:tabular-nums;letter-spacing:.06em;margin:18px 0;color:var(--ink);font-weight:600}.active-timer{text-align:center;padding:20px 0}.active-timer h3{margin:16px 0}.timer-actions{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-top:18px}.active-timer .timer-actions{justify-content:center}.timer-actions .hint{margin:0;max-width:70%}.timer-history{margin-top:24px;border-top:1px solid var(--line);padding-top:16px}.timer-history summary{cursor:pointer;color:var(--muted)}.allowance-main{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:12px 0 22px}.allowance-main span{display:block;color:var(--muted);font-size:13px}.allowance-main strong{display:block;font-variant-numeric:tabular-nums;font-size:clamp(1.5rem,3vw,2.2rem);margin-top:8px}.negative{color:#b05766!important}.allowance-detail{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-bottom:12px}.focus-analytics{margin-top:24px}.focus-chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}.donut-layout{display:flex;align-items:center;gap:20px;margin-top:18px}.focus-donut{width:140px;height:140px;flex:0 0 140px;border-radius:50%;display:grid;place-items:center}.focus-donut span{width:92px;height:92px;background:var(--surface,#fff);border-radius:50%;display:grid;place-items:center;color:var(--muted);font-size:12px}.chart-legend{list-style:none;padding:0;margin:0;font-size:12px;width:100%}.chart-legend li{display:flex;gap:6px;align-items:center;padding:5px 0;flex-wrap:wrap}.chart-legend i{width:9px;height:9px;border-radius:50%;flex-shrink:0}.chart-legend b{font-weight:500;margin-left:auto}.focus-bars{display:flex;gap:4px;align-items:flex-end;height:150px;margin-top:16px;overflow:auto}.focus-bar-column{display:flex;flex:1;min-width:10px;align-items:center;flex-direction:column;justify-content:flex-end;font-size:9px;height:100%}.focus-bar-column b{font-size:9px;font-weight:400;color:var(--muted)}.focus-bar-column span{display:block;background:#a895cf;width:75%;max-width:30px;border-radius:4px 4px 0 0;min-height:0;margin:5px 0}.focus-bar-column small{font-size:9px;color:var(--muted)}.focus-heatmap{display:grid;grid-template-rows:repeat(7,1fr);grid-auto-flow:column;grid-template-columns:repeat(12,1fr);gap:5px;max-width:640px;margin-top:16px}.focus-heatmap button{aspect-ratio:1;max-height:25px;border:0;border-radius:4px;cursor:pointer;background:color-mix(in srgb,#9682be calc(var(--heat)*100%),#f0edf4)}.visual-health-gallery{margin:24px 0}.visual-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:14px;margin-top:18px}.visual-card{display:block;background:var(--surface,#fff);border:1px solid var(--line);border-radius:14px;padding:0;overflow:hidden;text-align:left;color:inherit;cursor:pointer;transition:transform .15s,border-color .15s}.visual-card:hover{transform:translateY(-2px);border-color:#9d8fb6}.visual-card:focus-visible{outline:3px solid #b5a2d4;outline-offset:3px}.visual-card img{display:block;width:100%;height:135px;object-fit:contain;background:#f5f4f2}.visual-card.food-visual img{object-fit:cover}.visual-card strong{display:block;padding:12px 12px 4px;font-size:14px}.visual-card small{display:block;padding:0 12px 12px;font-size:11px;color:var(--muted)}.body-map-layout{display:grid;grid-template-columns:160px 1fr;gap:24px}.body-map{max-width:160px;width:100%;height:260px}.body-map [data-action]{cursor:pointer;transition:fill .2s}.body-map [data-action]:hover{fill:#d39bb7}.muscle-chips{display:flex;gap:8px;flex-wrap:wrap;align-content:center}.exercise-frames{display:grid;grid-template-columns:1fr 1fr;gap:12px}.exercise-frames img{width:100%;height:220px;object-fit:contain;background:#f5f4f2;border-radius:12px}.exercise-frames figcaption{font-size:12px;text-align:center;color:var(--muted)}.exercise-frames figure{margin:0}.visual-detail-food{width:100%;height:180px;object-fit:cover;border-radius:12px;margin-bottom:18px}
@media(max-width:760px){.focus-chart-grid{grid-template-columns:1fr}.timer-actions{flex-wrap:wrap}.timer-actions .hint{max-width:100%}.body-map-layout{grid-template-columns:120px 1fr;gap:12px}.body-map{height:230px}.visual-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.visual-card img{height:130px}.exercise-frames img{height:170px}.allowance-main{gap:10px}.donut-layout{flex-wrap:wrap}.focus-analytics .section-toolbar{flex-wrap:wrap}}

.wellness-tabs{display:flex;gap:12px;margin:0 0 22px}.nutrition-visual-summary{display:grid;grid-template-columns:190px 1fr;gap:35px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}.calorie-ring{width:185px;height:185px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#b49bca var(--nutrition-progress),#eee8f1 0)}.calorie-ring>div{width:151px;height:151px;border-radius:50%;background:white;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px}.calorie-ring strong{font-size:31px;font-weight:600}.calorie-ring span,.calorie-ring small{font-size:11px;color:var(--muted)}.macro-progress-list{display:grid;gap:17px}.macro-progress-label{display:flex;justify-content:space-between;gap:8px;margin-bottom:8px;font-size:12px}.macro-progress-label span{color:var(--muted)}.macro-progress-list .progress{height:8px}.macro-progress-list>div:nth-child(1) .progress span{background:#8eb5a5}.macro-progress-list>div:nth-child(2) .progress span{background:#d7ba84}.macro-progress-list>div:nth-child(3) .progress span{background:#be9ba9}@media(max-width:760px){.nutrition-visual-summary{grid-template-columns:1fr;gap:20px}.calorie-ring{justify-self:center}.macro-progress-label{flex-wrap:wrap}.wellness-tabs .btn{flex:1}}
.timer-history-pages{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:16px;font-size:12px;color:var(--muted)}.heatmap-labelled{display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-rows:auto 1fr;gap:6px;max-width:680px;margin-top:16px}.heatmap-corner{font-size:9px;color:var(--muted);align-self:end}.heatmap-weeks{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:5px;font-size:8px;color:var(--muted);text-align:center}.heatmap-weekdays{display:grid;grid-template-rows:repeat(7,1fr);gap:5px;font-size:9px;color:var(--muted)}.heatmap-weekdays span{display:flex;align-items:center}.heatmap-labelled .focus-heatmap{margin:0;max-width:none}.heatmap-future{aspect-ratio:1;max-height:25px;border-radius:4px;border:1px dashed var(--line);opacity:.4}.heatmap-legend{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--muted);margin:12px 0 0 38px}.heatmap-legend i{width:12px;height:12px;border-radius:3px;background:color-mix(in srgb,#9682be calc(var(--heat)*100%),#f0edf4)}.heatmap-legend small{margin-left:8px}.session-exercise-visual{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--muted)}.session-exercise-visual img{width:76px;height:60px;object-fit:contain;background:#f5f4f2;border-radius:8px}.session-set{border:1px solid var(--line);border-radius:12px;padding:14px;margin-top:12px}#session-sets{min-width:0;width:100%}.training-save-notice{font-size:12px;padding:12px;margin:0 0 16px}.photo-source-item{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:10px;font-size:12px}.photo-source-item summary{cursor:pointer;color:var(--sub)}.photo-credit{font-size:12px;line-height:1.8;padding-top:12px;overflow-wrap:anywhere}.photo-credit dl{display:grid;grid-template-columns:90px 1fr;gap:7px;margin:10px 0}.photo-credit dt{color:var(--muted)}.photo-credit dd{margin:0}.photo-credit a{color:var(--primary)}@media(max-width:760px){.heatmap-weeks{font-size:7px;gap:3px}.heatmap-labelled{grid-template-columns:30px minmax(0,1fr);gap:4px}.heatmap-labelled .focus-heatmap{gap:3px}.heatmap-legend{margin-left:30px;flex-wrap:wrap}.photo-credit dl{grid-template-columns:1fr;gap:3px}.timer-history-pages{flex-wrap:wrap}.session-set{padding:10px}}
.classroom-dialog{width:min(1180px,96vw);max-width:1180px}.classroom-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:24px}.classroom-lessons{border-right:1px solid var(--line);padding-right:20px}.classroom-lessons form{display:grid;gap:10px}.lesson-list{margin-top:20px;display:grid;gap:8px}.lesson-item{display:grid;gap:6px;text-align:left;padding:14px;border:1px solid var(--line);background:var(--surface,#fff);border-radius:12px;color:inherit;cursor:pointer}.lesson-item.active{border-color:var(--primary,#7866b7);background:#f3effb}.lesson-item small{color:var(--muted)}.classroom-material{margin:16px 0;padding:16px;border:1px solid var(--line);border-radius:14px}.classroom-material audio{width:100%;margin:10px 0}.classroom-preview{max-height:200px;max-width:100%;object-fit:contain;border-radius:8px}.classroom-notes textarea{width:100%;box-sizing:border-box;padding:14px;line-height:1.7;border:1px solid var(--line);border-radius:12px;font:inherit}.note-version{padding:14px 0;border-top:1px solid var(--line)}.note-version small{display:block;color:var(--muted)}.note-version pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:12px;max-height:220px;overflow:auto}.gym-frame{width:100%;height:82vh;border:0;background:#000;border-radius:14px}.gym-integration-notice{margin:12px 0;display:flex;gap:12px;align-items:center;flex-wrap:wrap}@media(max-width:720px){.classroom-layout{grid-template-columns:1fr}.classroom-lessons{border-right:0;border-bottom:1px solid var(--line);padding-right:0;padding-bottom:15px}.lesson-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:180px;overflow:auto}.classroom-dialog{padding:18px}.gym-frame{height:78vh}}
.classroom-note-preview{padding:20px;border:1px solid var(--line);border-radius:12px;line-height:1.8;overflow-wrap:anywhere}.classroom-note-preview h1{font-size:22px}.classroom-note-preview h2{font-size:18px}.classroom-note-preview h3{font-size:16px}.classroom-note-preview p{margin:10px 0}.classroom-material:target{outline:2px solid var(--primary)}
/* Phone layout: dynamic viewport and safe areas; no private response caching. */
html{scroll-padding-top:88px}body{padding-bottom:env(safe-area-inset-bottom)}img,video{max-width:100%}.main,.content,.card,.classroom-layout>*,.setting-row>div{min-width:0}.classroom-material img{image-orientation:from-image}.classroom-capture{margin:14px 0;display:flex;gap:10px;flex-wrap:wrap}.classroom-capture .btn{min-height:44px}.recording-live{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff0f2;color:#9c344a;border:1px solid #edbdc8;border-radius:12px;padding:12px;margin:12px 0}.recording-live[hidden]{display:none}.recording-live .btn{margin-left:auto;background:white}.recording-live span{font-variant-numeric:tabular-nums;font-size:20px}.classroom-notes .card-heading{flex-wrap:wrap;gap:12px}.classroom-material .record-title label{overflow-wrap:anywhere}.login-page{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-card{width:min(430px,100%);padding:32px}.login-card h1{font-size:26px}.login-card form{display:grid;gap:18px;margin-top:24px}#obsidian-pair-form{display:grid;gap:14px;margin:20px 0}#obsidian-new-token{display:grid;gap:12px;margin:18px 0}#obsidian-new-token[hidden]{display:none}#obsidian-devices{margin-top:22px}#obsidian-token{font-family:ui-monospace,monospace}.menu-open{overflow:hidden}
@media(max-width:760px){
 .topbar{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));padding-top:env(safe-area-inset-top);height:calc(66px + env(safe-area-inset-top))}.content{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}.sidebar{padding-top:max(26px,env(safe-area-inset-top));padding-bottom:max(18px,env(safe-area-inset-bottom));height:100dvh;overflow-y:auto}.sidebar-bottom{position:static;margin-top:auto}.sidebar .nav-link{min-height:48px;font-size:14px}.btn,.icon-btn,.tab,.text-link,.quick-action,.habit-toggle,.today-label{min-height:44px;touch-action:manipulation}.icon-btn,.habit-toggle{min-width:44px}.btn,.tab,.text-link{font-size:13px}.field input,.field textarea,.field select,.filters input,.filters select,.preview-fields input,.preview-fields select,.composer textarea,.search-field input,.report-toolbar input,#lesson-note{font-size:16px}.field{font-size:13px}.field small,.hint,.settings-help{font-size:12px;line-height:1.75}.form-grid,.preview-fields{grid-template-columns:minmax(0,1fr)}.preview-fields .span-2{grid-column:auto}.dialog-actions{flex-wrap:wrap;gap:8px}.dialog-actions .btn{flex:1}.entry-dialog,.confirm-dialog{max-width:calc(100vw - 16px);max-height:calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:20px 16px}.entry-dialog::backdrop{backdrop-filter:none}.classroom-dialog{width:calc(100vw - 16px);max-width:calc(100vw - 16px)}.classroom-lessons h3{margin-bottom:12px}.classroom-lessons .lesson-list{grid-template-columns:minmax(0,1fr);max-height:200px}.lesson-item{min-height:62px}.classroom-capture{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.classroom-capture .btn{white-space:normal;font-size:14px;padding:12px 8px}.classroom-material{padding:12px}.classroom-material .quick-actions .btn{flex:1;white-space:normal}.classroom-note-preview{padding:14px}.classroom-notes .card-heading .btn{width:100%}.gym-frame{height:calc(100dvh - 150px);min-height:440px;border-radius:10px}.gym-integration-notice .btn{flex:1;white-space:normal}.finance-table{min-width:560px}.table-scroll{max-width:100%;overscroll-behavior-x:contain}.setting-row{align-items:flex-start;flex-wrap:wrap;gap:12px}.setting-row .quick-actions{width:100%}.setting-row>div:first-child{flex:1 1 180px}.setting-row p{max-width:none;font-size:12px}.setting-row h3{font-size:14px}.record-title{font-size:14px}.record-meta,.record-note{font-size:11px}.record-actions{opacity:1}.record-actions .icon-btn{min-width:36px}.card-heading{gap:10px;flex-wrap:wrap}.notice .btn{min-height:44px}.toast{bottom:calc(16px + env(safe-area-inset-bottom))}.date-control input{font-size:16px}.date-control{max-width:100%}.date-control .icon-btn{min-width:38px}.timer-actions .btn{flex:1}.app-footer{flex-wrap:wrap}
}
@media(max-width:480px){
 .breadcrumb{font-size:12px}.breadcrumb>span{padding:0 5px}.topbar-left{gap:4px}.topbar-actions .btn{padding:8px 10px}.topbar-actions .btn-quiet{min-width:36px;padding:7px}.content{padding-top:22px}.page-heading h1{font-size:25px}.page-heading p{font-size:13px}.eyebrow{font-size:10px;letter-spacing:2px}.course-grid,.wellness-meals{grid-template-columns:1fr}.course-card h3{font-size:16px}.course-meta,.course-footer{font-size:13px}.course-card .quick-actions .btn{flex:1;white-space:normal}.stats-grid{gap:8px}.stat-card{padding:14px 12px}.stat-top{font-size:12px}.stat-number{font-size:25px}.stat-note{font-size:11px}.card-pad{padding:16px}.composer-footer{flex-wrap:wrap;gap:14px}.composer-footer>span{max-width:none;font-size:12px}.composer-footer .btn{width:100%}.quick-action{font-size:12px}.record{gap:8px}.record-icon{width:32px;height:32px}.record-side{max-width:80px}.record-actions{display:flex;gap:0}.record-actions .icon-btn{min-width:34px;padding:5px}.learning-goals{gap:8px}.goal-card{padding:12px}.body-map-layout{grid-template-columns:1fr}.body-map{justify-self:center}.exercise-frames{grid-template-columns:1fr}.wellness-tabs{gap:8px}.wellness-tabs .btn{padding:9px 8px}.report-toolbar input{width:auto;min-width:0;max-width:100%}.app-footer .version{margin-left:0}.login-card{padding:24px 20px}
}

.gym-frame[hidden]{display:none}

/* Mac local workflow: interactive summary and customizable study cards. */
.stat-link{font:inherit;text-align:left;color:inherit;cursor:pointer;width:100%}.stat-link:hover{border-color:var(--primary);transform:translateY(-2px)}.stat-link:focus-visible{outline:3px solid var(--primary);outline-offset:3px}.goal-head span{flex:1}.goal-head .icon-btn{margin-left:auto}.allowance-chart{margin-top:24px;padding-top:22px;border-top:1px solid var(--line)}.allowance-chart h3{font-size:15px}.inbox-composer{max-width:1100px}.inbox-composer .composer{width:100%}

/* Interactive daily spending columns and read-only date drilldown. */
.spending-day-bar{border:0;background:transparent;padding:0 2px;color:inherit;font:inherit;border-radius:8px;touch-action:manipulation}.spending-day-bar:hover{background:var(--primary-soft,#f1edf8)}.spending-day-bar:focus-visible{outline:3px solid var(--primary);outline-offset:3px}.spending-day-bar .bar-fill{display:block;flex-shrink:0}.spending-day-summary{padding:16px 0 22px;border-bottom:1px solid var(--line)}.spending-day-summary>span{display:block;color:var(--muted);font-size:13px}.spending-day-summary>strong{display:block;font-size:30px;font-variant-numeric:tabular-nums;margin:6px 0}.spending-day-dialog .record-title,.spending-day-dialog .record-note{overflow-wrap:anywhere}.spending-day-dialog .record-side{flex-shrink:0}.spending-day-dialog .dialog-actions{margin-top:20px}

/* AI生活助手：独立布局，不覆盖课程、记账或录音的选择器。 */
.assistant-space{max-width:1000px;margin-inline:auto}.assistant-toolbar{display:flex;align-items:end;justify-content:space-between;gap:16px}.assistant-toolbar label{display:grid;gap:8px;flex:1;max-width:650px;color:var(--muted,#777489);font-size:14px}.assistant-toolbar select{width:100%;min-width:0}.assistant-conversation{display:flex;flex-direction:column;gap:20px;max-height:57vh;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:18px 2px}.assistant-welcome{padding:30px 15px;text-align:center;color:var(--muted,#777489)}.assistant-welcome>span{font-size:32px;color:var(--primary,#7a65b4)}.assistant-welcome h2{font-size:22px;color:var(--text,#2c293b)}.assistant-welcome p{line-height:1.8;max-width:600px;margin-inline:auto}.assistant-message{max-width:94%;min-width:0;padding:16px 18px;border-radius:18px;background:#f6f4fa;border:1px solid #ebe6f2}.assistant-message-user{align-self:flex-end;background:#eee8f8}.assistant-message-label{font-size:12px;color:var(--muted,#777489);margin-bottom:8px}.assistant-message-text,.assistant-note-preview{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}.assistant-proposal{margin-top:16px;border:1px solid #d9ccee;border-radius:14px;background:#fff;padding:15px}.assistant-proposal-heading{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;color:var(--primary,#7a65b4)}.assistant-proposal-heading span{font-size:12px;color:var(--muted,#777489)}.assistant-draft-record{padding:16px 0;border-bottom:1px solid #eee9f5;overflow-wrap:anywhere}.assistant-draft-record>strong{display:block;margin:7px 0}.assistant-draft-record p{line-height:1.7;white-space:pre-wrap}.assistant-note-preview{max-height:340px;overflow:auto;font-size:14px}.assistant-proposal-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.assistant-saved{margin-top:15px;color:#367e63}.assistant-sources{margin-top:12px;font-size:14px}.assistant-sources summary{cursor:pointer;color:var(--primary,#7a65b4)}.assistant-source{padding:12px 0;border-bottom:1px solid #e8e2ef}.assistant-source>span{display:block;color:var(--muted,#777489);font-size:12px;margin-top:5px}.assistant-source p{white-space:pre-wrap;overflow-wrap:anywhere}.assistant-status{min-height:28px;font-size:14px;line-height:1.8;color:var(--primary,#7a65b4);margin:8px 0}.assistant-space textarea{width:100%;min-height:110px;resize:vertical;font-size:16px}.assistant-compose-actions{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px}.assistant-voice-actions{display:flex;gap:8px;flex-wrap:wrap}.assistant-audio-upload{cursor:pointer;position:relative;overflow:hidden}.assistant-audio-upload input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.assistant-audio-upload:has(input:disabled){opacity:.5;cursor:not-allowed}.assistant-recording{color:#b33254;border-color:#de8fa3;background:#fff1f4}.assistant-space .hint{font-size:12px;line-height:1.8;overflow-wrap:anywhere}.assistant-space .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:600px){.assistant-space{padding:18px 14px}.assistant-toolbar{gap:8px}.assistant-toolbar select{font-size:14px}.assistant-toolbar>.btn{flex-shrink:0}.assistant-message{max-width:100%;padding:13px}.assistant-conversation{max-height:52vh;gap:14px}.assistant-proposal{padding:12px}.assistant-compose-actions>.btn-primary{width:100%}.assistant-voice-actions{width:100%}.assistant-voice-actions>.btn{flex:1;justify-content:center}.assistant-proposal-actions>.btn{width:100%;justify-content:center}}
