:root{
  --bg:#f6f3ee;--surface:#fff;--surface-soft:#fbfaf7;--ink:#243038;--muted:#6f777c;
  --line:#e4ded3;--line-strong:#d5ccbf;--nav:#141e28;--nav-soft:#213342;--accent:#c28a3a;
  --accent-dark:#9f6d29;--ok:#237a57;--warn:#aa6b13;--danger:#a63f3f;
  --radius:12px;--radius-lg:16px;--shadow:0 3px 12px rgba(30,50,66,.05);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink);background:var(--bg)
}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:var(--bg);font-size:15px;line-height:1.45;color:var(--ink)}
a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}

/* Shell */
.shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:var(--nav);color:#fff;padding:22px 16px;display:flex;flex-direction:column;z-index:20}.brand-logo{display:block;padding:2px 8px 20px;border-bottom:1px solid rgba(255,255,255,.13)}.brand-logo img{display:block;width:100%;height:auto;max-width:210px;max-height:62px;object-fit:contain;object-position:left center}.sidebar nav{margin-top:18px;display:grid;gap:5px}.nav-section{margin:15px 12px 3px;color:#d8b06c;font-size:10px;text-transform:uppercase;letter-spacing:.13em;font-weight:800}.nav-link{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:9px;color:#d9e4ee}.nav-link span{width:20px;text-align:center}.nav-link:hover,.nav-link.active{background:rgba(255,255,255,.10);box-shadow:inset 3px 0 0 var(--accent);color:#fff}.sidebar-bottom{margin-top:auto;display:grid;gap:14px}.language-switch{display:flex;gap:6px;margin:0}.language-switch input{display:none}.language-switch button{border:0;padding:5px 9px;border-radius:7px;background:rgba(255,255,255,.08);color:#fff;font-size:12px;min-height:auto}.language-switch button.active{background:#fff;color:var(--nav)}.main{min-width:0}.topbar{height:76px;background:rgba(255,255,255,.94);border-top:3px solid var(--accent);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;gap:16px;position:sticky;top:0;z-index:15;backdrop-filter:blur(9px)}.topbar h1{font-size:20px;margin:0}.topbar-title{min-width:0}.topbar-account{margin-left:auto;display:flex;align-items:center;gap:12px}.topbar-user{text-align:right;display:grid;line-height:1.2}.topbar-user strong{font-size:14px}.topbar-user small{font-size:10px;color:var(--muted);margin-top:3px}.topbar-account .ui-btn{min-height:34px}.menu{display:none;border:0;background:transparent;font-size:22px}.content{padding:28px;max-width:1500px}

/* Shared cards / section header */
.ui-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow);margin-bottom:18px}.ui-card-accent{border-top:4px solid var(--accent)}.ui-card-legacy{background:var(--surface-soft);border-style:dashed}.ui-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.ui-section-head h2{font-size:18px;margin:0}.ui-section-head p{margin:4px 0 0;color:var(--muted);font-size:13px}.ui-actions,.ui-row-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.ui-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.ui-empty,.empty-state{padding:16px;border:1px dashed var(--line-strong);border-radius:10px;color:var(--muted);background:var(--surface-soft)}

