/* bundled from v0980-club-roles.css */
/* TACTERO v0.9.8.0 */
.v0980-role-box{display:grid;grid-template-columns:auto minmax(115px,auto);align-items:end;gap:5px;margin-left:6px;padding-left:10px;border-left:1px solid #dbe4de}.v0980-role-box label{grid-column:1/-1;font-size:8px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:#6b786f}.v0980-role-box button{min-height:36px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;background:#f5f9f6!important;color:#153422!important;border:1px solid #cbd9cf!important;border-radius:9px!important;padding:7px 10px!important;font-weight:900!important}.v0980-role-box.readonly button{background:#fff6d9!important;border-color:#e4d097!important}
.v0980-dialog{width:min(1080px,calc(100vw - 34px));max-width:none;max-height:92vh;padding:0;border:0;border-radius:16px;background:#eef4f0;overflow:hidden;box-shadow:0 26px 80px rgba(4,25,13,.28)}.v0980-dialog::backdrop{background:rgba(5,18,10,.62);backdrop-filter:blur(2px)}.v0980-shell{display:grid;grid-template-rows:auto minmax(0,1fr);max-height:92vh}.v0980-shell>header{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:16px 18px;background:linear-gradient(135deg,#0b2416,#1c452d);color:#fff}.v0980-shell>header strong{display:block;font-size:18px}.v0980-shell>header small{display:block;margin-top:3px;color:#bdd2c3;font-size:10px}.v0980-shell>header button{background:#fff;border:0;border-radius:9px;padding:8px 11px;color:#173824;font-weight:850}.v0980-shell>main{overflow:auto;padding:14px;display:grid;gap:12px}
.v0980-panel{background:#fff;border:1px solid #d4e0d7;border-radius:14px;padding:14px;display:grid;gap:11px}.v0980-panel h3{margin:0;font-size:15px}.v0980-panel p{margin:4px 0 0;color:#6a786f;font-size:10px;line-height:1.4}.v0980-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.v0980-head>span{background:#fff2c6;color:#755d18;border-radius:999px;padding:5px 9px;font-size:9px;font-weight:900}
.v0980-roles,.v0980-perms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.v0980-role{min-height:70px;text-align:left;border:1px solid #d7e1da;background:#f8fbf9;border-radius:11px;padding:10px;cursor:pointer}.v0980-role b{display:block;color:#153422}.v0980-role small{display:block;margin-top:4px;color:#718077;font-size:9px;line-height:1.3}.v0980-role.active{background:#eaffcb;border-color:#a8e653;box-shadow:inset 0 0 0 1px #b5ef67}
.v0980-perm{display:flex;align-items:center;gap:8px;border:1px solid #dbe4de;border-radius:9px;padding:8px 9px;font-size:10px;background:#fafcfb}.v0980-perm span{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-weight:950}.v0980-perm.yes span{background:#e8ffca;color:#377900}.v0980-perm.no{opacity:.48}.v0980-perm.no span{background:#eef1ef;color:#7a8580}
.v0980-members{display:grid;gap:6px}.v0980-member{display:grid;grid-template-columns:minmax(0,1fr) 190px;align-items:center;gap:10px;border:1px solid #dde5df;border-radius:9px;padding:8px 10px}.v0980-member b{display:block;font-size:11px}.v0980-member small{display:block;color:#718077;font-size:9px;margin-top:2px}.v0980-member select,.v0980-form select,.v0980-form input{width:100%;border:1px solid #ccd8cf;border-radius:8px;padding:8px;background:#f9fbfa}.v0980-sub{font-size:10px;font-weight:950;color:#496154;text-transform:uppercase;letter-spacing:.08em;margin-top:3px}.v0980-form{display:grid;gap:8px;align-items:end}.v0980-form.four{grid-template-columns:1.3fr 1fr 1fr auto}.v0980-form.three{grid-template-columns:1fr 1fr auto}.v0980-form label{display:grid;gap:4px;font-size:9px;font-weight:850;color:#53665a}.v0980-form button,.v0980-club button{border:0;border-radius:9px;background:#173c27;color:#a9ff42;padding:9px 12px;font-weight:900}.v0980-out{background:#f0f7f2;border:1px solid #d1dfd5;border-radius:9px;padding:9px;font-size:10px}.v0980-out code{display:block;margin-top:5px;word-break:break-all}.v0980-invites{display:grid;gap:5px}.v0980-invite{display:grid;grid-template-columns:minmax(0,1fr) 160px 80px;gap:8px;padding:7px 9px;border-bottom:1px solid #edf1ee;font-size:9px}.v0980-invite small{color:#728078}.v0980-empty{padding:16px;border-radius:9px;background:#f7faf8;color:#748078;text-align:center;font-size:10px}
.v0980-club{display:flex!important;justify-content:space-between;align-items:center;gap:20px;background:linear-gradient(135deg,#10271a,#1d452d)!important;color:#fff!important;border:0!important}.v0980-club h2{margin:3px 0 5px!important;color:#fff!important}.v0980-club p{margin:0;color:#c7d7cd;font-size:10px}.v0980-club>div:first-child>small{font-size:8px;font-weight:950;letter-spacing:.1em;color:#a9ff42}.v0980-club>div:last-child{display:flex;align-items:center;gap:8px}.v0980-club>div:last-child>b{background:rgba(255,255,255,.1);padding:7px 9px;border-radius:999px;font-size:9px}
@media(max-width:900px){.v0980-role-box label{display:none}.v0980-role-box{grid-template-columns:1fr;padding-left:5px}/* TACTERO_MOBILE_ROLE_BUTTON_WIDTH_V1 Use the existing 145px role box instead of clipping the button to 110px. */.v0980-role-box button{min-width:42px!important;max-width:100%!important}.v0980-roles,.v0980-perms{grid-template-columns:repeat(2,minmax(0,1fr))}.v0980-form.four,.v0980-form.three{grid-template-columns:1fr 1fr}.v0980-form button{grid-column:1/-1}}
@media(max-width:650px){.v0980-dialog[open]{position:fixed;inset:0;width:100vw;height:100dvh;max-height:none;margin:0;border-radius:0}.v0980-shell{height:100dvh;max-height:none}.v0980-shell>main{padding:8px}.v0980-roles,.v0980-perms,.v0980-member,.v0980-form.four,.v0980-form.three,.v0980-invite{grid-template-columns:1fr}.v0980-form button{grid-column:auto}.v0980-club{align-items:flex-start;flex-direction:column}}


/* bundled from v09100-complete-role-workspaces.css */
/* TACTERO v0.9.10.1 */
.v09100-page .content-page{padding-bottom:38px}.v09100-content{display:grid;gap:14px}.v09100-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px;border-radius:16px;background:linear-gradient(135deg,#10271a,#1e4b31);color:#fff}.v09100-hero small{font-size:9px;font-weight:950;letter-spacing:.12em;color:#a9ff42}.v09100-hero h2{margin:4px 0;font-size:25px}.v09100-hero p{margin:0;color:#c8d9cf;font-size:11px}.v09100-rolemark{padding:9px 12px;border-radius:999px;background:rgba(255,255,255,.09);font-weight:900;font-size:10px}.v09100-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.v09100-task{display:grid;gap:6px;text-align:left;border:1px solid #d8e2db;background:#fff;border-radius:13px;padding:14px;cursor:pointer}.v09100-task strong{font-size:18px;color:#173a26}.v09100-task span{font-size:10px;color:#6b796f}.v09100-card{background:#fff;border:1px solid #d8e2db;border-radius:14px;padding:15px;display:grid;gap:12px}.v09100-card h3{margin:0;font-size:15px}.v09100-card p{margin:4px 0 0;color:#6b786f;font-size:10px;line-height:1.45}.v09100-cardhead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.v09100-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.v09100-kpis>div{background:#fff;border:1px solid #d8e2db;border-radius:13px;padding:13px}.v09100-kpis small{display:block;color:#6d7a72;font-size:9px;font-weight:800}.v09100-kpis strong{display:block;font-size:24px;color:#183b27;margin-top:3px}.v09100-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.v09100-fields label{display:grid;gap:5px;font-size:9px;font-weight:850;color:#53665a}.v09100-fields .wide{grid-column:span 3}.v09100-fields input,.v09100-fields select,.v09100-fields textarea,.v09100-dialog input,.v09100-dialog select,.v09100-dialog textarea{width:100%;box-sizing:border-box;border:1px solid #ccd8cf;border-radius:9px;padding:9px;background:#fafcfb;color:#17261d;font:inherit}.v09100-primary,.v09100-secondary{border:0;border-radius:9px;padding:9px 12px;font-weight:900;cursor:pointer}.v09100-primary{background:#173c27;color:#a9ff42}.v09100-secondary{background:#eef4f0;color:#284b36;border:1px solid #d1ddd4}.v09100-out{padding:9px;border-radius:9px;background:#eef7f0;color:#345943;font-size:10px}.v09100-cases{display:grid;gap:9px}.v09100-case{border:1px solid #dce5df;border-radius:12px;padding:12px;display:grid;gap:9px;background:#fbfdfb}.v09100-case-main{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.v09100-case-main strong{display:block;font-size:13px}.v09100-case-main small{display:block;color:#6f7d74;font-size:9px;margin-top:3px}.v09100-casebadges,.v09100-rolechips{display:flex;gap:6px;flex-wrap:wrap}.v09100-badge{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;background:#edf3ef;color:#496052;font-size:8px;font-weight:900}.v09100-badge.green{background:#e9ffd1;color:#397500}.v09100-badge.red{background:#ffe7e7;color:#9d2828}.v09100-meta{display:flex;gap:14px;flex-wrap:wrap;color:#6d7971;font-size:9px}.v09100-feedback,.v09100-private{display:grid;gap:3px;border-radius:9px;padding:9px;font-size:10px}.v09100-feedback{background:#eff9e7}.v09100-private{background:#fff4df;border:1px solid #eed9ab}.v09100-feedback b,.v09100-private b{font-size:8px;text-transform:uppercase;letter-spacing:.06em}.v09100-scoutgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.v09100-scoutgrid article{border:1px solid #dce5df;border-radius:12px;padding:12px;display:grid;gap:7px}.v09100-scoutgrid article>div{display:flex;justify-content:space-between;gap:8px}.v09100-scoutgrid small{color:#6d7971}.v09100-scoutgrid b{font-size:20px;color:#173c27}.v09100-empty{padding:20px;text-align:center;border-radius:10px;background:#f6f9f7;color:#758078;font-size:10px}.v09100-dialog{width:min(720px,calc(100vw - 32px));border:0;border-radius:15px;padding:0;box-shadow:0 25px 80px rgba(0,0,0,.3)}.v09100-dialog::backdrop{background:rgba(5,18,10,.6)}.v09100-dialogshell>header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:#173c27;color:#fff}.v09100-dialogshell>header strong{display:block}.v09100-dialogshell>header small{color:#c9d8cf}.v09100-dialogshell>header button{border:0;background:transparent;color:#fff;font-size:24px}.v09100-dialogshell>main{padding:14px;display:grid;grid-template-columns:1fr 1fr;gap:9px}.v09100-dialogshell>main label{display:grid;gap:5px;font-size:9px;font-weight:850;color:#53665a}.v09100-dialogshell>main .wide{grid-column:1/-1}.v09100-dialogshell>footer{display:flex;justify-content:flex-end;gap:8px;padding:0 14px 14px}.v09100-dashboard-banner{margin:0 auto 14px;width:min(100%,var(--ui-max,1480px));box-sizing:border-box;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 14px;border:1px solid #d8e2db;border-radius:12px;background:#fff}.v09100-dashboard-banner small{display:block;font-size:8px;font-weight:950;color:#66806e;text-transform:uppercase}.v09100-dashboard-banner strong{display:block;font-size:13px;margin-top:2px}.v09100-dashboard-banner button{border:0;border-radius:8px;background:#173c27;color:#a9ff42;padding:8px 10px;font-weight:900;font-size:9px}
@media(max-width:900px){.v09100-grid,.v09100-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.v09100-fields{grid-template-columns:1fr 1fr}.v09100-fields .wide{grid-column:1/-1}.v09100-scoutgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.v09100-hero,.v09100-cardhead,.v09100-case-main,.v09100-dashboard-banner{align-items:flex-start;flex-direction:column}.v09100-grid,.v09100-kpis,.v09100-fields,.v09100-scoutgrid,.v09100-dialogshell>main{grid-template-columns:1fr}.v09100-fields .wide,.v09100-dialogshell>main .wide{grid-column:auto}.v09100-dialog[open]{position:fixed;inset:0;width:100vw;height:100dvh;max-height:none;margin:0;border-radius:0}.v09100-dialogshell{min-height:100dvh;background:#fff}.v09100-meta{display:grid;gap:4px}}

/* Complete role sheets */
.v09100-work-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:12px}.v09100-kpis>div span{display:block;margin-top:2px;color:#7b877f;font-size:8px}.v09100-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:2px}.v09100-work-action{position:relative;display:grid;gap:3px;text-align:left;padding:11px 30px 11px 11px;border:1px solid #dbe4de;border-radius:10px;background:#fbfdfb;color:#1d3526;cursor:pointer}.v09100-work-action:hover{border-color:#abc4b1;background:#f5faf6}.v09100-work-action strong{font-size:10px}.v09100-work-action span{font-size:8px;color:#758178;line-height:1.35}.v09100-work-action i{position:absolute;right:11px;top:50%;transform:translateY(-50%);font-size:17px;font-style:normal;color:#66806e}.v09100-priority-list{display:grid;gap:7px}.v09100-priority-list>div{display:flex;align-items:center;gap:8px;padding:8px 9px;border-radius:9px;background:#f5f8f6;font-size:9px}.v09100-dot{width:7px;height:7px;border-radius:50%;background:#8bd23b;box-shadow:0 0 0 3px #eaf7dc}.v09100-next{display:grid;gap:2px;border-top:1px solid #edf1ee;padding-top:10px}.v09100-next small{font-size:7px;font-weight:950;letter-spacing:.08em;color:#718078}.v09100-next b{font-size:11px}.v09100-next span{font-size:8px;color:#77827b}.v09100-checklist{display:grid;gap:8px}.v09100-checklist>div{display:grid;grid-template-columns:20px 1fr;gap:7px;align-items:start}.v09100-checklist>div>span{display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:#edf8e6;color:#477e1d;font-size:9px;font-weight:950}.v09100-checklist p{margin:2px 0 0;color:#405047;font-size:9px}.v09100-privacy-note{display:grid;gap:3px;margin-top:5px;padding:10px;border-radius:10px;background:#f7faf8;border:1px solid #e1e8e3}.v09100-privacy-note b{font-size:8px;text-transform:uppercase;letter-spacing:.06em;color:#566b5e}.v09100-privacy-note span{font-size:8px;line-height:1.45;color:#748078}.v09100-dashboard-banner>div{min-width:0}.v09100-dashboard-banner>div span{display:block;margin-top:2px;font-size:8px;color:#78857c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:760px}
@media(max-width:1000px){.v09100-work-grid{grid-template-columns:1fr}.v09100-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.v09100-actions{grid-template-columns:1fr}.v09100-dashboard-banner>div span{white-space:normal}.v09100-work-action{min-height:56px}}


/* v0.9.10.1 · roster + role test */
.v09101-form-note{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:8px 10px;border-radius:9px;background:#f5f8f6;color:#6d7a72;font-size:9px}.v09101-linkbtn{border:0;background:transparent;padding:0;color:#315f40;font-weight:900;font-size:9px;cursor:pointer;text-decoration:underline}.v09101-dialog-note{padding:9px 10px;border-radius:9px;background:#f6f9f7;border:1px solid #e1e8e3;color:#65736a;font-size:9px;line-height:1.45}.v09101-role-test{border-color:#bdd6c4;background:linear-gradient(180deg,#fbfffc,#f5faf6)}.v09101-role-test-row{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;gap:9px;align-items:end}.v09101-role-test-row label{display:grid;gap:5px;font-size:9px;font-weight:850;color:#53665a}.v09101-role-test-row select{width:100%;border:1px solid #ccd8cf;border-radius:9px;padding:9px;background:#fff;color:#17261d}.v0980-role-box.testmode{border-color:#9ccf66!important;box-shadow:0 0 0 2px rgba(145,210,70,.12)}.v0980-role-box.testmode>label{color:#4e781f!important}.v0980-role-box.testmode>label::after{content:' · TEST';font-weight:950;color:#6ca320}@media(max-width:760px){.v09101-role-test-row{grid-template-columns:1fr}.v09101-role-test-row button{width:100%}}


/* bundled from v09110-club-operations.css */
/* TACTERO v0.9.11.0 · Club Operations */
.v09110-content{display:flex;flex-direction:column;gap:14px;padding-bottom:28px}.v09110-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.v09110-kpis>div,.v09110-card{background:#fff;border:1px solid #dfe6e1;border-radius:14px;box-shadow:0 2px 12px rgba(18,40,25,.04)}.v09110-kpis>div{padding:15px 16px;display:flex;flex-direction:column;gap:3px}.v09110-kpis small,.v09110-card small{color:#6d7d72}.v09110-kpis strong{font-size:23px;line-height:1.1}.v09110-kpis span{font-size:11px;color:#718078}.v09110-card{padding:17px}.v09110-card h3{margin:0 0 7px;font-size:16px}.v09110-card p{margin:0 0 12px;color:#637269;line-height:1.45}.v09110-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.v09110-cardhead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.v09110-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.v09110-action{border:1px solid #dfe6e1;background:#fbfcfb;border-radius:11px;padding:11px 12px;text-align:left;display:grid;grid-template-columns:1fr auto;gap:2px 8px;cursor:pointer}.v09110-action strong{font-size:13px}.v09110-action span{grid-column:1;color:#6f7e74;font-size:11px}.v09110-action i{grid-column:2;grid-row:1/3;align-self:center;font-size:20px;font-style:normal}.v09110-action:hover{border-color:#a8d988;background:#f8fff4}.v09110-primary,.v09110-secondary{border-radius:9px;padding:9px 13px;font-weight:750;cursor:pointer}.v09110-primary{border:0;background:linear-gradient(135deg,#a9ff2c,#6ddb00);color:#11200d}.v09110-secondary{border:1px solid #d6dfd8;background:#fff;color:#304139}.v09110-primary:disabled,.v09110-secondary:disabled{opacity:.45;cursor:not-allowed}.v09110-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:4px 0}.v09110-tabs button{border:1px solid #dce4de;background:#fff;border-radius:999px;padding:8px 12px;cursor:pointer}.v09110-tabs button.active{background:#eefbe5;border-color:#9dd672;color:#356c19;font-weight:800}.v09110-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.v09110-fields label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:750;color:#405046}.v09110-fields .wide{grid-column:1/-1}.v09110-fields .check{display:flex;flex-direction:row;align-items:center;gap:8px}.v09110-fields input,.v09110-fields select,.v09110-fields textarea,.v09110-taskactions select,.v09110-assignment select,.v09110-role-test select{width:100%;box-sizing:border-box;border:1px solid #ccd7cf;border-radius:8px;background:#fff;padding:9px 10px;color:#25352b;font:inherit}.v09110-form>.v09110-primary{margin-top:12px}.v09110-out{margin-top:10px;padding:9px 11px;border-radius:8px;background:#f4f8f4;border:1px solid #d9e5da;font-size:12px}.v09110-badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;background:#edf1ee;color:#526259;font-size:10px;font-weight:850;white-space:nowrap}.v09110-badge.green{background:#e8f8df;color:#2d7414}.v09110-badge.red{background:#fde8e6;color:#a92d24}.v09110-badge.amber{background:#fff4d9;color:#8b6200}.v09110-badge.blue{background:#eaf3ff;color:#285f9d}.v09110-list,.v09110-status-list,.v09110-appointment-list,.v09110-result-list,.v09110-inventory,.v09110-priorities{display:flex;flex-direction:column;gap:8px}.v09110-list>div,.v09110-status-list article,.v09110-appointment-list article,.v09110-result-list article,.v09110-inventory article,.v09110-priorities>div{border:1px solid #e0e7e2;border-radius:10px;padding:10px 12px;background:#fcfdfc}.v09110-status-list article,.v09110-appointment-list article,.v09110-result-list article,.v09110-inventory article{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.v09110-status-list article>div:first-child,.v09110-appointment-list article>div:first-child,.v09110-result-list article>div:first-child,.v09110-inventory article>div:first-child{display:flex;flex-direction:column;gap:3px}.v09110-empty{color:#7b8980;padding:12px;border:1px dashed #ccd6cf;border-radius:10px;background:#fafcfa}.v09110-ok{padding:11px 12px;border:1px solid #b9dfaa;background:#f0faeb;color:#32731a;border-radius:10px}.v09110-note{padding:11px 12px;border-radius:10px;background:#f7faf7;border:1px solid #dce5dd;color:#56665c;font-size:12px;line-height:1.45}.v09110-mini{padding:10px 11px;border-radius:10px;background:#f5f8f6}.v09110-posgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.v09110-posgrid>div{padding:10px;border:1px solid #e1e8e2;border-radius:9px;display:flex;flex-direction:column;gap:2px}.v09110-posgrid span{font-size:11px;color:#68786d}.v09110-approval-list{display:flex;flex-direction:column;gap:8px}.v09110-approval-list article{border:1px solid #dfe6e1;border-radius:11px;padding:11px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.v09110-approval-list article>div:first-child{display:flex;flex-direction:column;gap:3px}.v09110-approval-list article>div:last-child{display:flex;gap:7px}.v09110-tasklist{display:flex;flex-direction:column;gap:9px}.v09110-task{display:grid;grid-template-columns:1fr auto;gap:14px;border:1px solid #dfe6e1;border-radius:11px;padding:12px;background:#fff}.v09110-task>div:first-child{display:flex;flex-direction:column;gap:4px}.v09110-task p{margin:4px 0 0}.v09110-tasktop{display:flex;gap:5px;flex-wrap:wrap}.v09110-taskactions{display:flex;align-items:center;gap:7px}.v09110-taskactions select{min-width:160px}.v09110-assignment-list{display:flex;flex-direction:column;gap:8px}.v09110-assignment{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,.7fr) minmax(180px,.7fr) auto;gap:10px;align-items:end;border:1px solid #e0e6e1;border-radius:10px;padding:10px 12px}.v09110-assignment>div{display:flex;flex-direction:column;gap:3px}.v09110-assignment label{font-size:10px;font-weight:750}.v09110-stages{display:flex;flex-direction:column;gap:5px;margin:12px 0}.v09110-stage-head,.v09110-stage{display:grid;grid-template-columns:70px repeat(3,minmax(0,1fr));gap:7px;align-items:center}.v09110-stage-head{font-size:10px;font-weight:800;color:#66766b;padding:0 5px}.v09110-stage input{border:1px solid #ccd7cf;border-radius:8px;padding:8px}.v09110-checkrow{display:flex;flex-wrap:wrap;gap:10px;margin-top:7px}.v09110-checkrow label{display:flex;flex-direction:row;align-items:center;gap:5px}.v09110-role-test{display:grid;grid-template-columns:1fr minmax(220px,.5fr) auto auto;gap:10px;align-items:center;margin-bottom:12px}.v09110-role-test>div{display:flex;flex-direction:column;gap:3px}.v09110-role-test span{font-size:11px;color:#66766d}.v09110-live-med{grid-column:1/-1;width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px;padding:6px 8px;border-radius:8px;background:#fff0ee;color:#942c24;font-size:10px}.v09110-live-med.partial{background:#fff7e6;color:#7e5a0a}.v09110-live-med button{border:1px solid currentColor;background:#fff;border-radius:7px;padding:5px 7px;font-size:10px;cursor:pointer}.live-attendance-row:has(.v09110-live-med){flex-wrap:wrap}.v0980-role-box.testmode{outline:2px solid #efb63b;outline-offset:2px}.v0980-role-box.testmode label{color:#8a5b00!important}
@media(max-width:1100px){.v09110-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.v09110-grid{grid-template-columns:1fr}.v09110-assignment{grid-template-columns:1fr 1fr}.v09110-assignment>div{grid-column:1/-1}.v09110-role-test{grid-template-columns:1fr 1fr}.v09110-role-test>div{grid-column:1/-1}}
@media(max-width:700px){.v09110-kpis{grid-template-columns:1fr 1fr;gap:8px}.v09110-kpis>div{padding:11px}.v09110-grid,.v09110-actions,.v09110-fields{grid-template-columns:1fr}.v09110-fields .wide{grid-column:auto}.v09110-card{padding:13px}.v09110-posgrid{grid-template-columns:1fr 1fr}.v09110-task{grid-template-columns:1fr}.v09110-taskactions{align-items:stretch;flex-direction:column}.v09110-assignment{grid-template-columns:1fr}.v09110-assignment>div{grid-column:auto}.v09110-stage-head,.v09110-stage{grid-template-columns:45px repeat(3,minmax(0,1fr))}.v09110-approval-list article,.v09110-status-list article,.v09110-appointment-list article,.v09110-result-list article,.v09110-inventory article{flex-direction:column}.v09110-role-test{grid-template-columns:1fr}.v09110-role-test>div{grid-column:auto}}


/* bundled from v09120-full-club-simulation.css */
/* TACTERO v0.9.12.0 · Full Club Simulation QA */
#page-qasimulation .content-page{max-width:1600px;margin:0 auto;padding-bottom:48px}.v09120-wrap{display:grid;gap:16px}.v09120-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px;border:1px solid var(--line,#d8dde5);border-radius:16px;background:linear-gradient(135deg,#fff,#f6f8fb)}.v09120-hero h2{margin:0 0 6px;font-size:22px}.v09120-hero p{margin:0;color:#667085;max-width:850px}.v09120-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.v09120-actions button,.v09120-btn{min-height:38px;border-radius:10px;border:1px solid #cfd5df;background:#fff;padding:8px 12px;font-weight:700;cursor:pointer}.v09120-actions .primary,.v09120-btn.primary{background:#132238;color:#fff;border-color:#132238}.v09120-actions .danger{border-color:#f2b8b5;color:#b42318;background:#fff8f7}.v09120-actions button:disabled{opacity:.5;cursor:not-allowed}.v09120-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.v09120-kpi{background:#fff;border:1px solid #dfe3ea;border-radius:14px;padding:14px;min-height:92px}.v09120-kpi small{display:block;color:#667085;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.v09120-kpi strong{display:block;margin-top:5px;font-size:26px;color:#101828}.v09120-kpi span{font-size:12px;color:#667085}.v09120-progress{height:12px;background:#e9edf3;border-radius:999px;overflow:hidden}.v09120-progress>i{display:block;height:100%;background:#1d7a55;transition:width .35s ease}.v09120-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:16px}.v09120-card{background:#fff;border:1px solid #dfe3ea;border-radius:14px;padding:16px;min-width:0}.v09120-card h3{margin:0 0 10px;font-size:16px}.v09120-card>p{color:#667085;margin:0 0 12px}.v09120-clubs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.v09120-club{border:1px solid #dfe3ea;border-radius:13px;padding:13px;background:#fbfcfe}.v09120-club h4{margin:0 0 4px;font-size:14px}.v09120-club>small{color:#667085;display:block;min-height:34px}.v09120-team-list{display:grid;gap:7px;margin-top:10px}.v09120-team{display:flex;align-items:center;gap:8px;border-top:1px solid #eceff3;padding-top:7px}.v09120-team div{flex:1;min-width:0}.v09120-team b{display:block;font-size:13px}.v09120-team small{color:#667085}.v09120-team button{font-size:11px;padding:5px 7px;border:1px solid #d0d5dd;border-radius:7px;background:#fff;cursor:pointer}.v09120-weekstrip{display:grid;grid-template-columns:repeat(8,1fr);gap:7px}.v09120-week{border:1px solid #dfe3ea;border-radius:10px;padding:8px;text-align:center;font-size:12px;background:#fff}.v09120-week.done{background:#ecfdf3;border-color:#abefc6;color:#067647}.v09120-week.current{box-shadow:0 0 0 2px #344054 inset}.v09120-personas{display:grid;gap:6px;max-height:330px;overflow:auto}.v09120-persona{display:grid;grid-template-columns:1fr auto;gap:8px;padding:8px 0;border-bottom:1px solid #eef1f5}.v09120-persona b{font-size:12px}.v09120-persona small{display:block;color:#667085}.v09120-pill{display:inline-flex;align-items:center;white-space:nowrap;border-radius:999px;padding:3px 7px;background:#f2f4f7;color:#344054;font-size:10px;font-weight:700}.v09120-pill.pass{background:#ecfdf3;color:#067647}.v09120-pill.fail{background:#fef3f2;color:#b42318}.v09120-scenarios{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.v09120-scenario{border:1px solid #e1e5eb;border-radius:11px;padding:10px;background:#fcfcfd}.v09120-scenario b{font-size:12px;display:block}.v09120-scenario span{color:#667085;font-size:11px;display:block;margin-top:3px}.v09120-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.v09120-filters select{height:36px;border:1px solid #d0d5dd;border-radius:8px;padding:0 8px;background:#fff}.v09120-log{max-height:530px;overflow:auto;border:1px solid #e5e7eb;border-radius:10px}.v09120-log-row{display:grid;grid-template-columns:52px 110px 155px 115px 100px 1fr 70px;gap:8px;align-items:start;padding:9px 10px;border-bottom:1px solid #eef1f5;font-size:11px}.v09120-log-row.header{position:sticky;top:0;z-index:2;background:#f8fafc;font-weight:800;color:#475467}.v09120-log-row:last-child{border-bottom:0}.v09120-log-row .action b{display:block;font-size:11px}.v09120-log-row .action span{display:block;color:#667085;margin-top:2px}.v09120-empty{padding:28px;text-align:center;color:#667085}.v09120-notice{border:1px solid #b2ddff;background:#eff8ff;color:#175cd3;border-radius:12px;padding:12px 14px;font-size:12px}.v09120-running{display:none;align-items:center;gap:8px;color:#344054;font-size:12px}.v09120-running.show{display:flex}.v09120-spin{width:14px;height:14px;border:2px solid #d0d5dd;border-top-color:#344054;border-radius:50%;animation:v09120spin .8s linear infinite}@keyframes v09120spin{to{transform:rotate(360deg)}}
@media(max-width:1200px){.v09120-kpis{grid-template-columns:repeat(3,1fr)}.v09120-clubs{grid-template-columns:1fr}.v09120-scenarios{grid-template-columns:repeat(2,1fr)}.v09120-grid{grid-template-columns:1fr}.v09120-log-row{grid-template-columns:45px 95px 125px 95px 1fr 60px}.v09120-log-row>:nth-child(5){display:none}}
@media(max-width:720px){.v09120-hero{display:block}.v09120-actions{justify-content:flex-start;margin-top:12px}.v09120-kpis{grid-template-columns:repeat(2,1fr)}.v09120-weekstrip{grid-template-columns:repeat(4,1fr)}.v09120-scenarios{grid-template-columns:1fr}.v09120-log-row{grid-template-columns:40px 90px 1fr 55px}.v09120-log-row>:nth-child(3),.v09120-log-row>:nth-child(4),.v09120-log-row>:nth-child(5){display:none}}



/* TACTERO 0.9.16.1 CLEAN RUNTIME THEME */
:root{--v16-green:#80f000;--v16-dark:#07140d;--v16-dark2:#0d2417;--v16-bg:#f4f7f5;--v16-card:#fff;--v16-line:#d9e2dc;--v16-muted:#66766d;--v16-radius:14px}
html,body{background:var(--v16-bg)!important}body{overflow-x:hidden}.app-shell{min-width:0!important}.main-area,.content-page,.content-grid,.app-page{min-width:0!important;max-width:100%!important;box-sizing:border-box}.content-grid>*{min-width:0}.simple-table,.stats-table{max-width:100%}.content-card{box-sizing:border-box}
/* Stable desktop shell */
@media(min-width:901px){body .sidebar.v09160-sidebar,body .sidebar{display:flex!important;visibility:visible!important;opacity:1!important;position:fixed!important;left:0!important;top:0!important;bottom:0!important;width:232px!important;z-index:90!important;transform:none!important}.app-shell{padding-left:232px!important}.main-area{width:100%!important}.topbar{left:232px!important;width:calc(100% - 232px)!important;z-index:80!important}.sidebar+.main-area{margin-left:0!important}}
.sidebar{background:#07140d!important;color:#eef8f1!important}.sidebar .main-nav{overflow-y:auto!important;overflow-x:hidden!important}.sidebar .profile{margin-top:auto!important}.sidebar .profile small{color:#8ff600!important}.sidebar button,.sidebar summary{font-family:inherit!important}
/* Mobile main navigation stays at the top */
@media(max-width:900px){body .sidebar{position:sticky!important;top:0!important;display:block!important;width:100%!important;max-height:none!important;z-index:120!important}.sidebar .brand,.sidebar .profile{display:none!important}.sidebar .main-nav{display:flex!important;gap:6px!important;overflow-x:auto!important;padding:8px!important;white-space:nowrap!important}.sidebar .nav-section-label{display:none!important}.sidebar .nav-group{display:inline-block!important;flex:0 0 auto!important}.sidebar .nav-group>summary,.sidebar .main-nav>button{min-height:40px!important}.app-shell{padding-left:0!important}.topbar{position:sticky!important;top:56px!important;left:0!important;width:100%!important}.main-area{padding-top:0!important}}
/* One deterministic right header */
.top-actions.v09160-top-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:8px!important;flex-wrap:nowrap!important;min-width:max-content}.v09160-top-actions>button,.v09160-top-actions>span,.v09160-more>summary{height:38px!important;display:inline-flex!important;align-items:center!important;border:1px solid #d7e1da!important;border-radius:10px!important;background:#fff!important;color:#07140d!important;padding:0 12px!important;font-weight:700!important;box-sizing:border-box!important}.v09160-online i{width:8px;height:8px;border-radius:50%;background:#66dd00;margin-right:7px}.v09160-more{position:relative}.v09160-more>summary{list-style:none;cursor:pointer}.v09160-more-menu{position:absolute;right:0;top:44px;min-width:190px;padding:8px;border:1px solid var(--v16-line);border-radius:12px;background:#fff;box-shadow:0 16px 40px #0002;z-index:300}.v09160-more-menu button{display:block;width:100%;text-align:left;padding:10px;border:0;background:transparent;border-radius:8px}.v09160-more-menu button:hover{background:#eef6f0}
/* Planner */
/* TACTERO_PLANNER_RESPONSIVE_LAYOUT_V1 */.exercise-row{position:relative}.v09160-ex-remove{position:static!important;grid-column:9/11!important;grid-row:1!important;align-self:stretch!important;width:100%!important;min-height:40px!important;transform:none!important;border:1px solid #efb4b4!important;background:#fff7f7!important;color:#a12020!important;border-radius:9px!important;padding:8px 10px!important;font-weight:700!important;white-space:normal!important;z-index:3}.library-item .add{background:#efffe0!important;border-color:#b5e781!important;color:#183600!important}.plan-panel,.library-panel{min-width:0!important}
@media(max-width:760px){.v09160-ex-remove{grid-column:1/-1!important;grid-row:4!important;min-height:44px!important}}
/* Stats */
#statsPageContent{min-width:0!important}#statsPageContent .content-card{overflow:hidden!important}#statsPageContent table{width:100%!important;max-width:100%!important}#statsPageContent .simple-table,#statsPageContent .table-wrap{overflow-x:auto!important}.stats-tabs,.stats-subtabs{display:flex!important;gap:8px!important;flex-wrap:wrap!important}.stats-tabs button.active,[data-stats-view].active{background:var(--v16-green)!important;color:#07140d!important;border-color:var(--v16-green)!important}
/* Clean Matchday */
.v09160-matchday{display:grid;gap:20px}.v09160-match-selectors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;background:#fff;border:1px solid var(--v16-line);padding:18px;border-radius:var(--v16-radius)}.v09160-match-selectors button{min-height:62px;border:1px solid var(--v16-line);border-radius:12px;background:#fff;padding:10px 14px;display:grid;gap:4px;text-align:center}.v09160-match-selectors button.active{background:#143820;color:#fff;border-color:#2d6d41}.v09160-match-selectors button small{font-size:11px;opacity:.82}.v09160-match-intel{display:flex;justify-content:space-between;gap:18px;align-items:center;background:#fff;border:1px solid var(--v16-line);border-radius:var(--v16-radius);padding:18px 20px}.v09160-match-intel h2{margin:3px 0}.v09160-intel-kpis{display:flex;gap:8px;flex-wrap:wrap}.v09160-intel-kpis span{min-width:110px;padding:10px 14px;background:#f3f7f4;border-radius:10px;display:grid}.v09160-match-tabs{display:flex;gap:4px;background:#fff;border:1px solid var(--v16-line);padding:6px;border-radius:12px;overflow-x:auto}.v09160-match-tabs button{border:0;background:transparent;padding:11px 16px;border-radius:8px;font-weight:800;white-space:nowrap}.v09160-match-tabs button.active{background:#64726b;color:#fff}.v09160-match-tabs button:disabled{opacity:.36}.v09160-match-pane{min-width:0}.v09160-card,.v09160-match-score,.v09160-match-details{background:#fff;border:1px solid var(--v16-line);border-radius:var(--v16-radius);padding:20px}.v09160-match-grid,.v09160-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.v09160-match-score{text-align:center;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px}.v09160-match-score>span,.v09160-match-score>small{grid-column:1/-1}.v09160-match-score>strong{font-size:36px}.v09160-match-details dl{display:grid;grid-template-columns:120px 1fr;gap:8px;margin:0}.v09160-match-details dt{color:var(--v16-muted)}.v09160-match-details dd{margin:0;font-weight:700}.v09160-timeline{display:grid;gap:8px}.v09160-timeline>div{display:flex;gap:12px;padding:9px 0;border-bottom:1px solid #edf1ee}.v09160-plan-summary,.v09160-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.v09160-plan-summary>div,.v09160-review-grid label{background:#f7faf8;padding:14px;border-radius:10px}.v09160-review-grid textarea{width:100%;min-height:100px;box-sizing:border-box}.v09160-card-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.v09160-live-result{display:flex;justify-content:space-between;padding:16px;background:#0b2616;color:#fff;border-radius:12px;margin:12px 0}.v09160-live-result b{font-size:26px}@media(max-width:900px){.v09160-match-selectors,.v09160-match-grid,.v09160-card-grid,.v09160-plan-summary,.v09160-review-grid{grid-template-columns:1fr}.v09160-match-intel{display:grid}.v09160-match-score{grid-template-columns:1fr}}
/* Forum */
#communityPageContent{display:grid!important;grid-template-columns:1fr!important;gap:18px!important}.v09160-forum-hero{background:#06351e;color:#fff;border-radius:18px;padding:30px}.v09160-forum-hero small{color:#91ff31;font-weight:900;letter-spacing:.12em}.v09160-forum-toolbar,.v09160-forum-status,.v09160-topic-list,.v09160-forum-error,.v09160-forum-loading{background:#fff;border:1px solid var(--v16-line);border-radius:14px;padding:18px}.v09160-forum-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.v09160-forum-cats{display:flex;gap:6px;flex-wrap:wrap}.v09160-forum-cats button.active{background:var(--v16-green)}.v09160-forum-toolbar input{flex:1;min-width:220px}.v09160-topic-list{display:grid;gap:8px}.v09160-topic-list article{display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid #eef2ef;padding:14px 4px;cursor:pointer}.v09160-topic-list article h3{margin:4px 0}.v09160-forum-error{border-color:#efc478;background:#fffaf0}.v09160-dialog{border:0;border-radius:16px;padding:0;width:min(760px,94vw);max-height:90vh}.v09160-dialog::backdrop{background:#06130ccb}.v09160-dialog>form,.v09160-dialog>section{padding:22px;display:grid;gap:14px}.v09160-dialog header,.v09160-dialog footer{display:flex;justify-content:space-between;gap:12px;align-items:center}.v09160-dialog label{display:grid;gap:6px}.v09160-dialog input,.v09160-dialog select,.v09160-dialog textarea{width:100%;box-sizing:border-box}.v09160-thread-topic,.v09160-replies article{padding:14px;border:1px solid #e1e8e3;border-radius:10px;margin:8px 0}.v09160-safety-note,.v09160-forum-status{color:#53675b}
/* TACTERO_LAY04_FORUM_MOBILE_FIX_V1
   Mobile Community touch targets.
   No JS/API/data behavior changes. */

/* TACTERO_LAY04_FORUM_ROW_CROSSPLATFORM_V1
   Topic row structure is viewport-independent.
   Prevent Flexbox stretch on desktop and mobile. */
#communityPageContent .v09160-topic-list article{
  align-items:flex-start!important;
}

#communityPageContent .v09160-topic-list article>div{
  min-width:0!important;
  flex:1 1 auto!important;
}

#communityPageContent .v09160-topic-list article>button{
  flex:0 0 auto!important;
  align-self:center!important;
  box-sizing:border-box!important;
}

@media (max-width:640px){
  #communityPageContent .v09160-forum-toolbar button{
    min-width:44px!important;
    min-height:44px!important;
    box-sizing:border-box!important;
  }

  #communityPageContent .v09160-forum-toolbar input{
    min-height:44px!important;
    box-sizing:border-box!important;
  }

  #communityPageContent .v09160-topic-list article>button{
    min-width:44px!important;
    min-height:44px!important;
  }
}

/* Administration & OEFV system: restores the missing v095 visual dependency */
.v095-system-shell,.v09160-system-root{font-family:inherit!important;color:#0a1710!important}.v095-system-shell{display:grid!important;gap:16px!important}.v095-system-tabs{display:flex!important;gap:6px!important;flex-wrap:wrap!important;background:#fff!important;border:1px solid var(--v16-line)!important;border-radius:12px!important;padding:6px!important}.v095-system-tabs button{border:0!important;background:transparent!important;border-radius:8px!important;padding:10px 13px!important;font-weight:800!important}.v095-system-tabs button.active{background:#143820!important;color:#fff!important}.v095-system-pane{display:none!important}.v095-system-pane.active{display:block!important}.v095-grid{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr))!important;gap:14px!important}.v095-card,.v095-kpi,.v095-admin-tile{background:#fff!important;border:1px solid var(--v16-line)!important;border-radius:12px!important;padding:16px!important;box-sizing:border-box!important}.v095-card{grid-column:span 6}.v095-card.span-12{grid-column:1/-1}.v095-kpi{grid-column:span 3}.v095-kpi b,.v095-kpi strong{display:block!important;font-size:22px!important}.v095-eyebrow{color:#49735b!important;font-size:11px!important;font-weight:900!important;letter-spacing:.08em!important}.v095-admin-menu{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important}.v095-admin-tile{text-align:left!important}.v095-form-row,.v095-actions{display:flex!important;gap:10px!important;flex-wrap:wrap!important;align-items:end!important}.v095-system-shell select,.v095-system-shell input,.v095-system-shell textarea{border:1px solid #ccd8d0!important;border-radius:9px!important;padding:9px!important;background:#fff!important}.v095-system-shell button{border:1px solid #cbd7cf!important;border-radius:9px!important;padding:9px 12px!important;background:#fff!important}.v095-system-shell button.primary,.v095-actions .primary{background:var(--v16-green)!important;border-color:var(--v16-green)!important;font-weight:800!important}@media(max-width:900px){.v095-card,.v095-kpi{grid-column:1/-1}.v095-admin-menu{grid-template-columns:1fr}}
/* History */
#v09160History{display:grid;gap:16px}.v09160-history-current{background:#092a18;color:#fff;border-radius:16px;padding:24px}.v09160-history-current>span{color:#8df600;font-weight:900;font-size:11px}.v09160-history-current h2{font-size:30px;margin:5px 0}.v09160-history-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.v09160-history-grid article{background:#fff;border:1px solid var(--v16-line);border-radius:12px;padding:18px}.v09160-history-grid article b{color:#3f6b51}@media(max-width:900px){.v09160-history-grid{grid-template-columns:1fr}}

/* Training Live clean workflow */
.v09160-training-delete{border:1px solid #efb4b4!important;background:#fff7f7!important;color:#a12020!important}.v09160-training-live{display:grid;gap:16px}.v09160-live-hero{display:grid;grid-template-columns:minmax(240px,1fr) auto auto auto;align-items:center;gap:14px;background:#0a2a18;color:#fff;border-radius:16px;padding:20px}.v09160-live-hero select{min-width:220px}.v09160-live-clock{display:grid;text-align:center}.v09160-live-clock b{font-size:30px}.v09160-live-actions{display:flex;gap:8px;flex-wrap:wrap}.v09160-live-before,.v09160-live-plan{background:#fff;border:1px solid var(--v16-line);border-radius:14px;padding:20px}.v09160-live-ex{display:grid;grid-template-columns:110px 1fr auto;gap:14px;align-items:center;padding:14px;border-bottom:1px solid #edf1ee}.v09160-live-ex>img,.v09160-live-ex>.exercise-image{width:100px;max-height:80px;object-fit:cover;border-radius:8px}.v09160-live-ex.done{opacity:.58;background:#f4f8f5}.v09160-attendance{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:55vh;overflow:auto}.v09160-attendance label{display:flex!important;justify-content:space-between!important;align-items:center!important;gap:12px!important;padding:10px!important;border:1px solid var(--v16-line)!important;border-radius:10px!important}.v09160-attendance label.medical{background:#fff9e8!important}.v09160-attendance label>span{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:8px}.v09160-attendance label img{width:34px;height:34px;border-radius:50%;object-fit:cover;grid-row:1/3}.v09160-attendance label small{color:#8b6420}@media(max-width:900px){.v09160-live-hero{grid-template-columns:1fr}.v09160-live-ex{grid-template-columns:1fr}.v09160-attendance{grid-template-columns:1fr}}

/* v0.9.16 consolidated complete Administration/System visual dependency (formerly v095; code is now bundled, file is removed) */
/* TACTERO v0.9.5 · System IA + ÖFB Competition Provider */
.v095-system-shell{display:grid;gap:14px}.v095-system-hero{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:18px;border:1px solid #dfe7df;border-radius:16px;background:linear-gradient(135deg,#fff,#f4faf0);box-shadow:0 5px 18px rgba(18,45,22,.05)}.v095-system-hero h2{margin:2px 0 5px;font-size:22px}.v095-system-hero p{margin:0;color:var(--muted,#69756e)}.v095-eyebrow{font-size:10px;letter-spacing:.75px;text-transform:uppercase;font-weight:900;color:#4e8b25}.v095-provider-health{display:flex;align-items:center;gap:7px;border:1px solid #dce6dc;background:#fff;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:800;white-space:nowrap}.v095-dot{width:8px;height:8px;border-radius:50%;background:#a9b2ac}.v095-dot.ok{background:#72df00;box-shadow:0 0 0 3px rgba(114,223,0,.13)}.v095-dot.warn{background:#f2aa23}.v095-dot.bad{background:#e33c30}.v095-system-tabs{display:flex;gap:7px;flex-wrap:wrap;padding:7px;border:1px solid #dfe7df;border-radius:13px;background:#fff;position:sticky;top:68px;z-index:6}.v095-system-tabs button{border:0;border-radius:9px;background:#f5f7f5;color:#3f4c43;padding:9px 12px;font-weight:800;cursor:pointer}.v095-system-tabs button.active{background:#102218;color:#fff;box-shadow:0 3px 10px rgba(16,34,24,.16)}.v095-system-pane{display:none}.v095-system-pane.active{display:block}.v095-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px}.v095-card{grid-column:span 4;border:1px solid #dfe7df;border-radius:14px;background:#fff;padding:15px;box-shadow:0 2px 10px rgba(20,42,26,.035);min-width:0}.v095-card.span-6{grid-column:span 6}.v095-card.span-8{grid-column:span 8}.v095-card.span-12{grid-column:span 12}.v095-card.soft{background:#f7fbf5}.v095-card.accent{border-color:#b9e18c;background:linear-gradient(135deg,#fbfff8,#f3ffe6)}.v095-card h3{margin:0 0 6px;font-size:15px}.v095-card p{margin:0 0 10px;color:var(--muted,#69756e);font-size:12px;line-height:1.5}.v095-card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.v095-kpi{display:grid;gap:3px}.v095-kpi small{color:var(--muted,#69756e);font-size:10px;text-transform:uppercase;letter-spacing:.55px}.v095-kpi strong{font-size:22px}.v095-kpi span{font-size:10px;color:#68756d}.v095-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.v095-form label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:750;color:#435048;min-width:0}.v095-form label.full{grid-column:1/-1}.v095-form select,.v095-form input{width:100%;min-width:0;border:1px solid #cfd9d1;background:#fff;border-radius:9px;padding:9px 10px;color:#172019}.v095-form select:disabled,.v095-form input:disabled{background:#f2f4f2;color:#8b958f}.v095-help{margin-top:8px;padding:9px 10px;border-radius:9px;background:#f6f8f6;color:#5d6b62;font-size:11px;border:1px solid #e4e9e5}.v095-help.warn{background:#fff8e7;border-color:#f1d59b;color:#765516}.v095-help.ok{background:#f0fbe8;border-color:#c9e7ad;color:#356b1d}.v095-sync-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.v095-sync-item{border:1px solid #e1e7e2;border-radius:10px;padding:10px;background:#fbfcfb}.v095-sync-item small{display:block;color:#718078;margin-bottom:3px}.v095-sync-item strong{font-size:12px}.v095-section-list{display:grid;gap:8px}.v095-section-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 11px;border:1px solid #e1e7e2;border-radius:10px;background:#fff}.v095-section-row div{min-width:0}.v095-section-row strong{display:block;font-size:12px}.v095-section-row small{display:block;color:var(--muted,#69756e);font-size:10px;margin-top:2px}.v095-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:999px;background:#eef3ef;color:#4d5d52;font-size:10px;font-weight:850}.v095-badge.ok{background:#eaf9df;color:#39751f}.v095-badge.warn{background:#fff0c9;color:#7e5e0c}.v095-badge.dark{background:#102218;color:#fff}.v095-sync-result{margin-top:10px;padding:10px;border:1px dashed #c8d4cb;border-radius:10px;background:#fafcfa;font-size:11px;white-space:pre-line}.v095-provider-note{font-size:10px;color:#6a776f;margin-top:7px}.v095-admin-menu{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.v095-admin-tile{border:1px solid #dfe7df;background:#fff;border-radius:13px;padding:14px;text-align:left;cursor:pointer;transition:.15s ease}.v095-admin-tile:hover{transform:translateY(-1px);border-color:#a8d879;background:#fbfff7}.v095-admin-tile b{display:block;margin-bottom:4px}.v095-admin-tile span{display:block;color:var(--muted,#69756e);font-size:10px}.v095-system-subtitle{margin:2px 0 12px;color:var(--muted,#69756e);font-size:12px}.v095-modal{position:fixed;inset:0;z-index:10050;background:rgba(5,14,9,.55);display:none;align-items:center;justify-content:center;padding:18px}.v095-modal.open{display:flex}.v095-modal-card{width:min(760px,96vw);max-height:88vh;overflow:auto;border-radius:16px;background:#fff;border:1px solid #dfe7df;box-shadow:0 24px 80px rgba(0,0,0,.25)}.v095-modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:#0b2416;color:#fff;border-radius:16px 16px 0 0}.v095-modal-head h3{margin:0;font-size:15px}.v095-modal-head button{border:0;background:#fff;color:#111;border-radius:9px;width:36px;height:34px;font-size:18px}.v095-modal-body{padding:15px}.v095-detail-list{display:grid;gap:8px}.v095-detail-row{padding:9px;border:1px solid #e1e7e2;border-radius:9px;background:#fafcfa}.v095-detail-row strong{display:block;font-size:11px}.v095-detail-row code{display:block;white-space:pre-wrap;word-break:break-word;font-size:10px;color:#5a685f;margin-top:4px}.nav-group[data-group="system"] .nav-group-items .v095-nav-section{padding:7px 11px 3px;color:#6f7e74;font-size:8px;text-transform:uppercase;letter-spacing:.7px;font-weight:900;pointer-events:none}.nav-group[data-group="system"] .nav-group-items button[data-v095-system-tab]{font-size:11px}.v095-hidden-general-sync{display:none!important}
@media(max-width:1100px){.v095-card{grid-column:span 6}.v095-card.span-8{grid-column:span 12}.v095-admin-menu{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.v095-system-hero{flex-direction:column}.v095-system-tabs{position:static;overflow-x:auto;flex-wrap:nowrap}.v095-system-tabs button{white-space:nowrap}.v095-grid{grid-template-columns:1fr}.v095-card,.v095-card.span-6,.v095-card.span-8,.v095-card.span-12{grid-column:1}.v095-form{grid-template-columns:1fr}.v095-form label.full{grid-column:1}.v095-sync-grid{grid-template-columns:1fr 1fr}.v095-admin-menu{grid-template-columns:1fr}.v095-provider-health{white-space:normal}.nav-group[data-group="system"] .nav-group-items .v095-nav-section{display:none}}

.v095-system-shell{color:var(--v16-dark)!important}.v095-system-tabs{top:64px!important}.v095-system-tabs button.active{background:#143820!important}.v095-card,.v095-admin-tile{box-sizing:border-box!important}.v095-system-shell button.primary,.v095-card-actions .primary{background:var(--v16-green)!important;color:#0a1a0f!important;border-color:var(--v16-green)!important;font-weight:850!important}

/* v0.9.16 OÖFV authoritative competition form */
.v09160-form-list{display:grid;gap:6px;margin:10px 0 14px}.v09160-form-row{display:grid;grid-template-columns:88px 1fr;gap:10px;padding:8px 10px;background:#f5f8f6;border-radius:8px}.v09160-form-row span{color:#617267;font-size:12px}.v09160-form-row b{font-size:13px}


/* v0.9.16.1 Matchday regression lock: use the complete available content width.
   Older page-grid rules can otherwise make #matchdayPageContent a single narrow grid cell. */
#page-matchday .content-page,
#matchdayPageContent{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
#matchdayPageContent>.v09160-matchday,
.v09160-matchday{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
.v09160-match-selectors,
.v09160-match-intel,
.v09160-match-tabs,
.v09160-match-pane,
.v09160-match-grid,
.v09160-card-grid,
.v09160-card,
.v09160-match-score,
.v09160-match-details{
  min-width:0!important;
  box-sizing:border-box!important;
}
.v09160-match-grid>*,.v09160-card-grid>*{min-width:0!important;overflow-wrap:anywhere}
.v09160-match-details dd,.v09160-match-intel p,.v09160-card p{overflow-wrap:anywhere}
.v09161-sidebar .profile small+small{display:none!important}
@media(min-width:901px){
  #page-matchday .content-page{padding-left:clamp(20px,3vw,46px)!important;padding-right:clamp(20px,3vw,46px)!important}
  .v09160-matchday{grid-template-columns:minmax(0,1fr)!important}
  .v09160-match-grid{grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr)!important}
}

/* ==========================================================
   TACTERO_PACKAGE8A_MOBILE_SHELL_V1
   Mobile is a first-class layout, not a squeezed desktop UI.
   ========================================================== */

@media (max-width:900px){

  html,
  body{
    max-width:100%;
    overflow-x:hidden!important;
  }

  body .app-shell{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    padding-left:0!important;
  }

  body .sidebar{
    position:sticky!important;
    top:0!important;
    left:0!important;
    right:auto!important;
    bottom:auto!important;

    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;

    z-index:1200!important;

    display:block!important;

    overflow:hidden!important;
  }

  body .sidebar .brand,
  body .sidebar .profile{
    display:none!important;
  }

  body .sidebar .main-nav{
    width:100%!important;

    display:flex!important;
    flex-direction:row!important;
    flex-wrap:nowrap!important;

    gap:6px!important;

    padding:7px 8px!important;

    overflow-x:auto!important;
    overflow-y:hidden!important;

    overscroll-behavior-x:contain;

    white-space:nowrap!important;

    scrollbar-width:none!important;

    -webkit-overflow-scrolling:touch;
  }

  body .sidebar .main-nav::-webkit-scrollbar{
    display:none!important;
  }

  body .sidebar .nav-group{
    flex:0 0 auto!important;
    display:block!important;
  }

  body .sidebar .nav-group-items{
    position:static!important;
  }

  body .sidebar .nav-group>summary,
  body .sidebar .main-nav>button,
  body .sidebar .nav-group-items>button{
    flex:0 0 auto!important;

    min-width:max-content!important;
    min-height:42px!important;

    padding:9px 11px!important;

    justify-content:center!important;
  }

  body .main-area{
    width:100%!important;
    min-width:0!important;
    padding-top:0!important;
  }

  body .topbar{
    position:sticky!important;
    top:56px!important;

    left:0!important;
    right:0!important;

    width:100%!important;
    max-width:100%!important;

    height:auto!important;
    min-height:58px!important;

    box-sizing:border-box!important;

    display:flex!important;
    align-items:center!important;
    align-content:center!important;
    justify-content:space-between!important;
    flex-wrap:wrap!important;

    gap:7px 9px!important;

    padding:8px 10px!important;

    z-index:1100!important;

    overflow:visible!important;
  }

  body .topbar>*{
    min-width:0!important;
    max-width:100%!important;
  }

  body .topbar .club-context{
    flex:1 1 180px!important;
    width:auto!important;
    max-width:100%!important;
    min-width:0!important;

    height:auto!important;
  }

  body .topbar .club-context-logo{
    width:31px!important;
    height:36px!important;
    flex-basis:31px!important;
  }

  body .topbar .club-context-copy{
    min-width:0!important;
  }

  body .topbar .club-context-copy strong{
    max-width:100%!important;

    font-size:13px!important;

    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  body .topbar .club-context-copy small{
    margin-top:2px!important;
    font-size:10px!important;
  }

  body .topbar .selectors{
    flex:1 1 100%!important;

    display:flex!important;
    flex-wrap:wrap!important;

    gap:6px!important;

    min-width:0!important;
  }

  body .topbar .selectors select{
    flex:1 1 120px!important;

    width:auto!important;
    min-width:0!important;
    max-width:100%!important;

    min-height:40px!important;
  }

  body .topbar .v0980-role-box{
    flex:0 1 auto!important;
    min-width:0!important;
  }

  /* TACTERO_MOBILE_TOUCH_TARGET_PRIMARY_V2
   * Mobile-only interactive target sizing.
   * Global 38px desktop owners remain unchanged.
   */
  body .topbar #topTeamSwitcher,
  body .topbar #v0980RoleBtn,
  body .topbar #v09160User,
  body .topbar #v09160Feedback,
  body .topbar #v09160Quick{
    min-height:44px!important;
  }

  body .topbar .top-actions,
  body .topbar .v09160-top-actions{
    flex:1 1 100%!important;

    display:flex!important;

    /* TACTERO_MOBILE_HEADER_ACTION_ALIGNMENT_V1
     * Scrollable mobile action rows must start at the
     * visible left edge. flex-end places overflow outside
     * the viewport when children exceed container width.
     */
    justify-content:flex-start!important;
    flex-wrap:nowrap!important;

    gap:6px!important;

    min-width:0!important;
    max-width:100%!important;

    overflow-x:auto!important;
    overflow-y:visible!important;

    padding-bottom:1px!important;

    scrollbar-width:none!important;

    -webkit-overflow-scrolling:touch;
  }

  body .topbar .top-actions::-webkit-scrollbar,
  body .topbar .v09160-top-actions::-webkit-scrollbar{
    display:none!important;
  }

  body .topbar .top-actions>button,
  body .topbar .top-actions>span,
  body .topbar .top-actions>details,
  body .topbar .v09160-top-actions>button,
  body .topbar .v09160-top-actions>span,
  body .topbar .v09160-top-actions>details{
    flex:0 0 auto!important;
    min-height:40px!important;
  }

  body .content-page,
  body .content-grid,
  body .content-card{
    min-width:0!important;
    max-width:100%!important;
  }
}


/* Narrow phone tuning */
@media (max-width:480px){

  body .topbar{
    top:56px!important;
    padding:7px 8px!important;
  }

  body .topbar .club-context{
    flex-basis:100%!important;
  }

  body .topbar .club-context-copy strong{
    font-size:13px!important;
  }

  body .sidebar .main-nav{
    padding-left:6px!important;
    padding-right:6px!important;
  }
}


/* ==========================================================
   TACTERO_PACKAGE8A_MATCH_TABS_MOBILE_V1
   Local tab scrolling is allowed. Whole-page horizontal
   scrolling is not.
   ========================================================== */

@media (max-width:900px){

  #matchdayPageContent .v09160-tabs,
  #matchdayPageContent .v09160-match-tabs,
  #matchdayPageContent .match-tabs,
  #matchdayPageContent [role="tablist"]{
    display:flex!important;

    flex-wrap:nowrap!important;

    gap:6px!important;

    max-width:100%!important;

    overflow-x:auto!important;
    overflow-y:hidden!important;

    scrollbar-width:none!important;

    -webkit-overflow-scrolling:touch;
  }

  #matchdayPageContent .v09160-tabs::-webkit-scrollbar,
  #matchdayPageContent .v09160-match-tabs::-webkit-scrollbar,
  #matchdayPageContent .match-tabs::-webkit-scrollbar,
  #matchdayPageContent [role="tablist"]::-webkit-scrollbar{
    display:none!important;
  }

  #matchdayPageContent [data-v09160-match-tab]{
    flex:0 0 auto!important;

    min-width:max-content!important;
    min-height:42px!important;

    white-space:nowrap!important;
  }

  #matchdayPageContent button,
  #page-live button{
    min-height:42px;
  }
}


/* ==========================================================
   TACTERO_PACKAGE8A_PLAYER_STATS_MOBILE_V1
   ========================================================== */

@media (max-width:650px){

  .player-stats-selector-card,
  .player-stats-wide-card{
    padding:14px!important;
  }

  .player-stats-selector{
    display:grid!important;
    grid-template-columns:1fr!important;

    gap:10px!important;
  }

  .player-stats-selector .stats-player-select{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;

    min-height:44px!important;

    font-size:16px!important;
  }

  .player-profile-two-col,
  .player-stat-metric-grid,
  .player-stats-mini-kpis{
    grid-template-columns:1fr!important;
  }

  .player-stat-metric-grid .check-item{
    min-height:48px!important;
  }

  .player-stats-card-head{
    align-items:flex-start!important;
    flex-wrap:wrap!important;
  }
}


/* ==========================================================
   TACTERO_PACKAGE8B_MATCH_MOBILE_V1
   ========================================================== */

.v8b-keynotes{
  display:grid;
  gap:12px;
  margin-bottom:14px;
}

.v8b-keynote-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}

.v8b-keynote{
  min-height:58px;
  padding:11px 12px;

  display:flex;
  align-items:center;

  border:1px solid #dfe7df;
  border-radius:11px;

  background:#f8fbf7;

  font-size:12px;
  font-weight:800;

  color:#24382b;
}

.v8b-source{
  display:inline-flex;
  align-items:center;

  padding:5px 9px;

  border-radius:999px;

  background:#e9ffd4;
  color:#397500;

  font-size:10px;
  font-weight:900;
}

.v8b-empty{
  border:1px dashed #ccd7cf;

  border-radius:10px;

  padding:14px;

  background:#f8faf8;

  color:#718078;

  font-size:11px;
}

.v8b-lineup-source{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;

  margin-bottom:8px;

  padding:9px 11px;

  border:1px solid #dce7de;
  border-radius:10px;

  background:#f7fbf7;
}

.v8b-lineup-source strong{
  color:#214b30;
  font-size:11px;
}

.v8b-lineup-source span{
  color:#6a776f;
  font-size:10px;
  text-align:right;
}


@media (max-width:900px){

  .v8b-keynote-grid{
    grid-template-columns:
      repeat(2,minmax(0,1fr));
  }

  .v8b-lineup-source{
    align-items:flex-start;
    flex-direction:column;
  }

  .v8b-lineup-source span{
    text-align:left;
  }


  #matchdayPageContent .v09160-card{
    min-width:0!important;
  }


  #livePageContent{
    min-width:0!important;
    overflow-x:hidden!important;
  }


  #livePageContent select,
  #livePageContent input,
  #livePageContent textarea{
    max-width:100%!important;
    box-sizing:border-box!important;
  }


  #livePageContent textarea{
    min-height:110px!important;
    font-size:16px!important;
  }


  #livePageContent button{
    min-height:44px!important;
  }


  #livePageContent .formation-board,
  #livePageContent .tactic-board,
  #livePageContent .football-field,
  #livePageContent .pitch{
    width:100%!important;
    max-width:100%!important;

    min-width:0!important;

    box-sizing:border-box!important;

    overflow:hidden!important;
  }


  #livePageContent .player-chip,
  #livePageContent .lineup-player,
  #livePageContent .formation-player{
    max-width:92px!important;

    font-size:10px!important;

    line-height:1.2!important;

    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
}


@media (max-width:520px){

  .v8b-keynote-grid{
    grid-template-columns:1fr;
  }

  .v8b-keynote{
    min-height:48px;
  }
}


/* ==========================================================
   TACTERO_PACKAGE8B1_OPPONENT_UI_V1
   ========================================================== */

.v8b1-opponent-kpis{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;

  margin:10px 0;
}

.v8b1-opponent-kpis>div{
  padding:10px;

  border:1px solid #dfe7df;
  border-radius:10px;

  background:#f8fbf8;

  display:flex;
  flex-direction:column;
  gap:3px;
}

.v8b1-opponent-kpis small{
  color:#768077;

  font-size:9px;
  font-weight:800;

  text-transform:uppercase;
}

.v8b1-opponent-kpis strong{
  color:#173c26;

  font-size:17px;
}

.v8b1-source-unknown{
  display:inline-flex;
  align-items:center;

  padding:5px 8px;

  border-radius:999px;

  background:#f2f4f2;

  color:#6f7671;

  font-size:10px;
  font-weight:800;
}

.v8b1-source-note{
  color:#66736b;

  font-size:10px;
}


@media(max-width:520px){

  .v8b1-opponent-kpis{
    grid-template-columns:
      repeat(3,minmax(0,1fr));

    gap:5px;
  }

  .v8b1-opponent-kpis>div{
    padding:8px 6px;
  }

  .v8b1-opponent-kpis strong{
    font-size:15px;
  }
}


/* ==========================================================
   TACTERO_PACKAGE8C_MATCH_UI_V1
   ========================================================== */

.v8c-empty{
  padding:13px;

  border:1px dashed #ccd7cf;
  border-radius:10px;

  background:#f8faf8;

  color:#6e7972;

  font-size:11px;
}

.v8c-data-note{
  margin-top:10px;

  padding:9px 10px;

  border-radius:9px;

  background:#f5f7f5;

  color:#727b75;

  font-size:10px;
  line-height:1.45;
}


/* Intelligence */

.v8c-ai-badge,
.v8c-plan-badge{
  display:inline-flex;
  align-items:center;

  padding:5px 9px;

  border-radius:999px;

  background:#eaffd7;

  color:#387400;

  font-size:10px;
  font-weight:900;
}

.v8c-intelligence-grid{
  display:grid;

  grid-template-columns:
    repeat(2,minmax(0,1fr));

  gap:9px;
}

.v8c-intel-block{
  min-width:0;

  padding:12px;

  border:1px solid #e0e7e1;
  border-radius:11px;

  background:#fafcfa;
}

.v8c-intel-block>strong{
  display:block;

  margin-bottom:7px;

  color:#23432e;

  font-size:11px;
}

.v8c-intel-block ul{
  margin:0;

  padding-left:17px;
}

.v8c-intel-block li{
  margin:5px 0;

  color:#47554c;

  font-size:11px;
  line-height:1.42;
}

.v8c-intel-block.recommendation{
  background:#f6ffed;

  border-color:#d6e9c5;
}


/* Comparison */

.v8c-comparison-grid{
  display:grid;

  grid-template-columns:
    repeat(2,minmax(0,1fr));

  gap:8px;
}

.v8c-comparison-grid>div{
  min-width:0;

  padding:10px;

  border:1px solid #e1e7e2;
  border-radius:10px;

  background:#fafcfa;
}

.v8c-comparison-grid small{
  display:block;

  margin-bottom:5px;

  color:#758078;

  font-size:9px;
  font-weight:900;

  text-transform:uppercase;
}

.v8c-comparison-grid strong{
  display:block;

  color:#183d27;

  margin-bottom:5px;
}

.v8c-player-pill{
  display:inline-flex;

  margin:2px 3px 2px 0;

  padding:4px 7px;

  border-radius:999px;

  background:#edf5ed;

  color:#31503b;

  font-size:10px;
  font-weight:700;
}

.v8c-none{
  color:#8a938d;

  font-size:10px;
}


/* Lineup editor */

.v8c-formation-row{
  display:flex;

  align-items:flex-end;
  justify-content:space-between;

  gap:12px;

  margin-bottom:12px;
}

.v8c-formation-row label{
  flex:1 1 220px;
}

.v8c-formation-row input{
  width:100%;

  min-height:42px;

  box-sizing:border-box;
}

.v8c-counts{
  display:flex;
  gap:7px;
}

.v8c-counts span{
  display:flex;
  gap:4px;

  padding:8px 10px;

  border-radius:9px;

  background:#f2f6f2;

  color:#5b695f;

  font-size:10px;
}

.v8c-counts strong{
  color:#153d25;
}

.v8c-lineup-list{
  display:grid;

  grid-template-columns:
    repeat(2,minmax(0,1fr));

  gap:7px;
}

.v8c-lineup-row{
  display:grid;

  grid-template-columns:
    34px minmax(0,1fr) 130px;

  align-items:center;

  gap:8px;

  min-width:0;

  padding:8px;

  border:1px solid #e0e6e1;
  border-radius:10px;

  background:#fbfcfb;
}

.v8c-shirt{
  display:flex;
  align-items:center;
  justify-content:center;

  width:32px;
  height:32px;

  border-radius:8px;

  background:#153f28;

  color:#fff;

  font-size:11px;
  font-weight:900;
}

.v8c-player{
  min-width:0;
}

.v8c-player strong{
  display:block;

  overflow:hidden;

  white-space:nowrap;
  text-overflow:ellipsis;

  color:#203c2a;

  font-size:11px;
}

.v8c-player small{
  display:block;

  margin-top:2px;

  color:#778279;

  font-size:9px;
}

.v8c-lineup-row select{
  width:100%;

  min-width:0;
  min-height:40px;
}

.v8c-lineup-actions{
  display:flex;

  justify-content:flex-end;

  margin-top:12px;
}


/* Official lineup */

.v8c-official-grid{
  display:grid;

  grid-template-columns:
    repeat(2,minmax(0,1fr));

  gap:10px;
}

.v8c-official-grid>div{
  display:flex;
  flex-direction:column;

  gap:5px;

  padding:10px;

  border:1px solid #e0e7e1;
  border-radius:10px;
}

.v8c-official-grid span{
  font-size:10px;
}


/* Mobile */

@media(max-width:700px){

  .v8c-intelligence-grid,
  .v8c-comparison-grid,
  .v8c-lineup-list,
  .v8c-official-grid{
    grid-template-columns:1fr;
  }

  .v8c-formation-row{
    align-items:stretch;
    flex-direction:column;
  }

  .v8c-counts{
    width:100%;
  }

  .v8c-counts span{
    flex:1 1 0;

    justify-content:center;
  }

  .v8c-lineup-row{
    grid-template-columns:
      34px minmax(0,1fr);
  }

  .v8c-lineup-row select{
    grid-column:
      1 / -1;

    min-height:44px;

    font-size:16px;
  }

  .v8c-lineup-actions{
    position:sticky;

    bottom:8px;

    z-index:20;

    padding-top:8px;

    background:
      linear-gradient(
        to bottom,
        rgba(255,255,255,0),
        #fff 28%
      );
  }

  .v8c-lineup-actions button{
    width:100%;

    min-height:46px;
  }

  .v8c-intel-block li{
    font-size:12px;
  }
}


/* ==========================================================
   TACTERO_PACKAGE8E_MATCHPLAN_UI_V1
   ========================================================== */

.v8e-plan-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.v8e-plan-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.v8e-plan-field>span{
  color:#1e452c;
  font-size:11px;
  font-weight:900;
}

.v8e-plan-field textarea{
  width:100%;
  min-height:110px;
  box-sizing:border-box;
  resize:vertical;
  padding:11px 12px;
  border:1px solid #d9e2db;
  border-radius:10px;
  background:#fff;
  font:inherit;
  font-size:12px;
  line-height:1.45;
}

.v8e-plan-field textarea:focus{
  outline:2px solid #8fe600;
  outline-offset:1px;
  border-color:#75bf00;
}

.v8e-plan-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}

.v8e-ai-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.v8e-ai-box{
  padding:12px;
  border:1px solid #dfe7e1;
  border-radius:11px;
  background:#fafcfa;
}

.v8e-ai-box>strong{
  display:block;
  margin-bottom:8px;
  color:#19412a;
  font-size:11px;
}

.v8e-ai-box ul{
  margin:0;
  padding-left:18px;
}

.v8e-ai-box li{
  margin:6px 0;
  color:#46554c;
  font-size:11px;
  line-height:1.45;
}

.v8e-meeting{
  margin-top:12px;
  padding:14px;
  border:1px solid #cae4b5;
  border-radius:12px;
  background:#f7ffef;
}

.v8e-meeting-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-bottom:8px;
}

.v8e-meeting-head small{
  display:block;
  color:#65a31b;
  font-size:9px;
  font-weight:900;
}

.v8e-meeting-head h3{
  margin:2px 0 0;
}

.v8e-meeting-bullets{
  margin:0;
  padding-left:20px;
}

.v8e-meeting-bullets li{
  margin:7px 0;
  color:#24482d;
  font-size:12px;
  font-weight:650;
  line-height:1.4;
}

@media(max-width:700px){

  .v8e-plan-grid,
  .v8e-ai-grid{
    grid-template-columns:1fr;
  }

  .v8e-plan-field textarea{
    min-height:125px;
    font-size:16px;
  }

  .v8e-plan-actions{
    flex-direction:column;
  }

  .v8e-plan-actions button{
    width:100%;
    min-height:46px;
  }

  .v8e-meeting-head{
    align-items:flex-start;
  }

  .v8e-meeting-bullets li{
    font-size:13px;
  }
}



/* ==========================================================
   TACTERO_PACKAGE8F2C_MOBILE_BOTTOM_NAV_V1
   Mobile bottom navigation + iPhone safe areas
   ========================================================== */


.tactero-mobile-bottom-nav,
.tactero-mobile-more-backdrop{
  display:none;
}


@media (max-width:900px){

  /*
   * Old desktop/sidebar navigation is not the mobile
   * navigation anymore.
   */
  body .sidebar,
  body .v09161-sidebar{
    display:none!important;
  }


  body .app-shell{
    display:block!important;

    width:100%!important;
    min-width:0!important;

    padding:0!important;
  }


  body .main-area{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;

    margin:0!important;

    padding-bottom:
      calc(
        78px +
        env(safe-area-inset-bottom,0px)
      )!important;
  }


  /*
   * iPhone / Dynamic Island / standalone PWA safe area.
   */
  body .topbar{
    box-sizing:border-box!important;

    padding-top:
      max(
        8px,
        env(safe-area-inset-top,0px)
      )!important;
  }


  /*
   * Mobile header remains contextual, but not a navigation bar.
   */
  body .topbar{
    height:auto!important;
    min-height:58px!important;

    display:flex!important;
    flex-wrap:wrap!important;

    gap:7px!important;

    padding-left:10px!important;
    padding-right:10px!important;
    padding-bottom:8px!important;

    overflow:hidden!important;
  }


  body .topbar .club-context{
    flex:1 1 auto!important;

    min-width:0!important;
    max-width:100%!important;
  }


  body .topbar .club-context-copy{
    min-width:0!important;
  }


  body .topbar .club-context-copy strong{
    max-width:100%!important;

    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }


  body .topbar .club-context-copy small{
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }


  /*
   * Main bottom tab bar.
   */
  .tactero-mobile-bottom-nav{
    position:fixed;

    left:0;
    right:0;
    bottom:0;

    z-index:9000;

    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr));

    align-items:stretch;

    min-height:64px;

    padding:
      6px
      6px
      max(
        6px,
        env(safe-area-inset-bottom,0px)
      );

    box-sizing:border-box;

    border-top:1px solid #dce5df;

    background:
      rgba(255,255,255,.97);

    box-shadow:
      0 -8px 28px rgba(8,22,13,.10);

    -webkit-backdrop-filter:
      blur(14px);

    backdrop-filter:
      blur(14px);
  }


  .tactero-mobile-tab{
    appearance:none;

    border:0;
    background:transparent;

    min-width:0;
    min-height:52px;

    padding:5px 2px;

    border-radius:11px;

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;

    gap:2px;

    color:#68756e;

    font:inherit;

    cursor:pointer;

    touch-action:manipulation;
  }


  .tactero-mobile-tab-icon{
    display:flex;

    height:22px;

    align-items:center;
    justify-content:center;

    font-size:19px;
    line-height:1;
  }


  .tactero-mobile-tab-label{
    width:100%;

    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;

    text-align:center;

    font-size:9px;
    line-height:1.15;
    font-weight:800;
  }


  .tactero-mobile-tab.active{
    background:#efffdc;

    color:#244f10;
  }


  .tactero-mobile-tab.active
  .tactero-mobile-tab-icon{
    color:#55af00;
  }


  /*
   * "Mehr" bottom sheet.
   */
  .tactero-mobile-more-backdrop{
    position:fixed;

    inset:0;

    z-index:8999;

    display:none;

    align-items:flex-end;

    background:rgba(6,17,10,.45);

    padding-top:
      env(safe-area-inset-top,0px);

    box-sizing:border-box;
  }


  .tactero-mobile-more-backdrop.open{
    display:flex!important;
  }


  .tactero-mobile-more-sheet{
    width:100%;

    max-height:
      min(
        78vh,
        720px
      );

    display:flex;
    flex-direction:column;

    border-radius:
      20px 20px 0 0;

    background:#fff;

    box-shadow:
      0 -20px 60px rgba(0,0,0,.22);

    padding-bottom:
      calc(
        68px +
        env(safe-area-inset-bottom,0px)
      );

    overflow:hidden;
  }


  .tactero-mobile-more-head{
    display:flex;

    justify-content:space-between;
    align-items:center;

    gap:12px;

    padding:16px 16px 12px;

    border-bottom:
      1px solid #e4eae6;
  }


  .tactero-mobile-more-head small{
    display:block;

    color:#5b8d32;

    font-size:9px;
    font-weight:900;

    letter-spacing:.11em;
  }


  .tactero-mobile-more-head h2{
    margin:2px 0 0;

    font-size:18px;
  }


  .tactero-mobile-more-close{
    width:42px;
    height:42px;

    flex:0 0 42px;

    border:1px solid #dce5df;
    border-radius:12px;

    background:#fff;

    font-size:24px;

    touch-action:manipulation;
  }


  .tactero-mobile-more-body{
    flex:1;

    overflow-y:auto;

    padding:12px 14px 20px;

    -webkit-overflow-scrolling:touch;
  }


  .tactero-mobile-more-section{
    margin-bottom:18px;
  }


  .tactero-mobile-more-section h3{
    margin:
      0 0 7px;

    color:#718078;

    font-size:10px;
    font-weight:900;

    letter-spacing:.08em;
    text-transform:uppercase;
  }


  .tactero-mobile-more-grid{
    display:grid;

    grid-template-columns:
      repeat(2,minmax(0,1fr));

    gap:8px;
  }


  .tactero-mobile-more-item{
    min-width:0;
    min-height:54px;

    display:flex;

    align-items:center;

    gap:9px;

    padding:10px;

    border:
      1px solid #dfe7e1;

    border-radius:12px;

    background:#fff;

    text-align:left;

    color:#172219;

    font:inherit;

    font-size:11px;
    font-weight:750;

    touch-action:manipulation;
  }


  .tactero-mobile-more-icon{
    width:28px;
    height:28px;

    flex:0 0 28px;

    display:grid;
    place-items:center;

    border-radius:8px;

    background:#f1f6f2;

    font-size:15px;
  }


  .tactero-mobile-more-empty{
    padding:30px 12px;

    text-align:center;

    color:#728078;
  }


  body.tactero-mobile-more-open{
    overflow:hidden!important;
  }


  /*
   * Generic mobile content safety.
   */
  html,
  body{
    max-width:100%!important;

    overflow-x:hidden!important;
  }


  body .content-page,
  body .content-grid,
  body .content-card,
  body .app-page{
    max-width:100%!important;
    min-width:0!important;

    box-sizing:border-box!important;
  }


  body .content-grid{
    grid-template-columns:
      minmax(0,1fr)!important;
  }


  body .content-grid >
  [class*="span-"]{
    grid-column:1/-1!important;

    width:100%!important;
    max-width:100%!important;
    min-width:0!important;

    box-sizing:border-box!important;
  }

}


@media (max-width:560px){

  .tactero-mobile-more-grid{
    grid-template-columns:
      repeat(2,minmax(0,1fr));
  }


  body .content-page{
    padding-left:10px!important;
    padding-right:10px!important;
  }


  body .content-card{
    padding:13px!important;
  }


  /*
   * Prevent iOS focus zoom on form controls.
   */
  body input,
  body select,
  body textarea{
    font-size:16px!important;
  }

}


@media (min-width:901px){

  /*
   * Desktop contract:
   * absolutely no mobile navigation.
   */
  .tactero-mobile-bottom-nav,
  .tactero-mobile-more-backdrop{
    display:none!important;
  }

}



/* ==========================================================
   TACTERO_PACKAGE8F2D_MOBILE_MATCH_WORKSPACE_V1

   Mobile-only Matchday / Matchplan usability.
   No match, save, AI, lineup or routing logic is changed.
   ========================================================== */

@media (max-width:900px){

  #page-matchday,
  #page-matchday .content-page,
  #matchdayPageContent,
  #matchdayPageContent > .v09160-matchday{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }


  #page-matchday .content-page{
    padding-left:10px!important;
    padding-right:10px!important;
    padding-bottom:
      calc(
        88px +
        env(safe-area-inset-bottom,0px)
      )!important;
  }


  /*
   * Match selector:
   * three match slots remain available, but may be scrolled
   * horizontally instead of shrinking unreadably.
   */
  #matchdayPageContent .v09160-match-selectors{
    display:grid!important;

    width:100%!important;
    min-width:0!important;

    gap:6px!important;

    overflow-x:visible!important;
    overflow-y:hidden!important;

    padding-bottom:3px!important;

    scrollbar-width:none!important;
    -webkit-overflow-scrolling:touch!important;
  
    grid-template-columns:repeat(3,minmax(0,1fr))!important;}

  #matchdayPageContent
  .v09160-match-selectors::-webkit-scrollbar{
    display:none!important;
  }

  #matchdayPageContent
  .v09160-match-selectors > button{
    flex:initial!important;

    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    min-height:48px!important;

    padding:5px 6px!important;

    box-sizing:border-box!important;

    text-align:center!important;
    justify-items:center!important;
    align-content:center!important;

    touch-action:manipulation!important;
  }

  #matchdayPageContent
  .v09160-match-selectors > button small{
    display:block!important;

    max-width:100%!important;

    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }


  /*
   * Match context
   */
  #matchdayPageContent .v09160-match-intel{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;

    gap:12px!important;

    width:100%!important;
    min-width:0!important;

    padding:14px!important;
  }

  #matchdayPageContent .v09160-match-intel > *{
    min-width:0!important;
  }

  #matchdayPageContent .v09160-match-intel h2,
  #matchdayPageContent .v09160-match-intel p{
    overflow-wrap:anywhere!important;
  }

  #matchdayPageContent .v09160-intel-kpis{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;

    width:100%!important;

    gap:6px!important;
  }

  #matchdayPageContent .v09160-intel-kpis > span{
    min-width:0!important;

    padding:8px!important;

    box-sizing:border-box!important;
  }

  #matchdayPageContent .v09160-intel-kpis b{
    overflow-wrap:anywhere!important;
  }


  /*
   * Match workspace tabs.
   */
  #matchdayPageContent .v09160-match-tabs{
    display:flex!important;
    flex-wrap:nowrap!important;

    width:100%!important;
    max-width:100%!important;
    min-width:0!important;

    overflow-x:auto!important;
    overflow-y:hidden!important;

    gap:4px!important;

    scrollbar-width:none!important;
    -webkit-overflow-scrolling:touch!important;
  }

  #matchdayPageContent
  .v09160-match-tabs::-webkit-scrollbar{
    display:none!important;
  }

  #matchdayPageContent
  .v09160-match-tabs > button{
    flex:0 0 auto!important;

    min-height:42px!important;

    white-space:nowrap!important;

    padding:9px 12px!important;

    touch-action:manipulation!important;
  }


  /*
   * Every pane must be allowed to shrink.
   */
  #matchdayPageContent .v09160-match-pane,
  #matchdayPageContent .v09160-card,
  #matchdayPageContent .v09160-match-grid,
  #matchdayPageContent .v09160-card-grid,
  #matchdayPageContent .v09160-plan-summary,
  #matchdayPageContent .v09160-review-grid{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;

    box-sizing:border-box!important;
  }

  #matchdayPageContent .v09160-match-grid,
  #matchdayPageContent .v09160-card-grid,
  #matchdayPageContent .v09160-plan-summary,
  #matchdayPageContent .v09160-review-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }


  /*
   * Existing 8E Matchplan controls.
   * Attribute targeting deliberately avoids coupling this
   * package to internal rendering implementation.
   */
  #matchdayPageContent [data-v8e-plan]{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;

    box-sizing:border-box!important;

    font-size:16px!important;
  }

  #matchdayPageContent textarea[data-v8e-plan]{
    min-height:104px!important;

    resize:vertical!important;

    line-height:1.42!important;
  }

  #matchdayPageContent input[data-v8e-plan],
  #matchdayPageContent select[data-v8e-plan]{
    min-height:44px!important;
  }


  /*
   * Matchplan action buttons.
   */
  #matchdayPageContent #v8eSaveAndReview,
  #matchdayPageContent #v8eOpenLineup{
    width:100%!important;

    min-width:0!important;
    min-height:48px!important;

    box-sizing:border-box!important;

    margin-top:7px!important;

    white-space:normal!important;

    touch-action:manipulation!important;
  }


  /*
   * Generic Matchplan forms/cards.
   */
  #matchdayPageContent label{
    min-width:0!important;
  }

  #matchdayPageContent input,
  #matchdayPageContent select,
  #matchdayPageContent textarea{
    max-width:100%!important;

    box-sizing:border-box!important;
  }

  #matchdayPageContent textarea{
    font-size:16px!important;
  }

  #matchdayPageContent .module-actions,
  #matchdayPageContent .v09160-card-head{
    flex-wrap:wrap!important;

    gap:8px!important;
  }


  /*
   * Lineup editor / player controls:
   * keep every existing 8C component inside the viewport.
   */
  #matchdayPageContent
  [class*="lineup"]{
    max-width:100%!important;
    min-width:0!important;

    box-sizing:border-box!important;
  }

  #matchdayPageContent
  [class*="lineup"][class*="grid"]{
    grid-template-columns:minmax(0,1fr)!important;
  }

  #matchdayPageContent
  [class*="lineup"] button{
    min-height:42px;

    touch-action:manipulation;
  }


  /*
   * Tables stay usable without widening the full document.
   */
  #matchdayPageContent .table-scroll,
  #matchdayPageContent .league-table-wrap{
    width:100%!important;
    max-width:100%!important;

    overflow-x:auto!important;

    -webkit-overflow-scrolling:touch!important;
  }

}


