:root{--red:#ae2939;--red-soft:#faecee;--ink:#202b35;--muted:#63707a;--line:#dfe5e8;--bg:#f4f6f7;--white:#fff;--green:#216d54;--gold:#8a5b11;--shadow:0 8px 25px #26374608}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}a{color:inherit;text-decoration:none}.loading{padding:50px}#shell{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;align-self:start;height:100vh;background:white;border-right:1px solid var(--line);padding:30px 20px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;margin-bottom:42px}.mark{display:grid;place-items:center;background:var(--red);color:white;width:44px;height:44px;border-radius:13px;font-weight:800;font-size:19px;flex-shrink:0}.brand strong{font-size:15px;letter-spacing:.03em}.brand small{display:block;font-size:11px;color:var(--muted);margin-top:2px}.nav-label,.eyebrow{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700}.nav{display:grid;gap:8px;margin-top:15px}.nav a{padding:12px 14px;border-radius:9px;font-weight:600;color:#56636e;display:flex;gap:12px;align-items:center}.nav a.active{background:var(--red-soft);color:var(--red)}.nav a:hover{background:#f5f6f7}.nav-symbol{width:20px;text-align:center;font-size:19px}.side-bottom{margin-top:auto;padding:22px 10px 0;font-size:12px;color:var(--muted)}.side-bottom strong{display:block;color:var(--ink);margin-bottom:5px}.main{padding:30px 42px 60px;min-width:0;max-width:1600px;width:100%;margin:auto}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:34px;gap:15px}.topbar-left{font-size:12px;color:var(--muted)}.account{display:flex;align-items:center;gap:12px;font-size:12px}.account-name strong{display:block;font-size:13px}.avatar{background:#e8ecee;width:35px;height:35px;display:grid;place-items:center;border-radius:50%;font-weight:700}.btn{border:1px solid var(--line);border-radius:8px;background:white;min-height:42px;padding:10px 17px;font-weight:600;color:var(--ink);display:inline-flex;gap:8px;align-items:center;justify-content:center}.btn:hover{filter:brightness(.97)}.btn.primary{background:var(--red);color:white;border-color:var(--red)}.btn.small{min-height:34px;font-size:12px;padding:6px 10px}.btn.quiet{background:transparent;border-color:transparent;color:var(--muted)}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:27px}.page-heading h1{margin:5px 0 7px;font-size:32px;line-height:1.2;letter-spacing:-.035em}.page-heading p{margin:0;color:var(--muted)}.heading-actions{display:flex;gap:10px;align-items:center}.year-select{min-height:42px;border:1px solid var(--line);background:white;padding:8px 30px 8px 12px;border-radius:8px;color:var(--ink)}.grid{display:grid;gap:20px}.stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:25px}.card{background:white;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:24px}.stat-label{font-size:12px;color:var(--muted);font-weight:600}.stat-value{font-size:36px;font-weight:720;letter-spacing:-.035em;margin:9px 0 1px}.stat-note{font-size:11px;color:var(--muted)}.stat:first-child{border-top:3px solid var(--red);padding-top:22px}.two-col{grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr)}.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}h2{font-size:18px;margin:0;letter-spacing:-.02em}h3{font-size:15px;margin:0 0 13px}.muted{color:var(--muted)}.small{font-size:12px}.list-row{display:flex;gap:15px;align-items:center;padding:16px 0;border-top:1px solid #edf0f1}.list-row:first-of-type{border-top:0}.date-block{width:52px;min-width:52px;background:#f3f5f6;border-radius:8px;text-align:center;padding:6px}.date-block strong{display:block;font-size:20px;line-height:1.2}.date-block span{font-size:10px;text-transform:uppercase}.grow{flex:1;min-width:0}.row-title{font-weight:650;margin-bottom:3px}.badge{display:inline-flex;align-items:center;padding:4px 9px;border-radius:20px;font-size:11px;font-weight:650;white-space:nowrap;background:#eef1f3;color:#52616a}.badge.green{background:#e8f3ed;color:var(--green)}.badge.gold{background:#fff2d9;color:var(--gold)}.badge.red{background:var(--red-soft);color:var(--red)}.toolbar{display:flex;justify-content:space-between;gap:12px;margin-bottom:20px}.search{width:min(360px,100%)}input,select,textarea{border:1px solid #cdd6db;border-radius:7px;background:white;padding:10px 12px;min-height:42px;max-width:100%;color:var(--ink)}input:focus,select:focus,textarea:focus{border-color:var(--red)}textarea{resize:vertical;min-height:95px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th{font-size:11px;letter-spacing:.04em;text-transform:uppercase;font-weight:650;color:var(--muted);padding:12px 14px;background:#f7f9fa;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}td{padding:14px;border-bottom:1px solid #ecf0f2;font-size:13px}tbody tr:hover{background:#fafbfc}.person-link{font-weight:650}.person-link:hover{color:var(--red)}.meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.meta dt{font-size:11px;color:var(--muted);margin-bottom:5px}.meta dd{margin:0;font-size:14px;overflow-wrap:anywhere}.meta .wide{grid-column:1/-1}.section-gap{margin-top:22px}.empty{padding:36px 18px;text-align:center;color:var(--muted)}.empty strong{display:block;color:var(--ink);margin-bottom:5px}.notice{border-left:3px solid #d7a54d;background:#fff8e9;padding:12px 16px;border-radius:5px;font-size:13px;margin-bottom:22px}.notice.demo{background:var(--red-soft);border-color:var(--red);color:#842130}.back{display:inline-block;font-size:13px;color:var(--muted);margin-bottom:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.field{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600}.field.full{grid-column:1/-1}.field input,.field textarea,.field select{width:100%;font-weight:400}.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px}.check{display:flex;gap:10px;align-items:center;grid-column:1/-1;font-size:13px}.check input{min-height:auto}.error{color:#9a2030;font-size:13px;background:#faecee;padding:10px;border-radius:7px;margin:12px 0}.hidden{display:none!important}dialog{border:0;border-radius:14px;padding:28px;max-width:640px;width:calc(100% - 32px);max-height:90vh;box-shadow:0 20px 70px #15232b35}dialog::backdrop{background:#1b293f60}dialog h2{margin-bottom:22px}#toast{position:fixed;bottom:24px;right:24px;background:#25343e;color:white;padding:13px 20px;border-radius:9px;box-shadow:0 5px 25px #0002;z-index:1000;display:none;max-width:calc(100% - 48px)}#toast.visible{display:block}.attendance-select{min-width:150px}.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-intro{background:#982332;padding:clamp(35px,7vw,110px);display:flex;flex-direction:column;justify-content:center;color:white}.login-intro .mark{background:white;color:var(--red);width:60px;height:60px;font-size:25px}.login-intro h1{font-size:clamp(35px,4vw,58px);line-height:1.1;letter-spacing:-.05em;margin:35px 0 20px}.login-intro p{color:#f0d7db;max-width:420px;font-size:17px}.login-form{display:flex;align-items:center;justify-content:center;padding:35px}.login-form form{width:100%;max-width:370px}.login-form h2{font-size:27px;margin-bottom:8px}.login-form .field{margin-top:20px}.login-form .btn{width:100%;margin-top:24px}.login-foot{margin-top:25px;font-size:12px;color:var(--muted)}details summary{cursor:pointer;font-size:13px;font-weight:600;padding:12px 0}details dl{margin-top:15px}.long-text{white-space:pre-wrap;overflow-wrap:anywhere}.footer-note{margin-top:22px;font-size:12px;color:var(--muted)}.pending{border:1px dashed #cad4db;background:#f9fbfc;padding:18px;border-radius:8px}.print-heading{display:none}
@media(max-width:1100px){.main{padding:24px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col{grid-template-columns:1fr}#shell{grid-template-columns:205px minmax(0,1fr)}.sidebar{padding:25px 15px}.brand strong{font-size:13px}}
@media(max-width:740px){#shell{display:block}.sidebar{height:auto;position:relative;padding:16px;border-right:0;border-bottom:1px solid var(--line)}.brand{margin:0 0 15px}.brand strong{font-size:14px}.nav{display:flex;gap:6px;overflow:auto;margin:0}.nav a{font-size:12px;padding:10px 12px;flex-shrink:0}.nav-symbol,.nav-label,.side-bottom{display:none}.main{padding:20px 16px 40px}.topbar{margin-bottom:24px}.topbar-left{font-size:11px}.account-name{display:none}.page-heading{align-items:flex-start;flex-wrap:wrap}.page-heading h1{font-size:28px}.heading-actions{flex-wrap:wrap}.stats{gap:12px}.card{padding:18px}.stat-value{font-size:30px}.stat-note{font-size:10px}.meta{gap:18px}.toolbar{flex-wrap:wrap}.search{width:100%}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.login{grid-template-columns:1fr}.login-intro{padding:30px}.login-intro h1{font-size:32px;margin:20px 0 10px}.login-intro p{font-size:14px;margin:0}.login-intro .mark{width:44px;height:44px;font-size:20px}.login-form{padding:32px 24px}.login-form form{max-width:none}.attendance-select{min-width:135px}td,th{padding:12px 10px}dialog{padding:22px}.hide-mobile{display:none}.list-row{gap:10px}}
@media print{body{background:white;color:black;font-size:11px}.sidebar,.topbar,.heading-actions,.back,.demo,.no-print,#toast,dialog{display:none!important}#shell{display:block}.main{padding:0;max-width:none}.card{box-shadow:none;break-inside:avoid;margin:15px 0}.two-col{display:block}.page-heading h1{font-size:25px}.table-wrap{overflow:visible}table{white-space:normal}.print-heading{display:block}.footer-note{font-size:10px}details:not([open]){display:none}a{text-decoration:none}.badge{border:1px solid #ccc}.stats{display:none}}

.sidebar{overflow-y:auto}.nav a{padding:10px 13px}.side-bottom{position:static;margin-top:auto;padding-top:30px}.record-group{margin-top:12px}.record-group>summary{cursor:pointer;font-weight:700;display:flex;justify-content:space-between;gap:12px}.record-block{padding:20px 0;border-top:1px solid var(--line,#e5e7eb);margin-top:16px}.record-summary{min-width:180px;max-width:420px;white-space:normal}.form-grid>.full{grid-column:1/-1}.import-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.source-formula{min-width:240px;max-width:600px;overflow-wrap:anywhere}#modal{max-height:90vh;overflow-y:auto}.record-group .meta dd{white-space:pre-wrap;overflow-wrap:anywhere}.toolbar select{max-width:100%}@media(max-width:760px){.import-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar{overflow:visible}.side-bottom{display:none}.toolbar{align-items:stretch}.toolbar>label{max-width:100%}.record-summary{min-width:140px}.record-group>summary{display:block}}@media print{.record-group{break-inside:avoid}.record-group>summary{margin-bottom:12px}.record-block{padding:8px 0}}

/* Annual tables, version 0.3 */
.event-nav{display:block}.subnav{margin:0 0 5px 31px;padding-left:10px;border-left:2px solid #e6e9ed}.subnav a{font-size:12px;padding:6px 10px}.subnav a.active{background:#f8e9ec;color:#9e2434}.matrix-card{padding:22px}.matrix-tools{justify-content:space-between;gap:16px}.view-tabs{display:flex;gap:4px;background:#f1f3f5;border-radius:8px;padding:4px}.view-tabs a{padding:7px 12px;color:#52606a;border-radius:5px;font-size:13px;font-weight:600}.view-tabs a.selected{background:white;color:var(--red);box-shadow:0 1px 4px #0001}.matrix-legend{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;font-size:12px;margin:15px 0}.legend-item{padding:5px 9px;border-radius:4px;color:#102d20}.matrix-legend #matrix-save-status{margin-left:auto;color:#4b5962}.matrix-rule{max-width:1000px}.matrix-scroll{max-height:70vh;overflow:auto;position:relative;border:1px solid #bfc9ce;border-radius:6px;isolation:isolate}.attendance-matrix{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:13px;white-space:nowrap}.attendance-matrix th,.attendance-matrix td{border-right:1px solid #c7cfd3;border-bottom:1px solid #c7cfd3;padding:7px;text-align:center;background:#fff}.attendance-matrix thead th{position:sticky;top:0;z-index:3;vertical-align:bottom;background:#f5f7f8;color:#1e2c36;letter-spacing:0;text-transform:none;font-size:12px}.attendance-matrix .sticky-number{position:sticky;left:0;z-index:2;width:42px;min-width:42px;box-sizing:border-box;background:#fff}.attendance-matrix .sticky-name{position:sticky;left:42px;z-index:2;min-width:210px;max-width:260px;text-align:left;background:#fff;border-right:2px solid #85949e}.attendance-matrix thead .sticky-name,.attendance-matrix thead .sticky-number{z-index:5;background:#f5f7f8}.matrix-name a{color:#24313a;font-weight:600}.matrix-name small{display:block;font-weight:400;color:#69757e;font-size:10px}.attendance-matrix .matrix-event{padding:0;min-width:63px;width:63px;max-width:63px;height:240px;vertical-align:top}.matrix-event a{display:flex;height:240px;align-items:center;flex-direction:column;color:inherit;padding:5px 0}.event-number{font-size:14px;font-weight:700;height:23px}.event-vertical{writing-mode:vertical-rl;transform:rotate(180deg);white-space:normal;text-align:left;height:185px;max-width:53px;overflow:hidden;line-height:1.25;font-size:12px}.event-state{margin-top:auto;font-size:10px;font-weight:500;color:#596a74}.attendance-matrix .event-open{background:#fff6df}.attendance-matrix .matrix-cell{padding:0;height:39px}.matrix-cell select{appearance:none;-webkit-appearance:none;width:100%;min-width:62px;height:39px;border:0;border-radius:0;text-align:center;text-align-last:center;font:inherit;font-weight:600;color:inherit;background:transparent;cursor:pointer;padding:0 8px}.matrix-cell select:focus{outline:3px solid #1558bc;outline-offset:-3px}.matrix-cell select:disabled{cursor:wait}.matrix-cell select option{background:#fff;color:#142d21}.state-Anw,.attendance-matrix .state-Anw{background:#12bf67;color:#082f1a}.state-Abg,.attendance-matrix .state-Abg{background:#ffd447;color:#352800}.state-Une,.attendance-matrix .state-Une{background:#ee4a43;color:#200d0a}.attendance-matrix .state-empty{background:#fff;color:#8a959c}.attendance-matrix .matrix-sum{min-width:47px}.attendance-matrix .matrix-quote{min-width:65px;font-weight:700}.attendance-matrix .quote-good{background:#c9f1db;color:#114c2e}.attendance-matrix .quote-low{background:#fbd3d0;color:#7c1712}.attendance-matrix tfoot td,.attendance-matrix tfoot th{background:#edf1f3;font-weight:600}.attendance-matrix tfoot .sticky-name,.attendance-matrix tfoot .sticky-number{background:#edf1f3}.attendance-matrix tfoot tr:last-child td{font-size:11px;font-weight:400}.matrix-footnote{padding:8px 12px;margin:0}.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}.birthday-table .birthday-day{font-weight:700}.birthday-milestone td{background:#fff7e4}.missing-birthdays{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.honors-scroll{overflow:auto;max-height:65vh;border:1px solid #dce2e6;border-radius:6px;margin-top:16px;position:relative;isolation:isolate}.honors-table{border-collapse:separate;border-spacing:0;min-width:100%;white-space:nowrap}.honors-table th,.honors-table td{border-right:1px solid #e2e6e9;border-bottom:1px solid #e2e6e9;padding:10px 12px}.honors-table thead th{position:sticky;top:0;background:#f2f5f7;z-index:2;white-space:normal;min-width:70px;text-transform:none;letter-spacing:0}.honors-table .sticky-name{position:sticky;left:0;min-width:205px;background:#fff;z-index:1;text-align:left}.honors-table thead .sticky-name{z-index:3;background:#f2f5f7}.honors-table .selected-year{background:#e9eff7;font-weight:700}.honors-table .service-milestone{background:#ffe39c;color:#543700;font-weight:700}.service-basis{white-space:normal;min-width:165px;max-width:220px;font-size:12px}
@media(max-width:740px){.event-nav{flex-shrink:0}.event-nav>a{display:none}.subnav{display:flex;margin:0;padding:0;border:0;gap:6px}.subnav a{padding:10px 12px}.matrix-card{padding:12px}.matrix-tools{gap:10px}.matrix-legend #matrix-save-status{margin-left:0;width:100%}.attendance-matrix .sticky-name{min-width:145px;max-width:145px;white-space:normal;font-size:11px}.attendance-matrix .sticky-number{min-width:30px;width:30px;font-size:11px}.attendance-matrix .sticky-name{left:30px}.attendance-matrix .matrix-event,.matrix-cell select{min-width:55px}.matrix-scroll{max-height:65vh}.view-tabs a{padding:7px 10px}}
@media print{@page{size:landscape;margin:10mm}.matrix-tools,.matrix-legend,.matrix-rule,.no-print{display:none!important}.matrix-scroll,.honors-scroll{overflow:visible;max-height:none;border:0}.attendance-matrix,.honors-table{min-width:0;width:100%;font-size:8px}.attendance-matrix .sticky-name,.attendance-matrix .sticky-number,.attendance-matrix thead th,.honors-table .sticky-name,.honors-table thead th{position:static;min-width:0;width:auto;max-width:none}.attendance-matrix .matrix-event{min-width:20px;width:25px;height:150px}.matrix-event a{height:150px}.event-vertical{height:115px;font-size:8px;max-width:25px}.matrix-cell select{font-size:8px;min-width:20px;height:23px;padding:0}.attendance-matrix .matrix-cell{height:23px}.attendance-matrix .matrix-sum,.attendance-matrix .matrix-quote{min-width:0;font-size:8px;padding:3px}.attendance-matrix th,.attendance-matrix td,.honors-table th,.honors-table td{padding:3px}.matrix-card{padding:0;break-inside:auto}.attendance-matrix,.honors-table,.birthday-table{print-color-adjust:exact;-webkit-print-color-adjust:exact}.honors-table thead{display:table-header-group}.service-basis{min-width:0;font-size:8px}.event-number{font-size:9px}.matrix-footnote{font-size:8px}}

.attendance-matrix tbody th,.honors-table tbody th{text-transform:none;letter-spacing:0;font-size:13px;font-weight:600}.attendance-matrix .matrix-event,.matrix-event a{height:205px}.event-vertical{height:150px}@media(max-width:740px){.attendance-matrix tbody th{font-size:11px}}@media print{.attendance-matrix .matrix-event,.matrix-event a{height:150px}.event-vertical{height:115px}.attendance-matrix tbody th,.honors-table tbody th{font-size:8px}}

/* Active members and reusable shortlists, version 0.4 */
.member-nav{display:block}.shortlist-picker{display:flex;flex-direction:column;gap:5px;min-width:220px;max-width:100%;font-size:12px;color:var(--muted)}.shortlist-picker select{font-size:14px;color:var(--ink)}.shortlist-card .toolbar{align-items:flex-end}.shortlist-table{table-layout:fixed;min-width:620px}.shortlist-table th{white-space:normal;overflow-wrap:anywhere;text-transform:none;letter-spacing:0;font-size:13px}.shortlist-table thead th:first-child{width:45px}.shortlist-table thead th:nth-child(2){width:32%}.shortlist-table tbody th{background:white;text-align:left;font-weight:600}.shortlist-table td{padding:8px 12px}.shortlist-answer{text-align:center}.shortlist-answer select{width:100%;min-width:85px;text-align:center;text-align-last:center}.answer-Ja select{background:#e8f3ed;border-color:#adcebb;color:#216d54}.answer-Nein select{background:#faecee;border-color:#dfb5bd;color:#9b2939}.shortlist-table tfoot th,.shortlist-table tfoot td{background:#f2f5f7;border-top:1px solid var(--line);font-weight:600}.shortlist-table tfoot td{text-align:center}.print-only{display:none}.licenses-table .license-class{min-width:38px;width:38px;text-align:center;padding:8px 5px}.licenses-table .license-control{white-space:normal;min-width:100px;max-width:180px;overflow-wrap:anywhere}.licenses-table thead tr:first-child th{top:0;height:42px}.licenses-table thead tr:nth-child(2) th{top:42px}.licenses-table .license-actions{white-space:normal;min-width:185px}.license-actions .btn{margin:2px}.licenses-card{padding:20px}
@media(max-width:740px){.member-nav{flex-shrink:0}.member-nav>a{display:none}.shortlist-card{padding:12px}.shortlist-card .card-head{flex-wrap:wrap}.shortlist-table thead th:nth-child(2){width:190px}.shortlist-picker{width:100%}.licenses-card{padding:12px}}
@media print{@page shortlist{size:A4 portrait;margin:12mm}body:has(.shortlist-card){page:shortlist}.print-only{display:block}.shortlist-card{break-inside:auto;border:0;padding:0;margin:0}.shortlist-card .card-head{margin:0 0 10px}.shortlist-card .card-head h2{font-size:18px}.shortlist-card .card-head p{margin:4px 0}.shortlist-table{min-width:0;table-layout:fixed}.shortlist-table thead{display:table-header-group}.shortlist-table tr{break-inside:avoid}.shortlist-table th,.shortlist-table td{font-size:10px;padding:5px 6px;border:1px solid #999}.shortlist-table thead th:first-child{width:25px}.shortlist-table thead th:nth-child(2){width:32%}.shortlist-table tbody th{font-size:11px}.shortlist-card .print-only{margin:0}.shortlist-card+p{margin:0}.licenses-card{break-inside:auto;padding:0;border:0}.licenses-table{table-layout:auto}.licenses-table .license-class{min-width:0;width:auto;padding:3px;font-size:7px}.licenses-table .license-control{min-width:0;max-width:70px;word-break:break-word;font-size:7px}.licenses-table thead tr th{position:static!important;height:auto!important}.licenses-table th,.licenses-table td{font-size:7px}.licenses-table .sticky-name{min-width:90px!important;white-space:normal}.licenses-table tr{break-inside:avoid}}

.shortlist-table thead th:first-child{width:50px;white-space:nowrap}.licenses-table .license-actions{min-width:180px;white-space:nowrap}@media print{.shortlist-table thead th:first-child{width:25px}}

/* Navigation and table controls, version 0.5 */
.system-nav>summary{display:flex;align-items:center;gap:12px;list-style:none;padding:10px 13px;border-radius:9px;font-size:15px;color:#56636e;font-weight:600}.system-nav>summary::-webkit-details-marker{display:none}.system-nav>summary:hover{background:#f5f6f7}.system-nav>summary.active{background:var(--red-soft);color:var(--red)}.system-chevron{margin-left:auto;transition:transform .15s}.system-nav[open] .system-chevron{transform:rotate(180deg)}.stat-link{display:block;transition:border-color .15s,box-shadow .15s}.stat-link:hover{border-color:var(--red);box-shadow:0 8px 22px #ae293912}.stat-link:focus-visible{outline:3px solid var(--red);outline-offset:3px}.stat-label{display:flex;justify-content:space-between;gap:8px}.stat-arrow{color:var(--red);font-size:17px;line-height:1}.members-toolbar{align-items:flex-end;flex-wrap:wrap}.members-toolbar>.search{flex:1;min-width:190px}.member-view-controls{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.member-view-controls label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted)}.member-view-controls select{font-size:13px;color:var(--ink)}#member-count{padding-bottom:11px;white-space:nowrap}.members-table .row-number{width:45px;text-align:center;font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}
@media(max-width:740px){.system-nav{flex-shrink:0}.system-nav>summary{font-size:12px;padding:10px 12px;min-height:42px}.system-nav .subnav{flex-direction:column;gap:2px;margin-top:4px}.system-nav .subnav a{padding:8px 12px}.member-view-controls{width:100%;gap:10px}.member-view-controls label{flex:1;min-width:140px}.members-toolbar>.search{width:100%;flex-basis:100%}#member-count{padding-bottom:0}.members-table .row-number{padding-left:6px;padding-right:6px}}
/* Version 0.6: qualification matrix and club cash books */
.sidebar{overflow-y:auto}.sidebar .nav{flex-shrink:0}
.qualification-help{margin:0 0 10px}.qualification-legend{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 18px}
.qualification-scroll{overflow:auto;max-height:74vh;border:1px solid var(--line);border-radius:6px}
.qualification-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:13px}
.qualification-table th,.qualification-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px 9px}
.qualification-table thead th{position:sticky;top:0;z-index:3;color:var(--ink);background:#edf2ef;text-transform:none;letter-spacing:0}
.qualification-table thead tr:first-child{height:36px}.qualification-table thead tr:nth-child(2) th{top:36px}
.qualification-table .qual-group{text-align:center;background:#dce9cf;font-size:14px}
.qualification-table .qual-heading{height:166px;min-width:43px;max-width:72px;text-align:center;vertical-align:bottom;padding:8px 6px}
.qual-heading span{writing-mode:vertical-rl;transform:rotate(180deg);font-size:13px;white-space:nowrap;max-height:155px}
.qualification-table .qual-number{position:sticky;left:0;width:42px;min-width:42px;text-align:center;background:white;z-index:2}
.qualification-table .qual-name{position:sticky;left:42px;min-width:210px;max-width:240px;background:white;z-index:2;font-size:13px;text-transform:none;letter-spacing:0;color:var(--ink);white-space:normal}
.qualification-table thead .qual-number,.qualification-table thead .qual-name{z-index:5;background:#edf2ef}
.qual-name small{display:block;color:var(--muted);font-size:10px;font-weight:400}.qual-rank{max-width:110px;white-space:normal}
.qualification-table .qual-cell{padding:0;text-align:center;min-width:43px;max-width:90px}
.qual-button{border:0;background:transparent;min-height:48px;min-width:100%;width:100%;padding:4px;display:flex;flex-wrap:wrap;gap:3px;align-items:center;justify-content:center}.qual-button:hover{background:#f1f5f7}.qual-button:focus-visible{outline:2px solid var(--red);outline-offset:-2px}
.qual-mark{padding:4px 5px;border-radius:4px;font-size:12px;white-space:normal;overflow-wrap:anywhere;display:inline-block;line-height:1.25}
.qual-recorded{background:#f0f2f4;color:#35424c}.qual-passed{background:#dcefdc;color:#1b512a}.qual-planned{background:#e2edf9;color:#234f7c}.qual-registered{background:#fff0c8;color:#75500b}.qual-review{background:#dedede;color:#404040}
.cash-stats .stat-value{font-size:clamp(23px,2.1vw,34px)}.cash-table .money{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.cash-table .cash-description{min-width:220px;white-space:normal;max-width:500px}.cash-description .badge{margin-left:8px}.cash-opening th,.cash-opening td{background:#f5f7f8}.cash-table tfoot th,.cash-table tfoot td{font-weight:700;background:#edf1f3}.cash-void .cash-description strong,.cash-void td.money:not(:nth-last-child(2)){text-decoration:line-through;color:var(--muted)}.cash-source summary{cursor:pointer;font-weight:650}.cash-source h3{margin-bottom:5px}
@media(max-width:740px){.club-nav{flex-shrink:0}.qualification-table .qual-name{min-width:165px;max-width:165px}.qualification-table .qual-number{min-width:34px;width:34px}.qualification-table .qual-name{left:34px}.qualification-scroll{max-height:70vh}.cash-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.cash-stats .stat-value{font-size:24px}}
@media print{.qualification-scroll{overflow:visible;max-height:none;border:0}.qualification-table{width:100%;min-width:0;font-size:9px}.qualification-table th,.qualification-table td{padding:3px;position:static!important;font-size:9px}.qualification-table .qual-name{min-width:100px;max-width:140px}.qualification-table .qual-number{width:24px;min-width:24px}.qualification-table .qual-heading{min-width:20px;height:130px}.qual-heading span{font-size:10px}.qual-button{min-height:25px;padding:1px}.qual-mark{font-size:9px;padding:2px}.qualification-table td:nth-last-child(2),.qualification-table th:nth-last-child(2)[rowspan]{display:none}.cash-stats .stat-value{font-size:20px}.cash-table td,.cash-table th{font-size:10px;padding:6px}.cash-source{display:none}.cash-table .cash-description{min-width:160px}}
/* Version 0.7: personal cards and theater lists */
.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.profile-wide{grid-column:1/-1}.profile-general{grid-template-columns:repeat(3,minmax(0,1fr))}.profile-record+.profile-record{border-top:1px solid var(--line);padding-top:18px;margin-top:18px}.profile-record .card-head{margin-bottom:12px}.profile-record>.btn{float:right}.profile-tile .meta{clear:both;margin-bottom:0}.profile-tile .meta dd{white-space:pre-wrap;overflow-wrap:anywhere}.profile-table{white-space:normal}.profile-table th,.profile-table td{padding:9px;vertical-align:top}.profile-table tbody th{text-transform:none;background:transparent;letter-spacing:0;color:var(--ink);font-size:12px}.profile-table td{min-width:50px}.profile-table .badge{white-space:normal}
.theater-duty-table{white-space:normal;min-width:850px}.theater-duty-table td{white-space:pre-line;vertical-align:top;min-width:120px}.theater-duty-table td:nth-child(5){min-width:190px}.theater-duty-table tbody th{white-space:nowrap;text-transform:none;background:white;color:var(--ink);vertical-align:top}
.theater-toolbar{justify-content:flex-start;align-items:end;flex-wrap:wrap}.theater-toolbar label{display:grid;gap:5px;font-size:12px}.theater-scroll{overflow:auto;max-height:70vh;border:1px solid var(--line);border-radius:7px}.theater-consumption{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-variant-numeric:tabular-nums}.theater-consumption td,.theater-consumption th{padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;font-size:12px}.theater-consumption thead th{text-transform:none;letter-spacing:0;background:#f0f4f4;color:var(--ink)}.theater-consumption .theater-weekend-heading{background:#dce9cf}.theater-consumption .theater-product-name{position:sticky;left:0;z-index:2;background:white;min-width:175px;max-width:200px;white-space:normal;text-align:left;color:var(--ink);text-transform:none;letter-spacing:0}.theater-product-name small{display:block;color:var(--muted);font-size:10px;font-weight:400}.theater-consumption thead .theater-product-name{background:#f0f4f4}.theater-quantity{width:68px;min-height:36px;padding:6px;text-align:right}.theater-sum{background:#f4f7f8;font-weight:650;min-width:70px}.theater-missing{color:#986400;font-size:11px}.theater-negative{background:#fbe6e5;color:#982c28}.theater-date-button{border:0;background:transparent;color:inherit;padding:4px;font-weight:650;text-decoration:underline;text-underline-offset:3px}.theater-source-note summary{cursor:pointer;font-weight:650}.theater-source-grid{overflow:auto;max-height:60vh;margin-top:15px}.theater-source-grid td{min-width:70px;max-width:230px;white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid var(--line);font-size:12px;padding:7px}.theater-source-view>label{display:flex;align-items:center;gap:12px;margin:15px 0}dialog:has(.theater-source-view){width:1200px;max-width:95vw}.heading-actions{flex-wrap:wrap}
@media(max-width:740px){.profile-grid,.profile-general{grid-template-columns:1fr}.profile-wide{grid-column:auto}.profile-tile .meta{grid-template-columns:repeat(2,minmax(0,1fr))}.theater-consumption .theater-product-name{min-width:135px;max-width:135px}.theater-quantity{width:62px}}
@media print{.profile-grid{display:block}.profile-tile{break-inside:avoid;margin-top:15px}.profile-wide{break-inside:auto}.profile-general{grid-template-columns:repeat(3,1fr)}.profile-table{font-size:10px}.profile-table th,.profile-table td{font-size:10px}.theater-source-note{display:none}.theater-scroll{max-height:none;overflow:visible;border:0}.theater-consumption{width:100%;min-width:0}.theater-consumption .theater-product-name{position:static;min-width:95px;max-width:120px}.theater-consumption td,.theater-consumption th{font-size:8px;padding:3px;min-width:0}.theater-duty-table{min-width:0}.theater-duty-table td{min-width:0;font-size:10px}.theater-duty-table td:nth-child(5){min-width:130px}.theater-date-button{font-size:8px;text-decoration:none;padding:0}}
/* Version 0.8: independent historical year views */
.history-event{display:flex;flex-direction:column;align-items:center;justify-content:space-between;height:205px;width:100%;padding:5px;border:0;background:transparent;color:inherit}.history-event:hover{background:#edf2f5}.history-state{text-align:center;min-width:53px;padding:10px 5px!important}.history-sources .list-row{align-items:flex-start;flex-wrap:wrap}.history-sources .list-row .grow{min-width:220px}.history-sources .heading-actions{flex-shrink:0}.history-sources h2{margin-bottom:12px}
@media print{.history-event{height:150px;font-size:8px}.history-state{min-width:0!important;padding:4px 2px!important}.history-sources{display:none}}

/* Youth member management */
.youth-source{flex-wrap:wrap}.youth-source .grow{min-width:240px}.youth-source .heading-actions{flex-wrap:wrap}
.youth-profile .meta dd{white-space:pre-wrap}.youth-events .long-text{min-width:200px;max-width:440px}
.youth-matrix td{padding:0!important}.youth-matrix .youth-attendance{border:0;border-radius:0;background:transparent;width:100%;min-width:62px;padding:8px 4px;font-size:12px}.youth-matrix .youth-attendance:disabled{cursor:default;background:#f4f5f6;color:#687581}
@media(max-width:700px){.youth-profile{grid-template-columns:1fr}.youth-nav .subnav{display:flex;flex-wrap:wrap}.youth-source{align-items:flex-start}}
@media print{.youth-profile{grid-template-columns:1fr 1fr}.youth-profile .card{break-inside:avoid}.youth-matrix td{padding:4px!important}.youth-matrix .history-event{height:150px}.youth-source .heading-actions{display:none}}

.youth-nav>summary{font-size:13px;gap:7px;padding-left:10px;padding-right:10px}.youth-nav>summary .nav-symbol{width:16px;font-size:17px;flex-shrink:0}.youth-nav>summary .system-chevron{font-size:11px}
.ops-actions{display:flex;flex-wrap:wrap;gap:6px}.ops-note,.ops-facts dd{white-space:pre-wrap;overflow-wrap:anywhere}.ops-note{max-width:420px}.ops-doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:18px}.ops-doc{border:1px solid var(--line);border-radius:12px;padding:16px;min-width:0}.ops-doc h3{font-size:15px;overflow-wrap:anywhere;margin:12px 0 8px}.ops-doc-type{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:10px}.ops-preview{width:100%;padding:0;border:0;background:#f3f4f6;cursor:zoom-in;border-radius:6px;overflow:hidden}.ops-preview img{width:100%;height:160px;object-fit:contain;display:block}.ops-source{overflow-wrap:anywhere}.ops-facts{display:grid;grid-template-columns:1fr 1fr;gap:24px}.ops-facts dt{font-size:12px;color:var(--muted);margin-bottom:6px}.ops-facts dd{margin:0;line-height:1.6}.ops-image-dialog img{max-width:100%;display:block;margin:14px auto}.ops-image-dialog h2{overflow-wrap:anywhere}.ops-image-dialog,.ops-history{padding:24px}.ops-history-entry{padding:16px 0;border-top:1px solid var(--line)}.hydrant-table{min-width:1100px}.hydrant-table td:nth-child(2){min-width:210px}.hydrant-table td:nth-child(9){min-width:230px}.hydrant-table th{white-space:normal}.ops-stats{margin-bottom:22px}
@media(max-width:740px){.ops-facts{grid-template-columns:1fr}.ops-image-dialog,.ops-history{padding:14px}.ops-stats{grid-template-columns:1fr 1fr}.ops-actions .btn{min-height:40px}#hydrant-sector,#hydrant-filter{max-width:100%}.toolbar{flex-wrap:wrap}.ops-doc-grid{grid-template-columns:1fr}}
@media print{.ops-doc-grid{display:block}.ops-doc{break-inside:avoid;margin-bottom:14px}.hydrant-table{min-width:0;font-size:8pt}.hydrant-table td:nth-child(2),.hydrant-table td:nth-child(9){min-width:0}.ops-stats{display:none}.ops-preview{display:none}.ops-actions{display:none}}
.hydrant-map-card{padding:20px}.map-toolbar{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin-bottom:10px}.map-search{flex:1;min-width:220px}.map-search label,.map-filter-label{display:block;font-size:12px;font-weight:600;color:var(--muted)}.map-search input{width:100%;margin-top:5px}.map-filter-label select{display:block;max-width:240px;margin-top:5px}.map-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.map-controls .btn{min-width:44px;padding:10px}.map-controls output{font-size:12px;min-width:48px;text-align:center;font-variant-numeric:tabular-nums}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;margin-top:16px}.map-surface{min-width:0}.map-scroll{height:610px;overflow:scroll;position:relative;border:1px solid var(--line);border-radius:10px;background:#e9edef;cursor:grab;touch-action:none;overscroll-behavior:contain;scrollbar-gutter:stable;user-select:none}.map-scroll:focus-visible{outline:3px solid var(--red)}.map-dragging{cursor:grabbing}.map-scroll svg{position:absolute;display:block;max-width:none;touch-action:none}#map-space{position:relative;min-width:100%;min-height:100%}.map-hit{fill:transparent;stroke:none}.map-dot{fill:#ae2939;stroke:white}.map-number{fill:white;font-family:system-ui,sans-serif;font-weight:750;pointer-events:none}.map-label-hit{fill:transparent;stroke:none}.hydrant-map-point{cursor:pointer;outline:none}.hydrant-map-point:hover .map-dot,.hydrant-map-point:focus .map-dot{fill:#8f2030;stroke:#ffc967}.hydrant-map-point.selected .map-dot{fill:#075c9a;stroke:white}.hydrant-map-point.selected .map-label-hit{fill:#075c9a18;stroke:#075c9a;stroke-width:2}.map-hidden{display:none}.map-caption{display:flex;justify-content:space-between;gap:12px;font-size:11px;color:var(--muted);padding:10px 2px}.map-sidebar{min-width:0}.map-info-empty{padding:22px 16px;background:#f6f8f9;border-radius:10px;margin-bottom:20px}.map-info-empty h2{font-size:17px}.map-info-empty p{font-size:13px}.map-info-icon{font-size:32px;color:var(--red)}.map-selection-head{display:flex;align-items:flex-start;gap:10px}.map-selection-head h2{font-size:17px;overflow-wrap:anywhere}.map-selection-head p{margin:5px 0}.map-selection-head>div{flex:1}.map-selected-number{display:grid;place-items:center;min-width:37px;height:37px;border-radius:50%;background:#075c9a;color:white;font-weight:750}.map-data-list{margin:16px 0}.map-data-list>div{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid #edf0f1;font-size:12px}.map-data-list dt{color:var(--muted);flex:1}.map-data-list dd{margin:0;max-width:50%;text-align:right;overflow-wrap:anywhere}.map-check{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}.map-check h3{margin-bottom:8px}.map-check p{font-size:13px}.map-finding{padding:10px;background:#fff2d9;border-radius:7px;white-space:pre-wrap}.map-results{margin-top:20px;border-top:1px solid var(--line);padding-top:14px}.map-results summary{font-size:13px;font-weight:650;cursor:pointer}.map-results>div{max-height:260px;overflow:auto;margin-top:12px}.map-result{display:flex;align-items:center;gap:10px;width:100%;border:0;border-bottom:1px solid var(--line);background:white;text-align:left;padding:10px 4px;color:var(--ink)}.map-result>span:first-child{min-width:30px;font-weight:750;color:var(--red)}.map-result>span:nth-child(2){flex:1;min-width:0}.map-result strong{display:block;font-size:12px;overflow-wrap:anywhere}.map-result small{font-size:10px;color:var(--muted);display:block}.map-result[aria-pressed=true]{background:#e6f0f7}.map-result:hover{background:#f4f6f7}.map-attribution{line-height:1.7;border-top:1px solid var(--line);padding-top:12px;margin-bottom:0}.map-expanded{position:fixed;inset:12px;z-index:30;overflow:auto;box-shadow:0 0 0 20px #202b3590}.map-expanded .map-scroll{height:calc(100vh - 240px);min-height:350px}.map-expanded .map-layout{grid-template-columns:minmax(0,1fr) 320px}
@media(max-width:1100px){.map-layout{grid-template-columns:minmax(0,1fr)}.map-sidebar{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,1fr);gap:24px}.map-results{margin-top:0}.map-scroll{height:580px}.map-expanded .map-layout{grid-template-columns:1fr}.map-expanded .map-scroll{height:65vh}}
@media(max-width:740px){.hydrant-map-card{padding:12px}.map-toolbar{gap:10px}.map-filter-label select{max-width:100%}.map-search{min-width:100%}.map-controls{width:100%}.map-layout{gap:14px}.map-sidebar{display:block}.map-results{margin-top:20px}.map-scroll{height:480px}.map-caption{flex-direction:column;gap:4px}.map-expanded{inset:4px}.map-expanded .map-scroll{height:58vh;min-height:300px}.map-sidebar .btn{min-height:44px}.map-help{font-size:11px}}
@media print{.map-scroll{overflow:visible;height:auto;min-height:400px}.hydrant-map-card{border:0}.map-results,.map-controls,.map-help{display:none}.map-expanded{position:static;box-shadow:none}.map-layout{display:block}}

/* Birthday crate overview */
.crate-heading-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.crate-grand-total{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#e8f3ed;border-radius:10px}.crate-grand-total strong{font-size:30px;color:var(--green)}.crate-grand-total span{font-size:12px;max-width:85px}.birthday-crates .card-head p{margin-bottom:0}.crate-table th,.crate-table td{padding:10px 12px}.crate-table thead th{text-transform:none;letter-spacing:0;font-size:12px}.crate-table .crate-group{text-align:center;background:#dceccd;color:#28412d;font-weight:750}.crate-table .sticky-name{position:sticky;z-index:2;left:0;min-width:180px;white-space:nowrap;background:white}.crate-table thead .sticky-name{background:#f7f9fa}.crate-number{text-align:center;font-variant-numeric:tabular-nums;min-width:62px}.crate-row-total{font-weight:700;background:#f7f9fa}.crate-note{white-space:pre-wrap;min-width:145px;max-width:260px;overflow-wrap:anywhere}.crate-external th{font-style:italic}.crate-table tfoot th,.crate-table tfoot td{background:#c9e0b7;font-weight:750;color:#243b29}.crate-table small{display:block;font-size:10px}.crate-invalid{color:#9a2030;background:#faecee}.crate-former{margin-top:18px;border-top:1px solid var(--line)}.crate-former summary{font-weight:650}.crate-year-total{padding:12px 16px;border-radius:8px;background:#e8f3ed;font-size:13px}.birthday-crates .table-wrap{max-width:100%}.crate-table caption{caption-side:top}
@media(max-width:740px){.birthday-crates .card-head{align-items:flex-start;flex-direction:column}.crate-heading-actions{width:100%;justify-content:space-between}.crate-table th,.crate-table td{padding:9px}.crate-table .sticky-name{min-width:150px}}
@media print{.birthday-crates{break-inside:auto}.birthday-crates .card-head{break-after:avoid}.crate-table{font-size:9px;white-space:normal}.crate-table th,.crate-table td{font-size:9px;padding:5px;min-width:0!important}.crate-table .sticky-name{position:static;white-space:normal}.crate-note{max-width:none}.crate-grand-total{border:1px solid #aaa}.crate-table thead{display:table-header-group}.crate-table tr{break-inside:avoid}.crate-table tfoot{display:table-row-group}.crate-former{break-inside:auto}.crate-year-total{break-before:avoid}}

.crate-table tbody th{text-transform:none;letter-spacing:0;font-size:13px;font-weight:650}.crate-table tfoot th{text-transform:none;letter-spacing:0}
/* Personal access and reviewed changes */
.access-narrow{max-width:680px}.access-narrow .field{margin-bottom:18px}.access-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.access-group{border:1px solid var(--line,#e2e5e9);border-radius:12px;padding:18px}.access-group ul{padding-left:20px;line-height:1.7}.proposal-list{display:grid;gap:18px}.proposal-card .ops-note{white-space:pre-wrap;overflow-wrap:anywhere;max-width:560px}#editor .proposal-card{box-shadow:none;padding:8px;border:0}.nav .badge{margin-left:auto}.form-grid h3.full{margin:12px 0 0}.access-group h3{margin:0}

/* Per-menu permissions and private document lists. */
.menu-grants{max-height:50vh;overflow:auto;border:1px solid var(--border,#ddd);border-radius:10px}.menu-grants thead{position:sticky;top:0;background:white;z-index:1}.menu-grants select{min-width:170px}.menu-parent{background:#f2f4f6}.menu-child th{padding-left:26px;font-weight:400}.document-source{overflow-wrap:anywhere;max-width:600px}.personal-document-list .list-row{align-items:flex-start;flex-wrap:wrap}.personal-document-list .grow{min-width:180px;overflow-wrap:anywhere}.menu-grants td{vertical-align:middle}button[hidden]{display:none!important}@media(max-width:650px){.menu-grants{overflow:auto}.menu-grants table{min-width:580px}.personal-document-list .ops-actions{width:100%}}

.menu-grants tbody th{text-transform:none;letter-spacing:normal;font-size:13px}.menu-grants .menu-parent th{font-weight:700}
/* Theater revenue and annual comparison. */
.theater-money{width:120px;max-width:100%;padding:9px 8px;text-align:right;font-variant-numeric:tabular-nums;border:1px solid #b7c6d1;border-radius:6px;background:#fff;color:var(--ink)}
.theater-money:focus,.theater-quantity:focus{outline:2px solid #3175a1;outline-offset:1px}
.theater-money:disabled,.theater-quantity:disabled{opacity:1;color:var(--ink);background:#f2f5f7;border-color:transparent}
.theater-revenue-row th,.theater-revenue-row td{background:#edf4f8!important;border-top:2px solid #adc7d9!important}
.theater-revenue-row small,.theater-years small{display:block;font-size:11px;font-weight:400;color:#5a6570;margin-top:5px;white-space:normal}
.theater-revenue-list{max-width:850px}.theater-revenue-list th,.theater-revenue-list td{padding:12px 16px}.theater-revenue-list td:last-child{text-align:right}.theater-revenue-list tfoot{background:#edf4f8;font-weight:700}
.theater-year-end{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.theater-year-end h2{margin:0}
.theater-finance-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:16px 0}.theater-finance-stats>div{background:#f3f6f8;border-radius:9px;padding:16px;min-width:0}.theater-finance-stats span{display:block;font-size:13px;color:#52606c}.theater-finance-stats strong{display:block;font-size:clamp(21px,2.4vw,29px);margin:8px 0;font-variant-numeric:tabular-nums}.theater-finance-stats small{display:block;color:#5a6570;font-size:12px;line-height:1.5}
.theater-finance-warning{background:#fff4dc;border-left:3px solid #ba791d;padding:12px 16px;line-height:1.55;border-radius:0 6px 6px 0;font-size:13px}.theater-difference{color:#855b19;font-weight:650}.theater-years{min-width:770px}.theater-years th,.theater-years td{padding:14px 12px;white-space:nowrap}.theater-years td:not(:last-child){text-align:right;font-variant-numeric:tabular-nums}.theater-years .theater-selected-year{background:#edf4f8}.theater-finance-history h2{margin-bottom:5px}.theater-finance-history .card-head p{margin-bottom:0}
.theater-chart-wrap{overflow-x:auto;margin-top:24px}.theater-chart-legend{display:flex;gap:22px;flex-wrap:wrap;font-size:12px;margin:0 0 10px}.theater-chart-legend .income-key:before,.theater-chart-legend .profit-key:before{content:'';display:inline-block;width:19px;height:3px;margin-right:7px;vertical-align:middle;background:#286b9a}.theater-chart-legend .profit-key:before{background:#197d58}.theater-finance-chart{width:100%;min-width:550px;max-height:380px;display:block}.finance-grid{stroke:#dfe5ea;stroke-width:1}.finance-axis{font-size:12px;fill:#52606c;font-family:inherit}.finance-caption{font-size:10px}.finance-line{stroke-width:2.5;fill:none}.finance-income{stroke:#286b9a;fill:#286b9a}.finance-profit{stroke:#197d58;fill:#197d58}.finance-partial{stroke-dasharray:6 5}.finance-point{stroke-width:2}.finance-open-point{fill:#fff}.finance-point:focus{stroke-width:4;outline:none}
@media(max-width:740px){.theater-finance-stats{grid-template-columns:1fr;gap:10px}.theater-finance-stats>div{padding:14px}.theater-year-end .card-head{gap:12px;flex-wrap:wrap}.theater-money{width:112px}.theater-revenue-list{min-width:440px}.theater-chart-legend{gap:12px}}
@media print{.theater-finance-stats{grid-template-columns:repeat(3,1fr)}.theater-finance-stats strong{font-size:19px}.theater-finance-history{break-inside:avoid}.theater-years{min-width:0;width:100%}.theater-years th,.theater-years td{font-size:9px;padding:6px}.theater-years small{font-size:8px}.theater-chart-wrap{overflow:visible}.theater-finance-chart{min-width:0;max-height:260px}.theater-revenue-list{min-width:0;width:100%}.theater-year-end,.theater-finance-history{color:#000}.theater-finance-warning{font-size:10px}.theater-revenue-row small{font-size:7px}.theater-finance-stats>div{padding:9px}.theater-chart-legend{font-size:9px}}

/* Veranstaltungen und Ausbildung */
.planner-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 22px;border-bottom:1px solid var(--line,#d9dfdf);padding-bottom:12px}
.planner-tabs a{padding:10px 14px;border-radius:8px;text-decoration:none;color:inherit;background:#fff;border:1px solid #dce1e0}
.planner-tabs a[aria-current=page]{background:#ae2939;color:#fff;border-color:#ae2939}
.planner-event{display:block;text-decoration:none;color:inherit}.planner-event h2{margin:12px 0}
.planner-table{min-width:620px}.planner-table td{vertical-align:top}.planner-table td strong{display:block}
.planner-table details{max-width:380px;margin-top:6px}.planner-table input[type=checkbox]{width:22px;height:22px;accent-color:#ae2939}
.planner-filters{display:flex;gap:20px;margin:20px 0}.planner-filters .field{flex:1;margin:0}
.training-tiles h2{font-size:21px;line-height:1.3}.training-tiles h2 a{color:inherit;text-decoration:none}
.training-tile[hidden]{display:none}.training-tile p{line-height:1.6}
@media(max-width:650px){.planner-filters{display:block}.planner-filters .field+.field{margin-top:12px}.planner-tabs a{font-size:13px;padding:9px}.planner-event{margin-bottom:14px}}
@media print{.planner-table{min-width:0;font-size:10px}.planner-table td,.planner-table th{padding:5px}.planner-table button{display:none}.planner-table details p{display:block}.training-tiles{display:block}.training-tile{break-inside:avoid;margin-bottom:15px}}

/* v0.17: administrative records */
.work-card{border:1px solid var(--line,#ddd);border-radius:8px;margin:12px 0;background:var(--surface,#fff)}
.work-card>summary{padding:14px;cursor:pointer;line-height:1.7}.work-card-body{padding:0 18px 18px}.work-check{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid #e7e7e7}.work-check input{margin-top:4px;width:20px;height:20px;flex-shrink:0}.work-check small,.work-section a small{display:block}.work-notes{white-space:pre-wrap}.work-source{overflow-wrap:anywhere}.work-modal{max-height:80vh;overflow:auto;padding:20px;min-width:min(650px,85vw)}.theater-day-legend{display:flex;gap:20px;flex-wrap:wrap;padding:12px 0}.theater-day-legend label{display:flex;gap:6px;align-items:center}.theater-day-chart{min-width:800px;width:100%;display:block}#association-table td{vertical-align:top}#association-search{min-width:220px}
@media print{.work-card-body{display:block!important}.work-card{break-inside:avoid}.theater-day-chart{min-width:0}.theater-day-legend input{display:none}}

.work-photo{width:100px;height:75px;object-fit:cover;border-radius:6px;margin-right:12px}

/* Bambini use the same tested table layout with independent controls. */


/* Youth member management */
.bambini-source{flex-wrap:wrap}
.bambini-source .grow{min-width:240px}
.bambini-source .heading-actions{flex-wrap:wrap}

.bambini-profile .meta dd{white-space:pre-wrap}
.bambini-events .long-text{min-width:200px;max-width:440px}

.bambini-matrix td{padding:0!important}
.bambini-matrix .bambini-attendance{border:0;border-radius:0;background:transparent;width:100%;min-width:62px;padding:8px 4px;font-size:12px}
.bambini-matrix .bambini-attendance:disabled{cursor:default;background:#f4f5f6;color:#687581}
.bambini-profile{grid-template-columns:1fr}
.bambini-nav .subnav{display:flex;flex-wrap:wrap}
.bambini-source{align-items:flex-start}
.bambini-profile{grid-template-columns:1fr 1fr}
.bambini-profile .card{break-inside:avoid}
.bambini-matrix td{padding:4px!important}
.bambini-matrix .history-event{height:150px}
.bambini-source .heading-actions{display:none}


.bambini-nav>summary{font-size:13px;gap:7px;padding-left:10px;padding-right:10px}
.bambini-nav>summary .nav-symbol{width:16px;font-size:17px;flex-shrink:0}
.bambini-nav>summary .system-chevron{font-size:11px}
.annual-report .stat-value{font-size:1.8rem}.annual-report .work-notes{white-space:pre-wrap}@media print{.annual-report .card{break-inside:auto}.annual-report h2{break-after:avoid}.annual-report tr{break-inside:avoid}}

.festival-groups{display:grid;gap:24px;margin-top:16px}.festival-group{min-width:0}.festival-group h2{margin:5px 0 0}.festival-group .planner-table th,.festival-group .planner-table td{white-space:normal;overflow-wrap:anywhere}.festival-group .planner-table td:nth-child(2){min-width:220px}.festival-related .list-row{flex-wrap:wrap;gap:10px}.festival-related .grow{min-width:240px}.festival-site-plan img{display:block;width:100%;height:auto;max-height:650px;object-fit:contain;border-radius:10px}.festival-site-plan a:focus-visible{outline:3px solid #ae2939;outline-offset:3px}.festival-owner{position:relative}.festival-owner-row{display:flex;gap:6px}.festival-owner-row input{flex:1;min-width:0}.festival-owner-row .btn{flex:none;min-width:44px}.festival-owner ul{position:absolute;top:72px;left:0;right:0;z-index:20;max-height:230px;overflow-y:auto;background:#fff;border:1px solid #ccd0d8;border-radius:8px;padding:5px;margin:0;list-style:none;box-shadow:0 8px 28px #0002}.festival-owner li{padding:10px 12px;cursor:pointer;border-radius:4px;overflow-wrap:anywhere}.festival-owner li[aria-selected="true"],.festival-owner li[role="option"]:hover{background:#fae8ec;color:#8a1026}.festival-owner li[role="presentation"]{cursor:default}.festival-owner [hidden]{display:none!important}.festival-owner p{margin:5px 0 0}#festival-print-root{display:none}
@media(max-width:700px){.festival-group .card-head,.festival-site-plan .card-head{align-items:stretch;flex-direction:column;gap:12px}.festival-group{padding:16px}.festival-site-plan img{max-height:none}.festival-owner ul{top:72px}.festival-related .grow{min-width:180px}}
@media print{.festival-group{break-inside:auto!important}.festival-group .card-head{break-after:avoid}.festival-group table{font-size:10px;table-layout:auto;width:100%}.festival-group th,.festival-group td{padding:5px;max-width:none;min-width:0!important;white-space:normal}.festival-group thead{display:table-header-group}.festival-group tr{break-inside:avoid}.festival-group .table-wrap{overflow:visible}.festival-groups{display:block}.festival-site-plan{break-inside:avoid}.festival-print-check{font-size:15px}body.festival-print-single> :not(#festival-print-root){display:none!important}body.festival-print-single>#festival-print-root{display:block!important;padding:0;color:#000}#festival-print-root h1{font-size:20px;margin:0 0 12px}#festival-print-root .card{border:0;padding:0;margin:0;box-shadow:none}#festival-print-root .festival-group details{display:block!important}#festival-print-root .festival-group details>summary{font-weight:bold}#festival-print-root .ops-note{margin:3px 0}.festival-owner{display:none}}

/* Annual event schedule: calendar metadata and A4 portrait printing. */
.nav .event-nav>summary{padding:0 10px 0 0;gap:4px}.nav .event-nav>summary>a.event-overview-link{display:flex;flex:1;align-items:center;gap:10px;margin:0;padding:12px 10px;border:0;background:transparent;color:inherit;font-size:inherit;font-weight:inherit;border-radius:8px}.event-nav .event-overview-link:focus-visible{outline:2px solid #b52c3e;outline-offset:-2px}.event-nav>summary>.system-chevron{padding:12px 4px}.event-upcoming{margin-bottom:24px}.event-upcoming .list-row{padding:12px;border-bottom:3px solid white;gap:12px;border-radius:7px}.event-upcoming .grow{min-width:0}.event-upcoming a,.event-year-table a{color:inherit;text-decoration:none}.event-upcoming a:hover,.event-year-table a:hover{text-decoration:underline}.event-plan-legend{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.event-plan-legend span{padding:6px 10px;border-radius:5px;font-size:12px;border:1px solid #0002}.plan-exercise{background:#fbdade!important;color:#33131b}.plan-maintenance{background:#dfeeda!important;color:#19351c}.plan-duty{background:#e9eaee!important;color:#272b33}.plan-celebration{background:#fff0c2!important;color:#42340f}.plan-incident{background:#dceafa!important;color:#19344e}.event-year-table{min-width:800px;table-layout:fixed;width:100%;white-space:normal}.event-year-table td,.event-year-table th{padding:10px 9px;vertical-align:top;overflow-wrap:anywhere;border-bottom:2px solid white}.event-year-table td strong{font-weight:600}.event-year-table .plan-date{width:12%}.event-year-table .plan-time{width:8%}.event-year-table .plan-title{width:24%}.event-year-table .plan-leader{width:16%}.event-year-table .plan-note{width:16%}.event-year-table .plan-location{width:12%}.plan-type{display:block;font-size:10px;margin-top:4px;opacity:.85}.event-year-plan .card-head{align-items:flex-start;gap:16px}.event-year-plan .card-head h2{margin:4px 0}.event-year-plan .card-head p{margin:6px 0}.event-year-plan .plan-footnote{margin-top:12px}#event-year-print-root{display:none}.plan-note-text{white-space:pre-wrap!important}.event-schedule-details{margin-bottom:20px}.event-schedule-details dl{display:grid;grid-template-columns:minmax(100px,180px) minmax(0,1fr);gap:10px 16px}.event-schedule-details dt{font-weight:600}.event-schedule-details dd{margin:0;overflow-wrap:anywhere}
@media(max-width:700px){.event-year-plan .card-head{flex-direction:column}.event-upcoming .list-row{flex-wrap:wrap}.event-upcoming .list-row>.badge{margin-left:60px}.event-year-plan{padding:16px}}
@media print{@page eventYearPlan{size:A4 portrait;margin:12mm 10mm}body:has(.event-year-plan),body.event-year-print{page:eventYearPlan}.event-year-plan{break-inside:auto!important;padding:0!important;margin:0!important;border:0;box-shadow:none}.event-year-plan .card-head{break-after:avoid;display:block}.event-year-plan h2{font-size:19px}.event-year-plan .eyebrow{font-size:9px}.event-year-plan .small{font-size:9px}.event-year-plan .event-plan-legend{gap:4px;margin:8px 0;break-after:avoid}.event-plan-legend span{font-size:8px;padding:3px 6px}.event-year-plan .table-wrap{overflow:visible}.event-year-table{min-width:0!important;width:100%;table-layout:fixed;font-size:9px}.event-year-table th,.event-year-table td{font-size:10.5px;padding:5px 4px;border-bottom:1px solid #aaa;white-space:normal;overflow-wrap:anywhere}.event-year-table thead{display:table-header-group}.event-year-table tr{break-inside:avoid}.event-year-table .plan-date{width:13%}.event-year-table .plan-time{width:8%}.event-year-table .plan-title{width:26%}.event-year-table .plan-leader{width:18%}.event-year-table .plan-note{width:21%}.event-year-table .plan-location{width:14%}.plan-type{font-size:8px;margin-top:2px}.event-year-table tr,.event-plan-legend span{print-color-adjust:exact;-webkit-print-color-adjust:exact}body.event-year-print>:not(#event-year-print-root){display:none!important}body.event-year-print>#event-year-print-root{display:block!important}body:has(.event-year-plan) .page-heading{display:none}}

.btn.danger{color:#a51f32;border-color:#b52c3e;background:#fff}.btn.danger:hover{background:#fff0f1}.event-delete-button{margin-right:auto}
