:root{--cream:#f6f1e8;--paper:#fffdf9;--ink:#2f2b27;--muted:#746e66;--line:#e4ddd2;--brown:#604d3f;--brown-dark:#44352c;--sage:#718071;--sage-soft:#e3e9df;--tan:#c7aa80;--tan-soft:#f3e8d7;--rose:#a96e63;--rose-soft:#f3e2de;--blue:#70838a;--blue-soft:#e1e9eb;--green:#47735b;--green-soft:#e2eee6;--shadow:0 7px 24px rgba(59,46,35,.06)}
*{box-sizing:border-box}html{background:var(--cream)}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",system-ui,sans-serif;font-size:15px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}h1,h2,h3,p{margin-top:0}h1{font-family:"Libre Baskerville",Georgia,serif;font-size:clamp(1.8rem,3vw,2.45rem);letter-spacing:-.03em;margin-bottom:.45rem}h2{font-family:"Libre Baskerville",Georgia,serif;font-size:1.1rem;margin:0}small{display:block}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:244px;padding:26px 18px;background:#ebe4d9;border-right:1px solid #ddd3c5;display:flex;flex-direction:column;z-index:30}.brand,.mobile-brand{display:flex;align-items:center;gap:12px}.brand{padding:0 10px 26px;border-bottom:1px solid #d8cebf}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--brown);border-radius:50%;font-family:"Libre Baskerville",serif;font-size:.9rem;color:var(--brown)}.brand strong{font-family:"Libre Baskerville",serif;font-size:1rem}.brand small{margin-top:3px;color:var(--muted);font-size:.72rem}.main-nav{padding-top:22px;display:grid;gap:4px}.nav-link{display:flex;align-items:center;gap:13px;padding:11px 12px;border-radius:10px;color:#5f5952;font-weight:500;min-height:45px}.nav-link:hover{background:rgba(255,255,255,.45);color:var(--brown-dark)}.nav-link.active{background:var(--paper);color:var(--brown-dark);box-shadow:0 2px 9px rgba(60,45,30,.05);font-weight:700}.nav-icon,.stat-icon{display:grid;place-items:center}.nav-icon svg{width:20px;height:20px;stroke:currentColor}.demo-note{margin-top:auto;padding:14px 12px 8px;display:grid;grid-template-columns:9px 1fr;column-gap:8px;color:var(--muted)}.demo-note .dot{width:8px;height:8px;border-radius:50%;background:var(--sage);margin-top:5px}.demo-note strong{font-size:.78rem;color:var(--ink)}.demo-note small{grid-column:2;font-size:.7rem;margin-top:2px}.page-area{margin-left:244px}.content{max-width:1480px;margin:auto;padding:43px 48px 70px}.mobile-header{display:none}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:32px}.page-header p{margin-bottom:0}.page-subtitle{color:var(--muted);font-size:1rem}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:.68rem;font-weight:700;color:var(--sage);margin-bottom:8px}.btn{border:0;border-radius:10px;padding:11px 17px;min-height:45px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:4px}.btn-primary{background:var(--brown);color:white}.btn-primary:hover{background:var(--brown-dark);color:white}.btn-secondary{background:var(--tan-soft);color:var(--brown-dark)}.btn-light{background:#eee8de;color:var(--ink)}.section-heading,.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.section-heading{margin:29px 0 14px}.section-heading span,.panel-heading>a{color:var(--muted);font-size:.8rem}.panel{background:var(--paper);border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);padding:22px}.panel-heading{margin-bottom:18px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat-card{padding:19px;background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);display:flex;gap:15px;transition:.15s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(59,46,35,.1)}.stat-icon{min-width:42px;width:42px;height:42px;border-radius:11px}.stat-icon svg{width:21px;stroke:currentColor}.sage{background:var(--sage-soft);color:var(--sage)}.tan{background:var(--tan-soft);color:#8c704c}.blue{background:var(--blue-soft);color:var(--blue)}.rose{background:var(--rose-soft);color:var(--rose)}.stat-card small,.finance-stat small,.mini-stat small{color:var(--muted);font-weight:600}.stat-card strong{font-family:"Libre Baskerville",serif;font-size:1.45rem;display:block;margin:3px 0}.stat-card strong i{font-family:"DM Sans";font-size:.8rem;font-style:normal;color:var(--muted)}.stat-card em,.finance-stat em{font-style:normal;color:var(--muted);font-size:.72rem}.stat-card .warn{color:var(--rose)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.8fr);gap:18px;margin-top:30px}.lesson-list{display:grid}.lesson-row{display:grid;grid-template-columns:82px 3px 1fr 1fr;gap:16px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}.lesson-row:first-child{border-top:0}.lesson-row time{font-weight:700}.lesson-rule{width:3px;height:34px;border-radius:3px;background:var(--sage)}.lesson-row strong,.lesson-row small{display:block}.lesson-row small{color:var(--muted);margin-top:3px;font-size:.75rem}.lesson-meta{text-align:right}.attention-item{display:grid;grid-template-columns:32px 1fr 10px;gap:10px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.attention-item>span{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--tan-soft);color:var(--brown);font-weight:700}.attention-item.urgent>span{background:var(--rose-soft);color:var(--rose)}.attention-item small{color:var(--muted);font-size:.72rem;margin-top:2px}.attention-item b{color:#aaa;font-size:1.4rem}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.quick-grid>a{background:var(--paper);border:1px solid var(--line);border-radius:13px;padding:18px;display:grid;grid-template-columns:40px 1fr;column-gap:12px;align-items:center;box-shadow:var(--shadow)}.quick-grid>a>span{grid-row:1/3;width:40px;height:40px;display:grid;place-items:center;border-radius:10px;background:var(--sage-soft);color:var(--sage)}.quick-grid svg{width:20px;stroke:currentColor}.quick-grid small{color:var(--muted);font-size:.72rem;margin-top:2px}.view-switch{display:inline-flex;padding:4px;border-radius:10px;background:#e9e2d7;margin-bottom:18px}.view-switch button{border:0;padding:8px 20px;border-radius:7px;color:var(--muted);background:transparent;font-weight:700}.view-switch button.active{background:var(--paper);color:var(--ink);box-shadow:0 2px 6px rgba(40,30,20,.08)}.content-grid-wide{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(310px,.75fr);gap:18px}.count-pill,.status-badge{padding:6px 10px;border-radius:20px;background:var(--sage-soft);color:var(--green);font-size:.72rem;font-weight:700}.schedule-card{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:12px;margin-top:10px;overflow:hidden}.time-block{width:104px;padding:17px;background:#f2ece3;display:flex;flex-direction:column;justify-content:center}.time-block small,.schedule-main small{color:var(--muted);margin-top:3px}.schedule-main{padding:15px 17px;flex:1}.chips{display:flex;gap:7px;margin-top:9px}.chips span{font-size:.68rem;padding:4px 8px;border-radius:12px;background:var(--sage-soft);color:#4d6251}.more-button{width:50px;background:transparent;border:0;color:var(--muted);letter-spacing:2px}.upcoming-row{display:flex;gap:13px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}.upcoming-row:first-of-type{border-top:0}.date-badge{width:74px;min-width:74px;text-align:center;padding:8px;border-radius:9px;background:var(--tan-soft)}.date-badge strong{font-size:.72rem;text-transform:uppercase}.date-badge small,.upcoming-row small{font-size:.7rem;color:var(--muted);margin-top:2px}.form-card{max-width:850px;margin:0 auto;padding:30px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:21px}.form-grid.three{grid-template-columns:repeat(3,1fr)}.form-field{display:flex;flex-direction:column;gap:7px}.form-field.full{grid-column:1/-1}.form-field label{font-weight:700;font-size:.82rem}.form-field label span{font-weight:400;color:var(--muted)}.form-control,.form-select{width:100%;min-height:47px;border:1px solid #d9d0c3;border-radius:9px;background:#fff;padding:10px 12px;color:var(--ink)}.form-control:focus,.form-select:focus{outline:3px solid rgba(113,128,113,.16);border-color:var(--sage)}textarea.form-control{resize:vertical}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:25px;padding-top:20px;border-top:1px solid var(--line)}.form-help,.demo-disclaimer{text-align:center;color:var(--muted);font-size:.72rem;margin:13px 0 0}.form-section{margin-bottom:18px}.form-section p{color:var(--muted);margin:5px 0}.form-section.divided{border-top:1px solid var(--line);padding-top:25px;margin-top:28px}.directory-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;color:var(--muted);font-size:.8rem}.search-box{width:300px;display:flex;gap:7px;align-items:center;background:var(--paper);border:1px solid var(--line);padding:10px 13px;border-radius:10px}.search-box input{width:100%;border:0;background:transparent;outline:0}.horse-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.horse-card{background:var(--paper);border:1px solid var(--line);border-radius:15px;overflow:hidden;box-shadow:var(--shadow);transition:.15s}.horse-card:hover{transform:translateY(-2px)}.horse-art{height:130px;background:linear-gradient(145deg,#ded5c8,#eee8df);display:grid;place-items:center;position:relative}.horse-art>span{font-family:"Libre Baskerville";font-size:2.3rem;color:var(--brown);width:72px;height:72px;border-radius:50%;background:rgba(255,253,249,.6);display:grid;place-items:center}.horse-art small{position:absolute;bottom:10px;right:10px;padding:5px 8px;background:rgba(255,253,249,.88);border-radius:12px;font-size:.65rem}.card-body{padding:17px}.card-body h2{font-size:1.25rem}.card-body p{color:var(--muted);margin:5px 0 14px}.card-body dl{display:grid;grid-template-columns:1fr 1fr;margin:0 0 13px}.card-body dl div+div{border-left:1px solid var(--line);padding-left:15px}.card-body dt,.detail-list dt{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.card-body dd{margin:3px 0;font-weight:700}.text-link{font-size:.78rem;color:var(--brown);font-weight:700}.back-link{display:inline-block;margin-bottom:22px;color:var(--muted);font-weight:700}.profile-hero{display:flex;align-items:center;gap:18px;margin-bottom:27px}.profile-avatar{width:74px;height:74px;display:grid;place-items:center;background:var(--tan-soft);color:var(--brown);border-radius:50%;font:700 1.7rem "Libre Baskerville"}.horse-profile{border-radius:18px}.profile-hero h1{margin:0}.profile-hero p{color:var(--muted);margin:4px 0}.profile-hero .status-badge{margin-left:auto}.profile-balance{margin-left:auto;text-align:right}.profile-balance small{color:var(--muted)}.profile-balance strong{font:700 1.5rem "Libre Baskerville"}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.full-panel{grid-column:1/-1}.detail-list{margin:0}.detail-list>div{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding:13px 0}.detail-list>div:first-child{border-top:0}.detail-list dd{margin:0;text-align:right;font-weight:700}.notes-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.notes-grid h3{font-size:.8rem}.notes-grid p,.full-panel>p{color:var(--muted);line-height:1.6;margin-bottom:0}.compact .mini-stat{background:var(--paper);border:1px solid var(--line);border-radius:13px;padding:18px;box-shadow:var(--shadow)}.mini-stat strong{font:700 1.5rem "Libre Baskerville";display:block;margin-top:4px}.mini-stat.available{border-color:#bdd2c1;background:var(--green-soft)}.barn-section{margin-top:30px}.stall-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stall-card{min-height:116px;border-radius:13px;padding:15px;border:1px solid var(--line);background:var(--paper);position:relative;display:flex;gap:12px;align-items:center}.stall-card.open{background:var(--green-soft);border:2px solid #9dbba5}.stall-number{width:38px;height:38px;display:grid;place-items:center;border-radius:9px;background:#eee7dd;font-weight:800}.stall-card.open .stall-number{background:#c7dccb;color:var(--green)}.stall-card small{color:var(--muted);margin-top:3px;font-size:.7rem}.stall-status{position:absolute;top:8px;right:8px;font-size:.58rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.stall-card.open .stall-status{color:var(--green);font-weight:800}.available-badge{background:var(--green-soft);color:var(--green)}.detail-single{max-width:650px}.stall-detail-icon{width:80px;height:80px;background:var(--tan-soft);border-radius:15px;display:grid;place-items:center;font:700 1.5rem "Libre Baskerville";margin-bottom:20px}.table-panel{padding:0;overflow:hidden}.table-panel .panel-heading{padding:22px 22px 0}.responsive-table{overflow-x:auto}table{width:100%;border-collapse:collapse}th{text-align:left;padding:13px 18px;background:#eee8df;color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em}td{padding:15px 18px;border-top:1px solid var(--line);white-space:nowrap}td small{color:var(--muted);font-size:.72rem;margin-top:2px}.person-cell{display:flex;align-items:center;gap:10px}.avatar{width:34px;height:34px;border-radius:50%;background:var(--tan-soft);display:grid;place-items:center;font-weight:700;color:var(--brown)}.balance-due{color:var(--rose)}.balance-clear{color:var(--green)}.row-link{color:var(--brown);font-weight:700}.linked-horse{display:flex;align-items:center;gap:12px}.linked-horse>span{width:44px;height:44px;border-radius:10px;background:var(--tan-soft);display:grid;place-items:center;font-family:"Libre Baskerville"}.linked-horse small,.simple-row small{color:var(--muted);margin-top:3px}.simple-row{padding:11px 0;border-top:1px solid var(--line)}.simple-row:first-of-type{border-top:0}.simple-row.split{display:flex;justify-content:space-between}.finance-stat{background:var(--paper);border:1px solid var(--line);border-radius:13px;padding:20px;box-shadow:var(--shadow)}.finance-stat strong{display:block;font:700 1.45rem "Libre Baskerville";margin:6px 0}.finance-stat .positive{color:var(--green)}.invoice-status{display:inline-block;padding:5px 9px;border-radius:14px;font-size:.68rem;font-weight:700}.status-paid{background:var(--green-soft);color:var(--green)}.status-due{background:var(--tan-soft);color:#7c623c}.status-overdue{background:var(--rose-soft);color:#934f46}.payment-form{padding:24px}.payment-row{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.payment-row:first-of-type{border-top:0}.payment-check{width:30px;height:30px;border-radius:50%;background:var(--green-soft);color:var(--green);display:grid;place-items:center}.payment-row small{color:var(--muted);font-size:.7rem;margin-top:3px}.header-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:-72px;margin-bottom:32px}.events-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.65fr);gap:18px}.event-list{display:grid;gap:12px}.event-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:20px;display:grid;grid-template-columns:65px 1fr;gap:18px;box-shadow:var(--shadow)}.event-date{width:60px;height:66px;border-radius:10px;background:var(--tan-soft);display:flex;flex-direction:column;align-items:center;justify-content:center}.event-date small{text-transform:uppercase;font-weight:700;color:var(--brown)}.event-date strong{font:700 1.35rem "Libre Baskerville"}.event-kind{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--sage);font-weight:800}.event-card h2{margin:5px 0 7px}.event-card p{color:var(--muted);font-size:.82rem;line-height:1.5;margin-bottom:0}.event-location{margin-bottom:8px!important;font-size:.72rem!important}.publishing>p{color:var(--muted);font-size:.8rem}.toggle-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-top:1px solid var(--line);cursor:pointer}.toggle-row small{color:var(--muted);font-size:.68rem;margin-top:2px}.toggle-row input{position:absolute;opacity:0}.toggle-row i{width:42px;height:24px;border-radius:20px;background:#c9c4bd;position:relative}.toggle-row i:after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:white;top:3px;left:3px;transition:.2s}.toggle-row input:checked+i{background:var(--sage)}.toggle-row input:checked+i:after{left:21px}.coming-soon{margin-top:15px;padding:11px;background:var(--tan-soft);border-radius:8px;color:var(--brown);font-size:.7rem;text-align:center}.notice{display:flex;gap:12px;align-items:flex-start;background:var(--green-soft);border:1px solid #b8d0bd;border-radius:12px;padding:14px 16px;margin-bottom:22px;color:#345942}.notice>span{font-weight:800}.notice p{margin:2px 0 0;font-size:.78rem}.w-100{width:100%}
@media(max-width:1100px){.content{padding:36px 28px 60px}.stat-grid,.quick-grid{grid-template-columns:1fr 1fr}.horse-grid{grid-template-columns:1fr 1fr}.stall-grid{grid-template-columns:repeat(3,1fr)}.dashboard-grid,.content-grid-wide,.events-layout{grid-template-columns:1fr}.publishing{max-width:none}}
@media(max-width:760px){body.menu-open{overflow:hidden}.sidebar{transform:translateX(-102%);transition:transform .22s;width:min(84vw,290px);box-shadow:10px 0 35px rgba(30,25,20,.18)}.sidebar.open{transform:translateX(0)}.page-area{margin-left:0}.mobile-header{height:66px;padding:10px 17px;background:rgba(246,241,232,.96);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20;backdrop-filter:blur(10px)}.mobile-brand{font-family:"Libre Baskerville"}.mobile-brand .brand-mark{width:36px;height:36px;font-size:.75rem}.menu-button{width:45px;height:45px;border:0;background:var(--paper);border-radius:10px;display:grid;place-items:center}.menu-button svg{width:23px;stroke:var(--ink)}.sidebar-backdrop{position:fixed;inset:0;background:rgba(32,27,23,.35);z-index:25;display:none}.sidebar-backdrop.show{display:block}.content{padding:25px 16px 55px}.page-header{align-items:flex-start;margin-bottom:25px}.page-header .btn{width:100%}.page-header:has(.btn){flex-direction:column}.page-subtitle{font-size:.9rem}.stat-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:14px;display:block}.stat-icon{margin-bottom:10px}.stat-card strong{font-size:1.25rem}.dashboard-grid{margin-top:22px}.panel{padding:18px;border-radius:13px}.lesson-row{grid-template-columns:68px 3px 1fr;gap:10px}.lesson-meta{display:none}.quick-grid{grid-template-columns:1fr 1fr;gap:10px}.quick-grid>a{display:flex;flex-direction:column;align-items:flex-start;padding:14px;min-height:128px}.quick-grid>a>span{margin-bottom:10px}.view-switch{display:flex}.view-switch button{flex:1;padding:9px 18px}.schedule-card{position:relative}.time-block{width:85px;padding:13px}.schedule-main{padding:13px}.more-button{width:35px}.form-card{padding:19px}.form-grid,.form-grid.three,.detail-grid,.notes-grid{grid-template-columns:1fr}.form-field.full,.full-panel{grid-column:auto}.form-actions .btn{flex:1}.horse-grid{grid-template-columns:1fr}.horse-art{height:115px}.directory-toolbar{align-items:stretch;flex-direction:column;gap:8px}.search-box{width:100%;min-height:47px}.profile-hero{align-items:flex-start;flex-wrap:wrap}.profile-avatar{width:58px;height:58px}.profile-hero .status-badge,.profile-balance{margin-left:0}.profile-balance{width:100%;text-align:left;padding:12px;background:var(--paper);border-radius:10px}.compact{grid-template-columns:1fr 1fr}.stall-grid{grid-template-columns:1fr 1fr}.stall-card{min-height:105px;display:block}.stall-card .stall-number{margin-bottom:8px}.stall-status{top:11px}.table-panel{margin:0 -16px;border-radius:0}.table-panel .panel-heading{padding:18px 16px 0}.person-cell .avatar{display:none}th,td{padding:13px 14px}.header-actions{margin:-12px 0 25px;display:grid;grid-template-columns:1fr 1fr}.event-card{grid-template-columns:52px 1fr;padding:15px;gap:13px}.event-date{width:50px;height:57px}.finance-stat{padding:15px}.content-grid-wide{gap:14px}}
@media(max-width:390px){.stat-grid,.quick-grid,.stall-grid{grid-template-columns:1fr}.stat-card{display:flex}.stat-icon{margin-bottom:0}.quick-grid>a{min-height:auto;display:grid}.header-actions{grid-template-columns:1fr}.chips{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Review-ready usability and accessibility refinements. */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(96,77,63,.28);outline-offset:3px}
.view-switch span{padding:8px 20px;border-radius:7px;color:var(--muted);font-weight:700}
.view-switch span.active{background:var(--paper);color:var(--ink);box-shadow:0 2px 6px rgba(40,30,20,.08)}
.empty-state{max-width:680px;margin:8vh auto 0;text-align:center;padding:48px 28px}
.empty-state>p:not(.eyebrow){color:var(--muted);font-size:1rem;margin:12px auto 24px}
@media(max-width:760px){.btn,.nav-link,.form-control,.form-select{min-height:48px}.view-switch span{flex:1;padding:10px;text-align:center}.empty-state{margin-top:4vh;padding:36px 20px}}
@media(max-width:390px){.form-actions{flex-direction:column-reverse}.form-actions .btn{width:100%}}

/* Expanded barn operations shell */
.sidebar{overflow-y:auto;padding-bottom:18px}.brand{flex:0 0 auto}.main-nav{gap:2px;padding-top:14px}.nav-group-label{margin:15px 12px 4px;color:#8a8177;font-size:.62rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.nav-link{min-height:39px;padding:8px 11px;font-size:.82rem}.nav-icon svg{width:18px;height:18px}.demo-note{flex:0 0 auto;margin-top:18px}.wrap-cell{white-space:normal;min-width:210px;line-height:1.45}.btn-small{min-height:38px;padding:8px 12px;font-size:.75rem}.calendar-stack,.calendar-grid,.schedule-grid,.maintenance-grid,.show-grid,.property-grid{display:grid;gap:14px}.calendar-grid{grid-template-columns:repeat(2,1fr)}.calendar-day{display:flex;gap:13px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.calendar-day:first-child{border-top:0}.calendar-day>span{width:48px;height:48px;border-radius:9px;background:var(--tan-soft);display:grid;place-items:center;line-height:1}.calendar-day>span small{font-size:.62rem;text-transform:uppercase}.calendar-day>div small{color:var(--muted);margin-top:3px}.schedule-grid{grid-template-columns:repeat(2,1fr)}.subhead{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--sage);margin:22px 0 5px}.filter-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.filter-chips span{padding:8px 12px;background:var(--paper);border:1px solid var(--line);border-radius:18px;font-size:.72rem}.bar-row{display:grid;grid-template-columns:75px 1fr 75px;align-items:center;gap:10px;margin:24px 0}.bar-row i{height:18px;width:var(--value);background:var(--sage);border-radius:9px}.bar-row.expense i{background:var(--tan)}.ownership-note{display:flex;gap:14px;align-items:center;background:var(--tan-soft);border:1px solid #e2cfb1;border-radius:13px;padding:16px 18px;margin-bottom:22px}.ownership-note strong{flex:0 0 auto}.ownership-note span{color:var(--muted)}.future-note{background:var(--sage-soft);border-color:#c9d6c5}.property-grid{grid-template-columns:repeat(3,1fr)}.property-card h2{margin:13px 0 6px}.property-card p,.maintenance-card>p,.show-card>p{color:var(--muted);margin:0}.maintenance-grid{grid-template-columns:repeat(2,1fr)}.maintenance-card.priority-urgent{border-left:5px solid var(--rose)}.maintenance-card h2{margin:13px 0 6px}.document-placeholder{padding:15px;background:var(--tan-soft);border-radius:10px;margin:17px 0}.show-grid{grid-template-columns:repeat(2,1fr)}.show-details{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0}.show-details small{color:var(--muted);margin-bottom:4px}.show-details strong{display:block}.publishing-board{max-width:850px}.profile-section{padding:0;overflow:hidden}.profile-section summary{font-family:"Libre Baskerville",serif;font-weight:700;padding:20px;cursor:pointer;min-height:58px;list-style:none}.profile-section summary:after{content:'+';float:right;font-family:"DM Sans"}.profile-section[open] summary:after{content:'−'}.profile-section>*:not(summary){margin-left:20px;margin-right:20px}.profile-section>.detail-list{margin-bottom:18px}.profile-section>p:last-child{padding-bottom:18px}.quick-seven{grid-template-columns:repeat(4,1fr)}
@media(max-width:1100px){.property-grid{grid-template-columns:repeat(2,1fr)}.quick-seven{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.nav-link{min-height:48px;font-size:.9rem}.nav-group-label{margin-top:18px}.calendar-grid,.schedule-grid,.maintenance-grid,.show-grid,.property-grid{grid-template-columns:1fr}.ownership-note{align-items:flex-start;flex-direction:column}.show-details{grid-template-columns:1fr}.quick-seven{grid-template-columns:1fr 1fr}.profile-section{grid-column:auto}.profile-section:not([open]){padding:0}.today-grid{grid-template-columns:1fr 1fr}.responsive-table td:first-child{position:sticky;left:0;background:var(--paper);z-index:1}}
@media(max-width:390px){.today-grid,.quick-seven{grid-template-columns:1fr}.ownership-note{font-size:.85rem}}

/* Role-based portal previews */
.portal-demo-banner{display:flex;align-items:center;gap:14px;padding:16px 18px;margin-bottom:24px;background:var(--tan-soft);border:1px solid #dfc9a7;border-radius:14px}.portal-demo-banner>span{flex:0 0 auto;padding:7px 10px;background:var(--brown);color:white;border-radius:18px;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.portal-demo-banner p{margin:0;color:var(--muted)}.portal-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.portal-landing-card{--portal-accent:var(--sage);display:flex;gap:18px;min-height:220px;padding:25px;background:var(--paper);border:1px solid var(--line);border-top:5px solid var(--portal-accent);border-radius:16px;box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s}.portal-landing-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(59,46,35,.11)}.portal-card-icon,.portal-hero-icon{display:grid;place-items:center;flex:0 0 auto;width:52px;height:52px;border-radius:15px;background:color-mix(in srgb,var(--portal-accent) 16%,white);color:var(--portal-accent);font-size:1.55rem}.portal-landing-card h2{font-size:1.3rem;margin-bottom:9px}.portal-landing-card p:not(.eyebrow){color:var(--muted);line-height:1.55;margin-bottom:19px}.portal-landing-card strong{color:var(--portal-accent);font-size:.78rem}.portal-theme-rider{--portal-accent:#657d87;--portal-soft:#e4edf0}.portal-theme-parent{--portal-accent:#a06c72;--portal-soft:#f3e6e7}.portal-theme-boarder{--portal-accent:#70806a;--portal-soft:#e7ede3}.portal-theme-trainer{--portal-accent:#77658a;--portal-soft:#eee8f3}.portal-theme-tenant{--portal-accent:#a17648;--portal-soft:#f4e9dc}.portal-theme-operations{--portal-accent:#56463b;--portal-soft:#e9e2da}.portal-switcher{display:flex;gap:7px;overflow-x:auto;padding:6px;margin-bottom:22px;background:#e9e2d8;border-radius:13px;scrollbar-width:thin}.portal-switcher a{display:flex;align-items:center;justify-content:center;gap:7px;flex:1;min-width:110px;min-height:44px;padding:9px 12px;border-radius:9px;color:var(--muted);font-size:.78rem;font-weight:700}.portal-switcher a.active{background:var(--paper);color:var(--portal-accent);box-shadow:0 2px 8px rgba(50,40,30,.08)}.portal-hero{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:27px;margin-bottom:16px;background:linear-gradient(120deg,var(--portal-soft),var(--paper));border:1px solid color-mix(in srgb,var(--portal-accent) 22%,var(--line));border-radius:18px}.portal-identity{display:flex;align-items:center;gap:16px}.portal-hero-icon{width:65px;height:65px;font-size:1.8rem;background:var(--paper);box-shadow:var(--shadow)}.portal-hero h1{font-size:clamp(1.55rem,3vw,2.15rem);margin-bottom:5px}.portal-identity p:last-child,.portal-intro{color:var(--muted);margin:0}.portal-intro{max-width:390px;line-height:1.55}.visibility-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.visibility-grid section{padding:14px 17px;background:var(--paper);border:1px solid var(--line);border-radius:12px}.visibility-grid section:first-child{border-left:4px solid var(--portal-accent)}.visibility-grid section:last-child{background:#f1ede7}.visibility-grid strong{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.visibility-grid section>div{display:flex;flex-wrap:wrap;gap:6px 14px}.visibility-grid span{color:var(--muted);font-size:.73rem}.portal-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:18px}.portal-stats-4{grid-template-columns:repeat(4,1fr)}.portal-stat-grid article{padding:19px;background:var(--paper);border:1px solid var(--line);border-bottom:4px solid var(--portal-accent);border-radius:13px;box-shadow:var(--shadow)}.portal-stat-grid small,.portal-stat-grid span{display:block;color:var(--muted)}.portal-stat-grid strong{display:block;font:700 1.45rem "Libre Baskerville";margin:7px 0}.portal-stat-grid span{font-size:.7rem}.portal-section-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.portal-section{overflow:hidden;background:var(--paper);border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow)}.portal-section-heading{display:flex;align-items:center;gap:10px;padding:19px 20px;border-bottom:1px solid var(--line)}.portal-section-heading>span{width:33px;height:33px;display:grid;place-items:center;border-radius:9px;background:var(--portal-soft);color:var(--portal-accent);font-weight:800}.portal-section-heading h2{font-size:1rem}.portal-wide{grid-column:1/-1}.portal-item-list{padding:3px 20px 15px}.portal-item-list>div{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-top:1px solid var(--line)}.portal-item-list>div:first-child{border-top:0}.portal-item-list small{color:var(--muted)}.portal-item-list strong{text-align:right;font-size:.83rem}.portal-section table th{background:var(--portal-soft);color:var(--portal-accent)}.portal-actions{margin-top:18px;padding:21px;background:var(--portal-soft);border-radius:15px}.portal-actions>div{display:flex;flex-wrap:wrap;gap:9px;margin:9px 0}.portal-actions button{min-height:46px;padding:10px 17px;border:0;border-radius:10px;background:var(--portal-accent);color:white;font-weight:700}.portal-actions small{color:var(--muted)}.portal-theme-tenant .portal-section-grid{max-width:900px;margin:auto}.portal-theme-tenant .portal-hero,.portal-theme-tenant .visibility-grid,.portal-theme-tenant .portal-stat-grid,.portal-theme-tenant .portal-actions{max-width:900px;margin-left:auto;margin-right:auto}.portal-theme-operations .portal-section-grid{grid-template-columns:repeat(2,1fr)}
@media(max-width:1100px){.portal-card-grid{grid-template-columns:repeat(2,1fr)}.portal-stats-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.portal-demo-banner,.portal-hero{align-items:flex-start;flex-direction:column}.portal-card-grid,.visibility-grid,.portal-stat-grid,.portal-stats-4,.portal-section-grid,.portal-theme-operations .portal-section-grid{grid-template-columns:1fr}.portal-landing-card{min-height:auto;padding:20px}.portal-switcher{margin-left:-16px;margin-right:-16px;border-radius:0;padding-left:16px;padding-right:16px}.portal-switcher a{flex:0 0 auto;min-width:116px}.portal-wide{grid-column:auto}.portal-intro{max-width:none}.visibility-grid section>div{display:grid}.portal-item-list>div{align-items:flex-start;flex-direction:column;gap:4px}.portal-item-list strong{text-align:left}.portal-actions button{width:100%}.portal-section{border-radius:13px}.portal-preview .responsive-table{margin:0}.portal-preview table td:first-child{background:var(--paper)}}
@media(max-width:390px){.portal-landing-card{flex-direction:column}.portal-identity{align-items:flex-start;flex-direction:column}.portal-hero{padding:21px}.portal-stat-grid article{padding:16px}}

/* Financial clarity and cross-app polish */
.financial-subnav{display:flex;gap:6px;overflow-x:auto;margin:-8px 0 25px;padding:5px;background:#ebe4d9;border-radius:12px;scrollbar-width:thin}.financial-subnav a{flex:1;min-width:max-content;padding:10px 15px;border-radius:8px;color:var(--muted);font-size:.76rem;font-weight:700;text-align:center}.financial-subnav a.active{background:var(--paper);color:var(--brown-dark);box-shadow:0 2px 7px rgba(50,40,30,.08)}.money-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.money-stat{padding:20px;background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);border-top:4px solid var(--tan)}.money-stat.positive{border-top-color:var(--sage)}.money-stat.attention{border-top-color:var(--rose)}.money-stat small,.money-stat span{display:block;color:var(--muted)}.money-stat strong{display:block;margin:7px 0;font:700 1.55rem "Libre Baskerville"}.money-stat span{font-size:.7rem}.finance-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(290px,.7fr);gap:17px;margin-top:18px}.finance-span{min-width:0}.mobile-record-list{display:grid}.mobile-record{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 0;border-top:1px solid var(--line)}.mobile-record:first-child{border-top:0}.record-main{display:flex;align-items:center;gap:11px;min-width:0}.record-main>div{min-width:0}.record-main strong,.record-main small{display:block}.record-main small{margin-top:3px;color:var(--muted);font-size:.7rem;white-space:normal}.payment-method-icon,.expense-category-icon{width:36px;height:36px;flex:0 0 auto;display:grid;place-items:center;border-radius:10px;background:var(--sage-soft);color:var(--sage);font-weight:800}.expense-category-icon{background:var(--tan-soft);color:var(--brown)}.record-value{text-align:right;flex:0 0 auto}.record-value>strong{display:block;margin-bottom:5px}.method-summary{display:grid;gap:15px}.method-summary>div>div{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px;font-size:.78rem}.method-summary i{display:block;height:8px;overflow:hidden;background:#ece6dd;border-radius:5px}.method-summary b{display:block;height:100%;min-width:5px;background:var(--sage);border-radius:5px}.balance-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.balance-card{display:flex;justify-content:space-between;gap:15px;padding:15px;border:1px solid var(--line);border-left:4px solid var(--tan);border-radius:11px}.balance-card.overdue{background:#fff9f7;border-left-color:var(--rose)}.balance-card>div:last-child{text-align:right}.balance-card strong,.balance-card small{display:block}.balance-card small{margin-top:4px;color:var(--muted);font-size:.69rem}.balance-card .invoice-status{margin-top:6px}.expense-highlight-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}.expense-highlight-grid>div{padding:16px;background:#f3ede4;border-radius:11px}.expense-highlight-grid span,.expense-highlight-grid small{display:block;color:var(--muted);font-size:.7rem}.expense-highlight-grid strong{display:block;margin:6px 0;font:700 1.2rem "Libre Baskerville"}.status-partially-paid{background:var(--blue-soft);color:#526c75}.invoice-mobile-list{display:none}.invoice-mobile-card{padding:17px;background:var(--paper);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow)}.invoice-mobile-card>div{display:flex;justify-content:space-between;gap:12px}.invoice-mobile-card>div:first-child{display:grid}.invoice-mobile-card>div:first-child small,.invoice-mobile-card>div:first-child span{color:var(--muted);font-size:.7rem}.invoice-mobile-card>div:last-child{align-items:flex-end;flex-direction:column}.invoice-mobile-card footer{display:flex;flex-wrap:wrap;gap:5px 15px;margin-top:13px;padding-top:12px;border-top:1px solid var(--line);color:var(--muted);font-size:.68rem}.large-balance{color:var(--brown);font:700 1.35rem "Libre Baskerville"}.payment-confirmation{display:flex;align-items:flex-start;gap:13px;margin-bottom:18px;padding:17px;background:var(--green-soft);border:1px solid #b8d0bd;border-radius:13px}.payment-confirmation>span{width:32px;height:32px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--green);color:white;font-weight:800}.payment-confirmation p{margin:3px 0 0;color:var(--muted);font-size:.78rem}.payment-page-grid .payment-form{margin:0;max-width:none}.bill-card{display:flex;justify-content:space-between;gap:12px;padding:13px 0;border-top:1px solid var(--line)}.bill-card:first-of-type{border-top:0}.bill-card>div:last-child{text-align:right}.bill-card strong,.bill-card small{display:block}.bill-card small{margin-top:3px;color:var(--muted);font-size:.68rem}.bill-card .invoice-status{margin-top:5px}.accounting-hero{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:18px;padding:24px;background:var(--paper);border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow)}.accounting-hero>div{padding:8px 15px}.accounting-hero small,.accounting-hero strong{display:block}.accounting-hero small{color:var(--muted)}.accounting-hero strong{margin-top:6px;font:700 1.5rem "Libre Baskerville"}.accounting-hero>span{color:#b5ada3;font-size:1.4rem}.accounting-hero .net{padding:16px;background:var(--green-soft);border-radius:11px}.accounting-hero .net strong{color:var(--green)}.accounting-total{margin-top:8px;border-top:2px solid var(--brown)!important;font-size:1rem}.accounting-note{display:flex;gap:14px;align-items:flex-start;margin-top:18px;padding:17px;background:var(--tan-soft);border-radius:12px}.accounting-note strong{flex:0 0 auto}.accounting-note p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.5}tbody tr:hover td{background:#fcf8f2}.panel-heading h2+small{margin-top:4px}.btn{transition:background .15s,transform .15s}.btn:hover{transform:translateY(-1px)}.invoice-status{white-space:nowrap}
@media(max-width:1100px){.money-stat-grid{grid-template-columns:repeat(2,1fr)}.expense-highlight-grid{grid-template-columns:1fr 1fr}.balance-card-grid{grid-template-columns:1fr}}
@media(max-width:760px){.financial-subnav{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;border-radius:0}.financial-subnav a{flex:0 0 auto;min-height:44px;display:grid;place-items:center}.money-stat-grid{grid-template-columns:1fr 1fr;gap:9px}.money-stat{padding:15px}.money-stat strong{font-size:1.3rem}.finance-dashboard-grid{grid-template-columns:1fr}.mobile-record{align-items:flex-start}.record-value>strong{font-size:.9rem}.desktop-finance-table{display:none}.invoice-mobile-list{display:grid;gap:11px}.payment-page-grid{display:flex;flex-direction:column}.payment-page-grid>form{order:2}.payment-page-grid>section{order:1}.accounting-hero{grid-template-columns:1fr}.accounting-hero>span{display:none}.accounting-hero>div{display:flex;justify-content:space-between;align-items:center}.accounting-hero small,.accounting-hero strong{margin:0}.accounting-note{flex-direction:column}.expense-highlight-grid{grid-template-columns:1fr 1fr}}
@media(max-width:390px){.money-stat-grid,.expense-highlight-grid{grid-template-columns:1fr}.mobile-record{display:grid;grid-template-columns:1fr}.record-value{display:flex;align-items:center;justify-content:space-between;text-align:left;padding-left:47px}.balance-card{flex-direction:column}.balance-card>div:last-child{text-align:left}.accounting-hero>div{align-items:flex-start;flex-direction:column;gap:5px}}

/* Cohesive usability refinements */
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #9d713d;outline-offset:3px}.main-nav{overflow-y:auto;padding-right:4px}.nav-group-label{margin:17px 12px 4px;color:#766d63;font-size:.61rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.nav-group-label:first-child{margin-top:0}.nav-link{min-height:44px}.btn,.nav-link,.quick-grid>a,.stat-card{touch-action:manipulation}.dashboard-actions{margin-bottom:26px}.dashboard-actions .section-heading{margin-top:0}.dashboard-quick{grid-template-columns:repeat(6,1fr)}.dashboard-quick>a{min-height:92px;padding:14px}.today-grid.five{grid-template-columns:repeat(5,1fr)}.dashboard-secondary{margin-top:34px;padding-top:5px;border-top:1px solid var(--line)}.attention-panel{border-top:4px solid var(--rose)}.helpful-empty{padding:28px;text-align:center;color:var(--muted);background:#f6f2eb;border-radius:10px}.helpful-empty strong,.helpful-empty span,.helpful-empty a{display:block}.helpful-empty a{margin-top:9px;color:var(--brown);font-weight:700}.optional-details{margin-top:24px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.optional-details summary,.portal-access-details summary{min-height:44px;display:flex;align-items:center;color:var(--brown);font-weight:700;cursor:pointer}.optional-details .form-grid{margin-top:17px}.portal-access-details{margin-top:22px;padding:5px 20px 20px;background:var(--paper);border:1px solid var(--line);border-radius:13px}.portal-access-details .visibility-grid{margin-top:10px}.status-partially-paid,.status-in-progress,.status-waiting{background:var(--blue-soft);color:#50666e}.status-complete,.status-current,.status-upcoming{background:var(--green-soft);color:var(--green)}.status-cancelled{background:#ece8e2;color:var(--muted)}input::placeholder,textarea::placeholder{color:#8b837a;opacity:1}summary{list-style-position:inside}
@media(max-width:1250px){.dashboard-quick{grid-template-columns:repeat(3,1fr)}.today-grid.five{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.sidebar{padding-top:16px}.brand{padding-bottom:15px}.main-nav{padding-top:10px}.nav-group-label{margin-top:12px}.nav-link{padding-top:9px;padding-bottom:9px}.dashboard-quick{grid-template-columns:repeat(2,1fr)}.dashboard-quick>a{min-height:104px}.today-grid.five{grid-template-columns:1fr 1fr}.dashboard-secondary{margin-top:28px}.responsive-table{scrollbar-width:thin}.responsive-table:after{content:"Swipe to see more";display:block;padding:8px 14px;color:var(--muted);font-size:.7rem;text-align:right}}
@media(max-width:390px){.dashboard-quick,.today-grid.five{grid-template-columns:1fr 1fr}.dashboard-quick>a{min-height:98px}.portal-access-details{padding-left:14px;padding-right:14px}}
.environment-banner{position:fixed;top:0;left:0;right:0;z-index:100;background:#8c4f35;color:#fff;text-align:center;padding:5px;font-size:.7rem;font-weight:800;letter-spacing:.12em}.environment-banner+.app-shell{padding-top:26px}.environment-banner+.app-shell .sidebar{top:26px}.sidebar-tools{margin-top:auto;display:grid;gap:8px}.nav-group{margin:0}.nav-group summary{cursor:pointer;list-style:none}.nav-dot{font-size:1.2rem;color:var(--sage)}.setup-list{padding:0}.setup-row{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;padding:18px 22px;border-top:1px solid var(--line)}.setup-row:first-child{border-top:0}.setup-check{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--tan-soft)}.setup-check.complete{background:var(--green-soft);color:var(--green)}.permission-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.permission-grid label{padding:10px;background:#f4efe8;border-radius:8px}.danger-zone{margin-top:30px;padding-top:20px;border-top:1px solid var(--line)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.public-account{margin-left:auto;position:relative}.public-account summary{cursor:pointer;font-weight:700}.account-menu{position:absolute;right:0;top:35px;z-index:20;min-width:210px;padding:8px;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.account-menu a,.account-menu button{display:block;width:100%;padding:10px;border:0;background:none;text-align:left}.sidebar-is-collapsed .sidebar{width:88px}.sidebar-is-collapsed .sidebar .brand span:last-child,.sidebar-is-collapsed .sidebar .nav-link span:last-child,.sidebar-is-collapsed .sidebar .nav-group-label,.sidebar-is-collapsed .sidebar-tools{display:none}.sidebar-is-collapsed .page-area{margin-left:88px}
@media(max-width:760px){.permission-grid{grid-template-columns:1fr}.public-header{flex-wrap:wrap}.public-header nav{order:3;width:100%;overflow-x:auto}.sidebar-is-collapsed .page-area{margin-left:0}}