@media (max-width:560px){

  #matchdayPageContent .v09160-card{
    padding:13px!important;
  }

  #matchdayPageContent .v09160-match-intel{
    padding:12px!important;
  }

  #matchdayPageContent .v09160-intel-kpis{
    grid-template-columns:minmax(0,1fr)!important;
  }

  #matchdayPageContent
  .v09160-match-selectors > button{
    flex-basis:auto!important;
  }

  #matchdayPageContent .v09160-card-head{
    align-items:stretch!important;
  }

  #matchdayPageContent
  .v09160-card-head > button{
    width:100%!important;
  }

}



/* ==========================================================
   TACTERO_PACKAGE8F2E2_MATCHDAY_EVENTS_UI_V1
   ========================================================== */

.v8f2e2-official-report{
  display:grid;
  gap:18px;
}

.v8f2e2-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;

  gap:12px;
}

.v8f2e2-head small{
  color:#65736a;

  font-size:9px;
  font-weight:900;

  letter-spacing:.08em;
}

.v8f2e2-head h3{
  margin:3px 0 0;
}

.v8f2e2-head > span{
  padding:5px 9px;

  border-radius:999px;

  background:#edf7e7;

  color:#376d20;

  font-size:10px;
  font-weight:850;

  white-space:nowrap;
}

