/* Final semantic type layer. Keep spacing independent of type size and let text wrap.
   This bridges legacy screen selectors to the shared responsive-system tokens. */
body{font-size:var(--type-body)}
.app .today-lists .section-head h2{font-size:18px;line-height:1.35}
.app .today-lists .section-head small{font-size:12px}
.app .sheet .button{font-size:14px}
.app .task-notes .check-add{font-size:14px;min-height:44px}
.app .task-notes :is(h3,.check-heading){font-size:16px}
.app .task-notes :is(label,.check-count){font-size:13px}
.app .task-actions [role=menuitem]{font-size:14px;min-height:44px}
.view,.sheet,.crew-page{min-width:0;overflow-wrap:anywhere}
.view :is(input,textarea,select),.sheet :is(input,textarea,select),.email-auth input{font-size:var(--type-input)}
.view :is(input,textarea,select),.sheet :is(input,textarea,select){max-width:100%;box-sizing:border-box}
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select{min-height:44px}
textarea{line-height:1.5}
.button,.head-action,.report-edit,.email-auth-submit,.crew-primary,.crew-secondary{font-size:var(--type-label);line-height:1.4;white-space:normal}
.field-label,.email-auth label,.email-auth .auth-remember,.auth-error{font-size:13px;line-height:1.45}
.email-auth .auth-remember{min-height:44px}
.auth-error{color:#a62c20}
.task-title,.project-row-copy strong,.record-entry-copy strong{font-size:var(--type-card);line-height:1.45}
.task-meta,.project-row-copy span{font-size:13px;line-height:1.45}
.task-meta{flex-wrap:wrap}
.quick-property input,.quick-property select,.sheet-input,.project-period input,.review-date input,.history-plan-fields input,.history-plan-fields textarea{font-size:var(--type-input)}
.quick-options{flex-wrap:wrap}
.quick-property{min-width:0;max-width:100%}
.quick-property select{width:auto;max-width:100%}
.quick-property.quick-important,.quick-toggle,.quiet-report,.deadline-sort,.check-add{font-size:13px}
.quick-toggle,.quick-property.quick-important,.check-add,.record-filters button{min-height:44px}
.task-check-preview label,.check-row input{font-size:14px;line-height:1.45}
.today-overview-toggle strong,.today-overview-feed strong,.today-week-card li p,.today-support-head strong,.today-main>.suggestions .suggestion strong{font-size:14px;line-height:1.4}
.today-overview-toggle small,.today-overview-feed small,.today-overview-feed>button>span,.today-support-head small,.today-week-card li span,.today-main>.suggestions .suggestion small{font-size:12px;line-height:1.4;color:#60738e}
.today-support-empty,.today-report-link,.today-main>.suggestions .suggestion-head strong{font-size:13px}
.today-overview-feed>button{grid-template-columns:40px minmax(0,1fr) 18px}
.today-overview-feed strong,.today-week-card li p{white-space:normal;overflow-wrap:anywhere}

/* Planner: fields reflow instead of shrinking. */
.planner-section-head h2,.weekly-item-group h2,.report-story h2{font-size:var(--type-section)}
.weekly-planner .target-option summary,.weekly-planner .target-option[open] summary{min-height:44px;font-size:14px;white-space:normal}
.weekly-planner .target-option .target{font-size:var(--type-input)!important;min-height:44px;width:104px!important}
.weekly-planner .target-option[open]{flex-wrap:wrap;max-width:100%}
.planner-stats small,.week-strip span,.weekly-item-group header span{font-size:12px}
.history-selection>header small,.history-direction-feed small,.history-direction-feed button>span,.history-day-note span,.history-edit-period,.history-plan-fields label{font-size:12px;color:#60738e}
.history-direction-feed strong,.history-day-note,.history-empty p,.history-selection>header button{font-size:14px;line-height:1.45}
.history-direction-feed strong,.history-direction-feed small{white-space:normal}

/* Records, projects and report detail remain readable at every width. */
.record-filters button,.record-detail-meta span,.record-entry-copy small,.record-day-group>header time{font-size:12px;color:#60738e}
.record-entry-copy p{font-size:14px;line-height:1.45;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.record-detail-block small,.record-detail-block em,.record-empty p{font-size:12px}
.record-detail-block p,.record-detail-block li{font-size:15px;line-height:1.5}
.project-dashboard span,.project-row-count small,.project-next span,.project-period span,.review-date>span,.project-type-cards small,.project-direction small,.roadmap-title strong,.roadmap-title span,.roadmap-node header>span,.roadmap-node header small,.roadmap-node header em,.roadmap-sessions>p,.roadmap-sessions time,.roadmap-sessions span,.roadmap-sessions b,.project-inbox-row small,.project-inbox>header small{font-size:12px;line-height:1.4}
.project-task strong,.project-next strong,.project-direction strong,.roadmap-node header strong,.project-inbox-row strong{font-size:15px;line-height:1.45}
.project-task small,.project-purpose,.project-create-step p{font-size:13px;line-height:1.45}
.project-type-cards b,.roadmap-sessions p,.project-inbox-row>button{font-size:14px}
.project-inbox-row select{font-size:16px}
.project-type-cards span{height:auto}
.roadmap-sessions button{grid-template-columns:78px 54px minmax(0,1fr) 36px}
.report-story p,.report-summary,.report-rule-summary p{font-size:15px;line-height:1.55}
.report-panel-head span,.report-tag,.report-status,.report-mini-stat span,.report-rule-summary small,.project-task-summary,.project-weekly-rate,.project-actual-progress{font-size:12px;line-height:1.45}
.report-panel-head{flex-wrap:wrap;gap:6px}
.report-panel-head h2{font-size:18px}
.reports-month-head .calendar-this-month,.report-weekdays,.report-day{font-size:13px}

/* Crew uses the same hierarchy; compact card padding is intentionally unchanged. */
.crew-page :is(.crew-main-title,.crew-subpage-head) h1{font-size:var(--type-page)}
.crew-page :is(.crew-panel-heading,.crew-settings-heading,.crew-preview-head) h2{font-size:18px;line-height:1.35}
.crew-page .crew-kicker{font-size:11px}
.crew-unified .crew-info-facts :is(dt,dd){font-size:14px;line-height:1.45}
.crew-unified .crew-commit-log strong,.crew-unified .crew-roster-main>strong{font-size:16px;line-height:1.4}
.crew-unified .crew-commit-log p{font-size:15px;line-height:1.45}
.crew-unified .crew-commit-log article span{font-size:13px;line-height:1.4;color:#60738e}
.crew-unified .crew-commit-log article>time,.crew-unified .crew-commit-log em{font-size:12px;line-height:1.4}
.crew-unified .crew-roster-main>strong b{font-size:11px;line-height:1.3}
.crew-unified .crew-roster-main>strong{display:flex;flex-wrap:wrap;align-items:center;gap:5px}
.crew-unified .crew-roster-main select{min-height:44px;height:auto;font-size:16px}
.crew-unified .crew-roster-main>span{font-size:14px;line-height:1.45}
.crew-unified .crew-commit-filters button{min-height:44px;font-size:14px;padding:5px 6px;white-space:normal}
.crew-unified .crew-social-actions button{min-width:44px;min-height:44px}
.crew-unified .crew-social-actions span{font-size:13px}
.crew-unified .crew-social-comments textarea{font-size:16px}
.crew-block-allocation,.crew-block-allocation strong,.crew-vacancy>div small{font-size:13px;line-height:1.4}
.crew-vacancy>div strong{font-size:14px}
.crew-page .crew-form-card :is(input,select,textarea),.crew-page .crew-share-link-row input{font-size:16px}
.crew-page .crew-form-card label,.crew-page .crew-field>span{font-size:14px;line-height:1.4}
.crew-page .crew-form-card small,.crew-preview-caption,.crew-preview-caption span,.crew-card-meta,.crew-card-members{font-size:12px;line-height:1.45}
.crew-page .crew-preset-grid strong{font-size:13px;line-height:1.4}
.crew-page .crew-member-settings .crew-management-list strong{font-size:15px}
.crew-page .crew-member-settings .crew-management-list small{font-size:13px}
.crew-page .crew-brand-share>button{font-size:12px}
.crew-share-link-row button{font-size:14px}
.crew-unified-sidebar>section,.crew-roster-main,.crew-commit-log article>div{min-width:0}
.crew-page :is(.crew-subpage-head,.crew-main-title,.crew-preview-head,.crew-create-submit){flex-wrap:wrap}
.crew-page .crew-subpage-head>div{min-width:0}
.section-head>span,.section-head>div>span,.week-strip i{font-size:12px}
.planner-project-line>span,.planner-project-line button,.planner-empty small,.planner-footer>span{font-size:13px;line-height:1.45}
.planner-project-line button,.planner-add-result{min-height:44px}
.planner-add-result,.weekly-planner .plan-results>summary{font-size:14px;min-height:44px}
.weekly-planner .result-text{font-size:16px!important}
.plan-index{font-size:12px}
.planner-empty strong{font-size:15px}
.calendar-events button,.crew-discover-bottom time,.crew-discover-title>span{font-size:12px;line-height:1.4}
.crew-page .crew-field-pair>label{min-width:0}
.crew-page .crew-create-submit span{font-size:13px}

@media(max-width:767px){
 .content,.content.today-content,.content.report-content,.content.crew-content{padding-inline:16px}
 .view :is(input,textarea,select),.sheet :is(input,textarea,select){font-size:16px}
 .page-intro{gap:12px;margin-bottom:20px}
 .page-intro h1{overflow-wrap:anywhere}
 .reports-calendar-layout{grid-template-columns:minmax(0,1fr)}
 .project-inbox-row{grid-template-columns:minmax(0,1fr) auto;gap:8px}
 .project-inbox-row>div{grid-column:1/-1}
 .project-inbox-row select{width:100%}
 .roadmap-sessions button{grid-template-columns:78px minmax(0,1fr) 36px;gap:5px}
 .roadmap-sessions button p{grid-column:1/-1;grid-row:2;white-space:normal}
 .project-period{grid-template-columns:minmax(0,1fr)}
 .crew-unified .crew-subpage-head{gap:10px;margin-bottom:12px}
 .crew-unified-layout{gap:12px}
 .crew-page .crew-create-submit>div{flex:1 1 140px;min-width:0}
 .crew-page .crew-create-submit button{flex:1 1 140px}
 .crew-social-actions{flex-wrap:wrap}
 .crew-share-link-row{flex-wrap:wrap}
 .crew-share-link-row input{flex:1 1 180px}
 .sheet{max-height:90dvh;overflow-y:auto;scroll-padding-bottom:24px;padding-bottom:max(20px,env(safe-area-inset-bottom))}
 .sheet :is(.sheet-actions,.form-actions){flex-wrap:wrap;gap:8px}
}
@media(max-width:380px){
 .crew-page .crew-subpage-head h1{font-size:28px}
 .project-type-cards{grid-template-columns:minmax(0,1fr)}
 .crew-page .crew-form-row{grid-template-columns:minmax(0,1fr)}
}
