:root{color-scheme:dark;--bg:#10191b;--card:#1b272a;--text:#f1f6f3;--muted:#bac9c2;--line:#344447;--accent:#4dd89a;--tint:#203e32;--warn:#ffd275;--warning:#493919}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,sans-serif}button,input,select{font:inherit}button,a.action{border:1px solid var(--line);background:var(--card);color:var(--text);padding:.65rem .9rem;border-radius:9px;cursor:pointer;text-decoration:none;display:inline-block}button.primary{background:var(--accent);color:var(--card);font-weight:700}button:disabled{opacity:.6;cursor:wait}a{color:var(--accent)}input,select{border:1px solid var(--line);background:var(--card);color:var(--text);padding:.65rem;border-radius:8px;max-width:100%}input[type=password]{width:100%}label{display:block;margin:.5rem 0}header{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding:1.3rem 2rem;border-bottom:1px solid var(--line);background:var(--card)}h1{font-size:1.8rem;margin:0}h2{margin:.3rem 0}.brand{font-size:.85rem;letter-spacing:.12em;font-weight:800;color:var(--accent)}.muted{color:var(--muted)}.tools{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}main{max-width:1400px;margin:auto;padding:1.3rem 2rem}.status{padding:.8rem 1rem;background:var(--tint);border-radius:8px;margin:1rem 0;font-size:.9rem}.status.warn,.open{background:var(--warning);color:var(--warn)}.error{color:var(--warn);font-weight:650}.login{max-width:420px;margin:2rem auto;padding:1.5rem;background:var(--card);border:1px solid var(--line);border-radius:14px}.login button{width:100%;margin-top:1rem}[hidden]{display:none!important}.event{border:1px solid var(--line);border-radius:12px;background:var(--card);margin:1rem 0;overflow:hidden}.event-head{padding:.8rem 1rem;background:var(--tint);display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.team-row{display:grid;grid-template-columns:minmax(200px,1fr) minmax(160px,.55fr) minmax(170px,.5fr);gap:1rem;padding:.8rem 1rem;border-top:1px solid var(--line);align-items:center}.team-row select{width:100%}.name{font-weight:650}.caption{font-size:.85rem;color:var(--muted)}.inactive{opacity:.65}.saved{font-size:.82rem;color:var(--accent)}.room{display:inline-flex;align-items:center;justify-content:center;border-radius:9px;background:var(--accent);color:var(--card);min-width:2.6em;padding:.2em .55em;font-weight:800}.room.open{background:var(--warning);color:var(--warn);font-weight:650}.display-header .clock{font-size:2.8rem;font-weight:800;line-height:1.15}.display-header h1{font-size:2.3rem}.display-main{max-width:none;display:flex;flex-direction:column;height:calc(100dvh - 164px);padding:1rem 2rem}.display-viewport{flex:1;min-height:0;overflow:auto;scrollbar-width:none}.display-viewport::-webkit-scrollbar{display:none}table{width:100%;border-collapse:separate;border-spacing:0;background:var(--card);font-size:clamp(18px,2.3vw,38px)}th,td{text-align:left;padding:.55em .6em;border-bottom:1px solid var(--line)}th{font-size:.65em;color:var(--muted);background:var(--tint);position:sticky;top:0;z-index:1}td.group{vertical-align:top;font-weight:750;background:var(--tint);width:12%}.display-footer{font-size:.85rem;padding-top:.6rem;display:flex;justify-content:space-between;gap:1rem;align-items:center}.empty{padding:3rem 1rem;text-align:center;color:var(--muted);font-size:1.3rem}.notes{display:block;font-size:.55em;color:var(--muted);font-weight:400}.version{font-size:.8rem;color:var(--muted)}.display-warning{padding:.45rem .8rem;font-size:.85rem;background:var(--warning);color:var(--warn);margin-bottom:.5rem;border-radius:8px}@media(max-width:700px){header,main{padding:1rem}h1{font-size:1.4rem}.team-row{grid-template-columns:1fr minmax(100px,130px);gap:.5rem}.team-row .field{grid-row:2}.team-row .assignment{grid-row:1/3;grid-column:2}.event-head{gap:.5rem}.display-header{gap:.5rem}.display-header h1{font-size:1.4rem}.display-header .clock{font-size:1.7rem}.display-main{padding:.7rem;height:calc(100dvh - 146px)}table{font-size:15px}th,td{padding:.5em .35em}.display-footer{flex-wrap:wrap}.display-footer button{padding:.4rem .6rem}.group{min-width:60px}.youth{font-size:.85em}}

/* Tighter team rows keep their text size and horizontal spacing. */
.display-viewport td{padding-top:.42em;padding-bottom:.42em}

/* Fullscreen display leaves the available area to the schedule. */
html:fullscreen .display-footer{display:none}
html:-webkit-full-screen .display-footer{display:none}
@media(display-mode:fullscreen){.display-footer{display:none}}

/* Browser kiosk mode also fills the screen without page controls. */
html[data-kiosk="1"] body{display:flex;flex-direction:column;height:100dvh;overflow:hidden;cursor:none}
html[data-kiosk="1"] .display-main{flex:1;width:100%;height:auto;min-height:0}
html[data-kiosk="1"] .display-footer{display:none}

/* Club identity uses the supplied transparent image in the dark display. */
.identity{display:flex;align-items:center;gap:.9rem;min-width:0}.club-logo{width:60px;height:60px;object-fit:contain;flex:none;border-radius:8px;background:transparent}.display-header .club-logo{width:86px;height:86px}.display-footer{justify-content:flex-end}@media(max-width:700px){.club-logo{width:46px;height:46px}.display-header .club-logo{width:52px;height:52px}.identity{gap:.6rem}}

/* Own games use the same protected page and design as imported games. */
.manual-form{margin:1rem 0;padding:1.2rem;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.manual-form h2{font-size:1.25rem}.manual-form p{margin:.5rem 0}
.manual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1rem}
.manual-grid label{margin:.25rem 0}.manual-grid input,.manual-grid select{display:block;width:100%;margin-top:.3rem}
.manual-wide{grid-column:1/-1}.manual-badge{font-size:.8rem;font-weight:700;padding:.2rem .55rem;border-radius:6px;background:var(--card);color:var(--accent)}
.manual-form h3{font-size:1rem;margin:.4rem 0}.manual-guests{display:grid;gap:.6rem;margin-bottom:.6rem}
.manual-guest{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,.35fr) auto;align-items:end;gap:.7rem;padding:.65rem;border:1px solid var(--line);border-radius:8px;background:var(--tint)}
.manual-guest .guest-remove{margin-bottom:.25rem}
.event-actions{margin-left:auto}.event-actions button{padding:.35rem .65rem;font-size:.85rem}
#manual-notice:empty{display:none}@media(max-width:700px){.manual-form{padding:.9rem}.manual-grid{grid-template-columns:1fr;gap:.35rem}.manual-wide{grid-column:auto}.manual-guest{grid-template-columns:1fr;gap:.35rem}.manual-guest .guest-remove{justify-self:start}.event-actions{width:100%;margin-left:0}}

