/* App rhythm and button family. All presentation changes are mobile-only.
   Resident blue and professional green remain separate identities. */
.mobile-conversation-filter{display:grid;gap:8px;margin:16px 0;padding:14px;border:1px solid #d2e5dc;border-radius:14px;background:#f4faf7}
.mobile-conversation-filter>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mobile-conversation-filter label{font-size:13px;font-weight:700;color:#153d34}
.mobile-conversation-filter input,.mobile-conversation-filter button{min-height:44px;padding:10px 14px;border:1px solid #c6dfd3;border-radius:10px;background:#fff;color:#087f60;font:inherit;font-size:14px}
.mobile-conversation-filter input{color:#153d34;min-width:0}
.mobile-conversation-filter button{cursor:pointer;font-weight:700}
.mobile-conversation-filter button[aria-pressed="true"]{background:#087f60!important;color:#fff!important;border-color:#087f60}
.mobile-conversation-filter small{font-size:12px;color:#526b62}
.mobile-conversation-filter [data-conversation-period-label]{grid-column:1/-1;min-width:0;max-width:100%;font-size:14px;line-height:1.5;color:#153d34;white-space:normal;overflow-wrap:anywhere}
@media(max-width:767px){
 html body.fx260-pro-shell #pro-conversas .mobile-conversation-filter>div{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 40px 40px;gap:6px}
 html body.fx260-pro-shell #pro-conversas .mobile-conversation-filter button{min-width:0;padding:8px;font-size:13px}
 .mobile-conversation-filter [data-conversation-period="day"]{grid-row:1;grid-column:1}
 .mobile-conversation-filter [data-conversation-period="week"]{grid-row:1;grid-column:2}
 .mobile-conversation-filter [data-conversation-shift="-1"]{grid-row:1;grid-column:3}
 .mobile-conversation-filter [data-conversation-shift="1"]{grid-row:1;grid-column:4}
 .mobile-conversation-filter input{grid-row:2}
 .mobile-conversation-filter [data-conversation-date-today]{grid-row:3;grid-column:1/3}
 .mobile-conversation-filter [data-conversation-date-clear]{grid-row:3;grid-column:3/5}
}
.fx154-pro .professional-mobile-only{display:none!important}
.fx260-overdue{display:grid;gap:10px;padding:12px 0;color:#775317}
.fx260-overdue>strong{font-size:14px;line-height:1.5}
@media(max-width:767px){
 html body .fx154-pro .professional-mobile-only{display:revert!important}
 html body .fx154-pro .professional-desktop-only{display:none!important}
 /* Put the task before the marketing copy, including on 320×568 screens. */
 html body :is(.guest-login-page>.guest-header,.fx154-login>.login-header){height:64px!important;gap:10px}
 html body :is(.guest-login-main,.fx154-loginshell){display:flex!important;flex-direction:column;align-items:stretch;width:calc(100% - 32px)!important;min-height:0!important;padding:10px 0 28px!important;gap:0}
 html body :is(.guest-login-copy,.fx154-lcopy){display:none!important}
 html body :is(.guest-login-card,.fx154-lcard){padding:18px!important;border-radius:18px;box-shadow:none}
 html body :is(.guest-login-card,.fx154-lcard) h2{font-size:24px!important;margin:10px 0 6px!important;line-height:1.2}
 html body :is(.guest-login-card,.fx154-lcard)>p{font-size:13px!important;line-height:1.45;margin-bottom:12px!important}
 html body :is(.guest-field,.fx154-field){margin-top:12px!important}
 html body :is(.guest-login-card>.btn-primary,.fx154-submit){margin-top:14px!important;min-height:48px!important}
 html body :is(.guest-login-page,.fx154-login) .guest-brand{min-width:0}
 html body .guest-login-page .guest-wordmark{font-size:24px}
 html body .guest-login-page .guest-logo-mark{width:30px;height:32px;font-size:24px}
 html body :is(.guest-login-page,.fx154-login) .btn-ghost{font-size:12px;padding:10px;min-height:44px}
 /* Same soft, compact controls in both apps, without recoloring residents green. */
 html body:is(.fx260-pro-shell,.fx-resident-wide,.fez-session-resident){--app-accent:#1769ff;--app-soft:#edf3ff;--app-ink:#173564;--app-line:#d8e3f4}
 html body.fx260-pro-shell{--app-accent:#087f60;--app-soft:#eaf7f1;--app-ink:#153d34;--app-line:#d2e5dc}
 html body:is(.fx260-pro-shell,.fx-resident-wide,.fez-session-resident) :is(.btn,.fx260-btn,.v105-primary,.v105-secondary,.visit-actions button){min-height:44px;border-radius:12px!important;font-family:inherit;font-size:14px!important;line-height:1.35;box-shadow:none!important;white-space:normal;touch-action:manipulation}
 html body:is(.fx260-pro-shell,.fx-resident-wide,.fez-session-resident) :is(.btn-primary,.fx260-btn.primary,.v105-primary){background:var(--app-accent)!important;border-color:var(--app-accent)!important;color:#fff!important}
 html body:is(.fx260-pro-shell,.fx-resident-wide,.fez-session-resident) :is(.btn-ghost,.fx260-btn:not(.primary),.v105-secondary){background:#fff!important;border:1px solid var(--app-line)!important;color:var(--app-ink)!important}
 html body:not(.professional-account):not(.professional-session) #bottomnav{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);height:auto!important;gap:0;background:#fff!important;border-top:1px solid #dce6f4;padding:6px 6px calc(6px + env(safe-area-inset-bottom))!important;box-shadow:0 -6px 24px #16346e0d!important}
 html body #bottomnav button{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0!important;min-height:52px!important;padding:4px!important;border:0!important;border-radius:12px!important;background:transparent!important;color:#526889!important;font-family:inherit;font-size:10px!important;line-height:1.2}
 html body #bottomnav button svg{width:23px!important;height:23px!important;flex:none}
 html body #bottomnav button span{font-size:10px!important;line-height:1.2}
 html body #bottomnav button:is(.active,.on,[aria-current="page"]){background:#edf3ff!important;color:#1769ff!important;font-weight:800}
 html body #fxMobileProfessionalNav button.on{background:var(--app-soft);color:var(--app-accent)}
 html body.fx260-pro-shell.fx260-pro-shell main.container{padding-inline:16px!important}
 /* An obsolete demo landing lives outside the app root. Never show it below
    the signed-in mobile workspace; the real public landing is unaffected. */
 html body.fx260-pro-shell #pro-home-v89,
 html body.fx260-pro-shell>.fx-chat-compose{display:none!important}
 html body.fx260-pro-shell.fx260-pro-shell .fx-panel{padding:16px!important;border-radius:18px!important;box-shadow:none!important}
 html body.fx260-pro-shell .fx-panel-title{gap:12px;flex-wrap:wrap;align-items:flex-start}
 html body.fx260-pro-shell .fx-panel-title h2{font-size:24px!important;line-height:1.2}
 html body.fx260-pro-shell .fx-panel-title p{font-size:14px!important;line-height:1.5}
 html body.fx260-pro-shell :is(.fx260-card,.fx260-welcome){box-shadow:none!important}
 html body.fx260-pro-shell .fx260-home-grid{gap:24px}
 html body.fx260-pro-shell .fx260-card-head{gap:12px;flex-wrap:wrap}
 html body.fx260-pro-shell .fx260-card-head .fx260-btn{flex-shrink:0}
 html body.fx260-pro-shell .fx260-card p{font-size:14px;line-height:1.55}
 html body.fx260-pro-shell :is(.fx260-visit,.fx260-week-item,.fx260-attention-item){min-width:0;overflow-wrap:anywhere}
 html body.fx260-pro-shell .fx260-list span{font-size:13px}
 /* Grouped Agenda controls: mode first, full-width date navigation underneath. */
 html body.professional-account.fx260-pro-shell.fx260-pro-shell[data-fx260-pro-view="area"] #pro-regiao{padding:12px!important}
 html body.professional-account.fx260-pro-shell.fx260-pro-shell[data-fx260-pro-view="area"] #pro-regiao .fx-map-route-filter-controls{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%;gap:8px!important}
 html body.professional-account.fx260-pro-shell.fx260-pro-shell[data-fx260-pro-view="area"] #pro-regiao .map-period-switch{justify-self:start;min-width:0}
 html body.professional-account.fx260-pro-shell.fx260-pro-shell[data-fx260-pro-view="area"] #pro-regiao .map-date-nav{display:grid!important;grid-template-columns:44px minmax(0,1fr) 44px!important;width:100%;gap:4px!important;min-width:0}
 html body.professional-account.fx260-pro-shell.fx260-pro-shell[data-fx260-pro-view="area"] #pro-regiao .map-date-nav button{width:44px!important;min-width:44px!important;max-width:44px;grid-column:auto;grid-row:1;padding:0!important}
 html body.professional-account.fx260-pro-shell.fx260-pro-shell[data-fx260-pro-view="area"] #pro-regiao [data-fx-map-route-label]{min-width:0;font-size:clamp(11px,3.1vw,13px)!important;line-height:1.4;white-space:nowrap;overflow-wrap:normal;word-break:normal;grid-column:2;grid-row:1;text-align:center}
 html body.professional-account.fx260-pro-shell.fx260-pro-shell[data-fx260-pro-view="area"] #pro-regiao .fx-map-route-filter-controls input{grid-column:1/-1!important;grid-row:2;width:100%!important;min-width:0!important;min-height:48px!important;height:auto!important;padding:10px 12px!important;font-size:16px!important;box-sizing:border-box}
 html body.professional-account.fx260-pro-shell.fx260-pro-shell[data-fx260-pro-view="area"] #pro-regiao .fx-map-route-filter-controls button{min-height:44px!important;padding:8px!important;font-size:14px!important}
 html body.professional-account.fx260-pro-shell.fx260-pro-shell[data-fx260-pro-view="area"] #pro-regiao #fxMapRouteFilter{width:100%;box-sizing:border-box;align-items:stretch}
 html body.fx260-pro-shell #pro-agenda .fx-agenda-toolbar{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:16px!important;padding:12px!important}
 html body.fx260-pro-shell #pro-agenda .fx-agenda-toolbar>.row{display:grid!important;grid-template-columns:44px minmax(0,1fr) 44px;gap:8px!important;width:100%}
 html body.fx260-pro-shell #agendaDateLabel{font-size:15px!important;line-height:1.4;text-align:center;white-space:normal;overflow-wrap:normal}
 html body.fx260-pro-shell #pro-agenda .external-new{grid-column:1/-1;justify-self:end}
 html body.fx260-pro-shell #pro-agenda :is(.fx-day-hour,.v105-hour){font-size:14px!important;white-space:nowrap}
 html body.fx260-pro-shell #pro-agenda .v105-hour{transform:none!important;left:6px;line-height:1.2}
 html body.fx260-pro-shell #pro-agenda :is(.v105-week-times,.v105-week-col){min-height:740px!important}
 html body.fx260-pro-shell #pro-agenda .fx-day-row{grid-template-columns:58px minmax(0,1fr)!important;gap:10px!important}
 html body.fx260-pro-shell #pro-agenda .fx-day-content{min-width:0;overflow-wrap:anywhere}
 html body.fx260-pro-shell #pro-agenda .v105-week-wrap{overflow-x:auto;overscroll-behavior-x:contain}
 html body.fx260-pro-shell #pro-conversas .mobile-conversation-filter{display:grid;gap:8px;margin:16px 0 20px;padding:14px;background:var(--app-soft);border-radius:14px}
 .mobile-conversation-filter label{font-size:13px;font-weight:700;color:#153d34}
 .mobile-conversation-filter>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px}
 .mobile-conversation-filter input{grid-column:1/-1;width:100%;min-width:0;padding:10px 12px;min-height:48px;border:1px solid #c6dfd3;border-radius:10px;background:#fff;color:#153d34;font-family:inherit}
 .mobile-conversation-filter button{min-height:44px;padding:10px 16px;border:1px solid #c6dfd3;border-radius:10px;background:#fff;color:#087f60;font-family:inherit;font-weight:700;font-size:14px;cursor:pointer}
 .mobile-conversation-filter button:disabled{opacity:.5;cursor:default}
 .mobile-conversation-filter small{font-size:12px;color:#526b62;line-height:1.5}
 html body.fx260-pro-shell #pro-conversas .fx218-conv-tools{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:8px;margin-bottom:8px}
 .professional-mobile-details summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:0 12px;list-style:none;font-family:inherit;font-weight:700;font-size:14px;line-height:1.4;cursor:pointer;border:1px solid #d2e5dc;border-radius:12px;color:#087f60;background:#fff}
 .professional-mobile-details summary::-webkit-details-marker{display:none}
 .professional-mobile-details summary::after{content:'+';font-size:20px}
 .professional-mobile-details[open] summary::after{content:'−'}
 .professional-mobile-details summary:focus-visible{outline:3px solid #119b77;outline-offset:2px}
 .professional-mobile-detail-body{display:grid;gap:10px;padding-top:12px}
 .professional-mobile-plan-details{margin:16px 0}
 html body .fx154-pro .professional-mobile-plan-details ul{margin:0;padding-left:18px;font-size:15px;line-height:1.6}
 html body.fx260-pro-shell.fx260-pro-shell #pro-conversas .v105-conv-shell{grid-template-columns:minmax(0,1fr)!important;gap:16px}
 html body.fx260-pro-shell #pro-conversas .v105-conv-list{display:flex!important;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 4px 12px;min-width:0}
 html body.fx260-pro-shell #pro-conversas .v105-conv-head{display:none}
 html body.fx260-pro-shell #pro-conversas .v105-thread{flex:0 0 88%;scroll-snap-align:start;min-width:0;box-sizing:border-box;padding:14px;border-radius:14px!important}
 html body.fx260-pro-shell #pro-conversas .v105-thread small{font-size:13px!important;line-height:1.5;white-space:normal}
 html body.fx260-pro-shell.fx260-pro-shell #pro-conversas .v105-conv-main{padding:14px!important;min-width:0}
 html body.fx260-pro-shell #pro-conversas .v105-order-title h2{font-size:20px!important;overflow-wrap:anywhere}
 html body.fx260-pro-shell #pro-conversas .v105-compose{display:flex!important;flex-wrap:wrap;gap:8px}
 html body.fx260-pro-shell #pro-conversas .v105-compose input{flex:1 1 140px;min-width:0!important}
 html body.fx260-pro-shell #pro-conversas .visit-lifecycle{max-height:none!important;overflow:visible!important}
 html body.fx260-pro-shell #pro-conversas .visit-lifecycle :is(p,li){font-size:14px!important;line-height:1.55}
 /* Public professional landing: summary first, no oversized nested frames. */
 html body .fx154-pro .fx154-hero{padding:24px 0 0;gap:24px}
 html body .fx154-pro .fx154-nav button:not(.login){display:none!important}
 html body .fx154-pro .fx154-copy h1{font-size:36px!important;line-height:1.1}
 html body .fx154-pro p{font-size:15px!important;line-height:1.6}
 html body .fx154-pro :is(.fx154-section,.fx155-entry,.fx155-faq){padding:56px 0 0}
 html body .fx154-pro :is(.fx154-sh h2,.fx155-entry-head h2,.fx155-faq-head h2){font-size:28px!important;line-height:1.15}
 html body .fx154-pro .fx154-visual{height:auto!important;aspect-ratio:auto;overflow:visible!important;background:transparent;box-shadow:none}
 html body .fx154-pro .fx154-visual img{display:block;position:static!important;width:100%;height:180px!important;object-fit:cover;border-radius:16px}
 html body .fx154-pro .fx154-visual::after{display:none}
 html body .fx154-pro .fx154-kpis{position:static!important;display:flex!important;margin-top:16px;background:transparent}
 html body .fx154-pro .fx154-kpis div{flex:1;border:0;padding:0;background:transparent!important;color:#153d34!important}
 html body .fx154-pro .fx154-kpis b{font-size:14px;color:#153d34!important}
 html body .fx154-pro .fx154-kpis span{color:#526b62!important;font-size:11px}
 html body .fx154-pro .fx154-valuebar{gap:16px;padding:32px 0 0}
 html body .fx154-pro .fx154-valuebar article{border:0;background:transparent;padding:0;box-shadow:none}
 html body .fx154-pro :is(.fx154-step,.fx155-entry-card,.fx154-plan){box-shadow:none;border-radius:16px}
 html body .fx154-pro .fx154-step{border:0;background:transparent;padding:12px 0}
 html body .fx154-pro .fx155-entry-grid{gap:20px}
 html body .fx154-pro .fx154-final{margin-block:56px 32px}
 html body .fx154-pro .fx-site-footer{padding-top:24px}
}
@media(max-width:767px) and (prefers-reduced-motion:reduce){
 html body .fx154-pro *,html body.fx260-pro-shell *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