/* Shared buttons: same action = same component */
.ui-btn,.btn{appearance:none;border:1px solid var(--line-strong);background:#fff;color:var(--ink);border-radius:9px;min-height:38px;padding:8px 12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:650;line-height:1.1;white-space:nowrap;text-decoration:none;transition:background .15s,border-color .15s,color .15s,transform .05s}.ui-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.ui-btn:hover,.btn:hover{background:#f5f2ed;border-color:#c9bdad}.ui-btn:active,.btn:active{transform:translateY(1px)}.ui-btn-primary,.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.ui-btn-primary:hover,.btn.primary:hover{background:var(--accent-dark);border-color:var(--accent-dark)}.ui-btn-secondary{background:#fff;color:var(--ink)}.ui-btn-danger,.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.ui-btn-danger:hover,.btn.danger:hover{filter:brightness(.93)}.ui-btn-warning{border-color:#e2c497;color:#805416;background:#fffaf1}.ui-btn-sm{min-height:34px;padding:6px 10px;font-size:12px}.ui-btn-md{min-height:40px;padding:9px 14px}.danger-outline{border-color:#d9a7a7!important;color:var(--danger)!important;background:#fff!important}.danger-outline:hover{background:#fff0f0!important}.link,.link-button{color:var(--accent-dark);text-decoration:underline;text-underline-offset:2px}.link-button{border:0;background:none;padding:0}.ui-actions-cell{text-align:right;width:1%;white-space:nowrap}

/* Shared filter and form logic */
.ui-filterbar{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:16px}.ui-filterbar input,.ui-filterbar select{min-width:220px}.ui-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ui-form-grid-wide{grid-template-columns:repeat(4,minmax(150px,1fr));align-items:end}.ui-form-grid label,.stack-form label,form label{display:grid;gap:6px;color:var(--muted);font-size:13px;margin:0}.ui-form-grid label.wide{grid-column:span 2}.ui-form-grid .check{display:flex;align-items:center;gap:8px}.ui-form-grid-wide .check{grid-column:1/-1}.ui-form-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:16px}.wide-field{grid-column:1/-1}input,select,textarea{border:1px solid #cfd8df;background:#fff;border-radius:9px;padding:9px 11px;min-height:40px;max-width:100%;color:var(--ink)}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid rgba(194,138,58,.18);border-color:var(--accent)}.compact{margin:0}.inline-action{display:inline-flex;gap:7px;align-items:center;margin:0}.inline-action input{min-height:34px;padding:6px 8px;margin:0}.stack-form{display:grid;gap:12px}

/* Shared table system */
.ui-table-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:auto;box-shadow:0 2px 8px rgba(30,50,66,.025)}.ui-table{border-collapse:collapse;width:100%;min-width:720px}.ui-table th,.ui-table td{padding:11px 13px;border-bottom:1px solid #edf0f2;text-align:left;vertical-align:middle}.ui-table th{background:#f7f5f1;color:#56616a;font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:750;position:sticky;top:0;z-index:1}.ui-table tbody tr:last-child td{border-bottom:0}.ui-table tbody tr:hover{background:#fcfbf8}.ui-table td small{display:block;color:var(--muted);margin-top:3px}.ui-table td:last-child,.ui-table th:last-child{text-align:right}.money{text-align:right!important;white-space:nowrap}.purpose{max-width:520px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.94em}

/* Shared detail/list primitives */
.detail-grid,.student-summary{display:grid;grid-template-columns:1fr 1fr;gap:18px}.student-summary{grid-template-columns:1.2fr .8fr}.data-list{display:grid;grid-template-columns:180px 1fr;gap:9px 15px;margin:0}.data-list dt{color:var(--muted)}.data-list dd{margin:0}.ui-list-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid #edf0f2}.ui-list-row:last-child{border-bottom:0}.ui-list-row small{display:block;color:var(--muted);margin-top:3px}.ui-card hr{border:0;border-top:1px solid var(--line);margin:20px 0}.ui-card h3{font-size:14px;margin:16px 0 10px}

/* Status */
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700;background:#edf1f4;color:#50606d;white-space:nowrap}.badge.ok{background:#e2f3eb;color:#226a4e}.badge.warn{background:#fff0d9;color:#8a5711}.badge.danger{background:#f8e1e1;color:#923535}.badge.neutral{background:#edf1f4;color:#50606d}.flash{padding:12px 14px;border-radius:10px;margin-bottom:14px;border:1px solid}.flash.success{background:#eaf6ef;border-color:#b9dfc8;color:#225e45}.flash.error{background:#fceaea;border-color:#e8bebe;color:#842f2f}.flash.warn{background:#fff4df;border-color:#ecd2a5;color:#805416}.muted{color:var(--muted)}.small{font-size:12px}.danger-text{color:var(--danger)!important}

/* Dashboard */.stats{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:14px;margin-bottom:20px}.compact-stats{grid-template-columns:repeat(2,minmax(180px,1fr));max-width:760px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.stat span{display:block;color:var(--muted);font-size:13px}.stat strong{font-size:30px;display:block;margin-top:7px}.stat.warn strong{color:var(--warn)}.stat.danger strong{color:var(--danger)}

/* Photos, history, progress */
.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:12px}.photo-card{border:1px solid var(--line);border-radius:var(--radius);padding:8px;background:#fff;display:grid;gap:6px}.photo-card img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:8px;background:#edf1f4}.photo-card strong{font-size:13px}.photo-card small{font-size:11px;color:var(--muted);overflow-wrap:anywhere}.timeline-row{display:grid;grid-template-columns:18px 1fr auto;gap:10px;align-items:start;padding:10px 0;border-bottom:1px solid #edf0f2}.timeline-row:last-child{border-bottom:0}.timeline-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);margin-top:5px}.timeline-row small{display:block;color:var(--muted);margin-top:2px}.progress-list{display:grid;gap:7px}.progress-row{display:grid;grid-template-columns:24px minmax(120px,1fr) auto auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px}.progress-row:hover,.progress-row.active{background:#f7f3ec;border-color:#cfb68f}.progress-row small{color:var(--muted)}

/* Family extras */
.chip-list{display:flex;gap:8px;flex-wrap:wrap}.chip{display:inline-flex;padding:6px 9px;border-radius:999px;background:#f2eee7;border:1px solid #ded4c4;color:#795927;font-size:12px}.family-contact-summary{display:flex;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:12px}.family-contact-summary span:not(:last-child)::after{content:" · ";margin-left:8px}.action-details summary{cursor:pointer;color:var(--accent-dark);text-decoration:underline;text-underline-offset:2px;white-space:nowrap}.action-details[open]{min-width:240px}.mini-form{padding:12px 0 4px;min-width:230px}

/* Autocomplete */
.autocomplete{position:relative;display:grid;gap:5px}.autocomplete-menu{position:absolute;z-index:40;left:0;right:0;top:100%;margin-top:4px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px rgba(20,30,40,.16);padding:5px;max-height:260px;overflow:auto}.autocomplete-option{display:block;width:100%;border:0;background:#fff;color:var(--ink);text-align:left;padding:9px 10px;border-radius:7px}.autocomplete-option:hover,.autocomplete-option:focus{background:#f4efe7;outline:none}

/* Login/setup */
.auth-main,.setup-main{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#e8e2d8,#faf8f4)}.auth-card,.setup-card{width:min(480px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:var(--shadow)}.setup-card{width:min(820px,100%)}.auth-logo-wrap{background:var(--nav);border-radius:14px;padding:18px 20px;margin-bottom:22px}.auth-logo-wrap img{display:block;width:100%;height:auto}.auth-card h1,.setup-card h1{margin:0 0 18px;font-size:25px}.auth-card form{display:grid;gap:14px}.auth-foot{text-align:center;margin-top:18px;color:var(--muted);font-size:13px}.setup-form{display:grid;gap:16px}.setup-form fieldset{border:1px solid var(--line);border-radius:12px;padding:15px}.setup-form legend{padding:0 7px;font-weight:700}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.admin-row{display:grid;grid-template-columns:1fr 1fr 2fr;gap:10px;align-items:center;padding:8px 0}.setup-card code{background:#eef2f5;padding:2px 5px;border-radius:5px}.setup-kicker{margin:-7px 0 20px;color:var(--muted);font-size:13px}

/* Legacy classes retained only for compatibility; visually mapped to the system */
.cards{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:14px}.person-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:flex;gap:14px;align-items:center}.avatar{width:46px;height:46px;border-radius:50%;background:#e8eef3;color:var(--nav);display:grid;place-items:center;font-weight:800}.person-card small{display:block;color:var(--muted);margin:3px 0 7px}.sponsorship-form{grid-template-columns:repeat(5,minmax(140px,1fr))}.sponsorship-form .wide{grid-column:span 2}

@media(max-width:1100px){.sponsorship-form{grid-template-columns:repeat(3,minmax(150px,1fr))}}
@media(max-width:980px){.shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-280px;width:260px;transition:left .2s}.sidebar.open{left:0}.menu{display:block}.content{padding:18px}.stats{grid-template-columns:repeat(2,1fr)}.detail-grid,.student-summary{grid-template-columns:1fr}.ui-form-grid-wide{grid-template-columns:1fr 1fr}.topbar-account .ui-btn span{display:none}.cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.topbar{padding:0 14px;height:64px}.content{padding:12px}.stats,.compact-stats{grid-template-columns:1fr 1fr;gap:9px}.stat{padding:14px}.stat strong{font-size:24px}.topbar-account{gap:8px}.topbar-user strong{font-size:13px}.ui-filterbar{display:grid}.ui-filterbar input,.ui-filterbar select{width:100%;min-width:0}.ui-section-head{align-items:stretch;flex-direction:column}.ui-actions{justify-content:flex-start}.ui-form-grid,.ui-form-grid-wide,.grid2,.admin-row{grid-template-columns:1fr}.ui-form-grid label.wide,.sponsorship-form .wide,.wide-field{grid-column:auto}.data-list{grid-template-columns:1fr}.data-list dt{font-size:12px}.photo-grid{grid-template-columns:repeat(2,1fr)}.progress-row{grid-template-columns:22px 1fr auto}.progress-row small{grid-column:2}.auth-card,.setup-card{padding:20px}.cards{grid-template-columns:1fr}.ui-row-actions{justify-content:flex-end}.ui-btn span{display:inline}}

/* 0.5.3 searchable donor combobox */
.donor-combobox{display:block}.donor-combobox>input[data-donor-autocomplete]{padding-right:42px;width:100%}.combo-toggle{position:absolute;right:5px;top:5px;bottom:5px;width:34px;border:0;border-left:1px solid var(--line);background:transparent;color:var(--muted);font-size:18px;cursor:pointer}.combo-toggle:hover{color:var(--ink);background:#f4efe7}.ui-callout{border:1px solid var(--line);border-radius:12px;padding:14px;margin:12px 0;background:#fff}.ui-callout.warn{border-color:#e5c68d;background:#fff9ee}.ui-callout p{margin:.35rem 0 .75rem}

/* 0.6.0 User & permission management */
.ui-fieldset{border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin:0;background:#fff}.ui-fieldset legend{padding:0 7px;font-weight:800;color:var(--ink)}
.permission-modules{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:14px}.permission-module{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fbfaf7}.permission-module h3{margin:0 0 10px;font-size:14px}.permission-check-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:9px}.permission-check{display:flex!important;align-items:flex-start;gap:9px!important;border:1px solid var(--line);border-radius:10px;padding:10px 11px;background:#fff;color:var(--ink)!important;cursor:pointer}.permission-check:hover{border-color:#c8ab7a;background:#fffaf1}.permission-check input{min-height:auto;margin:3px 0 0;flex:0 0 auto}.permission-check span{display:block;min-width:0}.permission-check strong{display:block;font-size:13px}.permission-check small{display:block;color:var(--muted);font-size:11px;margin-top:3px;overflow-wrap:anywhere}.permission-check.is-disabled{opacity:.75;cursor:not-allowed;background:#f4f4f2}.permission-check.is-disabled:hover{border-color:var(--line);background:#f4f4f2}.chip-list a.chip{text-decoration:none}.chip-list a.chip:hover{border-color:#c8ab7a;background:#fff7e9}
@media(max-width:980px){.permission-modules,.permission-check-grid{grid-template-columns:1fr}}
.permission-check.is-inherited{background:#f3f6f8;border-style:dashed}.permission-check.is-inherited small{color:#637685}

/* 0.7.0 profile/account menu */
.topbar-account{position:relative;margin-left:auto}.account-trigger{display:flex;align-items:center;gap:.55rem;border:0;background:transparent;padding:.3rem .45rem;border-radius:999px;cursor:pointer;color:inherit}.account-trigger:hover{background:#f1eee8}.account-avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;border:1px solid #d9d1c4;background:#17232d;color:white;display:inline-flex;align-items:center;justify-content:center;font-weight:700}.account-initials{font-size:.8rem}.account-name{font-weight:700;white-space:nowrap}.account-caret{font-size:.75rem}.account-menu{position:absolute;right:0;top:calc(100% + .45rem);z-index:40;min-width:210px;background:#fff;border:1px solid #ded7cc;border-radius:12px;box-shadow:0 14px 36px rgba(20,30,40,.16);padding:.35rem}.account-menu a,.account-version{display:block;padding:.65rem .75rem;border-radius:8px;text-decoration:none;color:#17232d}.account-menu a:hover{background:#f6f3ee}.account-version{font-size:.78rem;color:#69737c;border-top:1px solid #eee8de;border-bottom:1px solid #eee8de;border-radius:0}.profile-photo-editor{grid-column:1/-1;display:flex;align-items:center;gap:1rem;padding:.5rem 0}.profile-photo-editor>img,.profile-photo-editor>span{width:84px;height:84px;border-radius:50%;object-fit:cover;background:#17232d;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.4rem}.profile-photo-editor label{flex:1}.auth-divider{display:flex;align-items:center;gap:.7rem;margin:1rem 0;color:#7a7f84;font-size:.8rem}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:#e2ddd5;flex:1}.wide-button{width:100%;justify-content:center}.top-gap{margin-top:1rem}
@media(max-width:700px){.account-name{display:none}.account-menu{right:-.25rem}.profile-photo-editor{align-items:flex-start;flex-direction:column}}

/* 0.8.0 student photo lifecycle */
.student-profile-main{display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px;align-items:start}.student-current-photo{display:block;width:150px;aspect-ratio:4/5;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.18);background:#edf1f4}.student-current-photo img{width:100%;height:100%;object-fit:cover;display:block}.student-current-photo.photo-placeholder{display:grid;place-items:center;font-size:42px;color:var(--muted);background:#f1f3f5}.student-profile-data{min-width:0}.photo-card>a{display:block}.photo-card .ui-row-actions{margin-top:2px;align-items:center}.photo-upload-details{margin:0 0 14px}.donor-sponsored-child{padding:0 0 16px}.donor-sponsored-child+.donor-sponsored-child{border-top:1px solid var(--line)}.donor-photo-history{margin-top:12px;grid-template-columns:repeat(5,minmax(100px,1fr))}
@media(max-width:620px){.student-profile-main{grid-template-columns:96px minmax(0,1fr);gap:12px}.student-current-photo{width:96px}.donor-photo-history{grid-template-columns:repeat(2,1fr)}}
.student-list-person{display:flex;align-items:center;gap:10px;min-width:210px}.student-list-person img,.student-list-avatar{width:38px;height:48px;border-radius:7px;object-fit:cover;background:#edf1f4;border:1px solid var(--line);flex:0 0 auto}.student-list-avatar{display:grid;place-items:center;color:var(--muted)}

/* 0.9.0 account-security dialogs */
.security-setting-list{display:grid;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.security-setting-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 16px}.security-setting-row+.security-setting-row{border-top:1px solid var(--line)}.security-setting-row strong{display:block}.security-setting-row small{display:block;color:var(--muted);margin-top:3px}.ui-dialog{width:min(560px,calc(100vw - 28px));max-height:min(86vh,760px);border:0;border-radius:16px;padding:0;background:#fff;color:var(--ink);box-shadow:0 24px 70px rgba(20,30,40,.28)}.ui-dialog-wide{width:min(820px,calc(100vw - 28px))}.ui-dialog::backdrop{background:rgba(17,27,35,.58);backdrop-filter:blur(2px)}.ui-dialog-shell{padding:20px;overflow:auto;max-height:86vh}.ui-dialog .ui-section-head{margin-bottom:16px}.dialog-close{border:0;background:transparent;font-size:26px;line-height:1;width:36px;height:36px;border-radius:50%;cursor:pointer;color:var(--muted)}.dialog-close:hover{background:#f1eee8;color:var(--ink)}.dialog-danger-zone{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);display:flex;justify-content:flex-end}.ui-dialog .ui-form-actions{margin-top:8px;justify-content:flex-end}.ui-dialog .ui-toolbar{margin-bottom:12px}
@media(max-width:640px){.security-setting-row{align-items:flex-start;flex-direction:column}.security-setting-row .ui-btn{width:100%;justify-content:center}.ui-dialog-shell{padding:16px}}

/* 0.11.0 list filtering, sorting and progressive infinite rendering */
.table-sort{appearance:none;border:0;background:transparent;color:inherit;text-transform:inherit;letter-spacing:inherit;font-weight:inherit;padding:0;display:inline-flex;align-items:center;gap:5px}.table-sort>span:last-child{opacity:.45}.table-sort.is-asc>span:last-child,.table-sort.is-desc>span:last-child{opacity:1;font-size:0}.table-sort.is-asc>span:last-child::after{content:"↑";font-size:12px}.table-sort.is-desc>span:last-child::after{content:"↓";font-size:12px}.table-filter-row th{top:35px;background:#fbfaf7;padding:7px}.table-filter-row input{width:100%;min-width:95px;min-height:32px;padding:5px 7px;font-size:12px;text-transform:none;letter-spacing:normal}.infinite-sentinel{text-align:center;color:var(--muted);font-size:12px;padding:9px 0 16px}.infinite-sentinel[hidden]{display:none}.allocation-grid{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:10px}.allocation-grid label{border:1px solid var(--line);border-radius:10px;padding:11px;background:#fff;display:grid;grid-template-columns:minmax(0,1fr) 130px;align-items:center;gap:12px}.allocation-grid label span small{display:block;color:var(--muted);margin-top:3px}.allocation-total{display:flex;justify-content:flex-end;gap:24px;margin-top:15px;padding-top:13px;border-top:1px solid var(--line)}.allocation-error{color:var(--danger)}.internal-note{border-left:4px solid var(--accent);background:#fff9ee}.period-toolbar{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin:12px 0}.storage-metrics{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px}.storage-metric{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--surface-soft)}.storage-metric strong{font-size:22px;display:block;margin-top:4px}.storage-metric small{color:var(--muted)}
@media(max-width:700px){.allocation-grid{grid-template-columns:1fr}.allocation-grid label{grid-template-columns:1fr}.allocation-total{justify-content:flex-start;flex-direction:column;gap:5px}.storage-metrics{grid-template-columns:1fr 1fr}}

/* 0.12.0 inactivity lock screen */
.lock-card{width:min(520px,100%)}.lock-user{margin:-6px 0 18px}.pin-label{display:block;font-weight:700;margin-bottom:9px}.pin-digits{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}.pin-digit{width:100%;min-width:0;height:58px;padding:0;text-align:center;font-size:26px;font-weight:800;letter-spacing:0;border:1px solid var(--line-strong);border-radius:11px;background:#fff}.pin-digit:focus{outline:3px solid rgba(164,112,45,.18);border-color:var(--accent)}.pin-auto-help{text-align:center;margin:8px 0 0}.lock-actions{display:flex;justify-content:center;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.lock-actions .ui-btn{width:100%}
@media(max-width:430px){.pin-digits{gap:6px}.pin-digit{height:52px;font-size:22px;border-radius:9px}}
.account-menu-logout{padding:.45rem .5rem}.account-menu-logout .ui-btn{width:100%;display:flex;justify-content:flex-start;align-items:center}.account-menu-logout .ui-btn>svg{display:block;flex:0 0 16px}.account-menu-logout .ui-btn>span{display:flex;align-items:center;min-height:16px;line-height:16px}
.receipt-selection-summary{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:12px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#faf8f4}.receipt-selection-summary strong{font-size:18px}
/* 0.13.0 searchable empty states */
.ui-empty>p{margin:0 0 10px}.empty-search{max-width:520px}.empty-search label{display:block}.empty-search input{width:100%}.empty-search .autocomplete-option small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.sr-only{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}
/* 0.13.0 compact sponsorship administration */
.sponsorships-toolbar{padding-top:14px;padding-bottom:14px}.sponsorships-toolbar .ui-section-head{margin-bottom:0}
@media(min-width:900px){.sponsorship-compact-form{grid-template-columns:1.35fr 1.35fr .75fr .75fr .8fr}.sponsorship-compact-form .wide{grid-column:span 2}}
/* 0.13.0 secure bilingual e-mail preview */
.email-template-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);gap:18px;align-items:start}.email-preview-pane{position:sticky;top:18px;min-width:0}.email-preview-pane .ui-section-head{margin-bottom:10px}.email-preview-pane h3{margin:0}.email-preview-subject{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--line);border-radius:10px 10px 0 0;background:var(--surface-soft)}.email-preview-subject small{color:var(--muted)}.email-preview-frame{display:block;width:100%;height:610px;border:1px solid var(--line);border-top:0;border-radius:0 0 10px 10px;background:#fff}.portal-system-dialog{z-index:2147483647}.portal-dialog-message{white-space:pre-wrap}.portal-system-dialog input{width:100%;margin:10px 0}
@media(max-width:980px){.email-template-grid{grid-template-columns:1fr}.email-preview-pane{position:static}.email-preview-frame{height:520px}}
.system-runtime-details{margin-top:6px}.system-runtime-details summary{cursor:pointer;color:var(--muted);font-size:12px}.system-runtime-details small{display:block;margin-top:5px}
/* 0.13.0 keep bank actions legible instead of clipping them to a lone icon */
.bank-transactions-table{min-width:1180px}.bank-transactions-table th:nth-child(1),.bank-transactions-table td:nth-child(1){width:112px;white-space:nowrap}.bank-transactions-table th:nth-child(2),.bank-transactions-table td:nth-child(2){width:110px;white-space:nowrap}.bank-transactions-table th:nth-child(5),.bank-transactions-table td:nth-child(5){width:150px}.bank-transactions-table th:nth-child(6),.bank-transactions-table td:nth-child(6){width:125px}.bank-transactions-table th:nth-child(7),.bank-transactions-table td:nth-child(7){width:155px}.bank-transactions-table th:last-child,.bank-transactions-table td:last-child{position:static;right:auto;background:inherit;z-index:auto;width:205px;min-width:205px;white-space:normal;box-shadow:none}.bank-transactions-table th:last-child{background:#f7f5f1}.bank-transactions-table td.bank-amount{font-size:14px}.bank-action-stack{display:grid;gap:7px;align-items:stretch;justify-items:stretch}.bank-action-stack>.ui-btn,.bank-action-stack>.btn{width:100%;justify-content:flex-start;text-align:left}.bank-action-stack .muted{text-align:center}


/* 0.15.0 revision-safe conversation notes */
.note-thread{display:grid;gap:14px}.note-filters{margin:0}.note-list{display:grid;gap:10px}.note-message{position:relative;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}.note-message.note-reply{margin-left:28px;border-left-width:3px}.note-message.is-archived{background:#f7f7f7}.note-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12px;color:var(--muted)}.note-meta strong{font-size:13px;color:var(--ink)}.note-body{margin-top:8px;white-space:normal;overflow-wrap:anywhere}.note-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}.note-actions details{display:inline-block}.note-actions summary{list-style:none;cursor:pointer}.note-actions summary::-webkit-details-marker{display:none}.note-reply-form{display:grid;gap:8px;margin-top:8px;min-width:min(520px,70vw)}.note-compose{display:grid;gap:10px;padding-top:12px;border-top:1px solid var(--line)}.note-compose label{display:grid;gap:6px}.note-delete-reason{margin-top:8px;padding:8px 10px;border-radius:8px;background:#fff4df;font-size:12px}.note-dialog{padding:20px;z-index:2147483647}.note-dialog form{margin:0}.note-moderation-list{display:grid;gap:12px}.inline-form{display:inline-flex;margin:0}
@media(max-width:620px){.note-message.note-reply{margin-left:14px}.note-reply-form{min-width:0;width:100%}.note-actions{align-items:stretch}.note-actions>.ui-btn,.note-actions>form .ui-btn,.note-actions details>summary{width:100%;justify-content:center}}

/* 0.16.1 protected student photo lightbox */
.photo-viewer-dialog{width:min(1320px,calc(100vw - 20px));height:min(96vh,960px);max-height:96vh;padding:0;overflow:hidden;z-index:2147483647;background:#111820;border:0}.photo-viewer-dialog::backdrop{background:rgba(7,12,16,.82);backdrop-filter:blur(3px)}.photo-viewer-shell{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;background:#111820;color:#fff}.photo-viewer-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.12)}.photo-viewer-head-copy{display:grid;gap:2px;min-width:0}.photo-viewer-head-copy small{color:rgba(255,255,255,.72)}.photo-viewer-head .dialog-close{color:#fff}.photo-viewer-head .dialog-close:hover{background:rgba(255,255,255,.12);color:#fff}.photo-viewer-stage{position:relative;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:10px 12px}.photo-viewer-figure{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-width:0;min-height:0}.photo-viewer-stage img{display:block;max-width:100%;max-height:90%;width:auto;height:auto;object-fit:contain;border-radius:12px;box-shadow:0 14px 40px rgba(0,0,0,.38)}.photo-viewer-zone{position:absolute;top:0;bottom:0;width:50%;border:0;background:transparent;padding:0;cursor:pointer;z-index:2;display:flex;align-items:center;font-size:48px;color:rgba(255,255,255,.82);transition:background .18s ease,color .18s ease}.photo-viewer-zone span{pointer-events:none;opacity:0;transition:opacity .18s ease}.photo-viewer-zone-prev{left:0;justify-content:flex-start;padding-left:18px}.photo-viewer-zone-next{right:0;justify-content:flex-end;padding-right:18px}.photo-viewer-stage:hover .photo-viewer-zone span,.photo-viewer-zone:focus-visible span{opacity:1}.photo-viewer-zone:hover{background:linear-gradient(90deg,rgba(255,255,255,.10),rgba(255,255,255,0))}.photo-viewer-zone-next:hover{background:linear-gradient(270deg,rgba(255,255,255,.10),rgba(255,255,255,0))}.photo-viewer-zone:focus-visible{outline:2px solid rgba(255,255,255,.9);outline-offset:-4px}.photo-viewer-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:12px 14px 14px;border-top:1px solid rgba(255,255,255,.12);background:rgba(6,12,18,.94)}.photo-viewer-meta-item{min-width:0}.photo-viewer-meta-item small{display:block;margin-bottom:4px;color:rgba(255,255,255,.66);font-size:12px}.photo-viewer-meta-item strong{display:block;font-size:14px;line-height:1.35;overflow-wrap:anywhere}.photo-viewer-error{position:absolute;inset:0;margin:0;display:grid;place-items:center;color:#fff;text-align:center;padding:24px}.student-current-photo,.photo-card>a[data-photo-lightbox]{cursor:zoom-in}@media(max-width:760px){.photo-viewer-dialog{width:min(100vw,100vw);height:100vh;max-height:100vh;border-radius:0}.photo-viewer-stage{padding:8px}.photo-viewer-zone{width:50%;font-size:38px}.photo-viewer-zone span{opacity:1}.photo-viewer-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:10px 12px 14px}}

/* 0.17.1 auditable family-person duplicate merge */
.family-merge-dialog{z-index:2147483647}.family-merge-dialog .ui-dialog-shell{width:min(720px,calc(100vw - 32px))}.family-merge-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.family-merge-choice{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft)}.family-merge-choice span{display:grid;gap:3px;min-width:0}.family-merge-choice small{color:var(--muted)}
@media(max-width:620px){.family-merge-compare{grid-template-columns:1fr}.family-merge-dialog .ui-dialog-shell{width:calc(100vw - 20px)}}

/* 0.17.2 compact family review and guided duplicate resolution */
.family-overview-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 12px}.family-overview-stats>div{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft)}.family-overview-stats span{font-size:11px;line-height:1.2;color:var(--muted)}.family-overview-stats strong{font-size:18px;line-height:1}.family-overview-stats .needs-review{border-color:#d8ad58;background:#fff9ed}.family-review-table td{vertical-align:top}.family-review-student{display:grid;gap:7px;min-width:190px}.family-review-student .ui-btn{justify-self:start}.family-review-reasons{display:flex;flex-wrap:wrap;gap:7px;align-items:center;min-width:260px}.family-review-summary{width:100%;font-size:12px;color:var(--muted)}.family-review-chip{display:inline-flex;align-items:center;min-height:30px;padding:5px 9px;border:1px solid var(--line);border-radius:999px;background:var(--surface-soft);font-size:12px;font-weight:600;color:var(--ink)}button.family-review-chip{font:inherit;cursor:pointer}.family-review-chip.is-action{border-color:var(--accent);background:rgba(194,138,58,.12);color:var(--accent-dark)}.family-review-chip.is-same{opacity:.78}.family-review-student-dialog{z-index:2147483647}.family-review-student-dialog .ui-dialog-shell{width:min(620px,calc(100vw - 28px))}.family-review-student-data{margin-bottom:14px}.family-review-parent-list{display:grid;gap:7px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft)}.family-review-parent-row{display:grid;grid-template-columns:100px minmax(0,1fr);gap:10px}.family-merge-dialog .ui-dialog-shell{width:min(1120px,calc(100vw - 28px));max-height:min(92vh,920px);overflow:auto}.family-merge-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0 14px}.family-merge-summary>div{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft)}.family-merge-summary small,.family-merge-summary span{color:var(--muted)}.family-compare-table{display:grid;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:8px 0 14px}.family-compare-head,.family-compare-row{display:grid;grid-template-columns:150px minmax(140px,1fr) minmax(140px,1fr) minmax(220px,1.2fr);gap:0}.family-compare-head{background:var(--surface-soft);font-size:12px;font-weight:700}.family-compare-head>*{padding:8px 10px}.family-compare-row{border-top:1px solid var(--line);align-items:start}.family-compare-row>*{min-width:0;padding:9px 10px;overflow-wrap:anywhere}.family-compare-row.is-conflict{background:#fff9ed}.family-merge-resolution{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.family-merge-resolution label{display:inline-flex;align-items:center;gap:4px;margin:0;font-size:12px}.family-custom-value{flex:1 1 150px;min-width:120px}.family-auto-value{font-size:12px;color:var(--muted)}
@media(max-width:900px){.family-overview-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.family-compare-head{display:none}.family-compare-row{grid-template-columns:1fr 1fr}.family-compare-row>strong{grid-column:1/-1;background:var(--surface-soft)}.family-merge-resolution{grid-column:1/-1;border-top:1px dashed var(--line)}}
@media(max-width:620px){.family-overview-stats{grid-template-columns:1fr 1fr}.family-overview-stats>div{padding:6px 8px}.family-overview-stats span{font-size:10px}.family-overview-stats strong{font-size:16px}.family-merge-summary{grid-template-columns:1fr}.family-compare-row{grid-template-columns:1fr}.family-compare-row>*{grid-column:1}.family-review-reasons{min-width:210px}.family-review-student{min-width:160px}}


/* 0.17.3 large family review/merge dialogs: page-sized, vertical scrolling only */
.family-review-student-dialog{
  width:min(1180px,calc(100vw - 24px));
  height:min(94vh,940px);
  max-height:94vh;
  overflow:hidden;
}
.family-review-student-dialog .ui-dialog-shell{
  width:100%;
  height:100%;
  max-height:100%;
  overflow-y:auto;
  overflow-x:hidden;
  padding:22px 24px;
}
.family-review-student-dialog .family-review-student-data{
  grid-template-columns:minmax(150px,220px) minmax(0,1fr);
  max-width:none;
}
.family-review-student-dialog .family-review-parent-list{
  width:100%;
}
.family-review-student-dialog .family-review-parent-row{
  grid-template-columns:minmax(120px,180px) minmax(0,1fr);
}

.family-merge-dialog{
  width:min(1500px,calc(100vw - 20px));
  height:min(96vh,1040px);
  max-height:96vh;
  overflow:hidden;
}
.family-merge-dialog .ui-dialog-shell{
  width:100%;
  height:100%;
  max-height:100%;
  overflow-y:auto;
  overflow-x:hidden;
  padding:22px 24px 26px;
}
.family-merge-dialog .family-merge-form,
.family-merge-dialog .family-compare-table,
.family-merge-dialog .family-merge-summary{
  min-width:0;
  max-width:100%;
}
.family-merge-dialog .family-compare-table{
  overflow:hidden;
}
.family-merge-dialog .family-compare-head,
.family-merge-dialog .family-compare-row{
  grid-template-columns:minmax(130px,.75fr) minmax(0,1fr) minmax(0,1fr) minmax(250px,1.35fr);
}
.family-merge-dialog .family-compare-row>*{
  min-width:0;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.family-merge-dialog .family-merge-resolution{
  min-width:0;
}
.family-merge-dialog .family-custom-value{
  flex:1 1 180px;
  width:auto;
  max-width:100%;
}

@media(max-width:980px){
  .family-review-student-dialog{
    width:calc(100vw - 16px);
    height:calc(100vh - 16px);
    max-height:calc(100vh - 16px);
  }
  .family-merge-dialog{
    width:calc(100vw - 12px);
    height:calc(100vh - 12px);
    max-height:calc(100vh - 12px);
  }
  .family-merge-dialog .family-compare-head{
    grid-template-columns:130px minmax(0,1fr) minmax(0,1fr);
  }
  .family-merge-dialog .family-compare-head>*:last-child{display:none}
  .family-merge-dialog .family-compare-row{
    grid-template-columns:130px minmax(0,1fr) minmax(0,1fr);
  }
  .family-merge-dialog .family-compare-row>.family-merge-resolution{
    grid-column:1/-1;
    padding-top:8px;
    border-top:1px dashed var(--line);
  }
}

@media(max-width:620px){
  .family-review-student-dialog,
  .family-merge-dialog{
    width:100vw;
    height:100vh;
    max-height:100vh;
    border-radius:0;
  }
  .family-review-student-dialog .ui-dialog-shell,
  .family-merge-dialog .ui-dialog-shell{
    padding:16px;
  }
  .family-review-student-dialog .family-review-student-data{
    grid-template-columns:1fr;
    gap:3px;
  }
  .family-review-student-dialog .family-review-student-data dd{
    margin:0 0 8px;
  }
  .family-review-student-dialog .family-review-parent-row{
    grid-template-columns:1fr;
    gap:2px;
  }
  .family-merge-summary{grid-template-columns:1fr}
  .family-merge-dialog .family-compare-head{display:none}
  .family-merge-dialog .family-compare-row{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    border-top:1px solid var(--line);
  }
  .family-merge-dialog .family-compare-row>strong{
    grid-column:1/-1;
    background:var(--surface-soft);
    border-bottom:1px solid var(--line);
  }
  .family-merge-dialog .family-compare-row>span:nth-child(2)::before{
    content:'A';display:block;font-size:10px;font-weight:700;color:var(--muted);margin-bottom:3px;
  }
  .family-merge-dialog .family-compare-row>span:nth-child(3)::before{
    content:'B';display:block;font-size:10px;font-weight:700;color:var(--muted);margin-bottom:3px;
  }
  .family-merge-dialog .family-compare-row>.family-merge-resolution{
    grid-column:1/-1;
  }
}


/* 0.17.4 photo metadata, crisp previews and family quick details */
.photo-viewer-error[hidden]{display:none!important}.photo-viewer-zone[hidden]{display:none!important}.photo-viewer-student-link[hidden]{display:none!important}.photo-viewer-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.photo-viewer-head-actions .ui-btn{color:#fff;border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.08)}
.student-list-person img{image-rendering:auto}.student-list-person>a{display:block;flex:0 0 auto}.photo-card>small{display:block;margin-top:4px;color:var(--muted);font-size:11px}
.family-review-student-overview{display:grid;grid-template-columns:180px minmax(0,1fr);gap:22px;align-items:start;margin-bottom:18px}.family-review-student-photo{display:block;width:180px;max-height:240px;aspect-ratio:3/4;object-fit:contain;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}.family-review-student-photo.is-placeholder{display:grid;place-items:center;font-size:42px;color:var(--muted)}.family-review-student-dialog h3{margin:18px 0 8px}.family-review-sibling-list{display:grid;gap:6px}.family-review-student-dialog .ui-section-head .ui-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
@media(max-width:700px){.family-review-student-overview{grid-template-columns:110px minmax(0,1fr);gap:14px}.family-review-student-photo{width:110px;max-height:150px}.photo-viewer-head-actions .ui-btn span{display:none}}
@media(max-width:480px){.family-review-student-overview{grid-template-columns:1fr}.family-review-student-photo{width:120px}.photo-viewer-meta{grid-template-columns:1fr 1fr}}

/* 0.17.5 Google-style family merge selection + unified table controls */
.family-compare-table-v2 .family-compare-row{align-items:stretch}
.family-merge-source-choice,.family-merge-source-static,.family-merge-result-box{min-width:0;display:flex;align-items:flex-start;gap:9px;padding:10px;border-radius:9px}
.family-merge-source-choice{cursor:pointer;border:1px solid transparent;background:transparent;transition:border-color .15s ease,background .15s ease}
.family-merge-source-choice:hover{background:var(--surface-soft)}
.family-merge-source-choice.is-selected{border-color:var(--accent);background:rgba(194,138,58,.10)}
.family-merge-source-choice>input{flex:0 0 auto;margin-top:3px}
.family-merge-source-choice>span,.family-merge-source-static,.family-merge-result-box{display:grid;gap:3px}
.family-merge-source-choice small,.family-merge-source-static small,.family-merge-result-box small{color:var(--muted);font-size:11px;line-height:1.25}
.family-merge-source-choice strong,.family-merge-source-static strong,.family-merge-result-box strong{font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.family-merge-result-box{background:var(--surface-soft);border-left:3px solid var(--accent)}
.family-merge-custom-choice{grid-column:2/4;display:grid;grid-template-columns:auto auto minmax(160px,1fr);align-items:center;gap:8px;margin:0 10px 10px;padding:8px 10px;border:1px dashed var(--line);border-radius:9px;background:#fff}
.family-merge-custom-choice.is-selected{border-color:var(--accent);background:rgba(194,138,58,.07)}
.family-merge-custom-choice>input[type=radio]{margin:0}
.family-merge-custom-choice .family-custom-value{min-width:0;width:100%;margin:0}
.family-merge-field-label{align-self:stretch;display:flex;align-items:flex-start}
.table-sort{cursor:pointer;text-align:left}.table-sort-label{opacity:1!important}.table-sort-arrow{opacity:.45!important}.table-sort.is-asc .table-sort-arrow,.table-sort.is-desc .table-sort-arrow{opacity:1!important}.table-sort.is-asc .table-sort-arrow::after{content:" ↑"}.table-sort.is-desc .table-sort-arrow::after{content:" ↓"}
@media(max-width:980px){.family-merge-custom-choice{grid-column:1/-1;margin:0 10px 10px}.family-merge-dialog .family-compare-row>.family-merge-result-box{grid-column:1/-1;border-top:1px dashed var(--line);border-left:3px solid var(--accent)}}
@media(max-width:620px){.family-merge-source-choice,.family-merge-source-static{padding:9px}.family-merge-custom-choice{grid-template-columns:auto minmax(0,1fr);margin:0 8px 8px}.family-merge-custom-choice .family-custom-value{grid-column:1/-1}.family-merge-dialog .family-compare-row>.family-merge-result-box{grid-column:1/-1}}


/* 0.17.7 clearer family merge UI */
.family-merge-summary-v2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px}.family-merge-summary-card{padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);display:grid;gap:4px}.family-merge-summary-card small{color:var(--muted);font-size:12px}.family-merge-summary-card strong{font-size:20px;line-height:1.25}.family-merge-summary-card span{color:var(--muted);font-size:13px}.family-compare-head-v2 span{display:grid;gap:3px}.family-compare-head-v2 small{font-size:11px;color:var(--muted)}.family-compare-head-v2 strong{font-size:13px;line-height:1.3}.family-merge-field-label-wrap{display:grid;gap:4px;align-self:stretch;padding-top:4px}.family-merge-row-hint{color:var(--muted);font-size:11px;line-height:1.3}.family-merge-source-choice-v2,.family-merge-source-static,.family-merge-result-box-v2{border:1px solid var(--line);background:#fff;border-radius:12px;min-height:88px}.family-merge-source-choice-v2{display:grid;align-content:start;gap:10px;padding:12px}.family-merge-source-choice-v2:hover{background:var(--surface-soft)}.family-merge-source-choice-v2.is-selected{border-color:var(--accent);background:rgba(194,138,58,.10);box-shadow:0 0 0 1px rgba(194,138,58,.18) inset}.family-merge-option-head{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);font-style:normal}.family-merge-option-head em{font-style:normal;font-weight:600;color:var(--ink)}.family-merge-option-value{display:block;font-size:18px;line-height:1.32;overflow-wrap:anywhere}.family-merge-source-static,.family-merge-result-box-v2{padding:12px;display:grid;align-content:start;gap:8px}.family-merge-result-box-v2{background:var(--surface-soft);border-left:4px solid var(--accent)}.family-merge-result-box-v2 strong{font-size:18px;line-height:1.32;overflow-wrap:anywhere}.family-merge-custom-choice-v2{grid-column:2/4;display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:0 0 10px;padding:12px;border:1px dashed var(--line);border-radius:12px;background:#fff}.family-merge-custom-choice-v2.is-selected{border-color:var(--accent);background:rgba(194,138,58,.07)}.family-merge-custom-choice-v2 .family-merge-option-head{justify-content:flex-start}.family-merge-custom-choice-v2 .family-custom-value{margin:0;width:100%}.family-compare-row.is-conflict{background:rgba(194,138,58,.05)}@media(max-width:980px){.family-merge-summary-v2{grid-template-columns:1fr}.family-merge-custom-choice-v2{grid-column:1/-1}.family-compare-head-v2 span strong{font-size:12px}}@media(max-width:700px){.family-merge-source-choice-v2,.family-merge-source-static,.family-merge-result-box-v2{min-height:auto}.family-merge-option-value,.family-merge-result-box-v2 strong{font-size:16px}}


/* 0.17.8 compact and clearer family merge UI */
.family-merge-dialog-v3 .ui-dialog-shell{width:min(1080px,calc(100vw - 24px))}.family-merge-summary-compact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:8px 0 14px}.family-merge-summary-name{padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);font-weight:700;font-size:16px;line-height:1.3;overflow-wrap:anywhere}.family-compare-table-v3{margin-top:6px}.family-compare-head-v3,.family-compare-row-v3{display:grid;grid-template-columns:150px minmax(170px,1fr) minmax(170px,1fr) minmax(240px,1.1fr)}.family-compare-head-v3{background:var(--surface-soft);font-size:12px;font-weight:700}.family-compare-head-v3>*{padding:7px 10px;overflow-wrap:anywhere}.family-compare-row-v3{border-top:1px solid var(--line);align-items:center}.family-compare-row-v3>*{padding:7px 10px;min-width:0}.family-compare-row-v3.is-conflict{background:#fffaf0}.family-compare-row-v3.is-same{background:#f7fbf7}.family-merge-field-label-wrap{padding-top:0}.family-merge-field-label{display:block;font-size:13px;line-height:1.25}.family-merge-row-hint{font-size:10px;line-height:1.2}.family-merge-choice-compact{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid transparent;border-radius:8px;cursor:pointer;min-height:34px;background:transparent}.family-merge-choice-compact:hover{background:rgba(194,138,58,.06)}.family-merge-choice-compact.is-selected{border-color:var(--accent);background:rgba(194,138,58,.11)}.family-merge-choice-compact input[type=radio]{margin:0;inline-size:14px;block-size:14px;accent-color:var(--accent-dark);transform:none}.family-choice-value{font-size:13px;line-height:1.3;overflow-wrap:anywhere}.family-merge-source-static-v3,.family-merge-result-preview-static{display:flex;align-items:center;min-height:34px}.family-merge-source-static-v3 span,.family-merge-result-preview-static span{font-size:13px;line-height:1.3;overflow-wrap:anywhere}.family-merge-result-cell{display:grid;gap:6px;align-items:start}.family-merge-result-preview{min-height:34px;padding:7px 8px;border:1px solid var(--line);border-radius:8px;background:#fff}.family-merge-result-preview .family-merge-result-text{display:block;font-size:13px;line-height:1.3;overflow-wrap:anywhere}.family-merge-result-cell.has-custom .family-merge-result-preview{border-style:dashed;background:var(--surface-soft)}.family-merge-result-cell.is-custom-active .family-merge-result-preview{display:none}.family-merge-choice-custom{padding:4px 0;border:none;background:transparent}.family-merge-choice-custom:hover{background:transparent}.family-choice-value-custom{font-size:12px;color:var(--muted)}.family-custom-inline{display:block;width:100%;margin:0}.family-custom-inline[hidden]{display:none}.family-merge-result-cell .family-merge-choice-custom{display:flex;align-items:center;gap:8px}.family-merge-dialog-v3 .ui-callout{margin-top:10px}.family-merge-dialog-v3 textarea{min-height:70px}@media(max-width:980px){.family-compare-head-v3,.family-compare-row-v3{grid-template-columns:140px minmax(0,1fr) minmax(0,1fr) minmax(180px,1fr)}}@media(max-width:760px){.family-merge-summary-compact{grid-template-columns:1fr}.family-compare-head-v3{display:none}.family-compare-row-v3{grid-template-columns:1fr;gap:0}.family-compare-row-v3>*{padding:6px 10px}.family-merge-choice-compact,.family-merge-source-static-v3,.family-merge-result-preview{margin-top:2px}.family-merge-field-label-wrap{background:var(--surface-soft);margin:0 -10px;padding:8px 10px}.family-merge-result-cell{padding-top:2px}}


/* 0.17.9 compact merge table, corrected dialog width */
.family-merge-dialog-v4{width:min(1040px,calc(100vw - 40px));height:auto;max-height:92vh;overflow:hidden;padding:0}.family-merge-dialog-v4 .ui-dialog-shell{box-sizing:border-box;width:100%;height:auto;max-height:92vh;overflow-y:auto;overflow-x:hidden;padding:18px 20px 20px}.family-merge-dialog-v4 .ui-section-head{margin-bottom:8px}.family-merge-help{margin:0 0 12px;color:var(--muted);font-size:13px;line-height:1.45}.family-compare-table-v4{display:grid;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:6px 0 12px}.family-compare-head-v4,.family-compare-row-v4{display:grid;grid-template-columns:150px minmax(170px,1fr) minmax(170px,1fr) minmax(230px,1.15fr);align-items:center}.family-compare-head-v4{background:var(--surface-soft);font-size:12px;font-weight:700}.family-compare-head-v4>*{padding:7px 9px}.family-compare-row-v4{border-top:1px solid var(--line);min-height:42px}.family-compare-row-v4>*{min-width:0;padding:5px 9px}.family-compare-row-v4.is-different{background:#fff9ee}.family-compare-row-v4.is-same{background:#f7fbf7}.family-merge-field-v4{display:flex;align-items:center;justify-content:space-between;gap:6px}.family-merge-field-v4 strong{font-size:12px;line-height:1.25}.family-merge-state{font-size:9px;line-height:1;padding:3px 5px;border-radius:999px;white-space:nowrap}.family-merge-state.same{background:#e8f3e8;color:#426548}.family-merge-state.different{background:#f7e4bd;color:#79581e}.family-merge-choice-v4{display:flex!important;grid-template-columns:none!important;align-items:center!important;gap:7px!important;margin:0!important;padding:5px 6px!important;min-height:30px!important;border:1px solid transparent;border-radius:7px;cursor:pointer;background:transparent;color:var(--ink)!important}.family-merge-choice-v4:hover{background:rgba(194,138,58,.06)}.family-merge-choice-v4.is-selected{border-color:var(--accent);background:rgba(194,138,58,.10)}.family-merge-choice-v4 input[type=radio]{appearance:auto!important;-webkit-appearance:radio!important;display:inline-block!important;flex:0 0 14px!important;width:14px!important;height:14px!important;min-width:14px!important;min-height:14px!important;margin:0!important;padding:0!important;border:0!important;border-radius:50%!important;box-shadow:none!important;accent-color:var(--accent-dark)}.family-merge-choice-v4 span{display:block;font-size:12px;line-height:1.3;overflow-wrap:anywhere}.family-merge-static-v4{font-size:12px;line-height:1.3;color:var(--ink)}.family-merge-result-v4{padding-top:4px!important;padding-bottom:4px!important}.family-merge-result-input{display:block;width:100%;min-height:32px!important;height:32px;padding:5px 8px!important;margin:0;font-size:12px;border-radius:7px}.family-merge-dialog-v4 textarea{min-height:64px}.family-merge-dialog-v4 .ui-callout{padding:10px 12px;margin:8px 0}.family-merge-dialog-v4 .ui-form-actions{margin-top:8px}@media(max-width:980px){.family-merge-dialog-v4{width:calc(100vw - 16px);height:auto;max-height:calc(100vh - 16px)}.family-merge-dialog-v4 .ui-dialog-shell{max-height:calc(100vh - 16px)}.family-compare-head-v4,.family-compare-row-v4{grid-template-columns:130px minmax(0,1fr) minmax(0,1fr) minmax(190px,1fr)}}@media(max-width:760px){.family-merge-dialog-v4{width:100vw;max-height:100vh;border-radius:0}.family-merge-dialog-v4 .ui-dialog-shell{max-height:100vh;padding:14px}.family-compare-head-v4{display:none}.family-compare-row-v4{grid-template-columns:1fr}.family-compare-row-v4>*{padding:5px 8px}.family-merge-field-v4{background:var(--surface-soft);margin:0 -8px;padding:7px 8px}.family-merge-choice-v4,.family-merge-static-v4,.family-merge-result-v4{margin-top:2px!important}}


/* 0.17.10 controlled family merge fields */
.family-merge-dialog-v4 .family-compare-row-v4>*{text-align:left}.family-merge-dialog-v4 .family-merge-static-v4,.family-merge-dialog-v4 .family-merge-choice-v4,.family-merge-dialog-v4 .family-merge-result-v4{text-align:left!important}.family-merge-result-input{text-align:left!important}.family-merge-result-v4 select.family-merge-result-input{appearance:auto;min-height:32px!important;height:32px!important;padding:4px 28px 4px 8px!important;background:#fff;color:var(--ink)}


/* 0.17.11 adaptive sidebar height / compact navigation */
.sidebar{overflow:hidden}
.sidebar nav{min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.22) transparent;padding-right:2px}
.sidebar nav::-webkit-scrollbar{width:5px}.sidebar nav::-webkit-scrollbar-track{background:transparent}.sidebar nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.22);border-radius:999px}
.sidebar-bottom{flex:0 0 auto;padding-top:8px;background:var(--nav);position:relative;z-index:1}

/* Normal laptops: save vertical space before anything needs to scroll. */
@media (max-height:900px) and (min-width:981px){
  .sidebar{padding:14px 12px}
  .brand-logo{padding:0 6px 10px}
  .brand-logo img{max-height:48px;max-width:190px}
  .sidebar nav{margin-top:10px;gap:2px}
  .nav-section{margin:8px 10px 2px;font-size:9px;line-height:1.15}
  .nav-link{gap:9px;padding:7px 10px;border-radius:8px;font-size:13px;line-height:1.15;min-height:31px}
  .nav-link span{width:18px}
  .sidebar-bottom{gap:7px;padding-top:6px}
  .language-switch button{padding:4px 8px;font-size:11px}
}

/* Short screens: compact a little further while keeping every item usable. */
@media (max-height:760px) and (min-width:981px){
  .sidebar{padding:9px 10px}
  .brand-logo{padding:0 5px 7px}
  .brand-logo img{max-height:38px;max-width:175px}
  .sidebar nav{margin-top:6px;gap:1px}
  .nav-section{margin:5px 9px 1px;font-size:8px;letter-spacing:.10em}
  .nav-link{gap:8px;padding:5px 9px;font-size:12px;min-height:27px}
  .nav-link span{width:17px;font-size:12px}
  .sidebar-bottom{gap:4px;padding-top:4px}
  .language-switch{gap:4px}
  .language-switch button{padding:3px 7px;font-size:10px;border-radius:6px}
}

/* Very short windows: navigation may scroll, but language controls always remain visible. */
@media (max-height:640px) and (min-width:981px){
  .brand-logo img{max-height:32px}
  .nav-section{margin-top:4px}
  .nav-link{padding-top:4px;padding-bottom:4px;min-height:25px}
}


/* 0.17.12 association settings compact controls */
.settings-amount-grid-compact{display:grid;grid-template-columns:repeat(3,minmax(150px,220px));gap:12px;align-items:start}.settings-amount-grid-compact label{min-width:0}.money-input-wrap{display:grid;grid-template-columns:minmax(0,1fr) 34px;align-items:stretch;margin-top:5px}.money-input-wrap input{margin:0;border-radius:8px 0 0 8px;text-align:right}.money-input-suffix{display:grid;place-items:center;border:1px solid var(--line);border-left:0;border-radius:0 8px 8px 0;background:var(--surface-soft);font-weight:700;color:var(--muted)}.settings-regions-table-v2 th:nth-child(1),.settings-regions-table-v2 th:nth-child(2){width:34%}.settings-regions-table-v2 th:nth-child(3){width:120px}.settings-regions-table-v2 th:nth-child(4){width:130px}.settings-regions-table-v2 input[type=text],.settings-regions-table-v2 input:not([type]){width:100%}.region-active-toggle{min-width:82px;min-height:32px;padding:5px 11px;border:1px solid var(--line);border-radius:999px;font:inherit;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.region-active-toggle.is-active{background:#e9f6ec;border-color:#9dccaa;color:#236b36}.region-active-toggle.is-inactive{background:#f1f2f3;border-color:#d7dade;color:#6a7078}.region-delete-action{display:inline-flex;margin:0}.region-delete-action .ui-btn{min-height:32px}.settings-regions-table-v2 tr.is-delete-pending{opacity:.58;background:#fff1f1}.settings-regions-table-v2 tr.is-delete-pending td:not(:last-child){text-decoration:line-through}.settings-regions-table-v2 tr.is-delete-pending .ui-btn{opacity:1;text-decoration:none}.association-settings-form.is-dirty .ui-form-actions::before{content:''}.association-settings-form .ui-form-actions{position:sticky;bottom:0;background:var(--surface);padding-top:10px;z-index:2}@media(max-width:780px){.settings-amount-grid-compact{grid-template-columns:1fr}.settings-amount-grid-compact label{max-width:280px}.settings-regions-table-v2 th:nth-child(3),.settings-regions-table-v2 th:nth-child(4){width:auto}}


/* 0.17.13 System maintenance queue and navigation alert */
.nav-link{position:relative}.nav-link .nav-link-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-alert-badge{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--danger,#b93b3b);color:#fff;font-size:10px;font-weight:800;line-height:1;box-shadow:0 0 0 2px rgba(255,255,255,.16)}.system-maintenance-actions{display:grid;gap:8px}.maintenance-action{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;color:var(--ink);text-decoration:none;background:var(--surface-soft)}.maintenance-action:hover{border-color:var(--accent);background:#fff}.maintenance-action-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#fff;border:1px solid var(--line)}.maintenance-action-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}.maintenance-action-copy{display:grid;gap:2px}.maintenance-action-copy strong{font-size:13px}.maintenance-action-copy small{font-size:11px;color:var(--muted)}.maintenance-count{display:inline-flex;align-items:center;justify-content:center;min-width:25px;height:25px;padding:0 7px;border-radius:999px;background:#edf1f4;color:#50606d;font-size:11px;font-weight:800}.maintenance-count.is-alert{background:#f8e1e1;color:#923535}.maintenance-queue-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:4px 0 12px}.maintenance-queue-head h3{margin:0 0 2px;font-size:15px}.maintenance-queue-head p{margin:0}


/* 0.17.14 no-scroll adaptive desktop sidebar */
.sidebar nav[data-sidebar-nav]{flex:1 1 auto;min-height:0;overflow:hidden!important;padding-right:0!important;scrollbar-width:none}.sidebar nav[data-sidebar-nav]::-webkit-scrollbar{display:none}.nav-dashboard-link{display:block}.nav-group{margin:0;padding:0}.nav-group>summary{list-style:none;cursor:pointer;user-select:none;display:flex;align-items:center;justify-content:space-between;gap:8px}.nav-group>summary::-webkit-details-marker{display:none}.nav-section-caret{font-size:12px;line-height:1;transition:transform .15s ease;opacity:.75}.nav-group:not([open]) .nav-section-caret{transform:rotate(-90deg)}.nav-group-links{display:grid;gap:2px}.sidebar .nav-section{padding:3px 0;border-radius:6px}.sidebar .nav-section:hover{color:#f2c87f}.sidebar .nav-link{padding-top:8px;padding-bottom:8px;min-height:34px}.sidebar .brand-logo{padding-bottom:14px}.sidebar nav{margin-top:12px;gap:2px}.sidebar .nav-section{margin:9px 10px 2px}.sidebar-bottom{padding-top:5px}
.sidebar.is-nav-compact{padding:12px 11px}.sidebar.is-nav-compact .brand-logo{padding:0 5px 8px}.sidebar.is-nav-compact .brand-logo img{max-height:42px;max-width:180px}.sidebar.is-nav-compact nav{margin-top:7px}.sidebar.is-nav-compact .nav-section{margin:5px 9px 1px;padding:2px 0;font-size:8.5px;line-height:1.1}.sidebar.is-nav-compact .nav-group-links{gap:1px}.sidebar.is-nav-compact .nav-link{gap:8px;padding:5px 9px;min-height:27px;font-size:12px;line-height:1.1}.sidebar.is-nav-compact .nav-link span:first-child{width:17px;font-size:12px}.sidebar.is-nav-compact .sidebar-bottom{gap:4px;padding-top:4px}.sidebar.is-nav-compact .language-switch button{padding:3px 7px;font-size:10px}
.sidebar.is-nav-tight{padding:7px 9px}.sidebar.is-nav-tight .brand-logo{padding:0 4px 5px}.sidebar.is-nav-tight .brand-logo img{max-height:30px;max-width:165px}.sidebar.is-nav-tight nav{margin-top:4px}.sidebar.is-nav-tight .nav-section{margin:3px 8px 0;padding:1px 0;font-size:8px;letter-spacing:.08em}.sidebar.is-nav-tight .nav-link{padding:3px 8px;min-height:23px;font-size:11.5px;border-radius:7px}.sidebar.is-nav-tight .nav-link span:first-child{width:15px;font-size:11px}.sidebar.is-nav-tight .nav-alert-badge{min-width:17px;height:17px;font-size:9px}.sidebar.is-nav-tight .sidebar-bottom{padding-top:2px}.sidebar.is-nav-tight .language-switch button{padding:2px 6px;font-size:10px}
@media(max-width:980px){.sidebar nav[data-sidebar-nav]{overflow-y:auto!important;overflow-x:hidden!important;scrollbar-width:thin}.sidebar nav[data-sidebar-nav]::-webkit-scrollbar{display:block;width:5px}.nav-group>summary{cursor:pointer}}

/* 0.17.15 association settings layout and clearer staged actions */
.association-settings-card>.flash{margin-bottom:14px}.association-settings-form{gap:0}.association-settings-form .settings-subsection{padding:18px 0;border-top:1px solid var(--line)}.association-settings-form .settings-subsection-first{padding-top:0;border-top:0}.association-settings-form .ui-section-head{margin-bottom:12px}.association-settings-form .ui-section-head h2{font-size:18px}.settings-amount-grid-compact{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;width:100%}.settings-amount-grid-compact label{max-width:none}.money-input-wrap input{text-align:right}.settings-homepage-field{display:block;width:100%}.settings-homepage-field input{width:100%;margin:0}.region-active-toggle{min-width:86px;min-height:34px;border-radius:9px;padding:6px 10px;box-shadow:none}.region-active-toggle.is-active{background:#2f7d45;border-color:#2f7d45;color:#fff}.region-active-toggle.is-active:hover{background:#286b3b;border-color:#286b3b}.region-active-toggle.is-inactive{background:#f1f2f3;border-color:#cfd3d7;color:#59616a}.region-active-toggle.is-inactive:hover{background:#e5e7e9;border-color:#bcc1c6}.region-delete-action .ui-btn.is-undo{background:#fffaf1;border-color:#e2c497;color:#805416}.region-delete-action .ui-btn.is-undo:hover{background:#fff3d8;border-color:#d4ad70}.settings-regions-table-v2 tr.is-delete-pending{opacity:1;background:#fff7f0}.settings-regions-table-v2 tr.is-delete-pending td:not(:last-child){opacity:.58;text-decoration:line-through}.settings-regions-table-v2 tr.is-delete-pending .ui-btn{opacity:1;text-decoration:none}@media(max-width:900px){.settings-amount-grid-compact{grid-template-columns:repeat(3,minmax(120px,1fr));gap:10px}}@media(max-width:720px){.settings-amount-grid-compact{grid-template-columns:1fr}.settings-amount-grid-compact label{max-width:320px}}


/* 0.17.16 compact manual sidebar navigation */
@media(min-width:981px){
  .sidebar{padding:11px 11px 8px;overflow:hidden}
  .sidebar .brand-logo{padding:0 5px 8px}
  .sidebar .brand-logo img{max-height:42px;max-width:180px}
  .sidebar nav[data-sidebar-nav]{flex:1 1 auto;min-height:0;margin-top:7px;display:block;overflow-y:auto!important;overflow-x:hidden!important;padding-right:2px!important;scrollbar-width:thin;scrollbar-color:transparent transparent}
  .sidebar nav[data-sidebar-nav]:hover{scrollbar-color:rgba(255,255,255,.28) transparent}
  .sidebar nav[data-sidebar-nav]::-webkit-scrollbar{display:block!important;width:4px}
  .sidebar nav[data-sidebar-nav]::-webkit-scrollbar-track{background:transparent}
  .sidebar nav[data-sidebar-nav]::-webkit-scrollbar-thumb{background:transparent;border-radius:999px}
  .sidebar nav[data-sidebar-nav]:hover::-webkit-scrollbar-thumb{background:rgba(255,255,255,.28)}
  .nav-dashboard-link{margin-bottom:1px}
  .sidebar .nav-group{margin:0}
  .sidebar .nav-section{margin:4px 8px 1px;padding:2px 1px;font-size:8.5px;line-height:1.15;letter-spacing:.09em;min-height:18px}
  .sidebar .nav-section-caret{font-size:10px}
  .sidebar .nav-group-links{display:grid;gap:0}
  .sidebar .nav-link{gap:8px;padding:5px 8px;min-height:27px;border-radius:7px;font-size:12px;line-height:1.15}
  .sidebar .nav-link span:first-child{width:16px;font-size:12px}
  .sidebar .nav-alert-badge{min-width:17px;height:17px;padding:0 4px;font-size:9px}
  .sidebar-bottom{gap:4px;padding-top:4px}
  .sidebar .language-switch{gap:4px}
  .sidebar .language-switch button{padding:3px 7px;font-size:10px;border-radius:6px}
  .sidebar.is-nav-compact{padding:11px 11px 8px}
  .sidebar.is-nav-compact .brand-logo{padding:0 5px 8px}
  .sidebar.is-nav-compact .brand-logo img{max-height:42px;max-width:180px}
  .sidebar.is-nav-compact nav{margin-top:7px}
  .sidebar.is-nav-compact .nav-section{margin:4px 8px 1px;padding:2px 1px;font-size:8.5px;line-height:1.15}
  .sidebar.is-nav-compact .nav-group-links{gap:0}
  .sidebar.is-nav-compact .nav-link{gap:8px;padding:5px 8px;min-height:27px;font-size:12px;line-height:1.15}
  .sidebar.is-nav-compact .nav-link span:first-child{width:16px;font-size:12px}
  .sidebar.is-nav-compact .sidebar-bottom{gap:4px;padding-top:4px}
  .sidebar.is-nav-compact .language-switch button{padding:3px 7px;font-size:10px}
  .sidebar.is-nav-tight{padding:7px 9px 6px}
  .sidebar.is-nav-tight .brand-logo{padding:0 4px 5px}
  .sidebar.is-nav-tight .brand-logo img{max-height:31px;max-width:165px}
  .sidebar.is-nav-tight nav{margin-top:4px}
  .sidebar.is-nav-tight .nav-section{margin:2px 7px 0;padding:1px 0;font-size:7.8px;line-height:1.05;letter-spacing:.075em;min-height:15px}
  .sidebar.is-nav-tight .nav-link{gap:7px;padding:3px 7px;min-height:23px;font-size:11.3px;line-height:1.08}
  .sidebar.is-nav-tight .nav-link span:first-child{width:14px;font-size:10.5px}
  .sidebar.is-nav-tight .sidebar-bottom{padding-top:2px}
  .sidebar.is-nav-tight .language-switch button{padding:2px 6px;font-size:9.5px}
}


/* 0.17.18 balanced desktop sidebar spacing + reliable System label */
.nav-link .nav-link-icon{flex:0 0 18px;width:18px!important;text-align:center}.nav-link .nav-link-label{flex:1 1 auto;width:auto!important;min-width:0;text-align:left!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-link .nav-alert-badge{flex:0 0 auto;width:auto!important;text-align:center!important}
@media(min-width:981px){
  .sidebar{padding:13px 12px 9px}
  .sidebar .brand-logo{padding:0 6px 10px}
  .sidebar .brand-logo img{max-height:46px;max-width:188px}
  .sidebar nav[data-sidebar-nav]{margin-top:9px}
  .sidebar .nav-section{margin:6px 9px 2px;padding:3px 1px;font-size:9px;line-height:1.2;min-height:20px}
  .sidebar .nav-group-links{gap:1px}
  .sidebar .nav-link{gap:9px;padding:7px 9px;min-height:31px;font-size:12.5px;line-height:1.2}
  .sidebar .nav-link .nav-link-icon{flex-basis:17px;width:17px!important;font-size:12px}
  .sidebar-bottom{gap:5px;padding-top:5px}
  .sidebar .language-switch button{padding:4px 8px;font-size:10.5px}

  .sidebar.is-nav-compact{padding:11px 11px 8px}
  .sidebar.is-nav-compact .brand-logo{padding:0 5px 8px}
  .sidebar.is-nav-compact .brand-logo img{max-height:42px;max-width:180px}
  .sidebar.is-nav-compact nav{margin-top:7px}
  .sidebar.is-nav-compact .nav-section{margin:4px 8px 1px;padding:2px 1px;font-size:8.5px;line-height:1.15;min-height:18px}
  .sidebar.is-nav-compact .nav-group-links{gap:0}
  .sidebar.is-nav-compact .nav-link{gap:8px;padding:5px 8px;min-height:27px;font-size:12px;line-height:1.15}
  .sidebar.is-nav-compact .nav-link .nav-link-icon{flex-basis:16px;width:16px!important;font-size:12px}
  .sidebar.is-nav-compact .sidebar-bottom{gap:4px;padding-top:4px}
  .sidebar.is-nav-compact .language-switch button{padding:3px 7px;font-size:10px}

  .sidebar.is-nav-tight{padding:7px 9px 6px}
  .sidebar.is-nav-tight .brand-logo{padding:0 4px 5px}
  .sidebar.is-nav-tight .brand-logo img{max-height:31px;max-width:165px}
  .sidebar.is-nav-tight nav{margin-top:4px}
  .sidebar.is-nav-tight .nav-section{margin:2px 7px 0;padding:1px 0;font-size:7.8px;line-height:1.05;min-height:15px}
  .sidebar.is-nav-tight .nav-link{gap:7px;padding:3px 7px;min-height:23px;font-size:11.3px;line-height:1.08}
  .sidebar.is-nav-tight .nav-link .nav-link-icon{flex-basis:14px;width:14px!important;font-size:10.5px}
  .sidebar.is-nav-tight .sidebar-bottom{padding-top:2px}
  .sidebar.is-nav-tight .language-switch button{padding:2px 6px;font-size:9.5px}
}


/* 0.17.22 student record navigator */
.student-record-navigator{display:flex;align-items:center;justify-content:flex-start;gap:12px;margin:0 0 14px;padding:9px 11px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow)}.student-nav-group{display:flex;align-items:center;gap:7px;min-width:0;flex:0 1 auto}.student-nav-class-group,.student-nav-student-group{flex:0 1 auto}.student-nav-label{font-size:11px;font-weight:700;color:var(--muted);white-space:nowrap;text-transform:uppercase;letter-spacing:.03em}.student-record-navigator select{box-sizing:border-box;min-width:0;width:auto;max-width:min(520px,45vw);height:34px;margin:0;padding:5px 30px 5px 9px;font-size:12px;field-sizing:content}.student-nav-arrow{display:inline-flex;align-items:center;justify-content:center;flex:0 0 32px;width:32px;height:32px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);color:var(--ink);text-decoration:none}.student-nav-arrow:hover{border-color:var(--accent);background:rgba(194,138,58,.10)}.student-nav-arrow svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.student-nav-divider{align-self:stretch;width:1px;background:var(--line)}.student-nav-position{flex:0 0 auto;font-size:11px;color:var(--muted);white-space:nowrap}.photo-grid .photo-card{order:initial}@media(max-width:900px){.student-record-navigator{align-items:stretch;flex-direction:column;gap:8px}.student-nav-class-group,.student-nav-student-group{flex:1 1 auto;width:100%}.student-record-navigator select{width:100%;max-width:none}.student-nav-divider{width:auto;height:1px}.student-nav-label{width:54px}}@media(max-width:540px){.student-record-navigator{padding:8px}.student-nav-group{gap:5px}.student-nav-label{display:none}.student-nav-arrow{flex-basis:30px;width:30px;height:30px}.student-nav-position{display:none}}

/* 0.18.1 smart table filters */
.student-list-head{margin:0 0 12px;padding:0 2px}.status-badge-list{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.student-status-cell{min-width:210px}.table-filter-row th{overflow:visible}.table-filter-control{position:relative;display:flex;align-items:center;gap:4px;flex-wrap:wrap;width:100%;min-width:110px;min-height:32px;padding:3px 5px;border:1px solid #cfd6dc;border-radius:8px;background:#fff;text-transform:none;letter-spacing:normal}.table-filter-control:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px rgba(187,129,38,.12)}.table-filter-row .table-filter-control input.table-filter-input{flex:1 1 70px;width:auto;min-width:55px;min-height:24px;padding:2px 3px;border:0;outline:0;box-shadow:none;background:transparent}.table-filter-chips{display:contents}.table-filter-chip{display:inline-flex;align-items:center;gap:3px;max-width:170px;padding:2px 4px 2px 7px;border:1px solid var(--line);border-radius:999px;background:var(--surface-soft);font-size:11px;font-weight:700;line-height:1.4;color:var(--text);text-transform:none;letter-spacing:normal}.table-filter-chip>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-filter-chip button{appearance:none;border:0;background:transparent;color:var(--muted);padding:0 2px;font-size:15px;line-height:1;cursor:pointer}.table-filter-chip button:hover{color:var(--danger)}.table-filter-menu{position:fixed;z-index:2500;max-height:260px;overflow:auto;padding:5px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 12px 32px rgba(30,50,66,.18);text-transform:none;letter-spacing:normal}.table-filter-menu[hidden]{display:none}.table-filter-option{appearance:none;width:100%;border:0;border-radius:7px;background:transparent;padding:7px 8px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;color:var(--text);font:inherit;cursor:pointer}.table-filter-option:hover,.table-filter-option:focus{background:var(--surface-soft);outline:0}.table-filter-option span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-filter-option small{display:inline!important;margin:0!important;color:var(--muted);font-size:10px;font-weight:700}

/* 0.18.3 PDF template administration: safe visual layout editor and preview. */
.pdf-template-admin-card .ui-note{margin-bottom:14px}.pdf-template-picker{margin-bottom:14px}.pdf-template-visual-editor{gap:12px}.pdf-template-editor-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft)}.pdf-template-editor-toolbar>div{display:grid;gap:2px}.pdf-template-editor-toolbar small{color:var(--muted);font-size:11px}.pdf-template-editor-section{border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden}.pdf-template-editor-section>summary{cursor:pointer;padding:11px 13px;font-weight:800;background:var(--surface-soft);user-select:none}.pdf-template-editor-section[open]>summary{border-bottom:1px solid var(--line)}.pdf-template-text-grid,.pdf-template-layout-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px}.pdf-template-text-grid label,.pdf-template-layout-grid label{min-width:0}.pdf-template-text-grid textarea{min-height:68px;resize:vertical}.pdf-template-text-grid input,.pdf-template-text-grid textarea,.pdf-template-layout-grid input{width:100%}.pdf-template-editor-section .ui-callout{margin:0 14px 14px}.pdf-number-input{display:grid;grid-template-columns:minmax(0,1fr) 38px;align-items:stretch;margin-top:5px}.pdf-number-input input{margin:0;border-radius:8px 0 0 8px}.pdf-number-input>span{display:grid;place-items:center;border:1px solid var(--line);border-left:0;border-radius:0 8px 8px 0;background:var(--surface-soft);font-size:11px;font-weight:800;color:var(--muted)}.pdf-color-input{display:grid;grid-template-columns:46px minmax(0,1fr);gap:7px;align-items:center;margin-top:5px}.pdf-color-input input[type=color]{width:46px;height:38px;padding:3px;cursor:pointer}.pdf-color-input input[type=text]{margin:0;text-transform:uppercase}.pdf-preview-dialog{width:min(1040px,calc(100vw - 28px));height:min(94vh,900px);max-width:none;z-index:10050}.pdf-preview-dialog::backdrop{background:rgba(15,24,31,.72)}.pdf-preview-dialog .ui-dialog-shell{height:100%;max-height:none;display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px}.pdf-preview-frame{width:100%;height:100%;min-height:620px;border:1px solid var(--line);border-radius:8px;background:#fff}.pdf-preview-loading{display:grid;place-items:center;min-height:320px;color:var(--muted);font-weight:700}.pdf-preview-dialog .flash{margin:0}@media(max-width:800px){.pdf-template-text-grid,.pdf-template-layout-grid{grid-template-columns:1fr}.pdf-template-editor-toolbar{align-items:flex-start;flex-direction:column}.pdf-preview-dialog{width:100vw;height:100vh;max-height:100vh;border-radius:0}.pdf-preview-frame{min-height:0}}

/* 0.18.4 mandatory MFA */
.mfa-card{width:min(520px,100%)}.mfa-card h2{font-size:16px;margin:0 0 6px}.mfa-method{display:grid;gap:10px}.mfa-method p{margin:0;color:var(--muted);font-size:13px}.mfa-code-input{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:22px;letter-spacing:.18em;text-align:center}.mfa-resend-form{margin-top:8px}.mfa-secret-box{display:grid;gap:7px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}.mfa-secret-box span{font-size:12px;font-weight:700;color:var(--muted)}.mfa-secret-box code{font-size:15px;letter-spacing:.08em;overflow-wrap:anywhere;user-select:all}.security-setting-row>.badge{flex:0 0 auto}

/* 0.18.6 central archive/delete workflow */
.lifecycle-actions{align-items:center}.lifecycle-filters{margin:10px 0 14px}.lifecycle-dialog{z-index:2147483647}.lifecycle-pending-action .restore-label{display:none}.lifecycle-pending-action:hover .pending-label,.lifecycle-pending-action:focus-visible .pending-label{display:none}.lifecycle-pending-action:hover .restore-label,.lifecycle-pending-action:focus-visible .restore-label{display:inline}.lifecycle-pending-form{margin:0}.security-setting-row .ui-row-actions{justify-content:flex-end}

/* 0.18.7 compact profile settings and staged re-authentication */
.profile-settings-form input:not([type="file"]),.profile-settings-form select{box-sizing:border-box;height:40px;min-height:40px;line-height:20px;margin:0}.profile-settings-form select{padding-top:8px;padding-bottom:8px}.pin-settings-form{min-width:min(100%,360px)}.pin-entry-block{display:grid;gap:7px}.pin-entry-label{font-size:13px;font-weight:700;color:var(--muted)}.pin-entry-grid{display:grid;grid-template-columns:repeat(6,44px);gap:8px;justify-content:start}.pin-entry-grid .pin-setup-digit{box-sizing:border-box;width:44px;height:48px;min-height:48px;padding:6px;text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:22px;font-weight:800;letter-spacing:0}.pin-entry-error{margin:0}.ui-dialog-priority{z-index:2147483647}.ui-dialog-priority::backdrop{background:rgba(15,24,31,.68)}@media(max-width:480px){.pin-entry-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}.pin-entry-grid .pin-setup-digit{width:100%;min-width:0;height:44px;min-height:44px}}

/* 0.18.8 bank transaction layout and manual receipt donor workflow */
.autocomplete-create-option{margin-top:5px;border-top:1px solid var(--line);border-radius:0 0 7px 7px;color:var(--accent-dark);font-weight:700}
.receipt-new-donor-fields{margin:0 0 16px}.receipt-new-donor-fields h3{margin:0 0 4px}.receipt-manual-upload-form>.ui-form-grid:first-of-type{margin-bottom:10px}

/* 0.18.9 student detail toolbar and lifecycle continuity */
.student-record-navigator{position:sticky;top:88px;z-index:14;box-shadow:0 8px 24px rgba(30,50,66,.10)}
.student-nav-lifecycle{display:flex;align-items:center;margin-left:auto;min-width:max-content}
.student-nav-lifecycle>.lifecycle-actions{flex-wrap:nowrap;justify-content:flex-end}
@media(max-width:900px){
  .student-record-navigator{top:84px}
  .student-nav-lifecycle{width:100%;margin-left:0;padding-top:8px;border-top:1px solid var(--line)}
  .student-nav-lifecycle>.lifecycle-actions{width:100%;justify-content:flex-end;flex-wrap:wrap}
}
@media(max-width:620px){.student-record-navigator{top:72px}}

/* 0.18.11: cleaner re-authentication fields and password-manager context. */
.reauth-field-group{position:relative;display:grid;gap:10px;margin:2px 0 4px}.reauth-password-field{display:grid;gap:8px!important;margin:0!important;color:var(--muted);font-size:13px}.reauth-password-field>span{display:block;font-weight:600;line-height:1.35}.reauth-password-field>input{box-sizing:border-box;width:100%;margin:0}.password-manager-username{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:.01!important;pointer-events:none!important}

/* 0.18.13 responsive, user-configurable tables */
.content{max-width:none;width:100%}
.ui-table-wrap{width:100%;max-width:100%;min-width:0}
.ui-table{width:100%;min-width:100%;max-width:100%}
.ui-table td,.ui-table th{overflow-wrap:anywhere}
.ui-table td[hidden],.ui-table th[hidden]{display:none!important}
.ui-table-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:0 0 8px;min-height:34px}
.ui-table-tools .ui-btn{min-height:32px;padding:5px 9px}
.ui-table-tools .table-columns-glyph{font-size:15px;line-height:1}
.ui-table-tools .table-detail-hint{margin-right:auto;color:var(--muted);font-size:11px}
.ui-table tr[data-row-has-detail]{cursor:default}
.ui-table tr[data-row-has-detail] td:not(.ui-actions-cell){cursor:pointer}
.table-columns-dialog{z-index:2147483647;width:min(680px,calc(100vw - 28px));max-width:680px}
.table-columns-dialog::backdrop{background:rgba(15,24,31,.68)}
.table-columns-dialog .ui-dialog-shell{display:grid;gap:14px}
.table-columns-intro{margin:0;color:var(--muted);font-size:13px}
.table-columns-device-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.table-columns-device-tab{appearance:none;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);min-height:38px;padding:7px 10px;font-weight:700;color:var(--ink)}
.table-columns-device-tab.is-active{border-color:var(--accent);background:rgba(194,138,58,.12);box-shadow:0 0 0 1px rgba(194,138,58,.12) inset}
.table-columns-mode{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft)}
.table-columns-mode strong{font-size:13px}.table-columns-mode small{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.table-columns-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:min(50vh,440px);overflow:auto;padding:2px}
.table-column-option{display:flex!important;grid-template-columns:none!important;align-items:center;gap:9px!important;min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink)!important;font-size:13px!important;cursor:pointer}
.table-column-option:hover{background:var(--surface-soft)}
.table-column-option input{flex:0 0 auto;width:17px;height:17px;min-height:17px;margin:0;padding:0}
.table-column-option span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.table-column-option.is-locked{opacity:.72;cursor:default}
.table-columns-dialog .ui-form-actions{margin-top:0}
@media(max-width:980px){.content{width:100%;max-width:none}.ui-table th,.ui-table td{padding:10px 11px}}
@media(max-width:620px){.ui-card{padding:14px}.ui-table th,.ui-table td{padding:9px 8px}.ui-table-tools{margin-bottom:6px}.ui-table-tools .table-detail-hint{display:none}.table-columns-dialog{width:calc(100vw - 18px)}.table-columns-dialog .ui-dialog-shell{padding:15px}.table-columns-device-tabs{grid-template-columns:1fr}.table-columns-list{grid-template-columns:1fr;max-height:45vh}}

/* 0.18.14 Steckbrief generator */
.badge-link{text-decoration:none;cursor:pointer}.badge-link:hover{box-shadow:0 0 0 2px rgba(184,125,35,.2);text-decoration:none}
.profile-generator-form{margin-top:10px}.profile-criteria-field{align-self:start}.criteria-multiselect{position:relative}.criteria-control{min-height:42px;border:1px solid var(--line);border-radius:9px;background:#fff;display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:5px 8px}.criteria-control:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(194,138,58,.12)}.criteria-control input{border:0!important;box-shadow:none!important;outline:0!important;min-height:30px!important;padding:3px!important;flex:1 1 120px;min-width:100px}.criteria-chips{display:flex;gap:5px;flex-wrap:wrap}.criteria-menu{left:0;right:0;top:calc(100% + 4px);z-index:80}.profile-generator-result{display:grid;gap:12px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.profile-generator-result>div:first-child{display:grid;gap:3px}.profile-generator-result>div:first-child small{color:var(--muted)}.profile-batch-main-actions{margin:14px 0}.profile-batch-main-actions form{margin:0}.profile-batch-detail>hr{border:0;border-top:1px solid var(--line);margin:22px 0}.profile-batch-list{margin-top:14px}
@media (max-width:720px){.profile-generator .ui-form-grid{grid-template-columns:1fr}.profile-batch-detail .detail-grid{grid-template-columns:1fr}}

/* 0.18.15 Windows-style PIN unlock */
.lock-card-windows{width:min(440px,100%);padding:34px 38px;text-align:center}.lock-profile{display:flex;justify-content:center;align-items:center;margin:2px auto 26px}.lock-avatar{display:flex;width:112px;height:112px;border-radius:50%;object-fit:cover;align-items:center;justify-content:center;border:3px solid rgba(255,255,255,.9);box-shadow:0 8px 28px rgba(20,30,40,.18);background:var(--nav);color:#fff}.lock-avatar-initials{font-size:34px;font-weight:750;letter-spacing:.02em}.lock-pin-form{gap:0}.lock-card-windows .pin-unlock-block{display:grid;justify-items:center}.lock-card-windows .pin-digits{width:min(330px,100%);grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.lock-card-windows .pin-digit{height:54px;font-size:24px;border-radius:10px}.lock-pin-error{margin:14px 0 0;text-align:left}.lock-passkey-message{text-align:center;margin-top:8px}.lock-card-windows .auth-divider{margin:20px 0}.lock-card-windows .lock-actions{margin-top:18px;padding-top:16px}.lock-card-windows .lock-actions .ui-btn{width:100%}
@media(max-width:480px){.lock-card-windows{padding:28px 20px}.lock-profile{margin-bottom:22px}.lock-avatar{width:96px;height:96px}.lock-avatar-initials{font-size:29px}.lock-card-windows .pin-digits{gap:6px}.lock-card-windows .pin-digit{height:50px;font-size:22px}}


/* 0.18.18 simplified login */
.auth-reset-link{width:100%;margin:16px 0 0;text-align:center}
.auth-reset-link a{display:inline-block}
.auth-foot{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;column-gap:.38em;row-gap:.2em;text-align:center}
.auth-foot span{display:inline-block;flex:0 0 auto}
@media(max-width:480px){.auth-foot{column-gap:.34em;font-size:12px}}

/* 0.18.19 compact, consistent table action buttons */
.ui-table th.ui-actions-cell,.ui-table td.ui-actions-cell{width:1%;white-space:nowrap;text-align:right}
.ui-table td.ui-actions-cell .ui-row-actions,
.ui-table td.ui-actions-cell .lifecycle-actions,
.ui-table td.ui-actions-cell .bank-action-stack{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:nowrap;vertical-align:middle}
.ui-table td.ui-actions-cell .ui-table-action-form{display:inline-flex;align-items:center;margin:0}
.ui-table td .ui-table-action-btn{position:relative;width:36px;min-width:36px;max-width:36px;height:36px;min-height:36px;padding:0;border-radius:9px;gap:0;font-size:0;line-height:1;flex:0 0 36px}
.ui-table td .ui-table-action-btn svg{width:17px;height:17px;flex:0 0 17px}
.ui-table td .ui-table-action-btn>span:not(.sr-only):not(.note-count-badge){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}
.ui-table td.ui-actions-cell .lifecycle-actions>.badge{margin-right:2px}
.ui-table td .ui-table-action-btn:focus-visible{outline:3px solid rgba(194,138,58,.28);outline-offset:2px}
.ui-action-tooltip{position:fixed;left:0;top:0;z-index:2147483647;max-width:min(280px,calc(100vw - 20px));padding:6px 9px;border-radius:7px;background:#17232d;color:#fff;font-size:12px;font-weight:650;line-height:1.25;white-space:normal;text-align:center;box-shadow:0 8px 26px rgba(10,18,24,.22);pointer-events:none;opacity:0;transform:translate(-50%,-100%);transition:opacity .08s;will-change:left,top}
.ui-action-tooltip.is-visible{opacity:1}
@media(max-width:620px){
  .ui-table td.ui-actions-cell .ui-row-actions,.ui-table td.ui-actions-cell .lifecycle-actions,.ui-table td.ui-actions-cell .bank-action-stack{gap:7px}
  .ui-table td .ui-table-action-btn{width:44px;min-width:44px;max-width:44px;height:44px;min-height:44px;flex-basis:44px}
  .ui-table td .ui-table-action-btn svg{width:19px;height:19px;flex-basis:19px}
}

@media(pointer:coarse){.ui-table td .ui-table-action-btn{width:44px;min-width:44px;max-width:44px;height:44px;min-height:44px;flex-basis:44px}.ui-table td .ui-table-action-btn svg{width:19px;height:19px;flex-basis:19px}}

/* 0.18.25 backup management */
.backup-create-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.backup-create-option{display:flex;flex-direction:column;justify-content:space-between;gap:14px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}.backup-create-option>div{display:grid;gap:5px}.backup-create-option strong{font-size:14px}.backup-create-option small{color:var(--muted);line-height:1.45}.backup-create-option .ui-btn{align-self:flex-start}.backup-security-note{margin-top:14px;display:grid;gap:4px}.ui-callout.danger{border-color:#e0b4b4;background:#fff4f4;color:#6f2929}.ui-callout.danger span{color:#824242}.backup-create-card .ui-section-head{margin-bottom:12px}.backup-storage-warning{display:grid;gap:4px}.backup-storage-warning small{color:var(--muted)}
@media(max-width:980px){.backup-create-grid{grid-template-columns:1fr}}

/* 0.18.29 address book and signatures */
.contact-function-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(145px,180px) minmax(145px,180px) auto;gap:10px;align-items:end;margin-bottom:10px}.contact-function-row label{margin:0}.signature-pad{display:grid;gap:8px;max-width:760px}.signature-pad canvas{display:block;width:100%;height:auto;aspect-ratio:900/280;max-height:240px;background:#fff;border:1px solid var(--line);border-radius:10px;touch-action:none;cursor:crosshair}.signature-preview{display:grid;justify-items:start;gap:5px;margin:4px 0 12px}.signature-preview img{display:block;max-width:360px;max-height:130px;width:auto;height:auto;padding:8px;background:#fff;border:1px solid var(--line);border-radius:8px}.signature-preview small{color:var(--muted)}
@media(max-width:860px){.contact-function-row{grid-template-columns:1fr 1fr}.contact-function-row .grow{grid-column:1/-1}.contact-function-row .ui-btn{justify-self:start}}
@media(max-width:560px){.contact-function-row{grid-template-columns:1fr}.contact-function-row .grow{grid-column:auto}.signature-pad canvas{min-height:150px}.signature-preview img{max-width:100%}}

/* 0.18.30 unified portal actions, note lightbox and association URL/region UI */
.ui-btn-archive{background:#465564;border-color:#465564;color:#fff}.ui-btn-archive:hover{background:#394653;border-color:#394653;color:#fff}
.ui-table td.ui-actions-cell .ui-row-actions,.ui-table td.ui-actions-cell .lifecycle-actions,.settings-regions-table-v2 td.ui-actions-cell{gap:8px}
.note-action-button{position:relative}.note-count-badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;margin-left:1px;border-radius:999px;background:var(--accent);color:#fff;font-size:10px;font-weight:800;line-height:1}
.entity-notes-dialog{width:min(920px,calc(100vw - 24px));max-width:none;height:min(92vh,900px);max-height:92vh;overflow:hidden;z-index:2147483647}.entity-notes-dialog::backdrop{background:rgba(15,24,31,.64)}.entity-notes-dialog>.ui-dialog-shell{height:100%;display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden}.entity-notes-dialog-content{min-height:0;overflow:auto;padding-right:2px}.entity-notes-dialog-content>.note-thread{margin:0;box-shadow:none;border:0;padding:0}.entity-notes-dialog-content .note-thread>.ui-section-head{display:none}.entity-notes-dialog [data-notes-dialog-error][hidden]{display:none}.entity-notes-dialog.is-loading .entity-notes-dialog-content{opacity:.55;pointer-events:none}
.settings-url-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.settings-url-grid input{width:100%;margin:0}.settings-url-grid code{display:inline-block;width:max-content;max-width:100%;padding:3px 6px;border-radius:6px;background:var(--surface-soft);color:var(--muted);font-size:11px}.region-active-toggle.is-static{display:inline-flex;align-items:center;justify-content:center;cursor:default}.settings-regions-table-v2 td.ui-actions-cell{padding-left:14px;padding-right:14px}
@media(max-width:720px){.settings-url-grid{grid-template-columns:1fr}.entity-notes-dialog{width:100vw;height:100vh;max-height:100vh;border-radius:0}}

/* 0.18.30 semantic action enforcement + visible note count in compact table actions */
.ui-table td .ui-table-action-btn .note-count-badge{position:absolute!important;top:-6px;right:-6px;z-index:2;width:auto!important;min-width:18px!important;height:18px!important;padding:0 5px!important;margin:0!important;overflow:visible!important;clip:auto!important;white-space:nowrap!important;font-size:10px!important;line-height:18px!important}
.ui-table td .ui-table-action-btn[data-action-icon="delete"]{background:var(--danger);border-color:var(--danger);color:#fff}
.ui-table td .ui-table-action-btn[data-action-icon="archive"]{background:#465564;border-color:#465564;color:#fff}

/* 0.18.31 Superadmin impersonation */
.ui-inline-form{display:inline-flex;margin:0}
.impersonation-banner{position:sticky;top:76px;z-index:14;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 28px;background:#fff1cf;border-bottom:1px solid #ddb96d;color:#5f4310;box-shadow:0 4px 12px rgba(48,36,15,.06)}
.impersonation-banner-copy{font-size:13px}.impersonation-banner-copy strong{font-weight:800}.impersonation-return-form{margin:0;display:flex;flex:0 0 auto}.impersonation-banner .ui-btn{background:#fff;border-color:#c89f4d;color:#5f4310}
@media(max-width:620px){.impersonation-banner{top:64px;padding:9px 12px;align-items:flex-start;flex-direction:column}.impersonation-return-form,.impersonation-return-form .ui-btn{width:100%}.impersonation-return-form .ui-btn{justify-content:center}}

/* 0.18.34 signature preview */
.signature-live-preview{display:grid;gap:6px;justify-items:start;padding:10px 0}.signature-live-preview strong{font-size:.9rem}.signature-live-preview img{display:block;max-width:min(100%,460px);max-height:150px;width:auto;height:auto;padding:8px;background:#fff;border:1px solid var(--line);border-radius:8px}

/* 0.18.36 structured staff activities */
.ui-disclosure{margin-top:14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);overflow:hidden}.ui-disclosure>summary{cursor:pointer;padding:11px 13px;font-weight:800;user-select:none}.ui-disclosure[open]>summary{border-bottom:1px solid var(--line)}.ui-disclosure>.ui-form-grid{padding:14px}.ui-table td .badge+.badge{margin-left:4px}

/* 0.19.0 Event-/Kioskmodus */
.event-kiosk-body{min-height:100vh;background:var(--bg);overscroll-behavior:none}.event-kiosk-top{position:sticky;top:0;z-index:100;min-height:78px;padding:10px max(18px,env(safe-area-inset-right)) 10px max(18px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;gap:18px;background:rgba(255,255,255,.97);border-top:4px solid var(--accent);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.event-kiosk-brand img{display:block;width:auto;height:48px;max-width:260px;object-fit:contain}.event-kiosk-tools{display:flex;align-items:center;gap:12px}.event-selection-pill{display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:8px 14px;border-radius:999px;background:var(--nav);color:#fff;font-weight:750}.event-language{display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:10px;background:#fff}.event-language a{min-width:42px;min-height:36px;display:grid;place-items:center;border-radius:7px;font-weight:750}.event-language a.active{background:var(--nav);color:#fff}.event-language.setup{justify-content:center;margin-top:10px}.event-preview-banner{position:sticky;top:78px;z-index:90;padding:8px 18px;text-align:center;background:#fff3d8;border-bottom:1px solid #ead09b;font-size:13px;font-weight:700}.event-preview-banner a{text-decoration:underline}.event-kiosk-main{padding:24px max(18px,env(safe-area-inset-right)) 40px max(18px,env(safe-area-inset-left))}.event-kiosk-frame{width:min(1120px,100%);margin:0 auto}.event-kiosk-title{text-align:center;margin:4px 0 22px}.event-kiosk-title h1{margin:0;font-size:clamp(25px,3vw,38px);line-height:1.15}.event-kiosk-title p{margin:7px 0 0;color:var(--muted);font-size:15px}.event-offer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.event-offer-card{min-height:285px;padding:26px 22px;display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow)}.event-offer-card h2{margin:10px 0 7px;font-size:22px}.event-offer-card strong{font-size:20px;color:var(--accent-dark)}.event-offer-card p{color:var(--muted);max-width:280px;flex:1}.event-offer-card .ui-btn{width:100%;min-height:48px}.event-offer-icon{width:66px;height:66px;display:grid;place-items:center;border-radius:50%;background:var(--surface-soft);border:1px solid var(--line);font-size:31px;color:var(--accent-dark)}.event-one-time{margin-top:18px;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:#fff}.event-one-time form{display:flex;gap:12px;align-items:end;justify-content:center}.event-one-time label{min-width:280px}.money-input-wrap{position:relative;display:block}.money-input-wrap input{width:100%;padding-right:36px}.money-input-suffix{position:absolute;right:13px;top:50%;transform:translateY(-50%);font-weight:700;color:var(--muted)}
.event-filterbar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;align-items:end;margin-bottom:18px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}.event-filterbar label{display:grid;gap:5px;font-size:12px;color:var(--muted)}.event-filterbar input,.event-filterbar select{width:100%;min-width:0}.event-filter-age{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:6px}.event-student-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.event-student-card{overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow)}.event-student-photo{aspect-ratio:4/3;background:var(--surface-soft);display:grid;place-items:center;overflow:hidden}.event-student-photo img{width:100%;height:100%;object-fit:cover}.event-student-photo-placeholder{font-size:44px;color:var(--line-strong)}.event-student-card-body{padding:14px}.event-student-card h2{margin:0 0 7px;font-size:19px}.event-student-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.event-student-meta span{padding:5px 8px;border-radius:999px;background:var(--surface-soft);border:1px solid var(--line);font-size:12px}.event-student-card .ui-btn{width:100%}.event-student-profile{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr);gap:24px;align-items:start}.event-student-profile-photo{border-radius:20px;overflow:hidden;background:#fff;border:1px solid var(--line);aspect-ratio:4/3}.event-student-profile-photo img{width:100%;height:100%;object-fit:cover}.event-student-profile-data{padding:24px;border:1px solid var(--line);border-radius:20px;background:#fff}.event-student-profile-data h2{font-size:30px;margin:0 0 18px}.event-student-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:22px}.event-student-fact{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}.event-student-fact small{display:block;color:var(--muted);margin-bottom:3px}.event-student-profile-data .ui-btn{width:100%;min-height:52px}
.event-selection-list,.event-review{display:grid;gap:14px}.event-selection-item,.event-review-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 18px;border:1px solid var(--line);border-radius:14px;background:#fff}.event-selection-item-copy{display:grid;gap:4px}.event-selection-item-copy small{color:var(--muted)}.event-selection-totals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.event-selection-total{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-radius:13px;background:var(--nav);color:#fff}.event-selection-total strong{font-size:20px}.event-selection-actions,.event-form-actions,.event-submit-form{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-top:18px}.event-selection-actions .ui-btn,.event-form-actions .ui-btn,.event-submit-form .ui-btn{min-width:190px}.event-form-card{padding:22px;border:1px solid var(--line);border-radius:18px;background:#fff}.event-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.event-form-grid .wide{grid-column:1/-1}.event-form-card label{display:grid;gap:6px}.event-inline-options{display:flex;gap:18px;margin:-4px 0 8px 34px}.event-inline-options label,.event-radio{display:flex!important;align-items:center;gap:7px!important;color:var(--ink)!important}.event-check{display:grid!important;grid-template-columns:24px 1fr;gap:10px!important;align-items:start;margin:11px 0!important;color:var(--ink)!important}.event-check input{min-height:0;margin-top:3px}.event-check.required span:after{content:' *';color:var(--danger)}.event-policy-box{margin:15px 0;padding:14px 16px;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:11px;background:var(--surface-soft);font-size:13px;line-height:1.55}.event-fieldset{border:1px solid var(--line);border-radius:12px;padding:14px;margin:0 0 15px}.event-fieldset legend{padding:0 7px;font-weight:750}.event-sepa-fields[hidden]{display:none!important}.event-signature{margin-top:18px}.event-signature h3{margin:0 0 3px}.event-signature p{margin:0 0 10px;color:var(--muted)}.event-signature canvas{display:block;width:100%;height:210px;touch-action:none;background:#fff;border:2px solid var(--line-strong);border-radius:12px}.event-signature canvas.is-invalid{border-color:var(--danger)}.event-signature-error{margin:7px 0 0;color:var(--danger);font-size:13px}.event-review-card{display:block}.event-review-card h2{margin:0 0 12px}.event-review-row{display:flex;justify-content:space-between;gap:15px;padding:8px 0;border-bottom:1px solid var(--line)}.event-review-row:last-child{border-bottom:0}.event-review-row strong{white-space:nowrap}.event-done{padding:40px 20px;text-align:center;border:1px solid var(--line);border-radius:20px;background:#fff}.event-done-heart{font-size:64px;color:var(--accent-dark);line-height:1}.event-done h2{font-size:29px;margin:12px 0 8px}.event-done p{color:var(--muted);max-width:650px;margin:0 auto 24px}.event-done .ui-btn{min-width:260px;margin:5px}.event-new-form{display:inline-block}.event-timeout-dialog{z-index:2147483647}
.event-setup-main{min-height:100vh;display:grid;place-items:center;padding:24px}.event-setup-card{width:min(520px,100%);padding:28px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 20px 60px rgba(20,30,40,.12);text-align:center}.event-setup-card>img{width:min(280px,80%);height:auto}.event-setup-card h1{margin:18px 0 7px}.event-setup-card p{color:var(--muted)}.event-setup-card form{text-align:left;margin-top:20px}.event-setup-card .ui-btn{width:100%;min-height:48px}.event-setup-code-result{display:grid;gap:8px;margin-bottom:18px}.event-setup-code-result code{font-size:28px;letter-spacing:.08em;font-weight:800}.event-admin-offers{display:grid;grid-template-columns:auto 160px auto 160px auto 160px auto;gap:9px;align-items:end}.event-device-add{display:flex;gap:10px;align-items:end;margin-bottom:14px}.event-device-add label{min-width:280px}.event-admin-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.event-admin-summary>div{display:grid;gap:5px;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft)}.event-admin-summary small{color:var(--muted)}.event-admin-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
@media(max-width:960px){.event-offer-grid{grid-template-columns:1fr}.event-offer-card{min-height:0}.event-filterbar{grid-template-columns:repeat(2,minmax(0,1fr))}.event-student-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.event-student-profile{grid-template-columns:1fr}.event-admin-offers{grid-template-columns:1fr 1fr}.event-admin-summary{grid-template-columns:1fr}.event-form-grid{grid-template-columns:1fr}.event-form-grid .wide{grid-column:auto}}
@media(max-width:620px){.event-kiosk-top{min-height:68px}.event-kiosk-brand img{height:38px;max-width:190px}.event-kiosk-tools{gap:7px}.event-selection-pill{padding:7px 10px;font-size:12px}.event-preview-banner{top:68px}.event-kiosk-main{padding:17px 12px 30px}.event-filterbar,.event-student-grid,.event-selection-totals{grid-template-columns:1fr}.event-student-facts{grid-template-columns:1fr 1fr}.event-one-time form,.event-device-add{display:grid}.event-selection-actions,.event-form-actions,.event-submit-form{display:grid;grid-template-columns:1fr}.event-selection-actions .ui-btn,.event-form-actions .ui-btn,.event-submit-form .ui-btn{width:100%;min-width:0}.event-inline-options{margin-left:0;flex-wrap:wrap}.event-admin-offers{grid-template-columns:1fr}.event-language a{min-width:36px}.event-signature canvas{height:170px}}
/* 0.19.0 event-kiosk markup alignment */
.event-age-range{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.event-student-card>img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:var(--surface-soft)}
.event-student-card>.event-student-placeholder{aspect-ratio:4/3;display:grid;place-items:center;background:var(--surface-soft);font-size:44px;color:var(--line-strong)}
.event-student-card>div:last-child{padding:14px}
.event-student-card h3{margin:0 0 7px;font-size:19px}
.event-student-profile-data dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 22px}
.event-student-profile-data dl>div{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}
.event-student-profile-data dt{display:block;color:var(--muted);font-size:12px;margin-bottom:3px}
.event-student-profile-data dd{margin:0;font-weight:650}
.event-selection-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 18px;border:1px solid var(--line);border-radius:14px;background:#fff}
.event-selection-row>div{display:grid;gap:4px}
.event-selection-row small{color:var(--muted)}
.event-selection-total{display:grid;grid-template-columns:1fr auto;gap:8px}
@media(max-width:620px){.event-student-profile-data dl{grid-template-columns:1fr 1fr}.event-selection-row{align-items:flex-start;flex-direction:column}.event-selection-row .ui-btn{width:100%}}

/* 0.19.1 Schuljahrverwaltung: Inline-Plausibilitätsprüfung in priorisierten Lightboxen. */
.school-year-management-card,.school-year-promotion-card{margin-bottom:16px}.school-year-current-line{justify-content:flex-start;gap:10px;margin-bottom:10px}.school-year-dialog{z-index:2147483647}.school-year-field-error{display:block;margin-top:5px;color:var(--danger);font-size:12px;font-weight:650;line-height:1.35}.school-year-field-error[hidden]{display:none}.school-year-dialog input.is-invalid,.school-year-dialog select.is-invalid{border-color:var(--danger)!important;box-shadow:0 0 0 1px var(--danger)}

/* 0.19.2 inactivity resume + account logout alignment */

/* 0.19.3 Event/Kiosk UX: portrait children, live filters, large child lightbox, clearer form controls. */
.event-student-card{appearance:none;-webkit-appearance:none;width:100%;padding:0;text-align:left;color:inherit;font:inherit;cursor:pointer}
.event-student-card>img,.event-student-card>.event-student-placeholder,.event-student-profile-photo{aspect-ratio:3/4}
.event-student-card>img,.event-student-profile-photo img{object-fit:cover;object-position:center top}
.event-filterbar{grid-template-columns:repeat(4,minmax(0,1fr)) auto}.event-filter-reset{align-self:end;white-space:nowrap}
.event-student-dialog{z-index:2147483647}.event-student-dialog .ui-dialog-shell{width:90vw;max-width:90vw;height:90vh;max-height:90vh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.event-student-dialog-body{overflow:auto;padding:2px 4px 14px}.event-student-modal-grid{display:grid;grid-template-columns:minmax(260px,.75fr) minmax(0,1.25fr);gap:24px;align-items:start}.event-student-modal-photo{width:min(100%,420px);aspect-ratio:3/4;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--surface-soft);display:grid;place-items:center}.event-student-modal-photo img{width:100%;height:100%;object-fit:cover;object-position:center top}.event-student-modal-photo .event-student-placeholder{font-size:64px}.event-student-modal-data dl,.event-review-child dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 18px}.event-student-modal-data dl>div,.event-review-child dl>div{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}.event-student-modal-data dt,.event-review-child dt{font-size:12px;color:var(--muted)}.event-student-modal-data dd,.event-review-child dd{margin:3px 0 0;font-weight:750}.event-student-story{padding:14px 16px;border-radius:13px;background:var(--surface-soft);border-left:4px solid var(--accent)}.event-student-story h3{margin:0 0 7px}.event-student-story p{margin:0;line-height:1.55}.event-student-dialog-actions{display:grid;gap:8px;padding-top:12px;border-top:1px solid var(--line);background:#fff}.event-student-browse{display:grid;grid-template-columns:1fr 1fr;gap:8px}.event-student-support-actions{display:grid;gap:0}.event-student-support-actions form{margin:0}.event-student-support-actions .ui-btn,.event-student-support-actions form .ui-btn{width:100%;min-height:50px;border-radius:0}.event-student-support-actions form:first-child .ui-btn{border-radius:11px 11px 0 0}.event-student-support-actions>:last-child{border-radius:0 0 11px 11px}.event-student-profile-data .event-student-support-actions{margin-top:16px}
.event-person-card{padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}.event-person-card legend{padding:0 7px;font-weight:800}.event-person-card .event-form-grid{margin-top:3px}.event-salutation-preview input{background:#f3f5f6;font-weight:750}.event-details-form label small,.event-support-note small{color:var(--muted);font-size:12px}.event-support-note{display:grid!important;gap:6px!important;margin-top:16px}.event-support-note textarea{resize:vertical;min-height:105px}
.event-inline-options-large{margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.event-inline-options-large label,.event-radio{min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}.event-inline-options input[type="radio"],.event-radio input[type="radio"]{width:23px;height:23px;min-width:23px;min-height:23px;margin:0;accent-color:var(--accent)}.event-check{align-items:center!important}.event-check input[type="checkbox"]{width:18px;height:18px;min-width:18px;min-height:18px;margin:0!important;align-self:center;accent-color:var(--accent)}.event-check span{align-self:center;line-height:1.35}.event-terms-link{margin:14px 0 8px}.event-terms-dialog{z-index:2147483647}.event-terms-dialog .ui-dialog-shell{width:min(860px,92vw);max-height:88vh}.event-terms-content{overflow:auto;white-space:normal;line-height:1.55;padding-right:6px}
.event-selection-row>div:last-child{gap:10px}.event-selection-row form{margin-top:5px}.event-review-total{display:flex;justify-content:space-between;gap:14px;padding:12px 0 2px;margin-top:5px;border-top:2px solid var(--line)}.event-review-child-grid{display:grid;grid-template-columns:minmax(150px,220px) 1fr;gap:18px}.event-review-child-grid>div:first-child img,.event-review-child-grid>div:first-child>.event-student-placeholder{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center top;border-radius:14px;background:var(--surface-soft)}.event-review-child-grid>div:first-child>.event-student-placeholder{display:grid;place-items:center;font-size:50px}.event-review-child h3{margin:0 0 10px;font-size:24px}.event-review-child-story{line-height:1.55;margin:12px 0 0}.event-review-summary-grid{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr);gap:9px 14px}.event-review-summary-grid span{color:var(--muted)}.event-timeout-countdown{margin:12px 0 0;padding:9px 12px;border-radius:9px;background:var(--surface-soft);font-variant-numeric:tabular-nums}.event-timeout-countdown strong{font-size:22px;color:var(--danger)}
@media(max-width:960px){.event-filterbar{grid-template-columns:repeat(2,minmax(0,1fr))}.event-student-modal-grid{grid-template-columns:minmax(210px,.8fr) 1fr}.event-inline-options-large{grid-template-columns:1fr}.event-review-child-grid{grid-template-columns:180px 1fr}}
@media(max-width:620px){.event-filterbar{grid-template-columns:1fr}.event-filter-reset{width:100%}.event-student-dialog .ui-dialog-shell{width:94vw;max-width:94vw;height:92vh;max-height:92vh}.event-student-modal-grid{grid-template-columns:1fr}.event-student-modal-photo{width:min(78vw,330px);margin:0 auto}.event-student-browse{grid-template-columns:1fr 1fr}.event-review-child-grid{grid-template-columns:1fr}.event-review-child-grid>div:first-child{width:min(68vw,240px);margin:0 auto}.event-review-summary-grid{grid-template-columns:1fr}.event-inline-options{margin-left:0}}

/* 0.19.4 Central PIN / OTP / numeric security-code component */
.security-code-component{display:grid;gap:8px;min-width:0}
.security-code-label{display:block;font-size:13px;font-weight:750;color:var(--muted)}
.security-code-digits{display:grid;grid-template-columns:repeat(var(--security-code-length),minmax(0,1fr));gap:9px;width:min(100%,calc(var(--security-code-length) * 54px + (var(--security-code-length) - 1) * 9px))}
.security-code-digit{box-sizing:border-box;width:100%;min-width:0;height:54px;min-height:54px;padding:0 4px;border:1px solid var(--line-strong);border-radius:10px;background:#fff;text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:24px;font-weight:800;line-height:1;letter-spacing:0;color:var(--ink);caret-color:var(--accent);transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}
.security-code-digit:hover{border-color:#a8a29b}
.security-code-digit:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(164,112,45,.20);background:#fffdf8}
.security-code-component.has-error .security-code-digit{border-color:var(--danger)}
.security-code-component.has-error .security-code-digit:focus{box-shadow:0 0 0 3px rgba(180,46,46,.16)}
.security-code-component.is-complete .security-code-digit{border-color:#8a9f83}
.security-code-noscript{display:grid;gap:6px}
.security-code-noscript input{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.14em;text-align:center}
.mfa-security-code{margin:4px 0 2px}
.mfa-security-code .security-code-digits{width:100%}
.pin-settings-form .security-code-digits{width:min(100%,369px)}
.lock-security-code .security-code-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.lock-card-windows .lock-security-code{width:min(330px,100%)}
.lock-card-windows .lock-security-code .security-code-digits{width:100%;gap:9px}
.lock-card-windows .lock-security-code .security-code-digit{height:54px;min-height:54px;font-size:24px}
@media(max-width:480px){.security-code-digits{gap:6px}.security-code-digit{height:48px;min-height:48px;border-radius:9px;font-size:21px;padding:0 2px}.lock-card-windows .lock-security-code .security-code-digits{gap:6px}.lock-card-windows .lock-security-code .security-code-digit{height:50px;min-height:50px;font-size:22px}}

/* 0.19.8 donor account edit: compact normal action row */
.donor-account-edit-form .donor-account-edit-actions{grid-column:1/-1;margin-top:4px;align-self:start}.donor-account-edit-form .donor-account-edit-actions .ui-btn{align-self:center}
/* 0.19.10 kiosk device administration */
.event-device-row{cursor:pointer}.event-device-row:hover td{background:var(--surface-soft)}
.event-device-dialog .event-setup-code-result{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}
.event-device-dialog .event-setup-code-result input{width:100%}

/* 0.19.12 receipt template alignment */
.nav-alert-badge.nav-alert-badge-info{background:#2f8a63;color:#fff}
.backup-storage-warning{gap:10px}.backup-storage-fix{display:grid;gap:8px;margin-top:6px;padding:12px 13px;border-radius:10px;background:rgba(255,255,255,.65);border:1px solid rgba(128,84,22,.18)}.backup-storage-fix>strong{font-size:13px}.backup-storage-fix ol{margin:0;padding-left:20px;display:grid;gap:5px}.backup-storage-fix pre{margin:0;overflow:auto;padding:10px 12px;border-radius:8px;background:#233746;color:#fff;font-size:12px;line-height:1.45}.backup-storage-fix code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.backup-create-option.is-disabled{opacity:.68;background:#f5f6f7}.backup-create-option.is-disabled .ui-btn{cursor:not-allowed;filter:grayscale(.25)}.backup-disabled-reason{display:block;color:#8a5711!important;font-weight:700}.backup-automation-explain{display:grid;gap:4px;margin-bottom:12px}.backup-automation-form{gap:10px}.backup-automation-toggle{display:flex!important;grid-template-columns:none!important;align-items:center!important;gap:10px!important;color:var(--ink)!important;font-weight:700}.backup-automation-toggle input[type="checkbox"]{width:19px!important;height:19px!important;min-width:19px!important;min-height:19px!important;margin:0!important;padding:0!important;accent-color:var(--accent);flex:0 0 19px}.backup-automation-toggle span{line-height:1.35}.receipt-filter-stack{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start}.receipt-filter-stack>.ui-filterbar{margin-bottom:10px}.receipt-assignment-info,.receipt-upload-unassigned-note{display:grid;gap:4px}.receipt-assignment-info{margin-bottom:14px;border-color:#b9dfc8;background:#eef8f2;color:#225e45}.receipt-assignment-info span{color:#356b52}

/* 0.19.14 manual receipt donation entries */
.receipt-donation-editor{border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);padding:16px;display:grid;gap:13px}.receipt-donation-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.receipt-donation-head h3{margin:0 0 4px}.receipt-donation-head p{margin:0;color:var(--muted);font-size:13px;max-width:760px}.receipt-donation-total{min-width:160px;text-align:right;display:grid;gap:2px}.receipt-donation-total span{font-size:12px;color:var(--muted)}.receipt-donation-total strong{font-size:19px;font-variant-numeric:tabular-nums}.receipt-donation-rows{display:grid;gap:8px}.receipt-donation-row{display:grid;grid-template-columns:30px minmax(170px,.75fr) minmax(170px,.75fr) auto;align-items:end;gap:10px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff}.receipt-donation-index{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--surface-soft);font-size:12px;font-weight:800;color:var(--muted);align-self:center}.receipt-donation-remove{align-self:end}.receipt-donation-actions{display:flex;justify-content:flex-start}.receipt-donation-editor[data-receipt-type="single"] .receipt-donation-actions{display:none}@media(max-width:720px){.receipt-donation-head{display:grid}.receipt-donation-total{text-align:left}.receipt-donation-row{grid-template-columns:30px 1fr}.receipt-donation-row label{grid-column:2}.receipt-donation-remove{grid-column:2;justify-self:start}}

/* 0.19.16 declarative JSON PDF editor */
.pdf-template-json-editor{gap:14px}.pdf-json-workspace{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,.78fr);gap:14px;align-items:start}.pdf-json-editor-label{display:grid!important;gap:7px!important}.pdf-json-editor-label>span{font-weight:800;color:var(--ink)}.pdf-json-editor-label textarea{width:100%;min-height:72vh;resize:vertical;border-radius:10px;padding:14px 15px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;font-size:12.5px;line-height:1.48;tab-size:2;white-space:pre;overflow:auto;background:#fbfcfd;color:#17232d}.pdf-json-editor-label textarea:focus{outline:2px solid rgba(194,138,58,.18);border-color:var(--accent)}.pdf-json-editor-label small{color:var(--muted)}.pdf-json-editor-label small.is-error{color:var(--danger);font-weight:750}.pdf-json-reference{position:sticky;top:96px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);padding:14px;display:grid;gap:10px}.pdf-json-reference h3{margin:0}.pdf-json-reference p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.pdf-json-reference dl{margin:0;display:grid;grid-template-columns:92px 1fr;gap:8px 10px;font-size:12px}.pdf-json-reference dt{font-weight:800;color:var(--ink)}.pdf-json-reference dd{margin:0;color:var(--muted);min-width:0}.pdf-json-reference code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--accent-dark)}.pdf-json-mini-example{margin:0;max-width:100%;overflow:auto;padding:10px;border-radius:8px;background:#233746;color:#fff;font-size:11px;line-height:1.45}.pdf-template-json-editor .pdf-template-editor-toolbar{position:sticky;top:84px;z-index:4;background:var(--surface);box-shadow:0 3px 10px rgba(20,30,40,.05)}@media(max-width:980px){.pdf-json-workspace{grid-template-columns:1fr}.pdf-json-reference{position:static}.pdf-template-json-editor .pdf-template-editor-toolbar{position:static}.pdf-json-editor-label textarea{min-height:60vh}}

/* 0.19.33 receipt preview and status workflow */
.receipt-preview-dialog{box-sizing:border-box;width:calc(100vw - 20px);height:calc(100vh - 20px);max-width:none;max-height:none;z-index:10070;overflow:hidden}.receipt-preview-dialog .ui-dialog-shell{box-sizing:border-box;height:100%;max-height:none;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);gap:8px;padding:12px}.receipt-preview-dialog .pdf-preview-frame{min-height:0;height:100%;width:100%}.receipt-status-filter{margin:0}.receipt-filter-stack{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
@media(max-width:800px){.receipt-preview-dialog{width:100vw;height:100vh;max-height:100vh;border-radius:0}}

/* 0.19.34 test donation receipt preview */
.receipt-test-preview-dialog{box-sizing:border-box;width:calc(100vw - 16px);height:calc(100vh - 16px);max-width:none;max-height:none;border-radius:12px;overflow:hidden}.receipt-test-preview-dialog .ui-dialog-shell{box-sizing:border-box;height:100%;max-height:none;padding:10px;overflow:hidden;grid-template-rows:auto auto minmax(0,1fr);gap:6px}.receipt-test-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:38px}.receipt-test-preview-head h2{margin:0;font-size:1.05rem}.receipt-test-preview-state{margin:0;padding:8px 10px;border-radius:8px;background:var(--surface-subtle,#f7f7f5);font-size:.88rem}.receipt-test-preview-state.is-error{background:#fff1f1;color:#8f1d1d;border:1px solid #efc2c2}.receipt-test-preview-state.is-loading{color:var(--text-muted,#676767)}.receipt-test-preview-state[hidden]{display:none}.receipt-test-preview-dialog .pdf-preview-frame{box-sizing:border-box;width:100%;height:100%;min-height:0;border-radius:8px}.receipt-test-preview-dialog .pdf-preview-frame[hidden]{display:none}@media(max-width:800px){.receipt-test-preview-dialog{width:100vw;height:100vh;max-height:100vh;border-radius:0}.receipt-test-preview-dialog .ui-dialog-shell{padding:6px}}


/* 0.19.37 receipt selection and portrait PDF preview sizing */
.receipt-select-column{width:46px;text-align:center}.receipt-select-all-wrap{display:inline-grid;place-items:center;margin:0;cursor:pointer}.receipt-select-all-wrap input[type=checkbox],.receipt-selection-table input[type=checkbox]{width:18px;height:18px;min-width:18px;min-height:18px;margin:0;accent-color:var(--accent);cursor:pointer}.receipt-selection-table td:first-child{text-align:center;vertical-align:middle}
.receipt-preview-dialog,.receipt-test-preview-dialog{box-sizing:border-box;width:min(760px,calc(100vw - 40px));height:min(94vh,980px);max-width:760px;max-height:94vh;overflow:hidden;border-radius:14px;padding:0}.receipt-preview-dialog>.ui-dialog-shell,.receipt-test-preview-dialog>.ui-dialog-shell{box-sizing:border-box;width:100%;height:100%;max-height:none;min-height:0;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);gap:6px;padding:8px;position:relative}.receipt-preview-dialog .ui-dialog-head,.receipt-test-preview-dialog .ui-dialog-head{margin:0;min-height:38px}.receipt-preview-dialog .pdf-preview-frame,.receipt-test-preview-dialog .pdf-preview-frame{display:block;box-sizing:border-box;width:100%;height:100%;min-height:0;max-height:none;border:1px solid var(--line);border-radius:8px;background:#525659}.receipt-test-preview-state{position:absolute;z-index:2;top:52px;left:18px;right:18px;margin:0;box-shadow:0 4px 18px rgba(20,30,40,.12)}.receipt-test-preview-state[hidden]{display:none}.receipt-test-preview-dialog .pdf-preview-frame[hidden]{display:none}
@media(min-width:1400px){.receipt-preview-dialog,.receipt-test-preview-dialog{width:min(720px,48vw)}}
@media(max-width:800px){.receipt-preview-dialog,.receipt-test-preview-dialog{width:100vw;height:100vh;max-width:none;max-height:100vh;border-radius:0}.receipt-preview-dialog>.ui-dialog-shell,.receipt-test-preview-dialog>.ui-dialog-shell{padding:6px}}

/* 0.19.38 mixed manual receipt upload */
.receipt-upload-label{min-width:0}.receipt-upload-dropzone{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 12px;min-width:0;padding:18px;border:2px dashed var(--line);border-radius:14px;background:var(--surface-soft);cursor:pointer;transition:border-color .15s ease,background .15s ease}.receipt-upload-dropzone:hover,.receipt-upload-dropzone:focus-visible,.receipt-upload-dropzone.is-dragover{border-color:var(--accent);background:rgba(194,138,58,.08);outline:none}.receipt-upload-dropzone.has-file{border-style:solid}.receipt-upload-dropzone input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.receipt-upload-dropzone-icon{grid-row:1/4;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#fff;border:1px solid var(--line)}.receipt-upload-dropzone strong,.receipt-upload-dropzone small,.receipt-upload-dropzone [data-receipt-file-name]{min-width:0;overflow-wrap:anywhere}.receipt-upload-dropzone [data-receipt-file-name]{font-size:12px;font-weight:700;color:var(--muted)}.receipt-assignment-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.receipt-assignment-summary>div{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft);min-width:0}.receipt-assignment-summary span{font-size:12px;color:var(--muted)}.receipt-assignment-summary strong{font-size:17px;overflow-wrap:anywhere}.receipt-assignment-summary [data-receipt-remaining-box].is-balanced{border-color:#8fcaa3;background:#f2fbf5}.receipt-assignment-summary [data-receipt-remaining-box].is-over{border-color:#e0a5a5;background:#fff4f4}.receipt-manual-extra[hidden]{display:none}.receipt-manual-extra{display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}.receipt-manual-extra .receipt-donation-row{grid-template-columns:34px minmax(150px,.8fr) minmax(150px,.8fr) minmax(180px,1.2fr) auto}.bank-purpose-badges{display:flex;flex-wrap:wrap;gap:5px}
@media(max-width:900px){.receipt-assignment-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.receipt-manual-extra .receipt-donation-row{grid-template-columns:34px minmax(0,1fr) minmax(0,1fr)}.receipt-manual-extra .receipt-donation-row label:nth-of-type(3){grid-column:2/4}.receipt-manual-extra .receipt-donation-row [data-receipt-manual-remove]{grid-column:3;justify-self:end}}
@media(max-width:620px){.receipt-assignment-summary{grid-template-columns:1fr}.receipt-upload-dropzone{padding:14px}.receipt-manual-extra .receipt-donation-row{grid-template-columns:30px minmax(0,1fr)}.receipt-manual-extra .receipt-donation-row label,.receipt-manual-extra .receipt-donation-row label:nth-of-type(3),.receipt-manual-extra .receipt-donation-row [data-receipt-manual-remove]{grid-column:2}.receipt-manual-extra .receipt-donation-row [data-receipt-manual-remove]{justify-self:start}}

/* 0.19.38 family-centred overview and duplicate context */
.family-parent-lines,.family-child-links{display:grid;gap:4px}.family-parent-lines a,.family-child-links a{min-width:0;overflow-wrap:anywhere}.family-parent-lines span{color:var(--muted);font-size:12px}.family-parent-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.family-parent-card{display:grid;gap:6px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}.family-parent-card>a{font-weight:800}.family-parent-card small{overflow-wrap:anywhere}.family-parent-card.is-empty{opacity:.7}.family-tree{overflow:auto}.family-tree ul{list-style:none;margin:0;padding-left:20px;border-left:1px solid var(--line)}.family-tree>ul{padding-left:0;border-left:0;display:grid;gap:12px}.family-tree li{position:relative;padding:5px 0 5px 12px}.family-tree li:before{content:"";position:absolute;left:-20px;top:16px;width:18px;border-top:1px solid var(--line)}.family-tree>ul>li:before{display:none}.family-tree-children{padding:10px 12px!important;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft)}.family-merge-context{margin:4px 0 14px}.family-merge-context h3{margin:0 0 8px}.family-merge-context-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.family-merge-context-grid>div{display:grid;gap:5px;min-width:0;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft)}.family-merge-context-grid small{overflow-wrap:anywhere}.family-merge-dialog,.family-review-student-dialog{z-index:2147483647}
@media(max-width:700px){.family-parent-grid,.family-merge-context-grid{grid-template-columns:1fr}}

/* 0.19.38 responsive lifecycle dialogs and nested lightboxes */
.ui-dialog-priority{z-index:2147483647}.lifecycle-dialog{box-sizing:border-box;width:min(640px,calc(100vw - 28px));max-width:100%;max-height:min(88vh,760px);overflow:hidden}.lifecycle-dialog .ui-dialog-shell{box-sizing:border-box;width:100%;max-width:100%;min-width:0;max-height:min(88vh,760px);overflow:auto;overflow-wrap:anywhere}.lifecycle-dialog .ui-section-head,.lifecycle-dialog .ui-section-head>div,.lifecycle-dialog form,.lifecycle-dialog label{min-width:0;max-width:100%}.lifecycle-dialog input,.lifecycle-dialog select,.lifecycle-dialog textarea{box-sizing:border-box;width:100%;max-width:100%}.lifecycle-dialog .ui-form-actions{flex-wrap:wrap}.lifecycle-protected-hint{display:inline-flex;align-items:center;gap:5px}.donor-joint-conversion{display:grid;gap:10px;min-width:0}.donor-joint-conversion[hidden]{display:none}.donor-joint-conversion p{margin:0}.ui-choice-row{display:flex;flex-wrap:wrap;gap:14px}.ui-choice-row .check{display:inline-flex!important}
@media(max-width:520px){.lifecycle-dialog{width:calc(100vw - 16px);max-height:calc(100vh - 16px)}.lifecycle-dialog .ui-dialog-shell{padding:14px;max-height:calc(100vh - 16px)}.lifecycle-dialog .ui-form-actions{display:grid;grid-template-columns:1fr;width:100%}.lifecycle-dialog .ui-form-actions .ui-btn{width:100%;justify-content:center}}

/* 0.19.40 confession free text, recurring donation cadence, purpose administration, donor bank cards */
.commitment-core-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:start}.commitment-core-grid>label{display:grid;gap:6px;min-width:0}.commitment-repeat-control{display:grid;grid-template-columns:auto 72px minmax(110px,1fr);gap:8px;align-items:center;min-width:0}.commitment-repeat-control>span{white-space:nowrap;color:var(--muted);font-size:12px}.commitment-repeat-control input,.commitment-repeat-control select{min-width:0;width:100%}.donation-purpose-admin-table input,.donation-purpose-admin-table select{box-sizing:border-box;width:100%;min-width:110px}.donation-purpose-admin-table input[type=number]{min-width:86px}.donation-purpose-new-row td{background:var(--surface-soft)}
.donor-bank-connections dd{min-width:0}.donor-bank-card-list{display:grid;gap:10px}.donor-bank-card{display:grid;gap:4px;min-width:0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}.donor-bank-card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;min-width:0}.donor-bank-iban{font-size:15px;letter-spacing:.02em;overflow-wrap:anywhere}.donor-bank-name{font-weight:750}.donor-bank-location,.donor-bank-owner{color:var(--muted)}
@media(max-width:1050px){.commitment-core-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.commitment-core-grid{grid-template-columns:1fr}.commitment-repeat-control{grid-template-columns:1fr 72px minmax(0,1fr)}.donor-bank-card{padding:11px}.donor-bank-card-head{align-items:flex-start;flex-direction:column}.donation-purpose-admin-table{min-width:760px}}

/* 0.19.41 canonical action semantics + table-note modal state preservation */
.entity-notes-dialog{box-sizing:border-box;width:min(920px,calc(100vw - 28px));max-width:920px;max-height:90vh;overflow:hidden}
.entity-notes-dialog>.ui-dialog-shell{box-sizing:border-box;width:100%;max-height:90vh;display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden}
.entity-notes-dialog-content{min-height:0;overflow:auto;overscroll-behavior:contain}
.entity-notes-dialog .note-thread{box-shadow:none;border:0;padding:0}
.note-action-button .note-count-badge{pointer-events:none}
@media(max-width:620px){.entity-notes-dialog{width:calc(100vw - 14px);max-height:94vh}.entity-notes-dialog>.ui-dialog-shell{max-height:94vh}}

/* 0.19.42 central drag/drop document upload and protected PDF lightbox */
.document-upload-panel{margin-bottom:16px}.document-upload-form{align-items:start}.document-upload-label{min-width:0}.document-upload-label>span:first-child{display:block;margin-bottom:6px;font-weight:700}.document-upload-dropzone{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 12px;min-width:0;padding:18px;border:2px dashed var(--line);border-radius:14px;background:var(--surface-soft);cursor:pointer;transition:border-color .15s ease,background .15s ease}.document-upload-dropzone:hover,.document-upload-dropzone:focus-visible,.document-upload-dropzone.is-dragover{border-color:var(--accent);background:rgba(194,138,58,.08);outline:none}.document-upload-dropzone.has-file{border-style:solid}.document-upload-dropzone input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.document-upload-dropzone-icon{grid-row:1/4;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#fff;border:1px solid var(--line)}.document-upload-dropzone strong,.document-upload-dropzone small,.document-upload-file-name{min-width:0;overflow-wrap:anywhere}.document-upload-file-name{font-size:12px;font-weight:700;color:var(--muted)}
.pdf-viewer-dialog{box-sizing:border-box;width:min(1180px,calc(100vw - 22px));height:min(94vh,940px);max-width:none;max-height:94vh;padding:0;border:0;overflow:hidden;background:#fff;z-index:2147483647}.pdf-viewer-dialog::backdrop{background:rgba(7,12,16,.82);backdrop-filter:blur(3px)}.pdf-viewer-shell{height:100%;min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);background:#fff}.pdf-viewer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--line)}.pdf-viewer-head-copy{min-width:0}.pdf-viewer-head-copy h2{margin:0;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pdf-viewer-head-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.pdf-viewer-help{margin:0;padding:7px 12px;border-bottom:1px solid var(--line);background:var(--surface-soft);font-size:12px;color:var(--muted)}.pdf-viewer-frame-wrap{position:relative;min-height:0;background:#525659}.pdf-viewer-frame{display:block;width:100%;height:100%;border:0;background:#525659}.pdf-viewer-loading{position:absolute;inset:0;display:grid;place-items:center;padding:20px;color:#fff;background:#525659}.pdf-viewer-loading[hidden]{display:none}.pdf-viewer-shell:fullscreen{width:100vw;height:100vh;background:#fff}.pdf-viewer-shell:fullscreen .pdf-viewer-frame-wrap{min-height:0}
@media(max-width:650px){.document-upload-dropzone{padding:14px}.pdf-viewer-dialog{width:100vw;height:100vh;max-height:100vh;border-radius:0}.pdf-viewer-head{align-items:flex-start}.pdf-viewer-head-actions .ui-btn span{display:none}.pdf-viewer-help{font-size:11px}}

/* 0.19.43 school-year integrity: responsive validation lightbox and protected periods */
.school-year-dialog{box-sizing:border-box;width:min(760px,calc(100vw - 28px));max-width:100%;max-height:min(90vh,820px);overflow:hidden}
.school-year-dialog .ui-dialog-shell{box-sizing:border-box;width:100%;max-width:100%;min-width:0;max-height:min(90vh,820px);overflow:auto;overflow-wrap:anywhere}
.school-year-dialog .ui-form-grid,.school-year-dialog label,.school-year-dialog .ui-section-head,.school-year-dialog .ui-section-head>div{min-width:0;max-width:100%}
.school-year-dialog input,.school-year-dialog select,.school-year-dialog textarea{box-sizing:border-box;max-width:100%}
.school-year-dialog input[readonly]{background:var(--surface-soft);color:var(--muted);cursor:not-allowed}
.school-year-dialog .school-year-field-error,.school-year-dialog .school-year-form-message,.school-year-dialog .school-year-dependency-warning{overflow-wrap:anywhere;word-break:normal;white-space:normal}
.school-year-dependency-warning{display:grid;gap:4px}
.school-year-dialog .ui-form-actions{flex-wrap:wrap;position:relative}
.school-year-dialog button[type=submit]:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:560px){.school-year-dialog{width:calc(100vw - 14px);max-height:calc(100vh - 14px)}.school-year-dialog .ui-dialog-shell{padding:14px;max-height:calc(100vh - 14px)}.school-year-dialog .ui-form-actions{display:grid;grid-template-columns:1fr;width:100%}.school-year-dialog .ui-form-actions .ui-btn{width:100%;justify-content:center}}

/* 0.19.44 profile-series availability. The popover is viewport-fixed so it is
   never clipped by horizontally scrollable table containers. */
.availability-hint{position:relative;display:inline-flex;vertical-align:middle}
.availability-hint-trigger{appearance:none;border:0;font:inherit;cursor:help}
.availability-hint-popover{position:fixed;z-index:2147483000;left:0;top:0;width:max-content;max-width:min(330px,calc(100vw - 28px));padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 12px 34px rgba(10,18,24,.2);display:none;gap:6px;color:var(--text);font-size:12px;line-height:1.35;white-space:normal;text-align:left}
.availability-hint-popover>span{display:grid;grid-template-columns:minmax(105px,auto) minmax(0,1fr);gap:8px;align-items:start}
.availability-hint-popover strong{color:var(--muted);font-size:11px}
.availability-hint:hover .availability-hint-popover,.availability-hint:focus-within .availability-hint-popover,.availability-hint.is-open .availability-hint-popover{display:grid}
@media(max-width:700px){.availability-hint-popover{max-width:calc(100vw - 24px)}.availability-hint-popover>span{grid-template-columns:1fr;gap:2px}}

/* 0.19.45 compact document upload lightbox. */
.document-upload-dialog{box-sizing:border-box;width:min(900px,calc(100vw - 28px));max-width:100%;max-height:min(92vh,900px);overflow:hidden}
.document-upload-dialog .ui-dialog-shell{box-sizing:border-box;max-height:min(92vh,900px);overflow:auto;overflow-wrap:anywhere}
.document-multi-upload-form{display:grid;gap:14px;min-width:0}
.document-upload-label>span.document-upload-dropzone{display:grid;margin-bottom:0;font-weight:inherit}
.document-upload-dialog .document-upload-dropzone{min-height:118px;padding:24px}
.document-upload-metadata{display:grid;gap:12px;min-width:0}
.document-upload-file-card{display:grid;gap:10px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}
.document-upload-file-head{display:flex;align-items:center;gap:9px;min-width:0}
.document-upload-file-head strong{min-width:0;overflow-wrap:anywhere}
.document-upload-file-icon{display:grid;place-items:center;flex:0 0 auto;width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}
.document-upload-file-card .ui-form-grid{margin:0;align-items:end}
.document-upload-actions{margin-top:0;flex-wrap:wrap}
.document-upload-metadata[hidden],.document-upload-actions[hidden]{display:none!important}
@media(max-width:650px){.document-upload-dialog{width:calc(100vw - 14px);max-height:calc(100vh - 14px)}.document-upload-dialog .ui-dialog-shell{max-height:calc(100vh - 14px);padding:14px}.document-upload-dialog .document-upload-dropzone{min-height:100px;padding:16px}.document-upload-file-card{padding:12px}.document-upload-file-card .ui-form-grid{grid-template-columns:1fr}.document-upload-actions{display:grid;grid-template-columns:1fr}.document-upload-actions .ui-btn{width:100%;justify-content:center}}

/* 0.19.46 Message Center + reviewed occupation flow */
.message-center-filters{align-items:end}
.message-center-dialog .ui-dialog-shell{width:min(980px,calc(100vw - 28px));max-height:calc(100vh - 28px);overflow:auto}
.message-center-detail{display:grid;gap:18px}
.message-center-body-frame{display:block;width:100%;min-height:360px;border:1px solid var(--border,#d8dde2);border-radius:10px;background:#fff}
.message-center-text-body,.message-center-technical pre{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;margin:0}
.message-attachment-list{display:grid;gap:8px}
.message-center-technical summary{cursor:pointer;font-weight:600}
.occupation-autocomplete-option{display:flex!important;flex-direction:column;align-items:flex-start;gap:2px}
.occupation-autocomplete-option small{opacity:.72}
.occupation-review-dialog .ui-dialog-shell{width:min(620px,calc(100vw - 28px));max-height:calc(100vh - 28px);overflow:auto}
.form-field{display:flex;flex-direction:column;gap:6px}.form-field-label{font-weight:600}
@media(max-width:720px){.message-center-dialog .ui-dialog-shell,.occupation-review-dialog .ui-dialog-shell{width:calc(100vw - 16px);max-height:calc(100vh - 16px)}.message-center-body-frame{min-height:300px}}

/* 0.19.47 multi-file document queue + normalized document types */
.document-upload-file-head{justify-content:flex-start}.document-upload-file-head .document-upload-remove{margin-left:auto;flex:0 0 auto}.document-upload-file-card [data-document-type-preview]{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-weight:500}.document-list-toolbar{display:flex;align-items:end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 12px}.document-list-toolbar label{display:grid;gap:5px;min-width:min(280px,100%);font-weight:600}.document-list-toolbar select{min-width:220px}.document-type-result-count{color:var(--muted);font-size:12px;font-weight:700}.document-section tr[hidden]{display:none!important}
@media(max-width:650px){.document-upload-file-head{align-items:flex-start}.document-upload-file-head .document-upload-remove span{display:none}.document-list-toolbar{align-items:stretch}.document-list-toolbar label,.document-list-toolbar select{width:100%;min-width:0}}


/* 0.19.48 combined Classes & School Years workspace + consolidated promotion preview */
.school-management-selector-card,.school-year-selected-card,.school-management-classes-card,.school-year-promotion-card{margin-bottom:16px}
.school-management-year-picker{margin-top:4px}.school-management-year-picker label{min-width:min(100%,340px)}
.school-year-summary-grid,.promotion-preview-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.school-year-summary-grid>div,.promotion-preview-summary>div{display:grid;gap:5px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft);min-width:0}
.school-year-summary-grid small,.promotion-preview-summary small{color:var(--muted)}
.school-year-notes-edit-link{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;min-width:0}
.promotion-overview-line{display:flex;align-items:center;gap:10px;margin-bottom:10px}.promotion-compact-summary{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px}.promotion-compact-summary span{color:var(--muted)}
.promotion-bulkbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:10px}.promotion-select-all{display:inline-flex!important;align-items:center;gap:7px;margin:0!important}.promotion-select-all input{width:auto!important}
.promotion-preview-table-wrap{max-height:min(62vh,720px);overflow:auto}.promotion-preview-table thead th{position:sticky;top:0;z-index:2;background:var(--surface)}.promotion-preview-table td small{display:block;margin-top:3px;color:var(--muted)}
.promotion-selection-col{text-align:center;width:84px}.promotion-selection-col input{width:18px;height:18px}.promotion-preview-actions{position:sticky;bottom:0;background:var(--surface);padding-top:12px;border-top:1px solid var(--border);z-index:3}
.photo-history-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:6px}.photo-history-meta>span{display:grid;gap:2px;min-width:0}.photo-history-meta small{color:var(--muted);font-size:11px}.photo-history-meta strong{font-size:12px;overflow-wrap:anywhere}
@media(max-width:900px){.school-year-summary-grid,.promotion-preview-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.promotion-preview-table{min-width:860px}}
@media(max-width:560px){.school-year-summary-grid,.promotion-preview-summary,.photo-history-meta{grid-template-columns:1fr}.school-year-notes-edit-link{align-items:flex-start;flex-direction:column}.promotion-bulkbar .ui-btn{flex:1 1 auto}}

/* 0.19.49 central compact table toolbar */
.table-toolbar{display:flex;align-items:center;gap:10px;margin:0 0 12px;min-width:0}
.table-toolbar-search{flex:1 1 auto;min-width:0;margin:0}
.table-toolbar-search label{position:relative;display:block;margin:0!important}
.table-toolbar-search input{width:100%;min-width:0;min-height:42px;padding-left:40px;padding-right:12px;font-size:14px}
.table-search-icon{position:absolute;left:12px;top:50%;width:18px;height:18px;transform:translateY(-50%);color:var(--muted);pointer-events:none;z-index:1}
.table-search-icon svg,.table-toolbar-icon-btn svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.table-toolbar-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto}
.table-toolbar-actions>[data-table-columns-slot]{display:flex}
.table-toolbar-icon-btn{position:relative;width:40px;min-width:40px;height:40px;min-height:40px;padding:0!important;display:inline-flex;align-items:center;justify-content:center}
.table-toolbar-icon-btn>span:not(.table-toolbar-count){display:none!important}
.table-toolbar-count{position:absolute;right:-5px;top:-6px;display:flex!important;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--accent);color:#fff;font-size:10px;font-weight:800;line-height:1;box-shadow:0 0 0 2px var(--surface)}
.table-filter-form{display:grid;gap:14px}
.table-filter-form fieldset{margin:0;padding:12px;border:1px solid var(--line);border-radius:10px;display:grid;gap:8px;min-width:0}
.table-filter-form legend{padding:0 5px;font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.table-filter-choice{display:flex!important;grid-template-columns:none!important;align-items:center!important;gap:9px!important;padding:7px 8px;border-radius:8px;color:var(--ink)!important;font-size:13px!important;cursor:pointer}
.table-filter-choice:hover{background:var(--surface-soft)}
.table-filter-choice input{width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;margin:0!important;padding:0!important}
.table-pagination{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:12px}
.table-pagination>span{color:var(--muted);font-size:12px;font-weight:700}
.ui-table-tools .table-detail-hint{display:none!important}
@media(max-width:620px){.table-toolbar{gap:7px}.table-toolbar-search input{min-height:40px}.table-toolbar-icon-btn{width:38px;min-width:38px;height:38px;min-height:38px}.table-pagination{justify-content:space-between}}
.table-filter-fields{grid-template-columns:repeat(2,minmax(0,1fr))!important}.table-filter-field{display:grid!important;gap:5px!important;min-width:0;color:var(--ink)!important;font-size:12px!important;font-weight:700}.table-filter-field input{box-sizing:border-box;width:100%;min-width:0}
@media(max-width:560px){.table-filter-fields{grid-template-columns:1fr!important}}


/* 0.19.51 non-modal table filter dropdown */
.table-filter-menu-wrap{position:relative;display:flex;align-items:center}
.table-filter-dropdown{position:absolute;right:0;top:calc(100% + 8px);z-index:1200;box-sizing:border-box;width:min(360px,calc(100vw - 24px));max-height:min(70vh,620px);overflow:auto;padding:10px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 42px rgba(20,30,40,.18)}
.table-filter-dropdown[hidden]{display:none!important}
.table-filter-dropdown-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 2px 8px}
.table-filter-dropdown-head strong{font-size:14px}
.table-filter-dropdown-close{display:inline-grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:22px;line-height:1;cursor:pointer}
.table-filter-dropdown-close:hover,.table-filter-dropdown-close:focus-visible{background:var(--surface-soft);color:var(--ink)}
.table-filter-dropdown .table-filter-form{gap:9px}
.table-filter-dropdown .table-filter-form fieldset{padding:8px 7px;gap:2px;border-radius:9px}
.table-filter-dropdown .table-filter-form legend{font-size:11px}
.table-filter-dropdown .table-filter-choice{padding:7px 6px}
.table-filter-dropdown-actions{position:sticky;bottom:-10px;margin:0 -10px -10px;padding:10px;background:var(--surface);border-top:1px solid var(--line);justify-content:flex-end}
@media(max-width:520px){.table-filter-dropdown{position:fixed;left:10px;right:10px;top:auto;bottom:10px;width:auto;max-height:min(72vh,620px);border-radius:14px}.table-filter-dropdown-actions{bottom:-10px}}

/* 0.19.54 Message Center: mail-client style detail view with clipped shell and inner scrolling. */
.message-center-dialog{box-sizing:border-box;width:min(85vw,1080px);max-width:calc(100vw - 28px);max-height:88vh;overflow:hidden;border-radius:16px}
.message-center-dialog .ui-dialog-shell{display:grid;grid-template-rows:auto minmax(0,1fr);width:100%;max-width:none;height:min(88vh,880px);max-height:88vh;padding:0!important;overflow:hidden;border-radius:16px;background:var(--surface)}
.message-center-dialog-head{padding:16px 18px;border-bottom:1px solid var(--line);background:var(--surface);min-width:0}
.message-center-dialog-scroll{min-height:0;overflow:auto;padding:18px;overscroll-behavior:contain;scrollbar-gutter:stable}
.message-center-detail{display:grid;gap:20px;min-width:0}
.message-center-mail-header{display:grid;gap:13px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.message-center-subject{margin:0;font-size:24px;line-height:1.2;overflow-wrap:anywhere}
.message-center-envelope{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:7px 14px;margin:0;font-size:13px;align-items:start}
.message-center-envelope dt{color:var(--muted);font-weight:700}.message-center-envelope dd{margin:0;min-width:0;overflow-wrap:anywhere}
.message-center-related{display:flex;justify-content:flex-start}.message-center-content-section,.message-center-attachments{display:grid;gap:10px}.message-center-content-section h3,.message-center-attachments h3{margin:0;font-size:15px}
.message-center-body-frame{display:block;width:100%;min-height:430px;border:1px solid var(--line);border-radius:12px;background:#fff}
.message-center-text-body{padding:16px;border:1px solid var(--line);border-radius:12px;background:#fff}
.message-attachment-name{display:flex;align-items:center;gap:10px;min-width:0}.message-attachment-name>span{display:grid;place-items:center;width:30px;height:30px;flex:0 0 auto}.message-attachment-name svg{width:20px;height:20px;fill:none;stroke:currentColor}
.message-center-technical{border-top:1px solid var(--line);padding-top:14px}.message-center-technical summary{cursor:pointer;font-weight:700;color:var(--muted)}
.message-center-technical-grid{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:7px 14px;margin:12px 0 0;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);font-size:12px}.message-center-technical-grid dt{font-weight:700;color:var(--muted)}.message-center-technical-grid dd{margin:0;min-width:0;overflow-wrap:anywhere}
@media(max-width:720px){.message-center-dialog{width:calc(100vw - 16px);max-width:calc(100vw - 16px);max-height:calc(100vh - 16px);border-radius:12px}.message-center-dialog .ui-dialog-shell{height:calc(100vh - 16px);max-height:calc(100vh - 16px);border-radius:12px}.message-center-dialog-scroll{padding:14px}.message-center-envelope,.message-center-technical-grid{grid-template-columns:1fr;gap:3px}.message-center-envelope dd,.message-center-technical-grid dd{margin-bottom:7px}.message-center-subject{font-size:20px}.message-center-body-frame{min-height:340px}}

/* 0.19.54: sticky entity actions, bank overview, communication consent and school-year rules */
.topbar-entity-actions{display:flex;align-items:center;gap:8px;margin-left:auto;margin-right:8px;white-space:nowrap}
.topbar-entity-actions .ui-btn{position:relative;min-width:36px}
.topbar-entity-actions .note-count-badge{position:absolute;top:-6px;right:-6px}
.bank-account-overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:12px}
.bank-account-summary{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--surface)}
.bank-account-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.bank-account-summary-head>div{display:grid;gap:4px}
.bank-account-summary dl{display:grid;grid-template-columns:minmax(120px,auto) 1fr;gap:7px 14px;margin:14px 0 0}.bank-account-summary dt{color:var(--muted);font-size:.86rem}.bank-account-summary dd{margin:0;text-align:right}
.communication-consent-current{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.communication-consent-current article{border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;gap:9px}.communication-withdraw-form{display:flex;gap:8px;align-items:center}.communication-withdraw-form input{min-width:0;flex:1}.communication-consent-add,.communication-consent-history{margin-top:14px}
.school-year-rule-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.school-year-rule-grid fieldset{border:1px solid var(--line);border-radius:12px;padding:12px;min-width:0}.school-year-rule-grid legend{font-weight:700;padding:0 5px}.month-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px 10px}
@media(max-width:820px){.topbar-entity-actions .ui-btn>span:not(.note-count-badge){display:none}.school-year-rule-grid{grid-template-columns:1fr}.month-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bank-account-summary dl{grid-template-columns:1fr}.bank-account-summary dd{text-align:left;margin-bottom:4px}}
