:root{--green:#183f32;--gold:#ab8541;--paper:#f7f6f0;--line:#d8ddd7;--ink:#20312b}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 system-ui,sans-serif}header{background:var(--green);color:white;padding:25px 5%;display:flex;justify-content:space-between;align-items:center;border-bottom:4px solid var(--gold)}.brand{display:flex;gap:18px;align-items:center}.mark{font:65px Georgia;color:#dbbd7d}h1{font:34px Georgia;margin:0}header p{font-size:12px;letter-spacing:2px;margin:4px 0}nav{display:flex;gap:8px;padding:14px 5%;background:#fff;border-bottom:1px solid var(--line);flex-wrap:wrap}button,a.button{font:inherit;cursor:pointer;border:1px solid #b8c3b9;padding:9px 16px;border-radius:5px;background:white;color:var(--green);text-decoration:none;display:inline-block}button:hover,a.button:hover{background:#e9eee8}button.active,.primary{background:var(--green);color:white}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:2px}main{max-width:1240px;margin:34px auto;padding:0 26px;min-height:65vh}h2{font:30px Georgia;margin:0 0 8px}h3{font:23px Georgia;margin:8px 0 16px}.subtle{color:#59665f;font-size:14px}.toolbar,.buttons,.tabs{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:22px}.buttons{justify-content:flex-end;margin:18px 0 0}.tabs{justify-content:flex-start;border-bottom:1px solid var(--line);padding-bottom:13px}.card{background:white;border:1px solid var(--line);border-radius:8px;padding:24px;margin:18px 0;box-shadow:0 2px 7px #183f3205}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.stat{font:34px Georgia;color:var(--green)}label{display:block;font-size:14px;font-weight:600;margin:12px 0 5px}input,textarea,select{display:block;width:100%;font:16px system-ui;padding:10px;border:1px solid #adb9af;border-radius:4px;background:white;color:var(--ink)}textarea{min-height:100px;resize:vertical}input[type=checkbox]{display:inline-block;width:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;text-transform:uppercase;letter-spacing:.8px}td button{padding:5px 10px}.badge{display:inline-block;padding:3px 8px;background:#edf1e9;border:1px solid var(--line);border-radius:20px;font-size:12px}.empty{padding:26px;color:#59665f;text-align:center;border:1px dashed var(--line)}.plus{font-size:22px;line-height:1}.role{border-left:3px solid var(--gold)}.agenda{padding:12px;border:1px solid var(--line);border-radius:4px;background:white;display:flex;align-items:center;gap:10px;margin:8px 0}.agenda span{flex:1}.agenda button{padding:4px 9px}.danger{color:#8a271f}.notice{background:#fff5d6;border-left:3px solid var(--gold);padding:12px;margin:12px 0}#notice{position:fixed;bottom:24px;right:24px;max-width:450px;background:var(--green);color:white;border-radius:7px;padding:0;z-index:20}#notice:not(:empty){padding:16px 24px}dialog{width:min(720px,94vw);max-height:90vh;border:1px solid var(--line);border-radius:10px;padding:26px}dialog::backdrop{background:#183f3270}footer{padding:25px;text-align:center;font-size:12px;color:#59665f;border-top:1px solid var(--line)}pre{white-space:pre-wrap;font:16px/1.8 Georgia}.document{max-width:800px;margin:auto;border-top:5px solid var(--gold)}.overflow{overflow-x:auto}.login{max-width:460px;margin:60px auto}.search{max-width:360px}.check{display:flex;gap:10px;align-items:center;font-weight:400}small{display:block;color:#59665f}#account button{font-size:13px}a{color:var(--green)}@media(max-width:720px){header{padding:18px 20px}h1{font-size:27px}.mark{display:none}header p{font-size:10px;letter-spacing:1px}main{padding:0 15px;margin-top:24px}.grid,.stats{grid-template-columns:1fr}.card{padding:18px}nav{padding:10px;gap:5px}nav button{font-size:13px;padding:8px}th,td{padding:9px 6px}.toolbar{align-items:flex-start}h2{font-size:27px}.agenda{flex-wrap:wrap}}@media print{header,nav,footer,.toolbar,.buttons,#notice{display:none}main{max-width:none;margin:0}.card{border:0;box-shadow:none}.document{border-top:4px solid var(--gold)}body{background:white}}

.crest{width:72px;height:72px;object-fit:contain;background:white;border-radius:50%;padding:4px}@media(max-width:720px){.crest{width:48px;height:48px}.brand{gap:10px}}

.member-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.member-tabs button{padding:10px 5px;font-size:14px}

[hidden]{display:none!important}

.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.section-heading h3{margin:0}.section-heading button{flex-shrink:0}details summary{cursor:pointer;color:var(--green)}

/* Main navigation stays on the left; member tabs remain within their profile. */
.app-shell{display:flex;align-items:stretch;min-height:calc(100vh - 130px)}.workspace{flex:1;min-width:0}.workspace main{width:100%;margin:28px auto;padding:0 28px;min-height:65vh}#nav{flex:0 0 224px;width:224px;display:flex;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:18px;padding:24px 14px;background:#fff;border-bottom:0;border-right:1px solid var(--line);position:sticky;top:0;height:100vh;overflow-y:auto;align-self:flex-start}#nav button{display:block;width:100%;text-align:left;border:0;border-left:3px solid transparent;border-radius:4px;padding:10px 14px;background:transparent;font-size:14px}#nav button:hover{background:#edf2ed}#nav button.active{background:#e9f0e8;color:var(--green);border-left-color:var(--gold);font-weight:700}.nav-group{display:grid;gap:3px}.nav-group-title{font-size:10px;letter-spacing:1.6px;font-weight:700;color:#788079;margin:2px 14px 6px}.workspace .stats{grid-template-columns:repeat(4,minmax(0,1fr))}.module-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.module-row:last-child{border-bottom:0}.filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:18px}.filters>div{flex:1;min-width:140px}.overdue{color:#9a3324;font-weight:700}.role-catalogue-row{display:flex;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.role-catalogue-row span{flex:1}.permission-list{display:grid;grid-template-columns:1fr 1fr;gap:3px}.workspace .tabs:not(.member-tabs){justify-content:flex-start}
@media(max-width:1100px){#nav{flex-basis:188px;width:188px;padding:20px 10px}.workspace .stats{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace main{padding:0 20px}.grid{grid-template-columns:1fr 1fr}}
@media(max-width:720px){#nav{flex-basis:112px;width:112px;padding:16px 5px;gap:14px}#nav button{font-size:12px;padding:9px 7px;overflow-wrap:anywhere}.nav-group-title{font-size:9px;letter-spacing:.5px;margin:0 5px 5px}.workspace main{padding:0 12px;margin-top:20px}.workspace .stats,.workspace .grid{grid-template-columns:1fr}.member-tabs{gap:3px}.member-tabs button{font-size:10px;padding:9px 1px}.workspace h2{font-size:24px}.workspace h3{font-size:21px}.workspace .card{padding:14px}.permission-list{grid-template-columns:1fr}.section-heading{align-items:flex-start}.section-heading button{font-size:12px}header{padding:16px 18px}h1{font-size:25px}}
@media print{.app-shell,.workspace{display:block}#nav{display:none!important}.workspace main{margin:0;padding:0}}

/* Workspaces (registers, planner, reports, accounts) */
#menu-toggle{display:none;background:transparent;color:#fff;border:1px solid #ffffff80;padding:8px 12px;font-size:14px}
#nav-backdrop{display:none}
.buttons.left{justify-content:flex-start;margin:16px 0 0}
.filters label.check{margin-top:30px}
tfoot td,tfoot th{border-top:2px solid var(--line);border-bottom:0}
tr.overdue td:first-child,p.overdue{color:#9a3324}
tr.overdue td:first-child::after{content:' · overdue';font-size:12px;font-weight:700}
tr.pending td:first-child{border-left:3px solid var(--gold)}
.pipeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:10px}.pipeline>div{text-align:center;border:1px solid var(--line);border-radius:6px;padding:10px 4px}
.record-photo{max-width:min(100%,360px);max-height:320px;object-fit:contain;border:1px solid var(--line);border-radius:6px;margin-bottom:12px;display:block}
.log-entry{border-left:3px solid var(--line);padding:4px 0 4px 12px;margin:10px 0}.log-entry p{margin:4px 0}
.week{border-top:1px solid var(--line);padding:10px 0}.week h4{margin:4px 0 8px;font:17px Georgia;color:var(--green)}.week p{margin:6px 0}
.kind-meeting{background:#e3ede4}.kind-ceremony{background:#f3e9d3}.kind-task{background:#eef0f7}.kind-almoner{background:#f6e8e6}.kind-rehearsal{background:#e8f1f1}.kind-candidate{background:#efe9f4}
.temporary{font:22px ui-monospace,Consolas,monospace;background:var(--paper);border:1px dashed var(--gold);padding:14px;text-align:center;user-select:all}
fieldset.permission-list{border:1px solid var(--line);border-radius:6px;padding:10px 14px;margin:14px 0}fieldset.permission-list legend{font-weight:600;font-size:14px;padding:0 6px}
.stat.danger{color:#8a271f}
@media(max-width:720px){
 #menu-toggle{display:inline-block}
 .app-shell{display:block}
 #nav{position:fixed;top:0;left:0;bottom:0;z-index:30;width:270px!important;flex-basis:auto;height:100vh;padding:20px 12px;transform:translateX(-105%);transition:transform .2s ease;box-shadow:4px 0 18px #0003}
 #nav button{font-size:15px;padding:11px 12px}
 .nav-group-title{font-size:10px;letter-spacing:1.4px;margin:2px 12px 6px}
 body.menu-open #nav{transform:none}
 body.menu-open #nav-backdrop{display:block;position:fixed;inset:0;background:#183f3266;z-index:25}
 #account{font-size:13px;text-align:right}
 #account button{padding:6px 8px;margin-top:4px}
 header{gap:10px;flex-wrap:wrap}
 .filters label.check{margin-top:4px}
}
@media (prefers-reduced-motion:reduce){#nav{transition:none}}

/* Meeting workflow: ticks, summons designer, minutes */
.ticks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 16px}
.tick{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px 12px}
.tick small{display:block;font-size:12px;line-height:1.35}
.tick-mark{flex:0 0 26px;height:26px;border-radius:50%;border:2px solid #b8c3b9;display:grid;place-items:center;font-weight:700;color:#fff}
.tick.done{border-color:#2e7d4f;background:#f1f8f3}.tick.done .tick-mark{background:#2e7d4f;border-color:#2e7d4f}
.ticks.compact{display:flex;gap:6px;margin:0;flex:1;justify-content:flex-end}
.ticks.compact .tick{padding:4px 8px;border-radius:20px;font-size:12px;gap:6px;align-items:center}
.ticks.compact .tick-mark{flex-basis:18px;height:18px;font-size:11px}
.meeting-row{gap:14px}.list-head{margin:18px 0 0;font:15px Georgia;color:#59665f}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.blockers{color:#8a271f;margin:8px 0}.issue{border-top:1px solid var(--line);padding:10px 0}.issue summary{cursor:pointer}
.minute-item.locked{border-left:4px solid #2e7d4f}.minute-text{font:16px/1.6 Georgia;white-space:normal}
.minute-item textarea.notes{min-height:80px;background:#fffdf6}
.sd-shell{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}
.sd-panel{position:sticky;top:12px;margin:0}.sd-panel .grid.four{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.sd-pages{display:grid;gap:18px;justify-content:start}
.sd-page{position:relative;background:#fff;box-shadow:0 2px 10px #183f3226;border:1px solid var(--line);overflow:hidden}
.sd-pageno{position:absolute;bottom:4px;right:8px;font-size:10px;color:#8a948e}
.sd-block{position:absolute;overflow:hidden;font-family:Georgia,'Times New Roman',serif;line-height:1.3;color:#1f2f28;padding:2px 4px;outline:1px dashed #b8c3b955;cursor:default;touch-action:none}
.sd-canvas .sd-block{cursor:move}.sd-block.bordered{border:1px solid var(--green)}
.sd-block.selected{outline:2px solid var(--gold);z-index:2}.sd-block:focus-visible{outline:3px solid var(--gold)}
.sd-block.editable{outline:2px dashed var(--gold);cursor:pointer}.sd-block.editable::after{content:'Editable';position:absolute;top:0;right:0;font:9px system-ui;background:var(--gold);color:#fff;padding:1px 4px}
.sd-block img{width:100%;height:100%;object-fit:contain;pointer-events:none}
.sd-head{color:var(--green);font-size:1.12em}
.sd-label{position:absolute;left:0;top:0;font:9px system-ui;background:#183f32cc;color:#fff;padding:1px 4px;pointer-events:none;opacity:0;transition:opacity .15s}
.sd-block:hover .sd-label,.sd-block.selected .sd-label{opacity:1}
.sd-resize{position:absolute;right:0;bottom:0;width:14px;height:14px;background:linear-gradient(135deg,transparent 50%,var(--gold) 50%);cursor:nwse-resize}
.sd-bar{margin:0 0 12px}.danger-button{color:#8a271f;border-color:#d7b1ab;margin-top:14px}
#layout-review{margin:10px 0;max-height:60vh;overflow:auto;background:var(--paper);padding:10px}
@media(max-width:1100px){.ticks{grid-template-columns:repeat(2,minmax(0,1fr))}.sd-shell{grid-template-columns:1fr}.sd-panel{position:static}}
@media(max-width:720px){.ticks{grid-template-columns:1fr 1fr}.ticks.compact{justify-content:flex-start;flex-wrap:wrap}.meeting-row{align-items:flex-start}}
/* Keep primary and active buttons readable on hover */
button.primary:hover,a.button.primary:hover,button.active:hover{background:#0f2c23;color:#fff}
button:disabled{opacity:.55;cursor:not-allowed}

/* Director of Ceremonies */
.dc-parts td{min-width:90px}.dc-parts td:nth-child(2){min-width:190px}.dc-parts td:nth-child(3){min-width:210px}
.dc-parts input,.dc-parts select{font-size:14px;padding:6px}.dc-parts .row-tools{white-space:nowrap}.dc-parts .row-tools button{padding:4px 8px}
label.small,.check.small{font-size:12px;font-weight:400;margin:6px 0 2px}
select.invalid{border-color:#9a3324;background:#fbeeec}
.badge.ok,.ok-text{color:#1f6b40}.badge.ok{background:#e6f3ea;border-color:#9cc9ab}
.officer-row{display:grid;grid-template-columns:1.2fr 1.4fr auto 1fr .9fr;gap:6px;align-items:center;border:0;border-bottom:1px solid var(--line);padding:6px 0;margin:0}
.officer-row input,.officer-row select{font-size:14px;padding:6px}
@media(max-width:720px){.officer-row{grid-template-columns:1fr 1fr}}

/* Festive Board seating planner */
.seat-shell{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:16px;align-items:start}
svg.room{width:100%;height:auto;background:#fbfaf5;border:1px solid var(--line);border-radius:6px;touch-action:none;user-select:none}
svg.room .table rect,svg.room .table ellipse{fill:#e9eee6;stroke:var(--green);stroke-width:2}
svg.room.arrange .table{cursor:move}svg.room .resize{fill:var(--gold);cursor:nwse-resize}
svg.room .table-label{font:600 15px system-ui;fill:var(--green);pointer-events:none}
svg.room .seat circle{fill:#fff;stroke:#7d8a82;stroke-width:2}
svg.room .seat.role circle{stroke:var(--gold);stroke-width:3}
svg.room .seat.taken circle{fill:#dcebdf;stroke:var(--green)}
svg.room .seat.open circle{stroke-dasharray:4 3;stroke:var(--gold)}
svg.room.seat .seat,svg.room.arrange .seat{cursor:pointer}
svg.room .seat:focus{outline:none}svg.room .seat:focus circle{stroke:#b36b00;stroke-width:4}
svg.room .seat-initial{font:700 14px system-ui;fill:var(--green);pointer-events:none}
svg.room .seat-name{font:12px system-ui;fill:#20312b;pointer-events:none}
svg.room .seat-role{font:italic 11px Georgia;fill:#8a6a2f;pointer-events:none}
svg.room.locked .seat,svg.room.locked .table{cursor:default}
.seat-side{border:1px solid var(--line);border-radius:6px;padding:12px;background:#fff;max-height:80vh;overflow:auto}
.seat-side h4{margin:0 0 6px;font:17px Georgia}
.people{display:grid;gap:5px;margin:8px 0}
.person{text-align:left;padding:7px 10px;font-size:14px;touch-action:none}.person small{display:block;font-size:11px}
.person.seated{opacity:.7}.person.active{background:var(--gold);color:#fff;border-color:var(--gold)}
.drag-ghost{position:fixed;z-index:50;pointer-events:none;background:var(--green);color:#fff;padding:6px 10px;border-radius:4px;font-size:13px;box-shadow:0 4px 12px #0003}
.menu-card{font-family:Georgia,serif;text-align:center;border:1px solid var(--gold);padding:14px;border-radius:6px;max-width:480px}
.import-table select{min-width:200px;font-size:14px;padding:6px}
@media(max-width:1100px){.seat-shell{grid-template-columns:1fr}.seat-side{max-height:none}}
/* Larger seating-plan text so names stay readable when the room is scaled to fit the screen */
svg.room .seat-name{font-size:21px;font-weight:600}svg.room .seat-initial{font-size:17px}svg.room .seat-role{font-size:17px}svg.room .table-label{font-size:22px}
#offline-banner{background:#5a4513;color:#fff;padding:10px 20px;font-size:14px;position:sticky;top:0;z-index:15}
code{background:#eef1ec;padding:1px 5px;border-radius:3px;font-size:13px;word-break:break-all}
/* Whole-career timeline */
ol.career{list-style:none;padding:0;margin:8px 0;border-left:3px solid var(--line)}
ol.career li{padding:8px 0 8px 16px;position:relative}ol.career li::before{content:'';position:absolute;left:-8px;top:14px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--green)}
ol.career li.kind-degree::before,ol.career li.kind-installation::before{background:var(--gold);border-color:var(--gold)}
ol.career li.kind-honour::before{background:var(--green)}
ol.career .when{display:inline-block;min-width:150px;font-size:13px;color:#59665f}
ol.career small{display:block;margin-left:150px}
@media(max-width:720px){ol.career .when{display:block}ol.career small{margin-left:0}}
/* Invitations */
.invite-list{border:1px solid var(--line);border-radius:6px;padding:10px 14px;margin:14px 0}.invite-list legend{font-weight:600;font-size:14px;padding:0 6px}
.invite-list .choices{max-height:260px;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:2px 12px;margin-top:8px}
.agenda span input,.agenda span textarea{margin:2px 0;font-size:15px;padding:6px}
/* Accessibility (10 Nov): darker shades so small text meets the 4.5:1 contrast standard */
.nav-group-title{color:#5d665f}
.sd-block.editable::after,.person.active{background:#7d5f28;border-color:#7d5f28}
.sd-pageno{color:#5f6a63}
.skip{position:absolute;left:-9999px;top:8px;z-index:60;background:#fff;color:var(--green);padding:10px 16px;border:2px solid var(--gold);border-radius:4px}
.skip:focus{left:8px}
main:focus{outline:none}
.stat-link{cursor:pointer;border-color:var(--gold)}.stat-link:hover{background:#faf6ec}.stat-link:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.alert-tile{border-color:#c98a7f}.alert-tile .stat{color:#8a271f}
.tabs button.tab-locked{background:#2e7d4f;border-color:#2e7d4f;color:#fff}.tabs button.tab-locked::before{content:'🔒 '}.tabs button.tab-locked.active{background:#1f5c39;box-shadow:inset 0 -3px 0 var(--gold)}.page-lock{margin-top:22px}
.sd-palette{margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--line)}.sd-chips{display:flex;flex-direction:column;gap:6px;max-height:46vh;overflow:auto;padding-right:4px}.sd-chip{text-align:left;padding:7px 10px;font-size:14px;cursor:grab;border-style:dashed}.sd-chip:active{cursor:grabbing}.sd-chip.used{border-style:solid;color:#2e7d4f}.sd-page.sd-drop{outline:3px dashed var(--gold);outline-offset:-3px}
.sd-wording{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}.sd-wording textarea{min-height:90px}.sd-inline-edit{position:absolute;inset:0;width:100%;height:100%;min-height:0;border:2px solid var(--gold);padding:2px 4px;font:inherit;line-height:1.3;resize:none;background:#fffdf6;z-index:3}.sd-palette-fold{margin-top:18px;border-top:1px solid var(--line);padding-top:12px}.sd-palette-fold summary{cursor:pointer;font-weight:600;color:var(--green)}.sd-palette-fold .sd-palette{border:0;margin:8px 0 0}
.sd-cols{display:grid;grid-template-columns:47% 53%;column-gap:0}.sd-cols>span:first-child{padding-right:8px}.sd-cols.sd-sub{font-size:.9em;color:#3d4b44}
@media(min-width:1101px){.sd-panel{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow-y:auto;overscroll-behavior:contain}}.sd-done{width:100%;margin-bottom:14px}
.sd-block img.sd-logo{position:absolute;pointer-events:none}
.sd-big{display:block;text-align:center;font-size:1.7em;margin:2px 0 4px}

.finalise-panel{text-align:center}.finalise-panel .notice,.finalise-panel ul,.meeting-pack{text-align:left}.finalise-big{display:block;min-width:220px;min-height:80px;margin:36px auto;font-size:1.6rem;background:#183f32;color:white}.finalise-suggestion{text-align:left;border-bottom:1px solid #d8d8d0;padding:16px 0}.finalise-suggestion blockquote{white-space:pre-wrap;margin:12px 0;padding:12px;border-left:3px solid #ab8541}.finalise-suggestion fieldset{padding:12px}.finalise-suggestion fieldset label{display:inline-flex;gap:8px;align-items:center;margin-right:20px}.finalise-suggestion input[type=radio]{width:auto}.meeting-archive{padding:12px 0;border-bottom:1px solid #d8d8d0}.meeting-archive summary{cursor:pointer;font-weight:700}#finalise-progress:not(:empty){padding:16px;background:#edf4ef;font-weight:700}
.ny-table td{padding:6px 8px;vertical-align:middle}.ny-table select{min-width:220px}
.step-bar{display:flex;gap:8px;margin:0 0 14px}.att-list{display:grid;gap:6px}.att-row{display:grid;grid-template-columns:minmax(160px,1fr) auto minmax(150px,auto);align-items:center;gap:14px;padding:8px 12px;border:1px solid var(--line);border-radius:6px;background:#fff}.att-row.present{border-color:#2e7d4f;background:#f2f8f4}.att-name{font-weight:600}.att-count{font-weight:600;color:var(--green)}
.switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-weight:400;margin:0}.switch input{position:absolute;opacity:0;width:1px;height:1px}.switch .slider{width:44px;height:24px;border-radius:12px;background:#c7cdc8;position:relative;transition:background .15s}.switch .slider::after{content:'';position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s}.switch input:checked+.slider{background:#2e7d4f}.switch input:checked+.slider::after{left:23px}.switch input:focus-visible+.slider{outline:3px solid var(--gold);outline-offset:2px}.att-apology{margin:0}
@media(max-width:600px){.att-row{grid-template-columns:1fr auto}.att-apology{grid-column:1/-1}}

/* ---------- top role bar replaces the sidebar ---------- */
#nav,#menu-toggle,#nav-backdrop{display:none!important}
#rolebar{display:flex;gap:6px;overflow-x:auto;padding:8px max(16px,3%);background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;scrollbar-width:thin}
#rolebar[hidden],#roletabs[hidden]{display:none}
.role-button{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;padding:7px 12px;font-size:14px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--green);white-space:nowrap}
.role-button:hover{background:#eef3ee}
.role-button.active{background:var(--green);color:#fff;border-color:var(--green);box-shadow:inset 0 -3px 0 var(--gold)}
.role-icon{width:22px;height:22px;flex:0 0 22px;color:var(--gold)}
.role-button.active .role-icon{color:#e8cf95}
#roletabs{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:14px 28px 0;max-width:1240px;margin:0 auto}
.role-nav{display:flex;gap:6px}.role-nav button{padding:6px 12px;font-size:13px}
.role-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.role-tabs button{padding:6px 12px;font-size:14px;border-radius:6px}
.role-tabs button.active{background:var(--green);color:#fff;border-color:var(--green)}
.role-title{display:inline-flex;align-items:center;gap:6px;font:600 15px Georgia,serif;color:var(--green);margin-right:6px}.role-title .role-icon{width:20px;height:20px}
.app-shell{display:block}.workspace main{max-width:1240px;margin-top:18px}
@media(max-width:720px){#rolebar{padding:6px 10px}.role-button{padding:6px 9px;font-size:13px}#roletabs{padding:10px 12px 0}}
.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:720px){.grid.three{grid-template-columns:1fr}}

/* ---------- lodge calendar ---------- */
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.cal-head{font:600 12px system-ui;letter-spacing:1px;text-transform:uppercase;color:#59665f;padding:8px 6px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#f5f6f1}
.cal-day{min-height:96px;padding:5px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:3px;background:#fff;min-width:0}
.cal-weekend{background:#fbfbf8}.cal-out{background:#f3f3ee;color:#a3aaa5}
.cal-num{font:600 13px system-ui;color:#3d4b44}.cal-out .cal-num{color:#b8beb9}
.cal-today{box-shadow:inset 0 0 0 2px var(--gold)}.cal-today .cal-num{display:inline-block;background:var(--green);color:#fff;border-radius:10px;padding:0 7px;align-self:flex-start}
.cal-chip{display:block;font:12px/1.3 system-ui;padding:3px 6px;border-radius:4px;border:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#e9eee8;color:var(--green);width:100%}
button.cal-chip{cursor:pointer}button.cal-chip:hover{filter:brightness(.95)}
.cal-chip.kind-meeting{background:var(--green);color:#fff}.cal-chip.kind-rehearsal{background:#f1e4c6;color:#5b4410}.cal-chip.kind-gp{background:#dfe7f2;color:#1f3d63}
.cal-chip.kind-ceremony{background:#ab8541;color:#fff}.cal-chip.kind-candidate{background:#e6dcef;color:#46305e}.cal-chip.kind-almoner{background:#f6dede;color:#7a2b2b}.cal-chip.overdue{outline:2px solid #9a3324}
.cal-list{display:none}
@media(max-width:720px){.cal-grid{display:none}.cal-list{display:block}}
