.site-footer{padding:1.25rem 1.25rem 1.5rem;text-align:center;border-top:1px solid var(--color-border);background:var(--color-surface);width:100%}.site-footer-verse{margin:0;font-size:clamp(.5625rem,1.35vw,.75rem);font-style:italic;color:var(--color-text-muted);line-height:1.4;white-space:nowrap}@media(max-width:640px){.site-footer{padding:1rem}.site-footer-verse{white-space:normal;font-size:.6875rem}}.app-shell{min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}.app-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:1.25rem 0}.app-header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;max-width:100%;padding:0 1.25rem}.app-brand{min-width:0;flex:1}.app-brand-title{display:flex;align-items:center;gap:.625rem;margin-bottom:.25rem;min-width:0}.app-logo{flex-shrink:0;display:block;width:2.5rem;height:2.5rem;object-fit:contain}.app-brand h1{font-family:var(--font-serif);font-size:1.375rem;font-weight:500;letter-spacing:-.03em;margin-bottom:0;min-width:0;line-height:1.2}.app-user{font-size:.8125rem;color:var(--color-text-muted);display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.admin-badge{background:var(--color-text);color:var(--color-surface);font-size:.625rem;font-weight:600;padding:.125rem .4rem;border-radius:3px;text-transform:uppercase;letter-spacing:.06em;font-family:var(--font-sans)}.app-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.app-menu-toggle{display:none}.app-header-actions button.app-sign-out{display:inline-flex}.app-tab-sign-out{display:none}.app-nav{background:var(--color-surface);border-bottom:1px solid var(--color-border)}.app-nav-inner{display:flex;justify-content:center;flex-wrap:wrap;gap:.125rem;width:100%;max-width:100%;padding:0 1.25rem}.app-tab{padding:.875rem 1rem;color:var(--color-text-muted);font-weight:500;font-size:.875rem;border-bottom:1px solid transparent;text-decoration:none;white-space:nowrap;transition:color .15s,border-color .15s,background .15s}.app-tab:hover{color:var(--color-text);text-decoration:none}.app-tab-active{color:var(--color-text);border-bottom-color:var(--color-text)}.app-main{flex:1;padding:2rem 1.25rem 3rem;min-width:0;max-width:100%}@media(max-width:768px){.app-header{padding:1rem 0}.app-header-inner{padding:0 1rem;gap:.5rem}.app-brand h1{font-size:.9375rem}.app-logo{width:2rem;height:2rem}.app-header-actions button.app-sign-out{display:none}.app-tab-sign-out{display:block;width:100%;text-align:left;background:none;border:none;border-top:1px solid var(--color-border);border-left:3px solid transparent;border-bottom:none;cursor:pointer;font:inherit;font-family:var(--font-sans);color:var(--color-danger)}.app-tab-sign-out:hover{background:#f5e5e3;color:var(--color-danger)}.app-menu-toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:2.5rem;height:2.5rem;padding:.5rem;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;flex-shrink:0}.app-menu-toggle:hover{background:var(--color-accent-bg)}.app-menu-bar{display:block;width:1.125rem;height:2px;background:var(--color-text);border-radius:1px;transition:transform .2s ease,opacity .2s ease}.app-menu-toggle-open .app-menu-bar:nth-child(1){transform:translateY(7px) rotate(45deg)}.app-menu-toggle-open .app-menu-bar:nth-child(2){opacity:0}.app-menu-toggle-open .app-menu-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.app-nav{display:none;border-bottom:none}.app-nav.app-nav-open{display:block;border-bottom:1px solid var(--color-border);box-shadow:0 4px 12px #0000000f}.app-nav-inner{flex-direction:column;flex-wrap:nowrap;gap:0;padding:0}.app-tab{display:block;padding:.875rem 1rem;font-size:.9375rem;text-align:left;border-bottom:1px solid var(--color-border);border-left:3px solid transparent}.app-tab:not(.app-tab-sign-out):last-of-type{border-bottom:1px solid var(--color-border)}.app-tab-active{border-bottom-color:var(--color-border);border-left-color:var(--color-text);background:var(--color-accent-bg)}.app-main{padding:1.25rem 1rem 2rem}}.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem 0}.auth-page .site-footer{margin-top:auto;width:100%;align-self:stretch}.auth-form{width:100%;max-width:400px}.auth-form h2{margin-bottom:.25rem;font-family:var(--font-serif);font-size:1.75rem;font-weight:500;letter-spacing:-.03em}.auth-subtitle{color:var(--color-text-muted);font-size:.875rem;margin-bottom:1.5rem}.auth-footer{margin-top:1.5rem;margin-bottom:0;font-size:.875rem;color:var(--color-text-muted);text-align:center}.auth-forgot{margin:-.25rem 0 .75rem;text-align:right;font-size:.875rem}.whitelist-access-request{margin-bottom:1rem;padding:1rem;background:var(--color-accent-bg);border-radius:var(--radius)}.whitelist-access-request .form-hint{margin-bottom:.75rem}.auth-inline-link{background:none;border:none;padding:0;font:inherit;color:var(--color-text);text-decoration:underline;text-decoration-color:var(--color-border);text-underline-offset:2px;cursor:pointer}.auth-inline-link:hover{text-decoration-color:var(--color-text)}.auth-inline-link:disabled{opacity:.6;cursor:not-allowed}.auth-inline-error{color:var(--color-danger);font-size:.8125rem}.form-hint{font-size:.875rem;color:var(--color-text-muted);margin-bottom:1rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;min-width:0}.booking-form,.schedule-section{max-width:100%;min-width:0}@media(max-width:640px){.form-row{grid-template-columns:1fr}}.booking-form{margin-bottom:2rem}.schedule-sidebar .schedule-section{margin-bottom:1.5rem}.schedule-section{margin-bottom:2rem}.schedule-section h3{margin-bottom:1rem}.schedule-list{display:flex;flex-direction:column}.minutes-list{display:flex;flex-direction:column;gap:1rem}.minute-card h3{margin-bottom:.25rem}.minute-date{font-size:.875rem;color:var(--color-text-muted);margin-bottom:1rem}.bylaws-page{max-width:800px}.bylaws-header{text-align:center;margin-bottom:1.5rem;padding:1.5rem}.bylaws-main-title{margin:0 0 .5rem;font-size:1.5rem;letter-spacing:-.03em}.bylaws-revised{margin:0 0 .5rem;font-size:.875rem;color:var(--color-text-muted)}.bylaws-subtitle{margin:0;font-size:1rem;font-weight:500}.bylaws-doc{padding:1.5rem}.bylaws-article{margin-bottom:2rem}.bylaws-article:last-child{margin-bottom:0}.bylaws-article h3{font-size:1.125rem;margin-bottom:.75rem;padding-bottom:.375rem;border-bottom:1px solid var(--color-border)}.page-header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.page-header-row .page-title{margin-bottom:0}.members-page .members-section{margin-bottom:1.5rem}.members-page .members-section h3{margin-bottom:.25rem}.members-list{list-style:none;margin:0;padding:0}.member-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--color-border)}.member-row:last-child{border-bottom:none}.member-info{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.member-email{font-size:.875rem;color:var(--color-text-muted)}@media(max-width:480px){.member-row{flex-direction:column;align-items:flex-start}}.admin-page .admin-section{margin-bottom:1.5rem}.admin-page .admin-section h3{margin-bottom:.25rem}.admin-user-list{display:flex;flex-direction:column;gap:.5rem}.admin-user-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--color-border)}.admin-user-row:last-child{border-bottom:none}.admin-whitelist-form{display:flex;gap:.5rem;margin-bottom:1rem}.admin-whitelist-form input{flex:1;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius)}.admin-whitelist-list{display:flex;flex-direction:column;gap:.5rem}.admin-whitelist-row{display:flex;align-items:center;gap:.75rem;padding:.75rem 0;border-bottom:1px solid var(--color-border)}.admin-whitelist-row:last-child{border-bottom:none}.admin-whitelist-email{flex:1;font-size:.9375rem}.admin-user-info{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.admin-user-email{font-size:.875rem;color:var(--color-text-muted)}.admin-user-self{font-size:.875rem;color:var(--color-text-muted);font-style:italic}.admin-user-actions{display:flex;flex-wrap:wrap;gap:.5rem;flex-shrink:0}.admin-messaging .admin-copy-emails{margin-bottom:1.25rem}.admin-messaging-forms{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.admin-message-form h4{font-family:var(--font-sans);font-size:.9375rem;font-weight:600;margin-bottom:.75rem}.admin-scheduled-meetings{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.admin-scheduled-meetings h4{font-family:var(--font-sans);font-size:.9375rem;font-weight:600;margin-bottom:.75rem}.admin-scheduled-meeting-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.admin-scheduled-meeting-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.875rem 1rem;background:var(--color-accent-bg);border-radius:var(--radius)}.admin-scheduled-meeting-link{display:block;margin-top:.25rem;font-size:.8125rem;word-break:break-all}.admin-scheduled-meeting-notes{margin:.375rem 0 0;font-size:.8125rem;color:var(--color-text-muted)}@media(max-width:768px){.admin-messaging-forms{grid-template-columns:1fr}.admin-scheduled-meeting-row{flex-direction:column}}.admin-pending-list{display:flex;flex-direction:column;gap:1rem}.admin-pending-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem 0 1rem .75rem;border-bottom:1px solid var(--color-border);border-left:4px solid var(--color-border)}.admin-pending-row:last-child{border-bottom:none}.admin-pending-main{flex:1;min-width:0}.admin-pending-dates{font-weight:600;font-size:.9375rem;margin-bottom:.375rem}.admin-pending-info{display:flex;flex-direction:column;gap:.25rem}.admin-pending-member{font-size:.875rem}.admin-pending-notes{font-size:.875rem;color:var(--color-text-muted);font-style:italic}.admin-pending-actions{display:flex;flex-wrap:wrap;gap:.5rem;flex-shrink:0}.admin-pending-edit-dates,.admin-pending-edit-dates .form-group{margin-bottom:0}.admin-pending-reject-form{margin-top:.75rem;margin-bottom:0}.admin-btn-reject{color:#8b2e24;border-color:#d4a9a4}.admin-btn-reject:hover{background:#f5e5e3}@media(max-width:640px){.admin-pending-row{flex-direction:column}.admin-pending-actions{width:100%}}.admin-user-family{display:block;font-size:.8125rem;color:var(--color-text-muted)}.admin-user-controls{display:flex;flex-wrap:wrap;gap:.75rem 1rem;min-width:0}.admin-user-control{display:flex;flex-direction:column;gap:.25rem;min-width:10rem}.admin-user-control label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.admin-user-control select{width:100%;min-width:10rem;max-width:16rem;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);font:inherit}.admin-roles-dropdown{position:relative;width:100%;min-width:10rem;max-width:16rem}.admin-roles-dropdown-trigger{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);font:inherit;text-align:left;cursor:pointer}.admin-roles-dropdown-trigger:disabled{opacity:.6;cursor:not-allowed}.admin-roles-dropdown-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-roles-dropdown-chevron{flex-shrink:0;color:var(--color-text-muted);font-size:.75rem}.admin-roles-dropdown-menu{position:absolute;top:calc(100% + .25rem);left:0;right:0;z-index:20;padding:.375rem 0;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);box-shadow:0 4px 12px #00000014}.admin-roles-dropdown-option{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;cursor:pointer;font-size:.875rem}.admin-roles-dropdown-option:hover{background:var(--color-accent-bg)}.admin-roles-dropdown-option:has(input:disabled){opacity:.5;cursor:not-allowed}.admin-house-rate-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.admin-house-rate-row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;padding:.875rem 1rem;background:var(--color-accent-bg);border-radius:var(--radius)}.admin-house-rate-info{display:flex;align-items:center;gap:.5rem;min-width:9rem}.admin-house-rate-control{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:12rem}.admin-house-rate-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.admin-house-rate-input-wrap{display:flex;align-items:center;gap:.375rem}.admin-house-rate-input-wrap input{width:6rem;padding:.5rem .625rem;border:1px solid var(--color-border);border-radius:var(--radius);font:inherit}.admin-house-rate-prefix,.admin-house-rate-suffix{font-size:.875rem;color:var(--color-text-muted)}.admin-family-schedule h3{margin-bottom:.5rem}.admin-family-instructions{margin:1rem 0 1.25rem;padding:1rem 1.125rem;background:var(--color-accent-bg);border-radius:var(--radius);border-left:3px solid var(--color-text-muted)}.admin-family-instructions h4{margin:0 0 .625rem;font-family:var(--font-sans);font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.admin-family-steps{margin:0 0 .875rem;padding-left:1.25rem;font-size:.9375rem;line-height:1.5}.admin-family-steps li{margin-bottom:.375rem}.admin-family-example,.admin-family-note{margin:0 0 .625rem;font-size:.875rem;line-height:1.5;color:var(--color-text-muted)}.admin-family-note{margin-bottom:0;font-style:italic}.admin-family-form-heading,.admin-family-current h4{margin:0 0 .75rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:600}.admin-family-current{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--color-border)}.admin-field-hint{display:block;margin-top:.25rem;font-size:.75rem;color:var(--color-text-muted)}.admin-family-preview{margin:0 0 1rem;padding:.625rem .75rem;background:#e3efe8;border-radius:var(--radius);font-size:.875rem;color:#2d6a4f}.admin-family-block-groups{display:flex;flex-direction:column;gap:1rem}.admin-family-block-group h5{margin:0 0 .5rem;font-family:var(--font-serif);font-size:1rem;font-weight:500}.admin-family-year{max-width:10rem}.admin-family-block-form{margin-bottom:1rem;padding:1rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.admin-family-block-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.admin-family-block-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--color-border)}.admin-family-block-row:last-child{border-bottom:none}.booking-family-windows{margin-bottom:1rem;padding:.875rem 1rem;background:var(--color-accent-bg);border-radius:var(--radius)}.booking-family-windows-title{margin-bottom:.5rem}.booking-family-window-list{margin:0;padding-left:1.25rem;font-size:.9375rem}.member-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.125rem}.member-family{font-size:.8125rem;color:var(--color-text-muted)}@media(max-width:640px){.member-meta{align-items:flex-start}}@media(max-width:480px){.admin-user-row,.admin-whitelist-row,.admin-family-block-row{flex-direction:column;align-items:flex-start}.admin-whitelist-form{flex-direction:column}}.treasurer-billing-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:1rem}.treasurer-billing-table-wrap{overflow-x:auto}.treasurer-billing-table{width:100%;border-collapse:collapse;font-size:.875rem}.treasurer-billing-table th,.treasurer-billing-table td{padding:.625rem .5rem;text-align:left;border-bottom:1px solid var(--color-border);vertical-align:top}.treasurer-billing-table th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.treasurer-bill-email{display:block;font-size:.8125rem;color:var(--color-text-muted)}.treasurer-bill-meta{display:block;font-size:.75rem;color:var(--color-text-muted);margin-top:.25rem}.treasurer-bill-notes{width:100%;min-width:8rem;padding:.375rem .5rem;border:1px solid var(--color-border);border-radius:var(--radius)}.schedule-block-banner{margin-bottom:1rem}.discussion-page{max-width:1100px;width:100%;min-width:0}.discussion-toolbar{margin-bottom:1.25rem}.discussion-toolbar .page-title{margin-bottom:.75rem}.discussion-toolbar-actions{display:flex;gap:.75rem;align-items:center}.discussion-search{flex:1;min-width:0;width:100%;max-width:100%;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.9375rem;background:var(--color-surface)}.discussion-search:focus{outline:2px solid var(--color-primary);outline-offset:1px}.discussion-empty{text-align:center;padding:2rem}.discussion-empty .btn{margin-top:1rem}.discussion-layout{display:grid;grid-template-columns:minmax(220px,280px) 1fr;gap:1rem;align-items:start}.discussion-sidebar{padding:0;overflow:hidden;display:flex;flex-direction:column;max-height:calc(100vh - 220px)}.discussion-sidebar-heading{margin:0;padding:.875rem 1rem;font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);flex-shrink:0}.discussion-sidebar-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1}.discussion-sidebar-item{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;width:100%;padding:.875rem 1rem;border:none;border-bottom:1px solid var(--color-border);background:var(--color-surface);text-align:left;cursor:pointer;transition:background .15s}.discussion-sidebar-item:hover{background:var(--color-bg)}.discussion-sidebar-item-active{background:var(--color-accent-bg);border-left:2px solid var(--color-text);padding-left:calc(1rem - 2px)}.discussion-sidebar-title{font-weight:600;font-size:.875rem;line-height:1.3;color:var(--color-text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.discussion-sidebar-meta{font-size:.75rem;color:var(--color-text-muted)}.discussion-sidebar-empty{padding:1.5rem 1rem}.discussion-main{padding:1.25rem;min-height:320px}.discussion-post-title{margin:0 0 .5rem;font-size:1.375rem;line-height:1.3}.discussion-page .discussion-form h3{margin-bottom:1rem}.discussion-post-body{white-space:pre-wrap;margin:.75rem 0}.discussion-votes{margin:1rem 0;padding:.875rem 1rem;background:var(--color-accent-bg);border-radius:var(--radius)}.discussion-votes-header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;min-height:2.25rem}.discussion-vote-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font:inherit;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.discussion-vote-btn:hover:not(:disabled){background:var(--color-bg);border-color:var(--color-text-muted)}.discussion-vote-btn-active{background:#e3efe8;border-color:#2d6a4f;color:#2d6a4f}.discussion-vote-btn-down-active{background:#fde8e8;border-color:#b42318;color:#b42318}.discussion-vote-btn:disabled{opacity:.6;cursor:not-allowed}.discussion-vote-icon{font-size:.75rem;line-height:1}.discussion-vote-count{display:inline-block;min-width:4.5rem;text-align:left}.discussion-vote-count-placeholder{visibility:hidden}.discussion-vote-you{font-size:.8125rem;color:var(--color-success);font-weight:500;visibility:hidden}.discussion-vote-you-visible{visibility:visible}.discussion-voters{margin-top:0;padding-top:0;border-top:none;max-height:0;overflow:hidden;opacity:0;transition:max-height .2s ease,opacity .2s ease,margin-top .2s ease,padding-top .2s ease}.discussion-voters-visible{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--color-border);max-height:12rem;opacity:1}.discussion-voting-option{margin-top:.25rem}.discussion-checkbox-label{display:inline-flex;align-items:center;gap:.5rem;font-weight:500;cursor:pointer}.discussion-voters-heading{margin:0 0 .5rem;font-family:var(--font-sans);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.discussion-voters-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.375rem .75rem}.discussion-voter{font-size:.875rem;font-weight:500}.discussion-voter-you{color:var(--color-text-muted);font-weight:400}.discussion-post-image{max-width:100%;max-height:400px;border-radius:var(--radius);object-fit:contain;margin-bottom:.75rem}.discussion-image-preview{max-width:200px;max-height:200px;border-radius:var(--radius);object-fit:cover;margin-bottom:1rem}.discussion-post-header,.discussion-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem .75rem}.discussion-author{font-size:.9375rem}.discussion-date{font-size:.8125rem;color:var(--color-text-muted)}.discussion-post-actions{display:flex;align-items:center;gap:1rem;margin-bottom:.5rem}.discussion-reply-count{font-size:.8125rem;color:var(--color-text-muted)}.btn-link{background:none;border:none;padding:0;color:var(--color-text);font-weight:500;font-size:.875rem;cursor:pointer;text-decoration:underline;text-decoration-color:var(--color-border);text-underline-offset:2px}.btn-link-danger{color:var(--color-danger)}.btn-link-danger:hover{color:var(--color-danger);text-decoration-color:var(--color-danger)}.btn-link:hover{text-decoration:underline}.discussion-reply{border-left:3px solid var(--color-border);padding-left:.75rem;margin-top:.75rem}.discussion-reply-header{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--color-text-muted);margin-bottom:.25rem}.reply-indicator{color:var(--color-text-muted);font-weight:700}.reply-to-tag strong{color:var(--color-text)}.discussion-reply-body p{margin:.25rem 0 .5rem;white-space:pre-wrap}.discussion-reply-form{margin:.75rem 0;padding:.75rem;background:var(--color-bg);border-radius:var(--radius)}.discussion-reply-form textarea{width:100%;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:.5rem;resize:vertical}.reply-to-label{font-size:.8125rem;color:var(--color-text-muted);margin:0 0 .5rem}.reply-form-actions{display:flex;gap:.5rem}.discussion-loading-replies{font-size:.875rem;color:var(--color-text-muted);margin-top:.75rem}.reply-thread{margin-top:.5rem}.minute-detail-body{margin-top:1rem}@media(max-width:768px){.discussion-layout{grid-template-columns:1fr;min-width:0}.discussion-sidebar{max-height:220px}.discussion-toolbar-actions{flex-direction:column;align-items:stretch}.discussion-main{min-width:0;overflow-wrap:break-word}}.minutes-archive-hint{margin-top:-.5rem;margin-bottom:1rem}.archive-minute-badge{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.archive-minute-body{white-space:pre-wrap;line-height:1.6;font-size:.9375rem}.profile-page .profile-section{margin-bottom:1.5rem}.profile-page .profile-section h3{margin-bottom:.75rem}.profile-name-form{max-width:28rem}.profile-overview h3{margin-bottom:1rem}.profile-details{margin:0;display:flex;flex-direction:column;gap:.875rem}.profile-detail-row{display:grid;grid-template-columns:minmax(7rem,10rem) 1fr;gap:.5rem 1rem;align-items:start}.profile-detail-row dt{margin:0;font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.profile-detail-row dd{margin:0;font-size:.9375rem}.profile-detail-muted{color:var(--color-text-muted);font-style:italic}.profile-role-badges{display:flex;flex-wrap:wrap;gap:.375rem;margin-bottom:.375rem}.profile-role-list{margin:.375rem 0 0;padding-left:1.125rem;color:var(--color-text-muted);font-size:.875rem}.profile-role-list li{margin-bottom:.125rem}.profile-vote-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.625rem}.profile-vote-item{padding:.75rem .875rem;background:var(--color-accent-bg);border-radius:var(--radius)}.profile-vote-title{display:block;font-weight:600;font-size:.9375rem;color:var(--color-text);text-decoration:none;margin-bottom:.25rem}.profile-vote-title:hover{text-decoration:underline}.profile-vote-meta{font-size:.8125rem;color:var(--color-text-muted)}@media(max-width:640px){.profile-detail-row{grid-template-columns:1fr;gap:.25rem}}.profile-stat{font-size:1.125rem;margin-bottom:.75rem}.profile-stat strong{font-family:var(--font-serif);font-size:1.5rem;margin-right:.25rem}.profile-list{list-style:none;margin:0;padding:0}.profile-list-item{padding:.5rem 0;border-bottom:1px solid var(--color-border)}.profile-list-item:last-child{border-bottom:none}.profile-booking-group{margin-bottom:1.25rem}.profile-booking-group:last-child{margin-bottom:0}.profile-booking-group h4{font-family:var(--font-sans);font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin-bottom:.5rem}.profile-booking-list{display:flex;flex-direction:column;gap:.5rem}.profile-booking-item{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.profile-booking-cancel{margin-left:auto;flex-shrink:0}.profile-cost-hint{margin-bottom:1rem}.profile-cost-lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.625rem}.profile-cost-line{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding:.625rem .75rem;background:var(--color-accent-bg);border-radius:var(--radius)}.profile-cost-line-dates{flex:1;min-width:0;font-weight:500}.profile-cost-line-amount{font-size:.9375rem;color:var(--color-text-muted);white-space:nowrap}.profile-cost-by-house{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--color-border)}.profile-cost-by-house h4{font-family:var(--font-sans);font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin-bottom:.5rem}.profile-cost-house-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.375rem}.profile-cost-house-item{display:flex;align-items:center;gap:.5rem;font-size:.9375rem}.profile-cost-total{margin:1.25rem 0 0;padding-top:1rem;border-top:1px solid var(--color-border);font-size:1.125rem}.profile-cost-total strong{font-family:var(--font-serif);font-size:1.375rem}.profile-billing-status{margin-bottom:1rem;display:flex;flex-direction:column;gap:.5rem}.profile-billing-amount,.profile-billing-prior{margin:0;font-size:.9375rem}.profile-billing-paid-date{color:var(--color-text-muted);font-size:.875rem}.profile-billing-warning{margin-bottom:1rem}.house-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .75rem;border-radius:999px;font-size:.875rem;font-weight:500;color:#fff}.house-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.house-legend{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem;max-width:100%}@media(max-width:640px){.house-chip{font-size:.75rem;padding:.25rem .5rem}}.booking-item{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;border-left:4px solid;background:var(--color-surface);border-radius:var(--radius);margin-bottom:.5rem;box-shadow:var(--shadow)}.booking-item-dates{font-weight:600}@media(min-width:641px){.booking-item-dates{white-space:nowrap}}.booking-item-meta{font-size:.875rem;color:var(--color-text-muted)}.minutes-subnav{display:flex;gap:.5rem;margin-bottom:1rem;border-bottom:1px solid var(--color-border)}.minutes-subnav-link{display:inline-block;padding:.5rem .75rem;margin-bottom:-1px;font-size:.875rem;font-weight:600;color:var(--color-text-muted);text-decoration:none;border-bottom:2px solid transparent}.minutes-subnav-link:hover{color:var(--color-text)}.minutes-subnav-link-active{color:var(--color-text);border-bottom-color:var(--color-accent, #2f5f9c)}.schedule-calendar{margin-bottom:2rem;width:100%;max-width:100%;min-width:0;overflow:hidden}.schedule-calendar-square{height:100%;margin-bottom:0;display:flex;flex-direction:column;min-height:0}.schedule-calendar-square .calendar-header{flex-shrink:0}.schedule-calendar-square .calendar-grid{flex:1;min-height:0;grid-template-rows:auto repeat(6,1fr)}.schedule-calendar-square .calendar-day{min-height:0;height:100%}.schedule-calendar-square .calendar-weekday{display:flex;align-items:center;justify-content:center}.calendar-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.calendar-month-label{margin:0;font-size:1.125rem;text-align:center;flex:1}.calendar-legend{display:flex;flex-wrap:wrap;gap:.75rem 1rem;margin-bottom:.875rem;font-size:.75rem;color:var(--color-text-muted)}.calendar-legend-item{display:inline-flex;align-items:center;gap:.375rem}.calendar-legend-swatch{width:.75rem;height:.75rem;border-radius:2px;flex-shrink:0}.calendar-legend-swatch-booking{background:#d4e4f4;border:1px solid #7ba7d8}.calendar-legend-swatch-work-week{background:#f3e8d8;border:1px solid #c9a66b}.calendar-legend-swatch-meeting{background:#e5edf8;border:1px solid #6b8fc7}.calendar-legend-swatch-no-cost{background:#edf5ed;border:1px solid #8fbc8f}.calendar-rent-hint{margin:0 0 .875rem}.calendar-nav-btn{min-width:2.5rem;padding:.5rem .75rem;font-size:1.25rem;line-height:1}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;width:100%;max-width:100%}.calendar-weekday{background:var(--color-bg);padding:.5rem;text-align:center;font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.calendar-day{position:relative;background:var(--color-surface);min-height:5.5rem;padding:.375rem;display:flex;flex-direction:column;gap:.25rem;transition:box-shadow .15s ease}.calendar-day:not(.calendar-day-empty):hover{z-index:5;box-shadow:inset 0 0 0 9999px #ffffff38}.calendar-day-fill{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;transition:opacity .15s ease}.calendar-day:not(.calendar-day-empty):hover .calendar-day-fill{opacity:.55}.calendar-day-empty{background:var(--color-bg)}.calendar-day-blocked{background:#e8e6e2;opacity:.65}.calendar-day-blocked .calendar-day-num{color:#9a948c}.calendar-day-blocked:hover{box-shadow:none}.calendar-day-open{background:#eef6ee;box-shadow:inset 0 0 0 1px #b8d4b8}.calendar-day-open .calendar-day-num{color:#4a7a4a}.calendar-day-no-cost{background:#edf5ed;box-shadow:inset 0 0 0 1px #8fbc8f}.calendar-day-no-cost .calendar-day-num{color:#4a7a4a}.calendar-day-booked{background:var(--color-surface)}.calendar-day-work-week{box-shadow:inset 0 0 0 1px #d4b896}.calendar-day-meeting{box-shadow:inset 0 0 0 1px #9eb8e0}.calendar-event-label{font-size:.625rem;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event-work-week{color:#8a5a1e}.calendar-event-meeting{color:#2f5f9c}.calendar-day-num,.calendar-day-bookings{position:relative;z-index:1}.calendar-day-num{font-size:.8125rem;font-weight:600;color:var(--color-text-muted);line-height:1}.calendar-day-bookings{display:flex;flex-direction:column;gap:.125rem;overflow:hidden}.calendar-booking-name{font-size:.6875rem;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-booking-pending{opacity:.75;font-style:italic}.calendar-day-tooltip{position:absolute;left:50%;bottom:calc(100% + 6px);transform:translate(-50%);min-width:9.5rem;max-width:13rem;padding:.5rem .625rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 4px 16px #0000001a;font-size:.75rem;line-height:1.4;opacity:0;visibility:hidden;transition:opacity .15s ease,visibility .15s ease;pointer-events:none;z-index:10}.calendar-day:not(.calendar-day-empty):hover .calendar-day-tooltip{opacity:1;visibility:visible}.calendar-day-tooltip-interactive{pointer-events:auto}.calendar-tooltip-kind{font-weight:600;font-size:.8125rem}.calendar-tooltip-meta{color:var(--color-text-muted);font-size:.6875rem}.calendar-tooltip-link{color:var(--color-text);font-weight:600;text-decoration:underline;font-size:.75rem}.calendar-tooltip-empty{color:var(--color-text-muted);font-style:italic}.calendar-tooltip-entry{display:flex;flex-direction:column;gap:.125rem}.calendar-tooltip-entry+.calendar-tooltip-entry{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--color-border)}.calendar-tooltip-house{font-weight:600;font-size:.8125rem}.calendar-tooltip-name{font-weight:500}.calendar-tooltip-dates{color:var(--color-text-muted);font-size:.6875rem}.calendar-tooltip-notes{color:var(--color-text-muted);font-size:.6875rem;font-style:italic;margin-top:.125rem}@media(min-width:641px){.calendar-grid{overflow:visible}}@media(max-width:640px){.calendar-header{gap:.5rem;margin-bottom:.75rem}.calendar-month-label{font-size:1rem}.calendar-nav-btn{min-width:2rem;padding:.375rem .5rem;font-size:1.125rem}.calendar-day{min-height:2.75rem;padding:.125rem}.calendar-day-num{font-size:.6875rem}.calendar-booking-name,.calendar-event-label{font-size:.5rem}.calendar-weekday{font-size:.5625rem;padding:.25rem .0625rem}.calendar-day-tooltip{display:none}}.schedule-page{width:100%;max-width:100%;min-width:0}.schedule-page .page-title{text-align:center}.schedule-page-intro{text-align:center;margin:-.25rem 0 1.25rem}.schedule-main{display:flex;flex-direction:column;gap:1.5rem;width:100%;max-width:100%;min-width:0}.schedule-sidebar{min-width:0;max-width:100%}.schedule-calendar-panel{width:100%;max-width:100%;min-width:0;overflow:hidden}@media(min-width:768px){.schedule-page{width:80vw;max-width:80vw;margin-inline:calc(50% - 40vw)}.schedule-main{display:grid;grid-template-columns:300px minmax(0,1fr);grid-template-areas:"sidebar calendar";gap:2rem;align-items:start}.schedule-sidebar{grid-area:sidebar;min-width:0}.schedule-calendar-panel{grid-area:calendar;min-width:0;width:100%;aspect-ratio:1}.schedule-sidebar .booking-form{margin-bottom:1.5rem}.schedule-sidebar .booking-form .form-row{grid-template-columns:1fr}}@media(max-width:767px){.schedule-main{display:flex;flex-direction:column-reverse}}.work-week-page .work-week-form{margin-bottom:1.5rem}.work-week-page .work-week-form h3{margin-bottom:.75rem}.work-week-form-action{display:flex;align-items:flex-end}.work-week-preview{margin-bottom:0}.work-week-list{display:flex;flex-direction:column;gap:1rem}.work-week-card-header{margin-bottom:1rem}.work-week-card-header h3{margin-bottom:.25rem}.work-week-meta{font-size:.875rem;color:var(--color-text-muted)}.work-week-participants h4{font-family:var(--font-sans);font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin-bottom:.5rem}.work-week-member-list{list-style:none;margin:0;padding:0}.work-week-member{display:flex;align-items:center;gap:.5rem;padding:.375rem 0;border-bottom:1px solid var(--color-border)}.work-week-member:last-child{border-bottom:none}.work-week-projects{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--color-border)}.work-week-projects h4,.work-week-project-form h5{font-family:var(--font-sans);font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin-bottom:.5rem}.work-week-project-list{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.75rem}.work-week-project{padding:.875rem 1rem;background:var(--color-accent-bg);border-radius:var(--radius)}.work-week-project-header{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem .75rem;margin-bottom:.375rem}.work-week-project-title{font-size:.9375rem}.work-week-project-meta{font-size:.8125rem;color:var(--color-text-muted)}.work-week-project-description{margin:0 0 .5rem;font-size:.875rem;color:var(--color-text-muted);white-space:pre-wrap}.work-week-project-assignees{margin-bottom:.625rem}.work-week-project-unassigned{font-size:.8125rem;color:var(--color-text-muted);font-style:italic}.work-week-project-member-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.375rem .75rem}.work-week-project-member{font-size:.875rem}.work-week-project-actions{display:flex;flex-wrap:wrap;gap:.5rem}.work-week-project-form{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border)}.work-week-card-actions{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border);display:flex;flex-wrap:wrap;gap:.5rem}@media(max-width:480px){.work-week-form .form-row{grid-template-columns:1fr}.work-week-form-action{align-items:stretch}}.projects-page-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.projects-page-header .page-title{margin-bottom:.25rem}.project-form{margin-bottom:1.5rem}.project-form h3{margin-bottom:.75rem}.project-form-actions{display:flex;gap:.5rem;flex-wrap:wrap}.project-image-preview{display:block;max-width:100%;max-height:240px;margin-bottom:1rem;border-radius:var(--radius);object-fit:cover}.project-list{display:flex;flex-direction:column;gap:1rem}.project-card-header{margin-bottom:.75rem}.project-card-header h3{margin-bottom:.25rem}.project-meta{font-size:.875rem;color:var(--color-text-muted)}.project-body{white-space:pre-wrap;margin-bottom:1rem}.project-image{display:block;max-width:100%;max-height:360px;margin-bottom:1rem;border-radius:var(--radius);object-fit:cover}.project-participants{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border)}.project-participants h4{font-family:var(--font-sans);font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin-bottom:.5rem}.project-member-list{list-style:none;margin:0;padding:0}.project-member{display:flex;align-items:center;gap:.5rem;padding:.375rem 0;border-bottom:1px solid var(--color-border)}.project-member:last-child{border-bottom:none}.project-card-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border)}.house-care-page{max-width:48rem}.house-care-header{margin-bottom:1.5rem}.house-care-header-top{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.house-care-title{margin:0 0 .25rem;font-family:var(--font-serif)}.house-care-subtitle{margin:0;color:var(--color-text-muted);font-size:.9375rem}.house-care-contact h3{margin:0 0 .5rem;font-size:.875rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.house-care-contact p{margin:0}.house-care-doc{margin-bottom:1.5rem}.house-care-article{margin-bottom:2rem}.house-care-article:last-child{margin-bottom:0}.house-care-article h3{margin-bottom:.75rem;font-family:var(--font-serif)}.house-care-edit-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.house-care-add-section h3{margin-bottom:1rem}:root{--color-bg: #f4f1ec;--color-surface: #fdfcfa;--color-border: #e3ddd4;--color-text: #1a1a1a;--color-text-muted: #6b6560;--color-primary: #1a1a1a;--color-primary-hover: #333333;--color-accent-bg: #ebe6de;--color-danger: #b42318;--color-success: #2d6a4f;--color-warning: #92680a;--font-serif: "Fraunces", Georgia, "Times New Roman", serif;--font-sans: "DM Sans", system-ui, -apple-system, sans-serif;--radius: 6px;--shadow: none;--max-width: 1040px}*,*:before,*:after{box-sizing:border-box}html{overflow-x:hidden}body{margin:0;font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;max-width:100%}#root{min-height:100vh}a{color:var(--color-text);text-decoration:underline;text-decoration-color:var(--color-border);text-underline-offset:2px}a:hover{text-decoration-color:var(--color-text)}h1,h2,h3,h4{margin:0 0 .5rem;line-height:1.2;font-family:var(--font-serif);font-weight:500;letter-spacing:-.02em}p{margin:0 0 1rem}button,input,select,textarea{font:inherit;font-family:var(--font-sans)}button{cursor:pointer}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 1.25rem;min-width:0}@media(max-width:640px){.container{padding:0}}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem;max-width:100%;min-width:0;overflow-wrap:break-word}@media(max-width:640px){.card{padding:1rem}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5625rem 1.125rem;border:none;border-radius:var(--radius);font-weight:500;font-size:.9375rem;letter-spacing:.01em;transition:background .15s,color .15s,border-color .15s}.btn-primary{background:var(--color-primary);color:#fdfcfa}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:transparent;color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-accent-bg);border-color:#cfc7bc}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.375rem;font-weight:500;font-size:.8125rem;letter-spacing:.03em;text-transform:uppercase;color:var(--color-text-muted)}.form-group input,.form-group select,.form-group textarea{width:100%;max-width:100%;min-width:0;padding:.625rem .875rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text)}input[type=date],input[type=datetime-local],input[type=time]{max-width:100%;min-width:0}textarea{resize:vertical;field-sizing:fixed}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:1px solid var(--color-text);outline-offset:1px;border-color:var(--color-text)}.error-message{color:var(--color-danger);font-size:.875rem;margin-top:.5rem}.success-message{color:var(--color-success);font-size:.875rem;margin-top:.5rem}.badge{display:inline-block;padding:.125rem .5rem;border-radius:999px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;font-family:var(--font-sans)}.badge-pending{background:#f5edd6;color:#7a5c12}.badge-approved{background:#e3efe8;color:#2d6a4f}.badge-president{background:#ebe6de;color:#5c4a1a;border:1px solid #c9b896}.badge-officer{background:#e8eef5;color:#2a4a6b;border:1px solid #b8c9dc}.badge-rejected{background:#f5e5e3;color:#8b2e24}.badge-billing-paid{background:#e3efe8;color:#2d6a4f}.badge-billing-billed{background:#f5edd6;color:#7a5c12}.badge-billing-arrangement{background:#e8eef5;color:#2a4a6b}.badge-billing-overdue{background:#f5e5e3;color:#8b2e24}.badge-billing-unbilled{background:#ebe6de;color:#6b6560}.markdown-body h1,.markdown-body h2,.markdown-body h3{margin-top:1.5rem;font-family:var(--font-serif)}.markdown-body ul,.markdown-body ol{padding-left:1.5rem}.markdown-body li{margin-bottom:.35rem}.loading{color:var(--color-text-muted);padding:3rem 2rem;text-align:center;font-size:.9375rem}.page-title{font-family:var(--font-serif);font-size:1.75rem;font-weight:500;letter-spacing:-.03em;margin-bottom:1.5rem}.form-hint{font-size:.9375rem;color:var(--color-text-muted);line-height:1.5}.empty-state{color:var(--color-text-muted);font-style:italic}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
