:root{--blue:var(--product-brand);--blue2:var(--product-brand-strong);--pale:var(--product-brand-soft);--ink:var(--product-text-primary);--muted:var(--product-text-secondary);--line:var(--product-border);--line-strong:var(--product-border-strong);--bg:var(--product-background);--white:var(--product-surface);--surface2:var(--product-surface-secondary);--field-bg:var(--product-field-surface);--neutral-control:var(--product-neutral-control);--info:var(--product-info);--ok:var(--product-success);--warn:var(--product-warning);--bad:var(--product-danger);--special:var(--product-special);--special-fg:var(--special);--on-brand:var(--product-on-brand);--on-image:var(--product-on-image);--toast-bg:var(--product-toast-background);--progress-track:var(--product-progress-track);--nav-text:var(--product-nav-text);--heading-accent:var(--product-heading-accent);--selection-surface:var(--product-selection-surface);--selection-border:var(--product-selection-border);--emphasis-border:var(--product-emphasis-border,var(--selection-border));--selection-text:var(--product-selection-text);--info-surface:var(--product-info-surface);--info-border:var(--product-info-border);--selected-row-surface:var(--product-selected-row-surface);--selected-row-border:var(--product-selected-row-border);--selected-row-hover-surface:var(--product-selected-row-hover-surface);--selected-row-hover-border:var(--product-selected-row-hover-border);--filter-border:var(--product-filter-border);--spinner-track:var(--product-spinner-track);--profile-count-surface:var(--product-profile-count-surface);--avatar-surface:var(--product-avatar-surface);--avatar-text:var(--product-avatar-text);--manager-event-primary:var(--product-manager-event-primary);--attendance-accent:var(--product-attendance-accent);--table-header-surface:var(--product-table-header-surface);--attendance-stats-surface:var(--product-attendance-stats-surface);--backup-restore-surface:var(--product-backup-restore-surface);--event-recurrence-surface:var(--product-event-recurrence-surface);--export-progress-surface:var(--product-export-progress-surface);--csv-mapping-surface:var(--product-csv-mapping-surface);--csv-summary-surface:var(--product-csv-summary-surface);--shadow:0 10px 32px rgba(27,58,105,.09);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.screen{min-height:100vh}.login-screen{display:grid;place-items:center;padding:24px;background:var(--bg)}.login-card{width:min(100%,410px);background:linear-gradient(rgba(6,18,38,.54),rgba(6,18,38,.66)),url("images/backentrada.webp") center/cover no-repeat;border:1px solid rgba(255,255,255,.34);border-radius:22px;padding:28px;box-shadow:0 18px 48px rgba(10,31,63,.24);color:#fff}.brand{display:flex;align-items:center;gap:12px;font-size:21px;font-weight:850;letter-spacing:.02em}.brand img{width:42px;height:42px}.login-card h1{font-size:25px;margin:26px 0 6px}.login-card .muted{color:rgba(255,255,255,.78)}.login-card label{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.28)}.login-card input,.login-card select{background:rgba(255,255,255,.95);color:var(--ink);border-color:rgba(255,255,255,.72);box-shadow:0 1px 0 rgba(255,255,255,.18)}.login-card input:focus,.login-card select:focus{outline:3px solid rgba(255,255,255,.26);border-color:#fff}.login-card .btn.primary{background:rgba(255,255,255,.96);color:var(--blue2);box-shadow:0 8px 22px rgba(5,20,46,.22)}.login-card .btn.primary:hover{background:var(--on-image);filter:none}.login-card .error-text{color:#ffd7d3;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.35)}.muted{color:var(--muted)}label{display:block;font-weight:700;font-size:14px;margin:15px 0 6px}.field,input,select,textarea{width:100%;border:1px solid var(--line-strong);background:var(--field-bg);color:var(--ink);border-radius:11px;padding:11px 12px;min-height:44px}textarea{min-height:92px;resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid color-mix(in srgb,var(--blue) 16%,transparent);border-color:var(--blue)}.btn{border:0;border-radius:11px;padding:11px 15px;min-height:44px;background:var(--neutral-control);color:var(--ink);font-weight:750}.btn:hover{filter:brightness(.97)}.btn.primary{background:var(--blue);color:var(--on-brand)}.btn.danger{background:#fff0ef;color:var(--bad)}.btn.ghost{background:transparent;border:1px solid var(--line)}.btn.small{padding:7px 10px;min-height:36px;font-size:13px}.btn.block{width:100%;margin-top:20px}.app-header{position:sticky;z-index:30;top:0;height:70px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 22px;backdrop-filter:blur(12px)}.header-user{display:flex;align-items:center;gap:12px}.header-user small{display:block;color:var(--muted)}.layout{display:grid;grid-template-columns:230px 1fr;max-width:1500px;margin:auto}.sidebar{position:sticky;top:70px;height:calc(100vh - 70px);padding:18px 12px;border-right:1px solid var(--line);background:var(--white)}.nav-btn{width:100%;border:0;background:transparent;border-radius:11px;padding:12px 14px;margin:2px 0;text-align:left;color:var(--nav-text);font-weight:700}.nav-btn.active,.nav-btn:hover{background:var(--pale);color:var(--blue)}.content{min-width:0;padding:26px 28px 100px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:22px}.page-head h1{margin:0;font-size:28px}.page-head p{margin:5px 0 0;color:var(--muted)}.actions{display:flex;gap:8px;flex-wrap:wrap}.grid{display:grid;gap:16px}.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.stat,.card{background:var(--white);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.stat{padding:18px}.stat strong{display:block;font-size:29px;color:var(--blue);margin-top:8px}.card{padding:18px}.card h2,.card h3{margin:0 0 12px}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.card-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.tag{display:inline-flex;align-items:center;border-radius:99px;padding:5px 9px;font-size:12px;font-weight:800;background:#e9eef6;color:#4d5e78}.tag.ok{background:#e6f6ed;color:var(--ok)}.tag.warn{background:#fff4dc;color:var(--warn)}.tag.bad{background:#ffebea;color:var(--bad)}.tag.blue{background:var(--pale);color:var(--blue)}.list{display:grid;gap:10px}.list-item{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:15px}.list-item:hover{border-color:#aebed8}.list-title{font-weight:800}.meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:13px;margin-top:6px}.toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:0 0 16px}.toolbar>label{margin:0;min-width:150px}.toolbar .search{flex:1;min-width:220px}.table-wrap{overflow:auto;background:var(--white);border:1px solid var(--line);border-radius:14px}.table{width:100%;border-collapse:collapse;min-width:650px}.table th,.table td{text-align:left;padding:12px;border-bottom:1px solid #e9eef6;vertical-align:top}.table th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--table-header-surface)}.empty{padding:38px;text-align:center;color:var(--muted);background:var(--white);border:1px dashed #b9c7dc;border-radius:14px}.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.quick .btn{text-align:left;min-height:66px}.split{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.form-grid .wide{grid-column:1/-1}.check-row{display:flex;align-items:center;gap:9px;margin:12px 0}.check-row input{width:20px;min-height:20px}.segment{display:flex;gap:7px;flex-wrap:wrap}.segment button{border:1px solid var(--line);background:var(--white);border-radius:99px;padding:8px 12px;font-weight:750}.segment button.active{background:var(--blue);border-color:var(--blue);color:var(--on-brand)}.modal-backdrop{position:fixed;z-index:100;inset:0;background:rgba(10,25,50,.52);display:grid;place-items:center;padding:18px}.modal{width:min(100%,720px);max-height:90vh;overflow:auto;background:var(--white);border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.24)}.modal-head{position:sticky;top:0;background:var(--white);z-index:2;border-bottom:1px solid var(--line);padding:18px 20px;display:flex;align-items:center;justify-content:space-between}.modal-head h2{margin:0;font-size:20px}.modal-body{padding:20px}.modal-actions{position:sticky;bottom:0;background:var(--white);border-top:1px solid var(--line);padding:14px 20px;display:flex;justify-content:flex-end;gap:8px}.icon-btn{border:0;background:transparent;border-radius:8px;width:40px;height:40px;font-size:22px}.toast-wrap{position:fixed;z-index:200;right:18px;top:84px;display:grid;gap:8px}.toast{max-width:380px;padding:13px 16px;border-radius:12px;background:var(--toast-bg);color:#fff;box-shadow:var(--shadow)}.toast.error{background:var(--bad)}.toast.has-action{display:flex;align-items:center;justify-content:space-between;gap:12px}.toast-message{min-width:0}.toast-action{flex:0 0 auto;border:1px solid rgba(255,255,255,.42);border-radius:8px;background:transparent;color:#fff;padding:6px 9px;font:inherit;font-weight:800;cursor:pointer}.rsvp{display:flex;gap:8px}.rsvp .active.yes{background:#dff5e8;color:var(--ok)}.rsvp .active.no{background:#ffebea;color:var(--bad)}.attendance-row{display:grid;grid-template-columns:minmax(150px,1fr) 190px minmax(160px,1fr);gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.progress{height:8px;border-radius:99px;background:var(--progress-track);overflow:hidden}.progress>span{display:block;height:100%;background:var(--blue)}.bottom-nav{display:none}.danger-zone{border:1px solid #ffc4c0;background:#fff8f7}.notice{padding:12px 14px;border-radius:11px;background:var(--pale);color:var(--blue2);margin:10px 0}.offline-disabled-control:disabled{opacity:.52;background:var(--field-bg);color:var(--muted);cursor:not-allowed}.offline-disabled-action:disabled,.offline-disabled-action.is-offline-disabled{opacity:.46;cursor:not-allowed;filter:none}.offline-disabled-note{margin:4px 0 0;padding:0 2px;background:transparent;color:var(--muted);font-size:10px;font-weight:500;line-height:1.25}.offline-event-program-note{margin:4px 0 10px}.event-offline-action{min-width:0}.event-offline-action>.offline-disabled-note{margin:3px 2px 0}.event-attendance-link:disabled{cursor:not-allowed;filter:none;background:var(--surface2);border-color:var(--line);color:var(--muted)}.event-attendance-link:disabled span{color:var(--muted)}.error-text{color:var(--bad);min-height:22px;margin-top:10px}.skeleton{height:80px;background:linear-gradient(90deg,#eef2f7,#f8fafc,#eef2f7);background-size:200%;animation:pulse 1.2s infinite;border-radius:14px}@keyframes pulse{to{background-position:-200% 0}}
@media(max-width:1000px){.stats{grid-template-columns:repeat(2,1fr)}.quick{grid-template-columns:repeat(2,1fr)}.cards{grid-template-columns:1fr}}
@media(max-width:760px),(max-height:500px) and (max-width:1000px) and (pointer:coarse){.app-header{height:60px;padding:0 14px}.app-header .brand span{display:none}.header-user strong{max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layout{display:block}.sidebar{display:none}.content{padding:18px 14px 92px}.page-head{align-items:flex-start;flex-direction:column}.page-head h1{font-size:24px}.stats{grid-template-columns:1fr 1fr;gap:10px}.stat{padding:14px}.stat strong{font-size:24px}.split,.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.bottom-nav{position:fixed;z-index:50;bottom:0;left:0;right:0;height:72px;padding:7px 6px calc(7px + env(safe-area-inset-bottom));display:flex;overflow-x:auto;background:var(--white);border-top:1px solid var(--line)}.bottom-nav .nav-btn{flex:0 0 76px;text-align:center;font-size:11px;padding:7px 3px;margin:0}.bottom-nav .nav-btn span{display:block;font-size:20px;line-height:22px}.attendance-row{grid-template-columns:1fr}.modal-backdrop{padding:0;align-items:end}.modal{border-radius:18px 18px 0 0;max-height:94vh}.toast-wrap{left:12px;right:12px;top:70px}.toast{max-width:none}.toolbar>label,.toolbar .search{width:100%;min-width:0}}
@media(max-width:390px){.stats{grid-template-columns:1fr}.quick{grid-template-columns:1fr 1fr}.header-user small{display:none}}
/* Voice sections manager */
.voice-manage-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 0 12px;border-bottom:1px solid var(--line)}
.voice-manage-toolbar p{margin:0}
.voice-manage-list{display:grid}
.voice-manage-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}
.voice-manage-row:last-child{border-bottom:0}
.voice-manage-info{min-width:0}
.voice-rename-btn{display:block;border:0;background:transparent;color:var(--muted);font-size:12px;padding:5px 0 0;text-align:left;min-height:0}
.voice-rename-btn:hover{color:var(--blue);text-decoration:underline}
@media(max-width:560px){.voice-manage-toolbar{align-items:flex-start}.voice-manage-row{align-items:flex-start}.voice-manage-row>.btn{flex:0 0 auto}}


/* v1.0.16 structural layout: manager dashboard + event/concert workflow */
.manager-event-hero{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:var(--shadow);margin-bottom:16px}
.manager-event-hero h2{margin:10px 0 6px;font-size:27px;line-height:1.1}.manager-event-hero p{margin:5px 0 0;color:var(--muted)}.manager-event-place{overflow-wrap:anywhere}.manager-event-actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:18px}.manager-event-actions.has-attendance{grid-template-columns:repeat(2,minmax(0,1fr))}.manager-event-actions .btn{width:100%;min-width:0;min-height:48px;height:48px;padding-left:8px;padding-right:8px;white-space:nowrap;line-height:1.15}.manager-event-actions .btn.ghost{background:var(--white);border:1px solid #bfcbdc;color:var(--ink)}.manager-event-actions.has-attendance .btn.primary{background:var(--manager-event-primary);color:var(--on-brand)}
.manager-stats{grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 22px}.manager-stats .stat strong{margin:0 0 6px}.manager-quick{margin-bottom:24px}.manager-last-event{margin-top:8px}
.concert-form-section{border:1px solid var(--line);border-radius:14px;padding:14px;margin:12px 0}.concert-form-section h3{margin:0 0 4px}
.concert-program,.concert-facts{margin-top:14px;box-shadow:none}.program-list+.program-list{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.program-list ol{margin:10px 0 0;padding-left:24px}.program-list li{display:flex;justify-content:space-between;gap:12px;padding:4px 0}.program-list-meta{margin:10px 0 0}
.concert-facts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}.concert-facts-grid div{display:grid;gap:3px}.concert-facts-grid span{font-size:12px;color:var(--muted)}
.event-summary h2{margin:8px 0 4px}.event-summary p{margin:5px 0}.event-attendance-link{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--info-border);background:var(--info-surface);color:var(--blue);border-radius:14px;padding:16px;margin:14px 0;text-align:left}.event-attendance-link span{color:var(--muted);font-size:12px}
.event-attendance-section{margin-top:18px}.attendance-unmarked{text-align:right;color:var(--muted);font-size:13px}.bad-text{color:var(--bad)}
.attendance-card{border:1px solid var(--line);border-radius:14px;padding:14px;margin:10px 0;background:var(--white);min-width:0}.attendance-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;min-width:0}.attendance-card-head>div{min-width:0}.attendance-card-head strong,.attendance-card-head .muted{overflow-wrap:anywhere;word-break:break-word}.attendance-choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px;min-width:0}.attendance-choices .btn{min-width:0;width:100%;background:var(--white);border:1px solid var(--line);white-space:normal;overflow-wrap:anywhere;line-height:1.15}.attendance-choices .attendance-choice.active{background:var(--selection-surface);border-color:var(--selection-border);color:var(--selection-text)}.attendance-choices .attendance-choice-present.active{background:#e9f7ef;border-color:#9ecdb1;color:#247a4a}.attendance-choices .attendance-choice-absent.active{background:#fdeff1;border-color:#e5a9ae;color:#a93a43}.attendance-legacy-excused{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:9px;color:var(--blue2);font-size:12px;font-weight:750}.attendance-legacy-excused[hidden]{display:none}.attendance-legacy-clear{flex:0 0 30px;width:30px;height:30px;border:0;border-radius:8px;background:#eef2f7;color:#65758b;font:inherit;font-size:18px;line-height:1;cursor:pointer}.attendance-note-row{margin-top:12px;min-width:0}.attendance-note-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;margin:0 0 6px}.attendance-note-title{font-weight:750;color:var(--text)}.attendance-note-delete{display:block;margin:7px 0 0 auto;border:0;background:transparent;color:var(--bad);font:inherit;font-weight:750;line-height:1.2;min-height:32px;padding:5px 0 5px 10px;cursor:pointer;white-space:nowrap}.attendance-note-delete[hidden]{display:none}.attendance-note{box-sizing:border-box;width:100%;min-width:0;min-height:46px;height:auto;margin:0;resize:none;overflow-y:hidden;overflow-x:hidden;overflow-wrap:anywhere;word-break:break-word}.event-comment{margin-top:18px}
@media(max-width:760px),(max-height:500px) and (max-width:1000px) and (pointer:coarse){.manager-stats{grid-template-columns:repeat(3,1fr)}.manager-stats .stat{padding:12px}.manager-stats .stat strong{font-size:25px}.concert-facts-grid{grid-template-columns:1fr}.event-attendance-link{align-items:flex-start;flex-direction:column}.attendance-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.attendance-choices .btn{min-height:50px;padding:8px 4px;font-size:clamp(10px,3.05vw,13px)}.modal-actions{flex-direction:column}.modal-actions .btn{width:100%}}
@media(max-width:390px){.manager-stats{grid-template-columns:repeat(3,1fr)}.manager-stats .stat{padding:10px}.manager-stats .stat span{font-size:11px}.manager-stats .stat strong{font-size:22px}.attendance-choices{gap:7px}.attendance-choices .btn{padding:7px 5px;font-size:clamp(10px,3.15vw,12px)}}

.program-list-compact summary{display:flex;justify-content:space-between;gap:10px;align-items:center;cursor:pointer;list-style-position:inside;padding:6px 0}.program-list-compact summary .muted{text-align:right;font-size:12px}.program-list-compact[open] summary{margin-bottom:8px}

/* Tariff UX mirrors server-side feature enforcement; backend checks remain authoritative. */
html[data-plan="free"] [data-xls],html[data-plan="free"] [data-pdf],html[data-plan="free"] [data-go="payment"]{display:none!important}

/* v1.1.8 chorister profile: read-only profile card, scoped to the chorister modal. */
.chorister-profile-modal{width:min(100%,820px)}.chorister-profile-modal .modal-head{min-width:0;gap:10px}.chorister-profile-modal .modal-head h2{min-width:0;overflow-wrap:anywhere}.chorister-profile-modal .modal-head .icon-btn{flex:0 0 40px}
.chorister-profile-modal .modal-body{background:var(--bg);padding:18px}
.chorister-profile{display:grid;gap:14px}
.chorister-profile-head{display:grid;grid-template-columns:72px minmax(0,1fr) 50px;gap:14px;align-items:center;padding:2px 2px 4px}
.chorister-profile-avatar{width:72px;height:72px;border-radius:20px;display:grid;place-items:center;background:var(--avatar-surface);color:var(--avatar-text);font-size:22px;font-weight:850;letter-spacing:.02em}
.chorister-profile-identity{min-width:0}.chorister-profile-name{font-size:22px;line-height:1.2;font-weight:500;overflow-wrap:anywhere}.chorister-profile-subtitle{margin-top:7px;color:var(--muted);font-size:15px;min-width:0;overflow-wrap:anywhere;word-break:break-word}
.chorister-profile-edit{width:50px;height:50px;border:0;border-radius:15px;background:var(--blue);color:var(--on-brand);font-size:22px;cursor:pointer;display:grid;place-items:center}.chorister-profile-edit:hover{filter:brightness(.96)}
.chorister-profile-finance{display:grid;grid-template-columns:1fr 1fr;background:var(--blue);color:var(--on-brand);border-radius:17px;overflow:hidden}
.chorister-profile-finance>div{padding:17px 18px;display:grid;gap:5px;min-width:0}.chorister-profile-finance>div+div{border-left:1px solid rgba(255,255,255,.28)}.chorister-profile-finance span,.chorister-profile-finance strong,.chorister-profile-finance small{min-width:0;overflow-wrap:anywhere}.chorister-profile-finance span{font-size:11px;font-weight:800}.chorister-profile-finance strong{font-size:26px;line-height:1.1}.chorister-profile-finance small{font-size:11px;font-weight:700;opacity:.9}
.chorister-profile-notes{width:min(100%,425px);min-height:54px;border:1px solid var(--line);border-radius:15px;background:var(--white);display:flex;align-items:center;justify-content:center;gap:10px;padding:10px 16px;color:var(--text);cursor:pointer;font:inherit}.chorister-profile-notes>span:first-child{font-size:20px}.chorister-profile-count{display:inline-grid;place-items:center;min-width:25px;height:25px;padding:0 7px;border-radius:99px;background:var(--profile-count-surface);color:var(--blue);font-size:12px;font-weight:850}
.chorister-profile-section{background:var(--white);border:1px solid var(--line);border-radius:15px;padding:15px 16px}.chorister-profile-section h3{font-size:17px;font-weight:500;margin:0 0 12px}.chorister-profile-account-row{display:flex;justify-content:space-between;gap:14px;align-items:center;min-width:0}.chorister-profile-account-row>div{min-width:0}.chorister-profile-account-row h3{margin:0 0 5px}.chorister-profile-account-row p,.chorister-profile-account-row strong{margin:0;min-width:0;overflow-wrap:anywhere;word-break:break-word}.chorister-profile-account-row .btn{flex-shrink:0}
.chorister-profile-sizes,.chorister-profile-stats{display:grid}.chorister-profile-sizes{grid-template-columns:repeat(3,1fr);margin:0 -16px -15px}.chorister-profile-sizes>div{min-width:0;text-align:center;padding:14px 8px}.chorister-profile-sizes>div+div{border-left:1px solid var(--line)}.chorister-profile-sizes span{display:block;color:var(--muted);font-size:10px}.chorister-profile-sizes strong{display:block;margin-top:5px;font-size:14px;overflow-wrap:anywhere}
.chorister-profile-stats{grid-template-columns:repeat(4,1fr);background:var(--white);border:1px solid var(--line);border-radius:15px;overflow:hidden}.chorister-profile-stats>div{text-align:center;padding:13px 7px;min-width:0}.chorister-profile-stats>div+div{border-left:1px solid var(--line)}.chorister-profile-stats strong{display:block;font-size:21px}.chorister-profile-stats span{display:block;margin-top:4px;color:var(--muted);font-size:9px;overflow-wrap:anywhere}
.chorister-profile-rows{display:grid}.chorister-profile-role-row,.chorister-profile-history-row,.chorister-profile-payment-row{border-top:1px solid var(--line);padding:11px 2px;gap:12px;align-items:center}.chorister-profile-role-row:first-child,.chorister-profile-history-row:first-child,.chorister-profile-payment-row:first-child{border-top:0}.chorister-profile-role-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,40%)}.chorister-profile-role-row>*{min-width:0;overflow-wrap:anywhere}.chorister-profile-role-row strong{text-align:right}.chorister-profile-history-row{display:grid;grid-template-columns:120px minmax(0,1fr) auto}.chorister-profile-history-row>*{min-width:0;overflow-wrap:anywhere}.chorister-profile-history-title{overflow-wrap:anywhere}.chorister-profile-payment-row{display:grid;grid-template-columns:110px 100px 85px minmax(90px,1fr) auto}.chorister-profile-payment-row>*{min-width:0;overflow-wrap:anywhere}.chorister-profile-payment-row .tag{justify-self:end;max-width:100%;white-space:normal;text-align:center}
.chorister-profile-empty{margin:0;color:var(--muted);font-size:14px}.chorister-profile-total{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--line);margin-top:8px;padding:14px 2px 0}.chorister-profile-total strong{font-size:18px}
.chorister-profile-delete{border-radius:15px;padding:15px 16px}.chorister-profile-delete h3{margin:0;color:var(--bad)}.chorister-profile-delete p{margin:8px 0 14px;color:#a33a45;font-size:13px}.chorister-profile-delete .btn{border-color:#ef6170}
@media(max-width:760px),(max-height:500px) and (max-width:1000px) and (pointer:coarse){.chorister-profile-modal .modal-body{padding:14px}.chorister-profile{gap:12px}.chorister-profile-head{grid-template-columns:60px minmax(0,1fr) 48px;gap:12px}.chorister-profile-avatar{width:60px;height:60px;border-radius:17px}.chorister-profile-name{font-size:20px}.chorister-profile-finance strong{font-size:22px}.chorister-profile-payment-row{grid-template-columns:92px minmax(80px,1fr) auto}.chorister-profile-payment-row>span:nth-child(3),.chorister-profile-payment-row>span:nth-child(4){grid-row:2;font-size:11px;color:var(--muted)}.chorister-profile-payment-row>span:nth-child(4){grid-column:2}.chorister-profile-payment-row .tag{grid-column:3;grid-row:1/3}.chorister-profile-history-row{grid-template-columns:95px minmax(0,1fr) auto}}
@media(max-width:390px){.chorister-profile-modal .modal-body{padding:12px}.chorister-profile-head{grid-template-columns:54px minmax(0,1fr) 44px}.chorister-profile-avatar{width:54px;height:54px;border-radius:15px;font-size:19px}.chorister-profile-edit{width:44px;height:44px;border-radius:13px}.chorister-profile-finance>div{padding:14px 12px}.chorister-profile-finance strong{font-size:19px}.chorister-profile-finance small{font-size:10px}.chorister-profile-notes{width:100%}.chorister-profile-account-row{align-items:flex-start}.chorister-profile-sizes strong{font-size:13px}.chorister-profile-stats strong{font-size:18px}.chorister-profile-stats span{font-size:8px}.chorister-profile-history-row{grid-template-columns:82px minmax(0,1fr);gap:6px 10px}.chorister-profile-history-row strong{grid-column:2}.chorister-profile-role-row{grid-template-columns:minmax(0,1fr) minmax(0,42%)}.chorister-profile-payment-row{grid-template-columns:minmax(0,1fr) auto;gap:6px 8px}.chorister-profile-payment-row>span:nth-child(1){grid-column:1;grid-row:1}.chorister-profile-payment-row>strong:nth-child(2){grid-column:2;grid-row:1;text-align:right}.chorister-profile-payment-row>span:nth-child(3){grid-column:1;grid-row:2;font-size:11px;color:var(--muted)}.chorister-profile-payment-row>span:nth-child(4){grid-column:1/-1;grid-row:3;font-size:11px;color:var(--muted)}.chorister-profile-payment-row .tag{grid-column:2;grid-row:2;justify-self:end}}@media(max-width:350px){.chorister-profile-account-row{flex-direction:column;align-items:stretch}.chorister-profile-account-row .btn{align-self:flex-end}.chorister-profile-finance>div{padding:12px 9px}.chorister-profile-stats>div{padding:11px 4px}.chorister-profile-sizes>div{padding:12px 5px}}


/* v1.1.9 NAV PATCH 1 — native-like mobile screen stack. */
html.cm-mobile-nav-open,body.cm-mobile-nav-open{overflow:hidden;overscroll-behavior:none}
body.cm-mobile-nav-open .bottom-nav{visibility:hidden;pointer-events:none}
.mobile-screen-stack{position:fixed;z-index:80;inset:0;overflow:hidden;background:var(--bg);isolation:isolate}
.mobile-screen{position:absolute;z-index:2;inset:0;width:100%;height:100vh;height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:var(--bg);transform:translateX(0);transition:transform 250ms cubic-bezier(.22,.75,.18,1),filter 250ms ease;will-change:transform;overflow:hidden}
.mobile-screen.is-entering{transform:translateX(100%)}
.mobile-screen.is-under{z-index:1;transform:translateX(-24%);filter:brightness(.96)}
.mobile-screen.is-leaving{z-index:4;transform:translateX(100%);filter:none;pointer-events:none}
.mobile-screen-header{min-height:calc(60px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 10px 0;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;background:rgba(255,255,255,.98);border-bottom:1px solid var(--line);box-shadow:0 2px 10px rgba(27,58,105,.04)}
.mobile-screen-back,.mobile-screen-icon-action{width:44px;height:44px;border:0;border-radius:12px;background:transparent;color:var(--blue);font:inherit;font-weight:800;display:grid;place-items:center;padding:0}
.mobile-screen-back{font-size:35px;line-height:1;padding-bottom:5px}
.mobile-screen-icon-action{font-size:27px;line-height:1}
.mobile-screen-back:active,.mobile-screen-icon-action:active{background:var(--pale)}
.mobile-screen-title{min-width:0;margin:0;padding:0 8px;text-align:center;font-size:18px;line-height:1.2;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;outline:none}
.mobile-screen-header-action{width:44px;min-width:44px;display:grid;place-items:center}
.mobile-screen-content{min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;padding:16px 14px calc(24px + env(safe-area-inset-bottom));background:var(--bg)}
.mobile-screen-footer{position:relative;z-index:2;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.98);border-top:1px solid var(--line);box-shadow:0 -4px 16px rgba(27,58,105,.06)}
.mobile-screen-footer .btn.block{margin:0}
.mobile-screen .form-grid{margin:0}
.mobile-screen .form-grid label:first-of-type,.mobile-screen form>label:first-of-type{margin-top:0}
.mobile-screen.chorister-profile-screen .mobile-screen-content{background:var(--bg);padding:14px 14px calc(24px + env(safe-area-inset-bottom))}
.mobile-screen.chorister-form-screen .mobile-screen-content,.mobile-screen.chorister-note-form-screen .mobile-screen-content,.mobile-screen[data-cm-screen="chorister-account"] .mobile-screen-content{background:var(--white)}
.mobile-notes-list{gap:10px}.mobile-note-copy{min-width:0}.mobile-note-copy p{overflow-wrap:anywhere}
@media(max-width:390px){.mobile-screen-content{padding-left:12px;padding-right:12px}.mobile-screen-header{padding-left:6px;padding-right:6px}.mobile-screen-title{font-size:17px}.mobile-notes-list .card-row{display:grid}.mobile-notes-list .actions{margin-top:8px}}
@media(max-height:500px) and (max-width:1000px) and (pointer:coarse){.mobile-screen-header{min-height:calc(52px + env(safe-area-inset-top))}.mobile-screen-content{padding-top:12px}}
@media(max-width:760px),(max-height:500px) and (max-width:1000px) and (pointer:coarse){input,select,textarea{font-size:16px}}
@media(prefers-reduced-motion:reduce){.mobile-screen{transition:none!important}}

/* v1.1.10 NAV PATCH 2 — voice-section mobile screens. */
.voice-manage-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto}
.mobile-screen[data-cm-screen="voices"] .mobile-screen-content{background:var(--white);padding-top:4px}
.mobile-voice-manage-row{min-height:68px;padding:14px 2px;align-items:center}
.mobile-voice-manage-row .voice-manage-info{padding-right:8px}
.mobile-voice-manage-row .voice-member-count{margin-top:5px;font-size:12px}
.mobile-voice-manage-row .btn{min-height:40px}
.voice-mobile-form{margin:0;max-width:680px}
.voice-mobile-form .notice{margin-top:0}
.mobile-screen[data-cm-screen="voice-add"] .mobile-screen-content,
.mobile-screen[data-cm-screen="voice-rename"] .mobile-screen-content,
.mobile-screen[data-cm-screen="voice-reassign-delete"] .mobile-screen-content{background:var(--white)}
@media(max-width:390px){.mobile-voice-manage-row{align-items:flex-start}.mobile-voice-manage-row .voice-manage-actions{display:grid;grid-template-columns:1fr;min-width:104px}.mobile-voice-manage-row .btn{width:100%}}