.v8f2e2-scorers,
.v8f2e2-columns{
  display:grid;

  grid-template-columns:
    repeat(2,minmax(0,1fr));

  gap:10px;
}

.v8f2e2-scorers > section,
.v8f2e2-columns > section{
  min-width:0;

  padding:12px;

  border:
    1px solid #dfe7e1;

  border-radius:11px;

  background:#fafcfa;
}

.v8f2e2-scorers small{
  color:#77837b;

  font-size:9px;
  font-weight:850;
}

.v8f2e2-scorers h4{
  margin:3px 0 9px;

  overflow-wrap:anywhere;
}

.v8f2e2-scorer-list{
  list-style:none;

  margin:0;
  padding:0;

  display:grid;

  gap:5px;
}

.v8f2e2-scorer-list li{
  display:flex;

  justify-content:space-between;

  gap:8px;

  padding:6px 0;

  border-bottom:
    1px solid #e8ede9;
}

.v8f2e2-scorer-list li:last-child{
  border-bottom:0;
}

.v8f2e2-scorer-list span{
  color:#67736b;

  white-space:nowrap;
}

.v8f2e2-list{
  display:grid;

  gap:2px;
}

.v8f2e2-list > div{
  display:grid;

  grid-template-columns:
    42px minmax(0,1fr);

  gap:4px 8px;

  padding:7px 0;

  border-bottom:
    1px solid #e7ece8;
}

