/* Scoped group refinements; existing palette and controls remain the baseline. */
.group-action-dot{display:inline-flex;align-items:center;justify-content:center;min-width:1.25em;min-height:1.25em;margin-inline-start:.4em;padding:.1em .3em;border-radius:50%;background:var(--red,#ff203d);color:white;font-size:.75rem;font-weight:700;vertical-align:middle}.group-action-dot[hidden]{display:none}
.group-ranking-list{padding-inline-start:1.5rem}.group-ranking-list li{display:flex;align-items:center;gap:.7rem;padding:.45rem 0}.group-ranking-list li>span:nth-child(2){flex:1;overflow-wrap:anywhere}.group-ranking-list strong{white-space:nowrap}.group-ranking-list .step7-avatar{flex-shrink:0}
#group-management,#group-paths,[data-invitation],[data-group-ranking]{margin-block:1rem}#group-management h3{margin-block:1rem .5rem}#group-management form{display:grid;gap:1rem}.group-dashboard label{display:grid;gap:.4rem}.group-dashboard small{display:block;font-size:.8rem;font-weight:400;margin-top:.35rem}.group-dashboard table{table-layout:fixed;width:100%;min-width:0}.group-dashboard th,.group-dashboard td{overflow-wrap:anywhere;vertical-align:top}.group-result-pass{color:var(--green,#6de6a1)}.group-result-fail{color:var(--red,#ff526a)}.group-dashboard .toolbar{flex-wrap:wrap}.group-dashboard select{max-width:100%}
@media(max-width:600px){.group-dashboard.card{padding:.7rem}.group-dashboard th,.group-dashboard td{padding:.4rem;font-size:.8rem}.group-dashboard th:first-child{width:30%}.group-dashboard small{font-size:.7rem}.group-dashboard .table-wrap{overflow-x:auto}#group-management button,[data-invitation] button{margin-block:.25rem}}

#group-paths fieldset{border:0;padding:0;margin:0}#group-paths legend{font-size:.9rem;color:var(--muted,#a5adba);margin-bottom:.6rem}.group-action-dot[href]{text-decoration:none}
.group-dashboard{min-width:0;max-width:100%;box-sizing:border-box}.group-dashboard th{white-space:normal}.group-dashboard .table-wrap{max-width:100%;min-width:0}.group-dashboard select{min-width:0;width:100%;box-sizing:border-box}.group-dashboard td span{overflow-wrap:anywhere}

/* Step 9E: a single ordered group page, using the existing palette and controls. */
.group-section{padding:1rem 0;border-bottom:1px solid var(--line);margin-block:.7rem}.group-section>h2{font-size:1.15rem;margin-block:0 .8rem}.group-section .grid{gap:.65rem}.group-section .list-card{padding:1rem;margin:0}#group-management{padding:1rem;background:var(--panel);border:1px solid var(--line);border-radius:14px}#group-paths{padding:1rem}.group-refresh{display:flex;justify-content:flex-end;margin-block:.4rem}.group-final-actions{margin-top:1.5rem}.group-final-actions button[data-group-delete]{border-color:var(--red,#ff203d)}.invite-message{font:inherit;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;margin-block:1rem;max-height:24rem;overflow:auto}.group-invitation-dialog .invite-message{max-height:none}[data-invite-editor] textarea{width:100%;min-width:0;box-sizing:border-box;min-height:14rem}[data-invite-editor] form{margin-top:1rem}[data-invitation] input[readonly]{width:100%;box-sizing:border-box}.group-section .row-actions button{min-height:44px}.group-section .row-actions{align-items:center}#elections .stack .card{padding:1rem}#members .grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}@media(max-width:600px){.group-section .row-actions>*{max-width:100%;white-space:normal;overflow-wrap:anywhere}.group-section .row-actions{gap:.5rem}.group-section .row-actions button{flex:1 1 140px}.group-invitation-dialog{max-width:calc(100vw - 24px)}.group-refresh button{min-height:44px}}
/* Form controls must shrink with the grid at enlarged text sizes. */
.group-title,#members h3{overflow-wrap:anywhere}#group-management form{grid-template-columns:minmax(0,1fr)}#group-management label{min-width:0}#group-management input,#group-management textarea{width:100%;min-width:0;max-width:100%}
.group-section h2,.group-section h3,#group-management h2,#group-paths h2,[data-group-ranking] h2,.group-dashboard h2{overflow-wrap:anywhere}
/* At enlarged text sizes keep three readable columns inside their own scroll area. */
.group-dashboard .table-wrap{overflow-x:auto;overscroll-behavior-inline:contain}.group-dashboard .table-wrap:focus-visible{outline:3px solid var(--gold);outline-offset:3px}@media(max-width:600px){.group-dashboard table{min-width:20rem}}

/* Step 9M: only invitation controls, existing button styling retained. */
.group-access-controls{margin-block:1rem 1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border,#34404c)}
.group-access-controls label{display:block;margin-block:.75rem}
.group-access-controls .check{display:flex;align-items:center;gap:.65rem}
.group-access-controls input[type=number]{max-width:12rem}
.group-access-controls textarea{width:100%;max-width:100%;box-sizing:border-box}
.group-invite-controls{display:flex;flex-wrap:wrap;gap:.65rem;margin-block:1rem}
.group-invite-controls button,[data-invitation] .row-actions>button{min-height:44px;flex:1 1 13rem}
.group-access-controls [hidden]{display:none}
.group-access-controls,.group-invitation-rights{min-width:0;max-width:100%}
.group-access-controls input,.group-access-controls textarea{box-sizing:border-box}
#group-management .group-access-controls .check input[type=checkbox]{width:1.1rem;min-width:1.1rem;max-width:1.1rem;flex:0 0 1.1rem}
.group-access-controls .row-actions{flex-wrap:wrap}
.group-access-controls .row-actions button{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.group-invite-controls,[data-invitation] .row-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));align-items:stretch}
.group-invite-controls,[data-invitation] .row-actions{grid-auto-rows:1fr}
/* Step 9N: group controls and member rights, scoped to the group view. */
.group-control-center{border-top:3px solid var(--gold,#ffc43b);margin-block:1rem 1.5rem;min-width:0}.group-control-center>h2{margin-top:.25rem}.group-control-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem}.group-control-grid>*{min-width:0;margin:0!important}.group-control-grid #group-management{background:transparent;padding:0;border:0;display:contents}.group-control-grid #group-management>h2{display:none}.group-control-grid [data-direct-access]{min-width:0}.group-control-grid [data-invitation],.group-control-grid #group-paths,.group-control-grid #class-settings{padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.group-control-grid #class-settings{margin-block:1rem}.group-help{font-size:.9rem;color:var(--muted);margin:.6rem 0}.group-help summary{cursor:pointer;color:var(--gold,#ffc43b);min-height:32px;display:list-item}.group-help p{line-height:1.5;margin:.6rem 0}.group-access-controls{margin:0;padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.group-access-controls h3:first-child{margin-top:0}.group-control-center input[type=number]{width:8rem!important;max-width:100%}.group-control-center input[type=datetime-local]{width:18rem!important;max-width:100%}.group-count{color:var(--gold,#ffc43b);font-size:.9rem}.group-invitation-rights{border-top:2px solid var(--gold,#ffc43b);margin-top:1rem}.group-future-paths{margin-top:1.2rem;border-top:1px solid var(--line);padding-top:.8rem}.group-email-rights>summary{cursor:pointer;padding-block:1rem;color:var(--gold,#ffc43b)}.group-permission-scroll{overflow-x:auto;max-width:100%;min-width:0;overscroll-behavior-inline:contain;border:1px solid var(--line);border-radius:12px}.group-permission-scroll:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.group-permission-table{border-collapse:collapse;width:100%;min-width:36rem}.group-permission-table th,.group-permission-table td{padding:.85rem;text-align:left;vertical-align:middle;border-bottom:1px solid var(--line)}.group-permission-table thead{background:rgba(255,196,59,.09);color:var(--gold,#ffc43b)}.group-permission-table th:first-child{min-width:10rem;max-width:18rem;overflow-wrap:anywhere}.group-permission-table small{display:block;font-weight:400;color:var(--muted);margin-top:.3rem}.group-permission-table tbody tr:hover{background:rgba(255,255,255,.025)}.group-path-check{display:flex;justify-content:center;min-width:44px;min-height:44px;align-items:center}.group-path-check input[type=checkbox]{width:1.2rem!important;height:1.2rem;min-width:1.2rem;accent-color:var(--red,#ff203d)}.group-right-granted{color:var(--green,#6de6a1);white-space:nowrap}.group-right-pending{color:var(--gold,#ffc43b)}.group-table-actions{display:flex;flex-wrap:wrap;gap:.5rem;min-width:10rem}.group-table-actions button,.group-permission-table button{min-height:44px;white-space:normal}.group-request-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid var(--line);border-left:3px solid var(--red,#ff203d);border-radius:12px;margin-block:.7rem}.group-path-personal{min-width:0}.group-member-source[hidden]{display:none}.group-control-center .check{display:flex;align-items:center;gap:.6rem}.group-control-center .check input{width:1.1rem!important;flex:0 0 1.1rem}.group-control-center button{min-height:44px}.group-future-paths .group-permission-table{min-width:32rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(min-width:1100px){.group-control-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}.group-control-grid [data-direct-access]{grid-column:2;grid-row:1/span 3}.group-control-grid [data-invitation],.group-control-grid #group-paths,.group-control-grid #class-settings{grid-column:1}}@media(max-width:600px){.group-control-center{padding:.8rem}.group-control-grid{gap:.7rem}.group-access-controls{padding:.8rem}.group-permission-table td,.group-permission-table th{padding:.6rem}.group-table-actions{min-width:9rem}}
/* Keep the existing mobile menu closed before the shared navigation script fits it. */
@media(max-width:650px){body .top:not(.game-compact):not([data-game-measure]) .nav{display:none}}
/* Grid/flex children must shrink before their own table takes horizontal scrolling. */
.group-control-center,.group-control-grid,.group-future-paths,.group-path-personal,#members,.group-email-rights{min-width:0;max-width:100%;box-sizing:border-box}
.group-control-center .group-permission-scroll{width:100%;box-sizing:border-box}
.group-control-center .group-future-paths{overflow-wrap:anywhere}
/* Independent columns keep invitation controls compact beside the settings. */
.group-control-column{min-width:0;display:grid;gap:1rem;align-content:start}.group-control-column>*{margin:0!important}.group-control-grid #group-management{display:block;grid-column:auto;grid-row:auto;min-width:0;align-self:start}.group-control-grid #class-settings{margin:0}.group-control-grid [data-direct-access]{grid-column:auto;grid-row:auto}.group-control-grid{align-items:start}.group-control-column [data-invitation],.group-control-column #group-paths,.group-control-column #class-settings{grid-column:auto}
.group-control-column #class-settings{display:grid;gap:.6rem}.group-control-column #class-settings button{justify-self:start;min-width:10rem}
/* Contain positioned accessible labels inside the table's own scroll area. */
.group-permission-scroll{position:relative}
.group-permission-table [data-right-save],.group-permission-table [data-email-default]{min-width:6rem;white-space:nowrap;overflow-wrap:normal}.group-future-paths .group-permission-table td:last-child{min-width:7rem}
#path-requests{scroll-margin-top:calc(var(--game-header-height,88px) + 1rem)}

/* Step 9O: approved group-page layout; existing controls, colors and roles retained. */
.group-page-9o{min-width:0;max-width:100%;container-type:inline-size}
.group-page-9o .group-control-center{padding:1.25rem}
.group-page-9o .group-request-center{padding:1rem 0;margin-bottom:1rem;border-bottom:1px solid var(--line)}
.group-page-9o .group-request-grid,.group-page-9o .group-invitation-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;align-items:start}
.group-page-9o .group-request-grid>*,.group-page-9o .group-invitation-grid>*,.group-page-9o [data-group-paths-host],.group-page-9o [data-future-paths-host]{min-width:0;max-width:100%}
.group-page-9o .group-request-center .group-section{margin:0;border-bottom:0;padding:.5rem 0}
.group-page-9o .group-details-panel,.group-page-9o #group-paths{padding:1rem;margin:0 0 1rem}
.group-page-9o #class-settings,.group-page-9o [data-group-limit-form],.group-page-9o [data-access-settings],.group-page-9o [data-invitation-rights]{display:grid;gap:.65rem;min-width:0}
.group-page-9o fieldset{border:0;padding:0;margin:0;min-width:0;display:grid;gap:.65rem}
.group-page-9o #class-settings label,.group-page-9o [data-access-settings] label,.group-page-9o [data-invitation-rights] label{display:grid;gap:.4rem;min-width:0}
.group-page-9o #class-settings input,.group-page-9o #class-settings textarea,.group-page-9o [data-access-settings] textarea{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
.group-page-9o #class-settings button,.group-page-9o form>button,.group-page-9o fieldset>button{justify-self:start}
.group-page-9o .group-limit-row{display:flex;flex-wrap:wrap;align-items:end;gap:.7rem;margin-top:.8rem}
.group-page-9o .group-limit-row label{display:grid;gap:.4rem}
.group-page-9o .group-control-center input[type=number]{width:6rem!important}
.group-page-9o .group-limit-info{margin:0;position:relative}
.group-page-9o .group-limit-info summary{display:flex;align-items:center;justify-content:center;list-style:none;width:34px;height:34px;min-height:34px;padding:0;border:1px solid var(--gold);border-radius:50%;font-weight:700}
.group-page-9o .group-limit-info summary::-webkit-details-marker{display:none}
.group-page-9o .group-limit-info[open]{flex:1 1 100%}
.group-page-9o .group-limit-info p{padding:.75rem;border-left:3px solid var(--gold);margin:.7rem 0;max-width:42rem}
.group-page-9o .group-help:not(.group-limit-info)>summary{padding:.65rem .8rem;min-height:44px;box-sizing:border-box;border:1px solid rgba(255,196,59,.35);border-radius:10px;background:rgba(255,196,59,.08);color:var(--gold)}
.group-page-9o .group-invitation-grid{margin-block:1rem}
.group-page-9o [data-invitation],.group-page-9o .group-direct-invitation{padding:1rem;margin:0;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.group-page-9o .group-invitation-buttons{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:.5rem;grid-auto-rows:auto}
.group-page-9o .group-invitation-buttons>button{width:100%;min-height:44px;margin:0;white-space:normal;overflow-wrap:anywhere}
.group-page-9o [data-access-settings]{border-top:1px solid var(--line);margin-top:1rem;padding-top:.6rem}
.group-page-9o .group-control-center label.check{display:flex;align-items:center;gap:.65rem}
.group-page-9o .group-invitation-rights{padding:1rem;margin-block:1rem 0}
.group-page-9o .group-future-paths{margin-top:1rem}
.group-page-9o .group-email-rights>summary{padding:.8rem;color:var(--gold)}
.group-page-9o .group-permission-scroll{position:relative;max-width:100%;width:100%;box-sizing:border-box}
.group-page-9o #members .group-permission-table{border-collapse:separate;border-spacing:0;min-width:50rem}
.group-page-9o #members .group-permission-table th:first-child{position:sticky;left:0;z-index:1;background:var(--panel);min-width:8rem;max-width:14rem;box-shadow:3px 0 4px rgba(0,0,0,.15)}
.group-page-9o #members .group-permission-table thead th:first-child{z-index:2}
.group-page-9o #members .group-table-actions{display:flex;flex-wrap:nowrap;min-width:max-content;gap:.5rem}
.group-page-9o #members .group-table-actions button{flex:0 0 auto;white-space:nowrap;min-height:44px}
.group-page-9o .group-row-dirty{display:block;color:var(--gold);font-size:.8rem;margin-top:.35rem}
.group-page-9o .group-row-dirty[hidden]{display:none}
.group-page-9o [data-row-status]{display:block;min-width:6rem;font-size:.8rem}
.group-page-9o .group-danger,.group-page-9o button[data-action=remove-member],.group-page-9o button[data-group-delete]{color:var(--red)}
.group-page-9o #requests,.group-page-9o #path-requests,.group-page-9o #elections{scroll-margin-top:calc(var(--game-header-height,88px) + 1rem)}
.group-page-9o .group-dashboard .table-wrap{position:relative}
.group-page-9o .group-dashboard table{min-width:36rem}
@container(min-width:760px){.group-page-9o .group-invitation-grid,.group-page-9o .group-request-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@container(max-width:480px){.group-page-9o .group-control-center{padding:.75rem}.group-page-9o .group-details-panel,.group-page-9o #group-paths,.group-page-9o [data-invitation],.group-page-9o .group-direct-invitation{padding:.8rem}.group-page-9o .group-permission-table th,.group-page-9o .group-permission-table td{padding:.6rem}.group-page-9o .group-control-center input:not([type=checkbox]),.group-page-9o .group-control-center textarea{font-size:16px}.group-page-9o .group-invitation-grid{gap:.8rem}}
/* Explicit hidden state must win over the existing form-label display rules. */
.group-page-9o [hidden]{display:none!important}
/* Native date/time inputs must also shrink inside the narrow Admin panel. */
.group-page-9o .group-invitation-rights input[type=datetime-local]{min-width:0;max-width:100%;box-sizing:border-box}
.group-page-9o .group-invitation-rights label:not(.check){grid-template-columns:minmax(0,1fr)}
.group-page-9o .group-invitation-rights input[type=datetime-local]{width:100%!important}
.group-page-9o .group-invitation-rights input[type=datetime-local]{max-width:min(100%,18rem)}

/* Step 9P: existing FireSkills controls, separate roles and admin overview. */
.group-admin-overview{display:grid;gap:12px;max-width:960px}.group-admin-link{display:flex;align-items:center;justify-content:space-between;gap:16px;text-decoration:none;text-align:left;min-width:0;white-space:normal}.group-admin-link strong{overflow-wrap:anywhere}.group-admin-link span{font-size:.85rem;color:var(--muted,#aab2bf)}
.group-role-settings{margin-top:18px;min-width:0}.group-role-settings form{display:grid;gap:12px}.group-election-role{margin:18px 0}.group-election-role article{margin-top:10px}.group-election-role h4{overflow-wrap:anywhere}.group-table-actions [data-role-action]{font-size:.85rem}.group-role-settings select{max-width:100%}
@media(max-width:650px){.group-admin-link{align-items:flex-start;flex-direction:column;gap:5px}.group-role-settings .check{grid-template-columns:auto minmax(0,1fr)}}