/* v1.1.111 LANGUAGE SWITCH — compact authenticated popover. */
.global-language-switch{position:relative;flex:0 0 auto;min-width:0;overflow:visible}
.global-language-trigger{display:inline-flex;align-items:center;justify-content:center;gap:4px;width:auto;min-width:56px;max-width:none;min-height:36px;padding:0 8px;border:1px solid var(--line);border-radius:10px;background:var(--white);color:var(--ink);font-size:13px;font-weight:750;line-height:1;white-space:nowrap;box-shadow:none}
.global-language-trigger:hover,.global-language-trigger[aria-expanded="true"]{border-color:var(--blue);color:var(--blue);filter:none}
.global-language-trigger:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 16%,transparent);outline-offset:2px}
.global-language-caret{font-size:10px;line-height:1;color:var(--muted);transform:translateY(-1px)}
.global-language-menu{position:absolute;z-index:90;top:calc(100% + 7px);right:0;min-width:72px;padding:5px;border:1px solid var(--line);border-radius:11px;background:var(--white);box-shadow:var(--shadow)}
.global-language-menu[hidden]{display:none}
.global-language-option{display:block;width:100%;min-height:34px;padding:6px 9px;border:0;border-radius:8px;background:transparent;color:var(--ink);font-size:13px;font-weight:650;text-align:left;white-space:nowrap}
.global-language-option:hover,.global-language-option:focus-visible{background:var(--pale);color:var(--blue);outline:0}
.global-language-option.active,.global-language-option[aria-checked="true"]{background:var(--pale);color:var(--blue);font-weight:800}
.global-language-option:disabled,.global-language-trigger:disabled{opacity:.6;cursor:default}

/* v1.1.168 HEADER CONTROLS — one stable right-side group: status then language. */
.header-user{min-width:0}
.header-user-identity{flex:1 1 auto;min-width:0;overflow:hidden}
.header-controls{position:relative;display:flex;align-items:center;justify-content:flex-end;gap:2px;flex:0 0 auto;min-width:0;margin-left:auto;white-space:nowrap}
.header-controls>.sync-status-host{position:static;flex:0 0 30px;width:30px;min-width:30px;overflow:visible}
.header-controls .sync-status-button{width:30px;height:36px}
.header-controls>.global-language-switch{flex:0 0 auto;width:auto;min-width:0;overflow:visible}
.header-controls #global-language{width:auto!important;min-width:50px;max-width:none;padding-left:7px;padding-right:7px}