.v8f2e2-list > div:last-child{
  border-bottom:0;
}

.v8f2e2-list b{
  grid-row:
    1 / span 2;
}

.v8f2e2-list small{
  color:#6c786f;
}

.v8f2e2-timeline{
  display:grid;

  border:
    1px solid #dfe7e1;

  border-radius:11px;

  overflow:hidden;
}

.v8f2e2-event{
  display:grid;

  grid-template-columns:
    48px minmax(0,1fr);

  gap:10px;

  padding:9px 11px;

  border-bottom:
    1px solid #e8ede9;
}

.v8f2e2-event:last-child{
  border-bottom:0;
}

.v8f2e2-minute{
  font-size:11px;
  font-weight:850;

  color:#59665e;
}

.v8f2e2-event > div{
  min-width:0;

  display:grid;

  gap:2px;
}

.v8f2e2-event span{
  overflow-wrap:anywhere;
}

.v8f2e2-event > div > span{
  color:#69756d;

  font-size:10px;
}

.v8f2e2-empty{
  margin:0;

  color:#7b867f;

  font-size:11px;
}

.v8f2e2-source{
  color:#758078;
}


@media (max-width:560px){

  .v8f2e2-scorers,
  .v8f2e2-columns{
    grid-template-columns:
      minmax(0,1fr);
  }

  .v8f2e2-event{
    grid-template-columns:
      39px minmax(0,1fr);

    padding:
      8px;
  }

  .v8f2e2-head{
    flex-wrap:wrap;
  }

}



