/* Body and form controls use 16px; secondary labels, timestamps and dense navigation use at least 14px. */
:root{--font-body:16px;--font-meta:14px;--ink:#203047;--muted:#52647b;--line:#d8e1ec;--paper:#fff;--bg:#f1f4f8;--accent:#3369ee;--accent-light:#edf2ff;--navy:#142337;--lime:#daf68e;--green:#25785f;--red:#b33c46;--amber:#9a600e;--shadow:0 3px 14px #14233704}
*{box-sizing:border-box}html{min-height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:var(--font-body)/1.6 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,.button{cursor:pointer;min-height:44px;border:1px solid transparent;border-radius:9px;padding:10px 16px;background:var(--accent);color:white;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:6px}button:hover,.button:hover{filter:brightness(.96)}button:disabled{opacity:.48;cursor:default}button.quiet,.button.quiet{background:white;color:var(--ink);border-color:var(--line)}button.secondary,.button.secondary{background:var(--accent-light);color:var(--accent)}button.danger{background:#fff0f1;color:var(--red);border-color:#efc4c8}button.text-button,.text-button{background:transparent;color:var(--accent);padding:6px 0;min-height:44px;border:0}.link{color:var(--accent)}button:focus-visible,a:focus-visible{outline:3px solid #759afd;outline-offset:3px}input,select,textarea{min-height:44px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:white;color:var(--ink);width:100%;min-width:0}input:focus,textarea:focus,select:focus{outline:3px solid #3369ee22;border-color:var(--accent)}input[type=checkbox]{width:20px;min-height:20px;accent-color:var(--accent)}label{display:block;font-weight:600;margin:12px 0 6px}label small{font-weight:400;color:var(--muted)}input[type=number]{font-variant-numeric:tabular-nums}h1{font-size:26px;letter-spacing:-.7px;margin:0 0 4px;line-height:1.4}h2{font-size:20px;margin:0 0 14px;letter-spacing:-.3px}h3{font-size:16px;margin:16px 0 8px}p{margin:6px 0 14px}.muted,small{color:var(--muted)}small{font-size:var(--font-meta)}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:absolute;left:16px;top:-100px;background:white;padding:12px;z-index:100}.skip-link:focus{top:8px}[hidden],.hidden{display:none!important}
.workspace-shell{display:flex;min-height:100vh}.sidebar{width:216px;flex-shrink:0;background:var(--navy);color:#dce7fa;padding:28px 18px;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;font-size:24px;font-weight:800;letter-spacing:-.6px;white-space:nowrap}.brand-mark{background:var(--lime);color:var(--navy);width:38px;height:38px;display:flex;align-items:center;justify-content:center;line-height:1;border-radius:10px;font-size:27px;letter-spacing:-2px}.brand-caption{font-size:var(--font-meta);color:#9cb0cb;margin:10px 0 44px;white-space:nowrap}.nav-caption{font-size:var(--font-meta);color:#8ca3c1;margin:0 12px 12px}.sidebar nav{display:grid;gap:8px}.sidebar nav a{padding:13px 14px;min-height:48px;border-radius:9px;font-weight:650;display:flex;align-items:center;gap:12px}.sidebar nav a:hover{background:#23354d}.sidebar nav a.active{background:var(--accent);color:white}.nav-glyph{width:16px;font-size:18px;font-weight:400}.sidebar-bottom{margin-top:auto;display:grid;gap:4px;padding-top:36px}.sidebar-bottom a{font-size:var(--font-meta);padding:8px 12px;color:#afc0d7;min-height:36px}.sidebar-bottom a:hover{color:white}.sidebar-bottom a.active{background:var(--accent);color:white;border-radius:8px}.sidebar .brand:focus-visible{outline:3px solid var(--lime);outline-offset:5px}.sidebar-bottom small{padding:12px;color:#718aa9}.version{font-variant-numeric:tabular-nums}.app-main{flex:1;min-width:0}.workspace-header{min-height:76px;display:flex;align-items:center;gap:22px;padding:16px 30px;background:white;border-bottom:1px solid var(--line);flex-wrap:wrap}.workspace-header>strong{font-size:16px}.workspace-header time{font-size:var(--font-meta);color:var(--muted);white-space:nowrap}.header-summary{display:flex;gap:20px;flex-wrap:wrap;font-size:var(--font-meta)}.header-summary b{margin-left:4px;font-size:14px;color:var(--ink);font-variant-numeric:tabular-nums}.header-actions{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:var(--font-meta);color:var(--muted)}.header-actions form{margin:0}.header-actions button{font-size:var(--font-body);padding:6px 10px;min-height:36px}.public-header{padding:22px 32px;display:flex;align-items:center;justify-content:space-between;background:white;border-bottom:1px solid var(--line)}.container{max-width:1640px;padding:30px;margin:0 auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.page-heading p{margin:5px 0 0;font-size:14px}.page-heading>.button,.page-heading>button{white-space:nowrap}.card{background:var(--paper);border:1px solid var(--line);border-radius:13px;padding:24px;margin-bottom:20px;box-shadow:var(--shadow);min-width:0}.two-columns{display:grid;grid-template-columns:minmax(280px,1fr) minmax(320px,1.35fr);gap:24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.form-grid .wide{grid-column:1/-1}.inline{display:flex;gap:12px;align-items:center}.inline input,.inline select{width:auto}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px}.notice{padding:13px 16px;border-radius:8px;background:var(--accent-light);border:1px solid #d9e3ff;margin-bottom:18px;font-size:14px}.notice.error,.error{background:#fff0f1;color:var(--red);border-color:#efc4c8}.notice.success{background:#eaf7f0;color:var(--green);border-color:#c8e8d6}.notice.warning{background:#fff7e8;color:var(--amber);border-color:#f0dcbb}.badge{display:inline-flex;padding:3px 8px;border-radius:5px;font-size:var(--font-meta);background:#edf0f6;color:#5c6f88;font-weight:650;white-space:nowrap}.badge.valid{background:#e8f5ef;color:var(--green)}.badge.expired{background:#fff0f1;color:var(--red)}.badge.warn,.badge.expiring{background:#fff3df;color:var(--amber)}.history{padding:13px 0;border-bottom:1px solid var(--line)}.history:last-child{border-bottom:0}.history .actions{margin-top:10px}.history button{font-size:var(--font-body);padding:6px 10px}.empty{padding:48px 24px;text-align:center;color:var(--muted)}.empty h2{color:var(--ink)}.empty-symbol{font-size:42px;color:#9db5eb;display:block;margin-bottom:14px}.detail-empty{min-height:420px;display:flex;flex-direction:column;align-items:center;justify-content:center}.search{display:flex;gap:8px;margin-bottom:16px}.search input{flex:1;min-width:0}.search button{white-space:nowrap;flex-shrink:0}.pagination{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:12px 0;font-size:var(--font-meta);color:var(--muted)}.pagination button{min-height:36px;padding:5px 10px;font-size:var(--font-body)}.member-workspace{display:grid;grid-template-columns:minmax(295px,340px) minmax(0,1fr);gap:24px;align-items:start}.member-sidebar{padding:20px;min-height:560px}.filter-chips{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.filter-chips button{font-size:var(--font-body);padding:6px 9px;min-height:36px;font-weight:500}.filter-chips button.active{background:var(--accent-light);color:var(--accent);border-color:#b8cbff}.list-options{display:flex;justify-content:space-between;align-items:center;gap:12px}.list-options select{font-size:var(--font-body);max-width:150px;padding:6px;min-height:36px}.list-options button{font-size:var(--font-body)}.member-list{display:grid;gap:0}.member-row{display:block;padding:16px 12px;border:1px solid transparent;border-bottom-color:var(--line);border-radius:9px;margin-bottom:4px}.member-row:hover{background:#f7f9ff}.member-row.selected{background:var(--accent-light);border-color:#b8cbff}.member-row .row-top{display:flex;justify-content:space-between;gap:8px}.member-row strong{font-size:16px}.member-row small{display:block;margin-top:4px;font-size:var(--font-meta)}.member-summary{font-size:var(--font-meta);color:var(--muted);margin-top:6px}.profile-top{display:flex;gap:16px;align-items:center}.avatar{height:50px;width:50px;background:var(--accent-light);border:1px solid #cfdbff;border-radius:14px;color:var(--accent);display:grid;place-items:center;font-size:20px;flex-shrink:0}.profile-title{flex:1;min-width:0}.profile-title h2{margin:0 0 4px;font-size:23px}.profile-title p{font-size:var(--font-meta);margin:0}.profile-top .actions{margin:0;gap:8px}.profile-top button{font-size:var(--font-body);padding:9px 12px}.member-facts{border-top:1px solid var(--line);margin-top:24px;padding-top:20px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.member-facts small{font-size:var(--font-meta);display:block;margin-bottom:8px}.member-facts strong{display:block;font-size:17px;font-variant-numeric:tabular-nums}.member-facts p{font-size:var(--font-meta);margin:5px 0 0}.member-facts a{font-size:var(--font-meta);color:var(--accent)}.detail-tabs{display:flex;gap:18px;border-bottom:1px solid var(--line);margin:22px 0 18px;overflow:auto}.detail-tabs button{background:transparent;border-radius:0;color:var(--muted);padding:12px 0;min-height:44px;white-space:nowrap;font-size:var(--font-body);font-weight:500}.detail-tabs button.active{color:var(--accent);border-bottom:2px solid var(--accent)}.detail-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:16px}.detail-grid .card{margin:0}.detail-grid h3{margin-top:0}.member-period{font-size:14px}.member-period strong{font-size:16px}.row{display:flex;justify-content:space-between;align-items:center;gap:12px}.detail-panel[hidden]{display:none}.mobile-back{display:none}.month-buttons{display:flex;gap:8px;margin:12px 0}.month-buttons button{flex:1;padding:10px 6px}.month-buttons button.chosen{background:var(--accent);color:white;border-color:var(--accent)}.step-label{font-size:var(--font-meta);color:var(--accent);margin-bottom:8px}.dialog-footer{display:flex;justify-content:flex-end;border-top:1px solid var(--line);margin-top:22px;padding-top:16px}dialog{border:1px solid var(--line);border-radius:15px;max-width:600px;width:calc(100% - 40px);padding:26px;max-height:90vh;overflow:auto;color:var(--ink)}dialog::backdrop{background:#14233770}.auth-card{max-width:440px;margin:58px auto;padding:32px}.auth-card h1{margin-bottom:12px}.auth-card button{width:100%}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:24px}.stat{padding:24px;border-radius:12px;background:white;border:1px solid var(--line)}.stat strong{display:block;font-size:29px;letter-spacing:-.8px;margin-top:8px;font-variant-numeric:tabular-nums}.stat.accent{background:var(--accent-light);border-color:#cfdbff}.table-wrap{overflow:auto;max-width:100%}table{border-collapse:collapse;width:100%;text-align:left}th,td{padding:14px 12px;border-bottom:1px solid var(--line);white-space:nowrap;font-size:14px}th{font-size:var(--font-meta);color:var(--muted);font-weight:600;background:#f7f9fc}td small{display:block;font-size:var(--font-meta)}td.money,th.money{text-align:right}.revenue-chart{display:flex;gap:10px;height:190px;align-items:flex-end;margin:22px 0}.chart-column{flex:1;text-align:center;min-width:0}.chart-bar{display:block;background:#adc3fc;border-radius:5px 5px 0 0;min-height:2px}.chart-column.current .chart-bar{background:var(--accent)}.chart-column small{font-size:var(--font-meta);display:block;margin-top:6px}.revenue-average{padding:14px 0;display:flex;justify-content:space-between;border-top:1px solid var(--line)}
.locker-workspace{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:24px;align-items:start}.locker-board-wrap{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:12px;background:#f6f8fc;padding:12px}.locker-board{position:relative;width:1152px;height:768px;background-image:linear-gradient(#e0e6f1 1px,transparent 1px),linear-gradient(90deg,#e0e6f1 1px,transparent 1px);background-size:48px 48px}.locker-block,.locker-group{position:absolute;background:#dce6f9;color:#294b7c;border:2px solid #b6c9ed;border-radius:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px;touch-action:none;user-select:none;min-height:0;overflow:hidden;font-size:var(--font-meta)}.locker-block.selected,.locker-group.selected{border-color:var(--accent);background:#d3dfff;box-shadow:0 0 0 3px #3369ee20}.locker-block small{font-size:var(--font-meta);color:#45628c}.locker-front-grid{display:grid;gap:8px;margin:20px 0}.locker-cell{background:#f1f4f9;border:1px solid var(--line);border-radius:9px;color:var(--ink);font-size:var(--font-meta);min-height:74px;padding:8px;overflow:hidden;overflow-wrap:anywhere;line-height:1.5}.locker-cell.occupied{background:#e8f5ef;border-color:#c3e3d2;color:var(--green)}.locker-cell.expired{background:#fff3df;border-color:#f2d7a9;color:var(--amber)}.locker-cell.selected{outline:2px solid var(--accent);outline-offset:2px}.locker-cell strong,.locker-cell small{display:block}.locker-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}.locker-editor-grid label{font-size:var(--font-body)}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.toolbar button{font-size:var(--font-body)}.locker-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:var(--font-meta);color:var(--muted);margin:12px 0}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;background:#b7c2d4}.legend-dot.occupied{background:var(--green)}.legend-dot.expired{background:#bd7b1a}.keyboard-controls{display:flex;gap:6px;flex-wrap:wrap}.keyboard-controls button{font-size:var(--font-body);padding:6px 10px}.locker-member-results{display:grid;gap:6px;max-height:300px;overflow:auto}.locker-member-results button{justify-content:space-between;background:white;color:var(--ink);border-color:var(--line)}.master-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.master-summary .card{margin:0}.master-summary strong{display:block;font-size:26px}.master-workspace{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:24px;align-items:start}.master-table tr.selected{background:var(--accent-light)}.master-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.master-filters input{flex:1;min-width:180px}.master-filters select{width:auto;max-width:230px}.master-detail{position:sticky;top:24px}.master-detail dl{display:grid;grid-template-columns:90px 1fr;gap:8px;font-size:var(--font-meta)}.master-detail dt{color:var(--muted)}.master-detail dd{margin:0;overflow-wrap:anywhere}.master-detail .actions button{font-size:var(--font-body)}.master-detail details{margin:14px 0}.field-error,.errorlist{color:var(--red)}.kiosk{max-width:520px;margin:24px auto;text-align:center;padding:32px}.kiosk h1{font-size:30px}.kiosk input{font-size:30px;text-align:center;letter-spacing:6px;margin:18px 0}.kiosk form>button,.kiosk>button{width:100%;font-size:18px;min-height:52px}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:8px 0 18px}.keypad button{font-size:26px;background:#f2f5fb;color:var(--ink);border-color:var(--line);min-height:64px}.keypad button.key-action{font-size:var(--font-body)}.kiosk-result{font-size:21px;padding:14px;min-height:74px}.kiosk-shell .container{padding:20px}.attendance-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center;margin:12px 0}.calendar-heading{font-size:var(--font-meta);color:var(--muted);padding:6px 0}.calendar-day{border:1px solid var(--line);border-radius:5px;padding:8px 2px;font-size:var(--font-meta)}.calendar-day.attended{background:#e8f5ef;border-color:#b9d4c3;color:var(--green);font-weight:650}.attendance-dates{font-size:var(--font-meta);line-height:1.8;overflow-wrap:anywhere}.pt-package details{margin-top:12px}summary{cursor:pointer;color:var(--accent);min-height:36px}.dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.dashboard-card{margin:0;min-width:0}.dashboard-number{display:block;font-size:32px;margin:8px 0}.dashboard-number small{margin-left:6px;font-size:16px}.dashboard-member{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line)}.dashboard-member strong,.dashboard-member small{display:block}
@media(max-width:1200px){.sidebar{width:184px;padding:24px 14px}.brand{font-size:21px}.workspace-header{gap:16px;padding:16px 24px}.header-summary{gap:14px}.header-actions>span{display:none}.member-workspace{grid-template-columns:290px minmax(0,1fr);gap:18px}.profile-top{flex-wrap:wrap}.profile-top .actions{margin-left:66px}.container{padding:24px}.locker-workspace{grid-template-columns:minmax(0,1fr) 280px}.master-workspace{grid-template-columns:1fr}.master-detail{position:static}.detail-grid{grid-template-columns:1fr}}
@media(max-width:1000px){.sidebar{width:160px;padding:24px 12px}.brand{font-size:18px;gap:8px}.brand-mark{width:32px;height:32px;font-size:24px}.brand-caption{font-size:var(--font-meta)}.header-summary{width:100%}.workspace-header{gap:12px}.header-actions{position:absolute;right:24px;top:16px}.workspace-header>time{margin-right:68px}.member-workspace{grid-template-columns:1fr}.member-workspace.detail-open .member-sidebar{display:none}.member-workspace:not(.detail-open) #member-detail{display:none}.member-sidebar{min-height:400px}.mobile-back{display:inline-flex;margin-bottom:16px}.profile-top .actions{margin-left:0}.locker-workspace{grid-template-columns:1fr}.locker-board-wrap{max-height:460px}.two-columns{grid-template-columns:1fr}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.master-summary{grid-template-columns:1fr 1fr}.stats{gap:12px}.stat{padding:18px}.stat strong{font-size:24px}}
@media(max-width:700px){.workspace-shell{display:block}.sidebar{position:static;height:auto;width:100%;min-height:0;padding:14px 16px}.sidebar .brand-caption,.nav-caption{display:none}.sidebar-bottom{display:flex;flex-wrap:wrap;margin-top:8px;padding-top:0;gap:0 8px}.sidebar-bottom a{padding:4px 2px;font-size:var(--font-meta);min-height:30px}.sidebar-bottom small{display:none}.sidebar nav{display:flex;margin-top:14px}.sidebar nav a{flex:1;justify-content:center;padding:10px;min-height:44px}.brand{font-size:21px}.workspace-header{padding:14px 16px}.workspace-header>time{font-size:var(--font-meta)}.header-actions{position:static;margin-left:auto;flex-wrap:wrap}.header-summary{gap:12px;font-size:var(--font-meta)}.header-summary b{font-size:var(--font-meta)}.container{padding:20px 16px}.card{padding:20px}.page-heading{gap:12px;align-items:flex-start}.page-heading h1{font-size:24px}.page-heading>button{padding:9px 12px;font-size:var(--font-body)}.member-facts{gap:10px}.member-facts strong{font-size:14px}.profile-title h2{font-size:21px}.profile-top .actions{width:100%}.detail-tabs{gap:15px}.form-grid{grid-template-columns:1fr}.dashboard-grid{grid-template-columns:1fr}.stats{grid-template-columns:1fr}.month-buttons{gap:5px}.public-header{padding:18px}.public-header>small{font-size:var(--font-meta)}.kiosk{margin:12px auto;padding:24px}.kiosk h1{font-size:25px}.keypad button{min-height:58px}.master-summary{gap:10px}.master-summary .card{padding:18px}.auth-card{margin:28px auto}.inline{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.summary-card{background:white;border:1px solid var(--line);border-radius:12px;padding:22px}.summary-card span{font-size:var(--font-meta);color:var(--muted)}.summary-card strong{display:block;font-size:28px;margin-top:8px}.table-scroll{overflow:auto;max-width:100%}.search-field{flex:1;min-width:220px}.history-item{padding:14px 0;border-bottom:1px solid var(--line)}.history-item>small{display:block}.eyebrow{font-size:var(--font-meta);letter-spacing:1.5px;color:var(--muted);margin:0 0 6px}.locker-front-panel .actions button{font-size:var(--font-body);padding:7px 10px}.locker-front-panel .page-heading{flex-wrap:wrap}.locker-front-panel h2{font-size:18px}.locker-front-panel .locker-editor-grid input{padding:8px}.locker-floor-panel .page-heading{margin-bottom:16px}.locker-floor-panel .page-heading h2{margin:0}.locker-floor-panel .page-heading span{font-size:var(--font-meta)}#master-detail .page-heading{flex-wrap:wrap}#master-detail .table-scroll td{white-space:normal;min-width:110px}#master-detail .table-scroll button{font-size:var(--font-body);margin:3px;padding:6px 9px}#master-detail{position:static}.chart-bar.negative{background:#f3b5bb}
@media(max-width:1000px){.summary-grid{grid-template-columns:1fr 1fr}.summary-card{padding:18px}}@media(max-width:700px){.summary-grid{gap:10px}.summary-card strong{font-size:24px}.toolbar label{width:100%}.toolbar .search-field{min-width:0}}

/* v0.2.1: full-width member directory, followed by a separate detail view. */
.member-workspace{display:block}
.member-sidebar{min-height:0}
.member-sidebar .search{max-width:640px}
.member-sidebar .list-options{justify-content:flex-start}
.member-table-wrap{max-height:65vh;overflow:auto;border:1px solid var(--line);border-radius:9px;scrollbar-gutter:stable}
.member-table-wrap:focus-visible{outline:3px solid #759afd;outline-offset:3px}
.member-table{min-width:1080px}
.member-table thead{position:sticky;top:0;z-index:1}
.member-table th{border-right:1px solid var(--line)}
.member-table td{padding:10px 12px;border-right:1px solid var(--line);font-variant-numeric:tabular-nums}
.member-table th:last-child,.member-table td:last-child{border-right:0}
.member-table .member-row{display:table-row;padding:0;margin:0;border:0;border-radius:0;cursor:pointer}
.member-table .member-row:nth-child(even){background:#fafbfe}
.member-table .member-row:hover,.member-table .member-row:focus-within{background:var(--accent-light)}
.member-table .member-row.selected{background:var(--accent-light)}
.member-name{display:block;max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--accent);font-weight:650}
.entry-reason{display:flex;flex-direction:column;gap:6px;padding:12px 14px;background:#f5f7fc;border-radius:8px;border:1px solid var(--line);margin:10px 0;overflow-wrap:anywhere;white-space:pre-wrap}
.entry-reason strong{font-size:var(--font-meta);color:var(--muted)}
.member-contact-details{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}
.member-contact-details dt{font-size:var(--font-meta);color:var(--muted);margin-bottom:4px}.member-contact-details dd{margin:0;overflow-wrap:anywhere}
.attendance-toolbar{display:flex;flex-direction:column;gap:14px;margin:18px 0 24px}.attendance-toolbar form{flex-wrap:wrap;align-items:flex-end}.attendance-toolbar label{margin:0}.attendance-toolbar .actions{flex-wrap:wrap}
.attendance-summary-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(220px,1fr);gap:18px;margin:20px 0 28px}
.attendance-calendar-card,.attendance-metric{border:1px solid var(--line);border-radius:12px;padding:20px;background:#fafbfe}
.attendance-calendars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.attendance-month-card h4{text-align:center;margin:14px 0}
.attendance-calendar .calendar-day{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:36px;padding:4px;font-size:var(--font-meta)}.calendar-day small{font-size:var(--font-meta)}.calendar-day.outside-range{opacity:.3}.calendar-day.is-today{outline:2px solid var(--accent);outline-offset:-2px;border-radius:6px}
.attendance-metrics{display:flex;flex-direction:column;gap:14px}.attendance-metric>span{font-size:var(--font-meta);color:var(--muted)}.attendance-metric>strong{display:block;font-size:32px;margin:8px 0}.attendance-metric strong small{font-size:15px;margin-left:6px}.attendance-metric p{font-size:var(--font-meta);color:var(--muted);margin:0}.attendance-metric>.attendance-last-date{font-size:20px}
.attendance-records table{min-width:600px}
@media(max-width:900px){.attendance-summary-grid{grid-template-columns:1fr}.attendance-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.attendance-metric{padding:14px}.attendance-metric>strong{font-size:26px}.attendance-metric>.attendance-last-date{font-size:16px}}
@media(max-width:600px){.attendance-calendars{grid-template-columns:1fr}.attendance-calendar-card{padding:12px}.attendance-metrics{grid-template-columns:1fr}.member-contact-details{grid-template-columns:1fr}.attendance-toolbar input{min-width:0;width:100%}.attendance-toolbar label{flex:1 1 140px}}
.member-number{color:var(--muted)}
/* Member detail stays above the directory; edit forms use the separate app dialog. */
body.member-dialog-open{overflow:hidden}
.month-buttons button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:white;font-weight:700;box-shadow:0 0 0 2px #c7d5ff}
.hold-notice{background:#f4efff;border-color:#d9c5f1;color:#563786;margin-top:18px}.hold-notice p{margin:5px 0}
.attendance-calendar button.calendar-day{background:#fafbfe;color:var(--ink);border:1px solid var(--line);min-height:36px;min-width:0;padding:4px;box-shadow:none}
.attendance-calendar button.calendar-day:not(:disabled):hover,.attendance-calendar button.calendar-day:focus-visible{background:var(--accent-light);border-color:var(--accent)}
.attendance-calendar button.calendar-day.attended{background:#e8f5ef;color:var(--green);border-color:#b9d4c3;opacity:1}
.attendance-calendar button.calendar-day.held{background:#f4efff;color:#563786;border-color:#d9c5f1;opacity:1}
.attendance-calendar button.calendar-day:disabled{cursor:default}
dialog.member-dialog{width:calc(100% - 48px);max-width:1200px;max-height:calc(100dvh - 48px);padding:24px;background:#f5f7fc;box-shadow:0 24px 80px #14233740}
.member-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:16px;position:sticky;top:-24px;z-index:2;background:#f5f7fc;padding:8px 0 16px}
.member-dialog-header h2{margin:0;font-size:21px}
.member-dialog #member-detail>.card{margin-top:0}
@media(max-width:700px){dialog.member-dialog{width:calc(100% - 16px);max-height:calc(100dvh - 16px);padding:16px}.member-dialog-header{top:-16px}.member-dialog .profile-top .actions{margin-left:0;flex-wrap:wrap}.member-dialog .member-facts>div:first-child strong{font-size:15px}}
.locker-front-grid{overflow-x:auto;padding:3px}
.locker-cell{display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center}
.locker-cell .locker-cell-number{flex-shrink:0;white-space:nowrap;overflow-wrap:normal;word-break:normal;font-variant-numeric:tabular-nums;line-height:1.2}
.locker-cell .locker-cell-member{display:block;max-width:100%;overflow-wrap:anywhere;line-height:1.4}
@media(max-width:700px){.member-sidebar .search{max-width:none}.member-table-wrap{max-height:60vh}.member-table th,.member-table td{font-size:var(--font-meta)}.member-facts{grid-template-columns:1fr 1fr}.member-facts>div:first-child{grid-column:1/-1}.member-facts>div:first-child strong{font-size:16px}}

/* Member directory and dashboard: the frequent actions stay beside their records. */
.member-directory-toolbar,.member-directory-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.member-directory-toolbar .search{flex:1;min-width:240px;max-width:620px;margin:0}
.member-directory-toolbar .list-options{gap:8px;flex-wrap:wrap}
.member-directory-toolbar .list-options select{max-width:210px;width:auto;min-height:44px;padding:8px 10px;font-size:var(--font-body)}
.member-directory-toolbar .list-options button{min-height:44px;white-space:nowrap}
.member-directory-controls{margin:10px 0 14px}
.member-directory-controls .filter-chips,.member-directory-controls .pagination{margin:0}
.member-directory-controls .pagination{gap:18px}
#today-attendance[aria-pressed=true]{background:var(--accent-light);color:var(--accent);border-color:#b8cbff}
dialog.member-dialog{max-width:1480px;padding:22px}
.member-dialog-header{top:-22px;padding:4px 0 16px}
.member-detail-layout{display:grid;grid-template-columns:235px minmax(0,1fr);align-items:start;gap:20px}
.member-profile-sidebar{position:sticky;top:55px;padding:20px;margin:0}
.member-profile-sidebar .profile-top{align-items:flex-start;gap:12px;flex-wrap:nowrap}
.member-profile-sidebar .avatar{width:42px;height:42px;border-radius:11px;font-size:17px}
.member-profile-sidebar .profile-title h2{font-size:22px;overflow-wrap:anywhere;line-height:1.4;margin:0 0 5px}
.member-profile-sidebar .profile-title p{font-size:var(--font-meta)}
.member-profile-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0}
.member-profile-status small{font-size:var(--font-meta)}
.member-profile-actions{display:grid;gap:8px}
.member-profile-actions button{width:100%;font-size:var(--font-body)}
.member-profile-sidebar .member-contact-details{display:grid;grid-template-columns:1fr;gap:14px;margin:20px 0 0;padding-top:18px;border-top:1px solid var(--line);font-size:var(--font-meta)}
.member-profile-sidebar .member-contact-details dt{font-size:var(--font-meta);margin-bottom:3px}
.member-profile-sidebar .member-contact-details dd{line-height:1.6;word-break:normal;overflow-wrap:anywhere}
.member-detail-main{min-width:0}
.member-quick-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.member-quick-actions button{font-size:var(--font-body);min-height:42px;padding:8px 12px}
.member-detail-main .detail-tabs{gap:22px;margin:0 0 18px}
.member-detail-main .detail-tabs button{font-size:var(--font-body)}
.member-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch}
.member-overview-grid .overview-card{position:relative;display:flex;flex-direction:column;padding:18px;margin:0;min-height:208px;font-size:var(--font-meta)}
.member-overview-grid .overview-card>.overview-card-hit{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;min-height:0;padding:0;margin:0;border:0;border-radius:inherit;background:transparent;color:inherit;box-shadow:none;cursor:pointer}
.member-overview-grid .overview-card>.overview-card-hit:hover{background:transparent;filter:none;box-shadow:inset 0 0 0 2px var(--accent)}
.member-overview-grid .overview-card>.overview-card-hit:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.member-overview-grid .overview-card>.overview-card-hit:active{background:transparent;box-shadow:inset 0 0 0 2px var(--accent)}
.overview-card-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.overview-card-heading h3{margin:0;font-size:15px}
.overview-card .member-facts{display:block;border:0;padding:0;margin:0 0 8px}
.overview-card .member-facts strong{font-size:var(--font-meta);line-height:1.8;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.overview-card .member-facts p{font-size:14px;font-weight:650;color:var(--accent);margin:6px 0 0}
.overview-card .member-facts p+p{font-size:var(--font-meta);font-weight:400;color:var(--muted)}
.overview-card p{margin:0 0 10px}
.overview-card .overview-subtitle{font-size:var(--font-meta);color:var(--muted);margin-bottom:8px}
.overview-card .overview-empty{color:var(--muted);font-size:var(--font-meta);line-height:1.8}
.overview-money{display:grid;gap:7px;margin:0;font-size:var(--font-meta)}
.overview-money>div{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.overview-money dt{color:var(--muted)}
.overview-money dd{margin:0;font-weight:650;font-variant-numeric:tabular-nums}
.overview-money .has-balance{padding-top:7px;border-top:1px solid var(--line)}
.overview-money .has-balance dd{color:var(--red)}
.overview-count{font-size:25px;font-weight:750;line-height:1;color:var(--accent);font-variant-numeric:tabular-nums}
.overview-count small{font-size:var(--font-meta);margin-left:5px;font-weight:400}
.overview-visit-list{padding:0;margin:0;list-style:none;font-variant-numeric:tabular-nums}
.overview-visit-list li{font-size:var(--font-meta);padding:5px 0}
.overview-date{font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.overview-memo{white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;line-height:1.8}
.overview-locker-list{list-style:none;padding:0;margin:0}
.overview-locker-list li{padding:7px 0;border-bottom:1px solid var(--line);font-size:17px}
.overview-locker-list li:last-child{border-bottom:0}
.badge.holding{background:#f4efff;color:#563786}
@media(max-width:1240px){.member-detail-layout{grid-template-columns:210px minmax(0,1fr);gap:16px}.member-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.member-profile-sidebar{padding:16px}.member-profile-sidebar .profile-top{flex-wrap:wrap}.member-profile-sidebar .profile-title{flex-basis:100%}}
@media(max-width:800px){.member-detail-layout{grid-template-columns:1fr}.member-profile-sidebar{position:static;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 18px}.member-profile-sidebar .profile-top{flex-wrap:nowrap;grid-column:1;grid-row:1}.member-profile-sidebar .profile-title{flex-basis:auto}.member-profile-status{grid-column:1;grid-row:2;margin:0}.member-profile-actions{grid-column:2;grid-row:1/3;align-content:center}.member-profile-sidebar .member-contact-details{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding-top:12px;gap:10px 18px}.member-profile-sidebar .member-contact-details>div:last-child{grid-column:1/-1}.member-quick-actions{justify-content:flex-start}.member-detail-main .detail-tabs{gap:18px}.member-overview-grid .overview-card{min-height:190px}.member-directory-controls .pagination{width:100%}.member-directory-toolbar .list-options{width:100%;justify-content:space-between}.member-directory-toolbar .list-options select{max-width:none;flex:1}}
@media(max-width:520px){dialog.member-dialog{padding:14px}.member-dialog-header{top:-14px}.member-overview-grid{grid-template-columns:1fr}.member-overview-grid .overview-card{min-height:0;padding:16px}.member-profile-sidebar{padding:16px;gap:12px}.member-profile-sidebar .profile-title h2{font-size:20px}.member-profile-sidebar .profile-top{gap:9px}.member-profile-sidebar .avatar{width:34px;height:34px;font-size:14px}.member-profile-actions button{padding:7px 9px;min-height:40px;font-size:var(--font-body)}.member-profile-sidebar .member-contact-details{font-size:var(--font-meta)}.member-quick-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.member-quick-actions button{font-size:var(--font-body);padding:8px 4px}.member-detail-main .detail-tabs{gap:16px}.member-detail-main .detail-tabs button{font-size:var(--font-body)}.member-directory-toolbar .search{min-width:0;flex-basis:100%}.member-directory-controls .filter-chips{gap:5px}.member-directory-controls .filter-chips button{font-size:var(--font-body);padding:6px 8px}}

/* The state remains explicit across every tab and never relies on colour alone. */
.status-active,.status-paid{--member-tone:#176449;--member-tint:#edf8f2;--member-border:#a7d5be}
.status-holding,.status-scheduled{--member-tone:#7134a1;--member-tint:#f5edfc;--member-border:#c9a6e5}
.status-expired,.status-unpaid{--member-tone:#a52d3b;--member-tint:#fff0f2;--member-border:#e3abb2}
.status-expiring,.status-partial{--member-tone:#86520b;--member-tint:#fff7e6;--member-border:#e1c18a}
.status-upcoming{--member-tone:#2754ac;--member-tint:#edf3ff;--member-border:#adc3ed}
.status-unregistered{--member-tone:#4b5a70;--member-tint:#f0f3f7;--member-border:#bbc5d3}
.badge.badge-active,.badge.badge-paid{background:#176449;border:1px solid #176449;color:white}
.badge.badge-holding,.badge.badge-scheduled{background:#7134a1;border:1px solid #7134a1;color:white}
.badge.badge-expired,.badge.badge-unpaid{background:#a52d3b;border:1px solid #a52d3b;color:white}
.badge.badge-expiring,.badge.badge-partial{background:#86520b;border:1px solid #86520b;color:white}
.badge.badge-upcoming{background:#2754ac;border:1px solid #2754ac;color:white}
.badge.badge-unregistered{background:#4b5a70;border:1px solid #4b5a70;color:white}
.badge.badge-refunded{background:#f4efff;border:1px solid #bda4dc;color:#63318c}
.member-table .badge{padding:4px 9px;font-weight:700}
.member-profile-sidebar[data-member-status]{border-top:6px solid var(--member-tone)}
.member-profile-sidebar[data-member-status] .avatar{color:var(--member-tone);background:var(--member-tint);border-color:var(--member-border)}
.member-profile-status .badge{font-size:15px;font-weight:750;letter-spacing:.1px;padding:6px 12px;border-radius:7px}
.member-profile-status small{display:block;flex-basis:100%;line-height:1.6;color:var(--member-tone);font-weight:600}
.member-status-banner{display:flex;align-items:flex-start;gap:14px;background:var(--member-tint);border:1px solid var(--member-border);border-left:6px solid var(--member-tone);border-radius:12px;padding:16px 18px;margin-bottom:16px}
.member-status-icon{flex-shrink:0;width:42px;height:42px;display:grid;place-items:center;background:var(--member-tone);color:white;font-size:22px;font-weight:800;border-radius:11px;line-height:1}
.member-status-copy{min-width:0}
.member-status-copy h3{font-size:22px;line-height:1.35;font-weight:800;color:var(--member-tone);margin:0 0 5px}
.member-status-description{font-size:var(--font-meta);line-height:1.65;color:var(--ink);margin:0}
.member-status-dates{display:flex;gap:6px 18px;flex-wrap:wrap;margin-top:9px;font-size:var(--font-meta);font-variant-numeric:tabular-nums;color:var(--member-tone)}
.member-status-dates b{margin-right:5px}
.member-action-hint{font-size:var(--font-meta);line-height:1.6;color:var(--muted);font-weight:400;margin:4px 0 0;overflow-wrap:anywhere}
.member-quick-actions{align-items:flex-start;column-gap:12px;row-gap:10px}
.member-quick-actions>button{align-self:start}
.member-action-control{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;flex:0 1 245px;max-width:245px}
.member-action-control .member-action-hint{display:block;min-width:0;max-width:100%;margin:0;font-size:var(--font-meta);line-height:1.5;word-break:keep-all;overflow-wrap:anywhere}
.member-action-control .member-action-hint:empty{display:none}
.member-profile-actions .member-action-hint{margin:0 0 3px}
.member-profile-actions button:disabled,.member-quick-actions button:disabled,.overview-card button:disabled,.member-period button:disabled{opacity:1;background:#f0f3f7;color:#68778b;border-color:#dce3ec;box-shadow:none}
.member-overview-grid .overview-card[class*="status-"]{border-top:4px solid var(--member-tone)}
.member-overview-grid .overview-card.status-holding{background:var(--member-tint);border-color:var(--member-border);border-top-color:var(--member-tone)}
.overview-card.status-holding .overview-card-heading h3{color:var(--member-tone);font-weight:750}
.overview-card.status-holding .member-facts p{color:var(--member-tone)}
.overview-card[data-overview-card="period"] .member-facts p:first-of-type{color:var(--member-tone,var(--accent))}
.overview-state-badges{display:flex;gap:5px;flex-wrap:wrap}
.overview-action-complete{font-size:var(--font-meta);font-weight:700;color:#176449;padding:7px 0}
.overview-card .overview-attendance-state{margin:0 0 10px}
button.hold-resume{background:#7134a1;color:white;border-color:#7134a1}
.member-detail-main .detail-tabs{padding:5px;background:white;border:1px solid var(--line);border-radius:10px;gap:5px;scrollbar-width:thin}
.member-detail-main .detail-tabs button{padding:9px 12px;border-radius:7px;min-height:42px;flex:1 0 auto;border:1px solid transparent;font-weight:600}
.member-detail-main .detail-tabs button:hover{background:var(--accent-light);color:var(--accent)}
.member-detail-main .detail-tabs button.active{background:var(--accent);color:white;border-color:var(--accent);font-weight:750;box-shadow:0 2px 5px #3369ee22}
@media(max-width:800px){.member-profile-status small{flex-basis:auto}.member-status-banner{padding:14px;margin-bottom:14px}.member-status-copy h3{font-size:20px}.member-status-dates{gap:5px 12px}}
@media(max-width:520px){.member-profile-status .badge{font-size:var(--font-meta);padding:5px 9px}.member-status-banner{gap:10px;padding:13px 12px}.member-status-icon{width:34px;height:34px;font-size:20px}.member-status-copy h3{font-size:19px}.member-status-description{font-size:var(--font-meta)}.member-status-dates{font-size:var(--font-meta)}.member-status-dates span{display:block;width:100%;overflow-wrap:anywhere}.member-detail-main .detail-tabs{gap:3px;padding:4px}.member-detail-main .detail-tabs button{padding:8px;font-size:var(--font-body)}.member-action-hint{font-size:var(--font-meta)}}
@media(max-width:520px){.member-quick-actions{column-gap:8px}.member-action-control{max-width:none;width:100%;align-items:stretch}.member-action-control button{width:100%;min-width:0}.member-action-control .member-action-hint{font-size:var(--font-meta);line-height:1.5}}

@media(max-width:700px){.sidebar nav{flex-wrap:wrap;gap:4px}.sidebar nav a{flex:1 1 82px;min-width:0;white-space:nowrap}.public-account-header{flex-wrap:wrap;gap:8px}.public-account-header>small{flex-basis:100%}.public-account-header nav a{font-size:var(--font-meta);white-space:nowrap}}

.attendance-live-status{display:inline-flex;align-items:center;gap:5px;color:#6c7c8e;font-size:var(--font-meta);white-space:nowrap}.attendance-live-status::before{content:"";display:block;width:6px;height:6px;background:#a4b0bf;border-radius:50%}.attendance-live-status[data-state="connected"]::before{background:#20946d}.attendance-live-status[data-state="reconnecting"]::before,.attendance-live-status[data-state="paused"]::before{background:#d79b33}

.tablet-connect-steps{padding-left:20px;line-height:1.9;color:var(--muted);font-size:var(--font-meta)}.tablet-pair-code{font-size:36px;letter-spacing:.22em;font-variant-numeric:tabular-nums;color:var(--accent);font-weight:800;margin:15px 0}.tablet-pair-code+ p{font-size:var(--font-meta)}

code,kbd,samp{font-size:var(--font-meta)}

.member-table{min-width:1160px}
.member-payment-cell{min-width:142px}
.member-payment{display:flex;align-items:flex-start;flex-wrap:wrap;gap:4px 7px;font-size:var(--font-meta)}
.member-payment>strong{flex-basis:100%;font-size:14px;font-variant-numeric:tabular-nums;color:var(--red);white-space:nowrap}
.member-payment>small{line-height:1.4}
.member-payment-unpaid{color:var(--red);background:#fff0f1}
.member-payment-partial{color:#996000;background:#fff5df}
.member-payment-paid{color:var(--green);background:#eaf8f1}
:root[data-theme="dark"] .member-payment-cell .member-payment-unpaid{color:#ffb5bb;background:#4e2630}
:root[data-theme="dark"] .member-payment-cell .member-payment-partial{color:#ffd68a;background:#49361c}
:root[data-theme="dark"] .member-payment-cell .member-payment-paid{color:#9ee3bf;background:#1d4035}

.overview-locker-list li{overflow-wrap:anywhere}
.overview-locker-list li>small{display:block;margin-top:3px}
.member-revenue-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.member-revenue-heading>h3{margin:0}
.member-revenue-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-left:auto}
.member-revenue-summary>span{display:flex;flex-direction:column;gap:3px;font-weight:600}
.member-revenue-summary small{font-size:var(--font-meta);font-weight:400}
.member-revenue-summary>strong{font-size:22px;font-variant-numeric:tabular-nums;color:var(--ink);overflow-wrap:anywhere}
@media(max-width:600px){.member-revenue-summary{margin-left:0;width:100%;justify-content:space-between}}

/* Member details use the available width; long histories still expand naturally. */
.member-profile-sidebar .member-profile-home{display:inline-block;max-width:100%;min-height:32px;padding:0;border:0;border-radius:3px;background:transparent;color:inherit;font:inherit;font-weight:inherit;text-align:left;overflow-wrap:anywhere;box-shadow:none}
.member-profile-sidebar .member-profile-home:hover{background:transparent;text-decoration:underline;text-underline-offset:4px;filter:none}
.member-detail-toolbar{min-width:0}
.member-secondary-sections{display:grid;gap:12px}
.member-secondary-sections>.card{margin:0}
.attendance-selection-card{grid-column:1/-1;min-width:0;padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.attendance-selection-card>h4{margin:0 0 12px}
.attendance-history>summary{display:list-item;width:fit-content;max-width:100%;padding:6px 0;font-weight:650}
.attendance-history>h4{margin:10px 0}
@media(min-width:1100px){
  dialog.member-dialog{width:calc(100% - 32px);max-height:calc(100dvh - 24px);padding:16px}
  .member-dialog .member-dialog-header{top:-16px;padding:0 0 10px}
  .member-dialog .member-dialog-header h2{font-size:19px}
  .member-dialog .member-dialog-header button{min-height:38px;padding:6px 12px}
  .member-dialog .member-detail-layout{grid-template-columns:190px minmax(0,1fr);gap:14px}
  .member-dialog .member-profile-sidebar{padding:14px;top:48px}
  .member-dialog .member-profile-sidebar .profile-top{flex-wrap:nowrap;gap:9px}
  .member-dialog .member-profile-sidebar .profile-title{flex-basis:auto}
  .member-dialog .member-profile-sidebar .profile-title h2{font-size:20px}
  .member-dialog .member-profile-sidebar .avatar{width:36px;height:36px;font-size:16px}
  .member-dialog .member-profile-status{gap:6px 10px;margin:10px 0}
  .member-dialog .member-profile-status small{flex-basis:auto}
  .member-dialog .member-profile-status .badge{padding:4px 9px}
  .member-dialog .member-profile-actions{gap:6px}
  .member-dialog .member-profile-actions button{min-height:38px;padding:6px 8px}
  .member-dialog .member-profile-sidebar .member-contact-details{grid-template-columns:minmax(96px,1fr) minmax(0,.6fr);gap:10px 8px;margin:14px 0 0;padding-top:12px;font-size:var(--font-meta)}
  .member-dialog .member-profile-sidebar .member-contact-details>div{padding:0;border:0}
  .member-dialog .member-profile-sidebar .member-contact-details>div:not(:nth-last-child(-n+2)){grid-column:1/-1}
  .member-dialog .member-detail-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:10px}
  .member-dialog .member-status-banner{padding:12px;gap:10px;margin:0;border-left-width:4px}
  .member-dialog .member-status-icon{width:34px;height:34px;font-size:20px;border-radius:9px}
  .member-dialog .member-status-copy h3{font-size:19px;margin-bottom:3px}
  .member-dialog .member-status-dates{margin-top:4px;gap:4px 10px}
  .member-dialog .member-quick-actions{gap:6px;margin:0;flex-wrap:nowrap}
  .member-dialog .member-quick-actions button{min-height:38px;padding:6px 10px;white-space:nowrap}
  .member-dialog .member-action-control{flex:0 1 auto;max-width:160px}
  .member-dialog .member-detail-main .detail-tabs{margin:0 0 12px}
  .member-dialog .member-detail-main .detail-tabs button{min-height:38px;padding:7px 10px}
  .member-dialog .member-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
  .member-dialog .member-overview-grid .overview-card{min-height:150px;padding:14px}
  .member-dialog .overview-card-heading{margin-bottom:10px}
  .member-dialog .overview-card .member-facts{margin-bottom:4px}
  .member-dialog .member-info-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;margin-bottom:12px}
  .member-dialog .member-info-heading{grid-column:1/-1;margin:0;gap:10px}
  .member-dialog .member-info-heading h3{font-size:17px}
  .member-dialog .member-info-heading button,.member-dialog .member-note-section button{min-height:36px;padding:5px 10px}
  .member-dialog .member-info-sections{display:contents}
  .member-dialog .member-info-section,.member-dialog .member-note-section{padding:12px;min-width:0}
  .member-dialog .member-info-section h4,.member-dialog .member-note-section h4{margin:0 0 8px}
  .member-dialog .member-info-section dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}
  .member-dialog .member-info-section:first-child dl,.member-dialog .member-info-section:nth-child(2) dl{grid-template-columns:repeat(2,minmax(0,1fr))}
  .member-dialog .member-info-section dt{margin-bottom:3px}
  .member-dialog .member-info-wide{grid-column:auto}
  .member-dialog .member-info-wide dl{grid-template-columns:1fr}
  .member-dialog .member-note-section{margin:0}
  .member-dialog .member-note-section .row{gap:8px;align-items:start;margin-bottom:6px}
  .member-dialog .member-note-body{line-height:1.6}
  .member-dialog .member-privacy-status{grid-column:1/-1;margin:0;padding:10px 12px;gap:10px}
  .member-dialog .member-privacy-mark{width:28px;height:28px}
  .member-dialog .member-privacy-status summary{min-height:28px}
  .member-dialog .member-legacy-contact{grid-column:1/-1;margin:0}
  .member-dialog .member-secondary-sections{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
  .member-dialog .member-secondary-sections>.card{padding:12px 14px}
  .member-dialog .member-secondary-sections h3{margin:0;font-size:16px}
  .member-dialog .member-secondary-sections button{min-height:36px;padding:5px 10px}
  .member-dialog .member-secondary-sections p{margin:6px 0 0}
  .member-dialog .attendance-panel{padding:14px;margin:0}
  .member-dialog .attendance-toolbar{flex-direction:row;flex-wrap:wrap;align-items:end;gap:8px 12px;margin:0 0 12px}
  .member-dialog .attendance-toolbar form{gap:6px}
  .member-dialog .attendance-toolbar form label{display:flex;align-items:center;gap:5px}
  .member-dialog .attendance-toolbar input{width:132px;min-height:36px;padding:5px 8px}
  .member-dialog .attendance-toolbar .actions{gap:6px;margin:0}
  .member-dialog .attendance-toolbar button{min-height:36px;padding:5px 10px}
  .member-dialog .attendance-toolbar>.member-action-hint{flex-basis:100%;margin:0}
  .member-dialog .attendance-summary-grid{grid-template-columns:minmax(260px,1.3fr) minmax(170px,.7fr) minmax(230px,1fr);align-items:start;gap:10px;margin:12px 0}
  .member-dialog .attendance-calendar-card{position:relative;padding:12px}
  .member-dialog .attendance-calendar-card>.row{display:contents}
  .member-dialog .attendance-calendar-card>.row h4{margin:0}
  .member-dialog .attendance-calendar-card>.row .actions{position:absolute;right:12px;top:12px;gap:6px;margin:0}
  .member-dialog .attendance-calendar-card>.row button{min-height:32px;padding:3px 9px}
  .member-dialog .attendance-calendars{grid-template-columns:repeat(auto-fit,minmax(196px,1fr));gap:12px}
  .member-dialog .attendance-month-card h4{display:flex;align-items:center;min-height:32px;padding-right:76px;margin:0 0 6px;text-align:left}
  .member-dialog .attendance-calendar{gap:3px;margin:6px 0}
  .member-dialog .attendance-calendar .calendar-heading{padding:3px 0}
  .member-dialog .attendance-calendar .calendar-day{min-height:28px;padding:2px;line-height:1.35}
  .member-dialog .attendance-metrics{gap:8px}
  .member-dialog .attendance-metric{padding:10px 12px}
  .member-dialog .attendance-metric>strong{font-size:25px;margin:3px 0}
  .member-dialog .attendance-metric>.attendance-last-date{font-size:17px}
  .member-dialog .attendance-selection-card{grid-column:auto;padding:12px}
  .member-dialog .attendance-selection-card>h4{margin:0 0 10px}
  .member-dialog .attendance-selection-card .attendance-inline-selection{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;border:0}
  .member-dialog .attendance-inline-selection>label{width:100%;margin:0}
  .member-dialog .attendance-inline-selection input{min-height:38px;padding:6px 8px}
  .member-dialog .attendance-inline-selection .attendance-selection-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));flex:auto;gap:6px;width:100%}
  .member-dialog .attendance-selection-actions>button{min-height:38px;padding:6px 8px}
  .member-dialog #attendance-select-submit{grid-column:1/-1}
  .member-dialog .attendance-selection-hint{font-size:var(--font-meta);line-height:1.5;margin:0}
  .member-dialog .attendance-inline-feedback{margin:10px 0 0;padding:8px}
  .member-dialog .attendance-history th,.member-dialog .attendance-history td{padding:6px 8px}
  .member-dialog .attendance-history button{min-height:36px;padding:5px 8px}
  .member-dialog .attendance-history>.pagination{margin:8px 0 0}
}
@media(min-width:1280px){
  .member-dialog .member-info-card{grid-template-columns:repeat(3,minmax(0,1fr))}
  .member-dialog .member-note-section{grid-column:span 2}
  .member-dialog .member-privacy-status{grid-column:auto;align-content:center}
}