/* v1.1.11 NAV2 COMPLETION FIX — root mobile header width hardening. */
@media(max-width:760px),(max-height:500px) and (max-width:1000px) and (pointer:coarse){
.app-header{min-width:0;gap:8px}
.app-header .brand{flex:0 0 42px;min-width:42px}
.header-user{flex:1 1 auto;min-width:0;gap:6px;justify-content:flex-end}
.header-controls{gap:1px;flex:0 0 auto;margin-left:auto}
.header-controls>.sync-status-host{flex-basis:28px;width:28px;min-width:28px}
.header-controls .sync-status-button{width:28px;height:36px}
.header-controls #global-language{min-width:48px;padding-left:6px;padding-right:6px}
.header-user-identity{flex:1 1 auto;min-width:0;overflow:hidden}
.header-user strong,.header-user small{display:block;max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.header-user .btn{flex:0 0 auto}
.header-user #logout{padding-left:10px;padding-right:10px}
#voice-counts .tag,#group-counts .tag{max-width:100%;white-space:normal;overflow-wrap:anywhere}
#people-list .list-item,#people-list .card-row,#people-list .card-row>div{min-width:0}
#people-list .list-title,#people-list .meta,#people-list .meta>span{min-width:0;max-width:100%;overflow-wrap:anywhere}
.page-head,.page-head>div{min-width:0;max-width:100%}
.page-head h1,.page-head p{max-width:100%;overflow-wrap:anywhere}
}
.voice-manage-info .list-title{overflow-wrap:anywhere}
@media(max-width:350px){
.app-header{padding-left:10px;padding-right:10px;gap:6px}
.app-header .brand{flex-basis:38px;min-width:38px}
.app-header .brand img{width:38px;height:38px}
.header-user{gap:4px}
.header-controls{gap:0}
.header-controls>.sync-status-host{flex-basis:26px;width:26px;min-width:26px}
.header-controls .sync-status-button{width:26px}
.header-controls #global-language{min-width:46px;padding-left:5px;padding-right:5px}
.header-user #logout{padding-left:8px;padding-right:8px}
}

/* NAV3 — mobile schedule / event screens */
.mobile-screen[data-cm-screen="event"] .mobile-screen-content,
.mobile-screen[data-cm-screen="event-rsvp"] .mobile-screen-content{background:var(--bg)}
.mobile-screen[data-cm-screen="event-edit"] .mobile-screen-content,
.mobile-screen[data-cm-screen="event-new"] .mobile-screen-content{background:var(--white)}
.mobile-screen[data-cm-screen="event"] .event-summary h2,
.mobile-screen[data-cm-screen="event"] .event-summary p,
.mobile-screen[data-cm-screen="event"] .concert-program,
.mobile-screen[data-cm-screen="event"] .concert-facts,
.mobile-screen[data-cm-screen="event"] .program-list,
.mobile-screen[data-cm-screen="event-rsvp"] .event-rsvp-name{min-width:0;overflow-wrap:anywhere;word-break:break-word}
.mobile-screen[data-cm-screen="event"] .concert-program ol{padding-left:22px}
.mobile-screen[data-cm-screen="event"] .concert-program li{min-width:0}
.mobile-screen[data-cm-screen="event"] .concert-program li>span:first-child{overflow-wrap:anywhere;word-break:break-word}
.event-mobile-links{display:grid;gap:10px;margin:14px 0}
.event-mobile-links .event-attendance-link{margin:0}
.mobile-event-actions{display:grid;grid-template-columns:1fr;gap:8px}
.mobile-event-actions .btn{width:100%;margin:0}.mobile-event-actions .event-offline-action{width:100%}
.event-rsvp-group{margin:0 0 12px}
.event-rsvp-group>summary{cursor:pointer;padding:10px 2px}
.event-rsvp-group .list-item{min-width:0}
.event-rsvp-group .event-rsvp-name{flex:1}
.mobile-screen[data-cm-screen="event-edit"] .concert-form-section,
.mobile-screen[data-cm-screen="event-new"] .concert-form-section{min-width:0}
.mobile-screen[data-cm-screen="event-edit"] input,
.mobile-screen[data-cm-screen="event-edit"] select,
.mobile-screen[data-cm-screen="event-edit"] textarea,
.mobile-screen[data-cm-screen="event-new"] input,
.mobile-screen[data-cm-screen="event-new"] select,
.mobile-screen[data-cm-screen="event-new"] textarea{max-width:100%}
@media(max-width:390px){
  .mobile-screen[data-cm-screen="event"] .attendance-card{padding:12px}
  .mobile-screen[data-cm-screen="event"] .attendance-card-head{gap:6px}
  .mobile-screen[data-cm-screen="event"] .event-attendance-link{padding:13px}
}
@media(max-width:760px),(max-height:500px) and (max-width:1000px) and (pointer:coarse){
  #event-list{min-width:0}
  #event-list .list-item,#event-list .card-row,#event-list .card-row>div{min-width:0}
  #event-list .list-title,#event-list .meta,#event-list .meta>span{min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word}
  #event-list [data-rsvp-summary]{min-width:0;max-width:100%}
}

/* v1.1.16 NAV PATCH 4_u1 — mobile attendance report and detail screens. */
.attendance-mobile-filters{margin:0 0 14px;background:var(--white);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.attendance-mobile-filters>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 15px;cursor:pointer;font-weight:800;color:var(--blue2)}
.attendance-mobile-filters>summary::-webkit-details-marker{display:none}
.attendance-mobile-filters>summary::after{content:'⌄';font-size:18px;line-height:1;transition:transform .18s ease}
.attendance-mobile-filters[open]>summary::after{transform:rotate(180deg)}
.attendance-mobile-filters>summary span{min-width:0}
.attendance-mobile-filters>summary small{margin-left:auto;color:var(--muted);font-weight:650;font-size:11px;white-space:nowrap}
.attendance-mobile-filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 10px;padding:0 14px 14px;border-top:1px solid var(--line)}
.attendance-mobile-filter-grid label{min-width:0;margin-top:12px}
.attendance-mobile-filter-grid #att-range,
.attendance-mobile-filter-grid #att-sort,
.attendance-mobile-filter-grid #att-type,
.attendance-mobile-filter-grid #att-voice,
.attendance-mobile-filter-grid #att-status,
.attendance-mobile-filter-grid #att-composition{max-width:100%}
.attendance-mobile-filter-grid #att-apply{grid-column:1/-1;margin-top:12px;width:100%}
.attendance-mobile-list{display:grid;gap:10px}
.attendance-report-card{display:block;width:100%;min-width:0;border:1px solid var(--line);border-radius:14px;background:var(--white);box-shadow:var(--shadow);padding:14px;text-align:left;color:var(--ink)}
.attendance-report-card:active{background:#f8fbff}
.attendance-report-card:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 16%,transparent);outline-offset:2px}
.attendance-report-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}
.attendance-report-card-head>span{min-width:0;display:grid;gap:3px}
.attendance-report-card-head strong{overflow-wrap:anywhere}
.attendance-report-card-head small{color:var(--muted);font-weight:650;overflow-wrap:anywhere}
.attendance-report-card-head>b{flex:0 0 auto;color:var(--blue);font-size:20px}
.attendance-progress{display:block;width:100%;height:7px;min-height:7px;max-height:7px;padding:0;margin:0;border:0;border-radius:99px;background:var(--progress-track);overflow:hidden;box-sizing:border-box;flex:none;appearance:none;-webkit-appearance:none;color:var(--blue)}
.attendance-progress::-webkit-progress-bar{background:var(--progress-track);border-radius:99px}
.attendance-progress::-webkit-progress-value{background:var(--blue);border-radius:99px}
.attendance-progress::-moz-progress-bar{background:var(--blue);border-radius:99px}
.attendance-report-card>.attendance-progress{margin-top:11px}
.attendance-report-card-stats{position:static;display:grid;width:100%;grid-template-columns:1fr 1fr;gap:7px 10px;margin-top:12px;color:var(--muted);font-size:12px;font-weight:650}
.attendance-report-card-stats span{min-width:0;display:flex;justify-content:space-between;gap:8px}
.attendance-report-card-stats strong{color:var(--ink)}
.attendance-mobile-voice-section{display:block;margin-top:24px}
.attendance-mobile-section-title{display:block;margin:0 0 10px;font-size:18px;line-height:1.25}
.attendance-mobile-voices{display:grid;gap:9px}
.attendance-voice-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:14px}
.attendance-voice-card>div{min-width:0;display:grid;gap:2px}
.attendance-voice-card>div strong{overflow-wrap:anywhere}
.attendance-voice-card>div small{color:var(--muted);font-weight:650}
.attendance-voice-card>b{color:var(--blue);font-size:19px}
.attendance-voice-card>.attendance-progress{grid-column:1/-1;margin-top:7px}
.attendance-voice-card p{grid-column:1/-1;margin:5px 0 0;color:var(--muted);font-size:12px;overflow-wrap:anywhere}
.mobile-screen[data-cm-screen="attendance-chorister"] .mobile-screen-content{background:var(--bg);padding-top:14px}
.attendance-detail-summary{background:var(--white);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:16px}
.attendance-detail-summary>div:first-child{display:flex;align-items:baseline;gap:9px}
.attendance-detail-summary>div:first-child strong{font-size:30px;color:var(--blue)}
.attendance-detail-summary>div:first-child span{color:var(--muted);font-size:12px;font-weight:700}
.attendance-detail-summary>p{margin:4px 0 14px;color:var(--muted);font-weight:700}
.attendance-detail-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.attendance-detail-stats span{display:flex;justify-content:space-between;gap:8px;padding:9px 10px;border-radius:10px;background:var(--attendance-stats-surface);color:var(--muted);font-size:12px;font-weight:700}
.attendance-detail-stats strong{color:var(--ink)}
.attendance-detail-heading{margin:20px 2px 10px;font-size:18px}
.attendance-detail-list{display:grid;gap:9px}
.attendance-detail-event{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;background:var(--white);border:1px solid var(--line);border-radius:13px;padding:12px 13px}
.attendance-detail-event>div{min-width:0;display:grid;gap:4px}
.attendance-detail-event>div strong{font-size:13px}
.attendance-detail-event>div span{color:var(--muted);font-size:13px;overflow-wrap:anywhere}
.attendance-detail-event>div small{color:var(--muted);font-size:11px;font-weight:650;overflow-wrap:anywhere}
.attendance-detail-event>.tag{flex:0 0 auto}
@media(max-width:390px){
  .attendance-mobile-filters>summary{padding-left:12px;padding-right:12px}
  .attendance-mobile-filters>summary small{font-size:10px}
  .attendance-mobile-filter-grid{grid-template-columns:1fr;padding-left:12px;padding-right:12px}
  .attendance-mobile-filter-grid #att-apply{grid-column:auto}
  .attendance-report-card{padding:12px}
  .attendance-report-card-stats{grid-template-columns:1fr}
  .attendance-detail-stats{grid-template-columns:1fr}
}
@media(max-height:500px) and (max-width:1000px) and (pointer:coarse){
  .attendance-mobile-filter-grid{grid-template-columns:1fr 1fr}
  .attendance-report-card-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
  .attendance-report-card-stats span{display:grid;gap:2px}
  .attendance-detail-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
  .attendance-detail-stats span{display:grid;gap:2px}
}
@media(prefers-reduced-motion:reduce){.attendance-mobile-filters>summary::after{transition:none}}
.mobile-screen[data-cm-screen="event-attendance"] .mobile-screen-content{background:var(--bg);padding-top:14px}
.mobile-screen[data-cm-screen="event-attendance"] .event-attendance-section{margin-top:10px}.mobile-screen[data-cm-screen="event-attendance"] .mobile-screen-back{color:var(--attendance-accent)}.mobile-screen[data-cm-screen="event-attendance"] .mobile-screen-footer .btn.primary{background:var(--attendance-accent)}.mobile-screen[data-cm-screen="event-attendance"] .attendance-choices .btn{min-height:44px}
.mobile-screen[data-cm-screen="event-attendance"] .attendance-card{min-width:0;margin:0 0 9px;padding:13px;box-shadow:none}
.attendance-event-context{display:block;margin:0;padding:2px 1px 13px;border-bottom:1px solid var(--line)}
.attendance-event-context>strong{display:block;font-size:20px;line-height:1.15;overflow-wrap:anywhere}
.attendance-event-context>span{display:block;margin-top:5px;color:var(--muted);font-size:13px;font-weight:650}
.attendance-rsvp-summary{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:13px}
.attendance-rsvp-summary span{display:inline-flex;align-items:center;min-height:25px;padding:3px 8px;border-radius:99px;background:#edf1f6;color:#5e6d83;font-size:11px;font-weight:800;white-space:nowrap}
.attendance-rsvp-summary .yes{background:#eaf7ef;color:#24764a}.attendance-rsvp-summary .no{background:#fdeff1;color:#b1434c}
.attendance-compact-progress{margin-top:12px}.attendance-progress-value{margin-bottom:5px;text-align:right;color:#66758a;font-size:12px;font-weight:800}.attendance-progress-line{height:4px;overflow:hidden;border-radius:99px;background:#e1e7f0}.attendance-progress-line>span{display:block;height:100%;border-radius:inherit;background:var(--attendance-accent);transition:width .16s ease}
.attendance-all-present{width:100%;min-height:43px;margin-top:10px;border:1px solid var(--emphasis-border)!important;background:var(--selection-surface)!important;color:var(--selection-text)!important}
.attendance-search{height:47px;display:flex;align-items:center;gap:8px;margin-top:12px;padding:0 10px;border:1px solid #c8d4e3;border-radius:12px;background:var(--white)}.attendance-search-icon{display:grid;place-items:center;flex:0 0 22px;color:#74849a}.attendance-search-icon svg{width:19px;height:19px;display:block}.attendance-search input{flex:1;min-width:0;min-height:0;height:45px;padding:0;border:0;outline:0;background:transparent}.attendance-search input:focus{outline:0;border:0}.attendance-search button{width:28px;height:28px;flex:0 0 28px;border:0;border-radius:50%;background:#eef2f6;color:#738196;font-size:17px;line-height:1}.attendance-search button[hidden]{visibility:hidden}
.attendance-person-rsvp{flex:0 0 auto;display:inline-flex;align-items:center;min-height:23px;padding:3px 8px;border-radius:99px;background:#eaf7ef;color:#24764a;font-size:10px;font-weight:850}.attendance-person-rsvp.no{background:#fdeff1;color:#b1434c}
.attendance-note-collapsible{margin-top:9px}.attendance-note-collapsible>summary{position:relative;list-style:none;cursor:pointer;color:#697991;font-size:12px;font-weight:800;padding-right:24px}.attendance-note-collapsible>summary::-webkit-details-marker{display:none}.attendance-note-collapsible>summary::after{content:'›';position:absolute;right:2px;top:0;font-size:18px;line-height:18px;color:#8491a3;transition:transform .15s ease}.attendance-note-collapsible[open]>summary::after{transform:rotate(90deg)}.attendance-note-summary{display:grid;gap:4px}.attendance-note-summary small{min-width:0;color:#7c8a9d;font-size:11px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attendance-note-collapsible[open] .attendance-note-summary small{display:none}.attendance-note-editor{margin-top:8px}.attendance-note-collapsible .attendance-note-delete{margin-top:6px}
.attendance-event-comment{margin:14px 0 0;border-top:1px solid var(--line);padding-top:12px}.attendance-event-comment>summary{cursor:pointer;color:var(--blue2);font-weight:800;list-style:none}.attendance-event-comment>summary::-webkit-details-marker{display:none}.attendance-event-comment>summary::after{content:'⌄';float:right}.attendance-event-comment[open]>summary::after{transform:rotate(180deg)}.attendance-event-comment-body{margin-top:10px}.attendance-event-comment-body textarea{margin:0}.attendance-event-comment-body small{display:block;margin-top:6px}
@media(max-width:390px){
  .mobile-screen[data-cm-screen="event-attendance"] .attendance-card{padding:12px}
  .mobile-screen[data-cm-screen="event-attendance"] .attendance-card-head{gap:6px}
  .attendance-rsvp-summary{gap:5px}.attendance-rsvp-summary span{padding-left:7px;padding-right:7px;font-size:10px}
}

/* v1.1.18 NAV PATCH 5 — payments mobile navigation. */
.payment-progress{-webkit-appearance:none;appearance:none;display:block;width:100%;height:8px;margin:12px 0 0;border:0;border-radius:99px;overflow:hidden;background:var(--progress-track);accent-color:var(--blue)}
.payment-progress::-webkit-progress-bar{background:var(--progress-track);border-radius:99px}
.payment-progress::-webkit-progress-value{background:var(--blue);border-radius:99px}
.payment-progress::-moz-progress-bar{background:var(--blue);border-radius:99px}
.payment-balance-card{min-width:0}
.payment-balance-card .card-row>div{min-width:0}
.payment-balance-card strong,.payment-balance-card p,.payment-balance-card .meta span{overflow-wrap:anywhere}
.payment-history-title{margin:24px 0 12px}
.payment-mobile-history{display:grid;gap:10px}
.payment-history-card{width:100%;min-width:0;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(86px,.8fr) auto;gap:10px;align-items:center;text-align:left;border:1px solid var(--line);border-radius:14px;background:var(--white);color:var(--ink);padding:13px 14px;box-shadow:0 5px 18px rgba(27,58,105,.05)}
.payment-history-card:hover{border-color:#aebed8;filter:none}
.payment-history-card:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 16%,transparent);border-color:var(--blue)}
.payment-history-card>span{min-width:0}
.payment-history-main,.payment-history-values{display:grid;gap:4px}
.payment-history-main strong,.payment-history-values strong{min-width:0;overflow-wrap:anywhere}
.payment-history-main small,.payment-history-values small{min-width:0;color:var(--muted);font-size:12px;overflow-wrap:anywhere}
.payment-history-values{text-align:right}
.payment-history-card>.tag{justify-self:end;max-width:100%;white-space:normal;text-align:center}
.mobile-screen[data-cm-screen="payment-details"] .mobile-screen-content{background:var(--bg);padding-top:14px}
.mobile-screen[data-cm-screen="payment-new"] .mobile-screen-content,
.mobile-screen[data-cm-screen="payment-cancel"] .mobile-screen-content{background:var(--white)}
.payment-details-card{display:grid;gap:18px;min-width:0}
.payment-details-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;min-width:0}
.payment-details-hero>div{min-width:0}
.payment-details-hero small{display:block;color:var(--muted);font-size:12px;margin-bottom:4px}
.payment-details-hero h2{margin:0;min-width:0;font-size:20px;overflow-wrap:anywhere}
.payment-details-hero>strong{flex:0 0 auto;color:var(--blue);font-size:24px;line-height:1.1;overflow-wrap:anywhere}
.payment-details-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line);border-radius:12px;overflow:hidden}
.payment-details-grid>div{min-width:0;padding:12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface2)}
.payment-details-grid span{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}
.payment-details-grid strong{display:block;min-width:0;font-size:14px;overflow-wrap:anywhere}
.payment-details-grid .tag{display:inline-flex}
.payment-cancellation-info{display:grid;gap:0;border:1px solid #f0c7c4;border-radius:12px;overflow:hidden;background:#fff8f7}
.payment-cancellation-info h3{margin:0;padding:12px 14px;color:var(--bad);font-size:15px;border-bottom:1px solid #f0d8d6}
.payment-cancellation-info>div{display:grid;grid-template-columns:minmax(105px,.7fr) minmax(0,1.3fr);gap:12px;padding:11px 14px;border-bottom:1px solid #f3dfdd}
.payment-cancellation-info>div:last-child{border-bottom:0}
.payment-cancellation-info span{color:var(--muted);font-size:12px}
.payment-cancellation-info strong{min-width:0;overflow-wrap:anywhere;font-size:13px;text-align:right}
.payment-details-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.payment-details-actions .btn:only-child{grid-column:1/-1}
.payment-form,.payment-cancel-form{min-width:0}
.payment-form input,.payment-form select,.payment-cancel-form textarea{max-width:100%}
.payment-cancel-form textarea{min-height:150px;resize:vertical}
@media(max-width:760px),(max-height:500px) and (max-width:1000px) and (pointer:coarse){
  .payment-balance-cards{gap:10px}
  .payment-balance-card{padding:14px}
  .payment-balance-card p{margin:10px 0 0;font-size:13px}
}
@media(max-width:390px){
  .payment-history-card{grid-template-columns:minmax(0,1fr) auto;gap:7px 10px;padding:12px}
  .payment-history-values{grid-column:1;grid-row:2;text-align:left;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
  .payment-history-card>.tag{grid-column:2;grid-row:1/3}
  .payment-details-grid{grid-template-columns:1fr}
  .payment-details-hero>strong{font-size:21px}
  .payment-cancellation-info>div{grid-template-columns:1fr;gap:4px}
  .payment-cancellation-info strong{text-align:left}
  .payment-details-actions{grid-template-columns:1fr}
  .payment-details-actions .btn:only-child{grid-column:auto}
}


/* v1.1.23 NAV PATCH 6 — repertoire / compositions / roles mobile navigation. */
.repertoire-mobile-list{display:grid;gap:10px}
.repertoire-mobile-card{width:100%;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;border:1px solid var(--line);border-radius:14px;background:var(--white);color:var(--ink);padding:14px;box-shadow:0 5px 18px rgba(27,58,105,.05)}
.repertoire-mobile-card:hover{border-color:#aebed8;filter:none}
.repertoire-mobile-card:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 16%,transparent);border-color:var(--blue)}
.repertoire-mobile-card-main{min-width:0;display:grid;gap:8px;flex:1}
.repertoire-mobile-card-main>strong{min-width:0;font-size:16px;line-height:1.25;overflow-wrap:anywhere;word-break:break-word}
.repertoire-mobile-card .meta{margin:0;min-width:0}
.repertoire-mobile-card .meta span{max-width:100%;overflow-wrap:anywhere}
.repertoire-mobile-comment{min-width:0;color:var(--muted);font-size:13px;line-height:1.4;overflow-wrap:anywhere;word-break:break-word}
.repertoire-role-tags{gap:6px}
.repertoire-role-tags .tag{white-space:normal;text-align:left}
.repertoire-mobile-chevron{flex:0 0 auto;color:var(--muted);font-size:30px;line-height:1;font-weight:400}
.mobile-screen[data-cm-screen="composition"] .mobile-screen-content,
.mobile-screen[data-cm-screen="composition-roles"] .mobile-screen-content{background:var(--bg);padding-top:14px}
.mobile-screen[data-cm-screen="composition-edit"] .mobile-screen-content,
.mobile-screen[data-cm-screen="composition-new"] .mobile-screen-content,
.mobile-screen[data-cm-screen="composition-role-add"] .mobile-screen-content{background:var(--white)}
.repertoire-composition-details{display:grid;gap:16px;min-width:0}
.repertoire-composition-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}
.repertoire-composition-hero h2{min-width:0;margin:0;font-size:21px;line-height:1.25;overflow-wrap:anywhere;word-break:break-word}
.repertoire-composition-hero>strong{flex:0 0 auto;color:var(--blue);font-size:20px}
.repertoire-composition-facts{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line);border-radius:12px;overflow:hidden}
.repertoire-composition-facts>div{min-width:0;padding:11px 12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface2)}
.repertoire-composition-facts>div:last-child:nth-child(odd){grid-column:1/-1}
.repertoire-composition-facts span,.repertoire-composition-comment>span{display:block;color:var(--muted);font-size:11px;font-weight:700;margin-bottom:5px}
.repertoire-composition-facts strong{display:block;min-width:0;font-size:14px;overflow-wrap:anywhere;word-break:break-word}
.repertoire-composition-comment{min-width:0;border-top:1px solid var(--line);padding-top:13px}
.repertoire-composition-comment p{margin:0;min-width:0;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}
.repertoire-composition-roles-preview{margin-top:20px}
.repertoire-composition-roles-preview h2{margin:0 0 10px;font-size:18px}
.repertoire-role-preview-list{display:grid;gap:8px}
.repertoire-role-preview-list>div{display:flex;align-items:center;gap:10px;min-width:0;background:var(--white);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.repertoire-role-preview-list .tag{flex:0 0 auto;max-width:45%;white-space:normal}
.repertoire-role-preview-list strong{min-width:0;overflow-wrap:anywhere;word-break:break-word}
.repertoire-composition-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.repertoire-composition-actions .btn{min-width:0;margin:0}
.repertoire-composition-actions .danger{grid-column:1/-1}
.repertoire-composition-form,.repertoire-role-form{min-width:0}
.repertoire-composition-form input,.repertoire-composition-form select,.repertoire-composition-form textarea,
.repertoire-role-form input,.repertoire-role-form select,.repertoire-role-form textarea{max-width:100%}
.repertoire-composition-form textarea{min-height:130px;resize:vertical}
.repertoire-mobile-roles{display:grid;gap:10px}
.repertoire-role-card{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:13px 14px;box-shadow:0 5px 18px rgba(27,58,105,.04)}
.repertoire-role-card-main{min-width:0;display:grid;gap:6px}
.repertoire-role-card-main .tag{justify-self:start;max-width:100%;white-space:normal;text-align:left}
.repertoire-role-card-main strong,.repertoire-role-card-main small,.repertoire-role-card-main p{min-width:0;overflow-wrap:anywhere;word-break:break-word}
.repertoire-role-card-main small{color:var(--muted);font-size:12px;font-weight:650}
.repertoire-role-card-main p{margin:2px 0 0;color:var(--muted);font-size:13px;line-height:1.4}
.repertoire-role-card>.btn{flex:0 0 auto}
@media(max-width:390px){
  .repertoire-mobile-card{padding:12px}
  .repertoire-composition-facts{grid-template-columns:1fr}
  .repertoire-composition-facts>div:last-child:nth-child(odd){grid-column:auto}
  .repertoire-role-preview-list>div{align-items:flex-start;flex-direction:column;gap:7px}
  .repertoire-role-preview-list .tag{max-width:100%}
  .repertoire-role-card{display:grid;padding:12px}
  .repertoire-role-card>.btn{justify-self:start}
}
@media(max-height:500px) and (max-width:1000px) and (pointer:coarse){
  .repertoire-composition-facts{grid-template-columns:repeat(3,minmax(0,1fr))}
  .repertoire-composition-facts>div:last-child:nth-child(odd){grid-column:auto}
  .repertoire-composition-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
  .repertoire-composition-actions .danger{grid-column:auto}
}

/* v1.1.24 NAV PATCH 7 — playlists mobile navigation. */
.playlist-mobile-list{display:grid;gap:10px}
.playlist-mobile-card{width:100%;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;border:1px solid var(--line);border-radius:14px;background:var(--white);color:var(--ink);padding:14px;box-shadow:0 5px 18px rgba(27,58,105,.05)}
.playlist-mobile-card:hover{border-color:#aebed8;filter:none}
.playlist-mobile-card:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 16%,transparent);border-color:var(--blue)}
.playlist-mobile-card-main{min-width:0;display:grid;gap:8px;flex:1}
.playlist-mobile-card-main>strong{min-width:0;font-size:16px;line-height:1.25;overflow-wrap:anywhere;word-break:break-word}
.playlist-mobile-card .meta{margin:0;min-width:0}
.playlist-mobile-card .meta span{max-width:100%;overflow-wrap:anywhere}
.playlist-mobile-comment{min-width:0;color:var(--muted);font-size:13px;line-height:1.4;overflow-wrap:anywhere;word-break:break-word}
.playlist-mobile-chevron{flex:0 0 auto;color:var(--muted);font-size:30px;line-height:1;font-weight:400}
.mobile-screen[data-cm-screen="playlist"] .mobile-screen-content{background:var(--bg);padding-top:14px}
.mobile-screen[data-cm-screen="playlist-edit"] .mobile-screen-content,
.mobile-screen[data-cm-screen="playlist-new"] .mobile-screen-content{background:var(--white)}
.playlist-details-card{display:grid;gap:16px;min-width:0}
.playlist-details-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}
.playlist-details-hero>div{min-width:0}
.playlist-details-hero small{display:block;color:var(--muted);font-size:11px;font-weight:700;margin-bottom:5px}
.playlist-details-hero h2{min-width:0;margin:0;font-size:21px;line-height:1.25;overflow-wrap:anywhere;word-break:break-word}
.playlist-details-hero>strong{flex:0 0 auto;color:var(--blue);font-size:21px;line-height:1.1}
.playlist-details-card>.meta{margin:0;padding-top:12px;border-top:1px solid var(--line)}
.playlist-details-card>.meta span{max-width:100%;overflow-wrap:anywhere}
.playlist-details-items{min-width:0;border-top:1px solid var(--line);padding-top:12px}
.playlist-details-items ol{margin:0;padding-left:26px;display:grid;gap:8px}
.playlist-details-items li{min-width:0;padding-left:2px}
.playlist-details-items li::marker{color:var(--muted);font-weight:700}
.playlist-details-items li>span{display:inline;min-width:0;overflow-wrap:anywhere;word-break:break-word}
.playlist-details-items li>strong{float:right;margin-left:12px;color:var(--blue);font-size:13px;white-space:nowrap}
.playlist-details-comment{min-width:0;border-top:1px solid var(--line);padding-top:12px}
.playlist-details-comment>span{display:block;color:var(--muted);font-size:11px;font-weight:700;margin-bottom:5px}
.playlist-details-comment p{margin:0;min-width:0;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}
.playlist-details-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.playlist-details-actions .btn{min-width:0;margin:0}
.playlist-details-actions .danger{grid-column:1/-1}
.playlist-mobile-form{min-width:0;margin:0}
.playlist-mobile-form input,.playlist-mobile-form select,.playlist-mobile-form textarea{max-width:100%}
.playlist-mobile-form textarea{min-height:120px;resize:vertical}
.playlist-editor-items{display:grid;gap:9px;margin-top:14px}
.playlist-editor-row{min-width:0;display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:13px;background:var(--white);padding:10px 11px}
.playlist-editor-order{display:grid;place-items:center;width:28px;height:28px;border-radius:99px;background:var(--pale);color:var(--blue);font-size:12px;font-weight:800}
.playlist-editor-copy{min-width:0;display:grid;gap:3px}
.playlist-editor-copy strong{min-width:0;font-size:14px;line-height:1.3;overflow-wrap:anywhere;word-break:break-word}
.playlist-editor-copy small{color:var(--muted);font-size:11px;font-weight:650}
.playlist-editor-actions{display:flex;gap:5px;align-items:center}
.playlist-editor-actions .btn{min-width:36px;padding-left:8px;padding-right:8px;margin:0}
.playlist-editor-actions .btn:disabled{opacity:.38;cursor:default}
@media(max-width:390px){
  .playlist-mobile-card{padding:12px}
  .playlist-details-hero{display:grid}
  .playlist-details-hero>strong{font-size:19px}
  .playlist-details-items li>strong{float:none;display:block;margin:3px 0 0}
  .playlist-editor-row{grid-template-columns:26px minmax(0,1fr);gap:8px;padding:10px}
  .playlist-editor-order{width:26px;height:26px}
  .playlist-editor-actions{grid-column:2;justify-content:flex-start;flex-wrap:wrap}
  .playlist-details-actions{grid-template-columns:1fr 1fr}
}
@media(max-width:340px){
  .playlist-details-actions{grid-template-columns:1fr}
  .playlist-details-actions .danger{grid-column:auto}
}
@media(max-height:500px) and (max-width:1000px) and (pointer:coarse){
  .playlist-details-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
  .playlist-details-actions .danger{grid-column:auto}
}