/* ==========================================================
   TACTERO_PACKAGE8F2F_LIVE_MOBILE_UI_V1

   Match Live + Training Live mobile consolidation.
   Business logic intentionally unchanged.
   ========================================================== */


.v8f2f-match-live{
  min-width:0;
}

.v8f2f-live-head{
  align-items:flex-start;
}

.v8f2f-live-head small{
  color:#66736b;

  font-size:9px;
  font-weight:900;

  letter-spacing:.08em;
}

.v8f2f-lineup-btn{
  min-height:42px;

  white-space:nowrap;
}

.v8f2f-scoreboard{
  display:grid;

  grid-template-columns:
    minmax(0,1fr)
    auto
    minmax(0,1fr);

  gap:16px;

  align-items:center;

  margin-top:14px;

  padding:18px;

  border-radius:13px;

  background:#082f1c;

  color:#fff;
}

.v8f2f-team{
  min-width:0;

  display:grid;

  gap:4px;
}

.v8f2f-team.right{
  text-align:right;
}

.v8f2f-team small{
  opacity:.65;

  font-size:9px;
  font-weight:850;
}

.v8f2f-team strong{
  overflow-wrap:anywhere;

  font-size:16px;
}

.v8f2f-score{
  display:grid;

  place-items:center;

  min-width:100px;

  text-align:center;
}

.v8f2f-score b{
  font-size:30px;
  line-height:1.05;
}

.v8f2f-score span{
  margin-top:4px;

  font-size:10px;
}

.v8f2f-score small{
  margin-top:6px;

  opacity:.8;

  font-size:9px;
}

.v8f2f-scorer-summary{
  display:grid;

  grid-template-columns:
    repeat(2,minmax(0,1fr));

  gap:9px;

  margin-top:10px;
}

.v8f2f-scorer-summary > div{
  min-width:0;

  display:flex;
  flex-wrap:wrap;

  gap:5px;

  padding:9px 11px;

  border:
    1px solid #dfe7e1;

  border-radius:10px;

  background:#fafcfa;
}

.v8f2f-scorer-summary small{
  width:100%;

  color:#6d7971;

  font-size:9px;
  font-weight:850;
}

.v8f2f-scorer-summary span{
  font-size:10px;
  font-weight:700;
}

.v8f2f-live-events{
  margin-top:16px;
}

.v8f2f-section-head{
  display:flex;

  align-items:center;
  justify-content:space-between;

  gap:10px;

  margin-bottom:8px;
}

.v8f2f-section-head h4{
  margin:0;
}

.v8f2f-section-head > span{
  padding:4px 8px;

  border-radius:999px;

  background:#edf7e7;

  color:#376d20;

  font-size:9px;
  font-weight:850;
}

.v8f2f-live-event-list{
  display:grid;

  border:
    1px solid #dfe7e1;

  border-radius:11px;

  overflow:hidden;
}

.v8f2f-live-event{
  display:grid;

  grid-template-columns:
    46px 28px minmax(0,1fr);

  gap:8px;

  align-items:center;

  min-width:0;

  padding:9px 11px;

  border-bottom:
    1px solid #e7ece8;
}

.v8f2f-live-event:last-child{
  border-bottom:0;
}

.v8f2f-live-minute{
  color:#59665e;

  font-size:11px;
  font-weight:850;
}

.v8f2f-live-icon{
  width:28px;
  height:28px;

  display:grid;
  place-items:center;

  border-radius:8px;

  background:#eff4f0;
}

.v8f2f-live-event > div{
  min-width:0;

  display:grid;

  gap:2px;
}

.v8f2f-live-event > div > span{
  color:#6b776f;

  font-size:10px;

  overflow-wrap:anywhere;
}

.v8f2f-live-empty{
  margin:0;

  padding:12px;

  color:#738078;
}


/* ==========================================================
   MOBILE
   ========================================================== */

@media (max-width:900px){

  /*
   * Match Live
   */

  #matchdayPageContent
  .v8f2f-match-live,
  #matchdayPageContent
  .v8f2f-match-live > .v09160-card{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;

    box-sizing:border-box!important;
  }


  #matchdayPageContent
  .v8f2f-lineup-btn{
    min-height:44px!important;

    touch-action:manipulation!important;
  }


  /*
   * Training Live
   */

  #livePageContent,
  #livePageContent
  .v09160-training-live{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;

    box-sizing:border-box!important;
  }


  #livePageContent{
    padding-bottom:
      calc(
        88px +
        env(safe-area-inset-bottom,0px)
      )!important;
  }


  #livePageContent
  .v09160-live-hero{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;

    display:grid!important;

    grid-template-columns:
      minmax(0,1fr)
      auto!important;

    gap:10px!important;

    box-sizing:border-box!important;
  }


  #livePageContent
  .v09160-live-hero > div:first-child{
    min-width:0!important;
  }


  #livePageContent
  .v09160-live-hero h2,
  #livePageContent
  .v09160-live-hero p{
    overflow-wrap:anywhere!important;
  }


  #livePageContent
  .v09160-live-hero label{
    grid-column:1/-1!important;

    width:100%!important;
    min-width:0!important;
  }


  #livePageContent
  #v09160LiveSelect{
    width:100%!important;
    max-width:100%!important;

    min-height:44px!important;

    box-sizing:border-box!important;

    font-size:16px!important;
  }


  #livePageContent
  .v09160-live-clock{
    min-width:92px!important;

    text-align:center!important;
  }


  #livePageContent
  .v09160-live-actions{
    grid-column:1/-1!important;

    display:grid!important;

    grid-template-columns:
      repeat(
        2,
        minmax(0,1fr)
      )!important;

    gap:8px!important;

    width:100%!important;
  }


  #livePageContent
  .v09160-live-actions button{
    width:100%!important;

    min-width:0!important;
    min-height:48px!important;

    box-sizing:border-box!important;

    white-space:normal!important;

    touch-action:manipulation!important;
  }


  #livePageContent
  .v09160-live-before{
    width:100%!important;
    max-width:100%!important;

    box-sizing:border-box!important;
  }


  #livePageContent
  .v09160-live-plan{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;

    box-sizing:border-box!important;
  }


  #livePageContent
  .v09160-live-plan
  .v09160-card-head{
    align-items:flex-start!important;

    flex-wrap:wrap!important;
  }


  #livePageContent
  #v09160AttendanceAgain{
    min-height:42px!important;

    touch-action:manipulation!important;
  }


  #livePageContent
  .v09160-live-ex{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;

    box-sizing:border-box!important;

    overflow:hidden!important;
  }


  #livePageContent
  .v09160-live-ex img{
    max-width:100%!important;
    height:auto!important;

    object-fit:contain!important;
  }


  #livePageContent
  .v09160-live-ex button{
    min-height:42px!important;

    touch-action:manipulation!important;
  }


  #livePageContent
  #v09160LiveReview{
    width:100%!important;
    max-width:100%!important;

    box-sizing:border-box!important;

    font-size:16px!important;
  }


  #livePageContent
  #v09160SaveLiveReview{
    min-height:44px!important;

    touch-action:manipulation!important;
  }


  /*
   * Attendance dialog
   */

  #v09160Attendance{
    max-width:
      min(
        94vw,
        620px
      )!important;

    max-height:
      calc(
        100dvh -
        24px
      )!important;

    margin:auto!important;

    padding:0!important;

    box-sizing:border-box!important;
  }


  #v09160Attendance form{
    max-height:
      calc(
        100dvh -
        24px
      )!important;

    display:flex!important;
    flex-direction:column!important;

    overflow:hidden!important;
  }


  #v09160Attendance header{
    flex:0 0 auto!important;
  }


  #v09160Attendance
  .v09160-attendance{
    flex:1 1 auto!important;

    min-height:0!important;

    overflow-y:auto!important;

    -webkit-overflow-scrolling:touch!important;
  }


  #v09160Attendance
  .v09160-attendance label{
    min-height:52px!important;
  }


  #v09160Attendance
  .v09160-attendance input{
    width:22px!important;
    height:22px!important;

    flex:0 0 22px!important;
  }


  #v09160Attendance footer{
    flex:0 0 auto!important;

    padding-bottom:
      max(
        10px,
        env(safe-area-inset-bottom,0px)
      )!important;

    background:#fff!important;
  }


  #v09160Attendance footer button{
    min-height:44px!important;

    touch-action:manipulation!important;
  }

}


