@font-face{font-family:Inter;src:url('assets/inter-latin-wght-normal.woff2') format('woff2');font-weight:100 900;font-display:swap}:root{font-family:Inter,system-ui,sans-serif;color:#292338;background:#f6f5f9;--purple:#442e84;--gold:#ffcd34;--muted:#70697b;--line:#e7e2ef}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}button,a,input,select,textarea{outline-offset:4px}button:focus-visible,a:focus-visible{outline:3px solid #b49224}a{color:var(--purple)}[hidden]{display:none!important}.skip{position:absolute;left:15px;top:-100px;z-index:20;background:white;padding:15px}.skip:focus{top:10px}.loading{padding:15vh 25px;text-align:center}.loading img{border-radius:50%}.shell{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100svh}.sidebar{position:sticky;top:0;height:100svh;background:#302052;color:#fff;padding:30px 18px;display:flex;flex-direction:column;overflow:auto}.brand{display:flex;align-items:center;gap:12px;margin:0 5px 28px;font-size:14px;font-weight:650;line-height:1.5}.brand img{width:48px;height:48px;border-radius:50%;background:#fff}.brand small{display:block;color:#c5b6e4;font-size:10px;font-weight:450;letter-spacing:1px}.role-tag{border-top:1px solid #ffffff24;padding:17px 10px;color:#ffdc70;font-size:11px;letter-spacing:.5px}.sidebar nav{display:grid;gap:4px}.nav-item{display:flex;gap:12px;align-items:center;width:100%;border:0;color:#e3dced;background:transparent;text-align:left;padding:11px 13px;border-radius:7px;font-size:13px}.nav-item.active{background:#604397;color:white}.nav-item:hover{background:#ffffff15}.nav-item svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;flex-shrink:0}.sidebar-bottom{margin-top:auto;padding-top:30px;display:grid;gap:9px}.sidebar-bottom button{background:transparent;color:#dfd3f5;border:1px solid #ffffff30;border-radius:7px;padding:10px;font-size:12px}.main{min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border-bottom:1px solid var(--line);padding:21px 36px}.topbar span{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.topbar select{width:270px;max-width:100%;background:#faf9fc}.content{padding:35px 36px 60px;max-width:1600px;margin:auto}.eyebrow{font-size:11px;color:var(--purple);font-weight:700;letter-spacing:1.5px;text-transform:uppercase;margin:0 0 10px}h1{font-size:clamp(25px,3vw,35px);letter-spacing:-1px;font-weight:600;margin:0 0 9px}h2{font-size:19px;letter-spacing:-.4px;font-weight:600;margin:0}h3{font-size:16px;margin:0 0 8px}p{line-height:1.7}.muted{color:var(--muted);font-size:13px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.page-head p{margin:0}.btn{border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--purple);padding:11px 16px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn.primary{background:var(--purple);border-color:var(--purple);color:#fff}.btn.gold{background:var(--gold);color:#302052;border-color:var(--gold)}.btn.danger{color:#8b2e42;border-color:#e7cbd2}.btn.small{font-size:12px;padding:7px 10px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:25px 0}.metric{background:#fff;border:1px solid var(--line);border-radius:10px;padding:23px}.metric span{font-size:12px;color:var(--muted)}.metric strong{display:block;font-size:32px;font-weight:550;margin:13px 0 6px;letter-spacing:-1px}.metric small{font-size:11px;color:var(--muted)}.panel{background:#fff;border:1px solid var(--line);border-radius:10px;margin:20px 0;overflow:hidden}.panel-head{padding:21px 23px;border-bottom:1px solid var(--line);display:flex;gap:15px;justify-content:space-between;align-items:center}.panel-body{padding:23px}.split{display:grid;grid-template-columns:1.5fr 1fr;gap:23px}.split .panel{margin-top:0}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px;text-align:left}th{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);background:#fcfbfd;font-weight:600}td,th{padding:15px 23px;border-bottom:1px solid #f0edf4;vertical-align:middle}td small{display:block;font-size:11px;color:var(--muted);margin-top:5px}td .btn{white-space:nowrap}tr:last-child td{border-bottom:0}.badge{display:inline-block;padding:5px 8px;border-radius:5px;background:#eee8f8;color:var(--purple);font-size:10px;font-weight:650;white-space:nowrap}.badge.demo{background:#fff5d6;color:#705500;margin-left:7px}.badge.good{background:#e7f5ee;color:#246345}.actions{display:flex;gap:8px;flex-wrap:wrap}.empty{padding:40px 25px;text-align:center;color:var(--muted);font-size:14px}.council-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.council-card{background:#fff;border:1px solid var(--line);border-top:3px solid var(--purple);border-radius:9px;padding:25px}.council-card .number{color:#a187bd;font-size:12px;letter-spacing:1px;margin-bottom:19px}.council-card .actions{margin-top:20px}.filters{display:flex;gap:12px;align-items:center;margin-bottom:20px;flex-wrap:wrap}.filters input{max-width:320px}.filters select{max-width:220px}input,select,textarea{border:1px solid #dcd6e5;border-radius:6px;padding:11px 12px;background:#fff;color:#292338;min-height:43px;width:100%}textarea{min-height:140px;resize:vertical}label{display:grid;gap:8px;font-size:12px;font-weight:600}label small{font-weight:400;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:19px}.form-grid .wide{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:10px;grid-column:1/-1;margin-top:8px}.announcement{background:#fff9e5;border-left:3px solid #c99a00;padding:19px 23px;margin-bottom:20px;border-radius:5px}.announcement p{margin:6px 0;font-size:13px;white-space:pre-wrap}.row-list{padding:17px 23px;border-bottom:1px solid var(--line);font-size:13px;display:flex;gap:15px;justify-content:space-between;align-items:center}.row-list:last-child{border:0}.row-list p{margin:4px 0 0}.note{padding:15px 18px;background:#f1ecf8;border-radius:6px;font-size:12px;line-height:1.7;color:#584a6e}.sample-note{font-size:12px;color:#755800;margin:0 0 20px}.record-body{white-space:pre-wrap;font-size:14px;line-height:1.8;overflow-wrap:anywhere}.menu-toggle{display:none}dialog{border:1px solid var(--line);border-radius:12px;padding:28px;max-width:650px;width:calc(100% - 30px);max-height:90svh;color:#292338;box-shadow:0 20px 90px #19112833}dialog::backdrop{background:#21163080}dialog h2{margin-bottom:12px}dialog>p{font-size:13px;color:var(--muted);margin-bottom:25px}#notice{position:fixed;bottom:24px;right:24px;max-width:calc(100vw - 48px);z-index:50;background:#302052;color:#fff;padding:16px 21px;border-radius:8px;font-size:13px;box-shadow:0 8px 30px #0002}#notice.error{background:#862d41}.account-box{max-width:560px;margin:10vh auto;padding:30px}.mobile-close{display:none}.install-help{margin-top:14px;padding:12px;border:1px solid #d7cceb;border-radius:7px;font-size:12px;line-height:1.7;background:#fff;color:#302052}
@media(max-width:1100px){.shell{grid-template-columns:215px minmax(0,1fr)}.content{padding:28px 22px}.topbar{padding:18px 22px}.metrics{grid-template-columns:1fr 1fr}.council-grid{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr}}
@media(max-width:720px){.shell{display:block}.sidebar{position:fixed;left:-280px;top:0;z-index:30;width:260px;transition:left .15s}.sidebar.open{left:0;box-shadow:0 0 0 100vmax #21163080}.mobile-close{display:block;background:transparent;color:white;border:0;margin-bottom:15px;text-align:right}.menu-toggle{display:block;background:none;border:1px solid var(--line);border-radius:6px;padding:9px;color:var(--purple)}.topbar{padding:14px 16px;flex-wrap:wrap}.topbar select{flex:1;width:auto;min-width:150px}.topbar .identity-email{display:none}.content{padding:25px 16px 50px}.page-head{align-items:flex-start;flex-wrap:wrap;margin-bottom:23px}.page-head .btn{padding:10px 12px}.metrics{gap:10px}.metric{padding:17px}.metric strong{font-size:26px}.council-grid{grid-template-columns:1fr}.panel-head,.panel-body{padding:18px}td,th{padding:13px 16px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}dialog{padding:22px}.filters>*{flex:1}.account-box{margin:25px auto}.row-list{padding:16px}.sidebar-bottom{padding-bottom:env(safe-area-inset-bottom)}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

@media(max-width:720px){table{min-width:650px}.filters input{flex-basis:100%;max-width:none}.filters select{max-width:none}.form-grid>*{min-width:0}.role-tag{line-height:1.6}}
/* View controls and demo-feature parity. Existing palette and typography retained. */
.topbar{flex-wrap:wrap}.breadcrumb{font-size:12px;color:var(--muted)}.breadcrumb span{color:var(--purple)}.top-controls{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end;margin-left:auto}.top-controls label{min-width:0;max-width:240px}.top-controls select{width:auto;max-width:240px;min-width:150px}.view-strip{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 36px;border-bottom:1px solid var(--line);background:#fff;font-size:12px;color:var(--muted)}.view-strip strong{color:var(--purple);font-size:11px}.signed-in{line-height:1.6;padding:10px 0 14px;color:#dfd3f5}.signed-in strong{font-size:12px;display:block}.signed-in small{font-size:10px;overflow-wrap:anywhere}.brand strong{font:inherit}.overview-grid{display:grid;grid-template-columns:minmax(0,1fr) 325px;gap:24px;align-items:start}.overview-grid .panel:first-child{margin-top:0}.metric:first-child{border-top:3px solid var(--gold)}.metric strong{overflow-wrap:anywhere}.official-banner{background:var(--purple);color:#fff;border:1px solid var(--gold);border-top:3px solid var(--gold);padding:23px;border-radius:10px}.announcement-heading{display:flex;align-items:center;gap:18px;margin-bottom:20px}.announcement-heading img{background:#fff;border-radius:50%;object-fit:contain}.official-banner .announcement-heading p{color:#ede8f8;margin:5px 0 0}.official-banner article+article{border-top:1px solid #ffffff30;margin-top:20px;padding-top:20px}.official-banner article small{color:var(--gold)}.official-banner h3{margin:10px 0 6px}.official-banner article p{color:#fff;white-space:pre-wrap}.dues-card-layout{display:grid;grid-template-columns:minmax(0,760px) minmax(240px,1fr);gap:24px}.dues-card{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}.card-top{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:26px;border-bottom:2px solid var(--gold)}.card-top img{object-fit:contain;flex-shrink:0}.card-center{padding:26px}.card-center h2{margin:14px 0 8px}.card-standing{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;margin:20px 0;color:var(--purple);font-size:14px}.card-details{display:grid;grid-template-columns:1fr 1fr;gap:23px}.card-details span{display:block;font-size:12px;color:var(--muted);margin-bottom:8px}.card-details strong{font-size:14px;font-weight:600}.card-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 26px;border-top:1px solid var(--line);background:#f6f5f9;font-size:11px;color:var(--muted)}.card-bottom strong{font-size:24px;color:var(--purple)}.card-actions{margin-top:20px}
@media(max-width:1100px){.overview-grid,.dues-card-layout{grid-template-columns:1fr}.overview-grid>aside{display:grid;grid-template-columns:1fr 1fr;gap:20px}.view-strip{padding:10px 22px}}
@media(max-width:720px){.breadcrumb{display:none}.top-controls{flex:1;gap:9px}.top-controls label{max-width:none;flex:1 1 130px}.top-controls select{max-width:100%;min-width:0;width:100%}.view-strip{padding:10px 16px;align-items:flex-start;flex-wrap:wrap}.view-strip .btn{font-size:11px}.overview-grid>aside{display:block}.card-top,.card-center{padding:20px}.card-top img{width:56px;height:56px}.card-top{gap:12px}.card-details{gap:18px}.card-bottom{padding:17px 20px}.official-banner{padding:18px}}
@media print{.sidebar,.topbar,.view-strip,.page-head,.card-actions,.dues-card-layout>aside,#notice,.skip{display:none!important}.shell,.dues-card-layout{display:block}.content{padding:0}.dues-card{max-width:760px;break-inside:avoid;print-color-adjust:exact;-webkit-print-color-adjust:exact}}

/* Council event calendar */
.calendar-upcoming{display:grid;grid-template-columns:155px minmax(0,1fr);align-items:stretch;gap:0;margin:0 0 18px;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(110deg,var(--purple) 0%,#8057a5 52%,var(--gold) 100%) border-box;border:2px solid transparent;border-radius:16px;overflow:hidden}.upcoming-heading{display:flex;align-items:center;gap:10px;padding:20px;border-right:1px solid var(--line);font-size:15px;color:#302052}.upcoming-mark{width:9px;height:9px;border-radius:50%;background:#d29e27;box-shadow:0 0 0 4px #f8efd9}.upcoming-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.upcoming-item{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;min-width:0;padding:16px 18px;background:none;border:0;border-right:1px solid var(--line);color:inherit;text-align:left}.upcoming-item:last-child{border-right:0}.upcoming-item:hover,.upcoming-item:focus-visible{background:#f7f4fc}.upcoming-item strong{font-size:15px;line-height:1.35;overflow-wrap:anywhere}.upcoming-item span:last-child{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.upcoming-date{font-size:12px;font-weight:750;color:var(--purple);text-transform:uppercase;letter-spacing:.04em}
.event-calendar{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;margin-bottom:22px}.calendar-toolbar{padding:22px 26px;display:flex;align-items:center;justify-content:space-between;gap:16px}.calendar-toolbar h2{font-size:clamp(23px,2.4vw,30px);margin:0;font-weight:750;letter-spacing:-.035em}.calendar-pager{display:flex;align-items:center;gap:7px}.calendar-pager .btn{min-width:38px;min-height:37px;border-radius:9px}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{background:#faf9fc;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.calendar-weekdays span{padding:11px 8px;text-align:center;font-size:13px;font-weight:700;color:#615a69}.calendar-day{min-width:0;min-height:142px;padding:9px;border-right:1px solid #eeeaf3;border-bottom:1px solid #eeeaf3;background:#fff}.calendar-day:nth-child(7n){border-right:0}.calendar-day.outside{background:#faf9fc;color:#9d98a6}.calendar-day.today{background:#fbf9ff}.calendar-day-number{display:inline-grid;place-items:center;width:27px;height:27px;border-radius:8px;font-size:13px;font-weight:700}.calendar-day.today .calendar-day-number{background:var(--purple);color:#fff}.calendar-day-events{display:grid;align-content:start;gap:5px;margin-top:8px}.event-chip{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;background:#f0eafa;border:1px solid #e5daf7;border-left:3px solid #6b4bb6;border-radius:8px;color:#302052;text-align:left;padding:7px 8px;cursor:pointer;font:inherit;line-height:1.3}.event-chip:hover,.event-chip:focus-visible{background:#e8def9;border-color:#a68cda;transform:translateY(-1px)}.event-chip.grand-event{background:#fcf5e8;border-color:#f1dfbb;border-left-color:#b98630}.event-chip.grand-event:hover,.event-chip.grand-event:focus-visible{background:#f9ebcf}.event-chip.draft-event{background:#f4f3f5;border-color:#ddd9e3;border-left-color:#8b8693}.event-chip span{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:720}.event-chip small{font-size:11px;font-weight:550;color:#63596d}.calendar-more{display:inline-block;width:max-content;max-width:100%;padding:2px 3px;border:0;background:transparent;color:var(--purple);font-size:12px;font-weight:700;text-align:left;text-decoration:underline}.calendar-agenda{display:none}.event-records{margin:18px 0}.event-records>summary{cursor:pointer;padding:17px 20px;font-weight:700}.calendar-event-dialog{max-width:560px;padding:28px 32px}.calendar-event-dialog h2{font-size:clamp(24px,3vw,32px);line-height:1.2;letter-spacing:-.025em;margin:0 0 15px}.calendar-event-meta{display:grid;gap:0}.calendar-event-meta>p{display:grid;grid-template-columns:96px 1fr;gap:14px;margin:0;padding:14px 0;border-bottom:1px solid var(--line);font-size:15px;line-height:1.45}.calendar-event-meta>p strong{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#70697b;padding-top:3px}.calendar-event-meta>p span{overflow-wrap:anywhere}.event-detail-kind{display:inline-block;width:max-content;padding:6px 9px;margin-bottom:11px;border-radius:6px;background:#f0eafa;color:var(--purple);font-size:11px;font-weight:800;letter-spacing:.07em}.event-description{white-space:pre-wrap;line-height:1.6;padding:18px 0;overflow-wrap:anywhere}.calendar-event-dialog .form-actions{margin-top:10px}.calendar-day-list{display:grid;gap:9px;padding:12px 0}.calendar-day-list .event-chip span{font-size:15px}.calendar-day-list .event-chip small{font-size:13px}
@media(max-width:1100px){.calendar-upcoming{grid-template-columns:1fr}.upcoming-heading{border-right:0;border-bottom:1px solid var(--line);padding:12px 18px}.calendar-day{min-height:125px;padding:6px}.event-chip{padding:6px}.event-chip span{font-size:11px}}
@media(max-width:720px){.calendar-upcoming{border-radius:12px}.upcoming-items{grid-template-columns:1fr}.upcoming-item{border-right:0;border-bottom:1px solid var(--line);padding:12px 18px}.upcoming-item:last-child{border-bottom:0}.upcoming-item span:last-child{font-size:13px}.calendar-toolbar{padding:18px;flex-wrap:wrap}.calendar-weekdays,.calendar-grid{display:none}.calendar-agenda{display:block;padding:3px 18px 22px}.calendar-agenda h3{font-size:16px;margin:13px 0}.agenda-item{display:grid;grid-template-columns:82px minmax(0,1fr);gap:12px;align-items:center;border-top:1px solid var(--line);padding:12px 0}.agenda-item time{font-size:13px;font-weight:700;line-height:1.4}.agenda-item .event-chip{min-height:48px;padding:9px 11px}.agenda-item .event-chip span{font-size:15px}.agenda-item .event-chip small{font-size:12px}.calendar-event-dialog{padding:23px 18px}.calendar-event-meta>p{grid-template-columns:75px 1fr;gap:8px}.event-calendar{border-radius:12px}}

.member-profile-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px;align-items:start}.profile-identity{display:flex;gap:18px;align-items:center;margin-bottom:24px}.member-portrait{width:90px;height:90px;object-fit:cover;border-radius:12px;flex-shrink:0}.member-initials{display:grid;place-items:center;background:var(--purple);color:var(--gold);font-size:24px;font-weight:650}.profile-line{display:flex;justify-content:space-between;gap:24px;padding:14px 0;border-bottom:1px solid var(--line);font-size:14px}.profile-line>span:first-child{color:var(--muted);flex-shrink:0}.profile-line>span:last-child{text-align:right;white-space:pre-wrap;overflow-wrap:anywhere}.card-member-portrait{float:right;margin:0 0 15px 15px}.member-profile-grid .panel-head{flex-wrap:wrap;gap:12px}@media(max-width:800px){.member-profile-grid{grid-template-columns:1fr}.profile-line{gap:12px}.profile-identity{flex-wrap:wrap}}

.official-banner .announcement-link{display:inline-block;color:var(--gold);font-weight:600;text-decoration:underline;margin:8px 0 14px}.announcement-link{display:inline-block;margin:12px 0;color:var(--purple);overflow-wrap:anywhere}

.council-view-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}.council-view-toolbar p{margin:0}.council-list{grid-template-columns:minmax(0,1fr)}.council-list .council-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.5fr) auto;gap:24px;align-items:center;border-top:1px solid var(--line);border-left:3px solid var(--purple);padding:22px 25px}.council-list .number{margin-bottom:9px}.council-list .council-identity p{margin:7px 0 0}.council-list .actions{margin-top:0;justify-content:flex-end}.council-identity h2{overflow-wrap:anywhere}@media(max-width:1100px){.council-list .council-card{grid-template-columns:minmax(0,1fr) auto}.council-list .actions{grid-column:1/-1;justify-content:flex-start}}@media(max-width:600px){.council-list .council-card{grid-template-columns:minmax(0,1fr);gap:15px;padding:20px}.council-list .council-summary p{margin-bottom:0}.council-list .actions{grid-column:auto}}

.honor-fields{border:1px solid var(--line);border-radius:10px;padding:16px}.honor-fields legend{font-weight:700;padding:0 6px}.honor-fields label{margin:10px 0}.honor-fields label:has(input){display:flex;align-items:center;gap:10px}.honor-fields input[type=checkbox]{width:18px;height:18px;flex:0 0 18px;accent-color:var(--purple)}.honor-display{display:block;white-space:normal;overflow-wrap:anywhere;margin:6px 0;color:var(--purple)}

.report-alert{border-left:3px solid var(--purple);padding:12px 18px;margin:12px 0;background:var(--bg)}.report-alert h3{margin-top:0}.report-denied{border-left-color:#a62d40}.report-denied h3{color:#982737}
.report-inbox-item{border-left:4px solid var(--gold);background:var(--bg);margin-top:12px;border-radius:0 12px 12px 0}

/* Member profile: one card, two sections, matching the reference form. */
.profile-sheet{padding:28px}.profile-sheet .member-portrait{border-radius:50%;width:88px;height:88px}.profile-sheet .profile-identity{gap:24px;margin-bottom:24px}.profile-sheet .profile-identity .muted{margin:8px 0 0}.profile-tabs{margin-bottom:24px}.profile-fields{border:0;padding:0;margin:0;min-width:0}.profile-fields h3{margin-bottom:18px}.profile-section-heading{margin-top:32px}.profile-fields .form-grid{gap:22px 19px}.profile-fields textarea{min-height:114px}.profile-sheet .form-actions{margin-top:24px}.profile-remove{display:flex;align-items:center}.profile-remove input{width:18px;min-height:18px}.profile-sheet [hidden]{display:none}.profile-sheet .form-error{color:#8b2e42}.profile-fields:disabled input,.profile-fields:disabled select,.profile-fields:disabled textarea{opacity:1;color:inherit;background:#faf9fc}@media(max-width:720px){.profile-sheet{padding:20px 18px}.profile-sheet .profile-identity{gap:16px}.profile-sheet .member-portrait{width:68px;height:68px}.profile-tabs .btn{flex:1}.profile-sheet .profile-line{flex-wrap:wrap}.profile-sheet .profile-line>span:last-child{text-align:left}}

.minutes-editor{max-width:1000px}.minute-section{margin-top:22px}.minute-section textarea{min-height:130px}.minutes-folder>summary{padding:22px;cursor:pointer;font-weight:600}.minutes-folder>.panel{margin:0;border:0}.minutes-document section{border-top:1px solid var(--line);padding-top:18px;margin-top:22px}.minutes-document h2{font-size:24px}
.officer-attendance-row{gap:16px}.officer-attendance-row>div{min-width:0;overflow-wrap:anywhere}.officer-attendance-row label{width:min(180px,100%);flex-shrink:0}@media(max-width:720px){.officer-attendance-row{display:block}.officer-attendance-row label{width:100%;margin-top:12px}}

.council-directory{display:grid;gap:18px}.council-directory .panel{margin:0}.directory-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:20px 0}.directory-details p{font-size:13px;overflow-wrap:anywhere}.directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.directory-grid .directory-details{grid-template-columns:1fr}@media(max-width:800px){.directory-details,.directory-grid{grid-template-columns:1fr}}
/* Mobile content stays at 16px or larger; body copy uses 17px. */
@media screen and (max-width:760px){
 body{font-size:17px}
 body :is(label,input,select,textarea,button,a,small,summary,dt,dd,td,th,legend),
 body :is(.muted,.note,.eyebrow,.badge,.btn,.metric span,.metric small,.row-list,.sample-note,.empty,.topbar span,.breadcrumb,.view-strip,.view-strip strong,.signed-in strong,.signed-in small,.role-tag,.brand,.brand small,.council-card .number,.profile-line,.install-help,#notice){font-size:16px!important}
 body p,body .record-body{font-size:17px!important;line-height:1.65}
 .form-actions,.panel-head,.row-list,.card-top{flex-wrap:wrap}
 .profile-line{flex-wrap:wrap}
 .profile-line>span:last-child{text-align:left}
 .top-controls label{max-width:100%}
 .top-controls select{max-width:100%}
 .card-details{grid-template-columns:minmax(0,1fr)}
}
@media screen and (max-width:760px){
 .content,.topbar,.view-strip{padding-left:max(22px,env(safe-area-inset-left));padding-right:max(22px,env(safe-area-inset-right))}
 .panel-head,.panel-body,.official-banner,.row-list,.profile-sheet{padding:22px}
 .metrics{grid-template-columns:minmax(0,1fr)}
 .content,.panel,.metric,.official-banner{overflow-wrap:anywhere}
 dialog{width:calc(100% - 40px);padding:22px}
}
@media screen and (max-width:760px){
 .overview-grid,.split,.dues-card-layout{grid-template-columns:minmax(0,1fr)}
 .overview-grid>*,.split>*,.dues-card-layout>*,.panel{min-width:0;max-width:100%}
}

@media screen and (max-width:720px){.sidebar{width:min(300px,85vw);left:-310px}.sidebar.open{left:0}}
@media screen and (max-width:760px){th{white-space:nowrap;overflow-wrap:normal}}
/* Stack mobile tabs and action controls instead of squeezing their labels. */
@media screen and (max-width:760px){
 :is(.filters,.actions,.form-actions,.council-view-toolbar){display:flex;flex-direction:column;align-items:stretch;gap:12px;width:100%;min-width:0;overflow:visible}
 :is(.filters,.actions,.form-actions,.council-view-toolbar)>*{flex:0 0 auto;width:100%;max-width:100%;min-width:0}
 :is(.filters,.actions,.form-actions,.council-view-toolbar) :is(button,a,select){min-height:48px;white-space:normal;word-break:normal;overflow-wrap:normal;line-height:1.4}
 :is(.filters,.actions,.form-actions,.council-view-toolbar) :is(button,a){text-align:center;justify-content:center}
 .filters input,.filters select{max-width:none}.profile-tabs .btn{flex:0 0 auto}.page-head>.btn,.panel-head>.btn{width:100%}
}

/* Font Awesome solid sidebar icons inherit the navigation state color. */
.nav-item svg.fa-nav-icon{width:20px;height:20px;fill:currentColor;stroke:none}

/* Candidates belong within Members; native disclosure supports touch and keyboard. */
.member-nav-group{min-width:0}
.member-nav-group>summary.nav-item{list-style:none;cursor:pointer;display:flex;align-items:center;min-height:44px;width:100%}
.member-nav-group>summary::-webkit-details-marker{display:none}
.member-nav-chevron{margin-left:auto;font-size:24px;line-height:1;transform:rotate(0deg)}
.member-nav-group[open] .member-nav-chevron{transform:rotate(90deg)}
.member-nav-children{margin:4px 0 8px 20px;padding-left:8px;border-left:1px solid #ffffff35;display:grid;gap:4px}
.member-nav-children .nav-item{width:100%;min-height:44px;text-align:left}

/* Member dues card only: white ceremonial layout using the established purple and gold. */
.dues-card{background:#fff;border:1px solid #dcd5e8;box-shadow:0 12px 32px #30205213}
.dues-card .card-top{justify-content:flex-start;align-items:center;gap:21px;padding:26px 30px 24px;border-bottom:0;background:#fff}
.dues-card .card-top img{width:82px;height:82px;object-fit:contain;flex:0 0 82px}
.dues-card .card-heading{min-width:0}
.dues-card .card-heading .eyebrow{margin-bottom:5px;color:var(--purple);font-size:11px;letter-spacing:1.65px}
.dues-card .card-heading h2{font-size:clamp(21px,3vw,29px);font-weight:760;letter-spacing:-.6px;line-height:1.16;color:#302052}
.dues-card .card-heading p:last-child{margin:7px 0 0;font-size:12px;color:var(--muted);line-height:1.35}
.dues-card .card-rule{height:4px;background:linear-gradient(90deg,var(--gold) 0 28%,var(--purple) 28% 100%)}
.dues-card .card-center{padding:30px;background:#fff;min-height:288px}
.dues-card .card-caption{margin:0 0 10px;color:var(--purple);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;font-weight:750}
.dues-card .card-member-name{font-size:clamp(26px,3.5vw,35px);font-weight:780;letter-spacing:-.9px;line-height:1.15;margin:0 0 10px;color:#292338;overflow-wrap:anywhere}
.dues-card .card-council{font-size:16px;line-height:1.4;margin:0;color:#41394e;font-weight:600}
.dues-card .card-council span{color:var(--muted);font-weight:500}
.dues-card .card-member-portrait{float:right;margin:0 0 16px 20px}
.dues-card .card-member-portrait .member-portrait{width:96px;height:96px;border-radius:8px;border:2px solid #e7e2ef}
.dues-card .card-standing{display:inline-block;border:1px solid #e7e2ef;border-left:4px solid var(--gold);padding:9px 14px;margin:20px 0 22px;color:var(--purple);font-size:13px;font-weight:700;background:#fff}
.dues-card .card-standing span{color:#aa8c2e;padding:0 4px}
.dues-card .card-details{clear:both;border-top:1px solid var(--line);padding-top:21px;gap:19px 28px}
.dues-card .card-details span{font-size:11px;letter-spacing:.3px;margin-bottom:5px}
.dues-card .card-details strong{display:block;font-size:15px;line-height:1.4;color:#292338;overflow-wrap:anywhere}
.dues-card .card-bottom{background:#fff;border-top:1px solid var(--line);padding:17px 30px;color:#62596d}
.dues-card .card-bottom strong{font-size:20px;color:var(--purple)}
@media(max-width:720px){.dues-card .card-top{padding:20px;gap:13px}.dues-card .card-top img{width:58px;height:58px;flex-basis:58px}.dues-card .card-heading h2{font-size:20px}.dues-card .card-heading p:last-child{font-size:11px}.dues-card .card-center{padding:22px}.dues-card .card-member-portrait .member-portrait{width:72px;height:72px}.dues-card .card-bottom{padding:16px 20px}}
@media(max-width:420px){.dues-card .card-details{grid-template-columns:1fr 1fr;gap:15px}.dues-card .card-member-portrait{margin-left:12px}.dues-card .card-council{font-size:14px}}

/* Card layout: keep the seal at top left and center every card heading. */
.dues-card,.dues-card *{min-width:0}
.dues-card .card-top{display:grid;grid-template-columns:82px minmax(0,1fr);align-items:center}
.dues-card .card-heading{text-align:center;overflow-wrap:anywhere}
.dues-card .card-heading h2,.dues-card .card-heading p{max-width:100%;overflow-wrap:anywhere}
.dues-card .card-member-portrait{float:none;display:flex;justify-content:center;margin:0 auto 18px}
.dues-card .badge.demo{display:block;width:fit-content;max-width:100%;margin:0 auto 20px;padding:9px 13px;white-space:normal;overflow-wrap:anywhere;text-align:center;line-height:1.35}
.dues-card .card-caption,.dues-card .card-member-name,.dues-card .card-council{text-align:center;overflow-wrap:anywhere}
.dues-card .card-standing{display:block;width:fit-content;max-width:100%;margin:20px auto 22px;text-align:center;white-space:normal;overflow-wrap:anywhere;line-height:1.45}
.dues-card .card-details>div{min-width:0}
.dues-card .card-bottom{min-width:0;overflow-wrap:anywhere}
@media screen and (max-width:760px){
 #content:has(.dues-card-layout) .page-head{text-align:center;justify-content:center}
 #content:has(.dues-card-layout) .page-head>div{width:100%}
 .dues-card .card-top{grid-template-columns:minmax(0,1fr);justify-items:center;gap:12px;padding:22px 18px}
 .dues-card .card-top img{justify-self:start;width:58px;height:58px}
 .dues-card .card-heading{width:100%}
 .dues-card .card-heading .eyebrow{letter-spacing:.8px;line-height:1.35}
 .dues-card .card-heading h2{font-size:clamp(20px,5vw,26px);line-height:1.25}
 .dues-card .card-heading p:last-child{line-height:1.4}
 .dues-card .card-center{padding:22px 18px}
 .dues-card .card-caption{line-height:1.35;letter-spacing:.7px}
 .dues-card .card-member-name{font-size:clamp(25px,7vw,34px)}
 .dues-card .card-standing{padding:10px 12px}
 .dues-card .card-details{grid-template-columns:minmax(0,1fr);gap:15px;text-align:center}
 .dues-card .card-details>div{padding:5px 0}
 .dues-card .card-bottom{display:block;text-align:center;padding:18px}
 .dues-card .card-bottom strong{display:block;margin-top:8px}
 .dues-card-layout>aside h2{text-align:center}
}
@media screen and (min-width:560px) and (max-width:760px){.dues-card .card-details{grid-template-columns:repeat(2,minmax(0,1fr))}}
.card-qr-panel{display:grid;justify-items:center;gap:12px;text-align:center;margin-top:20px;padding:26px 18px;border:2px solid #442e84;border-radius:13px;background:linear-gradient(145deg,#fff 60%,#faf6ee)}.card-qr-panel h2{color:#302052;font-size:22px}.card-qr-panel p{font-size:15px;line-height:1.55;color:#5d536b;margin:8px 0 0}.card-qr-panel .card-qr-code{display:grid;place-items:center;min-height:264px;width:100%;color:#5d536b}.card-qr-panel .card-qr-code img{max-width:100%;height:auto;border-radius:8px}.card-qr-panel .card-qr-expiry{font-weight:700;color:#442e84;margin:0}.card-qr-panel .btn{font-size:15px;border-color:#442e84}@media print{.card-qr-panel{display:none!important}}

/* Keep verification with the card, using the space below the member details. */
.dues-card-layout{display:block;width:100%;max-width:980px;margin:0 auto}
.dues-card-layout .card-actions{justify-content:center}
.dues-card .card-qr-panel{margin:28px auto 0;width:min(100%,480px);padding:24px 16px;background:#faf8fd;border:1px solid #e4dbef;box-shadow:none}
.dues-card .card-qr-panel h2{margin:0}
.dues-card .card-qr-panel .card-qr-code{min-height:264px}
@media print{.dues-card{max-width:none}.dues-card-layout .card-actions{display:none!important}}

/* Council payment setup stands out until Stripe can accept payments. */
.panel.stripe-setup-card{background:#fff;border:2px solid var(--purple)}
.panel.stripe-setup-card .panel-head{border-bottom-color:#e0d8ef}
.panel.stripe-setup-card .actions{gap:12px;margin-top:20px}
.panel.stripe-setup-card .btn{min-height:48px;padding:12px 20px;background:var(--purple);border-color:var(--purple);color:#fff;font-size:14px}
.panel.stripe-setup-card .btn:hover,.panel.stripe-setup-card .btn:focus-visible{background:#34226a;border-color:#34226a;color:#fff}

.council-meeting{display:grid;gap:5px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.council-meeting strong{color:var(--purple);margin-top:5px}
.council-meeting span{color:#51475e}
.treasury-overview{margin-bottom:28px}
.treasury-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding:25px;border:1px solid #dfd4ed;border-radius:12px;background:linear-gradient(120deg,#fff,#f8f4fd)}
.treasury-heading h2{font-size:clamp(21px,2.5vw,28px);color:#302052}
.treasury-heading .muted{margin:7px 0 0}
.treasury-overview .metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
.treasury-overview .metric:last-child{border-top:3px solid var(--gold)}
@media(max-width:1050px){.treasury-overview .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.treasury-overview .metrics{grid-template-columns:minmax(0,1fr)}.treasury-heading .btn{width:100%}}

.inactive-dues-shell{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:28px 18px;background:radial-gradient(circle at 50% 4%,#ede6f8,transparent 45%),#f7f5fa}
.inactive-dues-brand{display:flex;align-items:center;justify-content:center;gap:13px;color:#302052;text-align:left;font-size:15px;max-width:520px}
.inactive-dues-brand img{flex:none;background:#fff;border-radius:50%}
.inactive-dues-card{width:min(100%,520px);padding:clamp(30px,6vw,54px);border:1px solid #e5ddef;border-top:4px solid var(--gold);border-radius:16px;background:#fff;text-align:center;box-shadow:0 18px 55px #30205212}
.inactive-dues-card h1{margin:0;color:#302052;font-size:clamp(26px,5vw,34px)}
.inactive-dues-amount{display:block;margin:22px 0 30px;color:var(--purple);font-size:clamp(42px,9vw,68px);line-height:1.1;font-weight:750;letter-spacing:-.05em;overflow-wrap:anywhere}
.inactive-pay-button{width:100%;min-height:56px;font-size:16px;letter-spacing:.04em}
.inactive-pay-button:disabled{cursor:not-allowed}
.inactive-payment-note{color:#625a70;font-size:14px;line-height:1.55;margin:17px 0 0}
.inactive-logout{border:0;background:transparent;color:#554373;text-decoration:underline;font-size:14px;padding:10px}

/* Member arrival and Grand Council proclamations. */
.member-welcome{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.38fr);gap:34px;align-items:center;padding:38px 36px;margin-bottom:28px;border-radius:16px;border-bottom:5px solid var(--gold);background:linear-gradient(120deg,#302052 0%,var(--purple) 74%,#5a3c94 100%);color:#fff;box-shadow:0 14px 32px #30205210}
.member-welcome h1{font-size:clamp(26px,3vw,40px);line-height:1.2;color:#fff;letter-spacing:-.6px;margin:0 0 12px}
.member-welcome p{color:#e7def4;font-size:17px;margin:0;line-height:1.6}
.member-welcome .welcome-date{color:#ffda65;font-size:13px;font-weight:700;letter-spacing:.04em;margin:0 0 19px}
.member-welcome-meeting{border-left:1px solid #ffffff35;padding-left:30px;min-width:0}
.member-welcome-meeting>span{display:block;color:#e4d8f5;font-size:16px;margin-bottom:15px}
.member-welcome-meeting strong{display:block;font-size:19px;line-height:1.35;color:#fff;margin-bottom:7px}
.member-welcome-meeting small{display:block;color:#e4d8f5;margin-top:10px;font-size:14px;overflow-wrap:anywhere}
.proclamation-notice{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:19px 24px;margin-bottom:16px;background:#fff8e3;border:1px solid #e9dcae;border-left:4px solid #b68a1e;border-radius:10px}
.proclamation-notice span{display:block;color:#7b5c15;font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.07em;margin-bottom:5px}
.proclamation-notice strong{color:#302052;font-size:18px;line-height:1.4;display:block;overflow-wrap:anywhere}
.proclamation-notice .btn{flex:none;font-size:14px;min-height:44px;font-weight:750}
.proclamation-paper{background:#fff;border:1px solid #e5ddef;border-top:4px solid var(--gold);border-radius:12px;padding:clamp(24px,5vw,64px);margin:22px auto;max-width:1100px;box-shadow:0 12px 40px #30205208}
.proclamation-paper header{text-align:center;padding-bottom:30px;border-bottom:1px solid #e5ddef;margin-bottom:35px}
.proclamation-paper header img{object-fit:contain}
.proclamation-paper header p{color:var(--purple);font-weight:650;margin:15px 0 8px}
.proclamation-paper header>span{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:#876721;font-weight:750}
.proclamation-paper h1{margin:17px auto;color:#302052;max-width:850px;line-height:1.25}
.proclamation-paper small{color:#70697b;font-size:13px}
.proclamation-body{max-width:850px;margin:auto;font-size:17px;line-height:1.9;color:#302a3b;overflow-wrap:anywhere}
.proclamation-body p{margin:0 0 1.5em;line-height:1.9}
.proclamation-editor{padding:clamp(20px,3vw,38px);display:grid;gap:22px;overflow:visible}
.proclamation-editor textarea{min-height:55vh;font-size:17px;line-height:1.85;padding:24px}
.proclamation-editor label{font-size:15px}
.proclamation-editor .form-actions{grid-column:auto}
.proclamation-editor .form-error{color:#862d41;margin:0}
@media(max-width:850px){.member-welcome{grid-template-columns:minmax(0,1fr);gap:24px;padding:28px 24px;text-align:center}.member-welcome-meeting{border-left:0;border-top:1px solid #ffffff35;padding:22px 0 0}.member-welcome .welcome-date{font-size:12px;line-height:1.7}.proclamation-notice{flex-direction:column;text-align:center;padding:20px}.proclamation-notice .btn{width:100%}.proclamation-editor textarea{padding:16px}.proclamation-paper{padding:24px 20px}.proclamation-body{font-size:16px}}

.page-head[hidden]{display:none}.member-welcome h1,.proclamation-notice strong,.proclamation-body,.proclamation-paper h1{overflow-wrap:anywhere}
.proclamation-letterhead{display:grid;grid-template-columns:minmax(0,1fr) 150px minmax(0,1fr);align-items:center;gap:24px;margin:28px 0 34px;padding-bottom:28px;border-bottom:2px solid var(--gold)}
.proclamation-officer strong{display:block;font-size:18px;color:var(--purple);overflow-wrap:anywhere}.proclamation-officer span{display:block;font-size:12px;line-height:1.6;margin-top:8px;text-transform:uppercase;letter-spacing:.7px}
.proclamation-seal{display:grid;justify-items:center;gap:14px}.proclamation-seal img{width:100px;height:100px;object-fit:contain}.proclamation-seal time{font-size:14px;color:var(--purple);font-weight:700}
.proclamation-figure{margin:0 auto 36px;max-width:850px}.proclamation-figure img{display:block;max-width:100%;max-height:600px;object-fit:contain;margin:auto}.proclamation-figure img[hidden],.proclamation-figure figcaption[hidden]{display:none}
.proclamation-image-editor{padding:24px;border:1px solid #ded5ee;border-radius:12px;background:#faf8ff;display:grid;gap:14px}.proclamation-image-editor p{margin:0}
@media(max-width:600px){.proclamation-letterhead{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}.proclamation-seal{grid-column:1/-1;grid-row:1}.proclamation-officer strong{font-size:16px}.proclamation-officer span{font-size:11px}.proclamation-image-editor{padding:16px}}

/* Other clients use their configured colors; existing Georgia appearance is preserved. */
:root[data-client-brand=custom] .sidebar{background:var(--purple)}
:root[data-client-brand=custom] .nav-item.active{background:color-mix(in srgb,var(--purple),white 20%)}
:root[data-client-brand=custom] .member-welcome{background:linear-gradient(120deg,color-mix(in srgb,var(--purple),black 25%),var(--purple))}