/* v1.1.25 NAV PATCH 8 — choir team mobile navigation. */
.team-mobile-list{display:grid;gap:10px}
.team-mobile-card{width:100%;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;border:1px solid var(--line);border-radius:14px;background:var(--white);color:var(--ink);padding:14px;box-shadow:0 5px 18px rgba(27,58,105,.05)}
.team-mobile-card:hover{border-color:#aebed8;filter:none}
.team-mobile-card:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 16%,transparent);border-color:var(--blue)}
.team-mobile-card-main{min-width:0;display:grid;gap:6px;flex:1}
.team-mobile-card-main>strong{min-width:0;font-size:16px;line-height:1.25;overflow-wrap:anywhere;word-break:break-word}
.team-mobile-position{min-width:0;color:var(--muted);font-size:13px;line-height:1.35;overflow-wrap:anywhere;word-break:break-word}
.team-mobile-meta{min-width:0;display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:12px}
.team-mobile-meta>span:first-child{min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word}
.team-mobile-card-main>small{min-width:0;color:var(--muted);font-size:11px;line-height:1.4;overflow-wrap:anywhere;word-break:break-word}
.team-mobile-chevron{flex:0 0 auto;color:var(--muted);font-size:30px;line-height:1;font-weight:400}
.mobile-screen[data-cm-screen="team-member"] .mobile-screen-content{background:var(--bg);padding-top:14px}
.mobile-screen[data-cm-screen="team-member-edit"] .mobile-screen-content,
.mobile-screen[data-cm-screen="team-member-new"] .mobile-screen-content,
.mobile-screen[data-cm-screen="team-member-access"] .mobile-screen-content{background:var(--white)}
.team-member-details-card{display:grid;gap:16px;min-width:0}
.team-member-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}
.team-member-hero>div{min-width:0}
.team-member-hero small{display:block;color:var(--muted);font-size:11px;font-weight:700;margin-bottom:5px}
.team-member-hero h2{min-width:0;margin:0;font-size:21px;line-height:1.25;overflow-wrap:anywhere;word-break:break-word}
.team-member-hero p{min-width:0;margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.4;overflow-wrap:anywhere;word-break:break-word}
.team-member-hero>.tag{flex:0 0 auto}
.team-member-details-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line);border-radius:12px;overflow:hidden}
.team-member-details-grid>div{min-width:0;padding:12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface2)}
.team-member-details-grid span,.team-member-permissions>span{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}
.team-member-details-grid strong{display:block;min-width:0;font-size:14px;line-height:1.35;overflow-wrap:anywhere;word-break:break-word}
.team-member-permissions{min-width:0;border-top:1px solid var(--line);padding-top:12px}
.team-member-permissions .meta{margin:0;min-width:0;display:flex;gap:7px;flex-wrap:wrap}
.team-member-permissions .tag{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.team-member-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.team-member-actions .btn{min-width:0;margin:0}
.team-member-actions .danger{grid-column:1/-1}
.team-mobile-form{min-width:0;margin:0}
.team-mobile-form input,.team-mobile-form select{max-width:100%}
.team-mobile-form .check-row{min-width:0;overflow-wrap:anywhere}
@media(max-width:390px){
  .team-mobile-card{padding:12px}
  .team-member-hero{display:grid}
  .team-member-details-grid{grid-template-columns:1fr}
  .team-member-actions{grid-template-columns:1fr}
  .team-member-actions .danger{grid-column:auto}
}
@media(max-height:500px) and (max-width:1000px) and (pointer:coarse){
  .team-member-actions{grid-template-columns:repeat(4,minmax(0,1fr))}
  .team-member-actions .danger{grid-column:auto}
}


/* v1.1.26 NAV PATCH 9 — journal mobile navigation. */
.mobile-screen[data-cm-screen="journal-new"] .mobile-screen-content{background:var(--white)}
.mobile-screen[data-cm-screen="journal-new"] .journal-mobile-form{min-width:0;margin:0;display:grid;gap:2px}
.mobile-screen[data-cm-screen="journal-new"] .journal-mobile-form input,
.mobile-screen[data-cm-screen="journal-new"] .journal-mobile-form textarea{max-width:100%}
.mobile-screen[data-cm-screen="journal-new"] .journal-mobile-form textarea{min-height:220px;resize:vertical;line-height:1.5}
@media(max-height:500px) and (max-width:1000px) and (pointer:coarse){
  .mobile-screen[data-cm-screen="journal-new"] .journal-mobile-form textarea{min-height:130px}
}

/* v1.1.27 NAV PATCH 10 — unified mobile export options. */
.mobile-screen.export-options-screen .mobile-screen-content{background:var(--bg);padding-top:14px}
.mobile-export-form{min-width:0;margin:0}
.mobile-export-card{min-width:0;margin:0;box-shadow:none}
.mobile-export-card h2{min-width:0;overflow-wrap:anywhere;word-break:break-word}
.mobile-export-card .form-grid{min-width:0}
.mobile-export-card label{min-width:0;overflow-wrap:anywhere;word-break:break-word}
.mobile-export-card input,.mobile-export-card select{max-width:100%}
.mobile-export-card .segment.check-tags{margin-bottom:12px}
.mobile-export-card .segment.check-tags label{display:flex;align-items:center;gap:8px;margin:4px 0;padding:8px 10px;border:1px solid var(--line);border-radius:99px;background:var(--white);color:var(--ink);font-size:13px}
.mobile-export-card .segment.check-tags label:has(input:checked){background:var(--blue);border-color:var(--blue);color:var(--on-brand)}
.mobile-export-card .segment.check-tags input{width:18px;min-height:18px;margin:0}
.mobile-export-card .export-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.mobile-export-card .export-fields .check-row{min-width:0}
.mobile-export-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.mobile-export-actions .btn{min-width:0;margin:0}
.mobile-export-actions .btn:disabled{opacity:.55;cursor:default}
.mobile-export-state{min-width:0}.mobile-export-progress,.mobile-export-prepared{margin-top:14px;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--export-progress-surface);text-align:center}.mobile-export-progress{display:flex;align-items:center;justify-content:center;gap:12px}.mobile-export-spinner{width:22px;height:22px;flex:0 0 22px;border:3px solid var(--spinner-track);border-top-color:var(--blue);border-radius:50%;animation:mobile-export-spin .75s linear infinite}.mobile-export-prepared{display:grid;place-items:center;gap:8px;min-height:180px;align-content:center}.mobile-export-ready-mark{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#e7f7ee;color:var(--ok);font-size:28px;font-weight:800}.mobile-export-prepared strong{font-size:18px}.mobile-export-prepared p{margin:0;max-width:420px;color:var(--muted);line-height:1.45}.mobile-export-prepared-actions{display:grid;gap:9px}.mobile-export-prepared-actions .btn{margin:0}@keyframes mobile-export-spin{to{transform:rotate(360deg)}}
@media(max-width:390px){.mobile-export-card .export-fields{grid-template-columns:1fr}}
@media(max-height:500px) and (max-width:1000px) and (pointer:coarse){.mobile-screen.export-options-screen .mobile-screen-content{padding-top:10px}.mobile-export-card .export-fields{grid-template-columns:1fr 1fr}}



/* v1.1.28 NAV PATCH 11 — CSV import mobile workflow. */
.mobile-screen.csv-import-screen .mobile-screen-content{background:var(--white)}
.mobile-screen.csv-import-screen .csv-import-help{padding:15px 16px;box-shadow:none}.mobile-screen.csv-import-screen .csv-import-help summary{cursor:pointer}.mobile-screen.csv-import-screen .csv-import-help-body{margin-top:12px}.mobile-screen.csv-import-screen .csv-import-help-body p:first-child{margin-top:0}.mobile-screen.csv-import-screen .csv-import-help-body p:last-child{margin-bottom:0}.mobile-screen.csv-import-screen .csv-import-file-label{margin-top:16px}.mobile-screen.csv-import-screen .csv-import-hint{margin:0 0 14px;color:var(--muted);line-height:1.5}.mobile-screen.csv-import-screen .csv-import-actions{margin-top:16px}.mobile-screen.csv-import-screen .csv-import-mapping-list{display:grid;gap:10px}.mobile-screen.csv-import-screen .csv-import-mapping-card{min-width:0;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--csv-mapping-surface)}.mobile-screen.csv-import-screen .csv-import-mapping-card label{margin:12px 0 0}.mobile-screen.csv-import-screen .csv-import-mapping-value{display:grid;grid-template-columns:minmax(92px,auto) minmax(0,1fr);gap:10px;align-items:start;padding:4px 0}.mobile-screen.csv-import-screen .csv-import-mapping-value span{color:var(--muted);font-size:12px;font-weight:750}.mobile-screen.csv-import-screen .csv-import-mapping-value strong{min-width:0;text-align:right;overflow-wrap:anywhere}.mobile-screen.csv-import-screen .csv-import-preview-table{max-width:100%;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.mobile-screen.csv-import-screen .csv-import-summary{margin:0 0 10px}.mobile-screen.csv-import-screen .csv-import-summary span{padding:6px 9px;border-radius:9px;background:var(--csv-summary-surface);color:var(--ink)}.mobile-screen.csv-import-screen .csv-import-committing{min-height:45vh;display:grid;place-items:center;align-content:center;gap:14px;text-align:center}.mobile-screen.csv-import-screen .csv-import-committing h3{margin:0}.mobile-screen.csv-import-screen .csv-import-spinner{width:34px;height:34px;border:3px solid var(--spinner-track);border-top-color:var(--blue);border-radius:50%;animation:csv-import-spin .75s linear infinite}.mobile-screen.csv-import-screen .csv-import-result{margin-top:0;text-align:center}.mobile-screen.csv-import-screen .csv-import-result h3{margin:0 0 8px}.mobile-screen.csv-import-screen .csv-import-result p{margin:0}
@keyframes csv-import-spin{to{transform:rotate(360deg)}}
@media(max-width:760px),(max-height:500px) and (max-width:1000px) and (pointer:coarse){.mobile-screen.csv-import-screen .csv-import-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mobile-screen.csv-import-screen .csv-import-actions .btn:only-child{grid-column:1/-1}.mobile-screen.csv-import-screen .csv-import-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.mobile-screen.csv-import-screen .csv-import-summary span{text-align:center;font-size:11px;overflow-wrap:anywhere}.mobile-screen.csv-import-screen .notice{overflow-wrap:anywhere}.mobile-screen.csv-import-screen .table-wrap{width:100%;max-width:100%}}
@media(max-width:390px){.mobile-screen.csv-import-screen .csv-import-actions{grid-template-columns:1fr}.mobile-screen.csv-import-screen .csv-import-actions .btn:only-child{grid-column:auto}.mobile-screen.csv-import-screen .csv-import-summary{grid-template-columns:1fr}.mobile-screen.csv-import-screen .csv-import-mapping-value{grid-template-columns:1fr;gap:3px}.mobile-screen.csv-import-screen .csv-import-mapping-value strong{text-align:left}}
@media(prefers-reduced-motion:reduce){.mobile-screen.csv-import-screen .csv-import-spinner{animation:none}}

/* v1.1.29 NAV PATCH 12 — choir backup / restore mobile screens. */
.choir-backup-mobile-root .card{min-width:0}.choir-backup-mobile-root .card p{overflow-wrap:anywhere}.mobile-backup-prepared-actions{display:grid;gap:10px;width:100%}.mobile-screen.choir-backup-create-screen .mobile-screen-content,.mobile-screen.choir-backup-restore-screen .mobile-screen-content{background:var(--white)}.choir-backup-mobile-form{min-width:0;margin:0}.choir-backup-mobile-form .card{box-shadow:none;margin:0 0 16px}.choir-backup-mobile-form input{max-width:100%}.choir-backup-info-card p,.choir-backup-warning p{margin:0;line-height:1.5;overflow-wrap:anywhere}.choir-backup-warning p+p{margin-top:10px}.choir-backup-restore-status{margin-top:18px;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--backup-restore-surface);display:flex;align-items:center;justify-content:center;gap:12px;text-align:center}.choir-backup-restore-status[hidden]{display:none}.choir-backup-spinner{width:24px;height:24px;flex:0 0 24px;border:3px solid var(--spinner-track);border-top-color:var(--blue);border-radius:50%;animation:choir-backup-spin .75s linear infinite}.mobile-screen.choir-backup-restore-screen.is-restoring .choir-backup-mobile-form{opacity:.82}.mobile-screen.choir-backup-restore-screen [data-mobile-back]:disabled{opacity:.35;cursor:default}.choir-backup-completed{min-height:55vh;display:grid;place-items:center;align-content:center;gap:10px;text-align:center}.choir-backup-completed-mark{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:#e7f7ee;color:var(--ok);font-size:32px;font-weight:800}.choir-backup-completed h2{margin:4px 0 0}.choir-backup-completed p{max-width:420px;margin:0;color:var(--muted);line-height:1.5;overflow-wrap:anywhere}
@keyframes choir-backup-spin{to{transform:rotate(360deg)}}
@media(max-width:390px){.choir-backup-mobile-root{grid-template-columns:1fr}.choir-backup-mobile-form .card{padding:14px}.choir-backup-completed{min-height:48vh}}
@media(max-height:500px) and (max-width:1000px) and (pointer:coarse){.choir-backup-completed{min-height:36vh}.choir-backup-restore-status{padding:12px}}
@media(prefers-reduced-motion:reduce){.choir-backup-spinner{animation:none}}

@media(prefers-reduced-motion:reduce){.mobile-export-spinner{animation:none}}

/* v1.1.39 NAV PATCH 13 u7 — mobile password screen, forced blocking flow, history and mutation guards. */
.mobile-screen.password-change-screen .mobile-screen-content{background:var(--white)}
.password-mobile-wrap{width:min(100%,620px);margin:0 auto}
.password-change-form{margin:0;min-width:0}
.password-change-form .password-change-notice{margin:0 0 16px;line-height:1.5}
.password-change-form input{max-width:100%}
.password-forced-actions{display:grid;grid-template-columns:1fr;gap:8px;width:100%}
.password-forced-actions .btn.block,.password-forced-logout.btn.block{margin-top:0}
.mobile-screen.password-forced-screen .mobile-screen-header{grid-template-columns:44px minmax(0,1fr) 44px}
.mobile-screen.password-forced-screen .mobile-screen-back[hidden]{visibility:hidden;display:block!important;pointer-events:none}
@media(max-height:500px) and (max-width:1000px) and (pointer:coarse){.mobile-screen.password-change-screen .mobile-screen-content{padding-top:10px}.password-change-form label{margin-top:9px}.password-change-form .password-change-notice{margin-bottom:8px}}

/* v1.1.44 NAV PATCH 14 — System Admin mobile navigation. */
.admin-choir-mobile-row{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;outline:none}
.admin-choir-mobile-row:focus-visible{border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 14%,transparent)}
.admin-choir-mobile-row-main{min-width:0;flex:1;display:grid;gap:7px}
.admin-choir-mobile-row-main .list-title,.admin-choir-mobile-row-main .meta{min-width:0;overflow-wrap:anywhere;word-break:break-word}
.admin-choir-mobile-row-stats{display:grid;grid-template-columns:1fr 1fr;gap:7px 12px;color:var(--muted);font-size:12px}
.admin-choir-mobile-row-stats span{min-width:0;overflow-wrap:anywhere}
.admin-mobile-chevron{flex:0 0 auto;color:var(--muted);font-size:31px;line-height:1;font-weight:400}
.mobile-screen.admin-choir-screen .mobile-screen-content,
.mobile-screen.admin-subscription-screen .mobile-screen-content{background:var(--bg);padding-top:14px}
.mobile-screen.admin-choir-form-screen .mobile-screen-content,
.mobile-screen.admin-subscription-form-screen .mobile-screen-content{background:var(--white)}
.admin-mobile-stack{width:min(100%,760px);margin:0 auto;display:grid;gap:14px;min-width:0}
.admin-choir-details-card,.admin-subscription-summary,.admin-period-history,.admin-mobile-actions-card{min-width:0;margin:0;box-shadow:none}
.admin-choir-mobile-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}
.admin-choir-mobile-hero>div{min-width:0}
.admin-choir-mobile-hero small{display:block;margin-bottom:5px;color:var(--muted);font-size:11px;font-weight:750}
.admin-choir-mobile-hero h2{margin:0;min-width:0;font-size:21px;line-height:1.25;overflow-wrap:anywhere;word-break:break-word}
.admin-choir-mobile-hero p{margin:5px 0 0;color:var(--muted);font-size:13px;overflow-wrap:anywhere;word-break:break-word}
.admin-choir-mobile-hero>.tag{flex:0 0 auto}
.admin-mobile-kv{display:grid;grid-template-columns:1fr 1fr;margin-top:14px;border-top:1px solid var(--line);border-left:1px solid var(--line);border-radius:12px;overflow:hidden}
.admin-mobile-kv>div{min-width:0;padding:12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface2)}
.admin-mobile-kv span{display:block;margin-bottom:5px;color:var(--muted);font-size:11px;line-height:1.25;overflow-wrap:anywhere}
.admin-mobile-kv strong{display:block;min-width:0;font-size:14px;line-height:1.35;overflow-wrap:anywhere;word-break:break-word}
.admin-mobile-kv.compact{margin-top:10px}
.admin-mobile-actions-card h2,.admin-period-history h2{margin:0 0 12px;font-size:17px}
.admin-mobile-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.admin-mobile-actions .btn{min-width:0;margin:0;white-space:normal}
.admin-mobile-actions .danger{grid-column:1/-1}
.admin-paid-note{margin:13px 0 0;line-height:1.45;overflow-wrap:anywhere}
.admin-period-list{display:grid;gap:10px;min-width:0}
.admin-period-card{min-width:0;padding:13px;border:1px solid var(--line);border-radius:13px;background:var(--surface2)}
.admin-period-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.admin-period-head strong{font-size:14px}
.admin-period-card>.btn{width:100%;margin-top:10px}
.admin-choir-mobile-form,.admin-subscription-mobile-form{width:min(100%,680px);margin:0 auto;min-width:0}
.admin-choir-mobile-form input,.admin-choir-mobile-form select,.admin-subscription-mobile-form input,.admin-subscription-mobile-form select,.admin-subscription-mobile-form textarea{max-width:100%}
.admin-subscription-mobile-form textarea{min-height:150px;resize:vertical;line-height:1.45}
@media(max-width:390px){
  .admin-choir-mobile-row-stats{grid-template-columns:1fr}
  .admin-choir-mobile-row{padding:12px}
  .admin-mobile-kv{grid-template-columns:1fr}
  .admin-mobile-actions{grid-template-columns:1fr}
  .admin-mobile-actions .danger{grid-column:auto}
  .admin-choir-mobile-hero{display:grid}
}
@media(max-height:500px) and (max-width:1000px) and (pointer:coarse){
  .admin-mobile-stack{gap:10px}
  .admin-mobile-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
  .admin-mobile-actions .danger{grid-column:auto}
  .admin-mobile-kv{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-subscription-mobile-form textarea{min-height:90px}
}

/* v1.1.46 LOGIN / BRAND — full-screen entry without a form card. */
.login-screen{
  min-height:100vh;
  min-height:100dvh;
  overflow:auto;
  place-items:center;
  padding:max(24px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));
  background:linear-gradient(180deg,rgba(7,18,38,.24),rgba(7,18,38,.55)),url("images/backentrada.webp") center center/cover no-repeat;
}
.login-form{
  width:min(100%,380px);
  display:grid;
  gap:12px;
  align-content:center;
  margin:auto;
}
.login-logo-badge{
  width:clamp(84px,12vh,108px);
  aspect-ratio:1;
  display:grid;
  place-items:center;
  margin:0 auto 16px;
  padding:15px;
  border-radius:28px;
  background:rgba(255,255,255,.97);
  box-shadow:0 14px 36px rgba(7,20,45,.24),inset 0 0 0 1px rgba(255,255,255,.72);
}
.login-logo-badge img{width:106%;height:106%;object-fit:contain;display:block}
.login-form input,.login-form select{
  min-height:50px;
  margin:0;
  border:1px solid rgba(255,255,255,.58);
  border-radius:15px;
  background:rgba(255,255,255,.94);
  color:var(--ink);
  box-shadow:0 8px 24px rgba(7,20,45,.14);
  backdrop-filter:blur(10px);
}
.login-form input::placeholder{color:#71809a;opacity:1}
.login-form input:focus,.login-form select:focus{outline:3px solid rgba(255,255,255,.28);border-color:#fff}
.login-form .btn.block{margin-top:2px;min-height:50px;border-radius:15px;box-shadow:0 10px 24px rgba(9,46,105,.22)}
.login-form .error-text{min-height:22px;margin:0;text-align:center;color:#fff;font-weight:750;text-shadow:0 1px 3px rgba(0,0,0,.55)}
.login-legal-links{display:flex;justify-content:center;gap:8px 14px;flex-wrap:wrap;margin-top:2px;text-align:center}.login-legal-links a{color:var(--on-image);font-size:12px;font-weight:700;text-decoration:none;text-shadow:0 1px 3px rgba(0,0,0,.55);opacity:.88}.login-legal-links a:hover,.login-legal-links a:focus-visible{opacity:1;text-decoration:underline}.legal-settings-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.legal-settings-links a{display:flex;align-items:center;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--field-bg);color:var(--blue);font-weight:750;text-decoration:none}.legal-settings-links a:hover,.legal-settings-links a:focus-visible{border-color:var(--blue);text-decoration:none}
/* v1.1.111 LOGIN LANGUAGE SWITCH — visible language row, white outline, no fill. */
.login-language-switch{display:flex;align-items:center;justify-content:center;gap:6px;width:auto;max-width:100%;margin:0 auto 2px}
.login-language-option{appearance:none;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:34px;padding:0 9px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--on-image);font-size:13px;font-weight:500;line-height:1;letter-spacing:.01em;opacity:.76;text-shadow:0 1px 3px rgba(0,0,0,.34);box-shadow:none}
.login-language-option:hover{border-color:rgba(255,255,255,.46);color:var(--on-image);opacity:1;filter:none}
.login-language-option.active,.login-language-option[aria-pressed="true"]{border-color:rgba(255,255,255,.96);background:transparent;color:var(--on-image);opacity:1;box-shadow:none}
.login-language-option:focus-visible{outline:2px solid rgba(255,255,255,.72);outline-offset:2px}

@media(max-height:560px){
  .login-screen{place-items:start center;padding-top:max(14px,env(safe-area-inset-top));padding-bottom:max(14px,env(safe-area-inset-bottom))}
  .login-logo-badge{width:78px;padding:12px;border-radius:22px;margin-bottom:6px}
  .login-form{gap:8px;margin:0 auto}
  .login-form input,.login-form select,.login-form .btn.block{min-height:44px}
  .login-language-option{min-height:30px}
}

@media(max-width:350px){
  .login-language-switch{gap:3px}
  .login-language-option{min-width:41px;padding-left:6px;padding-right:6px}
}

/* v1.1.48 GLOBAL PWA CENTER R2 — root viewport hardening + one phone-mode layout contract. */
:root{
  --cm-safe-inline:max(env(safe-area-inset-left,0px),env(safe-area-inset-right,0px));
}
@media(max-width:760px),(max-height:500px) and (max-width:1000px) and (pointer:coarse){
  html,body{
    width:100%;
    max-width:100%;
    min-width:0;
    overflow-x:hidden;
    overscroll-behavior-x:none;
  }
  #app,.screen,.layout{
    width:100%;
    max-width:100%;
    min-width:0;
  }
  #app,.screen{overflow-x:hidden}
  .layout{margin-left:0;margin-right:0}
  .app-header{
    width:100%;
    max-width:100%;
    min-width:0;
    padding-left:max(14px,var(--cm-safe-inline));
    padding-right:max(14px,var(--cm-safe-inline));
  }
  .content{
    width:100%;
    max-width:100%;
    min-width:0;
    margin-left:0;
    margin-right:0;
    padding-left:max(14px,var(--cm-safe-inline));
    padding-right:max(14px,var(--cm-safe-inline));
  }
  .bottom-nav{
    max-width:100%;
    min-width:0;
    padding-left:max(6px,var(--cm-safe-inline));
    padding-right:max(6px,var(--cm-safe-inline));
  }
  .mobile-screen-stack,.mobile-screen{
    left:0;
    right:0;
    width:100%;
    max-width:100%;
    min-width:0;
  }
  .mobile-screen-header{
    padding-left:max(10px,var(--cm-safe-inline));
    padding-right:max(10px,var(--cm-safe-inline));
  }
  .mobile-screen-content,
  .mobile-screen.chorister-profile-screen .mobile-screen-content{
    padding-left:max(14px,var(--cm-safe-inline));
    padding-right:max(14px,var(--cm-safe-inline));
  }
  .mobile-screen-footer{
    padding-left:max(14px,var(--cm-safe-inline));
    padding-right:max(14px,var(--cm-safe-inline));
  }
  .modal-backdrop{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
  }
  .modal-head,.modal-body,.modal-actions{
    padding-left:max(20px,var(--cm-safe-inline));
    padding-right:max(20px,var(--cm-safe-inline));
  }
  .toast-wrap{
    left:max(12px,var(--cm-safe-inline));
    right:max(12px,var(--cm-safe-inline));
  }
  .login-screen{
    width:100%;
    max-width:100%;
    min-width:0;
    padding-left:max(18px,var(--cm-safe-inline));
    padding-right:max(18px,var(--cm-safe-inline));
  }
  .login-form{
    justify-self:center;
    max-width:100%;
    margin-left:0;
    margin-right:0;
  }
}
@supports(overflow:clip){
  @media(max-width:760px),(max-height:500px) and (max-width:1000px) and (pointer:coarse){
    html,body,#app,.screen,.modal-backdrop{overflow-x:clip}
  }
}
@media(max-width:390px){
  .mobile-screen-header{
    padding-left:max(6px,var(--cm-safe-inline));
    padding-right:max(6px,var(--cm-safe-inline));
  }
  .mobile-screen-content,
  .mobile-screen.chorister-profile-screen .mobile-screen-content{
    padding-left:max(12px,var(--cm-safe-inline));
    padding-right:max(12px,var(--cm-safe-inline));
  }
}
@media(max-width:350px){
  .app-header{
    padding-left:max(10px,var(--cm-safe-inline));
    padding-right:max(10px,var(--cm-safe-inline));
  }
}