@media (max-width:560px){

  .v8f2f-scoreboard{
    grid-template-columns:
      minmax(0,1fr)
      auto
      minmax(0,1fr);

    gap:7px;

    padding:13px 9px;
  }


  .v8f2f-team strong{
    font-size:12px;
  }


  .v8f2f-score{
    min-width:72px;
  }


  .v8f2f-score b{
    font-size:25px;
  }


  .v8f2f-scorer-summary{
    grid-template-columns:
      minmax(0,1fr);
  }


  .v8f2f-live-event{
    grid-template-columns:
      38px 26px minmax(0,1fr);

    padding:
      8px 7px;
  }


  #livePageContent
  .v09160-live-hero{
    grid-template-columns:
      minmax(0,1fr)!important;
  }


  #livePageContent
  .v09160-live-clock,
  #livePageContent
  .v09160-live-actions{
    grid-column:1!important;
  }


  #livePageContent
  .v09160-live-clock{
    justify-self:start!important;
  }


  #livePageContent
  .v09160-live-actions{
    grid-template-columns:
      minmax(0,1fr)!important;
  }


  #livePageContent
  .v09160-live-ex{
    grid-template-columns:
      minmax(0,1fr)!important;
  }


  #livePageContent
  .v09160-live-ex > *{
    min-width:0!important;
  }

}


/*
 * TACTERO_SYSTEM_V095_MOBILE_LAYOUT_FIX_V1
 *
 * Root cause:
 * Earlier V095 desktop declarations use !important for the
 * 12-column grid and wrapped system tabs. Existing responsive
 * declarations therefore lose in the cascade.
 *
 * Keep this override scoped to #systemPageContent.
 */

@media (max-width:900px){

  #systemPageContent.v095-system-shell
  .v095-grid{
    grid-template-columns:
      minmax(0,1fr)!important;

    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }


  #systemPageContent.v095-system-shell
  .v095-grid > .span-4,

  #systemPageContent.v095-system-shell
  .v095-grid > .span-6,

  #systemPageContent.v095-system-shell
  .v095-grid > .span-8,

  #systemPageContent.v095-system-shell
  .v095-grid > .span-12{
    grid-column:
      1 / -1!important;

    width:100%!important;
    max-width:100%!important;
    min-width:0!important;

    box-sizing:border-box!important;
  }


  #systemPageContent.v095-system-shell
  .v095-system-tabs{
    display:flex!important;

    flex-wrap:nowrap!important;

    width:100%!important;
    max-width:100%!important;

    overflow-x:auto!important;
    overflow-y:hidden!important;

    -webkit-overflow-scrolling:touch;

    scrollbar-width:thin;

    box-sizing:border-box!important;
  }


  #systemPageContent.v095-system-shell
  .v095-system-tabs > button{
    flex:
      0 0 auto!important;

    white-space:
      nowrap!important;

    min-width:
      max-content!important;
  }


  #systemPageContent.v095-system-shell
  .v095-card{
    min-width:0!important;
    max-width:100%!important;

    box-sizing:border-box!important;
  }

}


@media (max-width:600px){

  #systemPageContent.v095-system-shell
  .v095-admin-menu{
    grid-template-columns:
      minmax(0,1fr)!important;
  }


  #systemPageContent.v095-system-shell
  .v095-sync-grid{
    grid-template-columns:
      minmax(0,1fr)!important;
  }


  #systemPageContent.v095-system-shell
  .v095-admin-tile,

  #systemPageContent.v095-system-shell
  .v095-sync-item{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;

    box-sizing:border-box!important;
  }

}


/*
 * TACTERO_SYSTEM_V095_SHELL_LAYOUT_FIX_V2
 *
 * Root cause:
 * Direct children of the V095 system shell can carry legacy span
 * classes such as .span-12. Those declarations create implicit
 * grid tracks in the outer system shell and squeeze the actual
 * system content into extremely narrow columns.
 *
 * The outer V095 shell is structurally one content column.
 * Inner .v095-grid elements remain responsible for card layouts.
 */

#systemPageContent.v095-system-shell{
  display:grid!important;

  grid-template-columns:
    minmax(0,1fr)!important;

  grid-auto-columns:
    minmax(0,1fr)!important;

  width:100%!important;
  max-width:100%!important;
  min-width:0!important;

  box-sizing:border-box!important;
}


/*
 * Only structural system-shell children.
 * Do not apply this to cards inside .v095-grid.
 */

#systemPageContent.v095-system-shell
> .v095-system-hero,

#systemPageContent.v095-system-shell
> .v095-system-tabs,

#systemPageContent.v095-system-shell
> .v095-system-pane,

#systemPageContent.v095-system-shell
> #tacteroOefbSystemControl{
  grid-column:
    1 / -1!important;

  width:100%!important;
  max-width:100%!important;
  min-width:0!important;

  box-sizing:border-box!important;
}


/*
 * Legacy .span-12 on the OFV system control must not create
 * twelve implicit outer-shell tracks.
 */

#systemPageContent.v095-system-shell
> #tacteroOefbSystemControl.span-12{
  grid-column:
    1 / -1!important;
}


/*
 * The active pane itself must provide full width to its
 * internal V095 grid.
 */

#systemPageContent.v095-system-shell
> .v095-system-pane.active{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}


/*
 * Safety for the immediate grid inside a system pane.
 */

#systemPageContent.v095-system-shell
> .v095-system-pane
> .v095-grid{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;

  box-sizing:border-box!important;
}


/*
 * TACTERO_SYSTEM_V095_MOBILE_ROOT_FLOW_V3
 *
 * Browser-forensics at 390x844 proved:
 *
 * #systemPageContent width = 370px
 * but legacy outer 12-column grid collapsed children to ~16-34px.
 *
 * Temporary display:block produced:
 * root / OFV / pane / grid / cards = 370px
 * with no horizontal page overflow.
 *
 * Desktop stays untouched.
 */

@media (max-width:900px){

  #systemPageContent.v095-system-shell.v09160-system-root{
    display:block!important;

    grid-template-columns:
      none!important;

    grid-auto-columns:
      auto!important;

    width:100%!important;
    max-width:100%!important;
    min-width:0!important;

    box-sizing:border-box!important;
  }


  #systemPageContent.v095-system-shell.v09160-system-root
  > #tacteroOefbSystemControl,

  #systemPageContent.v095-system-shell.v09160-system-root
  > .v095-system-hero,

  #systemPageContent.v095-system-shell.v09160-system-root
  > .v095-system-tabs,

  #systemPageContent.v095-system-shell.v09160-system-root
  > .v095-system-pane{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;

    box-sizing:border-box!important;
  }


  #systemPageContent.v095-system-shell.v09160-system-root
  > #tacteroOefbSystemControl{
    grid-column:auto!important;
  }


  #systemPageContent.v095-system-shell.v09160-system-root
  > .v095-system-pane.active{
    display:block!important;
  }


  #systemPageContent.v095-system-shell.v09160-system-root
  > .v095-system-pane.active
  > .v095-grid{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;

    box-sizing:border-box!important;
  }

}


/* =========================================================
   TACTERO_SETTINGS_MOBILE_FULL_WIDTH_V1
   Mobile Settings use normal document flow instead of the
   desktop 12-column content grid. Desktop remains unchanged.
   ========================================================= */
@media (max-width: 900px) {
  #settingsPageContent.content-grid {
    display: block !important;
    grid-template-columns: none !important;
    grid-auto-columns: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  #settingsPageContent > .content-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    grid-column: auto !important;
    box-sizing: border-box !important;
  }

  #settingsPageContent > .v0837-tabs {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  #settingsPageContent > .settings-save-bar {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
}


/* ==========================================================
   TACTERO_MINI_UI_MATCHLIVE_MATCHDAY_V1

   1. Match Live:
      Center the only operational button in prestart state.

   2. Matchday:
      Make previous/current/next match selectors more compact
      without changing match data or navigation behavior.
   ========================================================== */


/* ---------- Match Live · prestart ---------- */

.match-live-controls.prestart{
  grid-template-columns:minmax(0,220px)!important;
  justify-content:center!important;
}

.match-live-controls.prestart > #matchLiveClockBtn{
  width:100%!important;
  justify-self:center!important;
}


.match-live-mobile-dock.prestart{
  grid-template-columns:minmax(0,180px)!important;
  justify-content:center!important;
}

.match-live-mobile-dock.prestart > .main{
  width:100%!important;
  justify-self:center!important;
}


/* ---------- Matchday · compact selectors ---------- */
/*
   Desktop deliberately uses the canonical existing Matchday rules.
   Compact selector styling is mobile-only.
*/

@media (max-width:900px){

  .v09160-match-selectors{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;

    gap:6px!important;

    overflow:visible!important;
  }

  .v09160-match-selectors > button{
    box-sizing:border-box!important;

    width:100%!important;
    min-width:0!important;
    max-width:none!important;

    gap:2px!important;
    line-height:1.15!important;

    padding:5px 6px!important;
  }

  .v09160-match-selectors > button > b{
    display:block!important;

    font-size:11px!important;
    line-height:1.15!important;

    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  .v09160-match-selectors > button > small{
    display:block!important;

    font-size:9.5px!important;
    line-height:1.15!important;

    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  }

/* TACTERO_CSS_UNMATCHED_BRACE_FIX_V1
   Removed one confirmed unmatched closing brace after the
   completed mobile Matchday media block.
   No selector or declaration was changed.
*/



/* TACTERO_MATCHDAY_COMPACT_OWNER_FIX_V2
   Canonical mobile Matchday selector owner adjusted directly.
   No additional override layer added.
*/


/* TACTERO_MATCHDAY_DESKTOP_RESTORE_V3
   Desktop Matchday selector sizing restored to canonical pre-compact rules.
   Mobile compact layout remains active.
*/


/* TACTERO_MATCHDAY_MOBILE_THREE_CARDS_V4
   Mobile Matchday selector uses one compact three-column row.
   Desktop remains on canonical desktop sizing.
*/


/* TACTERO_MATCHDAY_SELECTOR_LABELS_CENTER_V1
   Clear Matchday selector wording.
   Mobile selector content centered.
   Responsive three-column layout retained.
*/


/* TACTERO_MATCHDAY_SELECTOR_ACTIVE_OWNER_FIX_V2
   Active Matchday runtime renderer uses clear Spiel labels.
   Real mobile selector owner changed from horizontal flex scroller
   to responsive equal three-column grid.
   No new override layer added.
*/

/* TACTERO_SYSTEM_LAYOUT_STABILITY_FIX_V3
   LAY-02:
   preLaunchCoreCard carries the legacy span-12 class.
   Inside the V095 System root there is one explicit outer grid
   column; allowing span 12 here creates implicit columns and
   collapses Hero / Tabs / Panes into a narrow first column.

   Keep the legacy class for non-V095 contexts, but make this
   direct System extension occupy exactly the canonical full-width
   V095 grid area.
*/
#systemPageContent.v095-system-shell > #preLaunchCoreCard{
  grid-column:1 / -1 !important;
  min-width:0 !important;
  max-width:100% !important;
  width:auto !important;
  justify-self:stretch !important;
  box-sizing:border-box !important;
}

/* ==========================================================
   TACTERO_TOPBAR_SIMPLIFY_V1

   Primary hierarchy:
   Logo -> Team -> Role -> Status -> More

   The canonical team/role/status owners remain unchanged.
   Club/season copy and secondary actions remain available
   through More instead of occupying the primary bar.
   ========================================================== */

body .topbar.v09160-topbar-simple{
  display:flex!important;
  align-items:center!important;
  align-content:center!important;
  justify-content:space-between!important;

  flex-wrap:nowrap!important;

  gap:10px!important;

  min-height:60px!important;
  height:auto!important;

  padding-left:14px!important;
  padding-right:14px!important;
  padding-bottom:8px!important;

  overflow:visible!important;
}

body .topbar.v09160-topbar-simple
.tactero-header-main{
  flex:1 1 auto!important;

  display:flex!important;
  align-items:center!important;

  gap:8px!important;

  min-width:0!important;
  max-width:100%!important;

  overflow:visible!important;
}

body .topbar.v09160-topbar-simple
.club-context{
  flex:0 0 auto!important;

  display:flex!important;
  align-items:center!important;

  gap:7px!important;

  width:auto!important;
  min-width:0!important;
  max-width:none!important;

  height:auto!important;
}

body .topbar.v09160-topbar-simple
.club-context-logo{
  /* TACTERO_TOPBAR_SIMPLIFY_V2 */
  display:block!important;

  width:34px!important;
  height:38px!important;

  flex:0 0 34px!important;

  object-fit:contain!important;
}

body .topbar.v09160-topbar-simple
.club-context-copy{
  display:none!important;
}

body .topbar.v09160-topbar-simple
.selectors{
  flex:0 1 auto!important;

  display:flex!important;
  align-items:center!important;

  flex-wrap:nowrap!important;

  gap:8px!important;

  width:auto!important;
  min-width:0!important;
  max-width:100%!important;
}

body .topbar.v09160-topbar-simple
.selectors > label,
body .topbar.v09160-topbar-simple
.v0980-role-box > label{
  display:none!important;
}

body .topbar.v09160-topbar-simple
#topTeamSwitcher{
  flex:0 1 auto!important;

  width:auto!important;
  min-width:82px!important;
  max-width:140px!important;

  height:40px!important;
  min-height:40px!important;

  padding-left:10px!important;
  padding-right:28px!important;

  font-weight:800!important;

  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

body .topbar.v09160-topbar-simple
.v0980-role-box{
  flex:0 1 auto!important;

  width:auto!important;
  min-width:0!important;
  max-width:190px!important;
}

body .topbar.v09160-topbar-simple
#v0980RoleBtn{
  width:auto!important;
  min-width:0!important;
  max-width:190px!important;

  height:40px!important;
  min-height:40px!important;

  display:flex!important;
  align-items:center!important;

  gap:6px!important;

  padding-left:11px!important;
  padding-right:10px!important;
}

body .topbar.v09160-topbar-simple
#v0980RoleText{
  min-width:0!important;

  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

body .topbar.v09160-topbar-simple
.top-actions.v09160-top-actions{
  flex:0 0 auto!important;

  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;

  flex-wrap:nowrap!important;

  gap:7px!important;

  width:auto!important;
  min-width:0!important;
  max-width:none!important;

  padding:0!important;

  overflow:visible!important;
}

body .topbar.v09160-topbar-simple
#v09160Online{
  flex:0 0 auto!important;

  height:40px!important;
  min-height:40px!important;

  display:inline-flex!important;
  align-items:center!important;

  padding-left:10px!important;
  padding-right:10px!important;

  white-space:nowrap!important;
}

body .topbar.v09160-topbar-simple
.v09160-more{
  flex:0 0 auto!important;
}

body .topbar.v09160-topbar-simple
.v09160-more > summary{
  height:40px!important;
  min-height:40px!important;

  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;

  gap:5px!important;

  padding-left:11px!important;
  padding-right:11px!important;

  white-space:nowrap!important;
}

body .topbar.v09160-topbar-simple
.v09160-more-menu{
  width:min(280px,calc(100vw - 20px))!important;
  min-width:240px!important;

  max-height:min(70vh,560px)!important;

  overflow-y:auto!important;
  overflow-x:hidden!important;

  box-sizing:border-box!important;
}

body .topbar.v09160-topbar-simple
.v09160-more-context{
  display:grid!important;
  gap:3px!important;

  padding:10px 10px 11px!important;
  margin-bottom:5px!important;

  border-radius:9px!important;

  background:#f5f8f6!important;
}

body .topbar.v09160-topbar-simple
.v09160-more-context strong{
  display:block!important;

  font-size:12px!important;
  line-height:1.25!important;

  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

body .topbar.v09160-topbar-simple
.v09160-more-context small{
  display:block!important;

  color:var(--muted,#68756d)!important;
  font-size:10px!important;

  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

body .topbar.v09160-topbar-simple
.v09160-more-menu button{
  min-height:44px!important;

  display:flex!important;
  align-items:center!important;

  width:100%!important;

  box-sizing:border-box!important;
}

/*
 * Existing ID-specific header rules have greater specificity
 * than the generic More-menu button owner. Secondary controls
 * keep their canonical IDs/handlers, so make them explicitly
 * visible only inside the More menu.
 */
body .topbar.v09160-topbar-simple
.v09160-more-menu #v09160Feedback,
body .topbar.v09160-topbar-simple
.v09160-more-menu #v09160Quick,
body .topbar.v09160-topbar-simple
.v09160-more-menu #v09160User{
  display:flex!important;
  visibility:visible!important;
}

body .topbar.v09160-topbar-simple
.v09160-more-menu button:disabled{
  opacity:.45!important;
  cursor:not-allowed!important;
}

body .topbar.v09160-topbar-simple
.v09160-more-separator{
  height:1px!important;

  margin:5px 4px!important;

  background:#e4ebe6!important;
}

body .topbar.v09160-topbar-simple
.v09160-topbar-secondary-hidden{
  display:none!important;
}

/* ---------- Tablet / Mobile ---------- */

@media(max-width:900px){

  body .topbar.v09160-topbar-simple{
    flex-wrap:nowrap!important;

    gap:5px!important;

    min-height:56px!important;

    padding-left:8px!important;
    padding-right:8px!important;
    padding-bottom:7px!important;
  }

  body .topbar.v09160-topbar-simple
  .tactero-header-main{
    flex:1 1 auto!important;

    flex-wrap:nowrap!important;

    gap:5px!important;

    min-width:0!important;
  }

  body .topbar.v09160-topbar-simple
  .club-context{
    flex:0 0 auto!important;

    flex-basis:auto!important;

    width:auto!important;
    min-width:0!important;

    gap:5px!important;
  }

  body .topbar.v09160-topbar-simple
  .club-context-logo{
    width:30px!important;
    height:34px!important;

    flex-basis:30px!important;
  }

  body .topbar.v09160-topbar-simple
  .selectors{
    flex:0 1 auto!important;

    flex-wrap:nowrap!important;

    gap:5px!important;

    width:auto!important;
    min-width:0!important;
  }

  body .topbar.v09160-topbar-simple
  #topTeamSwitcher{
    min-width:64px!important;
    max-width:78px!important;

    height:44px!important;
    min-height:44px!important;

    padding-left:7px!important;
    padding-right:22px!important;

    font-size:12px!important;
  }

  body .topbar.v09160-topbar-simple
  .v0980-role-box{
    flex:0 1 92px!important;

    width:auto!important;
    min-width:0!important;
    max-width:92px!important;
  }

  body .topbar.v09160-topbar-simple
  #v0980RoleBtn{
    width:100%!important;
    max-width:92px!important;

    height:44px!important;
    min-height:44px!important;

    padding-left:7px!important;
    padding-right:6px!important;

    font-size:11px!important;
  }

  body .topbar.v09160-topbar-simple
  .top-actions.v09160-top-actions{
    flex:0 0 auto!important;

    width:auto!important;
    min-width:0!important;
    max-width:none!important;

    gap:4px!important;

    overflow:visible!important;
  }

  body .topbar.v09160-topbar-simple
  #v09160Online{
    height:44px!important;
    min-height:44px!important;

    max-width:68px!important;

    padding-left:7px!important;
    padding-right:7px!important;

    font-size:11px!important;

    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  body .topbar.v09160-topbar-simple
  .v09160-more > summary{
    width:44px!important;
    min-width:44px!important;

    height:44px!important;
    min-height:44px!important;

    padding:0!important;
  }

  body .topbar.v09160-topbar-simple
  .v09160-more-label{
    display:none!important;
  }

  body .topbar.v09160-topbar-simple
  .v09160-more-dots{
    font-size:16px!important;
    letter-spacing:1px!important;
  }
}

