:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#152633;background:#eef3f6;font-size:18px;font-synthesis:none;text-rendering:optimizeLegibility;--navy:#123b5d;--blue:#1769aa;--green:#137a44;--red:#a9232c;--line:#c7d2da;--muted:#536876;--focus:#f4a900}
*{box-sizing:border-box}body{margin:0;min-width:320px}.site-header{display:flex;align-items:center;gap:16px;padding:18px clamp(16px,4vw,48px);background:var(--navy);color:white}.brand-logo{width:62px;height:62px;object-fit:contain;background:#fff;border-radius:16px;padding:4px}.site-header h1{margin:0;font-size:1.5rem}.eyebrow{margin:0 0 3px;font-size:.8rem;letter-spacing:.04em;text-transform:uppercase;opacity:.84}main{width:min(1100px,100% - 24px);margin:22px auto 40px}.card{background:white;border:1px solid var(--line);border-radius:16px;padding:clamp(18px,3vw,28px);margin:0 0 18px;box-shadow:0 3px 14px #172c3c0b}h2{font-size:1.45rem;margin:0 0 12px;color:#142f43}h3{font-size:1.12rem;margin:25px 0 12px}p{line-height:1.5}label{display:grid;gap:7px;font-weight:650;margin:5px 0 12px}input,select,textarea{font:inherit;color:inherit;padding:13px 14px;min-height:52px;border:2px solid #899ba7;border-radius:9px;background:white;width:100%}input:focus,select:focus,textarea:focus,button:focus-visible,summary:focus-visible{outline:4px solid var(--focus);outline-offset:2px}button{font:inherit;cursor:pointer}.button{min-height:52px;padding:11px 19px;border:2px solid transparent;border-radius:10px;font-weight:750;display:inline-flex;align-items:center;justify-content:center;text-align:center;text-decoration:none}.button-primary{background:var(--blue);color:white}.button-secondary{border-color:#507087;color:#143c57;background:white}.button-danger{background:var(--red);color:white;width:100%;min-height:64px;font-size:1.1rem}.button-link{color:#124f82;background:transparent;border-color:transparent;text-decoration:underline}.button-row{display:flex;gap:12px;flex-wrap:wrap}.button:disabled{opacity:.55;cursor:wait}.section-heading,.welcome-row,.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.section-heading h2{margin-bottom:0}.small-label{font-size:.78rem;color:var(--muted)}.public-card{border-top:7px solid var(--blue)}.status-banner{padding:22px 18px;margin:14px 0;border-radius:12px;font-size:clamp(1.3rem,4vw,2rem);font-weight:850;text-align:center}.status-open{background:#d9f3e3;color:#07572c;border:2px solid #17804b}.status-closed{background:#f8dfe0;color:#77151b;border:2px solid #b73038}.status-locked{background:#f8dfe0;color:#77151b;border:2px solid #b73038}.status-unknown{background:#e4ebef;color:#405564}.status-pill{padding:7px 12px;border-radius:100px;font-weight:750;background:#e4ebef}.muted{color:var(--muted)}.notice{padding:12px 14px;border-left:5px solid #237ba9;background:#edf6fb}.auth-card{max-width:620px;margin:18px auto}.auth-card form{display:grid;gap:9px}.help-box{margin-top:20px;padding:12px 14px;background:#f4f7f9;border-radius:9px}.help-box summary{font-weight:700;cursor:pointer}.captcha-slot{min-height:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px}.form-wide{grid-column:1/-1}.checkbox-label{display:flex;align-items:center;gap:12px;min-height:48px}.checkbox-label input{width:24px;height:24px;min-height:auto;flex:none;accent-color:var(--blue)}.hidden{display:none!important}.welcome-row{padding:14px 20px}.welcome-row h2{margin:0}.main-nav,.admin-nav{display:flex;gap:8px;overflow-x:auto;margin:0 0 14px;padding-bottom:4px}.nav-button,.admin-tab{background:#fff;border:2px solid var(--line);color:#233f52;padding:12px 16px;border-radius:9px;font-weight:750;min-height:50px;white-space:nowrap}.nav-button.active,.admin-tab.active{background:var(--navy);border-color:var(--navy);color:white}.large-copy{font-size:1.1rem;font-weight:700}.action-area{display:grid;gap:12px}.action-area .button{width:100%;min-height:65px;font-size:1.15rem}.action-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(140px,1fr);gap:12px}.tower-panel{padding:14px;background:#eef5f8;border-radius:10px}.tower-panel a{font-size:1.2rem;font-weight:800}.event-list{padding-left:24px}.event-list li{padding:8px 0;line-height:1.45;border-bottom:1px solid #e4e9ec}.filter-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:10px}.filter-row label{font-size:.86rem}.table-scroll{overflow:auto;width:100%;border:1px solid var(--line);border-radius:10px}table{border-collapse:collapse;width:100%;min-width:760px}th,td{text-align:left;padding:12px;border-bottom:1px solid #dce4e8;vertical-align:top}th{background:#eaf0f4;font-size:.85rem}td{font-size:.93rem}.row-actions{display:flex;gap:6px;flex-wrap:wrap}.small-button{padding:7px 9px;min-height:40px;font-size:.86rem}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.summary-card{border:1px solid var(--line);border-radius:11px;padding:16px;background:#f7fafb}.summary-card span{display:block;color:var(--muted);font-size:.85rem}.summary-card strong{font-size:1.5rem;display:block;margin-top:5px}.fee-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px 14px}.fee-grid h4{margin:0}.secret-box{background:#f0f4f6;border:1px solid var(--line);padding:15px;border-radius:10px;margin:12px 0;display:grid;gap:10px}.secret-box code{font-size:1.1rem;letter-spacing:.08em;word-break:break-all}.privacy-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.toast{position:fixed;left:50%;bottom:18px;transform:translate(-50%,150%);transition:transform .2s ease;background:#153c56;color:white;padding:15px 22px;border-radius:10px;max-width:min(620px,calc(100vw - 24px));box-shadow:0 5px 22px #102c3d44;z-index:20}.toast.show{transform:translate(-50%,0)}dialog{border:0;border-radius:14px;box-shadow:0 16px 60px #142c3c55;width:min(600px,calc(100% - 24px));padding:22px;max-height:90vh;overflow:auto}dialog::backdrop{background:#0c263a99}.wide-dialog{width:min(850px,calc(100% - 24px))}.dialog-heading h2{margin:0}.close-button{border:0;background:transparent;font-size:2rem;color:#354f60;line-height:1}.filter-row input{font-size:.93rem}.admin-pane{min-height:240px}footer{padding:20px;text-align:center;color:var(--muted);font-size:.85rem}
@media(max-width:760px){:root{font-size:17px}.filter-row{grid-template-columns:1fr 1fr}.fee-grid{grid-template-columns:1fr 1fr}.summary-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-wide{grid-column:auto}.welcome-row{align-items:flex-start;flex-direction:column}.welcome-row .button{width:100%}.site-header{padding:14px 16px}.brand-logo{width:54px;height:54px}.section-heading{align-items:flex-start}.section-heading .button{white-space:nowrap}.action-row{grid-template-columns:1fr}.public-card .button{width:100%}.card{border-radius:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.toast.error{background:#7c1820}
.recovery-codes{padding:14px;background:#f0f4f6;border:1px solid var(--line);border-radius:9px;white-space:pre-wrap;overflow-wrap:anywhere;font:700 1rem/1.8 ui-monospace,monospace}
.totp-setup{display:grid;justify-items:center;gap:10px;margin:14px 0}.totp-setup p{margin:0;text-align:center}.totp-qr{width:min(100%,344px);padding:12px;background:#fff;border:1px solid var(--line);border-radius:12px}.totp-qr svg{display:block;width:100%;height:auto;shape-rendering:crispEdges}
.site-header{justify-content:space-between;gap:18px;position:relative;z-index:5}.brand-lockup,.header-actions{display:flex;align-items:center;gap:14px}.brand-lockup h1{margin:0;color:#fff;font-size:clamp(1.1rem,3vw,1.55rem)}.header-actions{margin-left:auto}.header-actions .status-pill{font-size:.86rem;line-height:1.2;text-align:center;max-width:250px}.account-menu{position:relative}.account-menu>summary{list-style:none}.account-menu>summary::-webkit-details-marker{display:none}.account-menu-toggle{display:grid;place-items:center;width:54px;height:54px;border:2px solid #fff;border-radius:50%;background:#fff;color:var(--navy);cursor:pointer}.account-menu-toggle svg{width:27px;height:27px;fill:currentColor}.account-menu[open] .account-menu-toggle{outline:4px solid #f4a900;outline-offset:2px}.account-dropdown{position:absolute;top:calc(100% + 10px);right:0;width:min(370px,calc(100vw - 24px));max-height:min(80vh,720px);overflow:auto;padding:14px;background:#fff;color:#152633;border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 36px #0b23374d;z-index:20}.account-dropdown .auth-card{max-width:none;margin:0;padding:8px;border:0;box-shadow:none}.account-dropdown .auth-card h2{font-size:1.25rem}.account-dropdown .auth-card p{font-size:.95rem}.account-user{display:grid;gap:7px}.account-user .eyebrow{color:var(--muted)}.account-user>strong{font-size:1.15rem;margin-bottom:5px}.account-link{width:100%;min-height:48px;padding:10px 12px;border:1px solid #d6e0e6;border-radius:9px;background:#f7fafb;color:#143c57;text-align:left;font:inherit;font-weight:700}.account-link:hover{background:#eaf3f8}.account-logout{margin-top:6px;color:#8e1d24;background:#fff5f5}.profile-identity{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0 18px}.profile-identity>div{display:grid;gap:4px;padding:12px 14px;background:#f4f7f9;border:1px solid #dde5e9;border-radius:9px}.profile-identity span{font-size:.82rem;color:var(--muted)}.profile-identity strong{overflow-wrap:anywhere}.log-download{margin-top:24px;padding-top:14px;border-top:1px solid #dce4e8}.log-download h3{margin:0 0 6px}.log-download p{margin:0 0 10px}
.owner-summary strong{font-size:1.1rem;overflow-wrap:anywhere}.owner-status{margin-top:20px;padding:16px;border:1px solid var(--line);border-radius:10px;background:#f4f7f9}.owner-status p{margin:7px 0 0}
@media(max-width:600px){.site-header{flex-wrap:wrap;padding:12px 14px}.brand-lockup{gap:10px}.brand-lockup h1{font-size:1.15rem}.brand-logo{width:48px;height:48px}.header-actions{gap:9px}.header-actions .status-pill{max-width:190px;font-size:.78rem}.account-menu-toggle{width:48px;height:48px}.profile-identity{grid-template-columns:1fr}}

/* Donkere vaste vormgeving */
:root{color:#edf5fb;background:#07111c;--navy:#07131f;--blue:#39a6ff;--green:#54d694;--red:#ff707f;--line:#294258;--muted:#aebfce;--focus:#ffd166}body{background:radial-gradient(circle at 10% 0,#17334a 0,#07111c 40rem);color:#edf5fb}.site-header{background:linear-gradient(135deg,#06101a,#10283b);border-bottom:1px solid #294258}.brand-logo{background:transparent;border:1px solid #5c7590;border-radius:12px;padding:4px;object-fit:contain}.card,.account-dropdown,dialog{background:#101d2a;color:#edf5fb;border-color:#294258;box-shadow:0 12px 32px #00000045}.card{box-shadow:0 8px 24px #00000032}h2,h3,h4{color:#f8fbff}.muted{color:#aebfce}.eyebrow{color:#b6cbdb}.small-label{color:#b6cbdb}input,select,textarea{background:#081520;color:#f4f8fb;border-color:#49647a}input::placeholder,textarea::placeholder{color:#8da3b4}input:focus,select:focus,textarea:focus{border-color:#56b7ff}.button-primary{background:#168ce8;color:#fff}.button-primary:hover{background:#39a6ff}.button-secondary{background:#142637;color:#dbeaf5;border-color:#5a7890}.button-secondary:hover,.account-link:hover{background:#1b3549}.button-link{color:#76c7ff}.button-danger{background:#c84052;color:#fff}.notice{color:#dcecf7;background:#102d43;border-left-color:#4eb8ff}.status-open{background:#103d2c;color:#9cf2c4;border-color:#42c77d}.status-closed,.status-locked{background:#48212a;color:#ffc3ca;border-color:#ed6674}.status-unknown{background:#263b4c;color:#dcecf7}.status-pill{background:#263b4c;color:#edf5fb}.summary-card,.profile-identity>div,.tower-panel,.owner-status,.recovery-codes,.secret-box{background:#142637;border-color:#345067;color:#eaf3fa}.table-scroll{border-color:#345067}th{background:#1c3347;color:#f0f6fa}td{border-color:#294258}tr:hover td{background:#142637}.account-menu-toggle{background:#142637;color:#eaf5fb;border-color:#7290a8}.account-dropdown{border-color:#416179}.account-link{background:#142637;color:#e6f3fb;border-color:#36536a}.account-logout{background:#3b2028;color:#ffdbe0}.help-box{background:#142637}.totp-qr{background:#f7fbff;border-color:#57738a}.totp-setup p{color:#b7c9d8}.log-download{border-color:#294258}.footer,footer{color:#aebfce}.profile-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.profile-details>div{display:grid;gap:4px;padding:13px 14px;border:1px solid #345067;border-radius:10px;background:#142637}.profile-details span{color:#aebfce;font-size:.82rem}.profile-details strong{overflow-wrap:anywhere}.security-note{color:#c0d2df;background:#0b2639;border:1px solid #285170;border-radius:10px;padding:13px 15px;font-size:.92rem}.cockpit-nav{display:flex;gap:8px;margin:0 0 14px}.cockpit-nav-button{display:flex;align-items:center;gap:8px;min-height:46px;padding:9px 15px;border:1px solid #36536a;border-radius:9px;background:#142637;color:#eaf5fb;font:inherit;font-weight:750}.cockpit-nav-button.active,.cockpit-nav-button:hover{background:#168ce8;border-color:#39a6ff;color:#fff}.year-picker{width:150px;margin:0;font-size:.82rem;color:#b6cbdb}.year-picker input{min-height:44px;padding:8px 10px}.fee-overview{margin-top:26px;padding-top:20px;border-top:1px solid #294258}.fee-overview h3{margin:0}.fee-overview p{margin:6px 0}.fee-rules-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.fee-rule-card{padding:16px;border:1px solid #345067;border-radius:11px;background:#142637}.fee-rule-card h4{margin:0 0 10px}.fee-rule-card p{margin:4px 0;color:#c5d6e3}.fee-rule-card strong{color:#fff;font-size:1.08rem}.fee-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fee-grid .dialog-heading,.fee-grid .form-wide{grid-column:1/-1}@media(max-width:760px){.profile-details,.fee-rules-summary,.fee-grid{grid-template-columns:1fr}.year-picker{width:130px}.fee-overview .section-heading{align-items:flex-start;flex-direction:column}.fee-overview .section-heading .button{width:100%}}
.tower-call-list{display:grid;gap:9px;margin-top:12px}.tower-call{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:13px 15px;border:1px solid #37637d;border-radius:10px;background:#102c40;color:#eef8ff;text-decoration:none}.tower-call span{font-size:.84rem;color:#b7d9ef}.tower-call strong{font-size:1.08rem}.tower-primary{border-color:#42b9fc;background:#0d3754}.tower-backup{border-color:#597489}@media(max-width:520px){.tower-call{align-items:flex-start;flex-direction:column;gap:3px}}
.brand-logo{width:108px;height:68px;padding:0;border:0;border-radius:0;object-fit:contain}@media(max-width:600px){.brand-logo{width:86px;height:54px}}
.field-example{margin:-5px 0 6px;color:#aebfce;font-size:.84rem}
.brand-home{display:flex;align-items:center;justify-content:center;margin:0;padding:0;border:0;background:transparent;border-radius:0}.brand-home:focus-visible{outline:4px solid var(--focus);outline-offset:3px}.site-header.terrain-open{border-bottom:4px solid #42c77d}.site-header.terrain-closed,.site-header.terrain-locked{border-bottom:4px solid #ed6674}.site-header.terrain-unknown{border-bottom:1px solid #294258}@media(max-width:600px){.site-header{display:grid;grid-template-columns:54px minmax(0,1fr) 48px;gap:8px;align-items:center;flex-wrap:nowrap;padding:10px 14px}.brand-lockup{display:contents}.brand-home{grid-column:1}.brand-logo{width:54px;height:48px}.brand-lockup h1{grid-column:2;text-align:center;font-size:clamp(.86rem,4vw,1.05rem);line-height:1.15;white-space:nowrap}.header-actions{grid-column:3;margin:0;justify-self:end}.header-actions .status-pill{display:none}.account-menu-toggle{width:46px;height:46px}.account-menu-toggle svg{width:24px;height:24px}.account-dropdown{top:calc(100% + 8px);right:-4px}}
/* ISA-geinspireerde hoofdstructuur en compacte bedieningen */
.main-menu-toggle{display:grid;place-items:center;gap:4px;width:46px;height:46px;padding:0;border:1px solid #55728a;border-radius:10px;background:#142637;color:#eef8ff}.main-menu-toggle span{display:block;width:20px;height:2px;border-radius:5px;background:currentColor}.main-menu-toggle:hover{background:#1b3549}.main-nav-drawer{position:fixed;z-index:18;top:92px;left:max(14px,calc((100vw - 1100px)/2));width:min(278px,calc(100vw - 28px));display:grid;gap:7px;padding:12px;background:#101d2a;border:1px solid #416179;border-radius:14px;box-shadow:0 16px 42px #00000070}.main-nav-drawer .nav-button{width:100%;text-align:left;background:#142637;border-color:#36536a;color:#e6f3fb}.main-nav-drawer .nav-button.active,.main-nav-drawer .nav-button:hover{background:#168ce8;border-color:#39a6ff;color:#fff}.icon-actions{display:flex;gap:8px}.icon-button{display:grid;place-items:center;width:46px;height:46px;padding:0;border:1px solid #54728a;border-radius:10px;background:#142637;color:#f0f7fc;font:700 1.35rem/1 system-ui;cursor:pointer}.icon-button:hover{background:#1b3549;border-color:#72c4f9}.row-icon{width:40px;height:40px;font-size:1.1rem}.notification-setting{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 0;border-bottom:1px solid #294258}.notification-setting p{margin:4px 0 0}.switch{position:relative;display:inline-flex;flex:none;width:54px;height:32px;margin:0}.switch input{position:absolute;opacity:0;width:1px;height:1px}.switch span{width:54px;height:32px;border-radius:100px;background:#607383;transition:background .18s ease;cursor:pointer}.switch span::after{content:"";position:absolute;top:4px;left:4px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0008;transition:transform .18s ease}.switch input:checked+span{background:#41bc72}.switch input:checked+span::after{transform:translateX(22px)}.switch input:focus-visible+span{outline:4px solid var(--focus);outline-offset:3px}.switch input:disabled+span{opacity:.5;cursor:not-allowed}.notification-help{position:relative}.notification-help summary{display:grid;place-items:center;width:28px;height:28px;border:1px solid #55baff;border-radius:50%;background:#0e3654;color:#7bd0ff;font-weight:800;cursor:pointer;list-style:none}.notification-help summary::-webkit-details-marker{display:none}.notification-help p{position:absolute;z-index:4;right:0;top:30px;width:min(320px,calc(100vw - 44px));margin:0;padding:12px 14px;border:1px solid #3c6785;border-radius:10px;background:#10283b;color:#dcecf7;box-shadow:0 10px 24px #0008;font-size:.9rem}.phone-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#168ce8;color:#fff;font-size:.9rem}.tower-call{display:grid;grid-template-columns:28px 1fr auto}.tower-call strong{grid-column:3}.tower-call>span:nth-child(2){grid-column:2}.payment-summary{grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.payment-summary .summary-card strong{font-size:1.15rem}.totp-setup+form .button,.totp-setup~form .button{margin-top:14px}.site-header{border-bottom-width:3px}
@media(min-width:761px){.brand-lockup{gap:11px}.brand-logo{width:76px;height:54px}.main-menu-toggle{order:-1}.main-nav-drawer{top:86px}}
@media(max-width:760px){.site-header{display:grid;grid-template-columns:46px minmax(0,1fr) 46px;gap:8px;align-items:center;flex-wrap:nowrap;padding:10px 14px}.brand-lockup{display:contents}.main-menu-toggle{grid-column:1;grid-row:1}.brand-home{display:none}.brand-lockup h1{grid-column:2;grid-row:1;text-align:left;font-size:clamp(.93rem,4vw,1.07rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-actions{grid-column:3;grid-row:1;margin:0;justify-self:end}.main-nav-drawer{top:70px;left:12px;width:min(300px,calc(100vw - 24px))}.notification-setting{align-items:flex-start}.tower-call{display:grid;grid-template-columns:28px 1fr;gap:4px 10px}.tower-call strong{grid-column:2}.tower-call>span:nth-child(2){grid-column:2}.payment-summary{grid-template-columns:1fr 1fr}.totp-setup~form .button{margin-top:18px;width:100%}}

/* BMV-schil volgens de navigatie- en typografiestijl van Drankbeheer. */
:root{font-family:Inter,"Segoe UI Variable","Aptos",system-ui,sans-serif;--accent:#f3a447;--accent-bright:#ffc675;--accent-soft:#3a2b17;--panel:#101d2a;--panel-raised:#142637;--header:#0b1723}
body{letter-spacing:.003em;background:radial-gradient(circle at 8% -6%,#1c3c56 0,#07111c 43rem);min-height:100vh}
.site-header{position:sticky;top:12px;z-index:30;min-height:76px;margin:12px 14px 0;padding:12px clamp(16px,3vw,34px);border:1px solid #385a72;border-radius:17px;background:linear-gradient(105deg,#081521 0%,#102a3e 100%);box-shadow:0 10px 24px #02070d70}
.header-title{display:grid;gap:2px}.header-title p{margin:0;color:var(--accent-bright);font-size:.72rem;font-weight:850;letter-spacing:.13em;text-transform:uppercase}.header-title h1{margin:0;color:#f7fbff;font-size:clamp(1.1rem,2.2vw,1.55rem);font-weight:780;letter-spacing:-.025em}.brand-lockup{gap:13px}.brand-home{flex:none}.brand-logo{width:70px;height:52px}.eyebrow,.nav-label{color:var(--accent-bright);font-size:.7rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase}.eyebrow{opacity:1}.section-heading h2,.card h2{font-size:clamp(1.45rem,3vw,2.1rem);line-height:1.1;letter-spacing:-.04em}.card h3{font-size:1.05rem;letter-spacing:-.015em}.card{border-radius:18px;padding:clamp(20px,3.1vw,34px);border-color:#35536a;background:linear-gradient(145deg,#122231 0%,#101d2a 72%)}
.account-menu-toggle{width:48px;height:48px;border:1px solid #7191aa;background:#15293a;color:var(--accent-bright);box-shadow:inset 0 0 0 1px #0a1620}.account-menu-toggle svg{width:24px;height:24px}.account-initial{display:grid;place-items:center;width:100%;height:100%;font-size:1.02rem;font-weight:850}.account-menu[open] .account-menu-toggle{outline-color:var(--accent);background:#1f3b50}.account-dropdown{width:min(382px,calc(100vw - 24px));padding:12px;border-radius:16px;background:#101f2d;border-color:#456980;box-shadow:0 20px 50px #000b}.account-user{gap:8px}.account-user-heading{display:flex;align-items:center;gap:12px;margin:2px 2px 7px;padding:10px 8px 14px;border-bottom:1px solid #345269}.account-menu-initial{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:50%;background:var(--accent);color:#172331;font-weight:900}.account-user-heading .eyebrow{margin:0;color:var(--accent-bright);font-size:.64rem}.account-user-heading strong{display:block;font-size:1rem}.account-user-heading small{display:block;margin-top:2px;color:#aebfce;font-size:.76rem}.account-link{display:grid;gap:2px;border:0;border-radius:10px;background:transparent;padding:11px 12px;color:#f3f8fb}.account-link span{font-weight:780}.account-link small{color:#aebfce;font-size:.75rem}.account-link:hover{background:#1a3346}.account-logout{margin-top:4px;background:#2c2028;color:#ffdee2}.account-logout small{color:#f2b9c1}
.account-owner-link{border-top:1px solid #345269;border-bottom:1px solid #345269;border-radius:0;color:var(--accent-bright)}.account-owner-link small{color:#d8b783}.owner-payment-card,.owner-transfer-card,.owner-reminder-card{max-width:700px}.owner-payment-amount{margin:2px 0 14px;color:var(--accent-bright);font-weight:800}.owner-receipt-note{margin:14px 0 0;font-size:.78rem}.owner-outlook-card{max-width:700px}.outlook-secret-guide{display:grid;gap:10px;margin:18px 0;padding-left:24px;color:#d5e3ed}.outlook-secret-guide strong{color:#fff}.agenda-sync-state{margin:7px 0 0;color:#b7c9d6;font-size:.78rem}.agenda-sync-state.synced{color:#79e5a7}.agenda-sync-state.failed{color:#ff9ca8}
.main-menu-toggle{width:42px;height:42px;border-radius:50%;border-color:#4d718a;background:#142b3d;color:#f5b15b}.main-menu-toggle span{width:18px;height:2px}.main-menu-toggle:hover{background:#24465d;color:#ffc675}.main-nav-drawer{display:grid;gap:5px;padding:15px;border-color:#41647a;border-radius:16px;background:#101f2e;box-shadow:0 22px 55px #000b}.nav-brand{display:flex;align-items:center;gap:10px;padding:3px 4px 14px;border-bottom:1px solid #35546a}.nav-brand img{width:58px;height:48px;object-fit:contain}.nav-brand div{display:grid;line-height:1.02}.nav-brand strong{font-size:1.03rem;letter-spacing:-.04em}.nav-brand span{font-size:.77rem;color:var(--accent-bright);font-weight:760;letter-spacing:.03em}.nav-brand button{display:grid;place-items:center;width:36px;height:36px;margin-left:auto;border:1px solid #3d627c;border-radius:50%;background:#172d3f;color:#f0f7fb;font-size:1.7rem;line-height:1}.nav-label{margin:12px 6px 6px}.main-nav-drawer .nav-button{display:grid;grid-template-columns:32px minmax(0,1fr) 22px;align-items:center;gap:8px;min-height:58px;padding:11px 12px;border:1px solid transparent;border-radius:11px;background:transparent;color:#edf6fb}.main-nav-drawer .nav-button:hover{background:#1b3548;border-color:#365a73}.main-nav-drawer .nav-button.active{background:var(--accent);border-color:var(--accent);color:#102132;box-shadow:0 8px 19px #0004}.nav-index{font-size:.73rem;font-weight:900;letter-spacing:.08em;color:var(--accent-bright)}.nav-button.active .nav-index{color:#25313b}.nav-name{text-align:left;font-size:1rem;font-weight:780;letter-spacing:-.015em}.nav-arrow{font-size:1.25rem;font-weight:500;text-align:right}.nav-hint{margin:13px 6px 3px;color:#9fb4c5;font-size:.74rem;line-height:1.4}.main-nav-drawer .nav-button.hidden{display:none!important}
.button-primary{background:#1b8fe6}.button-primary:hover{background:#36a8ff}.button-secondary{border-color:#55748b}.notice{border-left-color:var(--accent);background:#1b2b36}.status-banner{border-radius:14px;letter-spacing:.02em}.summary-card{border-radius:13px}.profile-identity>div,.tower-panel,.owner-status{border-radius:13px}.admin-nav{gap:7px;padding:8px;margin:0 0 18px;border:1px solid #35546a;border-radius:13px;background:#0d1a26}.admin-tab{border:0;border-radius:9px;background:transparent;color:#c7d7e3;min-height:44px;padding:9px 12px}.admin-tab.active{background:var(--accent);color:#17232e}.admin-tab:hover{background:#1c3548;color:#f4f9fc}.admin-tab.active:hover{background:var(--accent-bright);color:#17232e}.toast{border-radius:13px;border:1px solid #43627a;background:#152b3c;color:#f7fbfd}.icon-button{border-radius:50%}.switch input:checked+span{background:var(--accent)}
@media(max-width:899px){
  .site-header{display:grid;grid-template-columns:42px minmax(0,1fr) 48px;gap:10px;align-items:center;min-height:72px;padding:10px 14px}
  .brand-lockup{display:contents}.main-menu-toggle{grid-column:1;grid-row:1}.brand-home{display:none}.header-title{grid-column:2;grid-row:1;min-width:0;text-align:center}.header-title p{overflow:hidden;color:#f7fbff;font-size:clamp(.88rem,4vw,1.04rem);letter-spacing:-.018em;text-overflow:ellipsis;text-transform:none;white-space:nowrap}.header-title h1{display:none}.header-actions{grid-column:3;grid-row:1;margin:0;justify-self:end}.header-actions .status-pill{display:none}.account-menu-toggle{width:46px;height:46px}.account-dropdown{top:calc(100% + 10px);right:-4px}
  .main-nav-drawer{position:fixed;z-index:25;top:72px;right:0;bottom:0;left:0;width:100%;height:calc(100dvh - 72px);padding:22px max(20px,calc((100vw - 620px)/2));border:0;border-radius:0;background:linear-gradient(150deg,#0d1b28,#07131e);overflow:auto;box-shadow:none}.main-nav-drawer .nav-button{min-height:66px;border-radius:12px}.nav-brand{padding-bottom:18px}.nav-brand img{width:70px;height:56px}.nav-brand button{display:grid}.nav-label{margin-top:20px}.nav-hint{margin-top:20px}.card{border-radius:15px}.section-heading h2,.card h2{font-size:1.58rem}
}
@media(min-width:900px){
  body.signed-in .site-header{position:fixed;top:14px;right:18px;left:304px;min-height:94px;margin:0;padding:17px 38px;border:1px solid #385a72;border-radius:18px}
  body.signed-in .site-header .brand-home,body.signed-in .site-header .main-menu-toggle{display:none!important}
  body.signed-in main{width:auto;margin:130px 42px 48px 328px}
  body.signed-in #mainNav,body.signed-in #mainNav.hidden{position:fixed;z-index:35;top:0;bottom:0;left:0;width:286px;display:flex!important;flex-direction:column;gap:5px;padding:25px 17px;border:0;border-right:1px solid #38576d;border-radius:0;background:linear-gradient(165deg,#0b1823 0%,#101f2c 100%);box-shadow:12px 0 34px #0004;overflow-y:auto}
  body.signed-in #mainNav .nav-brand{padding:4px 5px 22px;margin-bottom:2px}.nav-brand img{width:76px;height:64px}.nav-brand button{display:none}.main-nav-drawer .nav-button{min-height:55px}.nav-hint{margin-top:auto;padding-top:18px}.header-title h1{font-size:1.62rem}.header-title p{font-size:.68rem}.card{margin-bottom:22px}.section-heading h2,.card h2{font-size:1.9rem}.admin-nav{margin-bottom:22px}
}

/* Verfijningen aan de BMV-navigatie en cockpit. */
.main-menu-toggle{grid-template-rows:repeat(3,2px);align-content:center;gap:3px}.main-nav-drawer .nav-button{grid-template-columns:minmax(0,1fr) auto;gap:10px;color:#d9e2e8}.main-nav-drawer .nav-button.active{background:rgb(243 164 71 / 20%);border-color:rgb(243 164 71 / 48%);color:#fff;box-shadow:none}.main-nav-drawer .nav-button.active:hover{background:rgb(243 164 71 / 27%);border-color:rgb(255 198 117 / 62%)}.nav-name{color:inherit}.nav-arrow{color:var(--accent-bright);font-size:1.18rem}.nav-state{display:none;color:#fff;font-size:.72rem;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.nav-button.active .nav-arrow{display:none}.nav-button.active .nav-state{display:block}.nav-disclosure.active .nav-arrow{display:block}.nav-group{display:grid;gap:5px}.nav-disclosure.expanded .nav-arrow{transform:rotate(180deg)}.admin-subnav{display:grid;gap:4px;margin:0 0 3px;padding:3px 0 5px 13px;border-left:1px solid #49667a}.admin-subnav-button{min-height:42px;padding:9px 12px;border:0;border-radius:8px;background:transparent;color:#cfdde5;text-align:left;font:inherit;font-size:.88rem;font-weight:700}.admin-subnav-button:hover,.admin-subnav-button.active{background:#1a3548;color:#fff}
.account-link{grid-template-columns:minmax(0,1fr) auto;align-items:center;position:relative}.account-link span,.account-link small{grid-column:1}.account-link b{grid-column:2;grid-row:1/3;color:var(--accent-bright);font-size:1.12rem;font-weight:500}.account-link+#notificationsNav{border-top:1px solid #345269}.account-logout{display:grid;margin-top:8px;padding-top:15px;border-top:1px solid #4a3540;background:transparent;color:#ff8996}.account-logout small{color:#df9fa8}.account-logout:hover{background:#241b22;color:#ffabb4}
.terrain-card{border-width:1px;transition:border-color .18s ease}.terrain-card.terrain-open{border-color:#4dbf7b}.terrain-card.terrain-closed,.terrain-card.terrain-locked{border-color:#ba5b68}.terrain-card.terrain-unknown{border-color:#496174}.phone-icon{width:34px;height:34px;border:1px solid #6fe19a;border-radius:50%;background:#34b966;color:transparent;font-size:0;box-shadow:0 4px 10px #081d1266}.phone-icon::before{content:"☎";color:#fff;font:700 1.05rem/1 system-ui}.tower-primary{border-color:#3a8d69;background:#102f29}.tower-call{border-radius:12px}
@media(max-width:899px){
  .main-nav-drawer,.main-nav-drawer.hidden{z-index:100;top:0;right:46px;bottom:0;left:0;width:auto;height:100dvh;display:grid!important;padding:20px 18px 30px;border:0;border-right:1px solid #44647a;border-radius:0;background:linear-gradient(150deg,#0d1b28,#07131e);box-shadow:14px 0 32px #000a,0 0 0 100vmax #020a11a8;transform:translateX(0);transition:transform .22s ease,visibility .22s ease}
  .main-nav-drawer.hidden{transform:translateX(-104%);visibility:hidden;pointer-events:none;box-shadow:none}
  .main-nav-drawer .nav-button{min-height:61px;padding:10px 12px}.nav-brand{padding-bottom:16px}.nav-label{margin-top:16px}.nav-hint{margin-top:16px}.admin-subnav{padding-left:12px}
}
@media(min-width:900px){
  body.signed-in #homePane{width:min(780px,100%)}body.signed-in .terrain-card{max-width:760px;padding:25px 28px}body.signed-in #privateStatus{max-width:470px;padding:14px 16px;margin:16px 0;font-size:1.25rem}body.signed-in #terrainDetail{max-width:650px;font-size:1rem}body.signed-in #towerPanel{max-width:650px;padding:14px}body.signed-in #terrainAction{max-width:580px}body.signed-in #terrainAction .button{min-height:54px;font-size:1rem}body.signed-in #terrainAction input{min-height:48px}
}

/* Cockpit met vliegpleinstatus en live weer voor Kleine-Brogel. */
.cockpit-dashboard{display:grid;grid-template-columns:minmax(240px,.72fr) minmax(410px,1.28fr);gap:18px;align-items:start}.cockpit-dashboard .card{margin:0}.cockpit-status-card .status-banner{margin:18px 0 0;padding:18px 14px;font-size:1.2rem}.weather-card{min-width:0}.weather-loading{padding:24px 0;color:#aebfce}.weather-forecast{display:grid;gap:15px;margin-top:18px}.weather-current{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:13px;align-items:center}.weather-icon{font-size:2.5rem;line-height:1}.weather-current>div:nth-child(2){display:grid;gap:2px}.weather-current>div:nth-child(2) strong{font-size:1.04rem}.weather-current>div:nth-child(2) span{color:#bfd0dc;font-size:.9rem}.weather-wind{display:grid;justify-items:end;gap:1px;padding-left:16px;border-left:1px solid #38576b}.weather-wind span,.weather-max span{color:#b8c9d5;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.weather-wind strong{font-size:1.22rem;letter-spacing:-.04em}.weather-wind small,.weather-max small{color:var(--accent-bright);font-weight:800}.weather-max{display:flex;align-items:baseline;gap:8px;padding:10px 0;border-top:1px solid #355268;border-bottom:1px solid #355268}.weather-max strong{font-size:1.12rem}.weather-hours{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.weather-hour{display:grid;justify-items:center;gap:3px;padding:8px 3px;border-radius:9px;background:#11283a;text-align:center}.weather-hour time{color:#abc1d0;font-size:.72rem;font-weight:800}.weather-hour-icon{font-size:1.08rem;line-height:1.15}.weather-hour strong{font-size:.92rem}.weather-hour small{color:#b9cad6;font-size:.66rem;white-space:nowrap}.airbase-card{max-width:760px}.airbase-card>p{max-width:620px;color:#c8d6df}.airbase-card .tower-panel{margin:16px 0 22px;padding:0;border:0;background:transparent}.tower-call-list{gap:10px;margin:0}.airbase-card .tower-call{display:inline-flex;width:max-content;max-width:100%;align-items:center;gap:10px;padding:0;border:0;background:transparent;color:#edf5fb}.airbase-card .tower-call strong{grid-column:auto;font-size:1.02rem}.airbase-card .tower-call:hover strong{text-decoration:underline;text-decoration-color:#6fe19a;text-underline-offset:4px}.airbase-status{padding-top:20px;border-top:1px solid #355268}.airbase-status h3{margin:0 0 10px}.airbase-status #privateStatus{max-width:470px;padding:14px 16px;margin:0 0 14px;font-size:1.2rem}.airbase-status #terrainDetail{max-width:620px;font-size:1rem}.airbase-status #terrainAction{max-width:580px}.webcam-card{max-width:760px;min-height:240px}.nav-label{margin:8px 6px 4px}.main-nav-drawer{gap:2px}.nav-group{gap:2px}
@media(min-width:900px){
  body.signed-in #homePane{width:min(1000px,100%)}body.signed-in .cockpit-dashboard{grid-template-columns:minmax(250px,330px) minmax(500px,650px)}body.signed-in .cockpit-dashboard .card{padding:24px 26px}body.signed-in #mainNav{gap:0!important}body.signed-in #mainNav .nav-button{min-height:48px;margin:0;border:0;border-left:3px solid transparent;border-radius:0;padding:9px 12px;color:#d3dee5}body.signed-in #mainNav .nav-button.active{border-color:transparent;border-left-color:var(--accent);background:rgb(243 164 71 / 12%);color:#fff}body.signed-in #mainNav .nav-button:hover{background:#162e40;border-left-color:rgb(243 164 71 / 42%)}body.signed-in #mainNav .nav-group{gap:0}body.signed-in #mainNav .admin-subnav{margin:0 0 1px;padding-top:1px;padding-bottom:2px}.airbase-card{padding:26px 28px}
}
@media(max-width:899px){
  .cockpit-dashboard{grid-template-columns:1fr;gap:14px}.cockpit-dashboard .card{width:100%}.weather-current{gap:10px}.weather-icon{font-size:2.1rem}.weather-wind{padding-left:10px}.weather-wind strong{font-size:1.05rem}.weather-hours{gap:3px}.weather-hour{padding:8px 1px}.weather-hour small{font-size:.61rem}.airbase-card .tower-call{width:100%}.airbase-status #privateStatus{max-width:none}.webcam-card{min-height:200px}
}

/* Compacte navigatie en vaste dialerknop. */
.phone-icon{display:grid;place-items:center;width:38px;height:38px;flex:none;border:0;border-radius:50%;background:#00ee13;color:transparent;box-shadow:none}.phone-icon::before{content:none}.phone-icon svg{display:block;width:21px;height:21px;fill:#fff}.airbase-card .tower-call{min-height:38px}.airbase-card .tower-call strong{line-height:1.2}.tower-divider{width:100%;height:1px;margin:7px 0 3px;background:#355268}
@media(min-width:900px){
  body.signed-in #mainNav .nav-brand{padding-bottom:10px;margin-bottom:0}body.signed-in #mainNav .nav-label{margin:5px 6px 2px}body.signed-in #mainNav .nav-button{min-height:41px;padding:6px 12px}body.signed-in #mainNav .nav-name{font-size:.92rem}body.signed-in #mainNav .nav-group{gap:0}
}
@media(max-width:899px){.main-nav-drawer{align-content:start;grid-auto-rows:min-content;gap:0}.main-nav-drawer .nav-button{min-height:53px;padding:8px 12px}.nav-label{margin-top:10px;margin-bottom:2px}}

/* Compacte bediening voor KB Air Base en alle dialoogvensters. */
body.modal-open{overflow:hidden;overscroll-behavior:none}html:has(dialog[open]){overflow:hidden}dialog{overscroll-behavior:contain}.dialog-heading{justify-content:flex-start}.dialog-heading .close-button{display:grid;place-items:center;flex:none;width:42px;height:42px;margin:0 2px 0 0;padding:0;border:1px solid #46647a;border-radius:50%;background:#172a3b;color:#f3f8fb;font-size:1.9rem;font-weight:400;line-height:1;transition:background .16s ease,border-color .16s ease}.dialog-heading .close-button:hover{background:#24435a;border-color:#6d93ac}.dialog-heading .close-button:focus-visible{outline-color:var(--accent)}.tower-dialog{width:min(520px,calc(100% - 28px));padding:22px}.tower-dialog .dialog-heading{margin-bottom:22px}.tower-dialog-numbers{display:grid;gap:12px}.tower-dialog-number{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;padding:3px 0}.tower-dialog-number strong{font-size:clamp(1.08rem,4vw,1.3rem);letter-spacing:-.02em;overflow-wrap:anywhere}.tower-dial-button{display:grid;place-items:center;flex:none;padding:0;border:0;border-radius:50%;background:transparent}.tower-dial-button:focus-visible{outline:4px solid var(--focus);outline-offset:3px}.tower-dial-button:hover .phone-icon{filter:brightness(1.08);transform:scale(1.04)}.tower-dialog-divider{width:100%;height:7px;margin:5px 0 0;border-top:1px solid #4a6679;border-bottom:1px solid #4a6679}.tower-backup-label{margin:0;color:var(--accent-bright);font-size:.75rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.airbase-heading{align-items:center}.tower-dialog-open{display:grid;place-items:center;flex:none;width:46px;height:46px;margin:0;padding:0;border:0;border-radius:50%;background:transparent}.tower-dialog-open .phone-icon{width:42px;height:42px}.tower-dialog-open:hover .phone-icon{filter:brightness(1.08);transform:scale(1.04)}.tower-dialog-open:focus-visible{outline:4px solid var(--focus);outline-offset:3px}.airbase-card>p{margin:14px 0 20px}.airbase-status{padding-top:0;border-top:0}.airbase-status #privateStatus{width:min(100%,470px);min-height:0;margin:0 0 14px;padding:0;border:0;border-radius:0;background:transparent;text-align:left;font-size:clamp(1.15rem,3vw,1.35rem);letter-spacing:.04em}.airbase-status #privateStatus.status-open{color:#72e4a2}.airbase-status #privateStatus.status-closed,.airbase-status #privateStatus.status-locked{color:#ff8f9b}.airbase-status #privateStatus.status-unknown{color:#c9d9e3}.airbase-status #terrainAction{width:min(100%,470px);max-width:none;margin-top:18px}.airbase-status #terrainAction .button{width:100%;min-height:54px}.terrain-action-form{display:grid;grid-template-columns:max-content max-content;align-items:center;justify-content:space-between;gap:16px;width:min(100%,470px)}.height-field{display:flex;align-items:center;gap:10px;margin:0;white-space:nowrap}.height-field span,.terrain-call-switch>span:first-child{font-size:.92rem;font-weight:750}.height-field input{width:64px;min-height:42px;padding:8px 9px;text-align:center}.terrain-call-switch{display:flex;align-items:center;gap:10px;margin:0}.terrain-toggle-control{display:flex;align-items:center;gap:7px}.terrain-toggle-control input{position:absolute;inline-size:1px;block-size:1px;opacity:0}.terrain-toggle-track{position:relative;display:block;width:48px;height:28px;border-radius:100px;background:#607383;cursor:pointer;transition:background .18s ease}.terrain-toggle-track::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0008;transition:transform .18s ease}.terrain-toggle-control input:checked+.terrain-toggle-track{background:#41bc72}.terrain-toggle-control input:checked+.terrain-toggle-track::after{transform:translateX(20px)}.terrain-toggle-control input:focus-visible+.terrain-toggle-track{outline:4px solid var(--focus);outline-offset:3px}.terrain-toggle-value{min-width:25px;font-size:.86rem;font-weight:800}.toggle-yes{display:none;color:#83eab0}.terrain-toggle-control input:checked~.terrain-toggle-value .toggle-no{display:none}.terrain-toggle-control input:checked~.terrain-toggle-value .toggle-yes{display:inline}.terrain-toggle-value .toggle-no{color:#c7d4dd}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:560px){.tower-dialog{padding:18px}.tower-dialog-number strong{font-size:1.05rem}.airbase-card>p{margin-bottom:18px}.terrain-action-form{grid-template-columns:1fr;justify-content:stretch;gap:12px}.height-field,.terrain-call-switch{justify-content:space-between}.height-field input{width:72px}.airbase-status #terrainAction{margin-top:16px}}

/* Status, bediening en sluitknoppen verfijnd voor de compacte vliegpleinpagina. */
.dialog-heading{justify-content:flex-start}.dialog-heading>:not(.close-button){order:1}.dialog-heading .close-button,.nav-brand #mainMenuClose{display:grid;place-items:center;position:relative;flex:none;width:36px;height:36px;margin:0 0 0 auto;padding:0;border:1px solid #3d627c;border-radius:50%;background:#172d3f;color:#f0f7fb;font-size:0;line-height:1}.dialog-heading .close-button{order:2}.dialog-heading .close-button::before,.dialog-heading .close-button::after,.nav-brand #mainMenuClose::before,.nav-brand #mainMenuClose::after{content:"";grid-area:1/1;width:14px;height:2px;border-radius:2px;background:currentColor}.dialog-heading .close-button::before,.nav-brand #mainMenuClose::before{transform:rotate(45deg)}.dialog-heading .close-button::after,.nav-brand #mainMenuClose::after{transform:rotate(-45deg)}.dialog-heading .close-button:hover,.nav-brand #mainMenuClose:hover{background:#24465d;border-color:#6d93ac}.airbase-status{padding-top:20px;border:0}.airbase-status-summary{width:100%;padding:14px 0 15px;border-top:3px double #4a6679;border-bottom:3px double #4a6679}.airbase-status-summary h3{margin:0 0 10px;text-align:center}.airbase-status #privateStatus{width:100%;max-width:none;margin:0;padding:0;border:0;border-radius:0;background:transparent;text-align:center;font-size:clamp(1.15rem,3vw,1.35rem);font-weight:900;letter-spacing:.04em}.airbase-status #privateStatus.status-open{color:#72e4a2}.airbase-status #privateStatus.status-closed,.airbase-status #privateStatus.status-locked{color:#ff8f9b}.airbase-status #privateStatus.status-unknown{color:#c9d9e3}.airbase-status #terrainDetail{margin:18px 0 0}.cockpit-status-card .status-banner{margin:18px 0 0;padding:0;border:0;border-radius:0;background:transparent;font-size:1.3rem;font-weight:900;letter-spacing:.04em}.cockpit-status-card .status-banner.status-open{color:#72e4a2}.cockpit-status-card .status-banner.status-closed,.cockpit-status-card .status-banner.status-locked{color:#ff8f9b}.cockpit-status-card .status-banner.status-unknown{color:#c9d9e3}.terrain-action-form{grid-template-columns:1fr;gap:17px;width:min(100%,470px)}.height-field,.terrain-call-switch{justify-content:space-between;width:100%}.airbase-status #announceButton{justify-self:center;width:auto;min-height:42px;padding:8px 21px;font-size:.96rem}.airbase-status #terrainAction{margin-top:20px}@media(max-width:560px){.terrain-action-form{gap:23px}.airbase-status #terrainAction{margin-top:21px}.airbase-status-summary{padding:15px 0 16px}}

/* Uitlijning van de vliegpleinstatus en compacte ledenbediening. */
.dialog-heading .close-button,.nav-brand #mainMenuClose{font-family:Arial,sans-serif;font-size:1.65rem;line-height:1;padding:0 0 2px}.dialog-heading .close-button::before,.dialog-heading .close-button::after,.nav-brand #mainMenuClose::before,.nav-brand #mainMenuClose::after{content:none}.airbase-status-summary h3{text-align:left}.terrain-action-form{width:100%;max-width:none}.height-field,.terrain-call-switch{width:100%;justify-content:space-between}.height-field input{width:54px;min-height:34px;padding:4px 6px}.airbase-status #announceButton{min-height:36px;padding:5px 15px;font-size:.84rem;border-radius:8px}.nav-club-details{margin:auto 5px 2px;padding:10px 7px 0;border-top:1px solid #345269;color:#9eb3c2;font-size:.44rem;font-weight:500;letter-spacing:0;line-height:1.6;text-align:left}.nav-club-details strong{color:#d9e5ed;font-size:inherit;font-weight:800}footer{display:none}.member-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px}.member-heading-actions>#memberActiveCount{color:var(--accent-bright);font-size:.92rem;font-weight:900;white-space:nowrap}.member-add-button{width:40px;height:40px;border-color:#57768d;background:#183146;color:var(--accent-bright);font-size:1.45rem;line-height:1}.members-table th:nth-child(n+2),.members-table td:nth-child(n+2){text-align:center}.members-table th:last-child,.members-table td:last-child{text-align:right}.member-cell{display:flex;align-items:flex-start;gap:9px;text-align:left}.member-status-dot{display:block;flex:none;width:10px;height:10px;margin-top:6px;border-radius:50%;box-shadow:0 0 0 3px #102131}.member-status-dot.active{background:#52d78e}.member-status-dot.inactive{background:#ed6978}.member-cell>span:last-child{display:grid;gap:2px;min-width:0}.member-name{color:var(--accent-bright);font-weight:850}.member-cell small{color:#9eb5c5;font-size:.71rem;line-height:1.2}.member-paid{color:#f5fbff;font-weight:800;white-space:nowrap}.row-actions{justify-content:flex-end}.member-action{position:relative}.member-action::after{content:attr(data-tooltip);position:absolute;z-index:12;right:0;bottom:calc(100% + 7px);width:max-content;max-width:180px;padding:6px 8px;border:1px solid #52728a;border-radius:7px;background:#091721;color:#f5f9fc;font:700 .72rem/1.2 Inter,"Segoe UI",sans-serif;pointer-events:none;opacity:0;transform:translateY(3px);transition:opacity .14s ease,transform .14s ease}.member-action:hover::after,.member-action:focus-visible::after,.member-action:active::after{opacity:1;transform:translateY(0)}#memberCount{margin:8px 1px 0;font-size:.74rem}.export-log{margin-top:24px;padding-top:18px;border-top:1px solid #345269}.export-log h3{margin:0}.export-log p{margin:6px 0 12px}#memberDialog{width:min(720px,calc(100% - 24px))}#memberForm{grid-template-columns:1fr;gap:8px}#memberForm .member-field,#memberForm .member-switch{grid-column:1;min-width:0}.member-field{display:grid;grid-template-columns:minmax(185px,.78fr) minmax(0,1.22fr);align-items:center;gap:14px;margin:0}.member-field>span:first-child,.member-switch>span:first-child{font-size:.92rem;font-weight:760}.member-field-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.member-field input{min-height:42px;padding:8px 10px}.member-switch{display:flex;align-items:center;justify-content:space-between;min-height:40px;margin:0;padding:4px 0;border-bottom:1px solid #294258}.member-switch .switch{margin:0}.members-table{min-width:710px}@media(max-width:899px){.nav-club-details{margin-top:auto}.member-field{grid-template-columns:minmax(125px,.78fr) minmax(0,1.22fr);gap:10px}.member-field>span:first-child,.member-switch>span:first-child{font-size:.84rem}}@media(max-width:520px){.member-heading-actions{gap:8px}.member-heading-actions>#memberActiveCount{font-size:.79rem}.member-field{grid-template-columns:minmax(105px,.76fr) minmax(0,1.24fr);gap:8px}.member-field-pair{grid-template-columns:1fr;gap:6px}.member-field input{min-height:38px}.nav-club-details{font-size:.42rem}}

/* Laatste verfijning: gecentreerde pictogrammen, volledige kaartbreedte en mobiel ledenformulier. */
.dialog-heading .close-button,.nav-brand #mainMenuClose{padding:2px 0 0}.member-add-button{display:grid;place-items:center;padding:0;font-size:0}.member-add-button::before{content:"+";font-size:1.45rem;line-height:1;transform:translateY(-1px)}.nav-club-details{font-size:8px;line-height:1.5;text-align:center}
body.signed-in .airbase-status #privateStatus{width:100%;max-width:none;margin:0;padding:0;border:0;border-radius:0;background:transparent;text-align:center}body.signed-in .airbase-status #terrainAction{display:grid;width:100%;max-width:none;margin-top:20px;justify-items:center}body.signed-in .airbase-status #terrainAction .terrain-action-form{width:100%;max-width:none}body.signed-in .airbase-status #announceButton{width:auto;min-height:34px;padding:5px 15px;font-size:.84rem;line-height:1.1;justify-self:center}body.signed-in .airbase-status-summary h3{text-align:left}.members-table{min-width:640px}.cockpit-agenda-card{grid-column:1/-1}.agenda-next,.agenda-list,.agenda-admin-list{display:grid;gap:12px}.agenda-item{padding:15px 16px;border:1px solid #36566b;border-radius:12px;background:#102536}.agenda-item h3,.agenda-admin-item strong{margin:0;color:var(--accent-bright);font-size:1.05rem}.agenda-item p{margin:7px 0 0;color:#d4e0e7}.agenda-meta{color:#a9bdca!important;font-size:.82rem;font-weight:750}.agenda-item-compact{padding:0;border:0;border-radius:0;background:transparent}.agenda-item-compact h3{font-size:1rem}.agenda-admin-item{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid #355268}.agenda-admin-item p{margin:6px 0 0;color:#c5d3dc}.communication-divider{height:3px;margin:28px 0;border-top:1px solid #3e6177;border-bottom:1px solid #3e6177}
@media(max-width:560px){#memberDialog{width:calc(100% - 16px);max-height:calc(100dvh - 16px);padding:16px}#memberForm{gap:13px}.member-field{grid-template-columns:1fr;gap:5px}.member-field>span:first-child,.member-switch>span:first-child{font-size:.82rem}.member-field-pair{grid-template-columns:1fr 1fr;gap:8px}.member-field input{min-height:40px}.member-switch{min-height:42px}.nav-club-details{font-size:8px}.cockpit-agenda-card{grid-column:auto}.agenda-admin-item{gap:9px}.agenda-admin-item .row-actions{flex:none}}

/* Het toevoegicoon bestaat uit twee lijnen zodat het optisch exact in het midden van de cirkel valt. */
.member-add-button{position:relative}.member-add-button::before,.member-add-button::after{content:"";position:absolute;top:50%;left:50%;width:14px;height:2px;border-radius:2px;background:currentColor;transform:translate(-50%,-50%)}.member-add-button::after{transform:translate(-50%,-50%) rotate(90deg)}

/* Houd de clubgegevens onderaan de uitschuifbare navigatie op smartphone. */
@media(max-width:899px){.main-nav-drawer,.main-nav-drawer.hidden{display:flex!important;flex-direction:column;align-items:stretch}.main-nav-drawer .nav-club-details{margin-top:auto!important;margin-bottom:2px}}

@media(max-width:899px){.main-nav-drawer .nav-club-details{font-size:9px;line-height:1.55}}

/* Compacte datum-, locatie- en tijdvelden voor Agendabeheer. */
#agendaForm{gap:13px}#agendaForm .agenda-details-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;grid-column:1/-1}#agendaForm .agenda-details-row label{display:grid;min-width:0;gap:5px}#agendaForm input{min-width:0;min-height:42px;padding:8px 10px}#agendaForm textarea{min-height:94px}@media(max-width:380px){#agendaForm .agenda-details-row{gap:8px}#agendaForm input{padding:7px 8px;font-size:.9rem}}

/* Witte, contrastrijke systeempictogrammen voor alle datum- en tijdkiezers. */
input[type="date"],input[type="time"]{color-scheme:dark}input[type="date"]::-webkit-calendar-picker-indicator,input[type="time"]::-webkit-calendar-picker-indicator{filter:invert(1) brightness(1.65);opacity:.92;cursor:pointer}

/* De datum van eerste inschrijving gebruikt dezelfde compacte datummaat als de overige datumvelden. */
.member-registration-date input{width:168px;justify-self:end}@media(max-width:560px){.member-registration-date input{width:148px;justify-self:start}}

/* Trek vanaf de bovenkant ver naar beneden en laat los om de app te verversen. */
.pull-refresh{--pull-distance:0px;position:fixed;z-index:400;top:8px;left:50%;display:flex;align-items:center;gap:8px;min-height:34px;padding:7px 12px;border:1px solid #42647b;border-radius:999px;background:#112a3d;color:#dce9f0;box-shadow:0 7px 20px #0007;pointer-events:none;opacity:0;transform:translate(-50%,calc(-100% + var(--pull-distance)));transition:opacity .16s ease,transform .12s ease;font-size:.76rem}.pull-refresh span{color:var(--accent-bright);font-size:1.05rem;line-height:1}.pull-refresh.visible{opacity:1}.pull-refresh.ready{border-color:var(--accent);color:#fff}.pull-refresh.ready span{transform:rotate(180deg)}

/* Twee gekoppelde velden blijven naast elkaar zonder buiten het formulier te lopen. */
@media(max-width:560px){.member-field-pair{grid-template-columns:repeat(2,minmax(0,1fr))}.member-field-pair input{min-width:0;width:100%}}


/* Alleen lezen ledenfiche. */
.member-view-button{display:block;margin:0;padding:0;border:0;background:transparent;color:var(--accent-bright);font:inherit;font-weight:850;text-align:left;cursor:pointer}.member-view-button:hover,.member-view-button:focus-visible{text-decoration:underline;text-decoration-color:currentColor;text-underline-offset:3px}.member-details-dialog{display:grid;gap:18px}#memberDetailsDialog{width:min(610px,calc(100% - 24px));padding:22px}.member-details-list{display:grid;gap:0;margin:0}.member-details-list>div{display:grid;grid-template-columns:minmax(175px,.78fr) minmax(0,1.22fr);gap:14px;padding:10px 0;border-bottom:1px solid #2d4a5f}.member-details-list dt{color:#a9bdca;font-size:.82rem;font-weight:800}.member-details-list dd{margin:0;color:#f1f7fa;overflow-wrap:anywhere}@media(max-width:560px){#memberDetailsDialog{width:calc(100% - 16px);max-height:calc(100dvh - 16px);padding:16px}.member-details-list>div{grid-template-columns:1fr;gap:3px;padding:9px 0}.member-details-list dt{font-size:.76rem}}

/* Lidgegevens blijven op iPhone binnen hun eigen rij; de datumknop staat steeds aan de rechterrand van het veld. */
.member-registration-date .picker-control{position:relative;justify-self:end}.payment-member{display:flex;align-items:baseline;gap:8px;margin:0;color:#aebfce;font-size:.95rem}.payment-member strong{color:var(--accent-bright);font-size:1.16rem}.payment-total{display:grid;justify-items:center;gap:5px;padding:12px 0 15px;border-top:1px solid #345269;border-bottom:1px solid #345269;text-align:center}.payment-total strong{color:#f7fbfd;font-size:2rem;letter-spacing:-.035em}.payment-total span{color:#adbfcd;font-size:.82rem;font-weight:750}.payment-switch{margin:0}.payment-switch.member-switch{padding:8px 0}.payment-switch>span:first-child{color:#edf5fb}
.payment-receive-button{justify-self:center;min-width:220px}.payment-confirm-actions{justify-content:flex-end}.payment-confirm-actions .button{min-width:150px}
@media(max-width:560px){.payment-member{align-items:flex-start;flex-direction:column;gap:1px}.payment-total strong{font-size:2.12rem}}

/* Behoud de oorspronkelijke kop in de cockpit; alleen de actuele status staat rechts gecentreerd. */
.cockpit-status-line{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%}.cockpit-status-line>div:first-child{min-width:0}.cockpit-status-line h2{margin:0}.cockpit-status-card #cockpitStatus{flex:none;width:auto;margin:0;padding:0;border:0;border-radius:0;background:transparent;text-align:right;white-space:nowrap}@media(max-width:380px){.cockpit-status-line{gap:10px}}

/* De clubgegevens mogen op een breed scherm leesbaarder zijn. */
@media(min-width:900px){.nav-club-details{font-size:10px;line-height:1.65}}

/* Op desktop volgt de cockpit één rustige verticale kolom. */
@media(min-width:900px){body.signed-in .cockpit-dashboard{grid-template-columns:minmax(0,760px);gap:18px}.cockpit-dashboard .cockpit-agenda-card{grid-column:auto}}

/* De datums blijven compact en de geboortedatum deelt de rij zonder overlap met de geboorteplaats. */
#memberForm .member-registration-date .picker-control{width:164px!important;max-width:100%;justify-self:start}#memberForm .member-registration-date .picker-control input{width:100%!important}#memberForm .member-birth-pair{display:flex!important;gap:12px!important;width:100%;min-width:0}#memberForm .member-birth-pair .picker-control{flex:0 1 124px;min-width:0}#memberForm .member-birth-pair input[name="birthPlace"]{flex:1 1 0;min-width:0}#memberForm .member-birth-pair .picker-control,#memberForm .member-birth-pair input{width:100%!important;min-width:0;max-width:100%}@media(max-width:360px){#memberForm .member-registration-date .picker-control{width:150px!important}#memberForm .member-birth-pair{display:grid!important;grid-template-columns:minmax(0,1fr)!important}#memberForm .member-birth-pair .picker-control{width:100%;max-width:none}}

/* iPhone datumvelden hebben een bredere systeembasis; de agenda stapelt ze daarom op telefoon. */
#agendaForm .agenda-details-row input{max-width:100%;box-sizing:border-box}@media(max-width:560px){#agendaForm .agenda-details-row{grid-template-columns:1fr}}

/* Gebruik alleen de eigen datumknop van iPhone/Safari; er staat geen extra pictogram meer bovenop. */
.picker-control{display:block;min-width:0}
.picker-control input{width:100%!important;padding-right:10px!important;min-width:0!important;min-inline-size:0!important;-webkit-min-logical-width:0!important}
input[type="date"]::-webkit-calendar-picker-indicator,input[type="time"]::-webkit-calendar-picker-indicator{display:block!important;opacity:1!important;-webkit-appearance:auto!important;width:auto!important;min-width:initial!important;margin:0!important;padding:0!important;filter:none!important}

/* Op iPhone krijgt geboorteplaats altijd meer ruimte dan de geboortedatum. */
#memberForm .member-birth-pair{display:grid!important;grid-template-columns:144px minmax(0,1fr)!important;gap:12px!important}
#memberForm .member-birth-pair .picker-control{width:144px!important;min-width:0!important;max-width:144px!important}
#memberForm .member-birth-pair input[name="birthDate"]{width:100%!important;min-width:0!important;min-inline-size:0!important;-webkit-min-logical-width:0!important;padding-inline:8px!important;box-sizing:border-box}
#memberForm .member-birth-pair input[name="birthPlace"]{width:100%!important;min-width:0!important;max-width:160px!important;justify-self:start;box-sizing:border-box}
@media(max-width:360px){#memberForm .member-birth-pair{grid-template-columns:minmax(0,1fr)!important}#memberForm .member-birth-pair .picker-control{width:100%!important;max-width:none!important}}

/* Financieel overzicht en exportconfiguratie. */
:root{--finance-vml:#f6dc28;--finance-total:#54d694}
.year-picker select{min-height:44px;padding:8px 10px}
.finance-total-all strong{color:var(--finance-total)}
.finance-total-bmv strong{color:#f7fbff}
.finance-total-vml strong{color:var(--finance-vml)}
#fee-overview-title,#feeYearLabel,.fee-rule-card h4{color:var(--accent-bright)}
.fee-rule-card p{display:flex;align-items:baseline;justify-content:space-between;gap:28px}
.fee-rule-card p span{font-weight:800}
.fee-rule-card .fee-bmv,.fee-rule-card .fee-bmv strong,.fee-rule-card .fee-vml,.fee-rule-card .fee-vml strong{color:#f7fbff}
.fee-editor-group{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;min-width:0;margin:0;padding:16px;border:1px solid #35566d;border-radius:13px;background:#132536}
.fee-editor-group h3{margin:0 0 3px;color:var(--accent-bright);font-size:.96rem;font-weight:900}
.fee-editor-group label{display:grid;grid-template-columns:minmax(0,1fr) 96px;align-items:center;gap:16px;margin:0;color:#f7fbff;font-weight:850}
.fee-editor-group label span{text-align:left}
.fee-editor-group input{width:96px;min-height:40px;padding:6px 8px;text-align:right;justify-self:end;color:#f7fbff;font-weight:850}
.fee-editor-bmv,.fee-editor-vml,.fee-editor-bmv input,.fee-editor-vml input{color:#f7fbff}
.export-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;min-width:0;margin:0;padding:16px;border:1px solid #35566d;border-radius:13px;background:#132536}
.export-fields legend{padding:0 5px;color:var(--accent-bright);font-size:.96rem;font-weight:900}
.export-fields label{display:flex;align-items:center;gap:9px;margin:0;color:#eaf3fa;font-size:.9rem;font-weight:700}
.export-fields input{width:20px;height:20px;min-height:0;flex:none;accent-color:var(--accent)}
.export-fields input:disabled{opacity:1;filter:none}
@media(max-width:560px){.finance-totals{grid-template-columns:1fr}.fee-editor-group,.export-fields{grid-template-columns:1fr}.year-picker{width:100%}}


/* Tariefbedragen blijven rechtstreeks invoerbaar zonder numerieke pijltjes. */
.fee-editor-group input[type="number"]{appearance:textfield;-moz-appearance:textfield}
.fee-editor-group input[type="number"]::-webkit-inner-spin-button,.fee-editor-group input[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}


/* Financiën blijft op iPhone een compacte kopregel met bediening rechts. */
@media(max-width:760px){
  .fee-overview .section-heading{flex-direction:row;align-items:flex-start}
  .fee-overview .section-heading>div{min-width:0}
  .fee-overview .section-heading #editFees{width:auto;flex:none;margin-left:auto}
}
@media(max-width:560px){
  #moneyAdmin>.section-heading{align-items:flex-end;gap:10px}
  #moneyAdmin>.section-heading>div{min-width:0;flex:1}
  #moneyAdmin>.section-heading .year-picker{width:110px;min-width:0;flex:0 0 110px;gap:4px;margin:0 0 0 auto;text-align:right}
  #moneyAdmin>.section-heading .year-picker select{width:100%;min-height:40px;padding:6px 8px}
}


/* Status- en beheerafwerking volgens de BMV- en ISA-kleuren. */
:root{--flight-open:#00ee13;--flight-closed:#ff6961;--flight-after-sunset:#ff2e3a}
.site-header.terrain-open{border-bottom-color:var(--flight-open)}
.site-header.terrain-closed,.site-header.terrain-locked{border-bottom-color:var(--flight-closed)}
.terrain-card.terrain-open{border-color:var(--flight-open)}
.terrain-card.terrain-closed,.terrain-card.terrain-locked{border-color:var(--flight-closed)}
.cockpit-status-card .status-banner.status-open,.airbase-status #privateStatus.status-open{color:var(--flight-open)}
.cockpit-status-card .status-banner.status-closed,.cockpit-status-card .status-banner.status-locked,.airbase-status #privateStatus.status-closed,.airbase-status #privateStatus.status-locked{color:var(--flight-closed)}
.tower-dialog-open.tower-call-unavailable .phone-icon{background:var(--flight-after-sunset)}
.tower-dialog-open.tower-call-unavailable .phone-icon svg{transform:rotate(90deg)}
@media(min-width:900px){
  body.signed-in .site-header{overflow:visible}
  body.signed-in .site-header.terrain-open::after,body.signed-in .site-header.terrain-closed::after,body.signed-in .site-header.terrain-locked::after{content:"";position:absolute;right:22px;bottom:-8px;left:22px;height:5px;border-radius:0 0 999px 999px}
  body.signed-in .site-header.terrain-open::after{background:var(--flight-open)}
  body.signed-in .site-header.terrain-closed::after,body.signed-in .site-header.terrain-locked::after{background:var(--flight-closed)}
}

/* De status in Info KB Air Base volgt dezelfde horizontale opbouw als de cockpit. */
.airbase-status-summary{padding:14px 0 15px;border-top:1px solid #4a6679;border-bottom:1px solid #4a6679}
.airbase-status-line{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%}
.airbase-status-line>div:first-child{min-width:0}
.airbase-status-summary .eyebrow{margin:0 0 3px}
.airbase-status-summary h2{margin:0;color:#f8fbff}
.airbase-status #privateStatus{flex:none;width:auto;max-width:50%;margin:0;padding:0;border:0;border-radius:0;background:transparent;text-align:right;white-space:nowrap}

/* Een actieve navigatiekeuze krijgt een lichte blauwe kaart en een oranje zijkant. */
.main-nav-drawer .nav-button{border:1px solid transparent;background:transparent}
.main-nav-drawer .nav-button.active{position:relative;border-color:transparent;border-radius:12px;background:#1a3548;color:#fff;box-shadow:none}
.main-nav-drawer .nav-button.active:hover{border-color:transparent;background:#24465d}
.main-nav-drawer .nav-button.active::before{content:"";position:absolute;top:8px;bottom:8px;left:-15px;width:5px;border-radius:0 8px 8px 0;background:var(--accent)}
.main-nav-drawer .nav-button.active .nav-index{color:var(--accent-bright)}
body.signed-in #mainNav .nav-button.active{border:1px solid transparent;border-radius:12px;background:#1a3548;color:#fff}
body.signed-in #mainNav .nav-button.active:hover{border-color:transparent;background:#24465d}
body.signed-in #mainNav .nav-button.active::before{content:"";position:absolute;top:8px;bottom:8px;left:-15px;width:5px;border-radius:0 8px 8px 0;background:var(--accent)}

/* Agenda-items houden voldoende afstand van de paginakop en tonen hun praktische info helder. */
#agendaList{margin-top:22px}
#agendaList .agenda-meta{color:#f5f9fc!important;font-weight:850}

/* Kalenderkeuzes houden een compacte, vaste plaats op elk schermformaat. */
#editFees{width:40px;min-width:40px;height:40px;min-height:40px;padding:0;aspect-ratio:1;border-radius:50%}
#moneyAdmin>.section-heading .year-picker{width:110px;min-width:110px;gap:4px;margin:0 0 0 auto;text-align:right}
#moneyAdmin>.section-heading .year-picker select{width:100%;min-height:40px;padding:6px 8px;direction:rtl;text-align:right}
#moneyAdmin>.section-heading .year-picker option{direction:ltr;text-align:right}
#feesForm>.year-picker{width:128px;justify-self:start;gap:4px;margin:0;text-align:left}
#feesForm>.year-picker select{width:108px;min-height:40px;padding:6px 8px;direction:ltr;text-align:left}

/* Vliegpleinbeheer gebruikt dezelfde compacte rijopbouw als de andere beheerrubrieken. */
#settingsForm{grid-template-columns:minmax(0,1fr);gap:10px;max-width:760px}
#settingsForm .terrain-setting{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,190px);align-items:center;gap:16px;margin:0}
#settingsForm .terrain-setting>span{font-weight:760}
#settingsForm .terrain-setting input{width:190px;min-height:40px;padding:7px 9px;justify-self:end}
#settingsForm .terrain-setting-number input{width:76px;text-align:right}
#settingsForm input[type="number"]{appearance:textfield;-moz-appearance:textfield}
#settingsForm input[type="number"]::-webkit-inner-spin-button,#settingsForm input[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
@media(max-width:560px){
  #moneyAdmin>.section-heading .year-picker{width:104px;min-width:104px;flex-basis:104px}
  #moneyAdmin>.section-heading .year-picker select{min-height:38px}
  #settingsForm .terrain-setting{grid-template-columns:minmax(0,1fr) 142px;gap:12px}
  #settingsForm .terrain-setting input{width:142px}
  #settingsForm .terrain-setting-number input{width:72px}
}

/* Afwerking van vaste terreininstellingen en compacte beheerschermen. */
#membersAdmin>.filter-row{margin-top:24px}
#moneyAdmin>.section-heading .year-picker{width:92px;min-width:92px;flex-basis:92px}
#moneyAdmin>.section-heading .year-picker select{padding:6px 5px}
#feesForm>.year-picker{width:110px}
#feesForm>.year-picker select{width:92px;padding:6px 5px}
#settingsForm .terrain-setting input[type="tel"]{text-align:right;font-variant-numeric:tabular-nums}

/* De actieve keuze volgt dezelfde binnenste accentlijn als ISA. */
.main-nav-drawer .nav-button.active,
body.signed-in #mainNav .nav-button.active{border:1px solid transparent;border-radius:12px;background:#1a3548;color:#fff;box-shadow:inset 3px 0 0 var(--accent)}
.main-nav-drawer .nav-button.active::before,
body.signed-in #mainNav .nav-button.active::before{content:none}

/* Op desktop loopt de statuskleur mee over de volledige onderste boog van de kaart. */
@media(min-width:900px){
  body.signed-in .site-header.terrain-open::after,
  body.signed-in .site-header.terrain-closed::after,
  body.signed-in .site-header.terrain-locked::after{right:-1px;bottom:-7px;left:-1px;height:8px;border-radius:0 0 18px 18px}
}
@media(max-width:560px){
  #moneyAdmin>.section-heading .year-picker{width:92px;min-width:92px;flex-basis:92px}
}

/* Status, agenda en compacte beheerkaarten. */
.cockpit-status-line{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:18px}
.cockpit-status-card #cockpitStatus{justify-self:center;text-align:center}
#cockpitAgenda{margin-top:22px}
.cockpit-agenda-card .agenda-item-compact{padding:15px 16px;border:1px solid #36566b;border-radius:12px;background:#102536}
.cockpit-agenda-card .agenda-item-compact h3{font-size:1.05rem}
.cockpit-agenda-card .agenda-meta,.cockpit-agenda-card .agenda-meta a{color:#f5f9fc!important;font-weight:850}

/* Een jaartalveld toont alleen het jaartal; de keuze opent bij een tik op het veld. */
#moneyAdmin>.section-heading .year-picker{width:92px;min-width:92px;flex-basis:92px}
#moneyAdmin>.section-heading .year-picker select,#feesForm>.year-picker select{width:62px;justify-self:end;padding:6px 4px;text-align:center;direction:ltr;appearance:none;-webkit-appearance:none;background-image:none}
#feesForm>.year-picker{width:128px}

/* Selecties openen met een tik, zonder een vast pijltje in het veld. */
#membersAdmin .filter-row select{appearance:none;-webkit-appearance:none;background-image:none;padding-right:10px}
.member-list-details{margin-top:18px;border:1px solid #35546a;border-radius:13px;background:#0d1a26;overflow:hidden}.member-list-details>summary{display:flex;align-items:center;min-height:52px;padding:0 17px;cursor:pointer;color:#f4f9fc;font-weight:800;list-style:none}.member-list-details>summary::-webkit-details-marker{display:none}.member-list-details>summary::after{content:"⌄";margin-left:auto;color:var(--accent-bright);font-size:1.25rem;transition:transform .18s ease}.member-list-details[open]>summary{border-bottom:1px solid #35546a}.member-list-details[open]>summary::after{transform:rotate(180deg)}.member-list-content{padding:18px}.member-list-content .filter-row{margin-top:0}
@media(max-width:560px){.member-list-content{padding:14px}.member-list-details>summary{padding:0 14px}}

/* Vliegpleinbeheer blijft smal en slaat telefoonnummers automatisch op. */
#terrainAdmin{max-width:540px}
#settingsForm{max-width:100%}
#settingsForm .terrain-setting{grid-template-columns:minmax(0,1fr) 118px;gap:14px}
#settingsForm .terrain-setting input,#settingsForm .terrain-setting input[type="tel"]{width:118px;text-align:right}
.lock-form{display:grid;grid-template-columns:1fr;gap:13px;max-width:100%;margin:0}
.lock-form label{display:grid;grid-template-columns:minmax(0,1fr) 150px;align-items:center;gap:14px;margin:0;font-weight:760}
.lock-form .lock-reason{grid-template-columns:1fr;align-items:stretch}
.lock-form input{width:150px;min-height:40px;padding:7px 9px;justify-self:end}
.lock-form textarea{min-height:110px;resize:vertical}
.lock-form .button{width:max-content;justify-self:start}

/* Clubgegevens openen als leesbare popup vanuit het menu. */
.nav-club-info{margin:auto 5px 2px;padding:12px 7px 0;border:0;border-top:1px solid #345269;background:transparent;color:var(--accent-bright);font:800 .82rem/1.3 Inter,"Segoe UI",sans-serif;text-align:center}
.nav-club-info:hover{color:#fff}

/* Agendabeheer en communicatie krijgen dezelfde rustige verticale afstand. */
#agendaAdmin,#communicationAdmin,#documentsAdmin{max-width:560px}
#agendaAdmin #agendaForm,#communicationAdmin #pushMessageForm{margin-top:24px}
.location-map-button{min-height:36px;margin-top:3px;padding:6px 10px;font-size:.78rem;justify-self:start}
.document-list{display:grid;gap:10px;margin-top:22px}
.document-item,.stored-document{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;border:1px solid #36566b;border-radius:12px;background:#102536}
.document-item>div,.stored-document{min-width:0}
.document-item strong,.stored-document strong{display:block;color:var(--accent-bright)}
.member-directory-card{padding:0;overflow:hidden}
.member-directory{width:100%}
.member-directory>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px 22px;cursor:pointer;list-style:none}
.member-directory>summary::-webkit-details-marker{display:none}
.member-directory-summary-copy{display:grid;gap:3px}
.member-directory-summary-copy .eyebrow{margin:0}
.member-directory-title{color:#f8fbff;font-size:clamp(1.28rem,3vw,1.7rem);font-weight:850;letter-spacing:-.04em}
.member-directory-indicator{color:var(--accent-bright);font-size:1.45rem;line-height:1;transition:transform .18s ease}
.member-directory[open] .member-directory-indicator{transform:rotate(180deg)}
.member-directory-content{padding:0 22px 22px;border-top:1px solid #345269}
.member-directory-content>.muted{margin:15px 0 12px}
.member-directory-list{display:grid;border-top:1px solid #294258}
.member-directory-item{padding:11px 2px;border-bottom:1px solid #294258}
.member-directory-item strong{display:block;color:var(--accent-bright);font-size:.96rem}
.member-directory-item span{display:block;margin-top:3px;color:#b7c9d6;font-size:.79rem}
.document-item span,.stored-document span{display:block;margin-top:4px;color:#b7c9d6;font-size:.78rem;overflow-wrap:anywhere}
.document-order-item{cursor:grab;touch-action:pan-y;user-select:none}.document-order-item:active{cursor:grabbing}.document-order-item.dragging{opacity:.48;border-color:var(--accent);box-shadow:0 0 0 2px #f5b15b55}.document-drag-handle{display:grid;place-items:center;flex:none;width:20px;margin:0!important;color:var(--accent-bright);font-size:1.3rem;line-height:1;letter-spacing:-.2em;cursor:grab}
.tower-dialog-number.tower-backup-number .phone-icon{background:var(--accent)}
body.signed-in #mainNav #adminSubNav{padding-top:4px;row-gap:4px}

@media(max-width:560px){
  .cockpit-status-line{gap:12px}
  #settingsForm .terrain-setting{grid-template-columns:minmax(0,1fr) 112px;gap:10px}
  #settingsForm .terrain-setting input,#settingsForm .terrain-setting input[type="tel"]{width:112px}
  .lock-form label{grid-template-columns:1fr;gap:6px}
  .lock-form input{width:100%;justify-self:stretch}
  #agendaAdmin,#communicationAdmin,#documentsAdmin,#terrainAdmin{max-width:none}
  .document-item{align-items:flex-start}
}


/* Update: terreinbeheer, agenda en communicatie blijven op elk scherm rustig leesbaar. */
@media(min-width:900px){
  body.signed-in .site-header.terrain-open::after,
  body.signed-in .site-header.terrain-closed::after,
  body.signed-in .site-header.terrain-locked::after{content:none}
  body.signed-in .site-header.terrain-open{border-bottom-width:1px;border-bottom-color:var(--flight-open);box-shadow:inset 0 -4px 0 var(--flight-open),0 10px 24px #02070d70}
  body.signed-in .site-header.terrain-closed,
  body.signed-in .site-header.terrain-locked{border-bottom-width:1px;border-bottom-color:var(--flight-closed);box-shadow:inset 0 -4px 0 var(--flight-closed),0 10px 24px #02070d70}
}

/* De hover gebruikt dezelfde rustige blauwe keuze als het bestuurssubmenu. */
.main-nav-drawer .nav-button:hover:not(.active),
body.signed-in #mainNav .nav-button:hover:not(.active){border:1px solid transparent;border-radius:12px;background:#1a3548;color:#fff;box-shadow:none}

#terrainAdmin{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}
#terrainAdmin>.section-heading{margin-bottom:0;min-width:0}
.terrain-admin-card,.communication-card{width:100%;min-width:0;padding:18px;border:1px solid #36566b;border-radius:14px;background:#102536}
.terrain-admin-heading{margin:0 0 20px}
.terrain-admin-heading .eyebrow{margin:0 0 4px}
.terrain-admin-heading h3,.communication-card h3{margin:0;color:#f8fbff}
.terrain-lock-list-heading{margin:4px 0 -8px}
#terrainAdmin .event-list{margin:0}
#terrainAdmin #lockList{padding-left:0;list-style:none}
#terrainAdmin .lock-list-item{display:flex;align-items:center;justify-content:space-between;gap:16px}
#terrainAdmin .lock-list-item>div{display:grid;gap:3px;min-width:0}
#terrainAdmin .lock-list-item>div span{color:#bed0dc;font-size:.88rem}
#terrainAdmin .lock-list-item .button{margin-left:auto;flex:none}
@media(max-width:560px){#terrainAdmin .lock-list-item{gap:10px}#terrainAdmin .lock-list-item>div{min-width:0}#terrainAdmin .lock-list-item .button{padding:7px 9px;min-height:38px}}
.push-confirm-form{display:grid;gap:18px}.push-confirm-form p{margin:0}.push-confirm-actions{justify-content:flex-end}.push-confirm-actions .button{min-width:92px}
.terrain-detail-locked{white-space:pre-line}

#agendaAdmin .agenda-location-field{position:relative}
.location-suggestions{position:absolute;z-index:6;top:calc(100% + 4px);right:0;left:0;display:grid;max-height:225px;overflow:auto;border:1px solid #496b82;border-radius:10px;background:#0c1b28;box-shadow:0 12px 25px #000a}
.location-suggestions button{padding:10px 12px;border:0;border-bottom:1px solid #29475d;background:transparent;color:#eaf4f9;text-align:left;font:inherit;cursor:pointer}
.location-suggestions button:last-child{border-bottom:0}
.location-suggestions button:hover,.location-suggestions button:focus-visible{background:#1a3548;color:#fff;outline:0}

#communicationAdmin{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}
#communicationAdmin>.section-heading{margin-bottom:0}
#communicationAdmin #pushMessageForm{margin-top:18px}
#communicationAdmin .communication-card+.communication-card{margin-top:0}
#communicationAdmin .communication-card .form-grid{margin-top:18px}

#moneyAdmin>.section-heading .year-picker select,
#feesForm>.year-picker select{text-align:center;text-align-last:center}

@media(max-width:560px){
  #terrainAdmin{gap:14px}
  .terrain-admin-card,.communication-card{padding:15px}
  .terrain-admin-heading{margin-bottom:17px}
  #settingsForm .terrain-setting{grid-template-columns:minmax(0,1fr) 112px;gap:10px}
  #settingsForm .terrain-setting input,#settingsForm .terrain-setting input[type="tel"]{width:112px;min-width:0}
  .lock-form{grid-template-columns:minmax(0,1fr);gap:14px}
  .lock-form>*{min-width:0;max-width:100%}
  .lock-form label{grid-template-columns:minmax(0,1fr) 132px;align-items:center;gap:10px}
  .lock-form input{width:132px;min-width:0;justify-self:end}
  .lock-form .lock-reason{grid-template-columns:minmax(0,1fr)}
  .lock-form .lock-reason textarea{width:100%;min-width:0}
  .lock-form .button{width:max-content;max-width:100%}
  #agendaAdmin .agenda-details-row{grid-template-columns:1fr;gap:13px}
  #agendaAdmin .agenda-time-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  #agendaAdmin .agenda-time-row label{min-width:0}
  #agendaAdmin .agenda-time-row input{min-width:0;width:100%}
  #communicationAdmin{gap:14px}
  #communicationAdmin .communication-card .form-grid{margin-top:15px}
  #moneyAdmin>.section-heading .year-picker select,#feesForm>.year-picker select{text-align:center;text-align-last:center}
}

/* Bestandsacties en compacte beheervelden. */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}
.icon-symbol-button{line-height:0}
.action-icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.35;stroke-linecap:round;stroke-linejoin:round}
.paper-plane-icon{width:23px;height:23px;stroke-width:2.2}
.communication-card>.eyebrow{margin:0 0 4px;color:var(--accent-bright)}
.communication-card>h3{margin:0}
.prospect-action-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px}
.prospect-action-row>div{min-width:0}
.prospect-action-row strong{color:#f7fbff}
.prospect-action-row #prospectDocumentStatus{margin-top:4px;overflow-wrap:anywhere}
.prospect-email-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,230px);align-items:center;gap:14px;margin:0;font-weight:760}
.prospect-email-control{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0}
.prospect-email-control input{min-width:0;text-align:right}

/* Het iPhone-scherm krijgt bruikbare nummer- en vergrendelingsvelden zonder uitloop. */
@media(max-width:560px){
  #settingsForm .terrain-setting{grid-template-columns:minmax(0,1fr) 130px;gap:10px}
  #settingsForm .terrain-setting input,#settingsForm .terrain-setting input[type="tel"]{width:130px;min-width:0}
  .lock-form label{grid-template-columns:minmax(0,1fr) 118px;align-items:center;gap:10px}
  .lock-form input{width:118px;min-width:0;justify-self:end}
  #agendaAdmin .agenda-date-row>label:first-child{grid-template-columns:minmax(0,1fr) 138px;align-items:center;gap:10px}
  #agendaAdmin .agenda-date-row>label:first-child .picker-control{width:138px;justify-self:end}
  .prospect-email-row{grid-template-columns:1fr;gap:8px}
  .prospect-email-control{width:100%}
}

/* iOS houdt een eigen minimummaat voor datum en tijd aan. Deze begrenzing laat de
   iPhone-kiezer nog steeds openen, maar voorkomt dat velden over hun kaart lopen. */
@media(max-width:560px){
  #agendaAdmin .agenda-details-row .picker-control,
  #agendaAdmin .agenda-time-row .picker-control,
  .lock-form .picker-control{display:block;min-width:0;max-width:100%;overflow:hidden}
  #agendaAdmin .agenda-time-row .picker-control{width:100%}
  #agendaAdmin .agenda-date-row>label:first-child .picker-control{flex:0 0 132px;width:132px;max-width:132px}
  .lock-form label:not(.lock-reason){display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
  .lock-form label:not(.lock-reason) .picker-control{flex:0 0 118px;width:118px;max-width:118px}
  #agendaAdmin input[type="date"],#agendaAdmin input[type="time"],
  .lock-form input[type="date"],.lock-form input[type="time"]{width:100%!important;max-width:100%!important;min-width:0!important;min-inline-size:0!important;-webkit-min-logical-width:0!important;box-sizing:border-box;-webkit-appearance:none;appearance:none}
}

/* In Financiën staat Bestuursorgaan op dezelfde hoge positie als in de andere beheerkaarten.
   De extra onderruimte houdt het overzicht en de totalenkaarten eronder vrij. */
@media(max-width:560px){
  #moneyAdmin>.section-heading{align-items:flex-end}
  #moneyAdmin>.section-heading>div{padding-bottom:28px}
}

/* De actieve navigatiekaart krijgt een warme gloed vanaf de oranje linkerkant. */
.main-nav-drawer .nav-button.active,
body.signed-in #mainNav .nav-button.active,
.main-nav-drawer .nav-button.active:hover,
body.signed-in #mainNav .nav-button.active:hover{border-color:rgb(243 164 71 / 55%);background:linear-gradient(90deg,rgb(243 164 71 / 25%) 0%,#1a3548 48%,#1a3548 100%);box-shadow:inset 4px 0 0 var(--accent),inset 18px 0 28px rgb(243 164 71 / 18%),0 0 18px rgb(243 164 71 / 36%)}

/* De actuele terreinstatus straalt mee vanuit de zwevende hoofdbalk. */
@keyframes bmv-status-glow{0%,100%{filter:brightness(1);box-shadow:inset 0 -5px 0 var(--status-glow),0 10px 24px #02070d70,0 7px 16px var(--status-shadow-soft)}50%{filter:brightness(1.12);box-shadow:inset 0 -5px 0 var(--status-glow),0 10px 24px #02070d70,0 8px 26px var(--status-shadow-bright)}}
.site-header.terrain-open{--status-glow:var(--flight-open);--status-shadow-soft:rgb(0 238 19 / 38%);--status-shadow-bright:rgb(0 238 19 / 65%);border-bottom-color:var(--flight-open);box-shadow:inset 0 -5px 0 var(--flight-open),0 10px 24px #02070d70,0 7px 16px var(--status-shadow-soft)}
.site-header.terrain-closed,.site-header.terrain-locked{--status-glow:var(--flight-closed);--status-shadow-soft:rgb(255 105 97 / 42%);--status-shadow-bright:rgb(255 105 97 / 70%);border-bottom-color:var(--flight-closed);box-shadow:inset 0 -5px 0 var(--flight-closed),0 10px 24px #02070d70,0 7px 16px var(--status-shadow-soft)}
@media(prefers-reduced-motion:no-preference){.site-header.terrain-open,.site-header.terrain-closed,.site-header.terrain-locked{animation:bmv-status-glow 2.8s ease-in-out infinite}}

/* Fijne afwerking van statuslicht, navigatie en de financiënkop. */
:root{--flight-closed:#ff1744}

/* De statusrand blijft even dun als voorheen; het licht schijnt naast de rand. */
@keyframes bmv-status-glow{0%,100%{filter:brightness(1);box-shadow:0 10px 24px #02070d70,0 7px 16px var(--status-shadow-soft)}50%{filter:brightness(1.1);box-shadow:0 10px 24px #02070d70,0 8px 26px var(--status-shadow-bright)}}
.site-header.terrain-open{--status-glow:var(--flight-open);--status-shadow-soft:rgb(0 238 19 / 38%);--status-shadow-bright:rgb(0 238 19 / 65%);border-bottom:4px solid var(--flight-open);box-shadow:0 10px 24px #02070d70,0 7px 16px var(--status-shadow-soft)}
.site-header.terrain-closed,.site-header.terrain-locked{--status-glow:var(--flight-closed);--status-shadow-soft:rgb(255 23 68 / 42%);--status-shadow-bright:rgb(255 23 68 / 72%);border-bottom:4px solid var(--flight-closed);box-shadow:0 10px 24px #02070d70,0 7px 16px var(--status-shadow-soft)}

/* Alleen het oranje maantje links markeert de actieve navigatiekeuze. */
.main-nav-drawer .nav-button.active,
body.signed-in #mainNav .nav-button.active,
.main-nav-drawer .nav-button.active:hover,
body.signed-in #mainNav .nav-button.active:hover{position:relative;isolation:isolate;border-color:transparent;background:#1a3548;box-shadow:inset 3px 0 0 var(--accent)}
.main-nav-drawer .nav-button.active::before,
body.signed-in #mainNav .nav-button.active::before{content:none}
.main-nav-drawer .nav-button.active>span,
body.signed-in #mainNav .nav-button.active>span{position:relative;z-index:1}
/* Het accent zit binnen de linkerzijde van de knop en steekt niet naar buiten. */
.main-nav-drawer .nav-button.active::after,
body.signed-in #mainNav .nav-button.active::after{content:none}

/* Status staat gecentreerd in de vrije ruimte naast 'Vliegplein Status'. */
.airbase-status-line{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:18px}
.airbase-status #privateStatus{grid-column:2;justify-self:center;width:auto;max-width:none;text-align:center}

/* Bestuursorgaan behoudt zijn hoge positie; kalenderjaar staat er visueel gecentreerd naast. */
@media(max-width:560px){
  #moneyAdmin>.section-heading .year-picker{transform:translateY(-22px)}
}

/* Cockpitkaarten openen rechtstreeks de bijhorende informatie. */
.cockpit-link-card{cursor:pointer}
.cockpit-link-card:focus-visible{outline:3px solid var(--accent-bright);outline-offset:4px}
.weather-wind-direction{display:block;margin-top:2px;color:#a8ccdf!important;font-weight:800}

/* De weekvoorspelling blijft overzichtelijk op telefoon en desktop. */
.weather-week-forecast{display:grid;grid-template-columns:1fr;gap:16px;margin-top:22px}
.weather-day-card{display:grid;gap:15px;min-width:0;padding:20px;border:1px solid #36566b;border-radius:14px;background:#102536}
.weather-day-title{color:var(--accent-bright);font-size:.92rem;font-weight:850;text-transform:capitalize}
.weather-day-card .weather-current,.weather-day-card .weather-max,.weather-day-card .weather-hours{margin:0}

/* Een locatie is een duidelijke, maar rustige link naar de gps-keuze. */
.agenda-location-link{display:inline;margin:0;padding:0;border:0;background:transparent;color:#86cdf5!important;font:inherit;font-weight:850;text-align:left;text-decoration:underline;text-decoration-color:rgb(134 205 245 / 55%);text-underline-offset:3px;cursor:pointer}
.agenda-location-link:hover,.agenda-location-link:focus-visible{color:#d9f2ff!important;text-decoration-color:currentColor;outline:0}
.cockpit-agenda-card .agenda-meta .agenda-location-link{color:#86cdf5!important}
.navigation-location{margin:18px 0;color:#c8dce8;font-weight:750;overflow-wrap:anywhere}
.navigation-actions{justify-content:flex-end;margin-top:18px}

/* Het inschrijvingsdocument blijft apart van het pushbericht. */
#communicationAdmin .prospect-documents-card{margin-top:22px}
#communicationAdmin .prospect-documents-card .form-grid{margin-top:18px}

/* Agenda houdt datum, locatie en toelichting bewust op aparte regels. */
.agenda-item .agenda-meta{display:grid;gap:10px;margin-top:10px!important;line-height:1.35}
.agenda-location-row{display:block;margin-top:2px}
.agenda-item .agenda-description{margin-top:16px!important}

@media(max-width:560px){
  .weather-week-forecast{gap:12px}
  .weather-day-card{gap:13px;padding:15px}
  #communicationAdmin .prospect-documents-card .form-grid{margin-top:15px}
  .member-directory>summary{padding:18px 17px}
  .member-directory-content{padding:0 17px 18px}
  .member-directory-title{font-size:1.35rem}
}

/* Digitale inschrijving: zelfstandig scherm, zonder toegang tot de ledenomgeving. */
body.registration-mode .site-header,body.registration-mode #pullRefresh{display:none}
body.registration-mode main{width:min(860px,100%);margin:0 auto;padding-top:max(18px,env(safe-area-inset-top))}
.registration-card{margin:0 auto}.registration-card .section-heading{margin-bottom:18px}.registration-card label{min-width:0}.registration-national-field{padding:15px;border:1px solid #46647a;border-radius:12px;background:#102536}.registration-national-field small{display:block;margin-top:6px;color:#a9bdca;font-weight:650}.registration-guardian,.registration-documents,.registration-application-documents,.registration-application-approval{display:grid;gap:12px;padding:18px;border:1px solid #355268;border-radius:13px;background:#102536}.registration-guardian h3,.registration-documents h3{margin:0;color:#f4f9fc}.registration-guardian .eyebrow,.registration-documents .eyebrow,.registration-application-documents .eyebrow{margin:0;color:var(--accent-bright)}.registration-document-check{display:grid;gap:9px;padding:14px 0;border-top:1px solid #355268}.registration-document-check:first-child{border-top:0}.registration-document-check input{width:19px;height:19px;margin-top:3px;accent-color:var(--accent)}.registration-document-check strong{display:block;color:#f3f8fb}.registration-document-check strong small{color:var(--accent-bright);font-weight:800}.registration-document-content{display:block;margin-top:2px;color:#c8d7e0;font-size:.9rem;line-height:1.55}.registration-document-status{display:block;color:#a9bdca;font-size:.83rem;font-weight:650}.registration-document-open{justify-self:start;min-height:44px;padding:8px 14px}.registration-accepted-document{position:absolute;inline-size:1px!important;block-size:1px!important;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.registration-success{padding:22px;border:1px solid #4c9c70;border-radius:13px;background:#102c3a;color:#e8f7ef}.registration-success h3{margin:0 0 8px;color:#75e4a5}.registration-vml-field{padding:15px;border:1px solid #46647a;border-radius:12px;background:#102536}.registration-vml-field>small{color:#a9bdca;font-weight:650;line-height:1.45}.registration-vml-control{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;border:2px solid #607b90;border-radius:10px;background:#081720;overflow:hidden}.registration-vml-control>span{display:grid;place-items:center;align-self:stretch;padding:0 12px;background:#1a3243;color:#f4a900;font-weight:850;white-space:nowrap}.registration-vml-control input{min-width:0;border:0;border-radius:0;background:transparent}.registration-vml-control:focus-within{outline:4px solid var(--focus);outline-offset:2px}.registration-vml-control input:focus{outline:0}.registration-birth-date input[type="date"]{min-width:0!important;max-width:100%!important;width:100%!important;-webkit-min-logical-width:0}.registration-applications-card{margin:0 0 28px}.registration-documents-card{margin-top:28px;padding-top:22px;border-top:1px solid #355268}.registration-document-admin,.registration-application-item{align-items:center}.registration-document-admin small{color:var(--accent-bright);font-weight:800}.registration-application-dialog{display:grid;gap:16px}.registration-application-documents article{padding:10px 0;border-top:1px solid #355268}.registration-application-documents article:first-of-type{border-top:0}.registration-application-documents article p{margin:7px 0 0;color:#c7d6df;font-size:.9rem;line-height:1.5}.registration-application-approval label{display:grid;gap:6px;font-weight:760}.registration-application-approval .muted{margin:0;line-height:1.55}.registration-application-approval .button-row{justify-content:space-between}.registration-application-approval .button{min-width:165px}@media(max-width:560px){body.registration-mode main{padding:12px 8px}.registration-card{padding:18px 16px}.registration-guardian,.registration-documents,.registration-application-documents,.registration-application-approval{padding:14px}.registration-application-approval .button-row{display:grid;grid-template-columns:1fr;gap:8px}.registration-application-approval .button{width:100%}.registration-document-admin,.registration-application-item{align-items:flex-start;flex-direction:column}.registration-document-admin .button,.registration-application-item .button{width:100%}.registration-birth-date{max-width:100%;overflow:hidden}}

/* Inschrijvingsdocumenten openen in een eigen leesvenster. Zo werkt elke PDF-pagina ook op iPhone. */
.registration-document-dialog{width:min(980px,calc(100% - 20px));padding:0;overflow:hidden}.registration-document-dialog-content{display:grid;gap:15px;padding:clamp(16px,3vw,26px)}.registration-document-dialog-content .dialog-heading{align-items:flex-start}.registration-document-dialog-content .dialog-heading h2{margin:0}.registration-document-dialog-content>p{margin:0}.registration-document-viewer{max-height:min(68dvh,720px);min-height:180px;overflow:auto;overscroll-behavior:contain;padding:14px;border:1px solid #55748a;border-radius:11px;background:#edf3f6;color:#132738;scroll-behavior:smooth}.registration-document-viewer:focus-visible{outline:4px solid var(--focus);outline-offset:2px}.registration-document-viewer p{margin:0}.registration-document-viewer .pdf-page{display:block;width:100%;height:auto;margin:0 auto 14px;background:#fff;box-shadow:0 2px 10px #071a2850}.registration-document-viewer .pdf-page:last-child{margin-bottom:0}.registration-document-read{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:11px;margin:0;cursor:pointer}.registration-document-read input{width:21px;height:21px;min-height:auto;margin-top:2px;accent-color:var(--accent)}.registration-document-read input:disabled{cursor:not-allowed}.install-app-prompt{display:grid;gap:9px;margin-top:18px;padding:15px;border:1px solid #527188;border-radius:12px;background:#edf6fb}.install-app-prompt p{margin:0;color:#365364}.install-app-prompt .button{justify-self:start;min-height:46px}@media(max-width:560px){.registration-document-dialog{width:calc(100% - 12px)}.registration-document-dialog-content{gap:12px;padding:16px}.registration-document-viewer{max-height:66dvh;padding:9px}.install-app-prompt .button{width:100%}}
.registration-pdf-reader{display:block;width:100%;height:620px;border:1px solid #55748a;border-radius:10px;background:#fff}@media(max-width:560px){.registration-pdf-reader{height:480px;border-radius:8px}}

/* Kandidaatvelden blijven op iPhone binnen de kaart en vaste voorvoegsels voorkomen invoerfouten. */
.registration-birth-date{width:min(280px,100%);max-width:100%;overflow:hidden}.registration-birth-date input[type="date"]{inline-size:100%!important;min-inline-size:0!important;max-inline-size:100%!important}.registration-easa-field{padding:15px;border:1px solid #46647a;border-radius:12px;background:#102536}.registration-easa-field>span:first-child{display:grid;gap:4px}.registration-easa-field>span:first-child small,.registration-easa-field>small{color:#a9bdca;font-weight:650;line-height:1.45}.registration-easa-control{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;border:2px solid #607b90;border-radius:10px;background:#081720;overflow:hidden}.registration-easa-control>span{display:grid;place-items:center;align-self:stretch;padding:0 12px;background:#1a3243;color:#f4a900;font-weight:850;white-space:nowrap}.registration-easa-control input{min-width:0;border:0;border-radius:0;background:transparent}.registration-easa-control:focus-within{outline:4px solid var(--focus);outline-offset:2px}.registration-easa-control input:focus{outline:0}.member-easa-control{width:min(100%,330px)}

/* Op telefoon blijft de leesbevestiging altijd zichtbaar onder het document. */
.registration-document-dialog{height:min(94dvh,900px);max-height:94dvh}.registration-document-dialog-content{height:100%;min-height:0;grid-template-rows:auto auto minmax(0,1fr) auto auto}.registration-document-actions{display:flex;align-items:center;gap:8px}.registration-document-actions .button{min-height:42px;padding:8px 12px}.registration-document-viewer{height:100%;min-height:0;max-height:none;overflow:auto}.registration-document-viewer .pdf-page{max-width:none}.registration-document-viewer.zoomed{touch-action:pan-x pan-y}@media(max-width:560px){.registration-document-dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0}.registration-document-dialog-content{height:100dvh;padding:max(14px,env(safe-area-inset-top)) 14px max(14px,env(safe-area-inset-bottom))}.registration-document-actions .button{font-size:.86rem}.registration-document-viewer{border-radius:8px}.registration-birth-date{width:min(250px,100%)}}

/* De iPhone-datumkiezer mag nooit de rechterkant van zijn kaart afknippen. */
.registration-birth-date{width:100%;max-width:100%;overflow:visible}.registration-birth-date input[type="date"]{display:block;inline-size:100%!important;width:100%!important;min-inline-size:0!important;max-inline-size:100%!important;-webkit-appearance:none;appearance:none}
.registration-vml-availability{display:block;min-height:1.4em;color:#75e4a5;font-weight:700;line-height:1.45}.registration-vml-availability.is-error{color:#ff8585}

/* Documenten krijgen standaard een leesbare, mobiele tekstweergave. */
.registration-document-viewer.registration-document-text-mode{padding:clamp(16px,4vw,30px);background:#fff;color:#152a3a}.registration-document-text-page{padding:0 0 23px;margin:0 0 23px;border-bottom:1px solid #c8d7df}.registration-document-text-page:last-child{padding-bottom:0;margin-bottom:0;border-bottom:0}.registration-document-text-page h3{margin:0 0 16px;color:#085596;font-size:1rem;font-weight:850}.registration-document-text-page p{margin:0 0 1em;color:#172c3b;font-size:1rem;line-height:1.7;overflow-wrap:anywhere}.registration-document-dialog-content .dialog-heading>div:first-child{min-width:0}.registration-document-dialog-content .dialog-heading h2{overflow-wrap:anywhere}@media(max-width:560px){.registration-document-dialog-content .dialog-heading{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.registration-document-actions{width:100%;justify-content:flex-start}.registration-document-actions .close-button{margin-left:auto}.registration-document-actions .button{font-size:.82rem;padding:8px 10px}.registration-document-text-page p{font-size:1.02rem;line-height:1.75}}

/* Actuele UniFi-foto: de server haalt telkens een nieuwe JPEG op zonder browsercache. */
.webcam-card{max-width:760px}
.webcam-frame{position:relative;display:grid;place-items:center;min-height:220px;overflow:hidden;border:1px solid #36566b;border-radius:14px;background:#081520}
.webcam-card .section-heading{margin-bottom:22px}
.webcam-image{display:block;width:100%;height:auto;max-height:min(70vh,640px);object-fit:contain;touch-action:pan-y;transform:translate(var(--webcam-pan-x,0px),var(--webcam-pan-y,0px)) scale(var(--webcam-scale,1));transform-origin:var(--webcam-origin-x,50%) var(--webcam-origin-y,50%);transition:transform .14s ease-out}
.webcam-image.zooming{transition:none}
.webcam-image.zoomed{cursor:grab}.webcam-image.dragging{cursor:grabbing}
.webcam-loading{margin:0;padding:28px 18px;text-align:center}
.webcam-updated{margin:10px 0 0;color:#aebfce;font-size:.85rem;font-weight:750;text-align:right}
@media(max-width:560px){.webcam-card{padding:15px}.webcam-frame{min-height:180px;border-radius:12px}.webcam-updated{font-size:.8rem}}
body.webcam-immersive{overflow:hidden;overscroll-behavior:none}
body.webcam-immersive #webcamPane:not(.hidden){position:fixed;z-index:120;inset:0;display:grid;place-items:center;width:100vw;height:100dvh;margin:0;padding:0;background:#000;overflow:hidden}
body.webcam-immersive #webcamPane:not(.hidden) .webcam-card{width:100vw;max-width:none;height:100dvh;min-height:100dvh;margin:0;padding:0;border:0;border-radius:0;background:#000}
body.webcam-immersive #webcamPane:not(.hidden) .section-heading,body.webcam-immersive #webcamPane:not(.hidden) .webcam-updated{display:none}
body.webcam-immersive #webcamPane:not(.hidden) .webcam-frame{width:100vw;height:100dvh;min-height:100dvh;border:0;border-radius:0;background:#000}
body.webcam-immersive #webcamPane:not(.hidden) .webcam-image{width:100vw;height:100dvh;max-height:none;object-fit:contain;touch-action:none}

/* De documenten voor kandidaten vormen een aparte beheerderskaart. */
.registration-documents-admin-card{margin-top:18px}
.registration-documents-admin-card .section-heading h3{margin:0}

/* Een gewijzigde documentversie moet eerst gelezen en bevestigd worden. */
.member-document-change-list{display:grid;gap:16px}
.member-document-change-card{display:grid;gap:12px;padding:16px;border:1px solid #355268;border-radius:12px;background:#102536}
.member-document-change-card h3{margin:0;color:#f4f9fc}
.member-document-change-card .eyebrow{margin:0;color:var(--accent-bright)}
.member-document-change-summary{margin:0;padding:12px;border-left:4px solid var(--accent);background:#173247;color:#d7e5ec;white-space:pre-wrap}
.member-document-change-card label{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:11px;margin:0;cursor:pointer}
.member-document-change-card input{width:20px;height:20px;min-height:auto;margin-top:3px;accent-color:var(--accent)}
.member-document-change-card label strong{display:block;color:#f3f8fb}
.member-document-change-status{display:block;margin-top:4px;color:#a9bdca;font-size:.8rem;font-weight:650}
.member-document-change-card .registration-pdf-reader{height:560px}
@media(max-width:560px){.member-document-change-card{padding:14px}.member-document-change-card .registration-pdf-reader{height:430px}}

.totp-manual-setup{display:grid;gap:8px;width:min(100%,430px);padding:13px;border:1px solid #345067;border-radius:11px;background:#142637}.totp-manual-setup p{margin:0;text-align:left;font-size:.9rem}.totp-manual-setup small{color:#b7c9d8;text-align:left}.totp-manual-key{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.totp-manual-key input{min-height:46px;padding:9px 11px;font:700 .82rem/1 ui-monospace,monospace;letter-spacing:.06em}.totp-manual-key .button{min-height:46px;padding:8px 12px}@media(max-width:460px){.totp-manual-key{grid-template-columns:1fr}.totp-manual-key .button{width:100%}}

/* Ledenexport: compacte jaar- en groepskeuze, met een optionele individuele selectie. */
#memberExportForm .export-picker-row{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:end;gap:16px}
#memberExportForm .export-picker{display:grid;gap:4px;margin:0;color:#b6cbdb;font-size:.82rem;text-align:center}
#memberExportForm .export-year-picker{width:92px;justify-self:center}
#memberExportForm .export-year-picker select{width:62px;min-height:40px;padding:6px 4px;justify-self:center;text-align:center;text-align-last:center;direction:ltr;appearance:none;-webkit-appearance:none;background-image:none}
#memberExportForm .export-filter-picker select{width:min(100%,220px);min-height:40px;padding:6px 10px;justify-self:center;text-align:center;text-align-last:center;appearance:none;-webkit-appearance:none;background-image:none}
#memberExportForm .export-member-search{margin:0}
#memberExportForm .export-member-search input{margin-top:4px}
@media(max-width:560px){#memberExportForm .export-picker-row{grid-template-columns:92px minmax(0,1fr);gap:12px}#memberExportForm .export-filter-picker select{width:100%}}

/* Clubinformatie: de clubnaam staat lager en sluit aan op het adres. */
#clubInfoDialog .dialog-heading>div{padding-bottom:4px}
#clubInfoDialog .dialog-heading .eyebrow{margin-bottom:16px}
#clubInfoDialog #clubInfoTitle{margin:0}
#clubInfoDialog .dialog-heading+p{margin-top:0}

/* Eerste profielcontrole: overzicht en bewerkbare gegevens blijven rustig op één scherm. */
.member-field .field-help{display:block;margin-top:4px;color:#aebfce;font-size:.72rem;font-weight:600;line-height:1.35}
.member-field .field-help a{color:#86cdf5}
.profile-review-edit{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}
.profile-review-edit label{min-width:0;margin:0}
.profile-review-edit .checkbox-label,.profile-review-edit .notice{grid-column:1/-1}
.profile-review-actions{justify-content:flex-end}
.profile-review-edit-actions{grid-column:1/-1;justify-content:flex-end;margin-top:4px}
#profileReviewSummary .profile-review-missing{border-left:3px solid var(--accent-bright);padding-left:10px}
#profileReviewSummary .profile-review-missing dd{color:#ffd180}
@media(max-width:560px){
  .profile-review-edit{grid-template-columns:1fr;gap:10px}
  .profile-review-actions,.profile-review-edit-actions{display:grid;grid-template-columns:1fr}
  .profile-review-actions .button,.profile-review-edit-actions .button{width:100%}
}

/* Owner Control Center is divided into focused, compact sections. */
.owner-section-nav{display:flex;gap:8px;overflow-x:auto;margin:0 0 18px;padding:4px 1px 8px;scrollbar-width:thin}
.owner-section-nav button{flex:none;min-height:39px;padding:7px 12px;border:1px solid #45677e;border-radius:999px;background:#142637;color:#dceaf4;font:750 .82rem/1 system-ui,-apple-system,"Segoe UI",sans-serif;white-space:nowrap}
.owner-section-nav button:hover{background:#1e3c51}
.owner-section-nav button.active{border-color:var(--accent);background:var(--accent);color:#14202b}

/* A sign-off transfer always waits for the selected member's own approval. */
.signoff-transfer{width:100%;margin-top:16px}
.signoff-transfer-card{padding:16px;border:1px solid #45687e;border-radius:13px;background:#142637}
.signoff-transfer-card h3{margin:2px 0 8px;color:#f7fbff;font-size:1.1rem}
.signoff-transfer-card p{margin:8px 0;color:#d2e0e9}
.signoff-transfer-card .eyebrow{margin-bottom:5px}
.signoff-transfer-card label{margin:15px 0}
.signoff-transfer-card select{min-height:44px}
@media(max-width:560px){.owner-section-nav{margin-bottom:14px}.owner-section-nav button{min-height:37px;padding:7px 11px}.signoff-transfer-card{padding:14px}.signoff-transfer-card .button-row{display:grid;grid-template-columns:1fr}.signoff-transfer-card .button{width:100%}}

.owner-bank-card{max-width:700px}.owner-bank-test{margin-top:22px;padding-top:18px;border-top:1px solid #345269}.owner-bank-test h3{margin:3px 0 8px}.owner-bank-test p{margin:7px 0}.owner-payment-mailing-switch{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:22px 0 0;padding-top:18px;border-top:1px solid #345269}.owner-payment-mailing-switch input{width:24px;height:24px;min-height:auto;accent-color:var(--accent)}


/* Documenten: vaste ronde actieknoppen en afzonderlijke categorieën. */
.document-item-actions{display:flex;align-items:center;gap:8px;flex:none}.document-item-actions .icon-button{flex:0 0 40px}.document-item>.icon-button,.stored-document>.icon-button{flex:0 0 40px;inline-size:40px;block-size:40px;min-inline-size:40px;min-block-size:40px;aspect-ratio:1/1;line-height:1}
.document-item strong,.document-item span{font-stretch:normal;letter-spacing:normal;text-size-adjust:100%;-webkit-text-size-adjust:100%}
.member-document-section{display:grid;gap:0;margin-top:22px}.member-document-section h3{margin:0 0 7px}.member-document-section .eyebrow{margin:0 0 3px}.member-document-section>.muted{margin:0}
.mutuality-documents-card .section-heading h3,.mutuality-documents-admin-card .section-heading h3{margin:0}.mutuality-documents-card>.muted{margin:8px 0 0}.mutuality-mail-action{display:grid;gap:8px;margin-top:18px}.mutuality-mail-action p{margin:0}.mutuality-mail-action .button{justify-self:start}
@media(max-width:560px){.document-item>.icon-button,.stored-document>.icon-button{flex-basis:40px;inline-size:40px;block-size:40px}.mutuality-mail-action .button{width:100%}}
/* Telefoonnummer verschuift onder geboorteplaats en verschijnt alleen voor meerderjarige kandidaten. */
.registration-adult-phone{grid-column:2}
@media(max-width:560px){.registration-adult-phone{grid-column:auto}}
/* Ziekenfondslogo's blijven compact en rond naast hun document. */
.document-item-logo{flex:0 0 46px;inline-size:46px;block-size:46px;border-radius:50%;object-fit:cover;background:#eef5f8;border:1px solid #46647a}
@media(max-width:560px){.document-item-logo{flex-basis:42px;inline-size:42px;block-size:42px}}
.address-autocomplete-field{position:relative;min-width:0}.address-autocomplete-field>label{margin:0}.address-autocomplete-input{position:relative;display:block;min-width:0}.address-autocomplete-input>input{width:100%}.profile-review-edit .address-autocomplete-field{min-width:0}.registration-street-field{min-width:0}@media(min-width:900px){.webcam-image{cursor:zoom-in}.webcam-image.zoomed{cursor:grab}.webcam-image.dragging{cursor:grabbing}}
/* Ziekenfondsdocumenten: groot en leesbaar logo, met tekst direct ernaast. */
.document-item>div:not(.document-item-actions){flex:1;min-width:0;text-align:left}.document-item-logo{flex:0 0 84px;inline-size:84px;block-size:84px}@media(max-width:560px){.document-item-logo{flex-basis:80px;inline-size:80px;block-size:80px}}