/* v1.1.53 CHOIR DISCLOSURES — Team and Voice sections share one visual hierarchy on the Choir root page. */
.choir-team-preview,.choir-voices-preview{margin:0 0 16px;padding:0;overflow:hidden}
.choir-team-preview>summary,.choir-voices-preview>summary{list-style:none;display:flex;align-items:center;gap:10px;min-height:52px;padding:13px 16px;cursor:pointer;color:var(--ink);user-select:none}
.choir-team-preview>summary::-webkit-details-marker,.choir-voices-preview>summary::-webkit-details-marker{display:none}
.choir-team-preview>summary::after,.choir-voices-preview>summary::after{content:'›';flex:0 0 auto;margin-left:2px;color:var(--muted);font-size:24px;line-height:1;transform:rotate(0deg);transition:transform .18s ease}
.choir-team-preview[open]>summary::after,.choir-voices-preview[open]>summary::after{transform:rotate(90deg)}
.choir-team-preview>summary:focus-visible,.choir-voices-preview>summary:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 16%,transparent);outline-offset:-3px;border-radius:14px}
.choir-team-preview-title,.choir-voices-preview-title{min-width:0;flex:1;font-size:16px;font-weight:800;overflow-wrap:anywhere}
.choir-team-preview-list{border-top:1px solid var(--line);padding:3px 16px 7px}
.choir-team-preview-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,.7fr);gap:14px;align-items:center;min-width:0;padding:11px 0;border-bottom:1px solid #edf1f7}
.choir-team-preview-row:last-child{border-bottom:0}
.choir-team-preview-row strong,.choir-team-preview-row span{min-width:0;overflow-wrap:anywhere;word-break:break-word}
.choir-team-preview-row strong{font-size:14px}
.choir-team-preview-row span{color:var(--muted);font-size:13px;text-align:right}
.choir-team-preview-empty{padding:16px 0;color:var(--muted);font-size:13px;text-align:center}
.choir-voices-preview-body{border-top:1px solid var(--line);padding:14px 16px 16px}
.choir-voices-preview-body .segment{margin:0;justify-content:flex-start}
.choir-voices-preview-actions{margin-top:12px}
@media(max-width:760px),(max-height:500px) and (max-width:1000px) and (pointer:coarse){
  .choir-team-preview,.choir-voices-preview{width:100%;max-width:100%;min-width:0;margin-bottom:14px}
  .choir-team-preview>summary,.choir-voices-preview>summary{padding-left:14px;padding-right:14px}
  .choir-team-preview-list,.choir-voices-preview-body{padding-left:14px;padding-right:14px}
  .choir-team-preview-row{grid-template-columns:minmax(0,1fr);gap:3px}
  .choir-team-preview-row span{text-align:left}
}
@media(prefers-reduced-motion:reduce){.choir-team-preview>summary::after,.choir-voices-preview>summary::after{transition:none}}