/* A native disclosure keeps all six cabin choices accessible on touch and keyboard. */
.room-picker{position:relative;margin:.3rem 0;color:var(--text);font-size:1rem}
.room-picker summary{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-height:44px;padding:.6rem .7rem;border:1px solid var(--line);border-radius:8px;background:var(--card);cursor:pointer;list-style:none}
.room-picker summary::-webkit-details-marker{display:none}.room-picker summary::after{content:'⌄';color:var(--muted)}
.room-picker[open]{z-index:3}.room-picker[open] summary::after{content:'⌃'}
.room-picker summary:focus-visible,.room-option:focus-within{outline:2px solid var(--accent);outline-offset:2px}
.room-picker summary[aria-busy=true]{opacity:.7}.room-options{position:absolute;right:0;top:calc(100% + .3rem);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;width:250px;max-width:calc(100vw - 2rem);padding:.7rem;border:1px solid var(--line);border-radius:10px;background:var(--card);box-shadow:0 10px 30px #0008;z-index:3}
.room-option{display:flex;align-items:center;gap:.45rem;min-height:44px;margin:0;padding:.4rem;border-radius:6px;background:var(--tint);cursor:pointer;font-size:.9rem}
.room-option input[type=checkbox]{width:19px;height:19px;flex:none;margin:0;accent-color:var(--accent)}
.room-clear{grid-column:1/-1;min-height:44px;font-size:.9rem}.manual-room{margin:.25rem 0}.manual-room>.room-picker{margin-top:.3rem}
.event{overflow:visible}.event-head{border-radius:11px 11px 0 0}
.room-badges{display:flex;gap:.25em;flex-wrap:wrap;align-items:center}.room-badges .room{min-width:1.7em;padding:.12em .3em}
@media(max-width:700px){.room-options{width:232px}.manual-room .room-options{right:auto;left:0}}

/* The same daily table includes training start/end times and normal game groups. */
.display-viewport td.group:first-child{white-space:nowrap}
.display-photo{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:var(--bg);overflow:hidden}
.display-photo img{display:block;max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain}
html[data-kiosk="1"] .display-photo,html:fullscreen .display-photo,html:-webkit-full-screen .display-photo{position:fixed;inset:0;z-index:5;padding:0;background:var(--bg)}
html[data-kiosk="1"] .display-warning,html:fullscreen .display-warning{position:relative;z-index:6}
@media(display-mode:fullscreen){.display-photo{position:fixed;inset:0;z-index:5;background:var(--bg)}.display-warning{position:relative;z-index:6}}
.display-settings{margin:1rem 0;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.display-settings>summary{padding:.8rem 1rem;font-weight:700;cursor:pointer}.settings-card{padding:1rem;border-top:1px solid var(--line)}
.settings-card h2{font-size:1.25rem}.settings-card p{margin:.5rem 0}.settings-card .tools{align-items:flex-end}
.settings-card label>input{display:block;margin-top:.25rem}.gallery-settings{margin-top:1rem}
.gallery-settings .toggle-label{display:flex;align-items:center;gap:.6rem}.gallery-settings .toggle-label input{width:20px;height:20px;accent-color:var(--accent);margin:0}
.gallery-settings input[type=number]{width:180px}.gallery-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.8rem;margin-top:1rem}
.gallery-item{min-width:0;padding:.75rem;background:var(--tint);border:1px solid var(--line);border-radius:10px}
.gallery-item img{display:block;width:100%;height:180px;object-fit:contain;background:var(--bg);border-radius:6px}.gallery-item .name{overflow-wrap:anywhere;font-size:.9rem;margin:.5rem 0}.gallery-item button{padding:.4rem .7rem;font-size:.9rem}
@media(max-width:700px){.gallery-items{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-item{padding:.5rem}.gallery-item img{height:130px}.settings-card{padding:.8rem}.settings-card input[type=file]{width:100%}.display-viewport td.group:first-child{white-space:normal;font-size:.9em}}

/* Version 1.0.9: the editor has its own layout; the public display uses the original rules above. */
body.admin-page{--bg:#101a24;--card:#182735;--line:#304456;--accent:#66c7f6;--tint:#183647;background:var(--bg)}
body.admin-page .admin-header{padding:1rem max(1.25rem,calc((100vw - 1240px)/2));background:var(--bg);border-bottom:1px solid var(--line)}
body.admin-page .admin-header h1{font-size:1.5rem;line-height:1.25}
body.admin-page .admin-header .brand{font-size:.75rem;color:var(--muted);letter-spacing:.1em}
body.admin-page .admin-header .club-logo{width:52px;height:58px}
body.admin-page .display-link{font-size:.9rem;background:transparent;white-space:nowrap}
body.admin-page .admin-main{max-width:1280px;padding:1.2rem 1.25rem 2rem}
body.admin-page .admin-navigation{display:flex;justify-content:space-between;align-items:center;gap:1rem;position:sticky;top:0;z-index:8;padding:.25rem 0 .9rem;background:var(--bg);border-bottom:1px solid var(--line)}
body.admin-page .admin-tabs{display:flex;gap:.35rem;min-width:0}
body.admin-page .admin-tabs button{border-color:transparent;background:transparent;color:var(--muted);min-height:44px;padding:.6rem 1.2rem;font-weight:650}
body.admin-page .admin-tabs button[aria-selected=true]{color:var(--accent);background:var(--tint);border-color:#3f6076}
body.admin-page .admin-tabs button:hover{background:var(--card)}
body.admin-page button:focus-visible,body.admin-page a:focus-visible,body.admin-page summary:focus-visible,body.admin-page input:focus-visible,body.admin-page select:focus-visible,body.admin-page .admin-panel:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
body.admin-page .admin-menu{position:relative;flex:none}
body.admin-page .admin-menu>summary{font-size:.9rem;color:var(--muted);padding:.6rem .8rem;min-height:44px;border:1px solid var(--line);border-radius:9px;cursor:pointer;list-style:none}
body.admin-page .admin-menu>summary::-webkit-details-marker{display:none}
body.admin-page .admin-menu>summary::after{content:'⌄';margin-left:.55rem}
body.admin-page .admin-menu[open]>summary{background:var(--card);color:var(--text)}
body.admin-page .admin-menu-content{position:absolute;top:calc(100% + .5rem);right:0;z-index:9;width:340px;max-width:calc(100vw - 2.5rem);padding:.6rem;border:1px solid var(--line);border-radius:12px;background:var(--card);box-shadow:0 12px 40px #0008;display:grid;gap:.25rem}
body.admin-page .admin-menu-content button,body.admin-page .admin-menu-content a.action{text-align:left;border-color:transparent;border-radius:6px;min-height:44px;font-size:.9rem}
body.admin-page .admin-menu-content button:hover,body.admin-page .admin-menu-content a.action:hover{background:var(--tint)}
body.admin-page .admin-menu-content #logout{border-top:1px solid var(--line);border-radius:0 0 6px 6px}
body.admin-page .admin-menu-content .status{font-size:.8rem;padding:.6rem .7rem;margin:.4rem 0 0;overflow-wrap:anywhere}
body.admin-page .admin-panel{padding-top:1.2rem}
body.admin-page .panel-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.9rem}
body.admin-page .panel-heading h2{font-size:1.35rem;line-height:1.3;margin:0}
body.admin-page .panel-heading p{margin:.35rem 0 0}
body.admin-page .save-hint,body.admin-page .section-count{font-size:.8rem;white-space:nowrap;color:var(--muted);border:1px solid var(--line);border-radius:20px;padding:.3rem .65rem}
body.admin-page .save-hint::before{content:'✓';color:var(--accent);margin-right:.4rem}
body.admin-page .cabin-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;padding:.8rem 1rem;border:1px solid var(--line);border-radius:12px;background:var(--card)}
body.admin-page .date-tools{display:flex;gap:.6rem;align-items:flex-end}
body.admin-page .date-tools label{font-size:.8rem;color:var(--muted);margin:0}
body.admin-page .date-tools input{display:block;margin-top:.25rem;min-height:44px;color:var(--text);width:180px}
body.admin-page .cabin-toolbar button{min-height:44px}
body.admin-page .day-summary{margin:.8rem .1rem}
body.admin-page .event{margin:.8rem 0;border-radius:13px;background:var(--card)}
body.admin-page .event-head{padding:.75rem 1rem;gap:.65rem;background:#193144}
body.admin-page .event-head .event-time{font-size:1.2rem;letter-spacing:.01em}
body.admin-page .event-category{font-weight:650}
body.admin-page .event-kind{font-size:.75rem;color:var(--muted);background:var(--card);border-radius:5px;padding:.12rem .45rem}
body.admin-page .event-head .manual-badge{font-size:.75rem}
body.admin-page .team-row{grid-template-columns:minmax(180px,1fr) minmax(140px,.5fr) minmax(156px,190px);gap:1rem;padding:.65rem 1rem;align-items:center}
body.admin-page .team-row .name{font-size:1rem;overflow-wrap:anywhere;line-height:1.4}
body.admin-page .team-meta{display:flex;align-items:center;gap:.45rem;margin-top:.2rem;flex-wrap:wrap}
body.admin-page .team-role{font-size:.72rem;line-height:1.3;padding:.12rem .4rem;border:1px solid var(--line);border-radius:4px;color:var(--muted)}
body.admin-page .team-role.home-role{color:var(--accent);border-color:#3f6076}
body.admin-page .team-row .field{font-size:.85rem;overflow-wrap:anywhere}
body.admin-page .team-hint{margin-top:.3rem;overflow-wrap:anywhere}
body.admin-page .assignment>.caption{font-size:.73rem}
body.admin-page .assignment .room-picker{margin:.15rem 0}
body.admin-page .assignment .room-picker summary{font-weight:700;background:#122c3d;border-color:#3f6076}
body.admin-page .assignment .room-picker summary[data-empty=true]{font-weight:650;color:var(--warn);background:var(--warning);border-color:#785e35}
body.admin-page .assignment .saved{min-height:1.1em;line-height:1.1;font-size:.72rem}
body.admin-page .event-actions{gap:.4rem}
body.admin-page .event-actions button{min-height:38px;font-size:.8rem;padding:.35rem .6rem}
body.admin-page .cabin-note{margin:1.1rem .1rem;color:var(--muted)}
body.admin-page .admin-error:empty,body.admin-page .admin-feedback:empty,body.admin-page #gallery-error:empty,body.admin-page #gallery-notice:empty,body.admin-page #manual-error:empty,body.admin-page #training-error:empty{display:none}
body.admin-page .admin-error,body.admin-page #gallery-error,body.admin-page #manual-error,body.admin-page #training-error{padding:.7rem .9rem;border:1px solid #785e35;border-radius:9px;background:var(--warning);overflow-wrap:anywhere}
body.admin-page .admin-feedback{margin:.7rem .1rem 0}
body.admin-page #import-notice.warn{color:var(--warn)}
body.admin-page .settings-card{padding:1.2rem;border:1px solid var(--line);border-radius:12px;background:var(--card)}
body.admin-page .settings-card h3,body.admin-page .stored-gallery h3{font-size:1.05rem;margin:0 0 .55rem}
body.admin-page .settings-card p{max-width:800px}
body.admin-page .training-actions{display:flex;align-items:flex-end;gap:.7rem;flex-wrap:wrap;margin:1.2rem 0 .8rem}
body.admin-page .training-actions label{margin:0;font-size:.85rem;color:var(--muted)}
body.admin-page .training-actions select{display:block;margin-top:.3rem;min-width:210px;min-height:44px;color:var(--text)}
body.admin-page .training-actions button,body.admin-page .training-actions a.action{min-height:44px}
body.admin-page .training-status{padding:.75rem .9rem;border-radius:8px;background:var(--tint);overflow-wrap:anywhere}
body.admin-page .gallery-management{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:1rem}
body.admin-page .gallery-upload{display:flex;flex-direction:column;align-items:flex-start;gap:.7rem}
body.admin-page .gallery-upload label{font-size:.85rem;max-width:100%;margin:.3rem 0}
body.admin-page .gallery-upload input[type=file]{display:block;width:100%;margin-top:.4rem;font-size:.85rem;min-height:44px}
body.admin-page .gallery-upload input::file-selector-button{font:inherit;padding:.3rem .5rem;background:var(--tint);color:var(--text);border:1px solid var(--line);border-radius:5px;margin-right:.55rem;cursor:pointer}
body.admin-page .gallery-upload button{min-height:44px}
body.admin-page .gallery-settings{margin-top:.4rem}
body.admin-page .gallery-settings .toggle-label{font-size:.9rem;margin:.4rem 0 .8rem}
body.admin-page .rotation-times{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
body.admin-page .rotation-times label{font-size:.85rem;margin:0}
body.admin-page .rotation-times input{display:block;margin:.3rem 0 .2rem;width:100%;min-height:44px}
body.admin-page .rotation-times .caption{font-size:.73rem}
body.admin-page .gallery-settings-footer{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;margin-top:.9rem}
body.admin-page .gallery-settings-footer button{min-height:44px;font-size:.9rem}
body.admin-page .gallery-settings-footer .caption{font-size:.75rem}
body.admin-page .stored-gallery{margin-top:1.5rem}
body.admin-page .gallery-items{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.9rem;margin-top:.8rem}
body.admin-page .gallery-item{padding:.65rem;background:var(--card);border-radius:12px}
body.admin-page .gallery-item img{height:160px;background:#101a24}
body.admin-page .gallery-item .name{margin:.55rem .1rem;line-height:1.4}
body.admin-page .gallery-item button{min-height:44px;width:100%;margin-top:.2rem;color:var(--warn);background:transparent}
body.admin-page .gallery-item button:hover{background:var(--warning)}
body.admin-page .gallery-empty{grid-column:1/-1;border:1px dashed var(--line);border-radius:12px;padding:1.8rem 1rem;text-align:center}
body.admin-page .gallery-usage{margin-top:.45rem;font-size:.78rem;color:var(--muted)}
body.admin-page .gallery-usage:empty{display:none}
body.admin-page .usage-bar{height:7px;max-width:420px;margin:.5rem 0 0;border:1px solid var(--line);border-radius:999px;background:var(--tint);overflow:hidden}
body.admin-page .usage-bar span{display:block;height:100%;width:0;background:var(--accent);transition:width .25s ease}
body.admin-page .manual-form{border-color:#3f6076;padding:1.15rem;margin:1rem 0}
body.admin-page .manual-form h2{font-size:1.15rem}
body.admin-page .manual-grid{margin-top:1rem}
body.admin-page .manual-grid>label,body.admin-page .manual-room>span{font-size:.85rem}
body.admin-page .manual-guest{background:#142a3a}
body.admin-page .manual-footer{margin-top:1rem;padding-top:.8rem;border-top:1px solid var(--line)}
body.admin-page .manual-footer button{min-height:44px}
body.admin-page .version{margin:1.8rem 0 0;padding-top:.8rem;border-top:1px solid var(--line)}
@media(max-width:760px){
 body.admin-page .admin-header{padding:.85rem 1rem;gap:.6rem}
 body.admin-page .admin-header h1{font-size:1.2rem}
 body.admin-page .admin-header .club-logo{width:38px;height:44px}
 body.admin-page .identity{gap:.6rem}
 body.admin-page .display-link{font-size:.8rem;padding:.5rem .6rem;min-height:40px}
 body.admin-page .admin-main{padding:1rem .85rem 1.5rem}
 body.admin-page .admin-navigation{gap:.5rem;flex-wrap:wrap;padding:.2rem 0 .65rem}
 body.admin-page .admin-tabs{flex:1;gap:.15rem}
 body.admin-page .admin-tabs button{flex:1;padding:.5rem .6rem;font-size:.9rem}
 body.admin-page .admin-menu{margin-left:auto}
 body.admin-page .admin-menu>summary{font-size:.75rem;min-height:44px;padding:.6rem .55rem}
 body.admin-page .admin-menu-content{max-width:calc(100vw - 1.7rem)}
 body.admin-page .panel-heading{align-items:flex-start;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}
 body.admin-page .panel-heading h2{font-size:1.2rem}
 body.admin-page .panel-heading p{font-size:.8rem}
 body.admin-page .save-hint,body.admin-page .section-count{font-size:.73rem;padding:.2rem .55rem}
 body.admin-page .cabin-toolbar{padding:.7rem;gap:.65rem;flex-wrap:wrap}
 body.admin-page .date-tools{flex:1;gap:.4rem}
 body.admin-page .date-tools input{width:158px;padding:.55rem;font-size:.9rem}
 body.admin-page #manual-new{width:100%;font-size:.9rem}
 body.admin-page .day-summary{font-size:.78rem}
 body.admin-page .event-head{padding:.65rem .75rem;gap:.5rem}
 body.admin-page .event-head .event-time{font-size:1.05rem}
 body.admin-page .event-category{font-size:.9rem}
 body.admin-page .event-actions{width:100%;margin-left:0;gap:.4rem}
 body.admin-page .team-row{grid-template-columns:minmax(0,1fr) minmax(106px,126px);gap:.2rem .65rem;padding:.65rem .75rem;align-items:start}
 body.admin-page .team-row .name{font-size:.92rem}
 body.admin-page .team-row .field{grid-column:1;grid-row:2;font-size:.77rem;margin-top:.1rem}
 body.admin-page .team-row .assignment{grid-column:2;grid-row:1/3;align-self:center}
 body.admin-page .team-row .caption{font-size:.76rem}
 body.admin-page .assignment .room-picker summary{padding:.5rem .6rem;font-size:.95rem}
 body.admin-page .team-row .assignment>.caption{font-size:.68rem}
 body.admin-page .team-row .assignment>.saved{font-size:.68rem}
 body.admin-page .cabin-note{font-size:.77rem}
 body.admin-page .gallery-management{grid-template-columns:1fr;gap:.85rem}
 body.admin-page .settings-card{padding:.9rem}
 body.admin-page .training-actions{gap:.6rem;margin-top:1rem}
 body.admin-page .training-actions label{width:100%}
 body.admin-page .training-actions select{width:100%}
 body.admin-page .training-actions button,body.admin-page .training-actions a.action{font-size:.85rem}
 body.admin-page .gallery-items{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
 body.admin-page .gallery-item{padding:.5rem}
 body.admin-page .gallery-item img{height:130px}
 body.admin-page .gallery-item .name{font-size:.8rem}
 body.admin-page .gallery-item button{font-size:.85rem}
 body.admin-page .manual-form{padding:.85rem}
 body.admin-page .manual-grid{grid-template-columns:1fr}
 body.admin-page .manual-wide{grid-column:auto}
 body.admin-page .manual-guest{grid-template-columns:1fr;gap:.35rem}
}
@media(prefers-reduced-motion:reduce){body.admin-page *{scroll-behavior:auto}}

/* Version 1.0.10: protected training-source editing stays within the administrative page. */
body.admin-page .training-source-form{margin:1.25rem 0;padding-top:1rem;border-top:1px solid var(--line)}
body.admin-page .training-source-heading{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap;margin-bottom:.5rem}
body.admin-page .training-source-heading>label{font-size:.85rem;margin:0}
body.admin-page .source-toggle{display:flex;align-items:center;gap:.55rem;min-height:44px;cursor:pointer;color:var(--accent)}
body.admin-page .source-toggle input{appearance:none;position:relative;flex:none;width:42px;height:24px;border:1px solid var(--line);border-radius:20px;background:#101a24;cursor:pointer;margin:0}
body.admin-page .source-toggle input::after{content:'';position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--muted)}
body.admin-page .source-toggle input:checked{background:var(--accent);border-color:var(--accent)}
body.admin-page .source-toggle input:checked::after{left:21px;background:#101a24}
body.admin-page .source-toggle input:disabled{cursor:default;opacity:.5}
body.admin-page #training-source-url{display:block;width:100%;min-height:44px;font-size:.88rem;margin:.25rem 0;color:var(--text)}
body.admin-page #training-source-url:disabled{color:var(--muted);background:#12202b;border-color:var(--line);opacity:.65}
body.admin-page .training-source-buttons{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;margin:.85rem 0}
body.admin-page .training-source-buttons button{min-height:44px;font-size:.9rem}
body.admin-page #training-source-error:empty,body.admin-page #training-source-notice:empty{display:none}
body.admin-page #training-source-error{padding:.7rem .9rem;border:1px solid #785e35;border-radius:9px;background:var(--warning);overflow-wrap:anywhere}
body.admin-page .training-template{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding-top:1rem;border-top:1px solid var(--line)}
body.admin-page .training-template .action{min-height:44px;white-space:nowrap;font-size:.85rem}
body.admin-page .training-template p{flex:1;min-width:220px;margin:0;max-width:580px}
@media(max-width:760px){body.admin-page .training-source-heading{gap:.25rem}body.admin-page .training-source-heading>label:first-child{width:100%}body.admin-page .training-template{gap:.7rem}body.admin-page #training-source-url{font-size:.82rem}}