/* ---------- Narrow phones ---------- */

@media(max-width:370px){

  body .topbar.v09160-topbar-simple{
    gap:4px!important;

    padding-left:6px!important;
    padding-right:6px!important;
  }

  body .topbar.v09160-topbar-simple
  .tactero-header-main{
    gap:4px!important;
  }

  body .topbar.v09160-topbar-simple
  .club-context-logo{
    width:28px!important;
    height:32px!important;

    flex-basis:28px!important;
  }

  body .topbar.v09160-topbar-simple
  #topTeamSwitcher{
    min-width:58px!important;
    max-width:68px!important;

    font-size:11px!important;
  }

  body .topbar.v09160-topbar-simple
  .v0980-role-box{
    flex-basis:82px!important;
    max-width:82px!important;
  }

  body .topbar.v09160-topbar-simple
  #v0980RoleBtn{
    max-width:82px!important;
  }

  body .topbar.v09160-topbar-simple
  #v09160Online{
    max-width:61px!important;

    padding-left:5px!important;
    padding-right:5px!important;
  }
}

/* ==========================================================
   TACTERO_MOBILE_TOPBAR_HIERARCHY_V1

   Mobile:
   [club logo + team] [TACTERO] [More]

   Desktop remains owned by TACTERO_TOPBAR_SIMPLIFY_V2.
   ========================================================== */

#v09160MobileBrand{
  display:none!important;
}

body .topbar.v09160-topbar-simple
.v09160-more-menu
.v09160-mobile-only{
  display:none!important;
}


/* ----------------------------------------------------------
   Mobile only
   ---------------------------------------------------------- */

@media(max-width:900px){

  body .topbar.v09160-topbar-simple{
    display:grid!important;

    grid-template-columns:
      minmax(0,1fr)
      auto
      minmax(0,1fr)!important;

    grid-template-rows:auto!important;

    align-items:center!important;

    column-gap:6px!important;
    row-gap:0!important;

    min-height:58px!important;

    padding-left:8px!important;
    padding-right:8px!important;
    padding-bottom:7px!important;

    overflow:visible!important;
  }


  /* LEFT: club crest + canonical team selector */

  body .topbar.v09160-topbar-simple
  .tactero-header-main{
    grid-column:1!important;
    grid-row:1!important;

    justify-self:start!important;

    width:auto!important;
    max-width:100%!important;
    min-width:0!important;

    display:flex!important;
    align-items:center!important;

    flex-wrap:nowrap!important;

    gap:5px!important;

    overflow:visible!important;
  }


  body .topbar.v09160-topbar-simple
  .club-context{
    flex:0 0 auto!important;

    width:auto!important;
    max-width:none!important;
    min-width:0!important;

    display:flex!important;
    align-items:center!important;

    gap:4px!important;
  }


  body .topbar.v09160-topbar-simple
  #topClubLogo,
  body .topbar.v09160-topbar-simple
  .club-context-logo{
    display:block!important;

    width:28px!important;
    height:34px!important;

    flex:0 0 28px!important;

    padding:0!important;

    object-fit:contain!important;
    object-position:center!important;
  }


  body .topbar.v09160-topbar-simple
  .club-context-copy{
    display:none!important;
  }


  body .topbar.v09160-topbar-simple
  .selectors{
    flex:0 1 auto!important;

    width:auto!important;
    min-width:0!important;

    display:flex!important;
    align-items:center!important;

    gap:4px!important;
  }


  body .topbar.v09160-topbar-simple
  .club-team-switch{
    margin:0!important;
    padding:0!important;

    border-left:0!important;

    display:flex!important;
    align-items:center!important;

    min-width:0!important;
  }


  body .topbar.v09160-topbar-simple
  .club-team-switch label{
    display:none!important;
  }


  body .topbar.v09160-topbar-simple
  #topTeamSwitcher{
    width:72px!important;
    min-width:72px!important;
    max-width:72px!important;

    height:44px!important;
    min-height:44px!important;

    padding-left:7px!important;
    padding-right:21px!important;

    font-size:12px!important;
    font-weight:900!important;

    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }


  body .topbar.v09160-topbar-simple
  .club-team-manage{
    display:none!important;
  }


  /*
   * Role remains in DOM as canonical owner.
   * Only its primary mobile presentation is hidden.
   */
  body .topbar.v09160-topbar-simple
  .v0980-role-box{
    display:none!important;
  }


  /* CENTER: TACTERO brand */

  body .topbar.v09160-topbar-simple
  #v09160MobileBrand{
    grid-column:2!important;
    grid-row:1!important;

    justify-self:center!important;
    align-self:center!important;

    display:flex!important;
    align-items:center!important;
    justify-content:center!important;

    gap:5px!important;

    min-width:0!important;

    color:#101713!important;

    user-select:none!important;
    pointer-events:none!important;

    white-space:nowrap!important;
  }


  body .topbar.v09160-topbar-simple
  .v09160-mobile-brand-mark{
    width:25px!important;
    height:25px!important;

    flex:0 0 25px!important;

    display:grid!important;
    place-items:center!important;

    border-radius:7px!important;

    background:
      linear-gradient(
        145deg,
        var(--brand-lime),
        var(--brand-green)
      )!important;

    color:#09100a!important;

    font-size:14px!important;
    font-weight:950!important;
    line-height:1!important;

    transform:skew(-8deg)!important;

    box-shadow:
      0 0 10px
      rgba(157,255,0,.18)!important;
  }


  body .topbar.v09160-topbar-simple
  .v09160-mobile-brand-mark > span{
    transform:skew(8deg)!important;
  }


  body .topbar.v09160-topbar-simple
  #v09160MobileBrand > strong{
    font-size:12px!important;
    font-weight:950!important;

    letter-spacing:.45px!important;

    line-height:1!important;
  }


  /* RIGHT: More only */

  body .topbar.v09160-topbar-simple
  .top-actions.v09160-top-actions{
    grid-column:3!important;
    grid-row:1!important;

    justify-self:end!important;

    flex:0 0 auto!important;

    width:auto!important;
    min-width:44px!important;
    max-width:44px!important;

    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;

    gap:0!important;

    padding:0!important;

    overflow:visible!important;
  }


  /*
   * Status is intentionally no longer a primary mobile control.
   * It remains canonical in DOM and is mirrored read-only into More.
   */
  body .topbar.v09160-topbar-simple
  .top-actions.v09160-top-actions
  > :not(.v09160-more){
    display:none!important;
  }


  body .topbar.v09160-topbar-simple
  .v09160-more{
    display:block!important;

    position:relative!important;

    flex:0 0 44px!important;

    width:44px!important;
  }


  body .topbar.v09160-topbar-simple
  .v09160-more > summary{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;

    width:44px!important;
    min-width:44px!important;
    max-width:44px!important;

    height:44px!important;
    min-height:44px!important;

    padding:0!important;

    border:1px solid var(--line)!important;
    border-radius:10px!important;

    background:#fff!important;

    color:#26342c!important;

    cursor:pointer!important;

    list-style:none!important;
  }


  body .topbar.v09160-topbar-simple
  .v09160-more > summary::-webkit-details-marker{
    display:none!important;
  }


  body .topbar.v09160-topbar-simple
  .v09160-more-label{
    display:none!important;
  }


  body .topbar.v09160-topbar-simple
  .v09160-more-dots{
    font-size:17px!important;
    line-height:1!important;

    letter-spacing:1px!important;
  }


  /* MOBILE MORE MENU */

  body .topbar.v09160-topbar-simple
  .v09160-more-menu{
    position:absolute!important;

    top:calc(100% + 8px)!important;
    right:0!important;
    left:auto!important;

    width:min(
      320px,
      calc(100vw - 16px)
    )!important;

    min-width:min(
      280px,
      calc(100vw - 16px)
    )!important;

    max-width:calc(100vw - 16px)!important;

    max-height:
      calc(
        100vh -
        90px -
        env(safe-area-inset-bottom,0px)
      )!important;

    overflow-y:auto!important;
    overflow-x:hidden!important;

    box-sizing:border-box!important;

    z-index:12000!important;
  }


  body .topbar.v09160-topbar-simple
  .v09160-more-menu
  .v09160-mobile-only{
    display:flex!important;
  }


  body .topbar.v09160-topbar-simple
  #v09160MoreRole{
    display:grid!important;

    grid-template-columns:
      minmax(60px,auto)
      minmax(0,1fr)
      16px!important;

    align-items:center!important;

    gap:8px!important;

    width:100%!important;
    min-height:48px!important;

    text-align:left!important;
  }


  body .topbar.v09160-topbar-simple
  .v09160-mobile-menu-info{
    align-items:center!important;
    justify-content:space-between!important;

    gap:10px!important;

    width:100%!important;
    min-height:44px!important;

    padding:9px 10px!important;

    box-sizing:border-box!important;

    border-radius:8px!important;

    color:#26342c!important;
  }


  body .topbar.v09160-topbar-simple
  .v09160-mobile-menu-key{
    color:var(--muted)!important;

    font-size:11px!important;
    font-weight:750!important;
  }


  body .topbar.v09160-topbar-simple
  .v09160-mobile-menu-value{
    min-width:0!important;

    color:#172219!important;

    font-size:12px!important;
    font-weight:850!important;

    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }


  body .topbar.v09160-topbar-simple
  #v09160MoreRole
  .v09160-mobile-menu-value{
    text-align:right!important;
  }


  body .topbar.v09160-topbar-simple
  .v09160-mobile-menu-chevron{
    justify-self:end!important;

    color:#7a877f!important;

    font-size:18px!important;
  }


  /*
   * Existing ID-specific rules may otherwise hide these
   * controls because their IDs originated in the topbar.
   */
  body .topbar.v09160-topbar-simple
  .v09160-more-menu
  #v09160Feedback,

  body .topbar.v09160-topbar-simple
  .v09160-more-menu
  #v09160Quick,

  body .topbar.v09160-topbar-simple
  .v09160-more-menu
  #v09160User,

  body .topbar.v09160-topbar-simple
  .v09160-more-menu
  #v09160MoreAddTeam,

  body .topbar.v09160-topbar-simple
  .v09160-more-menu
  #v09160MoreOnlineProbe{
    display:flex!important;
    visibility:visible!important;
  }
}


/* ----------------------------------------------------------
   Narrow phones
   ---------------------------------------------------------- */

@media(max-width:370px){

  body .topbar.v09160-topbar-simple{
    padding-left:6px!important;
    padding-right:6px!important;

    column-gap:4px!important;
  }


  body .topbar.v09160-topbar-simple
  #topClubLogo,

  body .topbar.v09160-topbar-simple
  .club-context-logo{
    width:26px!important;
    height:32px!important;

    flex-basis:26px!important;
  }


  body .topbar.v09160-topbar-simple
  #topTeamSwitcher{
    width:64px!important;
    min-width:64px!important;
    max-width:64px!important;

    padding-left:6px!important;
    padding-right:19px!important;

    font-size:11px!important;
  }


  body .topbar.v09160-topbar-simple
  .v09160-mobile-brand-mark{
    width:23px!important;
    height:23px!important;

    flex-basis:23px!important;

    font-size:13px!important;
  }


  body .topbar.v09160-topbar-simple
  #v09160MobileBrand{
    gap:4px!important;
  }


  body .topbar.v09160-topbar-simple
  #v09160MobileBrand > strong{
    font-size:11px!important;
    letter-spacing:.25px!important;
  }
}

/* ==========================================================
   TACTERO_MOBILE_ROLE_TO_MORE_V1

   Mobile:
   Rolle bleibt kanonisch im DOM, wird aber nicht mehr
   als primärer Topbar-Control dargestellt.

   Rollenwahl erfolgt über den bestehenden Eintrag im
   v09160 More-Menü.
   ========================================================== */

@media(max-width:900px){

  /*
   * Hide every known primary presentation of the canonical
   * role control. The DOM/control remains present so the
   * More-menu proxy can still call #v0980RoleBtn.click().
   */

  body .topbar #v0980RoleBox,
  body .topbar .v0980-role-box{
    display:none!important;
  }

  body .topbar #v0980RoleBtn{
    display:none!important;
  }

  /*
   * Ensure the role proxy inside More remains visible.
   */

  body .topbar.v09160-topbar-simple
  .v09160-more-menu
  #v09160MoreRole{
    display:grid!important;
    visibility:visible!important;
  }

  body .topbar.v09160-topbar-simple
  .v09160-more-menu
  #v09160MoreRoleText{
    display:block!important;
    visibility:visible!important;
  }
}

/* ==========================================================
   TACTERO_MOBILE_TOPBAR_POLISH_V2

   Mobile target:

   [ larger crest + larger team ]  [ T ]  [ ● ] [ ••• ]

   Rolle remains only in More.
   Desktop remains unchanged.
   ========================================================== */

@media(max-width:900px){

  /*
   * HEADER
   */

  body .topbar.v09160-topbar-simple{
    position:sticky!important;

    min-height:66px!important;

    padding-left:10px!important;
    padding-right:10px!important;

    column-gap:6px!important;

    overflow:visible!important;
  }


  /*
   * LEFT:
   * club crest slightly larger
   */

  body .topbar.v09160-topbar-simple
  #topClubLogo,

  body .topbar.v09160-topbar-simple
  .club-context-logo{
    display:block!important;

    width:37px!important;
    height:43px!important;

    flex:0 0 37px!important;

    padding:0!important;

    object-fit:contain!important;
    object-position:center!important;
  }


  body .topbar.v09160-topbar-simple
  .club-context{
    gap:8px!important;
  }


  /*
   * Team selector larger / more readable.
   */

  body .topbar.v09160-topbar-simple
  #topTeamSwitcher{
    width:88px!important;
    min-width:88px!important;
    max-width:88px!important;

    height:48px!important;
    min-height:48px!important;

    padding-left:10px!important;
    padding-right:25px!important;

    font-size:14px!important;
    font-weight:900!important;

    line-height:1!important;

    border-radius:11px!important;
  }


  /*
   * Rolle stays canonical in DOM,
   * but never occupies primary mobile space.
   */

  body .topbar
  #v0980RoleBox,

  body .topbar
  .v0980-role-box,

  body .topbar
  #v0980RoleBtn{
    display:none!important;
  }


  /*
   * CENTER:
   * TACTERO mark geometrically centered against viewport.
   */

  body .topbar.v09160-topbar-simple
  #v09160MobileBrand{
    position:absolute!important;

    left:50%!important;
    top:50%!important;

    transform:
      translate(-50%,-50%)!important;

    z-index:2!important;

    display:flex!important;
    align-items:center!important;
    justify-content:center!important;

    width:auto!important;

    margin:0!important;
    padding:0!important;

    pointer-events:none!important;
  }


  /*
   * On mobile the mark itself is the logo.
   * Remove the textual TACTERO word to keep the center clean.
   */

  body .topbar.v09160-topbar-simple
  #v09160MobileBrand > strong{
    display:none!important;
  }


  body .topbar.v09160-topbar-simple
  .v09160-mobile-brand-mark{
    display:grid!important;
    place-items:center!important;

    width:40px!important;
    height:40px!important;

    flex:0 0 40px!important;

    border-radius:11px!important;

    font-size:21px!important;
    font-weight:950!important;

    line-height:1!important;

    background:
      linear-gradient(
        145deg,
        var(--brand-lime),
        var(--brand-green)
      )!important;

    color:#09100a!important;

    box-shadow:
      0 2px 10px
      rgba(90,175,0,.20)!important;
  }


  /*
   * RIGHT:
   * status dot + More only.
   */

  body .topbar.v09160-topbar-simple
  .top-actions.v09160-top-actions{
    justify-self:end!important;

    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;

    flex:0 0 auto!important;

    width:auto!important;
    min-width:72px!important;
    max-width:none!important;

    gap:6px!important;

    padding:0!important;

    overflow:visible!important;
  }


  /*
   * Earlier mobile hierarchy hides all non-More controls.
   * Explicitly restore only the canonical online status.
   */

  body .topbar.v09160-topbar-simple
  .top-actions.v09160-top-actions
  > #v09160Online{
    display:flex!important;
    visibility:visible!important;

    align-items:center!important;
    justify-content:center!important;

    flex:0 0 20px!important;

    width:20px!important;
    min-width:20px!important;
    max-width:20px!important;

    height:44px!important;
    min-height:44px!important;

    margin:0!important;
    padding:0!important;

    border:0!important;

    background:transparent!important;

    box-shadow:none!important;

    /*
     * Visually remove the word "Online".
     * aria-label/title remain available.
     */
    font-size:0!important;
    line-height:0!important;

    color:transparent!important;

    overflow:visible!important;
  }


  /*
   * Canonical status dot.
   */

  body .topbar.v09160-topbar-simple
  #v09160Online > i{
    display:block!important;

    width:12px!important;
    height:12px!important;

    min-width:12px!important;
    min-height:12px!important;

    margin:0!important;

    border-radius:50%!important;

    border:0!important;
  }


  /*
   * GREEN = online
   */

  body .topbar.v09160-topbar-simple
  #v09160Online[
    data-mobile-status="online"
  ] > i{
    background:#61d900!important;

    box-shadow:
      0 0 0 3px
      rgba(97,217,0,.14)!important;
  }


  /*
   * ORANGE = checking / warning
   */

  body .topbar.v09160-topbar-simple
  #v09160Online[
    data-mobile-status="warn"
  ] > i{
    background:#f59e0b!important;

    box-shadow:
      0 0 0 3px
      rgba(245,158,11,.15)!important;
  }


  /*
   * RED = offline
   */

  body .topbar.v09160-topbar-simple
  #v09160Online[
    data-mobile-status="offline"
  ] > i{
    background:#dc2626!important;

    box-shadow:
      0 0 0 3px
      rgba(220,38,38,.14)!important;
  }


  /*
   * Safe fallback before JS attaches state.
   */

  body .topbar.v09160-topbar-simple
  #v09160Online:not(
    [data-mobile-status]
  ) > i{
    background:#f59e0b!important;

    box-shadow:
      0 0 0 3px
      rgba(245,158,11,.15)!important;
  }


  /*
   * More button remains full touch target.
   */

  body .topbar.v09160-topbar-simple
  .v09160-more{
    display:block!important;

    flex:0 0 44px!important;

    width:44px!important;
    min-width:44px!important;
    max-width:44px!important;
  }


  body .topbar.v09160-topbar-simple
  .v09160-more > summary{
    display:flex!important;

    align-items:center!important;
    justify-content:center!important;

    width:44px!important;
    min-width:44px!important;
    max-width:44px!important;

    height:44px!important;
    min-height:44px!important;

    padding:0!important;
  }
}


/* Narrow phones */