/* v1.1.55 CHOIR VOICE PILLS FILTER — the Choir voice counters are the shared mobile/desktop multi-filter. */
#voice-counts .choir-voice-filter-pill,#group-counts .choir-voice-filter-pill,#attendance-voice-counts .choir-voice-filter-pill,#attendance-group-counts .choir-voice-filter-pill{appearance:none;-webkit-appearance:none;min-height:36px;max-width:100%;border:1px solid var(--filter-border);background:var(--pale);color:var(--blue);padding:7px 10px;white-space:normal;overflow-wrap:anywhere;word-break:break-word;text-align:left;line-height:1.15}
#voice-counts .choir-voice-filter-pill:hover,#group-counts .choir-voice-filter-pill:hover,#attendance-voice-counts .choir-voice-filter-pill:hover,#attendance-group-counts .choir-voice-filter-pill:hover{filter:brightness(.98)}
#voice-counts .choir-voice-filter-pill.is-selected,#group-counts .choir-voice-filter-pill.is-selected,#attendance-voice-counts .choir-voice-filter-pill.is-selected,#attendance-group-counts .choir-voice-filter-pill.is-selected{background:var(--special);border-color:var(--special);color:var(--on-brand)}
#voice-counts .choir-voice-filter-pill:focus-visible,#group-counts .choir-voice-filter-pill:focus-visible,#attendance-voice-counts .choir-voice-filter-pill:focus-visible,#attendance-group-counts .choir-voice-filter-pill:focus-visible{outline:3px solid color-mix(in srgb,var(--special) 24%,transparent);outline-offset:2px}
.choir-voices-filter-count{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:var(--special);color:var(--on-brand);font-size:12px;font-weight:800;line-height:1}
.choir-voices-filter-count[hidden]{display:none}
@media(max-width:760px),(max-height:500px) and (max-width:1000px) and (pointer:coarse){#voice-counts .choir-voice-filter-pill,#group-counts .choir-voice-filter-pill,#attendance-voice-counts .choir-voice-filter-pill,#attendance-group-counts .choir-voice-filter-pill{min-height:40px;padding:8px 11px}}

.analytics-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}.analytics-tabs .btn{min-width:96px}.investor-kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.investor-revenue-table{min-width:1180px}.investor-export-card{max-width:760px}.investor-export-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.investor-export-card label{max-width:280px}
@media(max-width:760px),(max-height:500px) and (max-width:1000px) and (pointer:coarse){.analytics-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.analytics-tabs .btn{min-width:0;padding:9px 6px}.investor-export-actions{grid-template-columns:1fr}.investor-revenue-table{min-width:1100px}}

/* v1.1.50 IOS TEMPORAL INPUT WIDTH FIX v2 — remove the WebKit width+padding overflow trigger while keeping the native picker. */
@media(max-width:760px),(max-height:500px) and (max-width:1000px) and (pointer:coarse){
  .form-grid,
  .form-grid>label,
  .toolbar>label,
  .mobile-screen-content form,
  .modal-body form{
    min-width:0;
    max-width:100%;
  }
  input[type="date"],
  input[type="time"],
  input[type="datetime-local"],
  input[type="month"],
  input[type="week"]{
    box-sizing:border-box;
    width:100%;
    inline-size:100%;
    max-width:100%;
    max-inline-size:100%;
    min-width:0;
    min-inline-size:0;
    -webkit-min-logical-width:0;
  }
}
@supports(-webkit-touch-callout:none){
  @media(max-width:760px),(max-height:500px) and (max-width:1000px) and (pointer:coarse){
    input[type="date"],
    input[type="time"],
    input[type="datetime-local"],
    input[type="month"],
    input[type="week"]{
      padding-left:0;
      padding-right:0;
      padding-inline:0;
    }
    input[type="date"]::-webkit-date-and-time-value,
    input[type="time"]::-webkit-date-and-time-value,
    input[type="datetime-local"]::-webkit-date-and-time-value,
    input[type="month"]::-webkit-date-and-time-value,
    input[type="week"]::-webkit-date-and-time-value{
      box-sizing:border-box;
      min-width:0;
      flex:1 1 auto;
      padding-left:12px;
      padding-right:4px;
      padding-inline-start:12px;
      padding-inline-end:4px;
      text-align:left;
    }
    input[type="date"]::-webkit-calendar-picker-indicator,
    input[type="time"]::-webkit-calendar-picker-indicator,
    input[type="datetime-local"]::-webkit-calendar-picker-indicator,
    input[type="month"]::-webkit-calendar-picker-indicator,
    input[type="week"]::-webkit-calendar-picker-indicator{
      flex:0 0 auto;
      margin:0 10px 0 4px;
      padding:0;
    }
  }
}

