/* Shared reading rhythm for the family and team member spaces. */
.portal-home,.portal-panel,.portal-records,.portal-tiles,.portal-actions,.portal-camp-context{min-width:0}
.portal-home{display:grid;gap:1.25rem}
.portal-panel{background:#fffdf7;border:1px solid #ded9c8;border-radius:20px;padding:clamp(1rem,2.3vw,1.8rem);margin:0 0 1.25rem}
.portal-home>.portal-panel{margin:0}
.portal-heading{display:flex;gap:1rem;justify-content:space-between;align-items:center;margin-bottom:1.2rem}
.portal-heading h2,.portal-panel>h2{margin:.2rem 0 .6rem}
.portal-heading>a{flex-shrink:0}
.portal-count{font-size:.85rem;white-space:nowrap;background:#eee9dc;padding:.5rem .75rem;border-radius:100px}
.portal-priorities{border-top:5px solid #456d59}
.portal-welcome{background:#f5edcc;border-color:#e2d6a7}
.portal-records{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.portal-records>.family-record,.portal-records>.eq-card{margin:0;min-width:0;display:flex;flex-direction:column;align-items:flex-start;overflow-wrap:anywhere}
.portal-records>.family-record>.family-record-actions,.portal-records>.family-record>.family-button,.portal-records>.eq-card>.eq-button{margin-top:auto}
.portal-records .family-record h3,.portal-records .eq-card h2{font-size:1.3rem;line-height:1.3}
.portal-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,235px),1fr));gap:1rem;margin:1rem 0}
.portal-tile{display:flex;flex-direction:column;gap:.6rem;padding:1.2rem;border:1px solid #dcd8c8;border-radius:16px;background:#fffdf8;color:#274b3b!important;text-decoration:none!important;overflow-wrap:anywhere;min-width:0}
.portal-tile strong{font-size:1.1rem;line-height:1.3}
.portal-tile>span{font-size:.94rem;line-height:1.5}
.portal-tile:hover{background:#f2efdf;border-color:#456d59}
.portal-tile:focus-visible,.portal-switch a:focus-visible,.family-primary-nav a:focus-visible,.portal-mobile-nav a:focus-visible{outline:3px solid #b76330;outline-offset:3px}
.portal-actions{list-style:none;margin:0;padding:0}
.portal-actions>li{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding:1rem 0;border-top:1px solid #e6e0d2}
.portal-actions>li>div{min-width:0;overflow-wrap:anywhere}
.portal-actions small{color:#5b665d;font-weight:600}
.portal-actions h3{margin:.25rem 0;font-size:1.05rem}
.portal-actions p{margin:.35rem 0;line-height:1.5}
.portal-actions .family-button{flex-shrink:0}
.portal-more{margin-top:1rem}
.portal-more>summary,.portal-filters>summary{cursor:pointer;font-weight:700;line-height:1.5;padding:.8rem 0;min-height:44px}
.portal-more[open]>summary{margin-bottom:.75rem}
.portal-filters{background:#f5f3e9;border:1px solid #e3dfd0;border-radius:14px;padding:0 1rem;margin:1rem 0}
.portal-filters .family-filter-form{margin:.5rem 0;background:transparent;border:0;padding:0}
.portal-switch,.portal-subnav,.portal-help{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center}
.portal-switch{margin:1rem 0}
.portal-switch a,.portal-subnav a{padding:.65rem .9rem;border-radius:10px;color:#395747;text-decoration:none;border:1px solid #ded9c8;background:#fffdf8}
.portal-switch a[aria-current],.portal-subnav a[aria-current]{background:#315b46;color:white;border-color:#315b46;font-weight:700}
.portal-subnav{margin:.75rem 0 1.2rem;font-size:.9rem}
.portal-help{font-size:.9rem;margin:1rem 0 2rem;line-height:1.6}
.family-primary-nav{display:grid;gap:.4rem;margin:.8rem 0 1.4rem}
.family-primary-nav>a{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1rem;border-radius:12px;text-decoration:none;color:#254936;font-weight:700}
.family-primary-nav>a[aria-current]{background:#315b46;color:#fff}
.family-primary-nav>a:hover{background:#e7eadb;color:#254936}
.family-settings-link{display:block;padding:.8rem 1rem;font-size:.9rem}
.portal-existing-stay-aside{display:none}
.family-workspace.portal-existing-stay{display:block}
.portal-stay-nav{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}
.portal-stay-nav a{display:flex;align-items:center;justify-content:center;text-align:center;min-width:0;white-space:normal!important;line-height:1.4}
.portal-camp-context{display:flex;justify-content:space-between;align-items:center;gap:1rem;background:#ecf0e4;border-left:4px solid #456d59;border-radius:12px;padding:1rem 1.25rem;margin:1rem 0}
.portal-camp-context small,.portal-camp-context strong{display:block}
.portal-camp-context small{font-size:.8rem;margin-bottom:.25rem}
.portal-shared{border-top:4px solid #cdaa4d!important}
.portal-account-link{font-size:.8rem;color:#315b46;padding:.6rem;text-decoration:underline}
.eq-member .eq-home-grid{align-items:start}
.eq-member .eq-home-tasks>li>div{min-width:0}
.eq-member .eq-home-tasks p,.eq-member .eq-home-tasks h3{overflow-wrap:anywhere}
.eq-member .portal-more>summary{font-size:1rem}
.portal-mobile-nav{display:none}
@media(max-width:760px){
 .portal-records{grid-template-columns:1fr}
 .portal-heading{align-items:flex-start;flex-wrap:wrap}
 .portal-actions>li{align-items:flex-start;flex-direction:column;gap:.55rem}
 .portal-actions .family-button{white-space:normal}
 .portal-stay-nav{grid-template-columns:repeat(2,minmax(0,1fr))}
 .portal-stay-nav a{padding:.7rem .45rem;font-size:.9rem}
 .portal-camp-context{align-items:flex-start;flex-direction:column}
 .portal-tile{padding:1rem}
 .family-app .portal-panel{padding:1rem}
 .family-app .family-page-heading h1{font-size:1.65rem}
 .family-app .family-page-heading{margin-top:.75rem}
 .portal-mobile-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:fixed;z-index:90;bottom:0;left:0;right:0;background:#fffdf7;border-top:1px solid #d8d7c7;box-shadow:0 -3px 16px #20352712;padding:.35rem .25rem calc(.35rem + env(safe-area-inset-bottom))}
 .portal-mobile-nav a{display:flex;align-items:center;justify-content:center;gap:.2rem;min-height:48px;text-align:center;line-height:1.25;font-size:.78rem;padding:.4rem .2rem;border-radius:9px;color:#315b46;text-decoration:none;font-weight:600}
 .portal-mobile-nav a[aria-current]{background:#e5ecd9;font-weight:800}
 .portal-mobile-nav .admin-nav-count{font-size:.65rem;min-width:1.2rem;padding:.15rem}
 .family-portal:not(.family-app),.eq-member:not(.team-app){padding-bottom:calc(85px + env(safe-area-inset-bottom))}
 .family-portal:not(.family-app) .admin-sidebar .family-primary-nav,.eq-member:not(.team-app) .admin-sidebar .eq-primary-nav{display:none}
 .family-portal .admin-topbar nav{gap:.7rem}
 .eq-member .eq-back-top{bottom:90px}
}
@media(prefers-reduced-motion:reduce){.portal-tile,.portal-switch a{transition:none}}