@media(max-width:370px){

  body .topbar.v09160-topbar-simple{
    padding-left:7px!important;
    padding-right:7px!important;
  }


  body .topbar.v09160-topbar-simple
  #topClubLogo,

  body .topbar.v09160-topbar-simple
  .club-context-logo{
    width:33px!important;
    height:40px!important;

    flex-basis:33px!important;
  }


  body .topbar.v09160-topbar-simple
  #topTeamSwitcher{
    width:80px!important;
    min-width:80px!important;
    max-width:80px!important;

    height:46px!important;
    min-height:46px!important;

    font-size:13px!important;
  }


  body .topbar.v09160-topbar-simple
  .v09160-mobile-brand-mark{
    width:37px!important;
    height:37px!important;

    flex-basis:37px!important;

    font-size:20px!important;
  }
}

/* ==========================================================
   TACTERO_MOBILE_TEAM_SWITCHER_RESPONSIVE_V1

   Responsive team context:
   - full short team names such as U14 / U16 / KM / 1b
   - scales with phone width
   - protects centered TACTERO mark
   - mobile only
   ========================================================== */

@media(max-width:900px){

  /*
   * LEFT TEAM AREA
   */

  body .topbar.v09160-topbar-simple
  .tactero-header-main{
    min-width:0!important;

    max-width:
      calc(
        50vw - 26px
      )!important;

    overflow:visible!important;
  }


  body .topbar.v09160-topbar-simple
  .club-context{
    min-width:0!important;

    max-width:100%!important;

    gap:
      clamp(
        6px,
        1.8vw,
        9px
      )!important;
  }


  /*
   * Club crest scales slightly with viewport.
   */

  body .topbar.v09160-topbar-simple
  #topClubLogo,

  body .topbar.v09160-topbar-simple
  .club-context-logo{
    width:
      clamp(
        33px,
        9vw,
        40px
      )!important;

    height:
      clamp(
        39px,
        10.5vw,
        46px
      )!important;

    flex:
      0 0
      clamp(
        33px,
        9vw,
        40px
      )!important;
  }


  /*
   * TEAM SELECTOR

   * 360px -> ~94px
   * 390px -> ~98px
   * 430px -> ~108px
   * 480px -> ~120px
   * larger phones -> max 136px
   */

  body .topbar.v09160-topbar-simple
  #topTeamSwitcher{
    width:
      clamp(
        94px,
        25vw,
        136px
      )!important;

    min-width:
      clamp(
        94px,
        25vw,
        136px
      )!important;

    max-width:
      min(
        136px,
        calc(50vw - 58px)
      )!important;

    height:
      clamp(
        46px,
        11.8vw,
        50px
      )!important;

    min-height:
      clamp(
        46px,
        11.8vw,
        50px
      )!important;

    padding-left:
      clamp(
        9px,
        2.4vw,
        12px
      )!important;

    padding-right:
      clamp(
        23px,
        6vw,
        28px
      )!important;

    font-size:
      clamp(
        13px,
        3.6vw,
        15px
      )!important;

    font-weight:900!important;

    letter-spacing:
      .05px!important;

    line-height:1!important;

    white-space:nowrap!important;

    text-overflow:clip!important;

    border-radius:
      clamp(
        10px,
        2.7vw,
        12px
      )!important;
  }


  /*
   * Keep centered TACTERO mark independent
   * from team selector width.
   */

  body .topbar.v09160-topbar-simple
  #v09160MobileBrand{
    left:50%!important;

    transform:
      translate(
        -50%,
        -50%
      )!important;
  }
}


/*
 * Very narrow devices:
 * still ensure U14 etc. remains readable.
 */

@media(max-width:340px){

  body .topbar.v09160-topbar-simple
  #topTeamSwitcher{
    width:90px!important;
    min-width:90px!important;
    max-width:90px!important;

    font-size:12.5px!important;

    padding-left:8px!important;
    padding-right:21px!important;
  }


  body .topbar.v09160-topbar-simple
  #topClubLogo,

  body .topbar.v09160-topbar-simple
  .club-context-logo{
    width:31px!important;
    height:37px!important;

    flex-basis:31px!important;
  }
}

/* ==========================================================
   TACTERO_MOBILE_MORE_DOTS_CENTER_V1

   Final mobile topbar polish:
   center the three More dots exactly inside the 44x44 control.
   ========================================================== */

@media(max-width:900px){

  body .topbar.v09160-topbar-simple
  .v09160-more > summary{
    position:relative!important;

    display:flex!important;
    align-items:center!important;
    justify-content:center!important;

    width:44px!important;
    min-width:44px!important;
    max-width:44px!important;

    height:44px!important;
    min-height:44px!important;

    padding:0!important;
    margin:0!important;

    text-align:center!important;

    line-height:1!important;
  }


  body .topbar.v09160-topbar-simple
  .v09160-more-dots{
    position:absolute!important;

    left:50%!important;
    top:50%!important;

    transform:
      translate(-50%,-50%)!important;

    display:block!important;

    width:auto!important;
    height:auto!important;

    margin:0!important;
    padding:0!important;

    text-align:center!important;

    font-size:17px!important;
    line-height:1!important;

    letter-spacing:0!important;

    white-space:nowrap!important;
  }
}

/* ==========================================================
   TACTERO_MOBILE_MORE_DOTS_CENTER_V2

   Optical vertical correction only.
   Geometric centering from V1 stays intact.
   ========================================================== */

@media(max-width:900px){

  body .topbar.v09160-topbar-simple
  .v09160-more > summary{
    overflow:hidden!important;
  }

  body .topbar.v09160-topbar-simple
  .v09160-more-dots{
    top:calc(50% - 1px)!important;

    line-height:1!important;

    margin:0!important;
    padding:0!important;
  }
}

/* ==========================================================
   TACTERO_MOBILE_MORE_DOTS_CENTER_V3

   Final mobile control alignment:
   - More button uses the exact responsive height of team selector
   - square More control follows phone size
   - dots optically centered vertically
   ========================================================== */

@media(max-width:900px){

  body .topbar.v09160-topbar-simple{
    --tactero-mobile-control-h:
      clamp(
        46px,
        11.8vw,
        50px
      );
  }


  /*
   * Keep team selector and More control on exactly
   * the same responsive height.
   */

  body .topbar.v09160-topbar-simple
  #topTeamSwitcher{
    height:
      var(--tactero-mobile-control-h)!important;

    min-height:
      var(--tactero-mobile-control-h)!important;
  }


  body .topbar.v09160-topbar-simple
  .v09160-more{
    width:
      var(--tactero-mobile-control-h)!important;

    min-width:
      var(--tactero-mobile-control-h)!important;

    max-width:
      var(--tactero-mobile-control-h)!important;

    height:
      var(--tactero-mobile-control-h)!important;

    min-height:
      var(--tactero-mobile-control-h)!important;

    flex:
      0 0
      var(--tactero-mobile-control-h)!important;
  }


  body .topbar.v09160-topbar-simple
  .v09160-more > summary{
    position:relative!important;

    display:flex!important;
    align-items:center!important;
    justify-content:center!important;

    width:
      var(--tactero-mobile-control-h)!important;

    min-width:
      var(--tactero-mobile-control-h)!important;

    max-width:
      var(--tactero-mobile-control-h)!important;

    height:
      var(--tactero-mobile-control-h)!important;

    min-height:
      var(--tactero-mobile-control-h)!important;

    padding:0!important;
    margin:0!important;

    box-sizing:border-box!important;

    text-align:center!important;

    line-height:1!important;

    overflow:hidden!important;
  }


  /*
   * Native details marker must not influence alignment.
   */

  body .topbar.v09160-topbar-simple
  .v09160-more > summary::-webkit-details-marker{
    display:none!important;
  }


  body .topbar.v09160-topbar-simple
  .v09160-more > summary::marker{
    content:""!important;
  }


  /*
   * Geometric center + small optical correction for
   * the bullet glyph baseline.
   */

  body .topbar.v09160-topbar-simple
  .v09160-more-dots{
    position:absolute!important;

    left:50%!important;
    top:50%!important;

    transform:
      translate(
        -50%,
        -58%
      )!important;

    display:block!important;

    width:auto!important;
    height:auto!important;

    margin:0!important;
    padding:0!important;

    font-size:17px!important;
    line-height:1!important;

    letter-spacing:0!important;

    text-align:center!important;
    white-space:nowrap!important;
  }
}

/* ==========================================================
   TACTERO_DESKTOP_TOPBAR_HIERARCHY_V1

   Desktop >= 901px

   LEFT:
   [crest] [club name] [team] [role]

   RIGHT:
   [status] [More]

   Mobile hierarchy remains untouched.
   ========================================================== */

@media(min-width:901px){

  /*
   * TOPBAR
   */

  body .topbar.v09160-topbar-simple{
    min-height:72px!important;

    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;

    gap:18px!important;

    overflow:visible!important;
  }


  /*
   * LEFT SIDE
   */

  body .topbar.v09160-topbar-simple
  .tactero-header-main{
    display:flex!important;
    align-items:center!important;

    flex:1 1 auto!important;

    min-width:0!important;

    gap:10px!important;

    overflow:visible!important;
  }


  /*
   * Larger club crest, analogous to mobile prominence.
   */

  body .topbar.v09160-topbar-simple
  #topClubLogo,

  body .topbar.v09160-topbar-simple
  .club-context-logo{
    display:block!important;

    width:40px!important;
    height:46px!important;

    flex:0 0 40px!important;

    padding:0!important;

    object-fit:contain!important;
    object-position:center!important;
  }


  body .topbar.v09160-topbar-simple
  .club-context{
    display:flex!important;
    align-items:center!important;

    flex:0 1 auto!important;

    min-width:0!important;

    gap:10px!important;
  }


  /*
   * Canonical club name.
   * Example: Union Puchenau
   */

  body .topbar.v09160-topbar-simple
  .club-context-copy{
    display:flex!important;

    flex-direction:column!important;
    justify-content:center!important;

    flex:0 1 auto!important;

    min-width:100px!important;

    max-width:
      clamp(
        160px,
        18vw,
        300px
      )!important;

    margin-right:4px!important;
  }


  body .topbar.v09160-topbar-simple
  #topClubName{
    display:block!important;

    max-width:100%!important;

    font-size:14px!important;
    font-weight:900!important;

    line-height:1.15!important;

    color:#172219!important;

    white-space:nowrap!important;

    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }


  /*
   * Team and season are already represented by the
   * canonical team selector. Do not duplicate them here.
   */

  body .topbar.v09160-topbar-simple
  .club-context-copy small{
    display:none!important;
  }


  /*
   * Remove generic "MANNSCHAFT" label.
   * The club name + U14 selector makes the context clear.
   */

  body .topbar.v09160-topbar-simple
  label[for="topTeamSwitcher"]{
    display:none!important;
  }


  body .topbar.v09160-topbar-simple
  #topTeamSwitcher{
    width:auto!important;

    min-width:88px!important;
    max-width:136px!important;

    height:44px!important;
    min-height:44px!important;

    padding-left:11px!important;
    padding-right:28px!important;

    font-size:14px!important;
    font-weight:900!important;

    border-radius:10px!important;
  }


  /*
   * ROLE STAYS VISIBLE ON DESKTOP.
   * Existing canonical role owner/handler remains untouched.
   */

  body .topbar.v09160-topbar-simple
  .v0980-role-box{
    display:flex!important;

    align-items:center!important;

    flex:0 0 auto!important;

    min-width:0!important;
  }


  body .topbar.v09160-topbar-simple
  #v0980RoleBtn{
    display:flex!important;

    align-items:center!important;
    justify-content:space-between!important;

    min-height:44px!important;

    padding-left:12px!important;
    padding-right:10px!important;
  }


  /*
   * Plus and legacy "Prüfe Online..." controls were
   * already classified by the runtime as secondary.
   * They must not occupy the primary desktop bar.
   */

  body .topbar.v09160-topbar-simple
  .v09160-topbar-secondary-hidden{
    display:none!important;
  }


  /*
   * RIGHT SIDE:
   * Only canonical status + More.
   */

  body .topbar.v09160-topbar-simple
  .top-actions.v09160-top-actions{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;

    flex:0 0 auto!important;

    width:auto!important;

    gap:10px!important;

    overflow:visible!important;
  }


  body .topbar.v09160-topbar-simple
  .top-actions.v09160-top-actions
  > :not(#v09160Online):not(.v09160-more){
    display:none!important;
  }


  /*
   * Status: same visual language as mobile.
   * No redundant "Online" text in the primary bar.
   */

  body .topbar.v09160-topbar-simple
  #v09160Online{
    display:flex!important;
    visibility:visible!important;

    align-items:center!important;
    justify-content:center!important;

    flex:0 0 28px!important;

    width:28px!important;
    min-width:28px!important;
    max-width:28px!important;

    height:44px!important;
    min-height:44px!important;

    margin:0!important;
    padding:0!important;

    border:0!important;

    background:transparent!important;

    box-shadow:none!important;

    font-size:0!important;
    line-height:0!important;

    color:transparent!important;
  }


  body .topbar.v09160-topbar-simple
  #v09160Online > i{
    display:block!important;

    width:12px!important;
    height:12px!important;

    min-width:12px!important;
    min-height:12px!important;

    margin:0!important;

    border:0!important;
    border-radius:50%!important;
  }


  body .topbar.v09160-topbar-simple
  #v09160Online[
    data-mobile-status="online"
  ] > i{
    background:#61d900!important;

    box-shadow:
      0 0 0 3px
      rgba(97,217,0,.14)!important;
  }


  body .topbar.v09160-topbar-simple
  #v09160Online[
    data-mobile-status="warn"
  ] > i{
    background:#f59e0b!important;

    box-shadow:
      0 0 0 3px
      rgba(245,158,11,.15)!important;
  }


  body .topbar.v09160-topbar-simple
  #v09160Online[
    data-mobile-status="offline"
  ] > i{
    background:#dc2626!important;

    box-shadow:
      0 0 0 3px
      rgba(220,38,38,.14)!important;
  }


  body .topbar.v09160-topbar-simple
  #v09160Online:not(
    [data-mobile-status]
  ) > i{
    background:#f59e0b!important;

    box-shadow:
      0 0 0 3px
      rgba(245,158,11,.15)!important;
  }


  /*
   * MORE remains the only second right-side control.
   */

  body .topbar.v09160-topbar-simple
  .v09160-more{
    display:block!important;

    flex:0 0 auto!important;

    width:auto!important;

    min-width:88px!important;
  }


  body .topbar.v09160-topbar-simple
  .v09160-more > summary{
    display:flex!important;

    align-items:center!important;
    justify-content:center!important;

    min-width:88px!important;

    height:44px!important;
    min-height:44px!important;

    padding:0 14px!important;

    box-sizing:border-box!important;
  }


  body .topbar.v09160-topbar-simple
  .v09160-more-label{
    display:inline!important;
  }


  body .topbar.v09160-topbar-simple
  .v09160-more-dots{
    position:static!important;

    display:inline!important;

    width:auto!important;
    height:auto!important;

    transform:none!important;

    margin:0 6px 0 0!important;

    font-size:15px!important;
    line-height:1!important;

    letter-spacing:0!important;
  }
}

/* ==========================================================
   TACTERO_DESKTOP_TOPBAR_VERTICAL_CENTER_V1

   Desktop-only finishing:
   vertically center every primary topbar control/group.
   No structural or functional changes.
   ========================================================== */

@media(min-width:901px){

  body .topbar.v09160-topbar-simple{
    min-height:72px!important;

    box-sizing:border-box!important;

    display:flex!important;
    align-items:center!important;

    padding-top:8px!important;
    padding-bottom:8px!important;
  }


  body .topbar.v09160-topbar-simple
  .tactero-header-main{
    align-self:center!important;

    display:flex!important;
    align-items:center!important;

    height:auto!important;

    margin-top:0!important;
    margin-bottom:0!important;
  }


  body .topbar.v09160-topbar-simple
  .club-context{
    align-self:center!important;

    display:flex!important;
    align-items:center!important;

    height:auto!important;

    margin-top:0!important;
    margin-bottom:0!important;
  }


  body .topbar.v09160-topbar-simple
  .selectors{
    align-self:center!important;

    display:flex!important;
    align-items:center!important;

    height:auto!important;

    margin-top:0!important;
    margin-bottom:0!important;
  }


  body .topbar.v09160-topbar-simple
  .club-team-switch{
    align-self:center!important;

    display:flex!important;
    align-items:center!important;

    height:auto!important;

    margin-top:0!important;
    margin-bottom:0!important;
  }


  body .topbar.v09160-topbar-simple
  #topTeamSwitcher{
    align-self:center!important;

    margin-top:0!important;
    margin-bottom:0!important;
  }


  body .topbar.v09160-topbar-simple
  .club-team-manage{
    align-self:center!important;

    display:flex!important;
    align-items:center!important;
    justify-content:center!important;

    margin-top:0!important;
    margin-bottom:0!important;
  }


  body .topbar.v09160-topbar-simple
  .v0980-role-box{
    align-self:center!important;

    display:flex!important;
    align-items:center!important;

    height:auto!important;

    margin-top:0!important;
    margin-bottom:0!important;
  }


  body .topbar.v09160-topbar-simple
  #v0980RoleBtn{
    align-self:center!important;

    margin-top:0!important;
    margin-bottom:0!important;
  }


  body .topbar.v09160-topbar-simple
  .top-actions.v09160-top-actions{
    align-self:center!important;

    display:flex!important;
    align-items:center!important;

    height:auto!important;

    margin-top:0!important;
    margin-bottom:0!important;
  }


  body .topbar.v09160-topbar-simple
  #v09160Online{
    align-self:center!important;

    margin-top:0!important;
    margin-bottom:0!important;
  }


  body .topbar.v09160-topbar-simple
  .v09160-more{
    align-self:center!important;

    margin-top:0!important;
    margin-bottom:0!important;
  }


  body .topbar.v09160-topbar-simple
  .v09160-more > summary{
    align-self:center!important;

    display:flex!important;
    align-items:center!important;
    justify-content:center!important;

    margin-top:0!important;
    margin-bottom:0!important;
  }
}



/* =========================================================
   TACTERO_LAY03_CRITICAL_TOUCH_TARGETS_V1

   Scope:
   - Players mobile touch targets
   - Planner mobile touch targets

   Deliberately NOT global:
   - no generic button rule
   - no desktop change
   - no Settings/System/Community change
   - no week-strip width change
   ========================================================= */

@media (max-width: 640px) {

  /* -----------------------------------------
     PLAYERS
     ----------------------------------------- */

  #page-players .players-toolbar button,
  #page-players .player-page-top button,
  #page-players .player-view-switch button {
    min-height: 44px;
  }

  #page-players .player-card .icon-btn.small {
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
    padding-left: 0;
    padding-right: 0;
    flex: 0 0 44px;
  }


  /* -----------------------------------------
     PLANNER – primary/toolbar controls
     ----------------------------------------- */

  #page-planner .page-actions button,
  #page-planner .week-toolbar button,
  #page-planner #newExerciseBtn,
  #page-planner #clearFiltersBtn,
  #page-planner #trainingHeadActions button {
    min-height: 44px;
  }

  #page-planner .week-toolbar .week-nav-btn,
  #page-planner #newExerciseBtn,
  #page-planner #clearFiltersBtn {
    min-width: 44px;
  }


  /* -----------------------------------------
     PLANNER – exercise library card actions

     Previously 27 × 27 px.
     Two separate 44px targets remain explicit
     edit/add actions.
     ----------------------------------------- */

  #page-planner .library-actions {
    width: auto;
    min-width: 92px;
    min-height: 44px;
    gap: 4px;
    flex: 0 0 auto;
  }

  #page-planner .library-actions button {
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
    padding: 0;
  }


  /* -----------------------------------------
     PLANNER – training header actions

     Allows the larger mobile targets to wrap
     rather than forcing horizontal overflow.
     ----------------------------------------- */

  #page-planner #trainingHeadActions {
    flex-wrap: wrap;
    align-items: stretch;
  }

  #page-planner #trainingHeadActions button {
    min-height: 44px;
  }
}