/* Monitoring / System Admin PATCH 1 */
.admin-entry-login-title{font-weight:800;text-align:center;color:var(--heading-accent);margin:-4px 0 4px}
.monitoring-health-card{margin-bottom:16px}
.monitoring-health-head{display: flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.monitoring-health-head>div:first-child{display: flex;align-items:center;gap:10px;flex-wrap:wrap}
.monitoring-health-meta{display: flex;gap:14px;flex-wrap:wrap;font-size:13px;color:#5b6780}
.monitoring-alert-list{display:grid;gap:8px;margin-top:14px}
.monitoring-alert{padding:10px 12px;border-radius:10px;background:#fff4e5;border:1px solid #f2d5a0;color:#7a4b00}
.monitoring-small-value{font-size:12px;line-height:1.25;overflow-wrap:anywhere}
.monitoring-overview-stats{margin-top:16px}
.system-section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:20px}
.system-section-button{border:1px solid #dce4f2;text-align:left;cursor:pointer;display: flex;flex-direction:column;gap:6px;min-height:92px}
.system-section-button strong{font-size:16px;color:var(--heading-accent)}
.system-section-button span{font-size:13px;color:#66728a;line-height:1.35}
.system-diagnostics-title{margin:22px 0 12px}
.monitoring-periods{display: flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.monitoring-error-list{margin-top:14px}
.monitoring-settings-form{display:grid;gap:16px}
.monitoring-switches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.monitor-switch{display: flex!important;align-items:flex-start;gap:10px;padding:12px;border:1px solid #dce4f2;border-radius:12px;background:var(--white);margin:0!important}
.monitor-switch input{width:auto!important;min-width:18px;min-height:18px;margin-top:2px}
.monitor-switch span{display: flex;flex-direction:column;gap:3px}
.monitor-switch small{font-weight:400;color:#66728a;line-height:1.35}
.monitoring-runtime-status{font-size:12px}
.tag.warn{background:#fff3d6;color:#8a5a00}
@media(max-width:760px),(max-height:500px) and (max-width:1000px) and (pointer:coarse){
  .system-section-grid,.monitoring-switches{grid-template-columns:1fr}
  .monitoring-health-head{display:grid;grid-template-columns:1fr}
  .monitoring-health-meta{display:grid;gap:5px}
  .monitoring-overview-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-system-detail-screen .mobile-screen-content{padding-bottom:calc(24px + env(safe-area-inset-bottom))}
}

/* Product Analytics — System Admin only. */
.analytics-period-bar{display:grid;grid-template-columns:repeat(6,max-content);gap:8px;margin:0 0 14px}.analytics-fresh{margin:0 0 16px}.analytics-stale{margin-bottom:16px;background:#fff4dc;color:var(--warn)}.analytics-kpis{margin-bottom:16px}.analytics-cards{margin-bottom:16px}.analytics-section{margin:0 0 16px}.analytics-table{min-width:520px}.analytics-inline-select{margin:0;min-width:150px}.analytics-definition-note{margin:4px 0 0}.analytics-section .table-wrap,.analytics-cards .table-wrap{box-shadow:none}.analytics-cards .admin-mobile-kv{display:grid;gap:0}.analytics-cards .admin-mobile-kv>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}.analytics-custom-period{display:grid;grid-template-columns:minmax(150px,220px) minmax(150px,220px) max-content;gap:10px;align-items:end;margin:0 0 14px}.analytics-custom-period label{margin:0}
@media(max-width:760px),(max-height:500px) and (max-width:1000px) and (pointer:coarse){.analytics-period-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.analytics-period-bar .btn{padding:8px 6px}.analytics-inline-select{width:100%}.analytics-custom-period{display:grid;grid-template-columns:1fr 1fr}.analytics-custom-period .btn{grid-column:1/-1}.analytics-section .card-row{display:block}.analytics-table{min-width:480px}}


/* 1.1.84 quick attendance responsive hardening */
@media(max-width:430px){.manager-event-actions.has-attendance{gap:8px}.manager-event-actions.has-attendance .btn{font-size:clamp(11px,3.4vw,13px);padding-left:6px;padding-right:6px}}
@media(max-width:380px){.manager-event-hero{padding-left:16px;padding-right:16px}}
@media(max-width:340px){.attendance-search{gap:5px;padding-left:6px;padding-right:6px}.attendance-search-icon{flex-basis:18px}.attendance-search-icon svg{width:18px;height:18px}.attendance-search button{width:24px;height:24px;flex-basis:24px}.attendance-search input{font-size:16px}.attendance-search input::placeholder{font-size:14px}}

/* 1.1.86 attendance autosave + reversible status UX */
.mobile-screen[data-cm-screen="event-attendance"] .mobile-screen-content{padding-bottom:calc(24px + env(safe-area-inset-bottom))}

/* 1.1.89 — unified Voices/Groups roster filters. */
.choir-roster-filter-section{min-width:0}
.choir-roster-filter-section+.choir-roster-filter-section{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.choir-roster-filter-section-title{margin:0 0 10px;color:var(--muted);font-size:13px;font-weight:800;line-height:1.25}
.attendance-roster-filter{margin-top:12px}
.group-member-count{min-width:0;font-size:12px;overflow-wrap:anywhere}
.mobile-screen[data-cm-screen="groups"] .mobile-screen-content{background:var(--white);padding-top:4px}
.mobile-screen[data-cm-screen="group-new"] .mobile-screen-content,
.mobile-screen[data-cm-screen="group-rename"] .mobile-screen-content{background:var(--white)}

/* v1.1.91 — compact More tools; Voices/Groups use the native More button pattern. */
#more-tools104{padding:14px 18px}
#more-tools104 h2{margin-bottom:10px}
#more-tools104 .quick{gap:8px}
#more-tools104 .quick .btn{min-height:50px;padding:9px 14px}
@media(max-width:390px){#more-tools104{padding:13px 14px}#more-tools104 .quick{gap:7px}#more-tools104 .quick .btn{min-height:48px;padding:8px 12px}}


/* Event lineup selector */
.event-members-section{display:block;border:1px solid var(--line);border-radius:16px;padding:16px;background:var(--card)}
.event-members-head{display: flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
.event-members-head h3{margin:0 0 4px}
.event-members-head p{margin:0;max-width:680px}
.event-members-head>[data-event-members-count]{white-space:nowrap}
.event-members-actions{display: flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.event-members-search{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin:12px 0}
.event-members-search input[type="search"]{width:100%;min-width:0}
.event-members-filter{margin:12px 0;padding:0;border:0;box-shadow:none;background:transparent}
#event-members-voice-filters .choir-voice-filter-pill,#event-members-group-filters .choir-voice-filter-pill{min-height:36px;max-width:100%;border:1px solid var(--filter-border);background:var(--pale);color:var(--blue);padding:7px 10px;white-space:normal;overflow-wrap:anywhere;word-break:break-word;text-align:left;line-height:1.15}
#event-members-voice-filters .choir-voice-filter-pill.is-selected,#event-members-group-filters .choir-voice-filter-pill.is-selected{background:var(--special);border-color:var(--special);color:var(--on-brand)}
.event-members-list{display:grid;gap:7px;max-height:420px;overflow:auto;border:0;border-radius:0;background:transparent;overscroll-behavior:contain}
.event-member-row{appearance:none;-webkit-appearance:none;width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:54px;padding:9px 12px;border:1px solid var(--line);border-radius:11px;background:var(--white);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}
.event-members-list.is-filter-empty{display:none}
.event-member-row[hidden]{display:none!important}
.event-member-row:not(:disabled):hover{background:#f8fbff;border-color:#bfd0e8}
.event-member-row:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.event-member-row.is-selected{background:var(--selected-row-surface);border-color:var(--selected-row-border)}
.event-member-row.is-selected:not(:disabled):hover{background:var(--selected-row-hover-surface);border-color:var(--selected-row-hover-border)}
.event-member-row:disabled{cursor:default;opacity:.88}
.event-member-main{display:grid;gap:2px;min-width:0}
.event-member-main strong,.event-member-main small{overflow-wrap:anywhere}
.event-member-main small{color:var(--muted)}
.event-member-side{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:22px}
.event-member-check{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--blue);color:var(--on-brand);font-size:14px;font-weight:800;line-height:1;opacity:0;visibility:hidden;transition:opacity .15s ease}
.event-member-row.is-selected .event-member-check{opacity:1;visibility:visible}
.event-member-row.is-inactive:not(.is-selected){opacity:.82}
.event-members-empty-selection{margin:12px 0}
.event-members-locked-note{margin:12px 0}
.event-members-no-results{margin-top:10px}
@media(max-width:760px),(max-height:500px) and (max-width:1000px) and (pointer:coarse){
  .event-members-section{padding:13px;border-radius:14px}
  .event-members-head{display:grid;gap:8px}
  .event-members-head>[data-event-members-count]{white-space:normal}
  .event-members-search{grid-template-columns:1fr;gap:8px}
  .event-members-actions{display:grid;grid-template-columns:1fr 1fr}
  .event-members-actions [data-event-members-select-visible]{grid-column:1/-1}
  .event-members-list{max-height:none;overflow:visible}
  .event-member-row{min-height:56px;padding:9px 11px}
  #event-members-voice-filters .choir-voice-filter-pill,#event-members-group-filters .choir-voice-filter-pill{min-height:40px;padding:8px 11px}
}
.event-members-correction-note{margin:12px 0}
.event-lineup-state{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:12px 0}
.event-lineup-state>div{min-width:0}
.event-lineup-state p{margin:4px 0 0}
.event-lineup-state.is-unlocked{border-style:dashed}
@media(max-width:760px),(max-height:500px) and (max-width:1000px) and (pointer:coarse){
  .event-lineup-state{display:grid;align-items:stretch}
  .event-lineup-state .btn{width:100%}
}


/* Recurring events. Existing Event UI is preserved; only binary Event controls use switches. */
.event-switch-row{display:flex;align-items:center;gap:9px;margin:12px 0;font-weight:700;font-size:14px;cursor:pointer}
.event-switch-row-compact{margin:12px 0;white-space:nowrap}
.event-switch{position:relative;display:inline-block;flex:0 0 auto;width:48px;height:28px;margin:0}
.event-switch>input{position:absolute!important;opacity:0!important;width:1px!important;height:1px!important;min-height:0!important;margin:0!important;padding:0!important;pointer-events:none}
.event-switch>span{position:absolute;inset:0;border-radius:99px;background:#cfd8e6;transition:background-color .18s ease}
.event-switch>span::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--on-image);box-shadow:0 2px 5px rgba(19,41,77,.24);transition:transform .18s ease}
.event-switch>input:checked+span{background:var(--blue)}
.event-switch>input:checked+span::after{transform:translateX(20px)}
.event-switch>input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--blue) 16%,transparent);outline-offset:2px}
.event-switch>input:disabled+span{opacity:.55}

.event-recurrence-box{margin:12px 0 0;border:1px solid var(--line);border-radius:14px;background:var(--white);overflow:hidden}
.event-recurrence-box+.concert-form-section.hidden+.event-members-section{margin-top:12px}
.event-recurrence-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:62px;padding:12px 14px;margin:0;cursor:pointer}
.event-recurrence-toggle-copy{min-width:0}
.event-recurrence-toggle-copy strong{display:block;font-size:14px}
.event-recurrence-toggle-copy small{display:block;margin-top:3px;color:var(--muted);font-size:12px;font-weight:600;line-height:1.35}
.event-recurrence-body{border-top:1px solid var(--line);padding:14px;background:var(--event-recurrence-surface)}
.event-recurrence-body[hidden],.event-repeat-custom[hidden],.event-series-summary[hidden]{display:none!important}
.event-recurrence-title{margin:0 0 9px;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.035em}
.event-repeat-presets{display:flex;gap:7px;flex-wrap:wrap}
.event-repeat-chip{position:relative;display:inline-flex;align-items:center;margin:0;cursor:pointer}
.event-repeat-chip input{position:absolute!important;opacity:0!important;pointer-events:none;width:1px!important;height:1px!important;min-height:0!important;margin:0!important;padding:0!important}
.event-repeat-chip span{display:inline-flex;align-items:center;justify-content:center;min-height:38px;border:1px solid var(--line);background:var(--white);border-radius:99px;padding:8px 12px;color:var(--ink);font-size:13px;font-weight:750;line-height:1.15;text-align:center}
.event-repeat-chip input:checked+span{background:var(--blue);border-color:var(--blue);color:var(--on-brand)}
.event-repeat-chip input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--blue) 16%,transparent);outline-offset:2px}
.event-recurrence-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 12px;margin-top:14px}
.event-recurrence-grid>.wide,.event-repeat-custom>label{margin:0;min-width:0}
.event-recurrence-grid>.wide>input,.event-repeat-custom input,.event-repeat-custom select{min-width:0;margin-top:6px}
.event-repeat-custom{display:grid;grid-template-columns:minmax(90px,.7fr) minmax(150px,1.3fr);gap:10px;grid-column:1/-1;min-width:0}
.event-series-summary{grid-column:1/-1;margin:0;display:flex;align-items:flex-start;gap:10px;padding:12px 13px;border-radius:11px;background:var(--pale);color:var(--blue2);min-width:0}
.event-series-summary-icon{flex:0 0 auto;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--white);color:var(--blue);font-weight:900}
.event-series-summary-copy{min-width:0;font-size:13px;line-height:1.4}
.event-series-summary-copy strong{display:block;font-size:13px}
.event-series-summary-copy small{display:block;margin-top:2px;color:#48678f;font-weight:650}
@media(max-width:760px),(max-height:500px) and (max-width:1000px) and (pointer:coarse){
  .event-switch-row-compact{white-space:normal}
  .event-recurrence-toggle-row{gap:12px;padding:12px}
  .event-recurrence-body{padding:12px}
  .event-repeat-presets{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
  .event-repeat-chip{width:100%;min-width:0}
  .event-repeat-chip span{width:100%;min-width:0;min-height:44px;padding:9px 10px;white-space:normal}
  .event-repeat-chip:last-child{grid-column:1/-1}
  .event-recurrence-grid{grid-template-columns:1fr;gap:14px;margin-top:14px}
  .event-repeat-custom{grid-column:auto;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
}
@media(max-width:350px){
  .event-repeat-presets{grid-template-columns:1fr}
  .event-repeat-chip:last-child{grid-column:auto}
  .event-repeat-custom{grid-template-columns:1fr;gap:12px}
}

/* Events root corrections: safe range loading, tokenized styling and bulk concurrency. */
.events-root{width:100%;max-width:1240px;margin:0 auto;min-width:0}
.events-root .page-head{margin-bottom:20px}
.events-desktop-create:disabled,.events-page-select-mobile:disabled{opacity:.45;cursor:default;filter:none}
.events-query{display:grid;grid-template-columns:minmax(280px,1fr) minmax(300px,420px);gap:12px;align-items:end;margin:0 0 16px;min-width:0}
.events-search{position:relative;display:block;margin:0;min-width:0}
.events-search>span{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}
.events-search input{height:46px;min-width:0;margin:0}
.events-date-range{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px;width:100%;max-width:100%;min-width:0}
.events-date-field{min-width:0}
.events-date-field input{min-width:0;max-width:100%}
.events-query input[aria-invalid="true"]{border-color:var(--bad);box-shadow:0 0 0 3px color-mix(in srgb,var(--bad) 10%,transparent)}
.events-date-error{grid-column:1/-1;margin-top:-4px;color:var(--bad);font-size:12px;font-weight:750;line-height:1.35}
.events-date-error[hidden]{display:none}
.events-tools{display:flex;align-items:center;gap:12px;margin:0 0 16px;min-width:0}
.events-filters{display:flex;gap:7px;flex:1 1 auto;min-width:0;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none;padding:1px 0}
.events-filters::-webkit-scrollbar{display:none}
.events-filters button{flex:0 0 auto;min-height:40px;border:1px solid var(--line);border-radius:99px;background:var(--white);color:var(--ink);padding:8px 14px;font-weight:750;white-space:nowrap}
.events-filters button.active{background:var(--blue);border-color:var(--blue);color:var(--on-brand);box-shadow:var(--shadow)}
.events-desktop-select{flex:0 0 auto;min-width:104px;color:var(--blue);border-color:var(--line);background:var(--white)}
.events-desktop-select-wrap{flex:0 0 auto;display:grid;justify-items:end;gap:2px;min-width:104px}.events-desktop-select-wrap .events-bulk-offline-note{text-align:right;max-width:190px}
.events-bulk{display:flex;align-items:center;gap:8px;margin:-2px 0 16px;min-width:0}
.events-bulk[hidden]{display:none}
.events-bulk .btn{min-height:40px;padding:8px 14px;white-space:nowrap}
.events-selected-count{display:inline-flex;align-items:center;justify-content:center;min-height:40px;margin-left:auto;padding:8px 14px;border:1px solid var(--line);border-radius:11px;background:var(--pale);color:var(--blue);font-size:13px;font-weight:850;white-space:nowrap}
.events-cancel-outline{border-color:var(--line);background:var(--white);color:var(--muted)}
.events-cancel-outline:hover{border-color:var(--muted);background:var(--pale);filter:none}
.events-danger-outline{border:1px solid var(--bad)!important;background:var(--white)!important;color:var(--bad)!important}
.events-danger-outline:hover{background:color-mix(in srgb,var(--bad) 6%,var(--white))!important;filter:none}
.events-bulk .btn:disabled{opacity:.38;cursor:default;filter:none}
.events-bulk-confirm{margin:0;line-height:1.5;color:var(--ink)}
.events-list{display:grid;gap:10px;min-width:0}
.events-list.is-loading{opacity:.55;pointer-events:none}
.events-load-error p{margin:0 0 12px}
.event-root-card{position:relative;display:grid;grid-template-columns:88px minmax(0,1fr);column-gap:14px;min-width:0;padding:18px;background:var(--white);border:1px solid var(--line);border-radius:20px;color:var(--ink);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease,transform .12s ease}
.event-root-card:hover{border-color:var(--blue);box-shadow:var(--shadow)}
.event-root-card:active{transform:translateY(1px)}
.event-root-card:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 18%,transparent);outline-offset:2px}
.events-root.is-selecting .event-root-card{grid-template-columns:88px minmax(0,1fr) 34px}
.events-root.is-selecting .event-root-card:hover{background:var(--white);border-color:var(--blue)}
.event-root-card.is-selected{background:var(--pale);border-color:var(--blue);box-shadow:var(--shadow)}
.events-root.is-selecting .event-root-card.is-selected:hover{background:var(--pale);border-color:var(--blue);box-shadow:var(--shadow)}
.event-root-date{grid-column:1;grid-row:1;align-self:start;min-height:88px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:16px;background:var(--bg);text-align:center}
.event-root-date strong{font-size:34px;line-height:.95;font-weight:900;letter-spacing:-.04em}
.event-root-date span{margin-top:6px;color:var(--muted);font-size:11px;line-height:1.05;font-weight:850;text-transform:uppercase;overflow-wrap:anywhere}
.event-root-date small{margin-top:3px;color:var(--muted);font-size:11px;line-height:1.05}
.event-root-main{grid-column:2;grid-row:1;min-width:0}
.event-root-main h2{margin:0 0 8px;font-size:19px;line-height:1.24;font-weight:850;letter-spacing:-.01em;overflow-wrap:anywhere;word-break:break-word}
.event-root-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;margin:0 0 9px;color:var(--muted);font-size:14px;min-width:0}
.event-root-meta>span{display:inline-flex;align-items:center;gap:5px;min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word}
.event-root-ico{width:15px;height:15px;flex:0 0 15px;color:var(--blue)}
.event-root-status{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0}
.event-root-status .tag{margin:0;max-width:100%;white-space:normal;text-align:left;overflow-wrap:anywhere}
.event-root-select-marker{display:none;grid-column:3;grid-row:1;align-self:start;justify-self:end;width:27px;height:27px;margin-top:1px;border:2px solid var(--line);border-radius:50%;background:var(--white);box-shadow:none}
.events-root.is-selecting .event-root-select-marker{display:block}
.event-root-card.is-selected .event-root-select-marker{border-color:var(--blue);background:var(--blue)}
.event-root-stats{grid-column:1/-1;grid-row:2;display:flex;align-items:center;gap:10px;flex-wrap:wrap;width:100%;min-width:0;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.event-root-participants{display:inline-flex;align-items:center;gap:6px;min-width:0;color:var(--muted);font-size:13px;font-weight:750;white-space:nowrap}
.event-root-stats-split{display:block;width:1px;height:22px;background:var(--line)}
.event-root-rsvp{display:flex;gap:6px;flex:1 1 auto;min-width:0;flex-wrap:wrap}
.event-root-metric{display:inline-flex;align-items:center;min-height:28px;padding:4px 10px;border-radius:99px;font-size:12px;font-weight:800;white-space:nowrap}
.event-root-metric.yes{background:color-mix(in srgb,var(--ok) 10%,var(--white));color:var(--ok)}
.event-root-metric.no{background:color-mix(in srgb,var(--bad) 9%,var(--white));color:var(--bad)}
.event-root-metric.pending{background:var(--pale);color:var(--muted)}

@media(min-width:1100px){
  .event-root-main{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title status" "meta status";column-gap:24px;align-items:start}
  .event-root-main h2{grid-area:title}
  .event-root-meta{grid-area:meta;margin:0}
  .event-root-status{grid-area:status;justify-content:flex-end;max-width:360px}
}

@media(max-width:760px),(max-height:500px) and (max-width:1000px) and (pointer:coarse){
  .events-root .page-head{margin-bottom:14px}
  .events-root .page-head p{display:none}
  .events-query{grid-template-columns:minmax(0,1fr);gap:9px;margin-bottom:12px}
  .events-search input{height:46px;font-size:16px}
  .events-date-range{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
  .events-tools{display:block;margin-bottom:12px}
  .events-filters{width:100%;margin:0;padding:1px 0 2px}
  .events-filters button{min-height:40px;padding:8px 13px}
  .events-desktop-select-wrap{display:none}
  .events-desktop-select{display:none}
  .events-bulk{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:0 0 12px}
  .events-bulk[hidden]{display:none}
  .events-bulk .btn,.events-selected-count{width:100%;min-width:0;min-height:42px;margin:0;padding:8px 8px;font-size:12px;text-align:center}
  #event-select-all{grid-column:1/4;white-space:normal}
  .events-selected-count{grid-column:4/7;white-space:normal}
  #event-bulk-complete{grid-column:1/3}
  #event-bulk-cancel{grid-column:3/5}
  #event-bulk-delete{grid-column:5/7}
  .events-bulk .events-bulk-action{padding-left:4px;padding-right:4px;font-size:11.5px;white-space:nowrap}
  .event-root-card{grid-template-columns:64px minmax(0,1fr);column-gap:12px;padding:14px 12px;border-radius:18px}
  .events-root.is-selecting .event-root-card{grid-template-columns:64px minmax(0,1fr) 30px}
  .event-root-date{min-height:72px;border-radius:14px}
  .event-root-date strong{font-size:28px}
  .event-root-date span,.event-root-date small{font-size:10.5px}
  .event-root-main h2{font-size:16px;margin-bottom:7px}
  .event-root-meta{font-size:13px;gap:5px 9px;margin-bottom:8px}
  .event-root-status .tag{font-size:11px;padding:5px 8px}
  .event-root-select-marker{width:26px;height:26px}
  .event-root-stats{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin-top:12px;padding-top:11px}
  .event-root-stats-split{display:none}
  .event-root-participants{font-size:12.5px}
  .event-root-rsvp{width:100%}
  .event-root-metric{font-size:12px;padding:4px 9px}
}

@media(min-width:761px) and (max-width:1020px){
  .events-query{grid-template-columns:minmax(0,1fr)}
  .events-date-range{max-width:430px}
  .events-bulk{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;align-items:stretch}
  .events-bulk .btn,.events-selected-count{width:100%;min-width:0;margin-left:0;text-align:center}
  #event-select-all{grid-column:1/4}
  .events-selected-count{grid-column:4/7}
  #event-bulk-complete{grid-column:1/3}
  #event-bulk-cancel{grid-column:3/5}
  #event-bulk-delete{grid-column:5/7}
  .events-bulk .events-bulk-action{padding-left:5px;padding-right:5px;font-size:11.5px;white-space:nowrap}
}

@media(max-width:350px){
  .events-bulk .events-bulk-action{font-size:10.5px;padding-left:2px;padding-right:2px}
  .event-root-card{grid-template-columns:60px minmax(0,1fr);column-gap:10px;padding-left:10px;padding-right:10px}
  .events-root.is-selecting .event-root-card{grid-template-columns:60px minmax(0,1fr) 28px}
  .event-root-rsvp{gap:5px}
  .event-root-metric{padding-left:8px;padding-right:8px}
}



.login-brand-wordmark{margin:0 auto 16px;padding:10px 18px;border:1px solid color-mix(in srgb,var(--blue) 42%,transparent);border-radius:16px;background:color-mix(in srgb,var(--white) 88%,transparent);color:var(--blue);font-size:clamp(22px,4vw,30px);font-weight:900;letter-spacing:.06em;line-height:1.05;text-align:center;box-shadow:var(--shadow)}

/* Product semantic dark theme. The selectors are product-agnostic; the actual palette comes from /product/. */
html[data-product-theme="dark"]{color-scheme:dark;--muted:color-mix(in srgb,var(--product-text-secondary) 85%,var(--product-text-primary));--special-fg:color-mix(in srgb,var(--special) 90%,var(--on-image))}
html[data-product-theme="dark"] body{color:var(--ink);background:var(--bg)}
html[data-product-theme="dark"] .login-card input,html[data-product-theme="dark"] .login-card select{background:color-mix(in srgb,var(--field-surface) 94%,transparent);color:var(--ink);border-color:color-mix(in srgb,var(--muted) 40%,transparent)}
html[data-product-theme="dark"] .login-card input::placeholder,html[data-product-theme="dark"] .login-form input::placeholder{color:var(--muted)}
html[data-product-theme="dark"] .btn.danger,html[data-product-theme="dark"] .danger-zone,html[data-product-theme="dark"] .payment-cancellation-info{background:color-mix(in srgb,var(--bad) 12%,var(--white));border-color:color-mix(in srgb,var(--bad) 42%,var(--line))}
html[data-product-theme="dark"] .tag,html[data-product-theme="dark"] .attendance-rsvp-summary span,html[data-product-theme="dark"] .attendance-legacy-clear,html[data-product-theme="dark"] .attendance-search button{background:var(--neutral-control);color:var(--muted)}
html[data-product-theme="dark"] .tag.ok,html[data-product-theme="dark"] .rsvp .active.yes,html[data-product-theme="dark"] .attendance-rsvp-summary .yes,html[data-product-theme="dark"] .attendance-person-rsvp,html[data-product-theme="dark"] .attendance-choices .attendance-choice-present.active,html[data-product-theme="dark"] .mobile-export-ready-mark,html[data-product-theme="dark"] .choir-backup-completed-mark{background:color-mix(in srgb,var(--ok) 14%,var(--white));border-color:color-mix(in srgb,var(--ok) 42%,var(--line));color:var(--ok)}
html[data-product-theme="dark"] .tag.warn,html[data-product-theme="dark"] .analytics-stale,html[data-product-theme="dark"] .monitoring-alert{background:color-mix(in srgb,var(--warn) 14%,var(--white));border-color:color-mix(in srgb,var(--warn) 42%,var(--line));color:var(--warn)}
html[data-product-theme="dark"] .tag.bad,html[data-product-theme="dark"] .rsvp .active.no,html[data-product-theme="dark"] .attendance-rsvp-summary .no,html[data-product-theme="dark"] .attendance-person-rsvp.no,html[data-product-theme="dark"] .attendance-choices .attendance-choice-absent.active{background:color-mix(in srgb,var(--bad) 14%,var(--white));border-color:color-mix(in srgb,var(--bad) 42%,var(--line));color:var(--bad)}
html[data-product-theme="dark"] .attendance-choices .attendance-choice.active,html[data-product-theme="dark"] .event-member-row.is-selected{background:color-mix(in srgb,var(--blue) 12%,var(--white))!important;border-color:color-mix(in srgb,var(--blue) 42%,var(--line))!important;color:var(--blue)!important}
html[data-product-theme="dark"] .attendance-choices .attendance-choice-present.active{background:color-mix(in srgb,var(--ok) 14%,var(--white))!important;border-color:color-mix(in srgb,var(--ok) 42%,var(--line))!important;color:var(--ok)!important}
html[data-product-theme="dark"] .attendance-choices .attendance-choice-absent.active{background:color-mix(in srgb,var(--bad) 14%,var(--white))!important;border-color:color-mix(in srgb,var(--bad) 42%,var(--line))!important;color:var(--bad)!important}
html[data-product-theme="dark"] .attendance-all-present{background:color-mix(in srgb,var(--ok) 14%,var(--white));border-color:color-mix(in srgb,var(--ok) 42%,var(--line));color:var(--ok)}
html[data-product-theme="dark"] .event-attendance-link{background:color-mix(in srgb,var(--info) 12%,var(--white));border-color:color-mix(in srgb,var(--info) 42%,var(--line));color:var(--info)}
html[data-product-theme="dark"] .event-member-row:not(:disabled):hover,html[data-product-theme="dark"] .attendance-report-card:active{background:color-mix(in srgb,var(--info) 7%,var(--white));border-color:color-mix(in srgb,var(--info) 34%,var(--line))}
html[data-product-theme="dark"] .event-member-row.is-selected:not(:disabled):hover{background:color-mix(in srgb,var(--blue) 8%,var(--white));border-color:color-mix(in srgb,var(--blue) 36%,var(--line))}
html[data-product-theme="dark"] .chorister-profile-avatar{background:var(--neutral-control);color:var(--ink)}
html[data-product-theme="dark"] .chorister-profile-count{background:var(--pale);color:var(--blue)}
html[data-product-theme="dark"] #voice-counts .choir-voice-filter-pill,html[data-product-theme="dark"] #group-counts .choir-voice-filter-pill,html[data-product-theme="dark"] #attendance-voice-counts .choir-voice-filter-pill,html[data-product-theme="dark"] #attendance-group-counts .choir-voice-filter-pill,html[data-product-theme="dark"] #event-members-voice-filters .choir-voice-filter-pill,html[data-product-theme="dark"] #event-members-group-filters .choir-voice-filter-pill{border-color:var(--line);background:var(--neutral-control);color:var(--muted)}
html[data-product-theme="dark"] #voice-counts .choir-voice-filter-pill.is-selected,html[data-product-theme="dark"] #group-counts .choir-voice-filter-pill.is-selected,html[data-product-theme="dark"] #attendance-voice-counts .choir-voice-filter-pill.is-selected,html[data-product-theme="dark"] #attendance-group-counts .choir-voice-filter-pill.is-selected,html[data-product-theme="dark"] #event-members-voice-filters .choir-voice-filter-pill.is-selected,html[data-product-theme="dark"] #event-members-group-filters .choir-voice-filter-pill.is-selected{background:var(--blue);border-color:var(--blue);color:var(--on-brand)}
html[data-product-theme="dark"] .skeleton{background:linear-gradient(90deg,var(--neutral-control),var(--surface2),var(--neutral-control));background-size:200%}
html[data-product-theme="dark"] .table th{background:var(--table-header-surface)}html[data-product-theme="dark"] .mobile-screen.csv-import-screen .csv-import-mapping-card{background:var(--csv-mapping-surface)}
html[data-product-theme="dark"] .table th,html[data-product-theme="dark"] .table td,html[data-product-theme="dark"] .choir-team-preview-row{border-color:var(--line)}
html[data-product-theme="dark"] .attendance-progress-line,html[data-product-theme="dark"] .event-switch>span{background:var(--progress-track)}
html[data-product-theme="dark"] .attendance-progress-line>span{background:var(--info)}html[data-product-theme="dark"] .mobile-screen[data-cm-screen="event-attendance"] .mobile-screen-footer .btn.primary{background:var(--blue);color:var(--on-brand)}
html[data-product-theme="dark"] .admin-entry-login-title,html[data-product-theme="dark"] .system-section-button strong{color:var(--ink)}
html[data-product-theme="dark"] .system-section-button span,html[data-product-theme="dark"] .monitor-switch small,html[data-product-theme="dark"] .monitoring-health-meta,html[data-product-theme="dark"] .attendance-progress-value,html[data-product-theme="dark"] .attendance-search-icon,html[data-product-theme="dark"] .attendance-note-collapsible>summary,html[data-product-theme="dark"] .attendance-note-collapsible>summary::after,html[data-product-theme="dark"] .attendance-note-summary small,html[data-product-theme="dark"] .event-series-summary-copy small{color:var(--muted)}
html[data-product-theme="dark"] .manager-event-actions.has-attendance .btn.primary{background:var(--blue);color:var(--on-brand)}
html[data-product-theme="dark"] .event-series-summary-icon{background:var(--white);color:var(--info)}

/* Dark products: neutralize remaining legacy light-surface literals while preserving the exact light-product rendering. */
html[data-product-theme="dark"] input:focus,html[data-product-theme="dark"] select:focus,html[data-product-theme="dark"] textarea:focus,html[data-product-theme="dark"] .global-language-trigger:focus-visible,html[data-product-theme="dark"] .attendance-report-card:focus-visible,html[data-product-theme="dark"] .payment-history-card:focus-visible,html[data-product-theme="dark"] .repertoire-mobile-card:focus-visible,html[data-product-theme="dark"] .playlist-mobile-card:focus-visible,html[data-product-theme="dark"] .team-mobile-card:focus-visible,html[data-product-theme="dark"] .choir-team-preview>summary:focus-visible,html[data-product-theme="dark"] .choir-voices-preview>summary:focus-visible,html[data-product-theme="dark"] .event-switch>input:focus-visible+span,html[data-product-theme="dark"] .event-repeat-chip input:focus-visible+span{outline-color:color-mix(in srgb,var(--blue) 34%,transparent);border-color:var(--blue)}
html[data-product-theme="dark"] .app-header,html[data-product-theme="dark"] .mobile-screen-header,html[data-product-theme="dark"] .mobile-screen-footer{background:color-mix(in srgb,var(--white) 96%,transparent);border-color:var(--line)}
html[data-product-theme="dark"] .nav-btn{color:var(--muted)}
html[data-product-theme="dark"] .list-item:hover,html[data-product-theme="dark"] .payment-history-card:hover,html[data-product-theme="dark"] .repertoire-mobile-card:hover,html[data-product-theme="dark"] .playlist-mobile-card:hover,html[data-product-theme="dark"] .team-mobile-card:hover{border-color:var(--line-strong)}
html[data-product-theme="dark"] .empty{border-color:var(--line-strong)}
html[data-product-theme="dark"] .manager-event-actions .btn.ghost{border-color:var(--line-strong)}
html[data-product-theme="dark"] .chorister-profile-delete p{color:var(--bad)}
html[data-product-theme="dark"] .chorister-profile-delete .btn{border-color:var(--bad)}
html[data-product-theme="dark"] .mobile-screen[data-cm-screen="event-attendance"] .mobile-screen-back{color:var(--info)}
html[data-product-theme="dark"] .attendance-search{border-color:var(--line)}
html[data-product-theme="dark"] .payment-cancellation-info h3,html[data-product-theme="dark"] .payment-cancellation-info>div{border-color:color-mix(in srgb,var(--bad) 26%,var(--line))}
html[data-product-theme="dark"] .mobile-export-spinner,html[data-product-theme="dark"] .mobile-screen.csv-import-screen .csv-import-spinner,html[data-product-theme="dark"] .choir-backup-spinner{border-color:var(--progress-track);border-top-color:var(--blue)}
html[data-product-theme="dark"] .login-form input,html[data-product-theme="dark"] .login-form select{background:color-mix(in srgb,var(--field-bg) 94%,transparent);color:var(--ink);border-color:color-mix(in srgb,var(--muted) 42%,transparent)}
html[data-product-theme="dark"] .login-form input::placeholder{color:var(--muted)}
html[data-product-theme="dark"] .login-form input:focus,html[data-product-theme="dark"] .login-form select:focus{outline-color:color-mix(in srgb,var(--blue) 34%,transparent);border-color:var(--blue)}
html[data-product-theme="dark"] .login-form .btn.primary.block{background:var(--blue);color:var(--on-brand)}
html[data-product-theme="dark"] .login-form .error-text{color:var(--on-image)}
html[data-product-theme="dark"] .login-brand-wordmark{background:color-mix(in srgb,var(--white) 88%,transparent);border-color:color-mix(in srgb,var(--blue) 52%,var(--line));color:var(--blue);box-shadow:0 14px 36px rgba(0,0,0,.24)}
html[data-product-theme="dark"] .choir-team-preview-row,html[data-product-theme="dark"] .system-section-button,html[data-product-theme="dark"] .monitor-switch{border-color:var(--line)}

@media(max-width:520px){.legal-settings-links{grid-template-columns:1fr}.login-legal-links{gap:6px 10px}.login-legal-links a{font-size:11px}}

/* Offline application shell (Core). */
.offline-state-dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:0 0 auto}
.offline-state-dot.is-offline{background:var(--product-warning)}
.offline-state-dot.is-syncing{background:var(--product-info);animation:cm-offline-sync-pulse 1.25s ease-in-out infinite}
.offline-state-dot.is-error{background:var(--product-danger)}
@keyframes cm-offline-sync-pulse{0%,100%{opacity:.45;transform:scale(.9)}50%{opacity:1;transform:scale(1.14)}}
.offline-app-header{justify-content:space-between}
.offline-app-content{width:100%}
.offline-app-empty{min-height:100vh;display:grid;place-items:center;padding:24px}
.offline-app-empty-card{width:min(100%,460px)}
.offline-app-empty-card .brand{margin-bottom:18px}
.offline-app-status{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.offline-local-mode-bar{display:flex;align-items:center;gap:8px;min-height:36px;padding:6px 22px;border-bottom:1px solid var(--line);background:var(--surface2);color:var(--muted);font-size:12px;line-height:1.35}
.offline-local-mode-bar strong{color:var(--ink);font-size:12px}
.offline-local-mode-hint{min-width:0}
.offline-local-mode-login{margin-left:auto;min-height:28px;padding:4px 10px;background:var(--white);border:1px solid var(--line);color:var(--ink)}
.login-sync-hint{margin:2px 0 12px;text-align:center;color:var(--muted);font-size:13px;line-height:1.4}
@media(max-width:760px),(max-height:500px) and (max-width:1000px) and (pointer:coarse){.offline-local-mode-bar{padding:6px 12px;gap:6px;flex-wrap:wrap}.offline-local-mode-hint{flex:1 1 auto}.offline-local-mode-login{margin-left:auto}}
.event-root-card.is-offline-pending{outline:1px solid var(--product-warning)}

/* OFFLINE 1.7: compact sync state + account actions. */
.sync-status-host{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 36px;width:36px;min-width:36px}.sync-status-button{display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:50%;background:transparent;color:inherit}.sync-status-button:hover,.sync-status-button:focus-visible{background:var(--surface2);outline:none}.sync-status-button:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 18%,transparent)}.sync-status-dot{display:block;width:10px;height:10px;border-radius:50%;background:transparent;box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 10%,transparent)}.sync-status-button.is-synced .sync-status-dot{background:var(--ok)}.sync-status-button.is-offline .sync-status-dot{background:var(--warn)}.sync-status-button.is-syncing .sync-status-dot{background:var(--info);animation:cm-sync-pulse 1.45s ease-in-out infinite}.sync-status-button.is-problem .sync-status-dot{background:var(--bad)}@keyframes cm-sync-pulse{0%,100%{transform:scale(.82);opacity:.56}50%{transform:scale(1);opacity:1}}.sync-status-popover{position:absolute;z-index:90;right:0;top:calc(100% + 10px);width:min(320px,calc(100vw - 24px));padding:14px;background:var(--white);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 44px rgba(20,38,70,.18);color:var(--ink)}.sync-popover-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.sync-popover-grid{display:grid;gap:7px}.sync-popover-grid>div{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:13px}.sync-popover-grid span{color:var(--muted)}.sync-popover-grid strong{text-align:right}.sync-popover-problem{margin-top:11px;padding:10px;border-radius:10px;background:color-mix(in srgb,var(--bad) 8%,var(--white));color:var(--bad);font-size:13px;line-height:1.4}.sync-popover-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:12px}.account-settings-actions{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap}.account-settings-action{display:grid;gap:2px;min-width:160px}.account-settings-action .btn{width:100%}.account-settings-actions .btn{min-width:160px}.account-settings-actions .btn.danger{margin-left:auto}@media(max-width:760px),(max-height:500px) and (max-width:1000px) and (pointer:coarse){.sync-status-popover{position:fixed;top:76px;right:12px;left:auto}.account-settings-actions{display:grid;grid-template-columns:1fr}.account-settings-action{width:100%;min-width:0}.account-settings-actions .btn,.account-settings-actions .btn.danger{width:100%;min-width:0;margin-left:0}}@media(prefers-reduced-motion:reduce){.sync-status-button.is-syncing .sync-status-dot{animation:none}}

/* Events multi-export */
.events-export-form{display:grid;gap:16px;min-width:0}
.events-export-picker,.events-export-fields,.events-export-spoiler{min-width:0}
.events-export-picker>h3{margin:0 0 12px}
.events-export-query{margin-bottom:12px}
.events-export-filter-label{margin:10px 0 6px;color:var(--muted);font-size:12px;font-weight:800}
.events-export-status,.events-export-types{margin-bottom:8px}
.events-export-list{display:grid;gap:8px;max-height:46vh;overflow:auto;padding-right:2px;min-height:76px}
.events-export-item{position:relative;display:grid;grid-template-columns:66px minmax(0,1fr) 30px;gap:10px;align-items:center;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:15px;background:var(--white);color:var(--ink);text-align:left;cursor:pointer}
.events-export-item:hover:not(:disabled){border-color:var(--blue);box-shadow:var(--shadow)}
.events-export-item.is-selected{border-color:var(--blue);background:var(--pale)}
.events-export-item:disabled{opacity:.62;cursor:not-allowed}
.events-export-item .event-root-date{min-height:58px;padding:6px 4px}
.events-export-item .event-root-select-marker{display:block;position:static;align-self:center;justify-self:end}
.events-export-item.is-selected .event-root-select-marker{border-color:var(--blue);background:var(--blue)}
.events-export-item-main{display:grid;gap:4px;min-width:0}
.events-export-item-main>strong{font-size:14px;line-height:1.25;overflow-wrap:anywhere}
.events-export-item-main>span:not(.events-export-item-tags){font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.events-export-item-tags{display:flex;gap:5px;flex-wrap:wrap}
.events-export-spoiler{margin:0;padding:0;overflow:hidden}
.events-export-spoiler>summary{list-style:none;display:flex;align-items:center;gap:10px;min-height:52px;padding:13px 16px;cursor:pointer;color:var(--ink);user-select:none}
.events-export-spoiler>summary::-webkit-details-marker{display:none}
.events-export-spoiler>summary::after{content:'›';flex:0 0 auto;margin-left:2px;color:var(--muted);font-size:24px;line-height:1;transform:rotate(0deg);transition:transform .18s ease}
.events-export-spoiler[open]>summary::after{transform:rotate(90deg)}
.events-export-spoiler>summary:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 16%,transparent);outline-offset:-3px;border-radius:14px}
.events-export-spoiler-title{min-width:0;flex:1;font-size:16px;font-weight:800;overflow-wrap:anywhere}
.events-export-spoiler-body{border-top:1px solid var(--line);padding:14px 16px 16px}
.events-export-fields{display:grid;gap:10px}
.events-export-fields>label{margin:0}
@media(prefers-reduced-motion:reduce){.events-export-spoiler>summary::after{transition:none}}
.events-export-screen .events-export-list{max-height:none;overflow:visible}
.events-export-screen .events-export-form{padding-bottom:6px}

.events-export-action-footer{display:grid!important;grid-template-columns:minmax(72px,.8fr) minmax(86px,1fr) minmax(120px,1.35fr);gap:8px;align-items:stretch;justify-content:stretch}
.events-export-action-footer .btn{width:100%;min-width:0;margin:0;white-space:nowrap}
@media(max-width:420px){
  .events-export-action-footer{grid-template-columns:minmax(64px,.7fr) minmax(76px,.85fr) minmax(0,1.43fr);gap:6px;padding-left:max(10px,var(--cm-safe-inline));padding-right:max(10px,var(--cm-safe-inline))}
  .events-export-action-footer .btn{min-height:42px;padding:8px 6px;font-size:clamp(12px,3.35vw,13px)}
}
@media(max-width:700px){
  .events-export-query{grid-template-columns:minmax(0,1fr)}
  .events-export-item{grid-template-columns:56px minmax(0,1fr) 28px;padding:9px 8px}
  .events-export-item .event-root-date{min-height:54px}
}
.events-page-select-mobile,.events-mobile-notices{display:none}
@media(max-width:760px),(max-height:500px) and (max-width:1000px) and (pointer:coarse){
  .events-root .page-head .actions{display:flex;width:100%;gap:8px;align-items:center}
  .events-root .page-head .actions .btn{min-height:46px;margin:0;white-space:nowrap}
  .events-page-select-mobile{display:inline-flex;align-items:center;justify-content:center}
  .events-mobile-notices{display:grid;gap:3px;margin:-5px 0 12px}
}
