:root{color-scheme:light;--primary:#3e94da;--primary-dark:#235f9c;--ink:#172033;--muted:#64748b;--line:#dbe3ee;--surface:#fff;--canvas:#f8fafc;--navy:#0f172a;--success:#14966c;--warning:#b7791f;--danger:#d34f5b;--violet:#7359d8;--shadow:0 10px 30px rgba(15,23,42,.055);--radius:1.2rem}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--canvas);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:var(--primary)}.is-hidden{display:none!important}.muted{color:var(--muted)}.eyebrow{margin:0 0 .45rem;color:#2477b8;font-size:.68rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase}.brand-mark{display:grid;place-items:center;width:2.65rem;height:2.65rem;flex:0 0 auto;border-radius:.85rem;background:linear-gradient(135deg,#3e94da,#2757bb);color:#fff;font-size:.9rem;font-weight:950;letter-spacing:-.08em;box-shadow:0 8px 20px rgba(62,148,218,.22)}.brand-mark.small{width:2rem;height:2rem;border-radius:.65rem;font-size:.7rem}.brand-mark.large{width:4rem;height:4rem;margin:0 auto 1rem;border-radius:1.25rem;font-size:1.25rem}.loading-screen,.login-screen{min-height:100vh;display:grid;place-items:center;padding:1rem}.loading-card,.login-card{width:min(100%,30rem);border:1px solid var(--line);border-radius:1.7rem;background:#fff;box-shadow:0 24px 70px rgba(15,23,42,.1);padding:2rem;text-align:center}.loading-card h1,.login-card h1{margin:.35rem 0 .6rem;font-size:1.65rem;letter-spacing:-.045em}.loading-card p,.login-card .muted{margin:0;line-height:1.55}.loader{height:.45rem;margin:1.5rem auto .2rem;overflow:hidden;border-radius:999px;background:#e9f1f9}.loader span{display:block;width:42%;height:100%;border-radius:inherit;background:var(--primary);animation:loading 1.2s ease-in-out infinite}@keyframes loading{0%{transform:translateX(-100%)}100%{transform:translateX(250%)}}.login-brand{display:flex;align-items:center;justify-content:center;gap:.7rem;margin-bottom:2rem;text-align:left}.login-brand strong,.login-brand span{display:block}.login-brand strong{font-size:1.05rem}.login-brand span{margin-top:.15rem;color:var(--muted);font-size:.8rem}.login-card .eyebrow{text-align:left}.login-card h1{text-align:left}.login-card>.muted{text-align:left;font-size:.9rem}.login-roles{display:grid;gap:.65rem;margin:1.35rem 0}.role-button{display:flex;align-items:center;justify-content:space-between;gap:1rem;border:1px solid var(--line);border-radius:.95rem;padding:.85rem 1rem;color:#fff;font-weight:850;transition:transform .18s,box-shadow .18s}.role-button:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(15,23,42,.12)}.role-button span:last-child{font-size:.75rem;opacity:.78}.role-super_admin{background:#172033}.role-admin{background:#3e94da}.role-trener{background:#1b9a70}.role-rodic{background:#e78334}.role-clen{background:#7359d8}.login-note{margin:1rem 0 0;color:#94a3b8;font-size:.72rem;line-height:1.45}.app-screen{min-height:100vh;display:flex}.sidebar{position:sticky;top:0;display:flex;width:18rem;height:100vh;flex:0 0 18rem;flex-direction:column;overflow-y:auto;border-right:1px solid var(--line);background:#fff;box-shadow:5px 0 18px rgba(15,23,42,.03)}.sidebar-brand{display:flex;align-items:center;gap:.7rem;height:5rem;padding:0 1.35rem;border-bottom:1px solid var(--line)}.sidebar-brand strong,.sidebar-brand span{display:block}.sidebar-brand strong{font-size:1rem}.sidebar-brand span{margin-top:.15rem;color:var(--muted);font-size:.73rem}.user-box{display:grid;gap:.25rem;padding:1rem 1.35rem;border-bottom:1px solid var(--line);background:#f8fafc}.user-box span{color:var(--muted);font-size:.72rem}.user-box strong{font-size:.92rem}.user-box b{justify-self:start;border-radius:999px;padding:.25rem .55rem;background:#e7f1ff;color:#2563a3;font-size:.65rem;letter-spacing:.08em;text-transform:uppercase}.desktop-nav{flex:1;padding:1rem .65rem}.nav-btn{display:flex;width:100%;align-items:center;gap:.7rem;border:0;border-right:3px solid transparent;border-radius:.9rem;padding:.75rem .8rem;background:transparent;color:#5b6980;text-align:left;font-size:.83rem;font-weight:750;transition:background .18s,color .18s}.nav-btn:hover{background:#f5f8fc;color:#215f9d}.nav-btn.active{border-right-color:var(--primary);background:#eff6ff;color:#2477b8}.nav-icon{display:grid;place-items:center;width:1.55rem;color:inherit;font-size:1.05rem}.nav-badge{margin-left:auto;min-width:1.25rem;border-radius:999px;padding:.1rem .34rem;background:#ef5350;color:#fff;text-align:center;font-size:.62rem}.logout-button{display:flex;align-items:center;gap:.65rem;margin:0 .85rem 1rem;border:0;border-radius:.8rem;padding:.75rem;color:#c33e4b;background:#fff4f5;font-weight:750}.logout-button:hover{background:#ffe6e9}.mobile-header{display:none}.main-content{width:min(100%,calc(100vw - 18rem));min-width:0;padding:2rem 2.5rem 1.5rem}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.55rem}.topbar h1{margin:0;font-size:clamp(1.6rem,3vw,2.1rem);letter-spacing:-.05em}.topbar-actions{display:flex;align-items:center;gap:.75rem}.icon-button{position:relative;display:grid;place-items:center;width:2.55rem;height:2.55rem;border:1px solid var(--line);border-radius:.85rem;background:#fff;color:#64748b;font-size:1.2rem}.icon-button:hover{border-color:#a9c5e0;color:var(--primary)}.icon-button.dark{border:0;background:rgba(255,255,255,.14);color:#fff}.icon-button i{position:absolute;right:.35rem;top:.35rem;width:.4rem;height:.4rem;border-radius:50%;background:#ef5350}.profile-chip{display:flex;align-items:center;gap:.5rem;color:#526078;font-size:.78rem}.profile-chip span{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:.7rem;background:var(--primary);color:#fff;font-size:.7rem;font-weight:900}.view-section{display:block;animation:fadeIn .24s ease}@keyframes fadeIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.page-footer{padding:2rem 0 .25rem;color:#94a3b8;font-size:.7rem;text-align:right}.page-hero{position:relative;overflow:hidden;border:1px solid #dbe6f5;border-radius:1.55rem;background:linear-gradient(135deg,#f5f8ff 0%,#fff 58%,#eef7ff 100%);box-shadow:0 12px 34px rgba(30,64,175,.055)}.page-hero:after{position:absolute;content:"";right:-4rem;top:-5rem;width:14rem;height:14rem;border-radius:50%;background:rgba(62,148,218,.07);pointer-events:none}.page-hero-inner{position:relative;z-index:1;display:flex;align-items:center;gap:1rem;padding:1.35rem 1.4rem}.page-hero h2{margin:0;font-size:1.5rem;letter-spacing:-.045em}.page-hero p{margin:.35rem 0 0;color:var(--muted);font-size:.84rem}.hero-icon{display:grid;place-items:center;width:3rem;height:3rem;flex:0 0 auto;border-radius:1rem;background:#e8f2ff;color:#2e7dbe;font-size:1.35rem}.grid{display:grid;gap:1rem}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.panel,.stat-card,.member-card,.module-card,.empty-state,.table-wrap,.filter-bar{border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}.panel{padding:1.2rem}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.panel h3,.panel h2{margin:0;font-size:1.02rem;letter-spacing:-.025em}.panel-header p{margin:.25rem 0 0;color:var(--muted);font-size:.76rem}.stat-card{padding:1rem 1.05rem}.stat-card .label{color:var(--muted);font-size:.72rem;font-weight:800}.stat-card strong{display:block;margin:.45rem 0 .25rem;font-size:1.65rem;letter-spacing:-.06em}.stat-card small{color:var(--muted);font-size:.72rem}.stat-card small.success{color:var(--success)}.stat-card small.warning{color:var(--warning)}.stat-card small.danger{color:var(--danger)}.badge,.pill{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:999px;padding:.28rem .55rem;font-size:.66rem;font-weight:850;white-space:nowrap}.badge.blue,.pill.blue{border-color:#cfe2fa;background:#eff6ff;color:#2878b9}.badge.green,.pill.green{border-color:#bdebd9;background:#ecfbf4;color:#15815f}.badge.amber,.pill.amber{border-color:#f5dfac;background:#fff8e6;color:#a86e12}.badge.red{border-color:#f3c7cd;background:#fff1f2;color:#bc3545}.badge.gray{border-color:#e2e8f0;background:#f8fafc;color:#66758b}.badge.violet{border-color:#d9d0fc;background:#f5f2ff;color:#6952c5}.button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:1px solid transparent;border-radius:.8rem;padding:.68rem .9rem;font-size:.78rem;font-weight:850;transition:transform .18s,box-shadow .18s,background .18s}.button:hover{transform:translateY(-1px)}.button.primary{color:#fff;background:var(--primary);box-shadow:0 8px 16px rgba(62,148,218,.18)}.button.secondary{border-color:var(--line);color:#56657c;background:#fff}.button.soft{border-color:#cfe2fa;color:#2878b9;background:#eff6ff}.button.danger{border-color:#f2c9cf;color:#bc3545;background:#fff1f2}.button.success{color:#fff;background:var(--success)}.button.full{width:100%}.button.sm{padding:.48rem .65rem;font-size:.7rem}.toolbar{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.filter-bar{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;padding:.75rem;margin-bottom:1rem;box-shadow:none}.input,.select,.textarea{min-height:2.55rem;width:100%;border:1px solid var(--line);border-radius:.75rem;padding:.55rem .72rem;outline:none;color:var(--ink);background:#fff;font-size:.82rem}.input:focus,.select:focus,.textarea:focus{border-color:#72b1e4;box-shadow:0 0 0 3px rgba(62,148,218,.12)}.input.search{min-width:14rem}.select.compact{width:auto;min-width:10rem}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;font-size:.76rem}.data-table th{padding:.75rem;text-align:left;color:#77859a;background:#f8fafc;font-size:.65rem;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}.data-table td{padding:.75rem;border-top:1px solid #edf1f6;vertical-align:top}.data-table tr:hover td{background:#fbfdff}.empty-state{display:flex;min-height:10rem;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;color:var(--muted);text-align:center;box-shadow:none}.empty-state .empty-icon{display:grid;place-items:center;width:2.8rem;height:2.8rem;margin-bottom:.6rem;border-radius:1rem;background:#eef2f7;color:#728096;font-size:1.3rem}.empty-state strong{color:#475569}.empty-state p{max-width:30rem;margin:.35rem 0 0;font-size:.78rem;line-height:1.5}.dashboard-welcome{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.35rem 1.45rem}.dashboard-welcome h2{margin:0;font-size:1.5rem;letter-spacing:-.045em}.dashboard-welcome p{margin:.35rem 0 0;color:var(--muted);font-size:.84rem}.dash-icon{display:grid;place-items:center;width:3rem;height:3rem;border-radius:1rem;background:#2f83ca;color:#fff;font-size:1.35rem}.notice{display:flex;align-items:flex-start;gap:.7rem;border:1px solid #e5ebf3;border-radius:.9rem;padding:.75rem;background:#fff}.notice-icon{display:grid;place-items:center;width:1.8rem;height:1.8rem;flex:0 0 auto;border-radius:.65rem;background:#eff6ff;color:#2d7fbe;font-weight:900}.notice strong{display:block;font-size:.78rem}.notice small{display:block;margin-top:.18rem;color:var(--muted);font-size:.7rem;line-height:1.45}.notice.danger .notice-icon{background:#fff1f2;color:#c43e4c}.notice.warning .notice-icon{background:#fff8e6;color:#a86e12}.event-card{position:relative;padding:1rem;border:1px solid var(--line);border-radius:1rem;background:#fff;cursor:pointer;transition:transform .18s,box-shadow .18s}.event-card:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(15,23,42,.08)}.event-card h3{margin:.45rem 0 .25rem;font-size:.98rem;line-height:1.25}.event-card p{margin:.22rem 0;color:var(--muted);font-size:.74rem}.event-card .event-actions{display:flex;justify-content:flex-end;gap:.4rem;margin-top:.8rem}.member-card{padding:1rem}.member-head{display:flex;align-items:flex-start;gap:.7rem}.avatar{display:grid;place-items:center;width:2.65rem;height:2.65rem;flex:0 0 auto;border-radius:.85rem;background:#eaf3ff;color:#2b79ba;font-size:.8rem;font-weight:900}.member-card h3{margin:.08rem 0 .2rem;font-size:.9rem}.member-card .role{color:var(--muted);font-size:.7rem}.member-meta{display:grid;gap:.4rem;margin-top:.85rem;padding-top:.75rem;border-top:1px solid #edf1f6;color:var(--muted);font-size:.7rem}.member-meta div{display:flex;justify-content:space-between;gap:.5rem}.member-meta b{color:var(--ink);text-align:right}.week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem}.week-day{border:1px solid var(--line);border-radius:.75rem;padding:.55rem .25rem;background:#fff;color:#64748b;text-align:center}.week-day strong,.week-day span{display:block}.week-day strong{font-size:.72rem}.week-day span{margin-top:.2rem;font-size:.62rem}.week-day.active{border-color:var(--primary);background:#eff6ff;color:#2477b8}.attendance-row{display:flex;align-items:center;gap:.75rem;padding:.75rem;border:1px solid var(--line);border-radius:.85rem;background:#fff}.attendance-row.present{border-color:#bdebd9;background:#f3fdf8}.attendance-row.excused{border-color:#f4dfb2;background:#fffaf0}.attendance-row .row-main{min-width:0;flex:1}.attendance-row strong{display:block;font-size:.8rem}.attendance-row small{display:block;margin-top:.2rem;color:var(--muted);font-size:.68rem}.attendance-toggle{width:2.8rem;height:1.55rem;border:0;border-radius:999px;background:#d8e0ea;position:relative}.attendance-toggle:after{content:"";position:absolute;top:.18rem;left:.2rem;width:1.15rem;height:1.15rem;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;transition:left .18s}.attendance-toggle.on{background:var(--success)}.attendance-toggle.on:after{left:1.45rem}.detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.detail-head h2{margin:.35rem 0;font-size:1.55rem;letter-spacing:-.05em}.detail-head p{margin:.25rem 0;color:var(--muted);font-size:.8rem}.detail-actions{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.calendar-label{font-size:1.15rem;font-weight:900}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem}.calendar-weekday{padding:.35rem;color:#94a3b8;text-align:center;font-size:.65rem;font-weight:850;text-transform:uppercase}.calendar-cell{min-height:7rem;border:1px solid #e4eaf1;border-radius:.75rem;padding:.45rem;background:#fff}.calendar-cell.muted-day{background:#f8fafc;color:#b1bac8}.calendar-cell.today{border-color:#79b7e5;box-shadow:inset 0 0 0 2px #eaf5fd}.calendar-number{font-size:.72rem;font-weight:900}.calendar-events{display:grid;gap:.22rem;margin-top:.38rem}.calendar-event{overflow:hidden;border-radius:.35rem;padding:.22rem .3rem;background:#eff6ff;color:#2878b9;font-size:.58rem;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.calendar-event.tournament{background:#fff8e6;color:#a86e12}.calendar-event.action{background:#f4f0ff;color:#6b52c8}.calendar-event.training{background:#ecfbf4;color:#15815f}.calendar-event.camp{background:#fff1f2;color:#b8394a}.product-card{overflow:hidden;border:1px solid var(--line);border-radius:1rem;background:#fff}.product-image{display:grid;place-items:center;height:9rem;background:linear-gradient(135deg,#eef5ff,#f8fafc);color:#6894be;font-size:2.4rem}.product-image img{width:100%;height:100%;object-fit:cover}.product-body{padding:.9rem}.product-body h3{margin:0;font-size:.9rem}.product-body p{height:2.2rem;margin:.3rem 0;color:var(--muted);font-size:.7rem;line-height:1.45;overflow:hidden}.product-footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.7rem}.modal-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:1rem;background:rgba(15,23,42,.45);backdrop-filter:blur(4px)}.modal{width:min(100%,42rem);max-height:calc(100vh - 2rem);overflow:auto;border:1px solid var(--line);border-radius:1.35rem;background:#fff;box-shadow:0 28px 80px rgba(15,35,85,.25)}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.15rem 1.25rem;border-bottom:1px solid #edf1f6}.modal-head h2{margin:0;font-size:1.15rem}.modal-body{padding:1.2rem}.modal-close{border:0;background:transparent;color:#94a3b8;font-size:1.25rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.form-field{display:grid;gap:.3rem}.form-field.full{grid-column:1/-1}.form-field label{color:#53627a;font-size:.72rem;font-weight:800}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #edf1f6}.toast{position:fixed;right:1.2rem;bottom:1.2rem;z-index:120;max-width:24rem;border:1px solid var(--line);border-left:4px solid var(--primary);border-radius:.9rem;padding:.8rem 1rem;background:#fff;box-shadow:0 15px 35px rgba(15,23,42,.14);font-size:.78rem;font-weight:750}.toast.success{border-left-color:var(--success)}.toast.error{border-left-color:var(--danger)}.toast.info{border-left-color:var(--primary)}.two-col-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.stat-highlight{border:1px solid #dce9f7;border-radius:1rem;padding:.85rem;background:#f7fbff}.stat-highlight strong{display:block;font-size:1.2rem}.stat-highlight span{display:block;margin-top:.2rem;color:var(--muted);font-size:.68rem}.progress{height:.45rem;overflow:hidden;border-radius:999px;background:#e6edf5}.progress span{display:block;height:100%;border-radius:inherit;background:var(--primary)}.settings-nav{display:flex;gap:.45rem;overflow:auto;padding-bottom:.1rem}.settings-tab{border:1px solid var(--line);border-radius:.8rem;padding:.55rem .75rem;background:#fff;color:#64748b;font-size:.72rem;font-weight:800;white-space:nowrap}.settings-tab.active{border-color:#bcd9f2;background:#eff6ff;color:#2477b8}.chip-list{display:flex;flex-wrap:wrap;gap:.35rem}.chip{border-radius:999px;padding:.28rem .5rem;background:#f1f5f9;color:#53627a;font-size:.66rem;font-weight:750}@media(max-width:1050px){.sidebar{width:15.5rem;flex-basis:15.5rem}.main-content{width:calc(100vw - 15.5rem);padding-inline:1.5rem}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.app-screen{display:block}.mobile-header{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:.7rem 1rem;background:var(--primary);color:#fff;box-shadow:0 4px 15px #0f172a20}.mobile-brand{display:flex;align-items:center;gap:.55rem;min-width:0;font-weight:850}.mobile-brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar{display:none}.main-content{width:100%;padding:1.1rem .9rem 5.6rem}.topbar{margin-bottom:1.1rem}.topbar h1{font-size:1.5rem}.profile-chip b{display:none}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;justify-content:space-around;gap:.2rem;padding:.35rem .25rem calc(.35rem + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:rgba(255,255,255,.96);box-shadow:0 -10px 30px rgba(15,23,42,.1);backdrop-filter:blur(10px)}.bottom-nav .nav-btn{display:flex;width:20%;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;border:0;border-top:3px solid transparent;border-radius:.65rem;padding:.25rem .1rem;color:#94a3b8;text-align:center;font-size:.58rem}.bottom-nav .nav-btn.active{border-top-color:var(--primary);background:#eff6ff;color:#2477b8}.bottom-nav .nav-icon{width:auto;font-size:1.05rem}.bottom-nav .nav-badge{position:absolute;right:18%;top:.1rem;min-width:1rem;font-size:.55rem}.bottom-nav .nav-btn{position:relative}.grid-2,.grid-3,.grid-4,.two-col-list{grid-template-columns:1fr}.page-hero-inner,.dashboard-welcome{align-items:flex-start;padding:1rem}.dashboard-welcome h2{font-size:1.25rem}.filter-bar{align-items:stretch}.input.search,.select.compact{width:100%;min-width:0}.calendar-cell{min-height:5rem;padding:.3rem}.calendar-event{font-size:.5rem}.calendar-cell:nth-child(n){font-size:.65rem}.form-grid{grid-template-columns:1fr}.form-field.full{grid-column:auto}.detail-head{display:block}.detail-actions{justify-content:flex-start;margin-top:.8rem}.table-wrap{margin-inline:-.2rem}.data-table{min-width:38rem}.toast{right:.8rem;bottom:5rem;left:.8rem;max-width:none}.page-footer{text-align:left}.panel{padding:1rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
:root{color-scheme:light;--primary:#3e94da;--primary-dark:#235f9c;--ink:#172033;--muted:#64748b;--line:#dbe3ee;--surface:#fff;--canvas:#f8fafc;--navy:#0f172a;--success:#14966c;--warning:#b7791f;--danger:#d34f5b;--violet:#7359d8;--shadow:0 10px 30px rgba(15,23,42,.055);--radius:1.2rem}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--canvas);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}
 .member-filter-row{display:flex;flex-wrap:wrap;gap:.55rem;margin:.9rem 0}.filter-chip{display:inline-flex;align-items:center;gap:.45rem;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);padding:.5rem .75rem;font-size:.78rem;font-weight:800;cursor:pointer}.filter-chip span{color:#94a3b8;font-size:.7rem}.filter-chip:hover,.filter-chip.active{border-color:#8bb5ee;background:#eef6ff;color:#3474bd}.filter-chip.active span{color:#3474bd}.filter-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem}.member-footer{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:.75rem;padding-top:.7rem;border-top:1px solid var(--line);font-size:.72rem}.member-card .avatar{overflow:hidden}.member-card .avatar img{width:100%;height:100%;object-fit:cover}@media(max-width:1000px){.filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:640px){.filter-grid{grid-template-columns:1fr 1fr}.member-footer{align-items:flex-start;flex-direction:column}}
 .attendance-row .row-main{display:grid;gap:.3rem}.attendance-note{width:100%;max-width:19rem;border:1px solid var(--line);border-radius:.55rem;padding:.35rem .5rem;background:#fff;color:var(--ink);font-size:.68rem}.attendance-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem}.attendance-choice{border:1px solid var(--line);border-radius:999px;padding:.35rem .55rem;background:#fff;color:var(--muted);font-size:.65rem;font-weight:800}.attendance-choice.selected.present-choice{border-color:#bdebd9;background:#ecfbf4;color:#15815f}.attendance-choice.selected.excused-choice{border-color:#f5dfac;background:#fff8e6;color:#a86e12}@media(max-width:760px){.attendance-row{align-items:flex-start;flex-wrap:wrap}.attendance-row .row-main{min-width:calc(100% - 3.5rem)}.attendance-note{max-width:none}.attendance-actions{width:100%;justify-content:flex-start;margin-left:3.4rem}}
.detail-tabs{display:flex;gap:.35rem;overflow:auto;border-bottom:1px solid var(--line);margin:1.2rem -1rem 1rem;padding:0 1rem}.detail-tab{border:0;background:transparent;color:var(--muted);font:inherit;font-weight:800;font-size:.76rem;white-space:nowrap;padding:.8rem .7rem;border-bottom:3px solid transparent;cursor:pointer}.detail-tab:hover{color:var(--ink);background:#f6f8fc}.detail-tab.active{color:var(--primary);border-color:var(--primary);background:#f1f6ff}.data-table tr.row-selected{background:#f1f6ff}.data-table td small{display:block;color:var(--muted);font-size:.68rem;margin-top:.18rem}.table-input{width:100%;min-width:6rem;border:1px solid var(--line);border-radius:.45rem;padding:.42rem .5rem;background:#fff;color:var(--ink);font:inherit;font-size:.78rem}.table-input.narrow{min-width:4.5rem}@media(max-width:700px){.detail-tabs{margin-left:-.75rem;margin-right:-.75rem;padding:0 .75rem}.detail-tab{font-size:.68rem;padding:.7rem .45rem}.data-table{min-width:700px}}
.login-form{display:grid;gap:.4rem;margin:1.15rem 0;text-align:left}.login-form label{color:#53627a;font-size:.72rem;font-weight:800}.login-form .button{margin-top:.35rem}
.compact-list{margin:0;padding-left:1.2rem;color:var(--muted);font-size:.75rem;line-height:1.65}.compact-list li::marker{color:var(--primary)}.event-summary{display:flex;justify-content:space-between;gap:.5rem;margin-top:.75rem;padding-top:.65rem;border-top:1px solid #edf1f6;color:var(--muted);font-size:.7rem;font-weight:750}
.calendar-day{display:block;width:100%;color:var(--ink);text-align:left}.calendar-day.selected-day{border-color:#6faee0;background:#f3f8ff;box-shadow:inset 0 0 0 2px #e4f0fb}.calendar-agenda-item{width:100%;border:1px solid var(--line);text-align:left}
.training-plan{white-space:pre-wrap;color:var(--ink);font-size:.8rem;line-height:1.65}.training-plan-preview{display:-webkit-box;max-height:3.3rem;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;white-space:pre-line}
.diary-week-board{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.4rem}.diary-day{min-height:7rem;border:1px solid var(--line);border-radius:.7rem;padding:.55rem .4rem;background:#fff;color:var(--muted);text-align:left}.diary-day strong,.diary-day span,.diary-day b,.diary-day small{display:block}.diary-day strong{color:var(--ink);font-size:.7rem}.diary-day span{margin-top:.2rem;font-size:.62rem}.diary-day b{margin-top:1rem;color:var(--primary);font-size:.68rem}.diary-day small{margin-top:.25rem;font-size:.62rem}.diary-day.active{border-color:var(--primary);background:#eff6ff}.diary-day.active b{color:var(--primary-dark)}@media(max-width:760px){.diary-week-board{grid-template-columns:repeat(7,minmax(4.4rem,1fr));overflow:auto;padding-bottom:.35rem}.diary-day{min-height:6rem}}

.training-week-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:1rem}.training-week-flow,.training-week-summary{min-width:0;border:1px solid var(--line);border-radius:.85rem;padding:.8rem;background:#fff}.training-week-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.7rem}.training-week-section-heading strong,.training-week-section-heading small{display:block}.training-week-section-heading strong{color:var(--ink);font-size:.9rem}.training-week-section-heading small{margin-top:.18rem;color:var(--muted);font-size:.72rem}.training-week-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem}.training-week-day{min-width:0;min-height:8.7rem;padding:.58rem .42rem;border:1px solid var(--line);border-top:3px solid #dce7f5;border-radius:.72rem;background:#fff;color:var(--muted);text-align:left;cursor:pointer;overflow:hidden}.training-week-day:hover{border-color:#93c5fd}.training-week-day.is-selected,.training-week-day.is-today{border-color:#60a5fa;background:#eff6ff}.training-week-day.is-selected{box-shadow:0 0 0 1px #60a5fa inset}.training-week-day-head{display:flex;align-items:center;gap:.25rem;position:relative}.training-week-day-head b{font-size:.62rem;color:#8092aa}.training-week-day-head strong{font-size:.95rem;color:var(--ink)}.training-week-day-head em{margin-left:auto;padding:.12rem .24rem;border-radius:.3rem;background:#dbeafe;color:#2563eb;font-size:.52rem;font-style:normal}.training-week-day-state{display:block;margin-top:.75rem;padding:.3rem .35rem;border-radius:.35rem;background:#eef2f7;color:#708199;font-size:.56rem;font-weight:800;line-height:1.15}.training-week-day-state.has-training{background:#dbeafe;color:#1769aa}.training-week-day small{display:block;margin-top:.45rem;font-size:.62rem}.training-week-day-title{display:block;margin-top:.6rem;color:var(--ink);font-size:.67rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.training-week-summary-wrap{overflow-x:auto}.training-week-summary-table{min-width:39rem}.training-week-summary-table th,.training-week-summary-table td{padding:.62rem .45rem;text-align:center;white-space:nowrap}.training-week-summary-table thead th{font-size:.62rem;color:var(--muted);background:#f8fafc}.training-week-summary-table thead th:first-child,.training-week-summary-table tbody th{text-align:left}.training-week-summary-table thead th small{display:block;margin-top:.1rem;font-size:.58rem}.training-week-summary-table tbody th span{font-size:.64rem;color:var(--muted)}.training-week-summary-table tbody td{font-size:.7rem;color:#41688d}.training-week-summary-table .training-week-total{background:#eff6ff;color:#1769aa;font-weight:800}.training-week-notices .notice{min-width:0}
@media(max-width:1100px){.training-week-layout{grid-template-columns:1fr}}
@media(max-width:760px){.training-week-days{grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem}.training-week-day{min-height:7.7rem}.training-week-notices{grid-template-columns:1fr}.training-week-section-heading{flex-direction:column;gap:.35rem}}
@media(max-width:430px){.training-week-days{grid-template-columns:repeat(2,minmax(0,1fr))}.training-week-day{min-height:7rem}}
.td-smart-plan .td-insight-row{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:760px){.td-smart-plan .td-insight-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
.training-form{display:grid;gap:1rem}.training-form-section{border:1px solid #dce7f3;border-radius:1rem;padding:.85rem;background:#fff}.training-form-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.75rem;color:#1f3554}.training-form-section-head strong{font-size:.82rem}.training-form-section-head small{color:#8292a8;font-size:.65rem}.training-form-section .form-grid{gap:.75rem}.training-form-section .form-field label,.training-form-template label{font-size:.7rem;font-weight:850}.training-duration{display:flex;align-items:center;background:#f3f7fb;color:#8090a5}.training-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}.training-choice{display:flex;align-items:center;gap:.5rem;min-width:0;border:1px solid #dce7f3;border-radius:.7rem;padding:.62rem .65rem;background:#fff;color:#425875;font-size:.72rem;font-weight:700;cursor:pointer}.training-choice:hover{border-color:#83b9e7;background:#f7fbff}.training-choice input{margin:0;accent-color:var(--primary)}.training-form-template{padding:.2rem 0}.training-form-template small{display:block;margin-top:.25rem}@media(max-width:680px){.training-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.training-form-section-head{flex-direction:column;gap:.25rem}}
.filter-field{display:grid;gap:.25rem;color:var(--muted);font-size:.65rem;font-weight:800}.filter-field .select{min-width:11rem}.product-choice{display:grid;gap:.25rem;margin-top:.65rem;color:var(--muted);font-size:.66rem;font-weight:800}.product-choice .select{width:100%;min-width:0;font-size:.7rem}

/* Vizuální hustota původní aplikace: kratší karty, menší typografie a žádné
   natahování sousedních karet podle nejdelšího obsahu. */
.main-content{padding:1.5rem 2rem 1.25rem}
.grid-2,.grid-3,.grid-4{align-items:start}
.page-hero{border-radius:1.25rem}
.page-hero-inner{padding:1.05rem 1.2rem}
.page-hero h2{font-size:1.35rem}
.panel,.stat-card,.member-card,.module-card,.empty-state,.table-wrap,.filter-bar{border-radius:1rem;box-shadow:0 5px 18px rgba(15,23,42,.04)}
.panel{padding:1rem}
.panel-header{margin-bottom:.8rem}
.event-card{padding:.85rem;border-radius:.9rem}
.event-card h3{font-size:.9rem}
.event-card p{font-size:.7rem}
.event-card .event-summary{margin-top:.65rem;padding-top:.6rem;font-size:.67rem}
.stat-card{padding:.8rem .85rem}
.stat-card strong{margin:.3rem 0 .2rem;font-size:1.35rem}
.stat-highlight{border-radius:.85rem;padding:.75rem;background:#f7fbff}
.stat-highlight strong{font-size:1rem;line-height:1.3}
.stat-highlight span{font-size:.66rem}
.modal{width:min(100%,52rem);border-radius:1.15rem}
.modal-head{padding:1rem 1.1rem}
.modal-body{padding:1rem 1.1rem 1.1rem}
.modal .grid-2,.modal .grid-3,.modal .grid-4{align-items:start;gap:.75rem}
.modal .stat-card{min-height:0;padding:.75rem .8rem}
.modal .stat-card .label{font-size:.66rem}
.modal .stat-card strong{margin:.25rem 0 .15rem;font-size:1.05rem;line-height:1.3;letter-spacing:-.025em}
.modal .stat-card small{font-size:.66rem}
.modal .stat-highlight{padding:.7rem .75rem;border-radius:.8rem}
.modal .stat-highlight strong{font-size:.95rem}
.detail-head h2{font-size:1.3rem}
@media(max-width:760px){.main-content{padding:1.1rem .9rem 5.6rem}.modal{width:100%}.modal-body{padding:.85rem}.modal .grid-2,.modal .grid-3,.modal .grid-4{gap:.65rem}}

/* Docházka podle původního Apps Scriptu: jeden přepínač místo dvou tlačítek. */
.attendance-row{min-height:4.7rem;padding:.8rem 1rem;border-radius:1rem;transition:background .18s,border-color .18s,box-shadow .18s,opacity .18s}
.attendance-row:not(.present){opacity:.72}
.attendance-row.present{opacity:1;border-color:#cfe2fa;background:#eff6ff;box-shadow:0 5px 16px rgba(62,148,218,.07)}
.attendance-row .avatar{width:2.5rem;height:2.5rem;border-radius:.8rem}
.attendance-excused{display:block;margin-top:.2rem;color:#c56a19;font-size:.66rem;font-weight:800;line-height:1.35}
.attendance-toggle{width:3.5rem;height:2rem;flex:0 0 auto;border:0;border-radius:999px;background:#e5e7eb;position:relative;box-shadow:inset 0 0 0 1px rgba(15,23,42,.06);transition:background .2s,box-shadow .2s}
.attendance-toggle:after{top:.25rem;left:.25rem;width:1.5rem;height:1.5rem;box-shadow:0 2px 5px rgba(15,23,42,.16);transition:left .2s}
.attendance-toggle.on{background:var(--primary);box-shadow:none}
.attendance-toggle.on:after{left:1.75rem}
.attendance-toggle:focus-visible{outline:3px solid rgba(62,148,218,.22);outline-offset:2px}
.action-document-card{align-items:stretch;padding:1rem}.action-document-card>.notice{padding:.65rem}.action-document-row{align-items:center;cursor:pointer}.action-document-row input{width:1.05rem;height:1.05rem;accent-color:var(--primary)}.action-document-panel .notice strong{font-size:.78rem}.action-document-panel .notice small{font-size:.67rem}.b7-progress-card{display:flex;flex-direction:column;gap:.2rem}.b7-progress-row{align-items:flex-start}.b7-progress-row input{margin-top:.2rem}

/* Vizuální sjednocení podle původní Script aplikace: kompaktní karty, chips a hustší pracovní plochy. */
:root{--primary:#5b98dc;--primary-dark:#3e70b7;--ink:#17233d;--muted:#70809a;--line:#dce5f0;--canvas:#f7f9fc;--radius:1.15rem;--shadow:0 7px 22px rgba(31,65,110,.045)}
body{font-size:15px;letter-spacing:-.01em}
.main-content{max-width:1220px;padding:1.65rem 2rem 1.5rem}
@media(min-width:1600px){.main-content{max-width:none}}
.topbar{margin-bottom:1.15rem}.topbar h1{font-size:clamp(1.8rem,3vw,2.45rem);font-weight:900}.eyebrow{font-size:.7rem;letter-spacing:.18em;color:#4c79b4}
.page-hero{border-radius:1.45rem;box-shadow:0 9px 26px rgba(70,116,173,.06)}.page-hero-inner{min-height:7.15rem;padding:1.15rem 1.35rem}.page-hero h2{font-size:1.45rem}.page-hero p{font-size:.86rem}.hero-icon{width:3.15rem;height:3.15rem;border-radius:1.05rem}
.panel,.stat-card,.member-card,.module-card,.empty-state,.table-wrap,.filter-bar{border-radius:1rem;box-shadow:var(--shadow)}.panel{padding:1rem}.panel-header{margin-bottom:.8rem}.panel h3,.panel h2{font-size:1rem}
.grid{gap:.8rem}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{gap:.75rem}
.filter-bar{gap:.55rem;padding:.65rem;margin-bottom:.8rem}.filter-field{display:grid;gap:.25rem}.filter-field>span{color:var(--muted);font-size:.68rem;font-weight:800}
.input,.select,.textarea{min-height:2.45rem;border-radius:.72rem;padding:.5rem .68rem;font-size:.8rem}.input.search{min-width:15rem}
.button{border-radius:999px;padding:.58rem .82rem;font-size:.76rem;box-shadow:none}.button.primary{box-shadow:0 5px 12px rgba(91,152,220,.2)}.button.sm{padding:.42rem .68rem;font-size:.68rem}.button.secondary,.button.soft,.button.danger{background:#fff}
.badge,.pill,.chip{border-radius:999px}.badge,.pill{padding:.3rem .6rem;font-size:.66rem}.chip{padding:.34rem .58rem;border:1px solid #e4ebf3;background:#f8fafc}
.member-filter-row,.settings-nav{gap:.45rem}.filter-chip,.settings-tab{border-radius:999px;padding:.47rem .72rem;font-size:.74rem;background:#fff}.filter-chip.active,.settings-tab.active{background:#eef5ff;border-color:#8db5ea;color:#3975bb}
.member-card{padding:.85rem}.member-head{gap:.62rem}.avatar{width:2.7rem;height:2.7rem;border-radius:.85rem}.member-card h3{font-size:.88rem}.member-meta{gap:.32rem;margin-top:.7rem;padding-top:.65rem}.member-footer{margin-top:.62rem;padding-top:.6rem}
.event-card{padding:.82rem;border-radius:.88rem}.event-card h3{font-size:.92rem}.event-card .event-actions{margin-top:.62rem}
.attendance-row{gap:.62rem;padding:.68rem;border-radius:.82rem}.attendance-row strong{font-size:.78rem}.attendance-toggle{width:2.75rem;height:1.5rem}
.calendar-cell{min-height:6.3rem;border-radius:.65rem;padding:.38rem}.calendar-event{padding:.2rem .28rem;font-size:.56rem}
.product-card{border-radius:.9rem}.product-image{height:7.8rem}.product-body{padding:.78rem}.product-body h3{font-size:.86rem}.product-body p{font-size:.68rem}
.modal{border-radius:1.15rem}.modal-head{padding:1rem 1.1rem}.modal-body{padding:1rem 1.1rem}.modal-actions{margin-top:.8rem;padding-top:.8rem}
.toolbar{gap:.45rem}.notice{gap:.55rem;padding:.65rem;border-radius:.8rem}.stat-card{padding:.8rem .85rem}.stat-card strong{font-size:1.4rem}
@media(max-width:1050px){.main-content{padding-inline:1.35rem}}
@media(max-width:760px){body{font-size:14px}.main-content{padding:1rem .75rem 5.8rem}.topbar h1{font-size:1.65rem}.topbar{margin-bottom:.9rem}.page-hero-inner{min-height:0;padding:.9rem}.page-hero h2{font-size:1.25rem}.page-hero p{font-size:.76rem}.panel{padding:.82rem}.filter-bar{padding:.55rem}.input.search{min-width:0}.grid-3{grid-template-columns:1fr 1fr}.member-card{padding:.75rem}.calendar-cell{min-height:5.1rem}.calendar-event{font-size:.5rem}.bottom-nav .nav-btn{font-size:.57rem}}
@media(max-width:480px){.grid-3{grid-template-columns:1fr}.page-hero-inner{align-items:flex-start}.hero-icon{width:2.65rem;height:2.65rem}.button{padding:.54rem .72rem}.member-filter-row{overflow:auto;flex-wrap:nowrap;padding-bottom:.15rem}.filter-chip{flex:0 0 auto}}

/* Více modulů: kompaktní dlaždice, aby byl přehled dostupný bez dlouhého rolování. */
.more-module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}
.more-module-card{display:flex;align-items:center;gap:.7rem;min-width:0;padding:.72rem .78rem!important;border:1px solid var(--line);border-radius:1rem;background:#fff;color:var(--ink);text-align:left;box-shadow:var(--shadow);transition:transform .16s,box-shadow .16s,border-color .16s}
.more-module-card:hover{transform:translateY(-1px);border-color:#bfd6f2;box-shadow:0 10px 22px rgba(31,65,110,.08)}
.more-module-card .hero-icon{width:2.7rem;height:2.7rem;flex:0 0 auto;border-radius:.85rem;font-size:1.2rem}
.more-module-copy{display:grid;min-width:0;gap:.2rem}
.more-module-copy strong{overflow:hidden;font-size:.8rem;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.more-module-copy .muted{font-size:.65rem;line-height:1.2}
@media(max-width:340px){.more-module-grid{grid-template-columns:1fr}}

.design-filter-panel{display:grid;gap:.85rem;margin-top:1rem;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:1rem;background:#fff;box-shadow:var(--shadow)}.filter-search-line{display:flex;align-items:center;gap:.55rem}.filter-search-line .input{flex:1}.visual-filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.visual-filter-section{padding:.7rem .75rem;border:1px solid #e4eaf2;border-radius:.85rem;background:#fbfcfe}.visual-filter-label{display:block;margin-bottom:.45rem;color:#697992;font-size:.67rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase}.visual-filter-section small{display:block;margin-top:.1rem;color:#9aa7b8;font-size:.66rem}.visual-filter-section .member-filter-row{margin:0}.visual-filter-wide{grid-column:1/-1}.visual-checkbox{display:flex;align-items:center;gap:.5rem;color:#506079;font-size:.76rem}.visual-checkbox input{width:1rem;height:1rem;accent-color:var(--primary)}.detail-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin-top:.75rem}.detail-action-button{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:3.1rem;border:1px solid var(--line);border-radius:.9rem;padding:.6rem .75rem;background:#fff;color:#5f6c80;font:inherit;font-size:.76rem;font-weight:850;text-align:center;transition:transform .16s,box-shadow .16s,border-color .16s}.detail-action-button:hover{transform:translateY(-1px);box-shadow:0 7px 16px rgba(30,64,110,.09)}.detail-action-button span{font-size:1rem}.detail-action-button.edit{border-color:#cfe0fb;background:#eff6ff;color:#426fd0}.detail-action-button.delete{border-color:#f2d0d3;background:#fff4f4;color:#b33f46}.detail-action-button.back{border-color:#e1e6ee;background:#fff;color:#6d7787}.tournament-card-actions{margin-top:.75rem}.modal-tournament-actions{margin:0 0 1rem;grid-template-columns:repeat(3,minmax(0,1fr))}.modal-tournament-actions .detail-action-button{min-height:2.8rem}
.design-filter-panel.is-collapsed>.visual-filter-section,.design-filter-panel.is-collapsed>.visual-filter-grid,.design-filter-panel.is-collapsed>.visual-checkbox{display:none}
@media(max-width:760px){.design-filter-panel{padding:.8rem}.filter-search-line{align-items:center;flex-wrap:nowrap}.filter-search-line .input{flex:1 1 auto;min-width:0}.visual-filter-grid{grid-template-columns:1fr}.visual-filter-wide{grid-column:auto}.detail-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.modal-tournament-actions{grid-template-columns:1fr 1fr}.modal-tournament-actions .back{grid-column:1/-1}}

/* Hustší souhrny a vodorovné karty pro plochu desktopu. */
.grid:has(> .stat-card){grid-template-columns:repeat(4,minmax(0,1fr))}.grid:has(> .stat-card) .stat-card{min-width:0}
.camp-compact-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;margin-top:.7rem}.camp-compact-meta span{border:1px solid #dbe8fa;border-radius:.65rem;padding:.45rem .55rem;background:#f4f8ff;color:#3c6cc0;font-size:.7rem;font-weight:800}.camp-compact-meta span+span{background:#f8fafc;color:#52617a;border-color:#e5ebf3}
.camp-card-actions,.action-card-actions{margin-top:.65rem}.event-card .detail-action-button{min-height:2.45rem;padding:.4rem .55rem;font-size:.68rem}
#view-clubwear .grid.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}#view-clubwear .product-card{display:grid;grid-template-columns:5rem minmax(0,1fr);align-items:start;min-height:8.2rem}.product-card .product-image{width:4.2rem;height:4.2rem;margin:.8rem;border-radius:.8rem}.product-card .product-body{min-width:0;padding:.8rem .8rem .75rem .1rem}.product-card .product-body h3{font-size:.88rem}.product-card .product-body p{height:1.9rem;margin:.24rem 0;font-size:.68rem}.product-card .product-choice{display:grid;gap:.2rem}.product-card .product-choice span{color:var(--muted);font-size:.64rem;font-weight:800}.product-card .product-choice .select{min-height:2rem;padding:.35rem .5rem}.product-card .product-footer{margin-top:.5rem}.product-card .product-footer strong{font-size:.75rem}.product-card .product-footer .button{padding:.38rem .6rem}
#view-communication .notice{box-shadow:var(--shadow)}#view-communication .notice>div{min-width:0}#view-communication article.notice{border-radius:.95rem}.training-plan-preview{max-height:2.2rem!important}
@media(max-width:900px){.grid:has(> .stat-card){grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){#view-clubwear .grid.grid-3{grid-template-columns:1fr}#view-clubwear .product-card{grid-template-columns:4.5rem minmax(0,1fr)}.product-card .product-image{width:3.8rem;height:3.8rem;margin:.7rem}.product-card .product-body{padding:.7rem .65rem .65rem .05rem}.camp-compact-meta{gap:.35rem}.camp-compact-meta span{font-size:.66rem;padding:.4rem}.detail-action-button b{font-size:.68rem}}

/* IZOdesk-inspired shell: one clear page title, restrained chrome and fast action targets. */
.topbar{min-height:1.6rem;margin-bottom:.35rem;justify-content:flex-end}.topbar>div:first-child{display:none}.topbar-actions{gap:.45rem}.page-hero-actions{display:flex;align-items:center;justify-content:flex-end;gap:.55rem;min-width:0}.page-hero-actions:has(.settings-nav){flex-direction:column;align-items:flex-end;gap:.55rem}.page-hero-actions .settings-nav{margin:0}
.page-hero{background:linear-gradient(135deg,#fff 0%,#fbfdff 70%,#f0f6ff 100%)}.page-hero:after{right:-5rem;top:-6rem;background:rgba(91,152,220,.08)}.page-hero h2{font-weight:900}.page-hero p{max-width:58rem}
.panel-header h3,.event-card h3,.product-body h3,.member-card h3{font-weight:900}.panel-header p{line-height:1.4}.stat-card{border-color:#e1e8f2}.stat-card:nth-child(2){background:#f4f8ff;border-color:#dce9fb}.stat-card:nth-child(3){background:#fffaf0;border-color:#f2e6c9}.stat-card:nth-child(4){background:#f1fbf6;border-color:#d9f0e3}
.settings-nav{border:1px solid #e3eaf3;border-radius:1rem;padding:.35rem;background:#fff;box-shadow:0 5px 16px rgba(31,65,110,.035)}.settings-tab{border-color:transparent}.settings-tab.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 5px 11px rgba(91,152,220,.2)}
.event-card,.product-card,.member-card{transition:transform .16s,box-shadow .16s,border-color .16s}.event-card:hover,.product-card:hover,.member-card:hover{transform:translateY(-1px);border-color:#bfd6f2;box-shadow:0 10px 22px rgba(31,65,110,.08)}
.button.danger{color:#b33f46;background:#fff4f4}.button.danger:hover{background:#ffeded}.button.primary:hover{background:#4e8dd1}.button.secondary:hover{border-color:#bdd3ed;background:#f7fbff}.filter-chip.active{box-shadow:0 4px 10px rgba(91,152,220,.13)}
.data-table th{font-weight:900}.data-table td{padding:.62rem .7rem}.data-table tr:nth-child(even) td{background:#fbfcfe}
@media(max-width:760px){.topbar{display:none}.mobile-header{min-height:4rem;padding:.65rem .9rem}.mobile-brand{font-size:1rem}.mobile-brand .brand-mark{width:2.4rem;height:2.4rem}.page-hero-inner{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.7rem}.page-hero-actions{grid-column:1/-1;width:100%;align-items:stretch}.page-hero-actions>.button{width:100%}.page-hero-actions:has(.settings-nav){align-items:stretch}.page-hero-actions .settings-nav{width:100%;justify-content:flex-start;overflow:auto}.page-hero-actions .settings-nav .settings-tab{flex:0 0 auto}.stat-card{padding:.72rem}.stat-card strong{font-size:1.2rem}.data-table td,.data-table th{padding:.55rem}.page-footer{display:none}}

/* Mobilní navigace musí zůstat viditelná i po překreslení dlouhého seznamu členů. */
@media(max-width:760px){#app-screen{position:relative;min-height:100vh}#bottom-nav.bottom-nav{position:fixed!important;left:0!important;right:0!important;bottom:0!important;z-index:100!important;display:flex!important;min-height:4.25rem!important}}

/* Kompletní formulář osoby: člen je upravitelný po přehledných sekcích a bez
   horizontálního posuvu na telefonu. */
.member-form-section{margin-top:1rem;border:1px solid #e3eaf3;border-radius:1rem;padding:.9rem;background:#fbfcfe}
.member-form-section:first-child{margin-top:0}
.member-form-section-head{margin-bottom:.75rem}
.member-form-section-head h3{margin:0;color:var(--ink);font-size:.95rem;font-weight:900}
.member-form-section-head p{margin:.25rem 0 0;color:var(--muted);font-size:.7rem;line-height:1.45}
.member-form-grid{gap:.7rem}
.member-photo-editor{display:grid;grid-template-columns:6rem minmax(0,1fr);align-items:start;gap:1rem}
.member-family-section [data-family-contacts]{display:grid;gap:.7rem}
.member-family-contact{border:1px solid #e3eaf3;border-radius:.85rem;padding:.75rem;background:#fff}
.member-family-contact-head{display:flex;align-items:baseline;justify-content:space-between;gap:.7rem;margin-bottom:.55rem}
.member-family-contact-head strong{color:var(--ink);font-size:.78rem;font-weight:850}
.member-family-contact-head small{color:var(--muted);font-size:.65rem}
.member-family-actions{justify-content:flex-start;margin-top:.7rem}
.member-photo-preview{display:grid;place-items:center;width:6rem;height:6rem;overflow:hidden;border:1px solid #d7e4f3;border-radius:1.1rem;background:#eaf3ff;color:#6b96c5;font-size:2rem;font-weight:900}
.member-photo-preview img{width:100%;height:100%;object-fit:cover}
.member-photo-controls{display:grid;gap:.7rem;min-width:0}
.member-photo-file{padding:.45rem .55rem;font-size:.72rem}
.form-help{color:#96a3b6;font-size:.65rem;line-height:1.35}
.member-photo-actions{justify-content:space-between}
.member-form-actions{position:sticky;bottom:0;z-index:2;margin-inline:-.1rem;padding:.8rem .1rem .1rem;background:linear-gradient(to bottom,rgba(255,255,255,0),#fff 28%)}
@media(max-width:760px){
  .member-form-section{padding:.75rem;border-radius:.85rem}
  .member-form-grid{grid-template-columns:1fr}
  .member-photo-editor{grid-template-columns:5.25rem minmax(0,1fr);gap:.7rem}
  .member-family-contact-head{align-items:flex-start;flex-direction:column;gap:.15rem}
  .member-photo-preview{width:5.25rem;height:5.25rem;border-radius:.9rem}
  .member-photo-actions{align-items:flex-start;flex-direction:column;gap:.35rem}
  .member-form-actions{margin-inline:-.05rem}
}

/* Filtrační chips se na mobilu zalamují; stránka nikdy nevytváří vodorovný posuvník. */
.member-filter-row{overflow:visible;flex-wrap:wrap}
@media(max-width:760px){.member-filter-row,.visual-filter-section .member-filter-row{overflow:visible;flex-wrap:wrap}.member-filter-row .filter-chip{flex:0 0 auto}}

/* Aktivní chips mají v celé aplikaci jednoznačný modrý stav. */
.filter-chip.active{border-color:var(--primary)!important;background:var(--primary)!important;color:#fff!important;box-shadow:0 5px 12px rgba(91,152,220,.2)}
.filter-chip.active span{color:#fff!important}

/* Členská karta je vstup do detailu; změny se provádějí až v detailovém okně. */
.member-card.is-clickable{cursor:pointer}
.member-card.is-clickable:focus-visible{outline:3px solid rgba(62,148,218,.35);outline-offset:3px}
.member-detail-actions{margin-top:1rem}
@media(max-width:760px){.member-detail-actions{grid-template-columns:1fr}.member-detail-actions .detail-action-button{min-height:2.8rem}}

/* Karty členů podle původní aplikace: jasná hlavička, body v kruhu a kompaktní spodní řádky. */
#view-members .grid.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
#view-members .member-card{display:grid;align-self:stretch;height:100%;gap:.72rem;min-width:0;padding:1rem;border-radius:1.15rem}
#view-members .member-card-top{display:grid;grid-template-columns:3.45rem minmax(0,1fr) auto;align-items:start;gap:.7rem;min-width:0}
#view-members .member-card-avatar{width:3.45rem;height:3.45rem;border-radius:1rem;font-size:.9rem}
#view-members .member-card-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.member-photo-fallback{display:grid;place-items:center;width:100%;height:100%}
#view-members .member-card-identity{min-width:0;padding-top:.05rem}
#view-members .member-card-identity h3{margin:0;overflow:hidden;font-size:1.05rem;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
#view-members .member-card-category{margin-top:.25rem;overflow:hidden;color:var(--muted);font-size:.82rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
#view-members .member-card-aside{display:grid;justify-items:end;gap:.48rem;min-width:4.3rem}
#view-members .member-card-aside .badge{max-width:7rem;overflow:hidden;text-overflow:ellipsis}
#view-members .member-points{display:grid;place-items:center;width:3.45rem;height:3.45rem;border:1px solid #d7e5fb;border-radius:50%;background:#eff5ff;color:#426fd0}
#view-members .member-points strong{font-size:1.25rem;line-height:1}
#view-members .member-points span{font-size:.58rem;font-weight:900;letter-spacing:.04em}
#view-members .member-missing{display:inline-flex;align-items:center;gap:.2rem;margin-top:.55rem;border:1px solid #f3d887;border-radius:999px;padding:.34rem .55rem;background:#fffaf0;color:#a86e12;font-size:.65rem;font-weight:850;white-space:nowrap}
#view-members .member-card-info{display:grid;gap:.62rem;padding-top:.78rem;border-top:1px solid #edf1f6}
#view-members .member-card-basic{display:flex;align-items:baseline;flex-wrap:wrap;gap:.18rem .42rem;color:var(--muted);font-size:.73rem;line-height:1.45}
#view-members .member-card-basic b{color:var(--ink);font-weight:750}
#view-members .member-card-basic i{font-style:normal;color:#c3cedb}
#view-members .member-card-group{display:flex;align-items:baseline;gap:.3rem;color:var(--muted);font-size:.73rem;line-height:1.45}
#view-members .member-card-group b{color:var(--ink);font-weight:750}
#view-members .member-card-status{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding-top:.75rem;border-top:1px solid #edf1f6;flex-wrap:wrap}
#view-members .member-doctor{display:flex;align-items:center;gap:.5rem;min-width:0;color:var(--muted);font-size:.73rem}
#view-members .member-doctor-indicator{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
#view-members .member-doctor-indicator i{display:block;width:.72rem;height:.72rem;border-radius:50%;background:#63bc79}
#view-members .member-doctor .badge{font-size:.68rem}
#view-members .member-doctor-value{min-width:0}
#view-members .member-card-diary{display:flex;align-items:center;justify-content:flex-end;gap:.6rem;margin-left:auto;color:#5d6f89;font-size:.7rem;letter-spacing:.035em}
#view-members .member-card-diary strong{font-size:.68rem;font-weight:900}
#view-members .member-card-diary .badge{letter-spacing:0;font-size:.64rem}
#view-members .member-card-tournaments{display:flex;align-items:center;justify-content:space-between;gap:.7rem;color:var(--muted);font-size:.72rem;flex-wrap:wrap}
#view-members .member-card-tournament-main{display:flex;align-items:center;gap:.65rem;min-width:0}
#view-members .member-card-tournament-main>b{display:flex;flex-wrap:wrap;gap:.28rem}
#view-members .member-card-payment{margin-left:auto;flex:0 0 auto}
#view-members .member-card-tournaments em{border-radius:999px;padding:.16rem .38rem;font-style:normal;font-size:.63rem;font-weight:800;white-space:nowrap}
#view-members .member-tournament-cr{border:1px solid #cfe2fa;background:#eff6ff;color:#2878b9}
#view-members .member-tournament-foreign{border:1px solid #f5dfac;background:#fff8e6;color:#a86e12}
#view-members .member-doctor.valid>span i{background:var(--success)}
#view-members .member-doctor.expired>span i{background:var(--danger)}
#view-members .member-doctor.missing>span i{background:#94a3b8}
@media(max-width:1050px){#view-members .grid.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){#view-members .grid.grid-3{grid-template-columns:1fr}.member-card{gap:.65rem}#view-members .member-card{padding:.9rem}.member-card-diary{padding-top:.65rem}}
@media(max-width:390px){#view-members .member-card-top{grid-template-columns:3rem minmax(0,1fr) auto;gap:.55rem}#view-members .member-card-avatar{width:3rem;height:3rem}#view-members .member-card-identity h3{font-size:.96rem}#view-members .member-card-category{font-size:.76rem}#view-members .member-card-aside{min-width:3.85rem}#view-members .member-card-aside .badge{max-width:5.8rem}#view-members .member-points{width:3rem;height:3rem}#view-members .member-points strong{font-size:1.1rem}}

/* Responzivní ochrana všech formulářů a modálů proti přetečení viewportu. */
html,body{max-width:100%;overflow-x:hidden}
.modal-backdrop{width:100%;max-width:100vw;overflow-x:hidden;overflow-y:auto}
.modal{width:min(100%,52rem);max-width:calc(100vw - 2rem);min-width:0;overflow-x:hidden}
.modal-head,.modal-body,.form-grid,.form-field,.modal-actions{min-width:0;max-width:100%}
.modal-head h2,.modal-body h1,.modal-body h2,.modal-body h3,.modal-body p,.modal-body label{overflow-wrap:anywhere}
.modal .input,.modal .select,.modal .textarea{width:100%;max-width:100%;min-width:0}
.modal-actions{flex-wrap:wrap}
.table-wrap{max-width:100%}
@media(max-width:760px){.modal-backdrop{padding:.5rem}.modal{width:100%;max-width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem);border-radius:1rem}.modal-head{padding:.85rem}.modal-body{padding:.75rem}.form-grid{grid-template-columns:minmax(0,1fr)!important}.modal .grid-2,.modal .grid-3,.modal .grid-4{grid-template-columns:minmax(0,1fr)!important}.modal-actions{align-items:stretch}.modal-actions .button{flex:1 1 9rem;min-width:0}}
@media(min-width:761px) and (max-width:1100px){.modal{max-width:calc(100vw - 2rem)}.modal-body{min-width:0}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Mobilní formuláře: akce nesmí zmizet pod pevnou spodní navigací. */
@media(max-width:760px){
  #modal-root{position:relative;z-index:110}
  #modal-root .modal-backdrop{z-index:110;padding-bottom:calc(.5rem + env(safe-area-inset-bottom,0px))}
  #modal-root .modal-actions{position:sticky;bottom:0;z-index:2;margin-inline:-.75rem;margin-bottom:-.75rem;padding:.7rem .75rem calc(.7rem + env(safe-area-inset-bottom,0px));background:rgba(255,255,255,.98);box-shadow:0 -8px 20px rgba(15,35,85,.1)}
}

/* Kompaktní filtry ve stylu IZOdesk: vyhledávání zůstává vždy po ruce, volby se rozbalí až na vyžádání. */
.compact-filter-panel{display:grid;gap:.75rem;padding:.8rem;margin-top:1rem;border:1px solid var(--line);border-radius:1rem;background:#fff;box-shadow:var(--shadow)}
.compact-filter-toolbar,.compact-filter-header{display:flex;align-items:center;gap:.55rem;min-width:0}
.compact-filter-toolbar .input,.compact-filter-header .compact-filter-search{flex:1 1 auto;min-width:0}
.compact-filter-toggle{white-space:nowrap}
.compact-filter-toggle::before{content:none}
.compact-filter-clear{white-space:nowrap}
.compact-filter-body{display:grid;gap:.75rem;min-width:0}
.compact-filter-panel.is-collapsed>.compact-filter-body{display:none}
.compact-filter-panel.is-collapsed>.visual-filter-section,.compact-filter-panel.is-collapsed>.visual-filter-grid,.compact-filter-panel.is-collapsed>.visual-checkbox{display:none}
.compact-filter-search-wrap{display:flex;align-items:center;gap:.45rem;flex:1 1 auto;min-width:0}
.compact-filter-search-icon{color:#94a3b8;font-size:1rem;line-height:1}
.compact-filter-search-wrap .input{flex:1;min-width:0}
.compact-filter-panel .filter-field{min-width:10rem;flex:1 1 10rem}
.compact-filter-panel .filter-field .select{width:100%;min-width:0}
.compact-filter-panel .filter-bar{margin:0}
@media(max-width:760px){.compact-filter-toolbar,.compact-filter-header{align-items:center;flex-wrap:nowrap}.compact-filter-toolbar .input,.compact-filter-header .compact-filter-search-wrap{flex:1 1 auto;min-width:0}.compact-filter-toggle,.compact-filter-clear{flex:0 0 auto;white-space:nowrap}.compact-filter-panel{padding:.7rem}.compact-filter-body{gap:.6rem}.compact-filter-panel .filter-field{min-width:100%}}
@media(max-width:760px){.member-filter-row{overflow:visible;flex-wrap:wrap}.member-filter-row .filter-chip{flex:0 1 auto}}

/* Databáze osob: vyhledávání a filtr zůstávají vedle sebe i na mobilu. */
#view-members .design-filter-panel .member-filter-search-line{display:flex!important;align-items:center;flex-wrap:nowrap!important;gap:.55rem}
#view-members .design-filter-panel [hidden]{display:none!important}
#view-members .design-filter-panel.is-collapsed>.visual-filter-section,#view-members .design-filter-panel.is-collapsed>.visual-filter-grid,#view-members .design-filter-panel.is-collapsed>.visual-checkbox{display:none!important}
#view-members .member-filter-search-line>.input{width:auto!important;min-width:0;flex:1 1 auto!important}
#view-members .member-filter-search-line,#view-members .member-filter-search-line>.input{position:relative;z-index:2;pointer-events:auto}
#view-members .member-filter-search-line>.member-filter-toggle{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;flex:0 0 auto;min-width:5.1rem;white-space:nowrap}
#view-members .member-filter-search-line>.member-filter-clear{display:inline-flex;flex:0 0 auto;white-space:nowrap}
#view-members .member-filter-search-line>.member-filter-toggle .member-filter-icon{font-size:1rem;line-height:1}
#view-members .member-filter-search-line>.member-filter-toggle{position:relative;width:3rem;min-width:3rem;height:2.55rem;padding:0;border-color:#cfe2fa;background:#eff6ff;color:#2878b9;font-size:0}
#view-members .member-filter-search-line>.member-filter-toggle[aria-expanded="true"]{background:#dcecff;border-color:#8eb9eb;color:#1f6ba9}
#view-members .member-filter-search-line>.member-filter-toggle .member-filter-icon{width:1.25rem;height:1.25rem;font-size:initial}
#view-members .member-filter-search-line>.member-filter-toggle .compact-filter-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#view-members .member-filter-clear{display:inline-flex;margin-bottom:.55rem}
#view-members .visual-filter-section>.member-filter-clear{border-color:#cfe2fa;color:#2878b9;background:#eff6ff}
@media(max-width:760px){
  #view-members .member-filter-search-line{gap:.45rem;flex-wrap:nowrap!important}
  #view-members .member-filter-search-line>.input{width:auto!important;flex:1 1 auto!important}
  #view-members .member-filter-search-line>.member-filter-toggle{width:2.75rem;min-width:2.75rem;height:2.55rem;padding:0;font-size:0}
  #view-members .member-filter-search-line>.member-filter-toggle .member-filter-icon{font-size:1.15rem}
  #view-members .member-filter-search-line>.member-filter-toggle .compact-filter-label{display:none}
}

/* Dostupnost trenérů: docházka je pouze rychlý read-only souhrn, potvrzení patří do Přehledu. */
.availability-summary-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
.availability-summary-row{display:flex;align-items:center;gap:.6rem;min-width:0;padding:.62rem .7rem;border:1px solid #e5ebf3;border-radius:.8rem;background:#fbfcfe}
.availability-summary-row .avatar{width:2rem;height:2rem;flex:0 0 auto;font-size:.65rem}
.availability-summary-row .row-main{min-width:0;flex:1}
.availability-summary-row .row-main strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem}
.availability-summary-row .row-main small{color:var(--muted);font-size:.66rem}
.availability-summary-row.is-current-user{border-color:#8abcf0;background:#eff7ff;box-shadow:0 0 0 2px #d9edff}
.availability-summary-row.is-current-user .row-main strong{color:#1f6fae}
.availability-status-chip{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border:1px solid #dfe6ef;border-radius:999px;padding:.35rem .62rem;background:#f6f8fb;color:#718096;font-size:.67rem;font-weight:850;white-space:nowrap}
.availability-status-chip--green{border-color:#bfead1;background:#effbf4;color:#3c8b63}
.availability-status-chip--amber{border-color:#f3d98a;background:#fffaf0;color:#ad6b1e}
.availability-status-chip--red{border-color:#f3c8cc;background:#fff3f3;color:#b13b49}
.trainer-availability-panel{margin:1rem 0}
.trainer-availability-panel .panel-header{align-items:flex-start}
.trainer-availability-list{display:grid;gap:.6rem}
.trainer-availability-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.85rem;padding:.7rem .78rem;border:1px solid #e5ebf3;border-radius:.85rem;background:#fbfcfe}
.trainer-availability-info{min-width:0}
.trainer-availability-info strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem}
.trainer-availability-info small{display:block;margin-top:.18rem;color:var(--muted);font-size:.68rem}
.trainer-availability-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem}
.availability-choice{border:1px solid #dfe6ef;border-radius:999px;padding:.42rem .62rem;background:#fff;font:inherit;font-size:.67rem;font-weight:850;white-space:nowrap;cursor:pointer;transition:box-shadow .16s,background .16s,border-color .16s,transform .16s}
.availability-choice:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(31,65,110,.08)}
.availability-choice--green{border-color:#bfead1;color:#3c8b63}.availability-choice--green.is-selected{background:#effbf4;box-shadow:inset 0 0 0 2px #63bc79}
.availability-choice--amber{border-color:#f3d98a;color:#ad6b1e}.availability-choice--amber.is-selected{background:#fffaf0;box-shadow:inset 0 0 0 2px #e7a52c}
.availability-choice--red{border-color:#f3c8cc;color:#b13b49}.availability-choice--red.is-selected{background:#fff3f3;box-shadow:inset 0 0 0 2px #d95b62}
@media(max-width:760px){.availability-summary-list{grid-template-columns:1fr}.availability-summary-row{padding:.55rem}.availability-status-chip{font-size:.63rem;padding:.3rem .5rem}.trainer-availability-row{grid-template-columns:1fr;gap:.55rem}.trainer-availability-actions{justify-content:stretch}.availability-choice{flex:1 1 0;min-width:0;padding-inline:.45rem}}

/* Dashboard admin/trenér: provozní potvrzení nahoře, upozornění krátce a narozeniny s avatarem. */
.trainer-availability-panel{border-color:#d7e6f7;background:linear-gradient(135deg,#fff 0%,#fbfdff 72%,#f0f6ff 100%);box-shadow:0 9px 24px rgba(62,148,218,.08)}
.trainer-availability-panel .panel-header p:not(.eyebrow){max-width:42rem}
.dashboard-alerts-panel .dashboard-alert-list{gap:.45rem}
.dashboard-alerts-panel .dashboard-alert{align-items:center;min-height:3.2rem;padding:.55rem .65rem}
.dashboard-alerts-panel .dashboard-alert .notice-icon{flex:0 0 1.8rem;width:1.8rem;height:1.8rem;display:grid;place-items:center;border-radius:.6rem;background:#f1f6ff;color:var(--primary);font-size:.8rem}
.dashboard-alerts-panel .dashboard-alert strong{font-size:.74rem}
.dashboard-alerts-panel .dashboard-alert small{font-size:.65rem;line-height:1.35}
.dashboard-alerts-panel .dashboard-alert .button{margin-top:.28rem!important;padding:.3rem .55rem;font-size:.62rem}
.dashboard-birthdays-panel .notice{align-items:center;padding:.58rem .65rem}
.dashboard-birthdays-wide{grid-column:1/-1}
.dashboard-birthdays-panel .dashboard-birthday-soon{border-color:#f1d79f;background:#fffdf6;box-shadow:inset 4px 0 0 #e7ae43}
.dashboard-birthdays-panel .dashboard-birthday-today{border-color:#efb2ba;background:#fff8f9;box-shadow:inset 4px 0 0 #df6978}
.dashboard-birthdays-panel .dashboard-birthday-today .dashboard-birthday-avatar{background:#ffe0e4;color:#bf4352}
.dashboard-birthday-avatar{display:grid;place-items:center;flex:0 0 2.25rem;width:2.25rem;height:2.25rem;overflow:hidden;border-radius:.75rem;background:#eaf2ff;color:#3975bb;font-size:.68rem;font-weight:900}
.dashboard-birthday-avatar img{display:block;width:100%;height:100%;object-fit:cover}
.dashboard-club-grid{column-count:2;column-gap:1rem;align-items:start}
.dashboard-club-grid>*{display:block;break-inside:avoid;margin:0 0 1rem}
@media(max-width:760px){.dashboard-club-grid{column-count:1}}
@media(max-width:760px){.trainer-availability-panel{margin-top:0}.trainer-availability-panel .panel-header{gap:.55rem}.dashboard-alerts-panel .dashboard-alert{min-height:0;padding:.5rem}.dashboard-birthday-avatar{flex-basis:2rem;width:2rem;height:2rem;border-radius:.65rem}}

/* Turnaje: karta podle provozního přehledu s barevnými kategoriemi a navigací. */
.tournament-card-rich{display:flex;min-width:0;flex-direction:column;gap:.42rem;padding:1rem 1.05rem .9rem;cursor:pointer}
.tournament-card-rich .tournament-card-top{display:flex;align-items:center;justify-content:space-between;gap:.6rem}
.tournament-card-top-actions{display:flex;align-items:center;justify-content:flex-end;gap:.35rem;flex:0 0 auto}
.tournament-country{display:flex;align-items:center;gap:.38rem;color:#4e6079;font-size:.72rem;font-weight:800}.country-flag{position:relative;display:inline-block;width:1.18rem;height:.82rem;flex:0 0 auto;overflow:hidden;border:1px solid #cbd5e1;border-radius:.16rem;background:#e2e8f0;box-shadow:0 1px 2px rgba(15,23,42,.12)}.country-flag--cz{background:linear-gradient(to bottom,#fff 0 50%,#d7141a 50%)}.country-flag--cz:before{position:absolute;inset:0 auto 0 0;width:0;height:0;border-top:.41rem solid transparent;border-bottom:.41rem solid transparent;border-left:.62rem solid #11457e;content:""}.country-flag--pl{background:linear-gradient(to bottom,#fff 0 50%,#dc143c 50%)}.country-flag--sk{background:linear-gradient(to bottom,#fff 0 33%,#0b4ea2 33% 66%,#ee1c25 66%)}.country-flag--at{background:linear-gradient(to bottom,#ed2939 0 33%,#fff 33% 66%,#ed2939 66%)}.country-flag--de{background:linear-gradient(to bottom,#1b1b1b 0 33%,#d20f32 33% 66%,#f4c300 66%)}.country-flag--hu{background:linear-gradient(to bottom,#ce2939 0 33%,#fff 33% 66%,#477050 66%)}.country-flag--si{background:linear-gradient(to bottom,#fff 0 33%,#1d5da7 33% 66%,#ed1c24 66%)}.country-flag--hr{background:linear-gradient(to bottom,#ed1c24 0 33%,#fff 33% 66%,#171796 66%)}.country-flag--ro{background:linear-gradient(to right,#002b7f 0 33%,#fcd116 33% 66%,#ce1126 66%)}.country-flag--rs{background:linear-gradient(to bottom,#c6363c 0 33%,#0c4076 33% 66%,#fff 66%)}.country-flag--dk{background:#c8102e}.country-flag--dk:before,.country-flag--dk:after{position:absolute;background:#fff;content:""}.country-flag--dk:before{inset:0 0 0 31%;width:14%}.country-flag--dk:after{inset:39% 0 auto;width:100%;height:22%}.country-flag--es{background:linear-gradient(to bottom,#aa151b 0 25%,#f1bf00 25% 75%,#aa151b 75%)}.country-flag--world{background:linear-gradient(135deg,#dbeafe,#94a3b8)}
.tournament-flag{font-size:1.05rem;line-height:1}
.country-flag-emoji{display:grid;place-items:center;width:100%;height:100%;font-family:"Noto Color Emoji","Segoe UI Emoji",sans-serif;font-size:.72rem;line-height:1;background:transparent}
.country-editor-field{position:relative}.country-editor-field>[data-editor-country-preview]{position:absolute;top:2.18rem;left:.95rem;z-index:1;width:1.25rem;height:.86rem;pointer-events:none}.country-editor-field>[data-editor-country]{padding-left:2.45rem}
.tournament-card-date{color:#6f8098;font-size:.68rem;font-weight:750}
.tournament-card-rich h3{margin:.05rem 0 0;font-size:1rem;line-height:1.25}
.tournament-location{display:flex;align-items:center;gap:.3rem;margin:0!important;color:var(--muted)!important;font-size:.72rem!important}
.tournament-location span{color:#7186a3;font-size:.9rem}
.tournament-card-label{margin-top:.2rem;color:#526985;font-size:.64rem;font-weight:850}
.tournament-category-list{display:flex;flex-wrap:wrap;gap:.3rem;min-height:1.7rem;padding:.38rem;border:1px solid #edf1f6;border-radius:.62rem;background:#fbfcfe}
.tournament-category-chip{display:inline-flex;align-items:center;gap:.24rem;border:1px solid #d5e5fb;border-radius:.45rem;padding:.22rem .35rem;background:#eef5ff;color:#3775bd;font-size:.62rem;font-weight:900}
.tournament-category-chip em{border-left:1px solid currentColor;padding-left:.22rem;color:#6d8fc0;font-size:.55rem;font-style:normal;font-weight:800}
.tournament-category-chip--female{border-color:#f2c9df;background:#fff1f8;color:#bd4684}.tournament-category-chip--female em{color:#c66b9d}
.tournament-category-chip--other{border-color:#e1e7ee;background:#f7f9fb;color:#68778b}.tournament-category-chip--other em{color:#8491a1}
.tournament-card-statuses{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.08rem}
.tournament-card-statuses .badge{font-size:.6rem;padding:.25rem .45rem}
.tournament-coaches{overflow:hidden;padding:.48rem 0 .5rem;border-bottom:1px solid #edf1f6;color:#5e708a;font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}
.tournament-coaches strong{color:#3b4f6b}
.tournament-map-button{flex:0 0 auto;border-radius:.62rem!important;background:#fff!important}
.tournament-extra-filter-grid{margin-top:.7rem}
.tournament-extra-filter-grid .visual-filter-section{min-width:0}
.tournament-result-summary{display:flex;justify-content:flex-end;margin:.55rem .2rem .1rem;color:#75849a;font-size:.72rem;font-weight:800}
.tournament-map-button{width:2.35rem;min-width:2.35rem;height:2.2rem;padding:0!important;font-size:1.15rem}
.tournament-category-overview{overflow:hidden;border:1px solid #dfe6ef;border-radius:.85rem;background:#f8fafc}
.tournament-category-overview-head{padding:.6rem .7rem;border-bottom:1px solid #dfe6ef;color:#5b6c82;font-size:.68rem;font-weight:850}
.tournament-category-overview-head span{padding:0 .25rem;color:#a4afbd}
.tournament-category-scroll{display:grid;max-height:17rem;gap:.5rem;overflow-y:auto;padding:.55rem}
.tournament-category-row{border:1px solid #dce4ee;border-radius:.68rem;padding:.55rem;background:#fff}
.tournament-category-row-head,.tournament-weight-list{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem}
.tournament-category-row-head{margin-bottom:.35rem}
.tournament-category-code,.tournament-style-chip,.tournament-weight-chip,.tournament-tolerance-chip{display:inline-flex;align-items:center;border:1px solid #cfe0fb;border-radius:.38rem;padding:.2rem .38rem;font-size:.61rem;font-weight:800;line-height:1.1}
.tournament-category-code{border-color:#d5dce7;background:#f1f5f9;color:#45566d;font-size:.68rem}
.tournament-style-chip{border-color:#c9d7ff;background:#f2f5ff;color:#416ed2}
.tournament-weight-chip{background:#fff;color:#2874ba}
.tournament-weight-chip.is-empty{border-color:#e1e6ec;color:#8a97a8}
.tournament-tolerance-chip{border-color:#d3d9fb;background:#f1f3ff;color:#5e65b2}
.tournament-extra-filter-grid .visual-filter-section:nth-child(2) .member-filter-row{max-height:9rem;overflow:auto;padding:.15rem}
.compact-filter-panel .filter-search-line [data-tournament-filter-toggle]{width:2.55rem;min-width:2.55rem;padding:.55rem;font-size:1.05rem}
@media(max-width:760px){.tournament-card-rich{padding:.85rem}.tournament-card-rich h3{font-size:.9rem}.tournament-category-list{padding:.3rem}.tournament-map-button{width:2.1rem;min-width:2.1rem;height:2rem;font-size:1rem}}

/* Detail člena: statistiky zůstávají kompaktní, ale čitelné i v úzkém mobilním modálu. */
.member-detail-body{min-width:0}
.member-detail-body>.detail-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.85rem;padding:.15rem 0 .9rem;border-bottom:1px solid #edf1f6}
.member-detail-body>.detail-head .member-head{min-width:0}
.member-detail-body>.detail-head .member-head .avatar{width:3.5rem;height:3.5rem;border-radius:1rem}
.member-detail-body>.detail-head .member-head .avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.member-detail-body>.detail-head h2{font-size:1.35rem}
.member-detail-body>.grid.grid-4{gap:.65rem;margin:1rem 0!important}
.member-detail-body>.grid.grid-4 .stat-card{min-width:0;min-height:6.2rem;padding:.85rem .78rem;border-radius:1rem}
.member-detail-body>.grid.grid-4 .stat-card .label{font-size:.66rem;line-height:1.2}
.member-detail-body>.grid.grid-4 .stat-card strong{margin:.35rem 0 .2rem;font-size:1.45rem}
.member-detail-body>.grid.grid-4 .stat-card small{font-size:.65rem;line-height:1.25}
.member-detail-body>.grid.grid-2{gap:.75rem}
.member-detail-body>.grid.grid-2>.panel{min-width:0;padding:.9rem}
.member-detail-body>.grid.grid-2>.panel .grid.grid-2{gap:.5rem}
.member-detail-body>.grid.grid-2>.panel .stat-highlight{min-width:0;padding:.68rem;border-radius:.8rem}
.member-detail-body>.grid.grid-2>.panel .stat-highlight strong{
  color:var(--muted);
  font-size:.66rem;
  font-weight:800;
  line-height:1.25;
  letter-spacing:.015em;
  overflow-wrap:anywhere;
}
.member-detail-body>.grid.grid-2>.panel .stat-highlight span{
  display:block;
  margin-top:.22rem;
  color:var(--ink);
  font-size:.95rem;
  font-weight:750;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.member-detail-body>.panel{min-width:0}
.member-detail-body>.panel .grid.grid-3{gap:.6rem}
.member-detail-body>.panel .grid.grid-3 .stat-card{min-width:0;padding:.78rem;border-radius:.9rem}
@media(max-width:760px){.member-detail-body{padding:.8rem!important}.member-detail-body>.detail-head{grid-template-columns:minmax(0,1fr) auto;gap:.55rem;padding-bottom:.75rem}.member-detail-body>.detail-head h2{font-size:1.18rem}.member-detail-body>.detail-head p{font-size:.72rem}.member-detail-body>.detail-head .member-head{gap:.55rem}.member-detail-body>.detail-head .member-head .avatar{width:3rem;height:3rem}.member-detail-body>.grid.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.55rem;margin:.8rem 0!important}.member-detail-body>.grid.grid-4 .stat-card{min-height:5.8rem;padding:.72rem .62rem}.member-detail-body>.grid.grid-4 .stat-card strong{font-size:1.25rem}.member-detail-body>.grid.grid-4 .stat-card small{font-size:.61rem}.member-detail-body>.grid.grid-2>.panel .grid.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))!important}.member-detail-body>.grid.grid-2>.panel .stat-highlight{padding:.6rem}.member-detail-body>.grid.grid-2>.panel .stat-highlight strong{font-size:.61rem}.member-detail-body>.grid.grid-2>.panel .stat-highlight span{font-size:.86rem}.member-detail-body>.panel .grid.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))!important}.member-detail-body>.panel .grid.grid-3 .stat-card{padding:.62rem .4rem}.member-detail-body>.panel .grid.grid-3 .stat-card strong{font-size:1.05rem}.member-detail-body>.panel .grid.grid-3 .stat-card .label{font-size:.6rem}}
@media(max-width:360px){.member-detail-body>.detail-head{grid-template-columns:1fr}.member-detail-body>.detail-head>.badge{justify-self:start}.member-detail-body>.grid.grid-2>.panel .grid.grid-2{grid-template-columns:1fr!important}.member-detail-body>.panel .grid.grid-3{grid-template-columns:1fr 1fr!important}}

/* Nastavení menu ve stylu IZOdesk: dostupné moduly a pět jasně označených pozic. */
.settings-menu-panel{margin-top:1rem}
.settings-menu-panel .panel-header{align-items:flex-start}
.settings-menu-panel .panel-header p{max-width:42rem}
.settings-menu-layout{display:grid;grid-template-columns:1fr;gap:1rem}
.settings-menu-layout h4{margin:0 0 .65rem;color:#6d7d95;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase}
.settings-menu-available,.settings-menu-slots{min-width:0;padding:.85rem;border:1px solid #e5ebf3;border-radius:1rem;background:#fbfcfe}
.settings-module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
.settings-module-button{display:flex;align-items:center;gap:.5rem;min-width:0;border:1px solid #dfe6ef;border-radius:.8rem;padding:.62rem .68rem;background:#fff;color:var(--ink);font:inherit;font-size:.72rem;font-weight:800;text-align:left;transition:border-color .16s,background .16s,transform .16s,box-shadow .16s}
.settings-module-button:hover{border-color:#9fc4eb;background:#f7fbff;box-shadow:0 5px 14px rgba(31,65,110,.08);transform:translateY(-1px)}
.settings-module-icon{display:grid;place-items:center;width:1.7rem;height:1.7rem;flex:0 0 auto;border-radius:.55rem;background:#eaf3ff;color:#397fc4;font-size:.95rem}.settings-module-icon svg{display:block;width:1.05rem;height:1.05rem;color:#397fc4;fill:none;stroke:currentColor;stroke-width:1.8}
.p19-summary-metric-list{display:grid;gap:.45rem}.p19-summary-metric{display:flex;align-items:center;gap:.65rem;border:1px solid #e1e8f1;border-radius:.75rem;padding:.65rem .75rem;background:#fff}.p19-summary-metric input{width:1rem;height:1rem;accent-color:var(--primary)}.p19-summary-metric span{display:grid;gap:.15rem;min-width:0}.p19-summary-metric strong{font-size:.75rem}.p19-summary-metric small{color:var(--muted);font-size:.65rem}.p19-summary-metric em{margin-left:auto;color:#64748b;font-size:.62rem;font-style:normal;white-space:nowrap}
.settings-module-button>span:nth-child(2){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.settings-module-add{margin-left:auto;color:var(--primary);font-size:1rem}
.settings-menu-empty{margin:.25rem 0;font-size:.72rem;line-height:1.4}
.settings-menu-slots{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem}
.settings-menu-slots>h4,.settings-menu-slots>.settings-menu-preview{grid-column:1/-1}
.settings-fixed-slot,.settings-menu-slot{display:flex;align-items:center;justify-content:space-between;gap:.7rem;min-width:0;border:1px solid #e0e7f0;border-radius:.8rem;padding:.6rem .68rem;background:#fff}
.settings-fixed-slot{background:#f8fafc}
.settings-fixed-slot span,.settings-menu-slot span{display:grid;gap:.15rem;min-width:0}
.settings-fixed-slot b,.settings-menu-slot b{font-size:.72rem}.settings-fixed-slot small,.settings-menu-slot small{color:#9aa7b8;font-size:.62rem}
.settings-fixed-slot strong{color:#526987;font-size:.75rem}
.settings-menu-slot.is-filled{border-color:#c6dcfa;background:#eff6ff}.settings-menu-slot.is-filled b{color:#3172bd}
.settings-menu-slot .select{width:11rem;min-width:0;padding:.45rem .55rem;font-size:.7rem}
.settings-menu-preview{margin-top:.35rem;padding:.65rem .7rem;border-top:1px solid #e7edf4;color:#8a98ab;font-size:.63rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.settings-menu-preview>div{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.45rem}
.settings-preview-item{border:1px solid #dfe6ef;border-radius:999px;padding:.3rem .48rem;background:#fff;color:#718096;font-size:.62rem;font-weight:750;letter-spacing:0;text-transform:none}
.settings-preview-item.active{border-color:#9fc4eb;background:#eaf3ff;color:#3172bd}
@media(max-width:900px){.settings-menu-slots{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.settings-menu-panel{padding:.8rem}.settings-menu-panel .panel-header{display:grid;gap:.65rem}.settings-menu-panel .panel-header .button{justify-self:start}.settings-menu-layout{gap:.7rem}.settings-module-grid{grid-template-columns:1fr 1fr}.settings-menu-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-menu-slot,.settings-fixed-slot{padding:.55rem}.settings-menu-slot .select{width:9.5rem}.settings-menu-preview{padding-inline:.2rem}}
@media(max-width:380px){.settings-module-grid{grid-template-columns:1fr}.settings-menu-slot .select{width:8.2rem;font-size:.66rem}}

/* Fáze 17: členský Přehled a osobní statistiky. */
.member-personal-stats{margin:1rem 0}
.member-personal-stats .stat-card{min-width:0}
.member-dashboard-columns,.member-stats-columns{align-items:stretch}
.member-dashboard-columns>.panel,.member-stats-columns>.panel{min-width:0}
.member-next-event,.member-latest-result{display:grid;gap:.48rem}
.member-next-event strong,.member-latest-result strong{font-size:1rem;color:var(--ink)}
.member-next-event small,.member-latest-result span{color:var(--muted);line-height:1.45}
.member-next-event .button,.member-latest-result .button{justify-self:start;margin-top:.35rem}
.member-empty-note{padding:1rem;border:1px dashed #dbe4ef;border-radius:.9rem;background:#fbfcfe;color:var(--muted);line-height:1.45}
.member-quick-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}
.member-quick-link{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:.55rem;row-gap:.1rem;min-width:0;border:1px solid #dfe7f2;border-radius:.9rem;padding:.75rem;background:#fff;color:var(--ink);font:inherit;text-align:left;transition:border-color .16s,background .16s,transform .16s,box-shadow .16s}
.member-quick-link:hover{border-color:#9fc4eb;background:#f7fbff;box-shadow:0 6px 16px rgba(31,65,110,.08);transform:translateY(-1px)}
.member-quick-link>span{grid-row:1/3;color:var(--primary);font-size:1.15rem}
.member-quick-link strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem}
.member-quick-link small{color:var(--muted);font-size:.65rem}
.member-message-note{display:flex;align-items:center;gap:.7rem;padding:.75rem;border:1px solid #dce9fb;border-radius:.9rem;background:#f7fbff}
.member-message-note>div{display:grid;gap:.15rem;min-width:0;flex:1}
.member-message-note strong{font-size:.8rem}
.member-message-note small{color:var(--muted);font-size:.7rem}
.member-result-list,.member-progress-list{display:grid;gap:.6rem}
.member-result-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .75rem;border:1px solid #e2e9f2;border-radius:.8rem;background:#fff}
.member-result-row>div{display:grid;gap:.15rem;min-width:0}
.member-result-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem}
.member-result-row small{color:var(--muted);font-size:.67rem}
.member-result-row>span{flex:0 0 auto;color:#426fd0;font-size:.72rem;font-weight:850;text-align:right}
.member-result-row{cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.member-result-row:hover,.member-result-row:focus-visible{border-color:#8db1e6;box-shadow:0 5px 16px rgba(52,96,157,.12);outline:none;transform:translateY(-1px)}
.member-result-summary{display:flex;align-items:center;gap:.35rem}
.member-result-summary>span:first-child{color:#526b8c;font-size:.68rem;font-weight:800}
.member-score-chip{display:inline-flex;align-items:center;justify-content:center;min-width:2.35rem;padding:.26rem .48rem;border:1px solid transparent;border-radius:999px;font-size:.72rem;font-weight:900;line-height:1}
.member-score-chip--win{color:#18734d;background:#effaf4;border-color:#bfe8d1}
.member-score-chip--loss{color:#a84444;background:#fff3f3;border-color:#f0caca}
.member-score-chip--even{color:#9a6915;background:#fff9eb;border-color:#efd89d}
.member-score-chip--empty{color:#60748f;background:#f3f6fa;border-color:#dbe4ef}
.member-journey-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.85rem;border:1px solid #dfe8f3;border-radius:.85rem;background:linear-gradient(135deg,#f7fbff,#fffdf6)}
.member-journey-summary>div:first-child{display:grid;gap:.2rem;min-width:0}
.member-journey-summary strong{color:#2e578e;font-size:.82rem}
.member-journey-summary span{color:var(--muted);font-size:.68rem;line-height:1.45}
.member-journey-milestones{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem}
.member-journey-milestones span{padding:.3rem .48rem;border-radius:999px;background:#edf4ff;color:#527196;font-weight:800;white-space:nowrap}
.member-journey{position:relative;display:grid;gap:.15rem;margin-top:1rem;padding-left:.45rem}
.member-journey:before{content:"";position:absolute;top:.7rem;bottom:.7rem;left:.72rem;width:2px;background:#e2eaf4}
.member-journey-item{position:relative;display:flex;gap:.7rem;padding:.42rem 0}
.member-journey-dot{z-index:1;flex:0 0 .62rem;width:.62rem;height:.62rem;margin:.34rem 0 0;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #cbd9ea;background:#8ba9cf}
.member-journey-item--win .member-journey-dot{background:#62b989;box-shadow:0 0 0 1px #9fd8b7}
.member-journey-item--loss .member-journey-dot{background:#da7777;box-shadow:0 0 0 1px #efb0b0}
.member-journey-item--even .member-journey-dot{background:#d8ae55;box-shadow:0 0 0 1px #ead18e}
.member-journey-content{display:grid;gap:.12rem;min-width:0;flex:1;padding:.28rem .5rem;border-radius:.55rem}
.member-journey-content:hover{background:#f8fbff}
.member-journey-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;min-width:0}
.member-journey-topline strong{min-width:0;flex:1;overflow-wrap:anywhere;word-break:break-word;white-space:normal;font-size:.7rem;line-height:1.35}
.member-journey-content small{color:var(--muted);font-size:.62rem}
.member-result-detail{display:grid;gap:1rem}
.member-result-detail .detail-head{align-items:flex-start}
.member-result-future-note{display:grid;gap:.22rem;padding:.8rem .9rem;border:1px dashed #cbd9ea;border-radius:.8rem;background:#f8fbff;color:var(--muted);font-size:.7rem;line-height:1.45}
.member-result-future-note strong{color:#526b8c}
.member-progress-row{display:grid;grid-template-columns:9rem minmax(0,1fr) 2.5rem;align-items:center;gap:.55rem}
.member-progress-row>div:first-child{display:grid;gap:.12rem;min-width:0}
.member-progress-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;font-weight:750}
.member-progress-row small{color:var(--muted);font-size:.62rem}
.member-progress-track{height:.65rem;overflow:hidden;border-radius:99rem;background:#edf2f8}
.member-progress-track i{display:block;height:100%;min-width:.15rem;border-radius:inherit;background:linear-gradient(90deg,#6ea7e8,#4e8dd1)}
.member-progress-row>b{color:#527196;font-size:.68rem;text-align:right}
.member-readonly-note{display:flex;align-items:center;gap:.65rem;margin-top:1rem;padding:.8rem 1rem;background:#fbfcfe;color:var(--muted);font-size:.74rem}
.member-readonly-note strong{color:#526b8c}
.member-tournament-filter-panel{display:grid;gap:.7rem}
.member-tournament-filter-line{display:flex;align-items:center;gap:.55rem;min-width:0}
.member-tournament-search{flex:1 1 auto;min-width:0}
.member-tournament-filter-toggle,.member-tournament-filter-clear{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;flex:0 0 auto;white-space:nowrap}
.member-tournament-filter-toggle svg{width:1rem;height:1rem}
.member-tournament-filter-body{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;padding:.75rem;border:1px solid #e4eaf2;border-radius:.85rem;background:#fbfcfe}
.member-tournament-filter-field{display:grid;gap:.3rem;min-width:0}
.member-tournament-filter-field>span{color:var(--muted);font-size:.68rem;font-weight:800}
.member-tournament-filter-field .select{width:100%;min-width:0}
.member-tournament-filter-future{display:flex;align-items:center;gap:.45rem;color:var(--muted);font-size:.72rem}
.member-tournament-filter-future input{width:1rem;height:1rem;accent-color:var(--primary)}
.member-tournament-filter-note{color:var(--muted);font-size:.7rem;line-height:1.4}
.member-tournament-search-empty{margin-top:1rem}
.member-tournament-search-empty[hidden],.member-tournament-empty[hidden]{display:none!important}
.member-tournament-card[hidden]{display:none!important}
.design-filter-panel [hidden],.compact-filter-panel [hidden],.member-tournament-filter-panel [hidden],.clubwear-filter-panel [hidden]{display:none!important}
@media(max-width:760px){
  .member-personal-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.6rem}
  .member-personal-stats .stat-card{padding:.72rem}
  .member-personal-stats .stat-card strong{font-size:1.18rem}
  .member-dashboard-columns,.member-stats-columns{grid-template-columns:1fr!important}
  .member-tournament-filter-body{grid-template-columns:1fr}
  .member-tournament-filter-line{gap:.45rem}
  .member-tournament-filter-toggle,.member-tournament-filter-clear{padding-inline:.65rem}
  .member-quick-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
  .member-quick-link{padding:.65rem}
  .member-message-note{align-items:flex-start;flex-wrap:wrap}
  .member-message-note .button{margin-left:1.85rem}
  .member-progress-row{grid-template-columns:7.2rem minmax(0,1fr) 2.2rem;gap:.4rem}
}
@media(max-width:380px){
  .member-quick-links{grid-template-columns:1fr}
  .member-result-row{align-items:flex-start;flex-direction:column;gap:.3rem}
  .member-result-row>span{text-align:left}
}

/* Klubové oblečení: záložky a kategorie se zalamují místo vodorovného scrollu. */
#view-clubwear .settings-nav{flex-wrap:wrap;overflow:visible;align-items:center}
#view-clubwear .settings-nav .settings-tab{flex:0 0 auto}
#view-clubwear .member-filter-row{flex-wrap:wrap;overflow:visible}
#view-clubwear .member-filter-row .filter-chip{flex:0 0 auto}
@media(max-width:760px){
  #view-clubwear .settings-nav{justify-content:flex-start;gap:.35rem}
  #view-clubwear .settings-nav .settings-tab{flex:0 0 auto}
}

/* Klubové oblečení – sklad a bazar v kompaktním IZOdesk rozložení. */
.clubwear-operations{min-width:0}
.clubwear-operations-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:.85rem}
.clubwear-operations-heading h2{margin:0;color:#172033;font-size:1.6rem;font-style:italic;letter-spacing:-.06em}
.clubwear-operations-heading p{margin:.2rem 0 0;color:#91a0b6;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.clubwear-stat-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin-bottom:.85rem}
.clubwear-stat-strip>div{border:1px solid #dfe7f2;border-radius:.95rem;padding:.7rem .8rem;background:#fff;box-shadow:0 5px 16px rgba(15,23,42,.035)}
.clubwear-stat-strip strong{display:block;color:#172033;font-size:1.25rem;letter-spacing:-.04em}
.clubwear-stat-strip strong.is-warning{color:var(--danger)}
.clubwear-stat-strip span{display:block;margin-top:.15rem;color:#91a0b6;font-size:.6rem;font-weight:900;letter-spacing:.1em}
.clubwear-mode-tabs{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.8rem}
.clubwear-mode-tab{border:1px solid var(--line);border-radius:.8rem;padding:.58rem .8rem;background:#fff;color:#52647e;font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.clubwear-mode-tab.is-active{border-color:#182033;background:#182033;color:#fff}
.clubwear-search-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem;margin-bottom:.7rem}
.clubwear-search-line .input{min-width:0;min-height:3rem;border-radius:1rem;font-size:.84rem}
.clubwear-filter-button{display:flex;align-items:center;justify-content:center;gap:.35rem;min-width:4.4rem;border:1px solid var(--line);border-radius:1rem;background:#fff;color:#62728a;font-size:.72rem;font-weight:850}
.clubwear-filter-button:hover{border-color:#9fc4eb;color:var(--primary)}
.clubwear-filter-panel{margin-bottom:.8rem;border:1px solid #dfe7f2;border-radius:1rem;padding:.9rem;background:#fff}
.clubwear-filter-heading{display:flex;align-items:center;justify-content:space-between;gap:.7rem;margin-bottom:.8rem;color:#63738c;font-size:.68rem;font-weight:950;letter-spacing:.12em}
.clubwear-filter-heading button{border:0;background:none;color:var(--primary);font-size:.67rem;font-weight:900;text-transform:uppercase}
.clubwear-filter-label{display:block;margin-bottom:.45rem;color:#91a0b6;font-size:.64rem;font-weight:900;letter-spacing:.1em}
.clubwear-filter-panel .member-filter-row{margin:0}
.clubwear-filter-result{display:block;margin-top:.65rem;color:#91a0b6;font-size:.7rem}
.clubwear-result-line{margin:.35rem 0 .55rem;color:#91a0b6;font-size:.7rem;font-weight:750}
.stock-item-list,.bazaar-item-list{display:grid;gap:.7rem}
.stock-item-card,.bazaar-item-card{min-width:0;border:1px solid #dfe7f2;border-radius:1rem;padding:.8rem;background:#fff;box-shadow:0 8px 22px rgba(15,23,42,.045)}
.stock-item-card.is-low{border-color:#f0a8ae}
.stock-item-main,.bazaar-item-main{display:grid;grid-template-columns:3.4rem minmax(0,1fr) auto;align-items:center;gap:.7rem;min-width:0}
.stock-product-thumb,.bazaar-product-thumb{display:grid;place-items:center;width:3.4rem;height:3.4rem;overflow:hidden;border:1px solid #e1e8f1;border-radius:.85rem;background:#f4f7fb;color:#7692b3;font-size:1.6rem}
.stock-product-thumb img,.bazaar-product-thumb img{width:100%;height:100%;object-fit:contain}
.stock-item-copy,.bazaar-item-copy{min-width:0}
.stock-item-labels{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem;min-height:1.15rem}
.stock-code-chip{display:inline-flex;max-width:100%;overflow:hidden;border-radius:999px;padding:.25rem .45rem;background:#f0f4f9;color:#718198;font-size:.58rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}
.stock-item-copy h3,.bazaar-item-copy h3{margin:.3rem 0 .15rem;overflow:hidden;color:#172033;font-size:.94rem;line-height:1.16;text-overflow:ellipsis}
.stock-item-copy p,.bazaar-item-copy p{margin:0;overflow:hidden;color:#91a0b6;font-size:.7rem;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}
.stock-quantity,.bazaar-price{min-width:4.1rem;text-align:right}
.stock-quantity span,.bazaar-price span{display:block;color:#91a0b6;font-size:.62rem;font-weight:950;letter-spacing:.1em}
.stock-quantity strong,.bazaar-price strong{display:block;color:#172033;font-size:1.45rem;line-height:1.1;letter-spacing:-.06em}
.stock-item-card.is-low .stock-quantity strong{color:var(--danger)}
.stock-quantity small{display:block;color:#b3bdca;font-size:.6rem}
.bazaar-price strong{font-size:1rem;white-space:nowrap}
.stock-card-actions,.bazaar-card-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;margin-top:.75rem}
.bazaar-card-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
.stock-action,.stock-edit-button{min-width:0;border:1px solid transparent;border-radius:.7rem;padding:.58rem .4rem;background:#f3f6fa;color:#63738c;font-size:.64rem;font-weight:950;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.stock-action--in{border-color:#d5f1df;background:#effbf4;color:#287f60}
.stock-action--out{border-color:#f0dfc8;background:#fff8ee;color:#b85a22}
.stock-action--audit{border-color:#e2e8f1;background:#f4f7fb;color:#687893}
.stock-edit-button{display:grid;place-items:center;padding-inline:.25rem;font-size:.9rem}
.stock-action:hover,.stock-edit-button:hover{filter:brightness(.97);transform:translateY(-1px)}
@media(max-width:760px){
  .clubwear-operations-heading h2{font-size:1.4rem}
  .clubwear-stat-strip{gap:.45rem}
  .clubwear-stat-strip>div{padding:.6rem .55rem}
  .clubwear-stat-strip strong{font-size:1.05rem}
  .clubwear-mode-tab{padding:.52rem .65rem}
  .stock-card-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stock-action,.stock-edit-button{padding:.55rem .3rem}
}
@media(max-width:430px){
  .clubwear-operations-heading{align-items:flex-start}
  .clubwear-operations-heading .button{padding-inline:.65rem}
  .clubwear-stat-strip span{font-size:.55rem}
  .stock-item-main,.bazaar-item-main{grid-template-columns:3rem minmax(0,1fr) auto;gap:.55rem}
  .stock-product-thumb,.bazaar-product-thumb{width:3rem;height:3rem}
  .stock-item-copy h3,.bazaar-item-copy h3{font-size:.84rem}
  .stock-quantity,.bazaar-price{min-width:3.3rem}
  .stock-quantity strong{font-size:1.25rem}
}
 .test-role-switcher{display:flex;align-items:center;gap:.75rem;margin:0 0 1rem;padding:.85rem 1rem;border:1px solid #cfe0f6;border-radius:1rem;background:#f7fbff;box-shadow:0 8px 20px rgba(51,91,145,.06)}
.test-role-switcher>div{min-width:12rem;flex:1}.test-role-switcher strong,.test-role-switcher small{display:block}.test-role-switcher strong{color:#25446e;font-size:.85rem}.test-role-switcher small{margin-top:.15rem;color:#7185a1;font-size:.72rem}.test-role-switcher .select{width:auto;min-width:13rem}.test-role-switcher .button{white-space:nowrap}
@media(max-width:760px){.test-role-switcher{align-items:stretch;flex-wrap:wrap;margin-top:1rem}.test-role-switcher>div{flex-basis:100%}.test-role-switcher .select{flex:1;min-width:0}.test-role-switcher .button{flex:0 0 auto}}

/* Fotografie ve fázi 4 patří pouze do malého avataru, ne přes celou kartu. */
.attendance-row .avatar,
.availability-summary-row .avatar{overflow:hidden}
.attendance-row .avatar img,
.availability-summary-row .avatar img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:cover;border-radius:inherit}

/* Jednoduché přepínání docházky: člen, skupina a jediný stavový switch. */
.attendance-member-grid{gap:.75rem}
.attendance-row--simple{min-height:4.65rem;padding:.8rem 1rem;border-color:#e7ebf1;border-radius:1rem;background:#fff;box-shadow:0 1px 4px rgba(15,23,42,.035);opacity:1}
.attendance-row--simple:not(.present){opacity:1}
.attendance-row--simple .avatar{width:2.5rem;height:2.5rem;border-radius:50%;background:#f8fafc}
.attendance-row--simple .row-main{gap:.12rem}
.attendance-row--simple strong{font-size:.88rem;color:#5d6675}
.attendance-row--simple small{margin:0;color:#929baa;font-size:.68rem}
.attendance-row--simple .attendance-toggle{width:3.5rem;height:2rem;margin-left:auto;background:#e5e8ed}
.attendance-row--simple .attendance-toggle:after{top:.25rem;left:.25rem;width:1.5rem;height:1.5rem}
.attendance-row--simple .attendance-toggle.on{background:var(--primary)}
.attendance-row--simple .attendance-toggle.on:after{left:1.75rem}
.attendance-row--simple .attendance-toggle:disabled{cursor:default;opacity:.65}
@media(max-width:760px){.attendance-row--simple{align-items:center;flex-wrap:nowrap}.attendance-row--simple .row-main{min-width:0}.attendance-row--simple .attendance-toggle{margin-left:auto}}

.phase5-training-filter-bar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.phase5-training-filter-bar .input{min-width:0}
@media(max-width:760px){.phase5-training-filter-bar>*{flex:1 1 100%!important;width:100%!important}.phase5-training-filter-bar .muted{flex-basis:auto!important;width:auto!important}}

/* Fáze 6: nástroje turnajové nominace */
.phase6-tournament-tools{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;margin:.8rem 0;padding:.7rem;border:1px solid var(--line,#dbe5f2);border-radius:.8rem;background:rgba(239,246,255,.45)}
.phase6-tournament-tools .input{max-width:18rem}
.phase6-readonly-note{margin-bottom:.8rem}
.phase6-import{margin:.8rem 0;padding:.8rem 1rem;border:1px solid var(--line,#dbe5f2);border-radius:.8rem;background:rgba(239,246,255,.35)}
.phase6-import summary{cursor:pointer;font-weight:700;color:var(--ink,#172b4d)}
.phase6-import p{margin:.5rem 0}
.phase6-import textarea{margin:.35rem 0 .55rem;min-height:7rem}
.phase7-billing .panel-header{align-items:flex-start}
.phase7-meal-actions{margin-top:1rem;padding:.8rem 0}

.pdf-import-control{display:flex;align-items:stretch;gap:.55rem}
.pdf-import-control .input{flex:1;min-width:0}
.pdf-import-control .button{white-space:nowrap}
@media(max-width:520px){.pdf-import-control{flex-direction:column}.pdf-import-control .button{width:100%}}
.connection-status{color:var(--success);font-weight:800}
.connection-status[data-connection="offline"]{color:var(--danger)}
#data-status[data-status="loading"]{color:var(--primary)}
#data-status[data-status="error"]{color:var(--danger)}
#data-status[data-status="offline"]{color:var(--warning)}
.runtime-error-actions{display:flex;justify-content:center;margin-top:1rem}
.connection-status-top{display:inline-flex;align-items:center;border:1px solid #bdebd9;border-radius:999px;padding:.28rem .55rem;background:#ecfbf4;font-size:.68rem}
.mobile-header-actions{display:flex;align-items:center;gap:.45rem}
.mobile-connection-status{display:inline-flex;align-items:center;max-width:12rem;overflow:hidden;border-radius:999px;padding:.28rem .5rem;background:rgba(255,255,255,.16);color:#fff;font-size:.62rem;text-overflow:ellipsis;white-space:nowrap}
.mobile-connection-status[data-connection="offline"]{background:#fff1f2;color:#a52d3d}
#view-members .member-card.member-search-hidden{display:none!important}

/* Obnovené styly pro člena, rodiče a role-specific kalendář. */
.member-dashboard-avatar,.parent-dashboard-avatar,.parent-child-avatar,.parent-child-detail-avatar,.parent-child-result-avatar{overflow:hidden}
.member-dashboard-avatar img,.parent-dashboard-avatar img,.parent-child-avatar img,.parent-child-detail-avatar img,.parent-child-result-avatar img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.member-calendar-legend,.parent-calendar-legend{display:flex;flex-wrap:wrap;gap:.65rem;margin:.7rem 0 0;color:#6d7c91;font-size:.68rem;font-weight:750}
.member-calendar-legend-item,.parent-calendar-legend-item{display:inline-flex;align-items:center;gap:.32rem}
.member-calendar-legend-dot,.parent-calendar-legend-dot{display:inline-block;width:.65rem;height:.65rem;border-radius:50%;background:#fff1d0;border:1px solid #e7bd62}
.member-calendar-legend-dot.own,.parent-calendar-legend-dot.own{background:#dcecff;border-color:#6ea8e9}
.parent-calendar-legend-dot.other{background:#fff1d0;border-color:#e7bd62}
#view-calendar .calendar-event.member-calendar-own-event,#view-calendar .calendar-agenda-item.member-calendar-own-event{background:#eaf4ff;color:#1f6eb5;border-color:#9bc7f0}
#view-calendar .calendar-event.parent-calendar-own-event{background:#eaf4ff;color:#1f6eb5;border:1px solid #9bc7f0}
#view-calendar .calendar-event.parent-calendar-other-event{background:#fff7df;color:#a66d11;border:1px solid #efd58f}
#view-calendar .calendar-agenda-item.parent-calendar-own-event{border-color:#9bc7f0;background:#f5faff}
#view-calendar .calendar-agenda-item.parent-calendar-other-event{border-color:#efd58f;background:#fffdf5}
.parent-dashboard-welcome{min-height:7.1rem}
.parent-dashboard-columns{align-items:stretch}.parent-dashboard-columns>.panel{min-width:0}
.parent-children-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
.parent-child-card{min-width:0;border:1px solid #dfe8f3;border-radius:1rem;padding:.9rem;background:linear-gradient(135deg,#fff,#fbfdff)}
.parent-child-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem}.parent-child-card h3{margin:.08rem 0 .2rem;font-size:.9rem}.parent-child-card p{margin:0;color:var(--muted);font-size:.7rem;line-height:1.35}
.parent-child-card-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;margin-top:.8rem;padding-top:.7rem;border-top:1px solid #edf1f6}.parent-child-card-stats strong,.parent-child-card-stats small{display:block}.parent-child-card-stats strong{font-size:1rem}.parent-child-card-stats small{margin-top:.12rem;color:var(--muted);font-size:.62rem}.parent-child-card-actions{margin-top:.75rem}.parent-child-card-actions .button{flex:1;min-width:0}
.parent-task-list,.parent-event-list{display:grid;gap:.55rem}.parent-task-row,.parent-event-row{display:flex;align-items:center;gap:.65rem;min-width:0;border:1px solid #e2e9f2;border-radius:.85rem;padding:.7rem;background:#fff}.parent-event-link{display:flex;align-items:center;gap:.65rem;min-width:0;flex:1;border:0;padding:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.parent-event-link>span:last-child,.parent-task-copy,.parent-event-row>div{min-width:0;flex:1}.parent-task-copy strong,.parent-task-copy small,.parent-event-row strong,.parent-event-row small{display:block;overflow-wrap:anywhere}.parent-task-copy strong,.parent-event-row strong{font-size:.76rem}.parent-task-copy small,.parent-event-row small{margin-top:.16rem;color:var(--muted);font-size:.65rem;line-height:1.35}.parent-task-actions{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}.parent-readonly-note{display:flex;align-items:flex-start;gap:.4rem;margin-top:1rem;border-color:#d7e6f7;background:#f8fbff;color:#526782;font-size:.7rem;line-height:1.5}.parent-readonly-note strong{color:#2b5d91}
.parent-child-detail{display:grid;gap:1rem}.parent-child-detail-avatar{width:3.2rem;height:3.2rem}.parent-child-detail-summary{margin-top:0}.parent-child-results-panel{padding:1rem}.parent-child-results-summary{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.7rem}.parent-child-results-summary span{border:1px solid #dfe8f3;border-radius:999px;padding:.3rem .55rem;background:#f8fbff;color:#5f7088;font-size:.65rem;font-weight:800}.parent-child-tournament-results{display:grid;gap:.5rem}.parent-child-tournament-result{display:flex;align-items:center;justify-content:space-between;gap:.7rem;width:100%;border:1px solid #dfe8f3;border-radius:.8rem;padding:.65rem .7rem;background:#fff;color:inherit;text-align:left}.parent-child-tournament-result:hover{border-color:#9fc6e8;background:#f8fbff}.parent-child-tournament-result-main{display:grid;min-width:0;gap:.15rem}.parent-child-tournament-result-main strong{overflow-wrap:anywhere;font-size:.74rem}.parent-child-tournament-result-meta{color:var(--muted);font-size:.63rem}.parent-child-tournament-result-outcome{display:grid;flex:0 0 auto;justify-items:end;gap:.12rem}.parent-child-tournament-result-outcome b{color:#2777bb;font-size:.7rem}.parent-child-tournament-result-outcome span,.parent-child-tournament-result-outcome small{color:var(--muted);font-size:.61rem}.parent-child-result-detail{display:grid;gap:.8rem}.parent-child-result-hero{display:flex;align-items:center;justify-content:space-between;gap:1rem}.parent-child-result-identity{display:flex;align-items:center;gap:.65rem;min-width:0}.parent-child-result-identity strong,.parent-child-result-identity span{display:block}.parent-child-result-identity strong{font-size:.85rem}.parent-child-result-identity span{margin-top:.15rem;color:var(--muted);font-size:.68rem}.parent-child-result-score{text-align:right}.parent-child-result-score span,.parent-child-result-score small{display:block}.parent-child-result-score span{font-size:1.5rem;font-weight:900}.parent-child-result-score small{color:var(--muted);font-size:.66rem}.parent-child-match-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.parent-child-match-summary>div{display:grid;gap:.15rem;border:1px solid #e0e8f2;border-radius:.75rem;padding:.7rem;background:#f8fbff}.parent-child-match-summary strong{font-size:1.2rem}.parent-child-match-summary span{color:var(--muted);font-size:.64rem}.parent-child-result-actions{display:flex;justify-content:flex-end;gap:.45rem;flex-wrap:wrap}

/* Navigace podle původní klubové aplikace: velké obrysové ikony a klidné řádky. */
.nav-icon svg,.hero-icon svg,.training-week-heading-icon svg,.training-week-date svg{display:block;width:100%;height:100%}
.desktop-nav{padding:1rem 0}
.desktop-nav .nav-btn{min-height:3.05rem;gap:.72rem;border:0;border-radius:0;padding:.68rem 1.2rem;color:#273548;font-size:.88rem;font-weight:760}
.desktop-nav .nav-btn:hover{background:#f5f9fe;color:#1588dc}
.desktop-nav .nav-btn.active{border-block:1px solid #cfe1f6;background:#eaf4ff;color:#1495e5}
.desktop-nav .nav-icon{width:1.35rem;height:1.35rem;flex:0 0 1.35rem;font-size:0}
.desktop-nav .nav-badge{margin-left:auto}
.bottom-nav .nav-icon{width:1.25rem;height:1.25rem;font-size:0}
.hero-icon svg{width:1.35rem;height:1.35rem}

/* Kalendář: jasný výběr dne a samostatný rozklikávací program. */
.calendar-month-panel{padding:1rem}
.calendar-filter-row{margin-bottom:.8rem}
.calendar-month-grid{margin-top:1rem}
.calendar-day{display:flex;min-height:6.8rem;flex-direction:column;align-items:stretch;gap:.15rem;cursor:pointer;text-align:left}
.calendar-day:hover{border-color:#a9cce9;background:#fbfdff}
.calendar-day.selected-day{border-color:#4ca1e6;background:#f0f7ff;box-shadow:inset 0 0 0 1px #8ec4ef}
.calendar-day.today .calendar-number{display:grid;width:1.45rem;height:1.45rem;place-items:center;border-radius:50%;background:#258ed5;color:#fff}
.calendar-events{display:grid;gap:.22rem;margin-top:.25rem}
.calendar-event{display:block;max-width:100%;overflow:hidden;border-radius:.38rem;padding:.23rem .34rem;text-overflow:ellipsis;white-space:nowrap}
.calendar-event[data-open]{cursor:pointer}
.calendar-event[data-open]:hover{text-decoration:underline}
.calendar-more{color:#7b8aa0;font-size:.58rem;font-weight:750}
.calendar-selected-panel .panel-header{align-items:center}
.calendar-agenda-list{display:grid;gap:.7rem}
.calendar-agenda-item{display:grid;width:100%;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;border-color:#dce6f2;background:#fff;text-align:left}
.calendar-agenda-item.is-clickable{cursor:pointer}
.calendar-agenda-item.is-clickable:hover{border-color:#9fc6e8;background:#f8fbff;box-shadow:0 7px 18px rgba(31,99,155,.08)}
.calendar-agenda-copy{min-width:0}
.calendar-agenda-copy strong,.calendar-agenda-copy small{overflow:hidden;text-overflow:ellipsis}
.calendar-agenda-icon.training{background:#e9f9f2;color:#15815f}
.calendar-agenda-icon.tournament{background:#fff6dd;color:#a86e12}
.calendar-agenda-icon.action{background:#f2edff;color:#6b52c8}
.calendar-agenda-icon.camp{background:#fff0f2;color:#b8394a}
.calendar-agenda-arrow{color:#408dca;font-size:1.35rem;font-weight:800}

/* Tréninky: týdenní plánovač podle provozního vzoru původní aplikace. */
.phase5-readonly-note{margin-top:1rem;border-color:#d6e5f6;background:#f8fbff}
.training-week-panel{overflow:hidden;border:1px solid #cadcf6;border-radius:1.55rem;padding:1.7rem;background:linear-gradient(135deg,#f7faff 0%,#eef4ff 62%,#fff8f3 100%);box-shadow:0 10px 30px rgba(44,91,160,.06)}
.training-week-heading{display:flex;align-items:center;gap:.8rem}
.training-week-heading-icon{display:grid;width:2.8rem;height:2.8rem;place-items:center;border-radius:.85rem;background:#376ee8;color:#fff;box-shadow:0 8px 16px rgba(55,110,232,.25)}
.training-week-heading-icon svg{width:1.25rem;height:1.25rem}
.training-week-heading h3{margin:0;font-size:1.05rem;letter-spacing:-.025em}
.training-week-heading p{margin:.3rem 0 0;color:#667897;font-size:.75rem}
.training-week-title-row{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}
.training-week-controls{display:flex;align-items:center;gap:.55rem;margin:1.15rem 0}
.training-week-arrows{display:flex;overflow:hidden;border:1px solid var(--line);border-radius:.8rem;background:#fff}
.training-week-arrows .button{min-width:2.6rem;border:0;border-radius:0;padding-inline:.75rem}
.training-week-arrows .button+.button{border-left:1px solid var(--line)}
.training-week-date{display:flex;min-height:2.65rem;align-items:center;gap:.5rem;border:1px solid var(--line);border-radius:.8rem;padding:0 .65rem;background:#fff;color:#7a8ca7}
.training-week-date span{width:1.05rem;height:1.05rem}
.training-week-date input{border:0;outline:0;color:#172033;background:transparent;font:inherit;font-size:.78rem;font-weight:800}
.training-week-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.training-week-day{min-height:13.65rem;overflow:hidden;border:1px solid #d8e2ef;border-top:5px solid #e8eef7;border-radius:1rem;background:rgba(255,255,255,.88);transition:border-color .18s,box-shadow .18s,transform .18s}
.training-week-day:hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(44,75,115,.07)}
.training-week-day.is-selected{border-color:#7eb6e7;border-top-color:#489fe5;box-shadow:0 0 0 2px rgba(72,159,229,.1)}
.training-week-day-main{display:block;width:100%;border:0;padding:.18rem 1.05rem .55rem;background:transparent;color:inherit;text-align:left;cursor:pointer}
.training-week-day-top{display:flex;min-height:2rem;align-items:center;gap:.45rem;padding:1rem 1.05rem 0}
.training-week-weekday{color:#8a9bb4;font-size:.73rem;font-weight:950;letter-spacing:.13em}
.training-today-badge{border:1px solid #bdd3ff;border-radius:999px;padding:.24rem .48rem;background:#edf3ff;color:#3769dd;font-size:.6rem;font-weight:900;text-transform:uppercase}
.training-week-day-main>strong{display:block;margin:.18rem 0 .75rem;color:#172033;font-size:1.08rem;letter-spacing:-.025em}
.training-day-switch{display:block;position:relative;width:3.15rem;height:1.8rem;margin-left:auto;flex:0 0 auto;border:0;border-radius:999px;padding:0;background:#dfe6ef;color:inherit;box-shadow:inset 0 1px 2px rgba(22,37,58,.08);cursor:pointer;appearance:none}
.training-day-switch i{position:absolute;top:.22rem;left:.25rem;width:1.35rem;height:1.35rem;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(25,45,75,.18);transition:left .18s}
.training-day-switch.is-on{background:#3999df}
.training-day-switch.is-on i{left:1.55rem}
.training-day-switch:focus-visible{outline:3px solid #2457d6;outline-offset:3px}
.training-day-status{display:inline-flex;border-radius:999px;padding:.38rem .7rem;background:#eff3f8;color:#64748b;font-size:.66rem;text-transform:uppercase}
.training-day-status b{font-weight:900}
.training-week-units{display:grid;gap:.25rem;padding:.15rem 1.05rem 1rem;color:#91a0b7;font-size:.76rem}
.training-week-unit{overflow:hidden;border:0;padding:.25rem 0;background:transparent;color:#316edc;text-align:left;font-size:.72rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}
.training-week-unit:hover{text-decoration:underline}
.training-week-unit span{float:right}
.phase5-training-filter-bar .input{min-width:14rem;flex:1}
.phase5-training-filter-bar>.muted{font-size:.72rem}
.phase5-training-time{font-size:.7rem}
.phase5-training-actions,.phase5-template-actions{margin-top:.65rem}
.phase5-template-card small{display:block;margin-top:.45rem;white-space:pre-line;color:var(--muted);font-size:.68rem;line-height:1.45}
.training-selected-day .empty-state,.phase5-training-results .empty-state{grid-column:1/-1}

@media(max-width:1000px){.training-week-board{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  .desktop-nav{padding:1rem .65rem}
  .calendar-month-panel{overflow-x:auto}
  .calendar-month-grid{min-width:42rem}
  .calendar-head{min-width:42rem}
  .calendar-filter-row{min-width:42rem}
  .calendar-day{min-height:5.8rem}
  .training-week-panel{padding:1rem}
  .training-week-controls{align-items:stretch;flex-wrap:wrap}
  .training-week-date{flex:1}
  .training-week-board{grid-template-columns:1fr}
  .training-week-day{min-height:0}
  .phase5-training-filter-bar>*{flex:1 1 100%!important;width:100%!important}
  .phase5-training-filter-bar>.muted{flex-basis:auto!important;width:auto!important}
}

/* Fáze 17 · editor tréninků a týdenní deník */
.training-week-day.is-enabled{border-color:#b9d3fb;border-top-color:#4b83ed;background:linear-gradient(145deg,#fff,#f2f7ff)}
.training-day-status{display:flex!important;align-items:center;gap:.45rem;flex-wrap:wrap}.training-day-status em{color:#376ee8;font-size:.67rem;font-style:normal;font-weight:800}
.training-day-switch.is-disabled{opacity:.65}.training-config-intro,.training-editor-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;border:1px solid #d9e5fb;border-radius:1rem;padding:.85rem 1rem;background:#f3f7ff}.training-config-intro strong,.training-config-intro span,.training-editor-summary strong,.training-editor-summary span{display:block}.training-config-intro span,.training-editor-summary span{margin-top:.2rem;color:var(--muted);font-size:.72rem}
.training-choice-section{margin-top:1rem;border:1px solid var(--line);border-radius:1rem;padding:.9rem;background:#fbfcfe}.training-choice-section>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.65rem}.training-choice-section strong{font-size:.78rem}.training-choice-section>div:first-child span{color:var(--muted);font-size:.67rem}.training-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}.training-choice-grid label{position:relative}.training-choice-grid input{position:absolute;opacity:0;pointer-events:none}.training-choice-grid label span{display:block;border:1px solid var(--line);border-radius:.75rem;padding:.6rem .7rem;background:#fff;color:#596a82;font-size:.72rem;font-weight:800;text-align:center}.training-choice-grid input:checked+span{border-color:#7bb1ed;background:#eaf3ff;color:#276fba;box-shadow:0 0 0 2px #dcecff}
.training-structure{margin-top:1rem;border:1px solid #f2d99f;border-radius:1rem;padding:1rem;background:#fffaf0}.training-structure>[data-phase17-structure]{display:grid;gap:.8rem}.training-phase{border:1px solid #f0cf86;border-left:4px solid #eeb545;border-radius:.9rem;padding:.85rem;background:#fff}.training-phase>header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.training-phase>header span{color:#c28418;font-size:.62rem;font-weight:950;letter-spacing:.12em}.training-phase h4{margin:.15rem 0;font-size:.9rem}.training-phase header p{margin:0;color:var(--muted);font-size:.68rem}.training-phase header>b{border-radius:999px;padding:.28rem .5rem;background:#fff7df;color:#a86e12;font-size:.68rem}.training-phase-items{display:grid;gap:.55rem;margin:.75rem 0}.training-phase-empty{border:1px dashed var(--line);border-radius:.75rem;padding:.8rem;color:var(--muted);background:#fafbfd;font-size:.7rem}.training-block{border:1px solid var(--line);border-radius:.8rem;padding:.65rem;background:#f8fafc}.training-block-top{display:flex;align-items:center;gap:.4rem}.training-block-top .minutes{width:5rem;flex:0 0 5rem;text-align:center}.training-block-top>span{color:#4774af;font-size:.7rem;font-weight:800}.training-block-meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:.45rem 0}.training-block-meta button{border:0;border-radius:.45rem;padding:.3rem .45rem;background:#fff;color:#607088;font-size:.68rem}.training-block-meta button:last-child{color:#bf3d49}.training-detail-phases{display:grid;gap:.75rem}.training-detail-phase{border-left:4px solid #eeb545;padding:.2rem 0 .2rem .8rem}.training-detail-phase>div{display:flex;justify-content:space-between;gap:1rem}.training-detail-phase article{margin-top:.45rem;border:1px solid var(--line);border-radius:.7rem;padding:.65rem;background:#fafbfd}.training-detail-phase article b,.training-detail-phase article small{display:block}.training-detail-phase article small,.training-detail-phase article p{margin:.2rem 0 0;color:var(--muted);font-size:.68rem;line-height:1.45}.training-detail-plan{white-space:pre-line;color:#53627a;font-size:.75rem;line-height:1.6}
.td-layout{display:grid;grid-template-columns:15rem minmax(0,1fr);gap:1rem;margin-top:1rem}.td-sidebar{align-self:start;position:sticky;top:1rem;display:grid;gap:.7rem;border:1px solid var(--line);border-radius:1.1rem;padding:1rem;background:#fff;box-shadow:var(--shadow)}.td-sidebar-title strong,.td-sidebar-title span{display:block}.td-sidebar-title span{margin-top:.2rem;color:var(--muted);font-size:.7rem}.td-filter-group{display:grid;gap:.3rem;border-top:1px solid #edf1f6;padding-top:.75rem}.td-filter-group>b{color:#7b8ca5;font-size:.62rem;letter-spacing:.1em}.td-filter-group>small{color:var(--primary);font-size:.65rem}.td-filter-group label{display:flex;align-items:center;gap:.5rem;border-radius:.55rem;padding:.35rem .4rem;color:#53627a;font-size:.7rem}.td-filter-group label:hover{background:#f5f8fc}.td-filter-group input{accent-color:var(--primary)}.td-content{display:grid;gap:1rem;min-width:0}.td-content-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.td-content-head h3{margin:0;font-size:1.35rem}.td-content-head>div>span{display:block;margin-top:.25rem;color:var(--muted);font-size:.74rem}.td-templates{padding-block:.9rem}.td-template{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-top:1px solid #edf1f6;padding:.6rem 0}.td-template:first-of-type{border-top:0}.td-template strong,.td-template span{display:block}.td-template span{margin-top:.2rem;color:var(--muted);font-size:.68rem}.td-active-days{margin:-.3rem 0 .8rem;color:var(--muted);font-size:.7rem}.td-active-days strong{color:var(--primary)}.td-days{display:grid;grid-template-columns:1fr;gap:.55rem;overflow:visible;padding-bottom:.25rem}.td-day{min-height:0;display:grid;grid-template-columns:4rem minmax(0,1fr) auto;align-items:center;gap:.75rem;border:1px solid var(--line);border-radius:.9rem;padding:.75rem;background:#fff;color:#53627a;text-align:left}.td-day>span{display:flex;align-items:center;justify-content:space-between;gap:.35rem}.td-day>span>b{font-size:.67rem;letter-spacing:.12em}.td-day>span>strong{font-size:1.05rem}.td-day em,.td-day small{display:block}.td-day em{margin-top:.35rem;color:#172033;font-size:.75rem;font-style:normal;font-weight:850}.td-day small{min-height:0;margin-top:.25rem;color:#697b95;font-size:.65rem;line-height:1.4}.td-day footer{display:flex;align-items:end;justify-content:space-between;gap:.4rem;margin-top:0}.td-day footer b{font-size:.7rem}.td-day footer span{font-size:.56rem;font-weight:850}.td-day.has-activity{border-color:#b9d7fb;background:#eff6ff}.td-day.active{box-shadow:inset 0 0 0 2px #61a9e9}.td-selected-entries>.empty-state{min-height:8rem}.td-entry{overflow:hidden;border:1px solid var(--line);border-radius:.85rem;background:#fff}.td-entry+.td-entry{margin-top:.55rem}.td-entry-summary{display:flex;width:100%;align-items:center;justify-content:space-between;gap:1rem;border:0;padding:.75rem;background:#fff;color:inherit;text-align:left}.td-entry-summary span:first-child strong,.td-entry-summary span:first-child small{display:block}.td-entry-summary small{margin-top:.2rem;color:#6d82a0;font-size:.62rem;font-weight:850}.td-entry-summary>span:last-child{color:#53627a;font-size:.7rem;font-weight:750}.td-entry-body{display:grid;gap:.75rem;border-top:1px solid #edf1f6;padding:.8rem;background:#fbfdff;font-size:.73rem}.td-readiness-saved{display:flex;gap:.45rem;flex-wrap:wrap}.td-readiness-saved span{border-radius:999px;padding:.35rem .55rem;background:#eef4fb;color:#60728b;font-size:.66rem}.td-comments blockquote{margin:.45rem 0;border-left:3px solid #7fb5ec;padding:.45rem .65rem;background:#f2f7fd;color:#455875}.td-comments blockquote small{display:block;margin-top:.25rem;color:#8390a3}.td-moods{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap}.td-moods>b{margin-right:.35rem;font-size:.62rem;letter-spacing:.1em}.td-moods button{border:1px solid var(--line);border-radius:.55rem;padding:.35rem;background:#fff;font-size:1rem}.td-moods button.selected{border-color:#71afe7;background:#eaf4ff}.td-summary-table th,.td-summary-table td{text-align:center}.td-summary-table th:first-child{text-align:left}.td-summary-table button{border:0;background:transparent;color:#506782;font-size:.68rem;font-weight:800}.td-summary-editor input{min-width:5rem}.td-club-trainings .notice+.notice{margin-top:.5rem}.td-group-member{border:1px solid #e1eaf5;border-radius:.8rem;padding:.7rem;background:#fff}.td-group-member+.td-group-member{margin-top:.55rem}.td-group-member-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.5rem}.td-group-member-head strong,.td-group-member-head small{display:block}.td-group-member-head small{margin-top:.2rem;color:var(--muted);font-size:.66rem}.td-group-member-head>span{color:var(--muted);font-size:.68rem}.td-smart-hint{margin:.7rem 0;padding:.55rem .7rem;border-radius:.7rem;background:#f2f7ff;color:#50709c;font-size:.7rem}.td-readiness-coach{margin-top:.75rem}.td-readiness-result{display:flex;align-items:center;justify-content:space-between;gap:1rem;border:1px solid var(--line);border-radius:.75rem;padding:.65rem .75rem;background:#fff}.td-readiness-result>div{display:grid;gap:.15rem}.td-readiness-result strong{font-size:.85rem}.td-readiness-result small{color:var(--muted);font-size:.68rem}.td-readiness-result.red strong{color:#c33d4b}.td-readiness-result.orange strong{color:#b87916}.td-readiness-result.blue strong{color:#3277c4}.td-readiness-result.green strong{color:#16835f}.td-readiness-score{font-size:1.2rem;font-weight:900;color:#286fc4}.td-readiness-score small{font-size:.65rem;font-weight:700}.td-readiness-bar{height:.35rem;margin-top:.4rem;border-radius:999px;background:#e8eef6;overflow:hidden}.td-readiness-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#e16b6b,#efbb5a,#55b58b)}
.metric-input{display:flex;align-items:center;gap:.4rem}.metric-input>span{color:var(--muted);font-size:.7rem}.td-exercise-builder,.td-readiness{margin-top:1rem;border:1px solid var(--line);border-radius:1rem;padding:.9rem;background:#fafcfe}.td-exercise{display:grid;grid-template-columns:auto minmax(9rem,1.5fr) repeat(5,minmax(5rem,1fr));gap:.45rem;align-items:end;border-top:1px solid #e9eef5;padding:.7rem 0}.td-exercise:first-child{border-top:0}.td-exercise label{display:grid;gap:.25rem;color:#6c7c92;font-size:.62rem;font-weight:750}.td-exercise .wide{grid-column:2/7}.td-exercise-summary{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.65rem}.td-exercise-summary span{border-radius:.65rem;padding:.45rem .6rem;background:#eef4fb;color:#60728b;font-size:.66rem}.td-mood-fields{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1rem}.td-mood-fields fieldset{display:flex;flex-wrap:wrap;gap:.35rem;border:1px solid var(--line);border-radius:1rem;padding:.8rem}.td-mood-fields legend{padding:0 .3rem;color:#52637c;font-size:.7rem;font-weight:850}.td-mood-fields label{position:relative}.td-mood-fields input{position:absolute;opacity:0}.td-mood-fields label span{display:block;border:1px solid var(--line);border-radius:.65rem;padding:.4rem .5rem;background:#fff;color:#607088;font-size:.66rem}.td-mood-fields input:checked+span{border-color:#78afe5;background:#eaf4ff;color:#256dae}.td-top-types{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:1rem}.td-top-types>b{width:100%;color:#7b8ca5;font-size:.62rem;letter-spacing:.1em}.td-top-types span{border-radius:.65rem;padding:.45rem .6rem;background:#f1f5f9;color:#607088;font-size:.68rem}.td-question-chips{margin:.75rem 0}.td-question-chips button{border:0;cursor:pointer}.td-recommendation{border-color:#cce4dd;background:#f2fbf7}.td-recommendation p{color:#5f756d;font-size:.74rem}.td-recommendation>strong{color:#168365;font-size:.75rem}
@media(max-width:1100px){.td-layout{grid-template-columns:1fr}.td-sidebar{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.td-sidebar-title,.td-sidebar>.button,.td-sidebar>.input{grid-column:1/-1}.td-exercise{grid-template-columns:repeat(3,minmax(0,1fr))}.td-exercise>strong{grid-column:1/-1}.td-exercise .wide{grid-column:1/-1}}
@media(max-width:760px){.training-choice-grid{grid-template-columns:1fr 1fr}.training-block-top,.training-block-meta,.td-content-head,.td-template,.td-entry-summary{align-items:stretch;flex-direction:column}.td-sidebar{grid-template-columns:1fr}.td-filter-group{grid-column:1}.td-days{grid-template-columns:1fr}.td-day{grid-template-columns:3.5rem minmax(0,1fr);}.td-day footer{grid-column:2}.td-mood-fields{grid-template-columns:1fr}.td-exercise{grid-template-columns:1fr 1fr}.td-exercise>strong,.td-exercise>select,.td-exercise .wide{grid-column:1/-1}.td-entry-summary{display:flex}.td-entry-summary>span:last-child{text-align:left}}

/* Fáze 18: kompaktní editace a rychlé volby místo malých roletových nabídek. */
.compact-choice-native{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
.compact-choice-chips,.compact-multi-chips,.member-section-nav{display:flex;flex-wrap:wrap;gap:.38rem;min-width:0}
.compact-choice-chip{display:inline-flex;align-items:center;justify-content:center;min-height:2.15rem;border:1px solid #d7e3f2;border-radius:999px;background:#fff;color:#607086;padding:.42rem .72rem;font:inherit;font-size:.7rem;font-weight:850;line-height:1.1;cursor:pointer;transition:border-color .16s ease,background .16s ease,color .16s ease,transform .16s ease}
.compact-choice-chip:hover{border-color:#8bb5ee;background:#f1f7ff;color:#276cae}
.compact-choice-chip:active{transform:scale(.98)}
.compact-choice-chip.active,.compact-choice-chip[aria-pressed="true"]{border-color:var(--primary);background:var(--primary);color:#fff;box-shadow:0 5px 12px rgba(91,152,220,.18)}
.td-group-member{display:flex;width:100%;align-items:center;justify-content:space-between;gap:.75rem;color:inherit;text-align:left;cursor:pointer}.td-group-member strong,.td-group-member small{display:block}.td-group-member small{margin-top:.2rem;color:var(--muted);font-size:.66rem}.td-group-member>span:last-child{text-align:right;color:var(--muted);font-size:.68rem}.td-group-member>span:last-child b{display:block;color:#316fbd}
.td-insight-row{display:grid;gap:.25rem;margin-top:1rem;padding:.75rem;border-radius:.75rem;background:#f2f7ff}.td-insight-row b{color:#7b8ca5;font-size:.62rem;letter-spacing:.08em}.td-insight-row strong{color:#1f5eaf}.td-insight-row span{color:#526882;font-size:.72rem}.td-insight-row em{color:#237a61;font-size:.7rem;font-style:normal;font-weight:800}.td-goal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.td-goal-grid>div{display:grid;gap:.3rem;padding:.7rem;border:1px solid var(--line);border-radius:.7rem}.td-goal-grid b{color:#526882;font-size:.68rem}.td-goal-grid strong{font-size:.9rem}.td-goal-grid i{display:block;height:.35rem;border-radius:999px;background:#4a8de0}.td-exercise-history .table-wrap{margin-top:.35rem}.td-smart-plan{border-color:#b9e7e1;background:linear-gradient(135deg,#f5fffd,#fff)}.td-smart-plan .td-insight-row{grid-template-columns:repeat(4,minmax(0,1fr));background:#fff}.td-recommendation-tags{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.8rem}.td-recommendation-tags span{border:1px solid #bfe9e3;border-radius:999px;padding:.35rem .6rem;background:#fff;color:#168b80;font-size:.66rem;font-weight:750}
.td-question-filters,.td-question-suggestions{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.55rem}.td-question-filters .chip.selected{background:var(--primary);color:#fff;border-color:var(--primary)}.td-question-suggestions .chip{font-size:.65rem;text-align:left}
.compact-member-form{display:grid;gap:.75rem}
.compact-member-form .member-form-section{margin-top:0;padding:.78rem}
.compact-member-form .member-form-section-head{margin-bottom:.55rem}
.compact-member-form .member-form-section-head h3{font-size:.88rem}
.compact-member-form .member-form-section-head p{margin-top:.12rem;font-size:.64rem}
.compact-member-form .member-form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.52rem}
.compact-member-form .form-field{gap:.24rem}
.compact-member-form .form-field label{font-size:.68rem}
.compact-member-form .input,.compact-member-form .select,.compact-member-form .textarea{min-height:2.45rem;padding:.52rem .62rem;font-size:.78rem}
.compact-member-form .member-field-wide,.compact-member-form .form-field.full{grid-column:1/-1}
.member-section-nav{position:sticky;top:-.75rem;z-index:4;flex-wrap:nowrap;overflow-x:auto;margin:-.75rem -.1rem 0;padding:.72rem .1rem .55rem;background:linear-gradient(#fff 78%,rgba(255,255,255,0));scrollbar-width:none}
.member-section-nav::-webkit-scrollbar{display:none}
.member-section-nav .compact-choice-chip{flex:0 0 auto;min-height:2rem}
.compact-member-form .member-family-contact{padding:.62rem}
.compact-member-form .member-family-contact-head{margin-bottom:.42rem}
@media(max-width:760px){
  .compact-member-form .member-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.48rem!important}
  .compact-member-form .member-field-wide,.compact-member-form .form-field.full,.compact-member-form .member-choice-field{grid-column:1/-1}
  .compact-member-form .member-form-section{padding:.62rem;border-radius:.75rem}
  .compact-member-form .member-form-section-head p{display:none}
  .compact-member-form .input,.compact-member-form .select,.compact-member-form .textarea{min-height:2.3rem;padding:.46rem .55rem;font-size:.75rem}
  .compact-member-form .member-photo-editor{grid-template-columns:4.6rem minmax(0,1fr);gap:.55rem}
  .compact-member-form .member-photo-preview{width:4.6rem;height:4.6rem}
  .compact-choice-chips,.compact-multi-chips{gap:.3rem}
  .compact-choice-chip{min-height:2rem;padding:.38rem .6rem;font-size:.66rem}
  .member-section-nav{top:-.75rem;margin-inline:-.15rem}
}
@media(max-width:370px){.compact-member-form .member-form-grid{gap:.4rem!important}.compact-member-form .input,.compact-member-form .textarea{font-size:.7rem}.compact-choice-chip{padding-inline:.5rem}}

/* Fáze 19: úplné nastavení klubu */
.p19-settings-form{display:grid;gap:.85rem;margin-top:.85rem}.p19-settings-nav{margin-top:1rem;flex-wrap:wrap;overflow:visible}.p19-settings-card{min-width:0;border:1px solid var(--line);border-radius:1.05rem;padding:1rem;background:#fff;box-shadow:var(--shadow)}.p19-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.85rem}.p19-card-head h3{margin:0;color:var(--ink);font-size:1rem;font-weight:900}.p19-card-head p{margin:.2rem 0 0;color:var(--muted);font-size:.72rem;line-height:1.45}.p19-form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.p19-settings-form .input,.p19-settings-form .select,.p19-settings-form .textarea{width:100%;min-width:0}.p19-settings-form .input[type=color]{height:2.7rem;padding:.25rem}.p19-choice-row{display:flex;flex-wrap:wrap;gap:.35rem}.p19-choice{min-height:2.35rem;border:1px solid #d9e2ed;border-radius:999px;padding:.44rem .72rem;background:#f8fafc;color:#64748b;font-size:.71rem;font-weight:850}.p19-choice:hover{border-color:#9fc5ed;color:#2d72b7}.p19-choice.active{border-color:var(--primary);background:var(--primary);color:#fff;box-shadow:0 5px 12px rgba(62,148,218,.18)}.p19-save-bar{position:sticky;z-index:5;bottom:4.65rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;border:1px solid #cfe2f7;border-radius:1rem;padding:.7rem .8rem;background:rgba(247,251,255,.96);box-shadow:0 10px 28px rgba(32,82,135,.11);backdrop-filter:blur(8px)}.p19-save-bar span{color:#708096;font-size:.69rem}.p19-repeater{display:grid;gap:.45rem;margin-bottom:.65rem}.p19-repeater-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem;align-items:center}.p19-category-table{display:grid;gap:.42rem;margin-bottom:.65rem}.p19-category-row{display:grid;grid-template-columns:minmax(5rem,1.1fr) 5rem 5rem minmax(8rem,1fr) auto 2.2rem;gap:.4rem;align-items:center}.p19-check{display:flex;align-items:center;gap:.35rem;min-height:2.55rem;border:1px solid var(--line);border-radius:.75rem;padding:.45rem .6rem;background:#f8fafc;color:#627188;font-size:.68rem;font-weight:750;white-space:nowrap}.p19-check input{width:1rem;height:1rem;accent-color:var(--primary)}.p19-icon-danger{display:grid;place-items:center;width:2.2rem;height:2.2rem;border:1px solid #f0d2d6;border-radius:.7rem;background:#fff5f6;color:#bd4650;font-size:1.1rem;font-weight:850}.p19-inline-actions{display:flex;flex-wrap:wrap;gap:.45rem}.p19-details,.p19-library-category{border:1px solid #e2e8f0;border-radius:.9rem;background:#fbfcfe}.p19-details>summary,.p19-library-category>summary{cursor:pointer;padding:.75rem .85rem;color:#46566e;font-size:.76rem;font-weight:850}.p19-details>p{margin:0;padding:0 .85rem .7rem;font-size:.68rem}.p19-library-phase{margin:.55rem;padding:.75rem;border:1px solid #e6ebf2;border-radius:.85rem;background:#fff}.p19-library-phase h4{margin:0 0 .55rem;font-size:.78rem}.p19-library-category{margin-top:.4rem;background:#fff}.p19-library-category summary{display:flex;justify-content:space-between}.p19-library-category summary span{color:#94a3b8;font-size:.64rem}.p19-library-category .form-field{padding:0 .7rem .7rem}.p19-json{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.68rem}.p19-brand-editor{display:grid;grid-template-columns:8rem minmax(0,1fr);gap:1rem;align-items:start}.p19-logo-preview{display:grid;place-items:center;width:8rem;height:8rem;overflow:hidden;border:1px solid #dbe5ef;border-radius:1.15rem;background:#f4f8fd;color:#3e82c5;font-size:1.35rem;font-weight:950}.p19-logo-preview img{width:100%;height:100%;object-fit:contain}.p19-attachments{display:grid;gap:.45rem;margin-bottom:.75rem}.p19-attachment{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:.55rem;align-items:center;border:1px solid #e2e8f0;border-radius:.85rem;padding:.6rem;background:#fbfcfe}.p19-attachment>span{color:var(--primary)}.p19-attachment strong,.p19-attachment small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.p19-attachment strong{font-size:.74rem}.p19-attachment small{margin-top:.1rem;color:#91a0b4;font-size:.61rem}.p19-score-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem}.p19-activity-list,.p19-exercise-list{display:grid;gap:.45rem;margin-bottom:.65rem}.p19-activity-row,.p19-exercise-row{display:grid;grid-template-columns:auto minmax(8rem,1fr) minmax(7rem,.7fr) 2.2rem;gap:.45rem;align-items:center}.p19-switch{position:relative;display:inline-flex}.p19-switch input{position:absolute;opacity:0}.p19-switch span{position:relative;width:2.65rem;height:1.55rem;border-radius:999px;background:#dfe5ec;transition:.2s}.p19-switch span:after{position:absolute;left:.18rem;top:.18rem;width:1.19rem;height:1.19rem;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(15,23,42,.18);content:"";transition:.2s}.p19-switch input:checked+span{background:var(--primary)}.p19-switch input:checked+span:after{transform:translateX(1.1rem)}.p19-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.p19-secure{border-color:#ccebdc;background:#f2fbf7}.p19-readonly{margin-top:1rem}.p19-rollover-list{display:grid;gap:.35rem;max-height:24rem;margin-top:.8rem;overflow:auto}.p19-rollover-list>div{display:flex;align-items:center;justify-content:space-between;gap:.7rem;border:1px solid #e6ebf2;border-radius:.7rem;padding:.55rem .65rem}.p19-rollover-list strong{font-size:.72rem}.p19-rollover-list span{color:#728197;font-size:.68rem}.p19-rollover-list b{color:#2977ba}
@media(min-width:761px){.p19-save-bar{bottom:.75rem}}
@media(max-width:980px){.p19-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.p19-category-row{grid-template-columns:1fr 4.5rem 4.5rem 8rem auto 2.2rem}.p19-score-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.p19-settings-nav{flex-wrap:nowrap;overflow:auto;margin-inline:-.1rem;padding-bottom:.35rem}.p19-settings-card{padding:.78rem}.p19-card-head{margin-bottom:.65rem}.p19-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.5rem}.p19-form-grid .form-field.full{grid-column:1/-1}.p19-form-grid .form-field label{font-size:.65rem}.p19-form-grid .input,.p19-form-grid .select{min-height:2.45rem;padding:.55rem .62rem;font-size:.72rem}.p19-choice-row{gap:.3rem}.p19-choice{min-height:2.2rem;padding:.4rem .58rem;font-size:.65rem}.p19-save-bar{padding:.6rem}.p19-save-bar span{display:none}.p19-save-bar .button{width:100%}.p19-category-row{grid-template-columns:minmax(5.4rem,1fr) 3.7rem 3.7rem 6.8rem 2.2rem;gap:.3rem;overflow-x:auto}.p19-category-row .p19-check{grid-column:1/5;grid-row:2}.p19-category-row .p19-icon-danger{grid-column:5;grid-row:1}.p19-category-row .input,.p19-category-row .select{padding:.48rem;font-size:.65rem}.p19-brand-editor{grid-template-columns:5rem minmax(0,1fr);gap:.65rem}.p19-logo-preview{width:5rem;height:5rem}.p19-score-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.p19-activity-row,.p19-exercise-row{grid-template-columns:auto minmax(0,1fr) 2.1rem}.p19-activity-row .p19-code,.p19-exercise-row .select{grid-column:2/4}.p19-attachment{grid-template-columns:auto minmax(0,1fr) auto}.p19-attachment .button{grid-column:2}.p19-rollover-list>div{align-items:flex-start;flex-direction:column}}
@media(max-width:390px){.p19-form-grid{grid-template-columns:1fr!important}.p19-form-grid .form-field.full{grid-column:auto}.p19-category-row{grid-template-columns:minmax(5rem,1fr) 3.4rem 3.4rem 2.1rem}.p19-category-row select{grid-column:1/4}.p19-category-row .p19-check{grid-column:1/4;grid-row:3}.p19-category-row .p19-icon-danger{grid-column:4;grid-row:1}.p19-brand-editor{grid-template-columns:1fr}.p19-score-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Moderní editor turnajů: rychlé zadání na počítači i telefonu. */
.tournament-editor-import,.tournament-editor-section{display:grid;gap:.8rem;margin:.85rem 0;padding:1rem;border:1px solid #dfe8f3;border-radius:1rem;background:#fff;box-shadow:0 8px 24px rgba(38,76,122,.045)}
.tournament-editor-import{border-color:#cfe1fb;background:#f6faff}.tournament-editor-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.tournament-editor-section-head h3{margin:0;color:var(--ink);font-size:.92rem}.tournament-editor-section-head p{margin:.22rem 0 0;color:var(--muted);font-size:.68rem;line-height:1.45}.tournament-editor-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.tournament-editor-form-grid .form-field{min-width:0}.tournament-editor-form-grid .form-field.full{grid-column:1/-1}.tournament-editor-form-grid .form-field>span,.tournament-editor-inline-field>span{display:block;margin-bottom:.3rem;color:#53647e;font-size:.7rem;font-weight:800}.tournament-editor-form-grid .input,.tournament-editor-form-grid .select{width:100%;min-width:0}.tournament-editor-file-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(10rem,.7fr) auto;gap:.55rem;align-items:center}.tournament-editor-file-row input[type=file]{min-width:0;max-width:100%;font-size:.67rem}.tournament-editor-category-chips,.tournament-editor-person-grid{display:flex;flex-wrap:wrap;gap:.4rem}.tournament-editor-category-chip,.tournament-editor-style-chip,.tournament-editor-person-chip{position:relative;display:inline-flex;cursor:pointer}.tournament-editor-category-chip input,.tournament-editor-style-chip input,.tournament-editor-person-chip input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.tournament-editor-category-chip span,.tournament-editor-style-chip span,.tournament-editor-person-chip span{display:inline-flex;align-items:center;min-height:2.25rem;border:1px solid #d9e3ee;border-radius:999px;padding:.38rem .68rem;background:#fbfcfe;color:#65758d;font-size:.7rem;font-weight:850}.tournament-editor-category-chip input:checked+span,.tournament-editor-style-chip input:checked+span,.tournament-editor-person-chip input:checked+span{border-color:#6f9fe4;background:#eaf3ff;color:#2868b2;box-shadow:0 4px 12px rgba(64,121,192,.12)}.tournament-editor-person-chip span{min-height:2.1rem;font-weight:750}.tournament-editor-person-chip.is-fallback span{border-color:#efd59a;background:#fff9e9;color:#9a6915}.tournament-editor-picker{display:grid;gap:.5rem;padding:.75rem;border:1px solid #e4ebf3;border-radius:.8rem;background:#fbfcfe}.tournament-editor-picker-head{display:flex;justify-content:space-between;gap:.6rem;align-items:baseline}.tournament-editor-picker-head strong{font-size:.76rem}.tournament-editor-picker-head small{color:var(--muted);font-size:.62rem}.tournament-editor-category-cards{display:grid;gap:.6rem}.tournament-editor-category-card{display:grid;gap:.55rem;padding:.75rem;border:1px solid #e0e8f2;border-radius:.8rem;background:#fbfdff}.tournament-editor-category-title{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.tournament-editor-category-title strong{color:#2e588b;font-size:.78rem}.tournament-editor-category-title span{color:var(--muted);font-size:.62rem}.tournament-editor-style-row{display:flex;flex-wrap:wrap;gap:.35rem}.tournament-editor-style-fixed{display:inline-flex;align-items:center;min-height:2.2rem;border:1px solid #edc2dc;border-radius:999px;padding:.35rem .65rem;background:#fff1f8;color:#b23e7d;font-size:.7rem;font-weight:850}.tournament-editor-inline-field{display:grid;gap:.28rem}.tournament-editor-inline-field .input{min-width:0}.tournament-editor-section code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.65rem}.tournament-editor-import textarea{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.68rem}.tournament-prompt-text{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.68rem;line-height:1.5}.is-import-locked [data-editor-lockable]{opacity:.7}
@media(max-width:680px){.tournament-editor-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.tournament-editor-form-grid .form-field.full{grid-column:1/-1}.tournament-editor-file-row{grid-template-columns:1fr}.tournament-editor-file-row .button{width:100%}.tournament-editor-section,.tournament-editor-import{padding:.78rem}.tournament-editor-section-head{flex-direction:column}.tournament-editor-category-chip span,.tournament-editor-style-chip span,.tournament-editor-person-chip span{font-size:.65rem;padding-inline:.55rem}}
@media(max-width:390px){.tournament-editor-form-grid{grid-template-columns:1fr}.tournament-editor-form-grid .form-field.full{grid-column:auto}}
.p19-list-labels{display:grid;grid-template-columns:2.65rem minmax(8rem,1fr) minmax(7rem,.7fr) 2.2rem;gap:.45rem;margin-bottom:.3rem;color:#8492a6;font-size:.61rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.p19-list-labels span:first-child{text-align:center}.p19-exercise-toolbar{display:grid;grid-template-columns:minmax(9rem,1fr) minmax(10rem,1.35fr) minmax(8rem,.8fr) auto;gap:.45rem;margin-bottom:.65rem}.p19-library-actions{padding:.65rem .85rem 0}.p19-library-visual{display:grid;gap:.55rem;padding:0 .7rem .7rem}.p19-library-block{display:grid;gap:.45rem;border:1px solid #e1e8f0;border-radius:.8rem;padding:.65rem;background:#fbfcfe}.p19-library-block-head{display:grid;grid-template-columns:minmax(8rem,1fr) 7.5rem 5rem 2.2rem;gap:.4rem}.p19-library-elements{display:grid;gap:.35rem}.p19-library-element{display:grid;grid-template-columns:minmax(7rem,1fr) 5rem 5rem 2.2rem;gap:.35rem}.p19-json-details{border-top:1px dashed #e1e7ef}.p19-json-details>summary{cursor:pointer;padding:.55rem .7rem;color:#7a889b;font-size:.66rem;font-weight:800}
.p19-library-filter{margin:.1rem .85rem .7rem;padding:.6rem;border:1px solid #e2e8f0;border-radius:.8rem;background:#fff}
.p19-settings-nav{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:.5rem;padding:.7rem;border:1px solid #e5ebf3;border-radius:1rem;background:#fff}.p19-settings-nav .settings-tab{display:grid;place-items:center;min-width:0;min-height:3.65rem;border:1px solid #dbe3ed;border-radius:.65rem;padding:.55rem .45rem;background:#fff;color:#172033;font-size:.72rem;line-height:1.15;text-align:center;white-space:normal}.p19-settings-nav .settings-tab.active{border-color:#9bc8fa;background:#eef6ff;color:#176bd1;box-shadow:none}
@media(max-width:760px){.p19-settings-nav{display:flex;padding:.45rem}.p19-settings-nav .settings-tab{min-width:6.2rem;min-height:3.2rem;white-space:nowrap}.p19-list-labels{display:none}.p19-exercise-toolbar{grid-template-columns:1fr 1fr}.p19-exercise-toolbar #p19-exercise-search{grid-column:1/-1;grid-row:1}.p19-library-block-head{grid-template-columns:minmax(0,1fr) 6.5rem 2.1rem}.p19-library-block-head input[type=number]{grid-column:1/3}.p19-library-block-head .p19-icon-danger{grid-column:3;grid-row:1}.p19-library-element{grid-template-columns:minmax(0,1fr) 4.2rem 4.2rem 2.1rem}}
@media(max-width:390px){.p19-exercise-toolbar{grid-template-columns:1fr}.p19-exercise-toolbar>*{grid-column:auto!important;grid-row:auto!important}.p19-library-block-head{grid-template-columns:minmax(0,1fr) 2.1rem}.p19-library-block-head .select,.p19-library-block-head input[type=number]{grid-column:1/-1}.p19-library-block-head .p19-icon-danger{grid-column:2;grid-row:1}.p19-library-element{grid-template-columns:minmax(0,1fr) 2.1rem}.p19-library-element input[type=number]{grid-column:1}.p19-library-element .p19-icon-danger{grid-column:2;grid-row:1}}

/* Sport: kompaktní editor ve stejném datovém formátu jako původní klubová aplikace. */
.p19-sport-divider{height:1px;margin:1rem 0;background:#e8edf4}.p19-section-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.7rem}.p19-section-toolbar strong,.p19-visual-title strong{display:block;color:#26354b;font-size:.8rem;font-weight:900}.p19-section-toolbar small,.p19-visual-title small{display:block;margin-top:.12rem;color:#8997aa;font-size:.65rem;line-height:1.4}.p19-sport-groups{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:0}.p19-sport-groups .p19-repeater-row{grid-template-columns:minmax(0,1fr) 2.2rem}.p19-category-row>label:not(.p19-check){display:grid;min-width:0;gap:.22rem}.p19-category-row>label>span{color:#8492a6;font-size:.56rem;font-weight:850;letter-spacing:.05em;text-transform:uppercase}.p19-category-row+.p19-category-row>label>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.p19-footnote{margin:.7rem 0 0;color:#708096;font-size:.66rem;line-height:1.45}.p19-library-shell{display:grid;gap:.8rem}.p19-library-json-editor{overflow:hidden}.p19-library-json-editor>summary{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.p19-library-json-editor>summary span{color:#94a3b8;font-size:.62rem}.p19-library-json-phase{display:grid;gap:.6rem;padding:.75rem;border-top:1px solid #e7edf4}.p19-library-json-phase h4{margin:0;color:#3d4d64;font-size:.75rem}.p19-library-json-field{padding:0!important}.p19-json-label{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.p19-json-label small{color:#7c9d8d;font-size:.59rem;font-weight:750}.p19-json-label small.error{color:#c44f5a}.p19-json.invalid{border-color:#e4979d;background:#fff8f8}.p19-library-visual-editor{display:grid;gap:.55rem}.p19-visual-title{display:flex;align-items:flex-end;justify-content:space-between;gap:.8rem}.p19-library-category{margin:0;overflow:hidden}.p19-library-category-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;align-items:center;padding:.45rem}.p19-library-toggle{display:grid;grid-template-columns:1.4rem minmax(0,1fr) auto;gap:.45rem;align-items:center;min-height:2.4rem;border:0;padding:.25rem .35rem;background:transparent;color:#405169;text-align:left}.p19-library-toggle>span{display:grid;place-items:center;width:1.35rem;height:1.35rem;border-radius:.4rem;background:#eef5fd;color:#347dbc;font-size:.9rem;font-weight:900}.p19-library-toggle strong{font-size:.74rem}.p19-library-toggle small{color:#93a0b2;font-size:.62rem;font-weight:800}.p19-library-category.open{border-color:#cbddef;box-shadow:0 5px 14px rgba(45,91,141,.06)}.p19-library-category.open .p19-library-category-head{border-bottom:1px solid #e7edf4;background:#f8fbff}.p19-library-visual{padding:.65rem}.p19-library-block-head{grid-template-columns:minmax(10rem,1.5fr) minmax(7rem,.7fr) 6.5rem 2.2rem}.p19-library-category-name{color:#8a98aa;background:#f1f5f9!important}.p19-library-element{padding:.5rem;border:1px solid #e6ebf2;border-radius:.7rem;background:#fff}.p19-library-element>.textarea{grid-column:1/-1}.p19-rounds{min-height:2.55rem;justify-content:center}.p19-library-more{justify-self:start}.p19-library-actions{padding:0}.p19-library-filter{margin:0;padding:.5rem}.p19-library-phase{margin:0;padding:.65rem}.p19-library-phase>h4{margin-bottom:.65rem;color:#26354b;font-size:.8rem}
@media(max-width:980px){.p19-sport-groups{grid-template-columns:repeat(2,minmax(0,1fr))}.p19-library-block-head{grid-template-columns:minmax(0,1fr) minmax(6rem,.65fr) 6rem 2.2rem}}
@media(max-width:760px){.p19-section-toolbar{align-items:stretch;flex-direction:column}.p19-section-toolbar .p19-inline-actions{display:grid;grid-template-columns:1fr 1fr}.p19-section-toolbar .button{width:100%}.p19-sport-groups{grid-template-columns:repeat(2,minmax(0,1fr))}.p19-category-row>label>span,.p19-category-row+.p19-category-row>label>span{position:static;width:auto;height:auto;overflow:visible;clip:auto}.p19-category-row{padding:.55rem;border:1px solid #e3e9f1;border-radius:.8rem;background:#fbfcfe;overflow:visible}.p19-category-row .p19-check{grid-column:1/5}.p19-library-json-editor>summary{align-items:flex-start;flex-direction:column}.p19-visual-title{align-items:flex-start;flex-direction:column}.p19-library-category-head{grid-template-columns:1fr}.p19-library-category-head>.button{width:100%}.p19-library-block-head{grid-template-columns:minmax(0,1fr) 2.2rem}.p19-library-block-head .p19-library-category-name,.p19-library-block-head .select{grid-column:1/-1}.p19-library-block-head .p19-icon-danger{grid-column:2;grid-row:1}.p19-library-element{grid-template-columns:minmax(0,1fr) 4.6rem 4.7rem 2.1rem}}
@media(max-width:390px){.p19-sport-groups{grid-template-columns:1fr}.p19-category-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 2.1rem}.p19-category-row>label:nth-child(1),.p19-category-row>label:nth-child(4){grid-column:1/3}.p19-category-row .p19-check{grid-column:1/3;grid-row:auto}.p19-category-row .p19-icon-danger{grid-column:3;grid-row:1}.p19-library-element{grid-template-columns:minmax(0,1fr) 4.2rem 2.1rem}.p19-library-element .p19-rounds{grid-column:1/3}.p19-library-element .p19-icon-danger{grid-column:3;grid-row:1}}

/* Always-visible JSON library header, matching the original settings UI. */
.p19-library-json-editor{border:1px solid #e2e8f0;border-radius:.9rem;background:#fbfcfe}
.p19-library-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.8rem;align-items:start}
.p19-json-editor-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.75rem .85rem;color:#46566e;font-size:.76rem;font-weight:850}
.p19-json-editor-head span{color:#94a3b8;font-size:.62rem;font-weight:750}
.p19-library-json-editor>p{margin:0;padding:0 .85rem .7rem;font-size:.68rem}
@media(max-width:980px){.p19-library-columns{grid-template-columns:1fr}}
@media(max-width:760px){.p19-json-editor-head{align-items:flex-start;flex-direction:column;gap:.25rem}}

.training-structure-actions{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:flex-end}
.product-image.is-broken{display:grid;place-items:center;color:#94a3b8;font-size:1.4rem}.product-image.is-broken::before{content:'♧'}
.member-group-divider{grid-column:1/-1;display:flex;align-items:center;gap:.75rem;margin:.35rem 0 -.25rem;color:#64748b;font-size:.72rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.member-group-divider::after{content:'';height:1px;flex:1;background:var(--line)}
.p17-advice-intro{margin:0 0 .8rem;color:#708096;font-size:.75rem;line-height:1.5}
.p17-advice-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.p17-advice-toolbar label{display:flex;align-items:center;gap:.45rem;border:1px solid #e2e8f0;border-radius:.7rem;padding:.55rem .7rem;color:#56677e;font-size:.7rem;white-space:nowrap}.p17-advice-toolbar input{width:1rem;height:1rem;accent-color:var(--primary)}
.p17-advice-tabs,.p17-advice-categories{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.65rem}
.p17-advice-phase,.p17-advice-category{border:1px solid #d9e2ed;border-radius:999px;padding:.45rem .7rem;background:#fff;color:#56677e;font-size:.7rem;font-weight:800}
.p17-advice-phase.active{border-color:#3e94da;background:#3e94da;color:#fff}.p17-advice-category.active{border-color:#f1bf4a;background:#fff5d9;color:#8b5a00}
.p17-advice-items{max-height:65vh;overflow:auto}.p17-advice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
.p17-advice-recommendation{position:relative;margin-bottom:.75rem;border:1px solid #cfe2fa;border-radius:1rem;padding:.8rem;background:#eff6ff;color:#1f5d9b}.p17-advice-recommendation strong{display:block;color:#1f4f87;font-size:.78rem}.p17-advice-recommendation p{margin:.28rem 0;color:#2878b9;font-size:.67rem}.p17-advice-recommendation>div{display:flex;flex-wrap:wrap;gap:.35rem}.p17-advice-recommendation span{border-radius:999px;padding:.3rem .55rem;background:#fff;color:#2878b9;font-size:.64rem}.p17-advice-recommendation button{position:absolute;right:.8rem;top:50%;transform:translateY(-50%)}.p17-advice-warning{margin-bottom:.75rem;border:1px solid #f2d69b;border-radius:1rem;padding:.8rem;background:#fff8e6;color:#93630d;font-size:.72rem}
.p17-advice-card{border:1px solid #dfe7f0;border-radius:.9rem;padding:.7rem;background:#fff}.p17-advice-card.is-selected{border-color:#cbd5e1;background:#f1f5f9;opacity:.8}
.p17-advice-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.7rem}.p17-advice-card-head strong{display:block;color:#26354b;font-size:.78rem}.p17-advice-card-head span{display:block;margin-top:.18rem;color:#7c8ca0;font-size:.64rem}.p17-advice-card p{margin:.55rem 0 0;color:#64748b;font-size:.7rem;line-height:1.45}.p17-advice-elements{display:grid;gap:.2rem;margin-top:.55rem;padding:.45rem;border-radius:.6rem;background:#eef5fd;color:#45627f;font-size:.64rem}.p17-advice-elements b{font-size:.59rem;text-transform:uppercase;letter-spacing:.04em;color:#347dbc}
@media(max-width:760px){.training-structure-actions{justify-content:stretch}.training-structure-actions .button{flex:1}.p17-advice-toolbar{flex-direction:column}.p17-advice-toolbar label{white-space:normal}.p17-advice-grid{grid-template-columns:1fr}.p17-advice-card-head{flex-direction:column}.p17-advice-card-head .button{width:100%}.p17-advice-recommendation button{position:static;margin-top:.6rem;transform:none}}
.training-copy-day{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-top:1rem;border:1px solid #d8e2ef;border-radius:1rem;padding:.8rem 1rem;background:rgba(255,255,255,.82)}.training-copy-day>div:first-child{min-width:0}.training-copy-day strong,.training-copy-day small{display:block}.training-copy-day strong{font-size:.78rem}.training-copy-day small{max-width:32rem;margin-top:.2rem;color:var(--muted);font-size:.68rem;line-height:1.4}.training-copy-field{display:grid;gap:.25rem}.training-copy-field span{color:var(--muted);font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.training-copy-field .select{min-width:8.8rem}
.member-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;align-items:start;gap:.7rem}.member-form-grid .form-field{min-width:0}.member-choice-group{min-width:0;margin:0;padding:0;border:0}.member-choice-group legend{width:100%;margin:0 0 .3rem;color:#53627a;font-size:.72rem;font-weight:800}.member-choice-chips{display:flex;flex-wrap:wrap;gap:.35rem;min-width:0}.member-choice-chip{position:relative;display:inline-flex;min-width:0;cursor:pointer}.member-choice-chip input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.member-choice-chip span{display:inline-flex;align-items:center;justify-content:center;min-height:2.55rem;border:1px solid var(--line);border-radius:999px;padding:.45rem .68rem;background:#fff;color:#64748b;font-size:.76rem;font-weight:800;line-height:1.1;transition:border-color .16s,background .16s,color .16s,box-shadow .16s}.member-choice-chip:hover span{border-color:#8bb5ee;background:#f3f8ff;color:#3474bd}.member-choice-chip.is-selected span{border-color:var(--primary);background:var(--primary);color:#fff;box-shadow:0 4px 10px rgba(62,148,218,.18)}.member-choice-chip input:focus-visible+span{outline:3px solid rgba(62,148,218,.2);outline-offset:2px}.member-form-actions{position:sticky;bottom:0;z-index:2;margin-inline:-1.2rem;padding:.75rem 1.2rem;background:rgba(255,255,255,.96);backdrop-filter:blur(10px)}
@media(max-width:760px){.member-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.member-choice-chips{gap:.28rem}.member-choice-chip span{min-height:2.35rem;padding:.4rem .52rem;font-size:.68rem}.member-form-actions{margin-inline:-.75rem;padding-inline:.75rem}}@media(max-width:360px){.member-choice-chip span{padding-inline:.42rem;font-size:.64rem}}
@media(max-width:760px){.training-copy-day{align-items:stretch;flex-direction:column}.training-copy-day .toolbar{align-items:stretch}.training-copy-day .toolbar>*{flex:1 1 100%}.training-copy-day .toolbar>span{display:none}.training-copy-field .select,.training-copy-day button{width:100%}}

/* Kompletní editor osoby: oddělená přístupová úroveň, více klubových rolí a bezpečné odvozené hodnoty. */
.member-choice-chip.is-disabled{cursor:not-allowed;opacity:.58}
.member-choice-chip-button{display:inline-flex;min-width:0;margin:0;padding:0;border:0;background:transparent;font:inherit;cursor:pointer}
.member-choice-chip-button span{display:inline-flex;align-items:center;justify-content:center;min-height:2.55rem;border:1px solid var(--line);border-radius:999px;padding:.45rem .68rem;background:#fff;color:#64748b;font-size:.76rem;font-weight:800;line-height:1.1;transition:border-color .16s,background .16s,color .16s,box-shadow .16s}
.member-choice-chip-button:hover span{border-color:#8bb5ee;background:#f3f8ff;color:#3474bd}
.member-choice-chip-button.is-selected span{border-color:var(--primary);background:var(--primary);color:#fff;box-shadow:0 4px 10px rgba(62,148,218,.18)}
.member-choice-chip-button:focus-visible{outline:3px solid rgba(62,148,218,.2);outline-offset:2px;border-radius:999px}
.member-choice-chip-button:disabled{cursor:not-allowed}.member-choice-chip-button:disabled span{opacity:.58}
.member-choice-group.is-automatic .member-choice-chips{opacity:.62}
.member-license-block{display:contents}
.member-readonly-field{min-height:4.15rem;border:1px solid var(--line);border-radius:.85rem;padding:.65rem;background:#f6f9fd}
.member-readonly-field .member-readonly-label{color:var(--muted);font-size:.68rem;font-weight:800}
.member-readonly-field strong{display:block;margin-top:.25rem;color:var(--ink);font-size:1rem}
.compact-member-form .form-help{display:block;margin-top:.35rem;color:var(--muted);font-size:.63rem;line-height:1.45}
@media(max-width:760px){.member-choice-chip-button span{min-height:2.35rem;padding:.4rem .52rem;font-size:.68rem}}
@media(max-width:360px){.member-choice-chip-button span{padding-inline:.42rem;font-size:.64rem}}

/* Přehledný editor člena: čtyři skutečné pracovní části místo jednoho dlouhého formuláře. */
.member-editor-modal{width:min(100%,72rem);overflow:hidden;display:flex;max-height:calc(100dvh - 2rem);flex-direction:column}
.member-editor-modal .modal-head{position:relative;z-index:6;flex:0 0 auto;padding:.9rem 1.1rem;background:#fff}
.member-editor-modal .modal-body{min-height:0;overflow:auto;padding:0 1rem 1rem;background:#f4f7fb}
#member-form{min-width:0}
.member-editor-overview{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 -1rem;padding:.75rem 1rem;border-bottom:1px solid #e2e8f0;background:#fff}
.member-editor-overview>div{display:grid;min-width:0;gap:.1rem}
.member-editor-kicker{color:#6b84a8;font-size:.58rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.member-editor-overview strong{overflow:hidden;color:var(--ink);font-size:1rem;text-overflow:ellipsis;white-space:nowrap}
.member-editor-overview small{color:var(--muted);font-size:.65rem}
.member-editor-status{flex:0 0 auto;border:1px solid #d5e4f7;border-radius:999px;padding:.34rem .58rem;background:#eef5fd;color:#3e72af;font-size:.62rem;font-weight:850}
.member-editor-tabs{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;margin:0 -1rem;padding:.65rem 1rem;border-bottom:1px solid #dde6f1;background:rgba(244,247,251,.96);backdrop-filter:blur(12px)}
.member-editor-tab{min-width:0;border:1px solid #dce4ee;border-radius:.72rem;padding:.58rem .65rem;background:#fff;color:#63738a;font-size:.7rem;font-weight:850;line-height:1.15;cursor:pointer;transition:border-color .16s,background .16s,color .16s,box-shadow .16s}
.member-editor-tab:hover{border-color:#a9c8eb;color:#326fab}
.member-editor-tab.is-active{border-color:#76a8e6;background:#6d98d3;color:#fff;box-shadow:0 5px 14px rgba(64,113,177,.16)}
.member-editor-tab:focus-visible{outline:3px solid rgba(62,148,218,.2);outline-offset:2px}
.member-editor-panels{padding-top:.8rem}
.member-editor-panel{display:grid;gap:.75rem;animation:member-editor-panel-in .16s ease-out}
.member-editor-panel[hidden]{display:none!important}
@keyframes member-editor-panel-in{from{opacity:.4;transform:translateY(3px)}to{opacity:1;transform:none}}
.member-editor-profile-grid{display:grid;grid-template-columns:minmax(16rem,.68fr) minmax(0,1.5fr);gap:.75rem;align-items:stretch}
.member-editor-panel .member-form-section{margin-top:0;border-color:#dfe7f0;border-radius:.9rem;padding:.8rem;background:#fff;box-shadow:0 4px 14px rgba(32,54,84,.035)}
.member-editor-panel .member-form-section-head{margin-bottom:.62rem;padding-bottom:.55rem;border-bottom:1px solid #edf1f6}
.member-editor-panel .member-form-section-head h3{font-size:.86rem;letter-spacing:-.01em}
.member-editor-panel .member-form-section-head p{font-size:.64rem}
.member-editor-panel .member-form-grid{gap:.58rem!important}
.member-editor-panel .form-field{gap:.22rem}
.member-editor-panel .form-field label,.member-editor-panel .member-choice-group legend{font-size:.65rem}
.member-editor-panel .input,.member-editor-panel .select,.member-editor-panel .textarea{min-height:2.35rem;padding:.48rem .58rem;font-size:.76rem}
.member-editor-panel .member-choice-chips{grid-template-columns:repeat(auto-fit,minmax(6.8rem,1fr));gap:.3rem}
.member-editor-panel .member-choice-chip span,.member-editor-panel .member-choice-chip-button span{min-height:2.25rem;padding:.38rem .48rem;font-size:.69rem}
.member-editor-panel .member-calculated-value{display:flex;align-items:center;color:#254b77;font-weight:850;background:#f2f7fd}
.member-photo-section{height:100%}
.member-photo-section .member-photo-editor{grid-template-columns:1fr;justify-items:center;text-align:center}
.member-photo-section .member-photo-preview{width:6.4rem;height:6.4rem;border-radius:1.1rem}
.member-photo-section .member-photo-controls{width:100%}
.member-photo-section .member-photo-controls label{text-align:left}
.member-photo-section .member-photo-file{width:100%;padding:.28rem;background:#f8fafc}
.member-photo-file::file-selector-button{margin-right:.5rem;border:1px solid #d5e1ef;border-radius:.55rem;padding:.38rem .52rem;background:#fff;color:#46617f;font:inherit;font-weight:800;cursor:pointer}
.member-photo-section .member-photo-actions{justify-content:center}
.member-family-section [data-family-contacts]{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
.member-family-contact{padding:.65rem;background:#fbfcfe}
.member-family-contact .member-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.member-family-contact .form-field:first-child,.member-family-contact .form-field:nth-child(2){grid-column:1/-1}
.member-form-actions{display:flex;align-items:center;margin:.8rem -1rem -1rem!important;padding:.75rem 1rem!important;border-top:1px solid #dfe6ef;background:rgba(255,255,255,.97)!important}
.member-form-save-hint{margin-right:auto;color:#7c899b;font-size:.64rem}
#member-form [data-member-form-error]{margin:.65rem 0 0;padding:.65rem .75rem;border:1px solid #f1c9ce;border-radius:.7rem;background:#fff5f6;font-size:.7rem}
@media(max-width:900px){.member-editor-profile-grid{grid-template-columns:14rem minmax(0,1fr)}.member-family-section [data-family-contacts]{grid-template-columns:1fr}}
@media(max-width:760px){
  .member-editor-modal{width:100%;max-width:calc(100vw - .7rem);max-height:calc(100dvh - .7rem);border-radius:.85rem}
  .member-editor-modal .modal-head{padding:.72rem .8rem}
  .member-editor-modal .modal-body{padding:0 .7rem .7rem}
  .member-editor-overview{margin:0 -.7rem;padding:.65rem .7rem}
  .member-editor-overview small{display:none}
  .member-editor-tabs{display:flex;overflow-x:auto;margin:0 -.7rem;padding:.5rem .7rem;scrollbar-width:none}
  .member-editor-tabs::-webkit-scrollbar{display:none}
  .member-editor-tab{flex:0 0 auto;min-width:8.4rem;padding:.52rem .58rem;font-size:.66rem}
  .member-editor-panels{padding-top:.6rem}
  .member-editor-profile-grid{grid-template-columns:1fr;gap:.6rem}
  .member-editor-panel{gap:.6rem}
  .member-editor-panel .member-form-section{padding:.68rem}
  .member-photo-section .member-photo-editor{grid-template-columns:4.8rem minmax(0,1fr);justify-items:stretch;text-align:left}
  .member-photo-section .member-photo-preview{width:4.8rem;height:4.8rem;border-radius:.85rem}
  .member-photo-section .member-photo-actions{justify-content:flex-start}
  .member-family-contact .member-form-grid{grid-template-columns:1fr!important}
  .member-family-contact .form-field:first-child,.member-family-contact .form-field:nth-child(2){grid-column:auto}
  .member-form-save-hint{display:none}
  .member-form-actions{margin:.7rem -.7rem -.7rem!important;padding:.62rem .7rem!important}
}
@media(max-width:520px){
  .member-editor-overview strong{font-size:.9rem}
  .member-editor-status{font-size:.56rem}
  .member-editor-panel .member-form-grid{grid-template-columns:1fr!important}
  .member-editor-panel .member-choice-chips{grid-template-columns:repeat(2,minmax(0,1fr))}
  .member-editor-panel .member-photo-editor{grid-template-columns:4.4rem minmax(0,1fr)}
  .member-editor-panel .member-photo-preview{width:4.4rem;height:4.4rem}
  .member-photo-actions .button{width:auto!important}
}

/* Kompaktní chips pro dostupnost trenérů a responzivní volby člena. */
.availability-summary-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}
.availability-summary-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.3rem .45rem;padding:.42rem .5rem;border-radius:.7rem}
.availability-summary-row .avatar{width:1.65rem;height:1.65rem;font-size:.56rem}
.availability-summary-row .row-main{min-width:0}
.availability-summary-row .row-main strong{font-size:.68rem}
.availability-summary-row .row-main small{font-size:.58rem}
.availability-summary-row .trainer-availability-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.2rem}
.availability-summary-row .availability-choice{min-width:0;padding:.27rem .15rem;font-size:.58rem}
.trainer-availability-panel--compact{padding-block:.7rem}
.trainer-availability-panel--compact .panel-header{margin-bottom:.55rem}
.trainer-availability-panel--compact .trainer-availability-row{padding:.45rem .6rem}
.trainer-availability-panel--compact .trainer-availability-actions{gap:.25rem}
.trainer-availability-panel--compact .availability-choice{padding:.35rem .45rem;font-size:.68rem}
.member-choice-chips{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.35rem}
.member-choice-chip,.member-choice-chip-button{width:100%;min-width:0}
.member-choice-chip span,.member-choice-chip-button span{width:100%;padding-inline:.3rem;text-align:center}
@media(max-width:1100px){.member-choice-chips{grid-template-columns:repeat(3,minmax(0,1fr))}.availability-summary-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.availability-summary-list{grid-template-columns:repeat(3,minmax(0,1fr))}.availability-summary-row{padding:.38rem}.availability-summary-row .avatar{display:none}.availability-summary-row .row-main strong{font-size:.6rem}.availability-summary-row .availability-choice{padding-inline:.08rem;font-size:.5rem}.member-choice-chips{grid-template-columns:repeat(2,minmax(0,1fr))}}
.settings-module-icon svg{fill:none!important;stroke:#397fc4!important;stroke-width:1.8!important}
.p19-logo-upload{align-content:start}.p19-logo-file-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.p19-logo-gallery-button{justify-self:start}
.td-filter-group label{min-width:0}.td-member-avatar{display:grid!important;place-items:center;width:1.7rem;height:1.7rem;flex:0 0 1.7rem;overflow:hidden;border-radius:50%;padding:0!important;background:#eaf3ff;color:#6b8bb0;font-size:.56rem;font-weight:850}.td-member-avatar img{display:block;width:100%;height:100%;object-fit:cover}
 .tournament-editor-category-section{min-width:0;border:0;margin:0;padding:0}.tournament-attachment-list{display:grid;gap:.45rem}.tournament-attachment-link{display:flex;align-items:center;gap:.6rem;color:inherit;text-decoration:none}.tournament-attachment-link>span:nth-child(2){flex:1;min-width:0}.tournament-attachment-link strong,.tournament-attachment-link small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tournament-attachment-link strong{font-size:.75rem}.tournament-attachment-link small{margin-top:.12rem;color:var(--muted);font-size:.63rem}
.brand-mark{background:transparent;color:var(--navy);overflow:hidden;padding:.08rem}

/* Hustší responzivní rozložení docházky a dostupnosti trenérů. */
@media(max-width:760px){
  .attendance-member-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
  .attendance-member-grid .attendance-row--simple{min-width:0;gap:.45rem;padding:.58rem}
  .attendance-member-grid .attendance-row--simple .avatar{width:2.1rem;height:2.1rem;border-radius:.7rem}
  .attendance-member-grid .attendance-row--simple .row-main{min-width:0}
  .attendance-member-grid .attendance-row--simple strong,
  .attendance-member-grid .attendance-row--simple small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .attendance-member-grid .attendance-row--simple strong{font-size:.68rem}
  .attendance-member-grid .attendance-row--simple small{font-size:.58rem}
  .attendance-member-grid .attendance-row--simple .attendance-toggle{width:2.25rem;height:1.3rem}
  .attendance-member-grid .attendance-row--simple .attendance-toggle:after{top:.16rem;left:.17rem;width:.98rem;height:.98rem}
  .attendance-member-grid .attendance-row--simple .attendance-toggle.on:after{left:1.1rem}

  .availability-summary-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}
  .availability-summary-row{min-width:0;grid-template-columns:auto minmax(0,1fr);align-items:center;padding:.4rem}
  .availability-summary-row .avatar{display:grid;width:1.35rem;height:1.35rem;border-radius:50%;font-size:.48rem}
  .availability-summary-row .row-main strong,
  .availability-summary-row .row-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .availability-summary-row .row-main strong{font-size:.57rem}
  .availability-summary-row .row-main small{font-size:.5rem}
  .availability-summary-row .trainer-availability-actions{gap:.12rem}
  .availability-summary-row .availability-choice{font-size:.48rem;padding:.24rem .08rem}
}
@media(max-width:370px){
  .attendance-member-grid{grid-template-columns:1fr}
}
.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}
.brand-mark.small{padding:.22rem;border:1px solid rgba(219,227,238,.9);background:#fff}
.brand-mark.large{padding:0;background:transparent}
.mobile-header .brand-mark.small{border-color:rgba(255,255,255,.72);box-shadow:0 3px 10px rgba(15,23,42,.12)}
/* Krok 3: kompaktní editor jednotlivých prvků tréninkového bloku. */
.training-block-elements{display:grid;gap:.45rem;margin-top:.7rem;padding:.6rem;border:1px solid #dce8f8;border-radius:.75rem;background:#f4f8ff}.training-block-elements-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;color:#347dbc;font-size:.65rem;text-transform:uppercase;letter-spacing:.05em}.training-block-elements-head span{display:grid;place-items:center;min-width:1.4rem;height:1.4rem;border-radius:999px;background:#fff;color:#607088;font-size:.65rem}.training-element{display:grid;gap:.4rem;padding:.5rem;border:1px solid #dfe7f0;border-radius:.65rem;background:#fff}.training-element-top{display:grid;grid-template-columns:minmax(0,1fr) 4.5rem auto 2rem;gap:.4rem;align-items:center}.training-element-top .minutes{text-align:center}.training-element-top button{width:2rem;height:2rem;border:0;border-radius:.45rem;background:#fff5f6;color:#bf3d49;font-size:1rem}.training-element-rounds{display:flex;align-items:center;gap:.35rem;min-height:2.35rem;padding:0 .45rem;border:1px solid var(--line);border-radius:.65rem;color:#607088;font-size:.67rem;font-weight:800;white-space:nowrap}.training-element-rounds input{accent-color:var(--primary)}.training-element-rounds-count label{display:flex;align-items:center;gap:.4rem;color:#607088;font-size:.67rem;font-weight:800}.training-element-rounds-count .input{width:5rem}.training-elements-empty{margin:0;color:var(--muted);font-size:.67rem}.training-trainer-availability{display:inline-flex;margin-left:.45rem;border-radius:999px;padding:.17rem .4rem;font-size:.58rem;font-weight:800}.training-trainer-availability--green{background:#effbf4;color:#3c8b63}.training-trainer-availability--amber{background:#fffaf0;color:#ad6b1e}.training-trainer-availability--red{background:#fff3f3;color:#b13b49}.training-trainer-availability--gray{background:#f1f5f9;color:#718096}
@media(max-width:760px){.training-element-top{grid-template-columns:minmax(0,1fr) 4.2rem 2rem}.training-element-rounds{grid-column:1/3}.training-element-top button{grid-column:3;grid-row:1}.training-block-elements{padding:.5rem}}
.training-choice-grid label span small.training-trainer-availability{display:inline-flex;border:0;border-radius:999px;padding:.17rem .4rem;background:#f1f5f9;color:#718096;font-size:.58rem;font-weight:800;text-align:left;box-shadow:none}
.training-choice-grid label span small.training-trainer-availability--green{background:#effbf4;color:#3c8b63}.training-choice-grid label span small.training-trainer-availability--amber{background:#fffaf0;color:#ad6b1e}.training-choice-grid label span small.training-trainer-availability--red{background:#fff3f3;color:#b13b49}
/* Responsive training diary board: desktop comparison, compact mobile layout. */
#view-training_diary{min-width:0}
#view-training_diary .td-layout,#view-training_diary .td-content,#view-training_diary .td-week-layout,#view-training_diary .td-week-layout>.panel,#view-training_diary .td-templates,#view-training_diary .td-smart-plan,#view-training_diary .td-selected-entries,#view-training_diary .td-club-trainings{min-width:0;max-width:100%}
.td-week-layout{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:1rem;align-items:stretch}
.td-week-layout>.panel{width:100%;height:100%;display:flex;flex-direction:column}
.td-week-summary .table-wrap{display:flex;max-width:100%;min-height:0;overflow-x:auto}
.td-week-summary .td-summary-table{width:100%;height:100%;min-width:0;table-layout:fixed}
.td-week-summary .td-summary-table th:first-child{width:9rem}
.td-week-board .panel-header,.td-week-summary .panel-header{min-width:0}
.td-week-board .td-days{flex:0 0 auto;gap:.42rem}
.td-week-summary .table-wrap{flex:1}
.td-week-board .td-day{grid-template-columns:4rem minmax(0,1fr) auto;grid-template-rows:auto auto;padding:.55rem .65rem}
.td-week-board .td-day footer{grid-column:3;grid-row:1 / span 2;align-self:center;justify-self:end;align-items:center;flex-wrap:nowrap;white-space:nowrap}
.td-week-board .td-day footer b{font-size:.8rem}
.td-week-board .td-day footer span{font-size:.62rem}
.td-week-board .td-day em{margin-top:0}
.td-week-board .td-day small{margin-top:.1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.td-day footer b{border-radius:.5rem;padding:.25rem .42rem;background:#eaf3ff;color:#286fbb}
.td-day footer span{border:1px solid #ded7fb;border-radius:.5rem;padding:.23rem .38rem;background:#f5f2ff;color:#6952c5}
.td-sidebar .td-filter-group:last-child label{position:relative;min-height:2.65rem;justify-content:flex-start;border:1px solid transparent;border-radius:.8rem;padding:.48rem .55rem;color:#53627a;font-size:.76rem;cursor:pointer;transition:border-color .16s,background .16s,box-shadow .16s,color .16s}
.td-sidebar .td-filter-group:last-child label:hover{background:#f7f9fc}
.td-sidebar .td-filter-group:last-child label input{position:absolute;opacity:0;pointer-events:none}
.td-sidebar .td-filter-group:last-child label::before{display:none}
.td-sidebar .td-filter-group:last-child label:has(input:checked){border-color:#c5d5ff;background:#eef2ff;color:#293c9a;box-shadow:0 0 0 1px #dfe7ff}
.td-sidebar .td-filter-group:last-child label:has(input:checked)::after{content:'✓';position:absolute;right:.7rem;color:#5365dc;font-size:1.05rem;font-weight:900}
@media(max-width:1100px){.td-week-layout{grid-template-columns:1fr}}
@media(max-width:760px){
  #view-training_diary{overflow-x:hidden}
  #view-training_diary .td-layout,#view-training_diary .td-content,#view-training_diary .td-week-layout,#view-training_diary .td-week-board,#view-training_diary .td-week-summary,#view-training_diary .td-templates,#view-training_diary .td-smart-plan,#view-training_diary .td-selected-entries,#view-training_diary .td-club-trainings{width:100%;min-width:0;max-width:100%}
  .td-week-layout{grid-template-columns:1fr;gap:.75rem}
  .td-content-head{width:100%;min-width:0}
  .td-content-head>div{min-width:0;max-width:100%}
  .td-content-head>.toolbar{width:100%;min-width:0;display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:.35rem;align-items:center}
  .td-content-head>.toolbar strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:.72rem}
  .td-week-board .panel-header,.td-week-summary .panel-header{align-items:stretch;flex-direction:column}
  .td-week-board .panel-header .toolbar,.td-week-summary .panel-header .toolbar{width:100%;display:flex;flex-wrap:wrap}
  .td-days{gap:.45rem}
  .td-day,.td-week-board .td-day{width:100%;max-width:100%;box-sizing:border-box;grid-template-columns:2.75rem minmax(0,1fr);gap:.35rem .55rem;padding:.65rem .7rem;overflow:hidden}
  .td-day>span{grid-column:1;grid-row:1 / span 3;display:grid;align-content:start;justify-items:start;gap:.1rem}
  .td-day>span>b{font-size:.6rem}
  .td-day>span>strong{font-size:1rem}
  .td-day em,.td-day small,.td-day footer{grid-column:2;min-width:0}
  .td-day em{grid-row:1;margin-top:0;overflow-wrap:anywhere}
  .td-day small,.td-week-board .td-day small{grid-row:2;margin-top:0;overflow-wrap:anywhere;overflow:hidden;text-overflow:clip;white-space:normal}
  .td-day footer,.td-week-board .td-day footer{grid-column:2;grid-row:3;display:flex;align-items:center;justify-self:stretch;margin-top:.15rem;white-space:normal}
  .td-week-summary .td-summary-table{min-width:34rem;table-layout:auto;font-size:.62rem}
  .td-summary-table th,.td-summary-table td{padding:.45rem .3rem}
  .td-template,.td-smart-plan,.td-selected-entries,.td-club-trainings{min-width:0}
  .td-template strong,.td-template span{overflow-wrap:anywhere}
}
.td-week-summary{background:linear-gradient(145deg,#fff 0%,#fbfdff 68%,#f4f8ff 100%)}
.td-week-summary .table-wrap{border-color:#d9e5f5;border-radius:1rem;background:#fff;box-shadow:inset 0 1px 0 #fff,0 8px 20px rgba(30,64,175,.04)}
.td-week-summary .td-summary-table thead{background:linear-gradient(180deg,#f5f9ff,#edf4fd)}
.td-week-summary .td-summary-table thead th{height:4.4rem;padding:.55rem .35rem;color:#5e7390;font-size:.64rem;letter-spacing:.08em}
.td-week-summary .td-summary-table thead th:not(:first-child){border-left:1px solid #e7eef7}
.td-week-summary .td-summary-table thead button{display:inline-grid;place-items:center;min-width:2.35rem;min-height:2.35rem;border:1px solid transparent;border-radius:.7rem;color:#526b89;line-height:1.15;transition:background .16s,border-color .16s,color .16s}
.td-week-summary .td-summary-table thead button:hover{border-color:#c9dcf5;background:#fff;color:#286fbb}
.td-week-summary .td-summary-table tbody tr{height:3.45rem}
.td-week-summary .td-summary-table tbody th{position:relative;padding-left:2.4rem;color:#657992;background:#f8fbff;font-size:.67rem;letter-spacing:.08em;white-space:normal}
.td-week-summary .td-summary-table tbody th::before{position:absolute;left:.72rem;top:50%;display:grid;place-items:center;width:1.3rem;height:1.3rem;transform:translateY(-50%);border-radius:.42rem;background:#eaf3ff;color:#3278be;font-size:.72rem;font-weight:900;line-height:1}
.td-week-summary .td-summary-table tbody tr:nth-child(1) th::before{content:'▦'}
.td-week-summary .td-summary-table tbody tr:nth-child(2) th::before{content:'◆';background:#ecfbf4;color:#16835f;font-size:.56rem}

/* Kompaktní týdenní přehled: všech sedm dnů zůstává v jednom řádku. */
.training-week-board{grid-template-columns:repeat(7,minmax(0,1fr));gap:.65rem;overflow-x:auto;padding-bottom:.35rem}
.training-week-day{min-width:0;min-height:11rem}
.td-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:.42rem;overflow-x:auto}
.td-week-board .td-days{grid-template-columns:repeat(7,minmax(0,1fr))}
.td-week-board .td-day{min-width:0}
.td-layout:not(:has(.td-sidebar)){grid-template-columns:1fr}
.td-day-detail-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:1rem;min-width:0}
.td-day-detail-grid>.panel{min-width:0}

@media(max-width:1100px){
  .training-week-board{grid-template-columns:repeat(7,minmax(10rem,1fr));min-width:0}
  .td-days,.td-week-board .td-days{grid-template-columns:repeat(7,minmax(8.5rem,1fr))}
  .td-day-detail-grid{grid-template-columns:1fr}
}

@media(max-width:760px){
  .training-week-board{grid-template-columns:repeat(7,minmax(8.6rem,1fr));}
  .td-days,.td-week-board .td-days{grid-template-columns:repeat(7,minmax(7.8rem,1fr));}
  .td-day-detail-grid{grid-template-columns:1fr;gap:.75rem}
}
.td-week-summary .td-summary-table tbody tr:nth-child(3) th::before{content:'✦';background:#f5f2ff;color:#6952c5}
.td-week-summary .td-summary-table tbody tr:nth-child(4) th::before{content:'◷';background:#eff6ff;color:#286fbb}
.td-week-summary .td-summary-table tbody tr:nth-child(5) th::before{content:'↗';background:#fff8e6;color:#ad7417}
.td-week-summary .td-summary-table tbody tr:nth-child(6) th::before{content:'⚡';background:#fff1f2;color:#bc3545;font-size:.66rem}
.td-week-summary .td-summary-table tbody tr:nth-child(7) th::before{content:'↑';background:#fff1f2;color:#bc3545}
.td-week-summary .td-summary-table tbody tr:nth-child(8) th::before{content:'↺';background:#ecfbf4;color:#16835f}
.td-week-summary .td-summary-table tbody tr:nth-child(odd) td{background:#fff}
.td-week-summary .td-summary-table tbody tr:nth-child(even) td{background:#fbfdff}
.td-week-summary .td-summary-table tbody td{border-left:1px solid #eef3f8;color:#51657f;font-size:.78rem;font-variant-numeric:tabular-nums}
.td-week-summary .td-summary-table tbody tr:nth-child(4) td{color:#286fbb;font-weight:750}
.td-week-summary .td-summary-table tbody tr:nth-child(6) td{color:#7b55bd;font-weight:750}
.td-week-summary .td-summary-table tbody td:last-child{background:#f0f6ff!important;color:#1f5f9f;font-size:.84rem;font-weight:900}
.td-week-summary .td-summary-table tbody tr:nth-child(6) td:last-child{background:#f5f1ff!important;color:#6548b3}
.td-week-summary .td-summary-table tbody tr:hover td{background:#f4f8ff!important}
@media(max-width:760px){
  .td-week-summary .td-summary-table th:first-child{width:7rem}
  .td-week-summary .td-summary-table thead th{height:3.5rem}
  .td-week-summary .td-summary-table thead button{min-width:2rem;min-height:2rem}
  .td-week-summary .td-summary-table tbody tr{height:3rem}
  .td-week-summary .td-summary-table tbody th{padding-left:2rem}
  .td-week-summary .td-summary-table tbody th::before{left:.45rem}
}

/* Turnajový detail: kompaktní stav v hlavičce a výsledky použitelné i na telefonu. */
.tournament-header-status{min-width:8.5rem;max-width:10rem;border-color:#b9d2ef;background:#f4f8ff;color:#2f6fae;font-weight:800}
.tournament-results-table{table-layout:fixed}
.tournament-results-table th:nth-child(1){width:27%}.tournament-results-table th:nth-child(2){width:10%}.tournament-results-table th:nth-child(3){width:17%}.tournament-results-table th:nth-child(4),.tournament-results-table th:nth-child(5),.tournament-results-table th:nth-child(6){width:15.3%}
.tournament-results-table .member-weight-field{max-width:7rem}
#modal-root .modal-body>.detail-head+.grid.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:760px){
  .tournament-header-status{width:100%;max-width:none}
  #modal-root .modal-body>.detail-head+.grid.grid-4{gap:.45rem}
  #modal-root .modal-body>.detail-head+.grid.grid-4 .stat-highlight{padding:.55rem}
  .tournament-results-table{min-width:0;display:block}
  .tournament-results-table thead{display:none}
  .tournament-results-table tbody,.tournament-results-table tr{display:block}
  .tournament-results-table tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.45rem .65rem;padding:.75rem .7rem;border-bottom:1px solid var(--line)}
  .tournament-results-table tr:last-child{border-bottom:0}
  .tournament-results-table td{display:flex;align-items:center;min-width:0;padding:.1rem 0;border:0;background:transparent!important}
  .tournament-results-table td::before{content:attr(data-label);display:block;margin-right:.45rem;color:var(--muted);font-size:.61rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
  .tournament-results-table td:first-child{grid-column:1 / -1;display:block;padding-bottom:.2rem}
  .tournament-results-table td:first-child::before{margin-bottom:.1rem}
  .tournament-results-table td:first-child strong,.tournament-results-table td:first-child small{display:block}
  .tournament-results-table td:nth-child(2){justify-content:flex-start}
  .tournament-results-table td:nth-child(2)::before{margin-right:.65rem}
  .tournament-results-table td:nth-child(n+3){display:grid;grid-template-columns:1fr;gap:.2rem;align-items:stretch}
  .tournament-results-table td:nth-child(n+3)::before{margin:0}
  .tournament-results-table .table-input{width:100%;max-width:none;min-width:0}
}

.calendar-cell.muted-day{
  border-style:dashed;
  border-color:#e5ebf3;
  background:repeating-linear-gradient(135deg,#f8fafc 0,#f8fafc 10px,#f4f7fb 10px,#f4f7fb 11px);
  opacity:.8;
}

/* Docházka: hustší seznam sportovců podle šířky zařízení. */
.attendance-member-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}
.attendance-member-grid .attendance-row--simple{min-width:0;gap:.5rem;padding:.55rem .65rem;border-radius:.78rem}
.attendance-member-grid .attendance-row--simple .avatar{width:2.1rem;height:2.1rem;border-radius:.65rem}
.attendance-member-grid .attendance-row--simple strong{font-size:.76rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.attendance-member-grid .attendance-row--simple small{font-size:.6rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.attendance-member-grid .attendance-row--simple .attendance-toggle{width:2.5rem;height:1.4rem}
.attendance-member-grid .attendance-row--simple .attendance-toggle:after{top:.17rem;left:.17rem;width:1.06rem;height:1.06rem}
.attendance-member-grid .attendance-row--simple .attendance-toggle.on:after{left:1.27rem}
@media(min-width:761px) and (max-width:1100px){
  .attendance-member-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:760px){
  .attendance-member-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}
  .attendance-member-grid .attendance-row--simple{gap:.38rem;padding:.48rem}
  .attendance-member-grid .attendance-row--simple .avatar{width:1.85rem;height:1.85rem}
  .attendance-member-grid .attendance-row--simple strong{font-size:.66rem}
  .attendance-member-grid .attendance-row--simple small{font-size:.54rem}
  .attendance-member-grid .attendance-row--simple .attendance-toggle{width:2.2rem;height:1.25rem}
  .attendance-member-grid .attendance-row--simple .attendance-toggle:after{top:.15rem;left:.15rem;width:.95rem;height:.95rem}
  .attendance-member-grid .attendance-row--simple .attendance-toggle.on:after{left:1.1rem}
}

/* Dostupnost trenérů: žádný text ani chip nesmí přetéct mimo kartu. */
.availability-summary-row{min-width:0;overflow:hidden}
.availability-summary-row .row-main{min-width:0;max-width:100%;overflow:hidden}
.availability-summary-row .row-main strong,
.availability-summary-row .row-main small{display:block;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.availability-summary-row .trainer-availability-actions{min-width:0;width:100%;overflow:hidden}
.availability-summary-row .availability-choice{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Dashboard: zachovaný obsah v kompaktnějším vizuálu podle nového návrhu. */
#view-dashboard{gap:1rem}
#view-dashboard>.dashboard-welcome{border-color:#d3e4fa;background:linear-gradient(135deg,#f7fbff 0%,#fff 58%,#eaf4ff 100%);box-shadow:0 8px 22px rgba(62,148,218,.07)}
#view-dashboard>.dashboard-welcome .dash-icon{background:#2d74ec;box-shadow:0 8px 16px rgba(45,116,236,.18)}
#view-dashboard>.grid.grid-4{gap:.65rem}
#view-dashboard>.grid.grid-4 .stat-card{min-width:0;padding:.85rem .9rem;border-radius:1rem;box-shadow:0 5px 14px rgba(15,23,42,.04)}
#view-dashboard>.grid.grid-4 .stat-card strong{margin:.3rem 0 .15rem;font-size:1.45rem}
#view-dashboard>.grid.grid-2{gap:.85rem}
#view-dashboard .dashboard-alerts-panel{border-color:#ffd0d8;background:linear-gradient(145deg,#fff 0%,#fff9fa 100%);box-shadow:0 8px 22px rgba(223,105,120,.08)}
#view-dashboard .dashboard-alerts-panel .panel-header,
#view-dashboard .dashboard-birthdays-panel .panel-header,
#view-dashboard .dashboard-upcoming-tournament .panel-header{align-items:flex-start;padding-bottom:.7rem}
#view-dashboard .dashboard-alerts-panel .panel-header>div:first-child::before{content:'POZORNOST';display:block;margin-bottom:.18rem;color:#df6978;font-size:.58rem;font-weight:900;letter-spacing:.16em}
#view-dashboard .dashboard-alerts-panel .panel-header h3{color:#172033}
#view-dashboard .dashboard-alerts-panel .panel-header h3::before{content:'⚠';display:inline-grid;place-items:center;width:1.7rem;height:1.7rem;margin-right:.45rem;border-radius:.55rem;background:#fff0f3;color:#df6978;font-size:.82rem;vertical-align:-.48rem}
#view-dashboard .dashboard-alerts-panel .dashboard-alert-list{gap:.55rem}
#view-dashboard .dash-task-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin:.1rem 0 .75rem}
#view-dashboard .dash-task-stat{display:grid;min-height:3.5rem;place-items:center;align-content:center;border:1px solid transparent;border-radius:.85rem;text-align:center}
#view-dashboard .dash-task-stat strong{font-size:1.15rem;line-height:1}
#view-dashboard .dash-task-stat span{margin-top:.35rem;font-size:.58rem;font-weight:900;letter-spacing:.04em}
#view-dashboard .dash-task-stat--required{border-color:#ffd1d9;background:#fff0f3;color:#d43855}
#view-dashboard .dash-task-stat--soon{border-color:#f4dfa4;background:#fff9e8;color:#ba7812}
#view-dashboard .dash-task-stat--info{border-color:#cfe2fa;background:#eff6ff;color:#3476d7}
#view-dashboard .dashboard-alerts-panel .dashboard-alert{border-color:#ffd9df;background:#fff4f6;border-radius:.72rem}
#view-dashboard .dashboard-alerts-panel .dashboard-alert .notice-icon{background:#ffe7ec;color:#df6978}
#view-dashboard .dashboard-birthdays-panel{border-color:#f0d7e5;background:linear-gradient(145deg,#fff 0%,#fff8fc 100%);box-shadow:0 8px 22px rgba(219,107,157,.07)}
#view-dashboard .dashboard-birthdays-panel .panel-header h3::before{content:'🎂';margin-right:.45rem;font-size:.95rem;vertical-align:-.08rem}
#view-dashboard .dashboard-birthdays-panel .notice{border-color:#f3dce8;background:#fff5fa;border-radius:.7rem}
#view-dashboard .dashboard-birthdays-panel .dashboard-birthday-soon{border-color:#f0b8d0;background:#fff0f7;box-shadow:inset 4px 0 0 #df78ad}
#view-dashboard .dashboard-birthdays-panel .dashboard-birthday-today{border-color:#ef9eae;background:#ffedf2;box-shadow:inset 4px 0 0 #df6978}
#view-dashboard .dashboard-birthdays-panel .badge{border-color:#f0c7da;background:#fff;color:#bd4c82}
#view-dashboard .dashboard-birthdays-panel .dashboard-birthday-avatar{border-radius:.65rem;background:#ffe5f0}
#view-dashboard .dashboard-birthdays-panel .dashboard-birthday-today .dashboard-birthday-avatar{background:#ffdce5}
#view-dashboard .dashboard-birthdays-panel .notice{min-height:3.55rem;padding:.68rem .75rem}
#view-dashboard .dashboard-birthdays-panel .notice-main{min-width:0}
#view-dashboard .dashboard-birthdays-panel .notice-main strong{font-size:.78rem}
#view-dashboard .dashboard-birthdays-panel .notice-main small{font-size:.67rem}
#view-dashboard .dashboard-birthdays-panel .dashboard-birthday-avatar{width:2.2rem;height:2.2rem;flex-basis:2.2rem}
#view-dashboard .dashboard-club-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
#view-dashboard .dashboard-club-grid .notice{min-width:0}
#view-dashboard .dashboard-today-empty{display:flex;align-items:center;gap:.7rem;border:1px dashed #cfe0f1;border-radius:.9rem;padding:.9rem;background:#f8fbff}
#view-dashboard .dashboard-today-empty strong,#view-dashboard .dashboard-today-empty small{display:block}
#view-dashboard .dashboard-today-empty strong{font-size:.8rem}
#view-dashboard .dashboard-today-empty small{margin-top:.2rem;color:var(--muted);font-size:.68rem;line-height:1.4}
#view-dashboard .dashboard-next-title{margin:.15rem 0 -.2rem;color:#7286a1;font-size:.62rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
#view-dashboard .dashboard-main-grid .dashboard-upcoming-tournament,
#view-dashboard .event-card{border-color:#f2dfb0;background:linear-gradient(145deg,#fff 0%,#fffaf0 100%);box-shadow:0 7px 18px rgba(183,121,31,.06)}
#view-dashboard .dashboard-upcoming-tournament .panel-header>div:first-child::before{content:'KALENDÁŘ';display:block;margin-bottom:.18rem;color:#c98916;font-size:.58rem;font-weight:900;letter-spacing:.16em}
#view-dashboard .dashboard-main-stack{display:flex;flex-direction:column;grid-column:1 / -1;gap:1rem;width:100%;max-width:none;min-width:0}
#view-dashboard .dashboard-main-stack>.panel{width:100%;max-width:none;min-width:0;align-self:stretch}
#view-dashboard .dashboard-main-stack>.dashboard-birthdays-wide{grid-column:auto}
#view-dashboard .dashboard-main-stack>.dashboard-upcoming-tournament{width:100%;border-color:#f2dfb0;background:linear-gradient(145deg,#fff 0%,#fffaf0 100%)}
#view-dashboard .event-card .badge.amber{background:#fff4d9;border-color:#f0d28b}
#view-dashboard>.panel:last-child{border-color:#d7e6f7;background:linear-gradient(145deg,#fff 0%,#f6faff 100%)}
@media(max-width:760px){
  #view-dashboard>.grid.grid-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
  #view-dashboard>.grid.grid-4 .stat-card{padding:.72rem .7rem}
  #view-dashboard>.grid.grid-4 .stat-card strong{font-size:1.25rem}
  #view-dashboard .dash-task-summary{gap:.4rem}
  #view-dashboard .dash-task-stat{min-height:3.2rem}
  #view-dashboard .dashboard-birthdays-panel .notice{min-height:3.25rem;padding:.58rem .62rem}
  #view-dashboard .dashboard-birthdays-panel .dashboard-birthday-avatar{width:2rem;height:2rem;flex-basis:2rem}
}

/* Vizuální sjednocení s přehlednější starší verzí. */
.training-week-panel{border:1px solid #cfe0f7;border-radius:1.35rem;padding:1.15rem;background:linear-gradient(145deg,#f4f8ff 0%,#fff 58%,#fffaf5 100%);box-shadow:0 14px 32px rgba(30,64,175,.06)}
.training-week-board{gap:.55rem}
.training-week-day{border-color:#d8e4f3;border-top-width:4px;border-radius:.9rem;background:rgba(255,255,255,.92);box-shadow:0 5px 14px rgba(44,75,115,.04)}
.training-week-day.is-enabled{border-color:#bcd8fb;border-top-color:#4b83ed;background:linear-gradient(145deg,#f5f9ff,#fff)}
.training-week-day.is-today{box-shadow:0 0 0 2px rgba(72,159,229,.11),0 8px 18px rgba(44,75,115,.07)}
.training-day-status{border-radius:.55rem;padding:.32rem .48rem;background:#eef2f7;color:#71829a}
.training-week-day.is-enabled .training-day-status{background:#dbeeff;color:#286fbb}
.training-week-day.is-enabled .training-day-status em{color:#286fbb}
.training-week-day.is-today .training-day-status{background:#e6f3ff}
/* Dnešek není stav tréninku: prázdný dnešní den zůstává neutrální. */
.training-week-day.is-today:not(.is-enabled){border-color:#d8e4f3;background:#fff;box-shadow:0 0 0 1px rgba(148,163,184,.12)}
.training-week-day.is-today:not(.is-enabled) .training-week-day-head em{background:#f1f5f9;color:#64748b}
.training-week-day.is-today:not(.is-enabled) .training-day-status{background:#eef2f7;color:#71829a}
.training-week-units{padding-inline:.75rem;font-size:.68rem}
.training-week-day-main{padding-inline:.75rem}
#view-communication .communication-message{border-left:4px solid #d9e5f3;border-radius:1rem;background:#fff;box-shadow:0 8px 20px rgba(44,75,115,.05);transition:border-color .18s,background .18s,transform .18s}
#view-communication .communication-message:hover{transform:translateY(-1px)}
#view-communication .communication-message--alert{border-color:#f1c96e;background:#fffaf0}
#view-communication .communication-message--message{border-color:#9bc9f1;background:#f5f9ff}
#view-communication .communication-message--notice{border-color:#d8b4ef;background:#fcf8ff}
#view-communication .communication-message--important{border-left-color:#ef7d88;background:#fff4f5}
#view-communication .communication-message.is-read{opacity:.86}
#view-communication .communication-message--alert .notice-icon{background:#fff0c9;color:#a86e12}
#view-communication .communication-message--message .notice-icon{background:#dceeff;color:#2878b9}
#view-communication .communication-message--notice .notice-icon{background:#eee2fb;color:#7359d8}
#view-communication .panel .stat-card:nth-child(1){border-color:#cfe2fa;background:#f1f7ff}
#view-communication .panel .stat-card:nth-child(2){border-color:#f4dfac;background:#fffaf0}
#view-communication .panel .stat-card:nth-child(3){border-color:#e4d6f6;background:#fcf8ff}
.attendance-row{position:relative;cursor:pointer;transition:border-color .18s,background .18s,box-shadow .18s,transform .18s}
.attendance-row:hover{border-color:#9fc8ed;background:#f7fbff;transform:translateY(-1px)}
.attendance-row:not(.present){opacity:1}
.attendance-row.present{border-color:#4b9fe2;background:#fff;box-shadow:0 0 0 2px #cfe7fb}
.attendance-row.present::after{content:'✓';position:absolute;top:.45rem;right:.55rem;display:grid;place-items:center;width:1.25rem;height:1.25rem;border-radius:50%;background:#3e94da;color:#fff;font-size:.72rem;font-weight:900}
.attendance-row:focus-visible{outline:3px solid rgba(62,148,218,.25);outline-offset:2px}
.attendance-row .attendance-toggle{display:none!important}
.calendar-overview-panel{border-color:#dbe6f5;background:linear-gradient(145deg,#f7f9ff 0%,#fff 62%,#fffaf5 100%)}
.calendar-layout-switch{display:inline-flex;gap:.3rem;margin-left:auto}
.calendar-agenda-view{display:grid;gap:1rem;margin-top:1rem}
.calendar-program-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}
.calendar-program-stats .stat-card{padding:.75rem .8rem;border-radius:.85rem;background:#f8fafc}
.calendar-program-stats .stat-card:nth-child(2){border-color:#cfe2fa;background:#f1f7ff}
.calendar-program-stats .stat-card:nth-child(3){border-color:#f4dfac;background:#fffaf0}
.calendar-program-stats .stat-card:nth-child(4){border-color:#bdebd9;background:#f1fcf7}
.calendar-program-day{border:1px solid #e0e8f3;border-radius:1rem;background:#fff;overflow:hidden}
.calendar-program-day-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem .85rem;border-bottom:1px solid #edf1f6}
.calendar-program-day-head .eyebrow{margin:0;font-size:.58rem;color:#7489a6}
.calendar-program-day-head h3{margin:.12rem 0 0;font-size:.9rem}
.calendar-program-item{border:0;border-top:1px solid #edf1f6;border-radius:0;padding:.7rem .85rem;background:#fff}
.calendar-program-item:first-child{border-top:0}
.calendar-program-item.training{border-left:3px solid #6caee3;background:#f8fbff}
.calendar-program-item.tournament{border-left:3px solid #e5aa45;background:#fffaf0}
.calendar-program-item.action{border-left:3px solid #9a7be4;background:#fcf9ff}
.calendar-program-item.camp{border-left:3px solid #e27c8a;background:#fff7f8}
.calendar-program-item .calendar-agenda-copy{min-width:0}
.calendar-program-item .calendar-agenda-copy strong{font-size:.76rem}
.calendar-program-item .calendar-agenda-copy small{font-size:.66rem}
.calendar-hero-nav{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.75rem;border:1px solid #dbe6f5;border-radius:1rem;padding:.55rem .7rem;background:#fff;box-shadow:0 8px 20px rgba(30,64,175,.04)}
.calendar-hero-nav strong{text-transform:capitalize;font-size:.9rem}
.calendar-month-heading{grid-column:1/-1;text-align:center;margin-bottom:.15rem;color:#536b8b;font-weight:900;text-transform:capitalize}
.calendar-today-button{margin-left:auto}
.calendar-trainer-summary{border-color:#d7e6f7;background:linear-gradient(145deg,#fff 0%,#f7fbff 100%)}
.calendar-trainer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}
.calendar-trainer-row{display:flex;align-items:center;gap:.5rem;min-width:0;border:1px solid #e2eaf3;border-radius:.7rem;padding:.45rem .55rem;background:#fff}
.calendar-trainer-row .avatar{width:1.8rem;height:1.8rem;border-radius:.55rem;font-size:.6rem}
.calendar-trainer-row strong{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.7rem}
.calendar-upcoming-panel{border-color:#f0dfb8;background:linear-gradient(145deg,#fff 0%,#fffaf1 100%)}
.calendar-upcoming-list{display:grid;gap:.4rem}
.calendar-upcoming-item{align-items:center;border-color:#f0e2c5;background:#fffdf8;padding:.6rem .7rem;text-align:left}
.calendar-upcoming-item.tournament{border-left:3px solid #e3a63e}
.calendar-upcoming-item.training{border-left:3px solid #61a9e4}
.calendar-upcoming-date{min-width:4.8rem;color:#a56e16;font-size:.68rem;font-weight:900}
.calendar-upcoming-item .calendar-agenda-copy{min-width:0;flex:1}
.calendar-upcoming-item .calendar-agenda-copy strong{font-size:.73rem}
.calendar-upcoming-item .calendar-agenda-copy small{font-size:.64rem}

@media(max-width:760px){
  .calendar-layout-switch{width:100%;margin-left:0}
  .calendar-layout-switch .filter-chip{flex:1}
  .calendar-program-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .calendar-program-day-head{padding:.65rem .7rem}
  .calendar-trainer-grid{grid-template-columns:1fr}
  .calendar-filter-row{align-items:stretch}
  .calendar-today-button{margin-left:0}
}

/* At narrower desktop widths keep the weekly board and summary from colliding. */
.td-week-layout{min-width:0}
.td-week-layout>.panel{min-width:0;overflow:hidden}
.td-week-board .td-days{width:100%;max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden}
@media(max-width:1450px){
  .td-week-layout{grid-template-columns:1fr}
}

/* Keep calendar content readable on light agenda cards. */
.calendar-program-item,
.calendar-upcoming-item{color:var(--ink)}
.calendar-program-item strong,
.calendar-upcoming-item strong{color:var(--ink)}
.calendar-program-item small,
.calendar-upcoming-item small{color:var(--muted)}

/* Do not force a seven-column horizontal scroller on narrow layouts. */
@media(max-width:1100px){
  .training-week-board{grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}
  .td-days,.td-week-board .td-days{grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}
}
@media(max-width:760px){
  .training-week-board{grid-template-columns:1fr;overflow:visible}
  .td-days,.td-week-board .td-days{grid-template-columns:1fr;overflow:visible}
}

/* The diary board keeps the readable 4 + 3 arrangement even in a split view. */
#view-training_diary .td-week-board .td-days{
  grid-template-columns:repeat(4,minmax(0,1fr));
  overflow:visible;
  width:100%;
}
#view-training_diary .td-week-board .td-day{
  grid-template-columns:2.8rem minmax(0,1fr);
  grid-template-rows:auto auto auto;
  gap:.18rem .45rem;
  padding:.58rem .62rem;
  overflow:hidden;
}
#view-training_diary .td-week-board .td-day>span{
  grid-column:1;
  grid-row:1 / span 3;
  display:grid;
  align-content:start;
  justify-items:start;
  gap:.12rem;
}
#view-training_diary .td-week-board .td-day>span>b{font-size:.58rem}
#view-training_diary .td-week-board .td-day>span>strong{font-size:1rem}
#view-training_diary .td-week-board .td-day em,
#view-training_diary .td-week-board .td-day small,
#view-training_diary .td-week-board .td-day footer{grid-column:2;min-width:0}
#view-training_diary .td-week-board .td-day em{grid-row:1;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.68rem}
#view-training_diary .td-week-board .td-day small{grid-row:2;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.58rem}
#view-training_diary .td-week-board .td-day footer{grid-row:3;display:flex;align-items:center;justify-self:stretch;margin:.08rem 0 0;gap:.25rem;overflow:hidden;white-space:nowrap}
#view-training_diary .td-week-board .td-day footer b{font-size:.68rem}
#view-training_diary .td-week-board .td-day footer span{overflow:hidden;text-overflow:ellipsis;font-size:.5rem}
@media(max-width:900px){
  #view-training_diary .td-week-board .td-days{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
  #view-training_diary .td-week-board .td-days{grid-template-columns:1fr}
}

/* Calendar agenda cards: match the readable reference list. */
#view-calendar .calendar-program-item{grid-template-columns:minmax(0,1fr) auto;min-height:3.7rem;background:#fff;color:#172033!important}
#view-calendar .calendar-program-item .notice-icon{display:none}
#view-calendar .calendar-program-item .calendar-agenda-copy{color:#172033!important}
#view-calendar .calendar-program-item .calendar-agenda-copy strong{color:#172033!important;font-size:.78rem}
#view-calendar .calendar-program-item .calendar-agenda-copy small{color:#64748b!important}
#view-calendar .calendar-program-item.tournament{background:#fff;border-left:3px solid #e5aa45}
#view-calendar .calendar-program-item.training{background:#fff;border-left:3px solid #6caee3}
#view-calendar .calendar-program-item.action{background:#fff;border-left:3px solid #9a7be4}
#view-calendar .calendar-program-item.camp{background:#fff;border-left:3px solid #e27c8a}

/* Training week: four days on the first row and three on the second. */
.training-week-board{grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible}
@media(max-width:900px){
  .training-week-board{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
  .training-week-board{grid-template-columns:1fr}
}

#view-calendar .calendar-program-day.is-today{border-color:#8fc5f2;box-shadow:0 6px 18px rgba(62,148,218,.1)}
#view-calendar .calendar-program-day.is-today .calendar-program-day-head{background:#f4faff}
#view-calendar .calendar-today-divider{display:flex;align-items:center;gap:.75rem;margin:.35rem 0;color:#66809f;font-size:.66rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
#view-calendar .calendar-today-divider::before,#view-calendar .calendar-today-divider::after{content:"";height:1px;flex:1;background:#cbdced}

/* Calendar layout follows the compact reference view: one coherent header, then filters and agenda. */
#view-calendar .calendar-page-hero{padding-bottom:1rem;border-radius:1.35rem;background:linear-gradient(135deg,#f5f8ff 0%,#fff 58%,#eef7ff 100%)}
#view-calendar .calendar-page-hero .page-hero-inner{padding-bottom:.8rem}
#view-calendar .calendar-page-hero .eyebrow{margin-bottom:.3rem;color:#5269d8}
#view-calendar .calendar-page-hero .calendar-hero-nav{margin:.25rem 1.25rem 0;border-color:#d9e4f2;box-shadow:none}
#view-calendar .calendar-overview-panel{margin-top:.8rem!important;padding:1rem;border-radius:1.25rem}
#view-calendar .calendar-filter-row{padding-bottom:.15rem}
#view-calendar .calendar-program-day{box-shadow:0 5px 16px rgba(36,76,130,.045)}
#view-calendar .calendar-program-day-head{background:#fff}
#view-calendar .calendar-program-item{min-height:3.4rem}
#view-calendar .calendar-selected-panel,#view-calendar .calendar-trainer-summary,#view-calendar .calendar-upcoming-panel{border-radius:1.25rem}

.role-picker{position:relative;width:min(100%,13rem)}
.role-picker-trigger{display:flex;width:100%;align-items:center;justify-content:space-between;gap:.7rem;min-height:2.55rem;border:1px solid #b9d1ea;border-radius:.9rem;padding:.55rem .75rem;background:#fff;color:#274a70;font-size:.75rem;text-align:left;box-shadow:0 3px 9px rgba(54,101,153,.06)}
.role-picker-trigger:hover,.role-picker.is-open .role-picker-trigger{border-color:#5fa3df;box-shadow:0 0 0 3px rgba(62,148,218,.12)}
.role-picker-menu{position:absolute;z-index:20;top:calc(100% + .35rem);left:0;right:0;display:none;overflow:hidden;border:1px solid #cfe0f1;border-radius:.9rem;padding:.3rem;background:#fff;box-shadow:0 14px 28px rgba(35,72,112,.16)}
.role-picker.is-open .role-picker-menu{display:grid;gap:.15rem}
.role-picker-menu button{border:0;border-radius:.58rem;padding:.52rem .65rem;background:transparent;color:#315372;font-size:.73rem;text-align:left}
.role-picker-menu button:hover,.role-picker-menu button.is-selected{background:#eaf4ff;color:#216aa7}
@media(max-width:760px){.role-picker{width:auto;flex:1;min-width:0}.role-picker-menu{position:fixed;left:1rem;right:1rem;top:auto;margin-top:.35rem}}

/* Profilové fotografie: trenéři jsou v dostupnosti výraznější, členové zůstávají úsporní. */
.attendance-availability-panel .availability-summary-row .avatar{width:2.65rem;height:2.65rem;border-radius:.75rem;font-size:.72rem}
.attendance-availability-panel .availability-summary-row .avatar img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.attendance-member-grid .attendance-row--simple .avatar img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}

/* Tréninkový deník se řídí šířkou svého obsahu, ne šířkou celého okna. */
#view-training_diary .td-content{container-type:inline-size}
@container (max-width:1000px){
  #view-training_diary .td-week-layout{grid-template-columns:1fr}
  #view-training_diary .td-week-board .td-days{grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible}
}
@container (max-width:620px){
  #view-training_diary .td-week-board .td-days{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@container (max-width:420px){
  #view-training_diary .td-week-board .td-days{grid-template-columns:1fr}
}
.td-question-autocomplete{display:grid;gap:.18rem;margin-top:-.4rem;margin-bottom:.65rem;overflow:auto;max-height:12rem;border:1px solid #d7ccff;border-radius:.85rem;background:#fff;box-shadow:0 12px 26px rgba(76,53,174,.14)}
.td-question-autocomplete[hidden]{display:none}
.td-question-autocomplete-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.55rem .7rem;background:linear-gradient(90deg,#f3efff,#eef7ff);color:#6844d2;font-size:.58rem;letter-spacing:.08em}
.td-question-autocomplete-head span{border-radius:999px;padding:.22rem .45rem;background:#eee9ff;color:#7350db;font-size:.58rem;letter-spacing:0}
.td-question-autocomplete button{display:grid;grid-template-columns:1.35rem minmax(0,1fr);align-items:center;gap:.45rem;border:0;border-left:3px solid transparent;padding:.48rem .7rem;background:#fff;color:var(--ink);text-align:left;cursor:pointer;font-size:.7rem}
.td-question-autocomplete button:nth-of-type(3n+1){border-left-color:#7c5ce4}
.td-question-autocomplete button:nth-of-type(3n+2){border-left-color:#4b9fe5}

/* Finální ochrana deníkového týdne: vždy 4 + 3 karty, nikdy 7 natlačených v řádku. */
#view-training_diary .td-week-board .td-days,
.td-week-board .td-days{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:.55rem!important;width:100%!important;min-width:0!important;overflow:visible!important}
#view-training_diary .td-week-board .td-day,
.td-week-board .td-day{display:grid!important;grid-template-columns:3rem minmax(0,1fr)!important;grid-template-rows:auto auto auto!important;align-items:start!important;min-width:0!important;width:100%!important;max-width:100%!important;overflow:hidden!important;gap:.18rem .45rem!important}
#view-training_diary .td-week-board .td-day>span,
.td-week-board .td-day>span{grid-column:1!important;grid-row:1 / span 3!important;min-width:0!important}
#view-training_diary .td-week-board .td-day em,
#view-training_diary .td-week-board .td-day small,
#view-training_diary .td-week-board .td-day footer,
.td-week-board .td-day em,
.td-week-board .td-day small,
.td-week-board .td-day footer{grid-column:2!important;min-width:0!important;max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
#view-training_diary .td-week-board .td-day em,.td-week-board .td-day em{grid-row:1!important;margin:0!important}
#view-training_diary .td-week-board .td-day small,.td-week-board .td-day small{grid-row:2!important;margin:0!important}
#view-training_diary .td-week-board .td-day footer,.td-week-board .td-day footer{grid-row:3!important;display:flex!important;justify-self:stretch!important;margin:.08rem 0 0!important}
@media(max-width:900px){#view-training_diary .td-week-board .td-days,.td-week-board .td-days{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:600px){#view-training_diary .td-week-board .td-days,.td-week-board .td-days{grid-template-columns:1fr!important}}
.td-question-autocomplete button:nth-of-type(3n){border-left-color:#55b58b}
.td-question-autocomplete button:hover{background:linear-gradient(90deg,#f7f4ff,#f2f9ff);color:#4f32b0}
.td-question-autocomplete button i{display:grid;place-items:center;width:1.25rem;height:1.25rem;border-radius:.35rem;background:#eee9ff;color:#7048d8;font-size:.62rem;font-style:normal;font-weight:900}
.td-question-autocomplete button:nth-of-type(3n+2) i{background:#e7f3ff;color:#287ab9}
.td-question-autocomplete button:nth-of-type(3n) i{background:#e9f9f1;color:#22805e}
.td-question-filters{display:flex;flex-wrap:wrap;gap:.35rem}
.td-question-filters .chip{border:1px solid transparent;border-radius:999px;background:#f1f5f9;color:#53627a;transition:background .16s,border-color .16s,color .16s,transform .16s}
.td-question-filters .chip:hover{transform:translateY(-1px);border-color:#b9d5f4;background:#eaf4ff;color:#286fbb}
.td-question-filters .chip.selected{border-color:#7350db;background:#7350db;color:#fff;box-shadow:0 4px 10px rgba(115,80,219,.2)}
.td-question-filters .chip:nth-child(3n+1){background:#f0ebff;color:#6945c9}
.td-question-filters .chip:nth-child(3n+2){background:#eaf6ff;color:#2878b8}
.td-question-filters .chip:nth-child(3n){background:#eaf9f1;color:#237b5a}
.td-question-filters .chip.selected:nth-child(3n+1),.td-question-filters .chip.selected:nth-child(3n+2),.td-question-filters .chip.selected:nth-child(3n){background:#7350db;color:#fff}
.td-question-autocomplete button strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.td-question-autocomplete>p{margin:.65rem .75rem;font-size:.68rem}
.panel,.stat-card,.member-card,.module-card,.event-card{transition:border-color .18s,box-shadow .18s,transform .18s}
.panel:hover,.stat-card:hover,.member-card:hover,.module-card:hover{border-color:#c6d9ef;box-shadow:0 12px 28px rgba(31,65,110,.075)}
#view-dashboard .panel-header h3{color:#236fba}
#view-members .panel-header h3{color:#2b7c72}
#view-attendance .panel-header h3{color:#258767}
#view-tournaments .panel-header h3{color:#a56b10}
#view-calendar .panel-header h3{color:#6b52c8}
#view-communication .panel-header h3{color:#2878b9}
#view-training .panel-header h3{color:#286fba}
#view-training_diary .panel-header h3{color:#6952c5}
#view-clubwear .panel-header h3{color:#b25e76}
#view-dashboard .notice{border-left:3px solid #5b98dc}
#view-attendance .attendance-row.present{border-left:3px solid #55b58b}
#view-tournaments .event-card{border-top:3px solid #e3a33b}
#view-calendar .calendar-event{box-shadow:inset 3px 0 #5b98dc}
#view-calendar .calendar-event.tournament{box-shadow:inset 3px 0 #e3a33b}
#view-calendar .calendar-event.action{box-shadow:inset 3px 0 #7b61d2}
#view-calendar .calendar-event.training{box-shadow:inset 3px 0 #55b58b}
#view-training_diary .td-assistant{border-top:3px solid #7359d8;background:linear-gradient(180deg,#fcfbff,#fff 42%)}
#view-training_diary .td-smart-plan{border-top:3px solid #55b58b;background:linear-gradient(180deg,#f4fcf8,#fff 42%)}
#desktop-nav .nav-btn[data-nav="dashboard"] .nav-icon{color:#3975d1}
#desktop-nav .nav-btn[data-nav="members"] .nav-icon{color:#2b9a83}
#desktop-nav .nav-btn[data-nav="attendance"] .nav-icon{color:#28a26f}
#desktop-nav .nav-btn[data-nav="tournaments"] .nav-icon{color:#d28b20}
#desktop-nav .nav-btn[data-nav="camps"] .nav-icon{color:#e0775e}
#desktop-nav .nav-btn[data-nav="calendar"] .nav-icon{color:#765bd1}
#desktop-nav .nav-btn[data-nav="training"] .nav-icon{color:#3d8fd4}
#desktop-nav .nav-btn[data-nav="training_diary"] .nav-icon{color:#7757c8}
#desktop-nav .nav-btn[data-nav="communication"] .nav-icon{color:#2989bd}
#desktop-nav .nav-btn[data-nav="clubwear"] .nav-icon{color:#c26785}
#desktop-nav .nav-btn[data-nav="settings"] .nav-icon{color:#708199}
#desktop-nav .nav-btn[data-nav].active{background:linear-gradient(90deg,#eef6ff,#f8fbff);box-shadow:inset 3px 0 currentColor}
#desktop-nav .nav-btn[data-nav="tournaments"].active{background:#fff8e8;color:#a86e12;box-shadow:inset 3px 0 #e3a33b}
#desktop-nav .nav-btn[data-nav="attendance"].active{background:#ecfbf4;color:#16835f;box-shadow:inset 3px 0 #55b58b}
#desktop-nav .nav-btn[data-nav="calendar"].active,#desktop-nav .nav-btn[data-nav="training_diary"].active{background:#f5f2ff;color:#6952c5;box-shadow:inset 3px 0 #7359d8}
#desktop-nav .nav-btn[data-nav="communication"].active{background:#eef8ff;color:#2878b9;box-shadow:inset 3px 0 #4b9fe5}
.stat-card:nth-child(4n+1){border-top:3px solid #5b98dc;background:linear-gradient(180deg,#f5f9ff,#fff 45%)}
.stat-card:nth-child(4n+2){border-top:3px solid #55b58b;background:linear-gradient(180deg,#f4fcf8,#fff 45%)}
.stat-card:nth-child(4n+3){border-top:3px solid #e3a33b;background:linear-gradient(180deg,#fffaf0,#fff 45%)}
.stat-card:nth-child(4n){border-top:3px solid #7359d8;background:linear-gradient(180deg,#f8f5ff,#fff 45%)}
.page-hero .hero-icon{box-shadow:0 8px 18px rgba(62,148,218,.16)}
#view-dashboard .page-hero .hero-icon{background:#e4efff;color:#3975d1}
#view-members .page-hero .hero-icon{background:#e4f8f1;color:#238b75}
#view-attendance .page-hero .hero-icon{background:#e3f8ee;color:#1f986d}
#view-tournaments .page-hero .hero-icon{background:#fff2d5;color:#bd7a14}
#view-camps .page-hero .hero-icon{background:#ffebe5;color:#d86950}
#view-calendar .page-hero .hero-icon{background:#eee8ff;color:#7054ca}
#view-training .page-hero .hero-icon{background:#e4f3ff;color:#287ab9}
#view-training_diary .page-hero .hero-icon{background:#eee9ff;color:#7350d8}
#view-communication .page-hero .hero-icon{background:#e2f3ff;color:#287fb5}
#view-clubwear .page-hero .hero-icon{background:#ffe9f0;color:#bd5d7b}
#view-settings .page-hero .hero-icon{background:#edf1f6;color:#607088}
.filter-chip,.settings-tab,.chip{transition:color .16s,background .16s,border-color .16s,box-shadow .16s,transform .16s}
.filter-chip:hover,.settings-tab:hover,.chip:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(51,91,139,.1)}
.badge.blue,.pill.blue{box-shadow:0 3px 8px rgba(62,148,218,.12)}
.badge.green,.pill.green{box-shadow:0 3px 8px rgba(41,162,111,.12)}
.badge.amber,.pill.amber{box-shadow:0 3px 8px rgba(227,163,59,.14)}
.badge.violet{box-shadow:0 3px 8px rgba(115,89,216,.13)}
.notice.warning{border-color:#f1d48f;background:linear-gradient(90deg,#fffaf0,#fff)}
.notice.danger{border-color:#efbfc7;background:linear-gradient(90deg,#fff4f5,#fff)}
.notice.success{border-color:#bce8d5;background:linear-gradient(90deg,#f2fcf7,#fff)}
.member-card:nth-child(4n+1){border-top:3px solid #5b98dc}
.member-card:nth-child(4n+2){border-top:3px solid #55b58b}
.member-card:nth-child(4n+3){border-top:3px solid #e3a33b}
.member-card:nth-child(4n){border-top:3px solid #c579d8}
.event-card.tournament,.tournament-card{border-top:3px solid #e3a33b;background:linear-gradient(180deg,#fffaf0,#fff 44%)}
.event-card.training{border-top:3px solid #55b58b;background:linear-gradient(180deg,#f2fcf7,#fff 44%)}
.event-card.action{border-top:3px solid #7359d8;background:linear-gradient(180deg,#f7f4ff,#fff 44%)}
.event-card.camp{border-top:3px solid #e27c8a;background:linear-gradient(180deg,#fff4f6,#fff 44%)}
.button.primary{background:linear-gradient(135deg,#4c9fe0,#397bd1)}
.button.success{background:linear-gradient(135deg,#35b585,#198f68)}
.button.danger{box-shadow:0 3px 9px rgba(211,79,91,.1)}
.data-table thead th{background:linear-gradient(90deg,#f2f7ff,#f8fbff)}
.data-table tbody tr:nth-child(4n+1) td:first-child{border-left:3px solid #5b98dc}
.data-table tbody tr:nth-child(4n+2) td:first-child{border-left:3px solid #55b58b}
.data-table tbody tr:nth-child(4n+3) td:first-child{border-left:3px solid #e3a33b}
.data-table tbody tr:nth-child(4n) td:first-child{border-left:3px solid #7359d8}
.empty-state .empty-icon{background:linear-gradient(135deg,#eaf3ff,#f4efff);color:#7359d8;box-shadow:0 6px 14px rgba(115,89,216,.1)}

/* Střízlivější vizuál podle posledních referencí: navigace monochromatická,
   karty zápasníků bez duhových akcentů a dnešek není automaticky modrý stav. */
#desktop-nav .nav-btn .nav-icon,
#desktop-nav .nav-btn.active .nav-icon,
#bottom-nav .nav-btn .nav-icon,
#bottom-nav .nav-btn.active .nav-icon{color:#172033}
#desktop-nav .nav-btn:hover .nav-icon,
#bottom-nav .nav-btn:hover .nav-icon{color:#172033}
#view-members .member-card,
#view-members .member-card:nth-child(4n+1),
#view-members .member-card:nth-child(4n+2),
#view-members .member-card:nth-child(4n+3),
#view-members .member-card:nth-child(4n){border-top:1px solid var(--line);background:#fff}
#view-members .member-points{border-color:#dbe3ee;background:#f8fafc;color:#172033}
#view-members .member-missing{border-color:#dbe3ee;background:#f8fafc;color:#64748b}
#view-members .member-tournament-cr,
#view-members .member-tournament-foreign,
#view-members .member-tournament-unknown{border-color:#dbe3ee;background:#f8fafc;color:#64748b}
#view-members .member-doctor-indicator i,
#view-members .member-doctor.valid>span i,
#view-members .member-doctor.expired>span i{background:#64748b}
#view-training .training-week-day.is-today:not(.is-enabled),
#view-training .training-week-day.is-today:not(.is-enabled).is-selected{border-color:#d8e2ef;border-top-color:#e8eef7;background:#fff;box-shadow:none}
#view-training .training-week-day.is-today:not(.is-enabled) .training-week-day-head em{background:#f1f5f9;color:#64748b}
#view-training .training-week-day.is-today:not(.is-enabled) .training-week-day-state{background:#eef2f7;color:#71829a}
/* Dnešek v modulu Tréninky zůstává neutrální i po kliknutí na kartu. */
.training-week-day.is-today:not(.is-enabled),
.training-week-day.is-today:not(.is-enabled):hover{border:1px solid #d8e2ef!important;border-top:4px solid #e8eef7!important;background:#fff!important;box-shadow:none!important;transform:none}
.training-week-day.is-today:not(.is-enabled) .training-day-status{background:#eef2f7!important;color:#71829a!important}
.training-week-day.is-today:not(.is-enabled) .training-today-badge,
.training-week-day.is-today:not(.is-enabled) .training-week-day-head em{border-color:#b9d8f5!important;background:#e8f3ff!important;color:#2878b9!important;box-shadow:0 2px 7px rgba(62,148,218,.16)}

/* Navigační SVG používá currentColor; vynuceně ho sjednotíme na černou. */
#desktop-nav .nav-btn .nav-icon svg,
#desktop-nav .nav-btn.active .nav-icon svg,
#bottom-nav .nav-btn .nav-icon svg,
#bottom-nav .nav-btn.active .nav-icon svg{color:#172033!important;stroke:#172033!important}

/* Dashboard statistiky: klidný monochromatický vzhled bez barevných pruhů. */
#view-dashboard .stat-card,
#view-dashboard .stat-card:nth-child(4n+1),
#view-dashboard .stat-card:nth-child(4n+2),
#view-dashboard .stat-card:nth-child(4n+3),
#view-dashboard .stat-card:nth-child(4n){border:1px solid var(--line);border-top:1px solid var(--line);background:#fff;box-shadow:var(--shadow)}
#view-dashboard .stat-card .label,
#view-dashboard .stat-card strong,
#view-dashboard .stat-card small,
#view-dashboard .stat-card small.success,
#view-dashboard .stat-card small.warning,
#view-dashboard .stat-card small.danger{color:var(--ink)}

/* Základní vizuální systém aplikace: bílá, černá, šedá a klubová barva. */
:root{--ink:#111827;--muted:#6b7280;--line:#e5e7eb;--canvas:#f7f8fa;--surface:#fff;--shadow:0 8px 24px rgba(17,24,39,.045);--radius:1rem}
body{background:var(--canvas);color:var(--ink)}
.sidebar,.panel,.stat-card,.member-card,.module-card,.event-card,.empty-state,.table-wrap,.filter-bar,.modal,.product-card{border-color:var(--line);background:#fff;box-shadow:var(--shadow)}
.sidebar{box-shadow:4px 0 18px rgba(17,24,39,.035)}
.brand-mark{background:var(--app-accent,var(--primary));box-shadow:0 8px 20px color-mix(in srgb,var(--app-accent,var(--primary)) 20%,transparent)}
.page-hero{border-color:var(--line);background:#fff;box-shadow:var(--shadow)}
.page-hero:after{background:color-mix(in srgb,var(--app-accent,var(--primary)) 7%,transparent)}
.hero-icon,.dash-icon{background:color-mix(in srgb,var(--app-accent,var(--primary)) 10%,#fff);color:var(--app-accent,var(--primary))}
.nav-btn.active{border-right-color:var(--app-accent,var(--primary));background:color-mix(in srgb,var(--app-accent,var(--primary)) 8%,#fff);color:var(--app-accent,var(--primary))}
.desktop-nav .nav-btn.active{border-block-color:color-mix(in srgb,var(--app-accent,var(--primary)) 25%,#fff);background:color-mix(in srgb,var(--app-accent,var(--primary)) 8%,#fff);color:var(--app-accent,var(--primary))}
.button.primary{background:var(--app-accent,var(--primary));box-shadow:0 8px 16px color-mix(in srgb,var(--app-accent,var(--primary)) 18%,transparent)}
.button.soft,.badge.blue,.pill.blue{border-color:color-mix(in srgb,var(--app-accent,var(--primary)) 28%,#fff);background:color-mix(in srgb,var(--app-accent,var(--primary)) 9%,#fff);color:var(--app-accent,var(--primary))}
.input:focus,.select:focus,.textarea:focus{border-color:color-mix(in srgb,var(--app-accent,var(--primary)) 65%,#fff);box-shadow:0 0 0 3px color-mix(in srgb,var(--app-accent,var(--primary)) 14%,transparent)}
.data-table th{background:#f9fafb;color:#4b5563}
.data-table td{border-top-color:#f0f1f3}
.panel-header h3,.page-hero h2,.dashboard-welcome h2,.member-card h3,.event-card h3{color:#111827}
.eyebrow{color:var(--app-accent,var(--primary))}
.filter-chip.active,.settings-tab.active{border-color:var(--app-accent,var(--primary));background:var(--app-accent,var(--primary));color:#fff}
.training-week-day.is-enabled,.week-day.active{border-color:color-mix(in srgb,var(--app-accent,var(--primary)) 48%,#fff);background:color-mix(in srgb,var(--app-accent,var(--primary)) 6%,#fff)}

/* Druhý designový průchod: méně dekorací, výraznější hierarchie a jeden akcent. */
.panel-header h3,
#view-dashboard .panel-header h3,
#view-members .panel-header h3,
#view-attendance .panel-header h3,
#view-tournaments .panel-header h3,
#view-calendar .panel-header h3,
#view-communication .panel-header h3,
#view-training .panel-header h3,
#view-training_diary .panel-header h3,
#view-clubwear .panel-header h3{color:#111827!important}
.panel,.stat-card,.member-card,.event-card,.module-card{border-radius:.95rem}
.event-card.tournament,.event-card.training,.event-card.action,.event-card.camp,.tournament-card{border-top:1px solid var(--line);background:#fff}
.event-card.tournament{border-left:3px solid var(--app-accent,var(--primary))}
.event-card.training{border-left:3px solid var(--app-accent,var(--primary))}
.event-card.action{border-left:3px solid #9ca3af}
.event-card.camp{border-left:3px solid #9ca3af}
.calendar-event,.calendar-event.tournament,.calendar-event.action,.calendar-event.training,.calendar-event.camp{background:#f9fafb;color:#374151}
.calendar-event{border-left:2px solid var(--app-accent,var(--primary))}
.notice,.filter-bar{border-radius:.85rem;box-shadow:none}
.notice-icon{background:#f3f4f6;color:#374151}
.topbar h1,.detail-head h2{color:#111827}
.panel-header p,.page-hero p{color:#6b7280}
.role-button{border-color:var(--line);background:#fff;color:#111827}
.role-super_admin,.role-admin,.role-trener,.role-rodic,.role-clen{background:#fff;color:#111827}
.role-button:hover{border-color:var(--app-accent,var(--primary));box-shadow:0 8px 18px rgba(17,24,39,.08)}

/* Statistiky tréninkového deníku zůstávají neutrální i v mobilní mřížce. */
#view-training_diary .stat-card,
#view-training_diary .stat-card:nth-child(4n+1),
#view-training_diary .stat-card:nth-child(4n+2),
#view-training_diary .stat-card:nth-child(4n+3),
#view-training_diary .stat-card:nth-child(4n){border:1px solid var(--line);border-top:1px solid var(--line);background:#fff;box-shadow:var(--shadow)}
#view-training_diary .stat-card .label,
#view-training_diary .stat-card strong,
#view-training_diary .stat-card small,
#view-training_diary .stat-card small.success,
#view-training_diary .stat-card small.warning,
#view-training_diary .stat-card small.danger{color:var(--ink)}

/* Tréninkový deník: neutrální hierarchie, barva jen pro důležitý stav. */
#view-training_diary .td-assistant,
#view-training_diary .td-smart-plan{border-top:1px solid var(--line);background:#fff;color:var(--ink)}
#view-training_diary .td-assistant .badge{border-color:var(--line);background:#f8fafc;color:var(--muted);box-shadow:none}
#view-training_diary .td-assistant .toolbar{align-items:stretch}
#view-training_diary .td-assistant .toolbar .input{min-width:0;flex:1}
#view-training_diary .td-question-filters{display:flex;flex-wrap:wrap;gap:.35rem}
#view-training_diary .td-question-filters .chip,
#view-training_diary .td-question-chips>.chip{border:1px solid var(--line);background:#f8fafc;color:#39465a;box-shadow:none}
#view-training_diary .td-question-filters .chip:hover,
#view-training_diary .td-question-chips>.chip:hover{background:#f1f5f9;color:var(--ink);box-shadow:none}
#view-training_diary .td-question-filters .chip.active{border-color:#aeb9c8;background:#e9eef4;color:var(--ink)}
#view-training_diary .td-smart-plan .eyebrow{color:#64748b}
#view-training_diary .td-smart-plan .td-insight-row{background:#f8fafc;border:1px solid var(--line)}
#view-training_diary .td-smart-plan .td-insight-row strong{color:var(--ink)}
#view-training_diary .td-smart-plan .td-insight-row em{color:#52606f}
#view-training_diary .td-recommendation-tags span{border-color:var(--line);background:#f8fafc;color:#39465a}
#view-training_diary .td-coach-insights .stat-card,
#view-training_diary .td-coach-insights .stat-card:nth-child(4n+1),
#view-training_diary .td-coach-insights .stat-card:nth-child(4n+2),
#view-training_diary .td-coach-insights .stat-card:nth-child(4n+3),
#view-training_diary .td-coach-insights .stat-card:nth-child(4n){border:1px solid var(--line);border-top:1px solid var(--line);background:#fff;box-shadow:var(--shadow)}
#view-training_diary .td-coach-insights .stat-card .label,
#view-training_diary .td-coach-insights .stat-card strong,
#view-training_diary .td-coach-insights .stat-card small{color:var(--ink)}
#view-training_diary .td-top-types span{border:1px solid var(--line);background:#f8fafc;color:#39465a}
@media(max-width:760px){
  #view-training_diary .td-assistant .toolbar{display:grid;grid-template-columns:1fr auto}
  #view-training_diary .td-assistant .toolbar .input{grid-column:1/-1}
  #view-training_diary .td-assistant .toolbar .button{width:100%}
  #view-training_diary .td-smart-plan .td-insight-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
  #view-training_diary .td-recommendation-tags{gap:.35rem}
}

/* Finální sjednocení celého tréninkového deníku. */
#view-training_diary .td-content-head{padding:1rem 1.1rem;border:1px solid var(--line);border-radius:1rem;background:#fff;box-shadow:var(--shadow)}
#view-training_diary .td-content-head .eyebrow{color:#64748b}
#view-training_diary .td-content-head .toolbar strong{color:var(--ink);font-size:.72rem}
#view-training_diary .td-sidebar{top:.75rem;background:#fbfcfd;box-shadow:none}
#view-training_diary .td-sidebar-title strong{font-size:.9rem}
#view-training_diary .td-filter-group>small{color:#64748b}
#view-training_diary .td-filter-group label{color:#39465a}
#view-training_diary .td-filter-group label:has(input:checked){background:#eef2f6;color:var(--ink);font-weight:850}
#view-training_diary .td-week-board .panel-header{margin-bottom:.55rem}
#view-training_diary .td-active-days strong{color:var(--ink)}
#view-training_diary .td-week-board .td-day{border-color:#dfe5ec;background:#fff;transition:border-color .16s,box-shadow .16s,transform .16s}
#view-training_diary .td-week-board .td-day:hover{border-color:#aeb9c8;box-shadow:0 7px 16px rgba(17,24,39,.06);transform:translateY(-1px)}
#view-training_diary .td-week-board .td-day.has-activity{border-color:#c8d2de;background:#f8fafc}
#view-training_diary .td-week-board .td-day.active{border-color:#7f8d9f;box-shadow:inset 0 0 0 1px #7f8d9f}
#view-training_diary .td-selected-entries .panel-header,
#view-training_diary .td-club-trainings .panel-header{align-items:center}
#view-training_diary .td-entry{border-color:#dfe5ec;box-shadow:none}
#view-training_diary .td-entry-summary:hover{background:#f8fafc}
#view-training_diary .td-group-member{border-color:#dfe5ec;box-shadow:none}
#view-training_diary .td-goals .td-goal-grid>div{background:#fbfcfd}
#view-training_diary .td-goal-grid i{background:#687789}
#view-training_diary .td-coach-insights .td-insight-row{border:1px solid var(--line);background:#f8fafc}
#view-training_diary .td-exercise-history .table-wrap{border-color:var(--line);box-shadow:none}
#view-training_diary .td-exercise-history .data-table th{background:#f8fafc;color:#52606f}
#view-training_diary .td-question-autocomplete{border-color:var(--line);box-shadow:0 12px 26px rgba(17,24,39,.1)}
#view-training_diary .td-question-autocomplete-head{background:#f8fafc;color:#52606f}
#view-training_diary .td-question-autocomplete-head span{background:#e9eef4;color:#52606f}
#view-training_diary .td-question-autocomplete button{border-left-color:transparent!important}
#view-training_diary .td-question-autocomplete button:hover{background:#f8fafc;color:var(--ink)}
#view-training_diary .td-question-autocomplete button i,
#view-training_diary .td-question-autocomplete button:nth-of-type(3n+2) i,
#view-training_diary .td-question-autocomplete button:nth-of-type(3n) i{background:#e9eef4;color:#52606f}
@media(min-width:761px){
  #view-training_diary .td-smart-plan .panel-header{align-items:center}
  #view-training_diary .td-smart-plan .panel-header>div:first-child{max-width:70ch}
}
@media(max-width:760px){
  #view-training_diary .td-content-head{padding:.85rem}
  #view-training_diary .td-content-head h3{font-size:1.15rem}
  #view-training_diary .td-content-head>.toolbar{margin-top:.25rem}
  #view-training_diary .td-sidebar{padding:.8rem}
  #view-training_diary .td-week-board .td-day{transform:none}
  #view-training_diary .td-week-board .td-day:hover{transform:none}
  #view-training_diary .td-goal-grid{grid-template-columns:1fr 1fr}
  #view-training_diary .td-goal-grid>div:last-child{grid-column:1/-1}
}

/* Dnešek je první pracovní plocha statistik; dlouhodobé údaje zůstávají na vyžádání. */
#view-training_diary .td-today-focus{border-color:#cbd5df;background:#fff;box-shadow:0 8px 22px rgba(17,24,39,.06)}
#view-training_diary .td-today-focus .panel-header{align-items:center;margin-bottom:.7rem}
#view-training_diary .td-today-focus .eyebrow{color:#52606f}
#view-training_diary .td-today-focus .panel-header p:last-child{max-width:58ch}
#view-training_diary .td-today-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-top:.75rem}
#view-training_diary .td-today-meta span{display:grid;gap:.15rem;border:1px solid var(--line);border-radius:.75rem;padding:.65rem .7rem;background:#f8fafc}
#view-training_diary .td-today-meta b{font-size:1.05rem;color:var(--ink)}
#view-training_diary .td-today-meta small{color:var(--muted);font-size:.65rem}
#view-training_diary .td-today-entries{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.65rem}
#view-training_diary .td-today-entries span{border:1px solid var(--line);border-radius:999px;padding:.35rem .55rem;background:#fff;color:#39465a;font-size:.67rem;font-weight:750}
#view-training_diary .td-today-recommendation{display:flex;align-items:baseline;gap:.55rem;margin-top:.75rem;padding-top:.7rem;border-top:1px solid var(--line);font-size:.72rem}
#view-training_diary .td-today-recommendation b{color:#52606f;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase}
#view-training_diary .td-today-recommendation span{color:var(--ink);font-weight:750}
#view-training_diary .td-long-stats.is-collapsed> :not(.panel-header){display:none}
#view-training_diary .td-long-stats.is-collapsed{padding-bottom:.85rem}
@media(max-width:760px){
  #view-training_diary .td-today-focus .panel-header{align-items:stretch}
  #view-training_diary .td-today-focus .panel-header .button{width:100%}
  #view-training_diary .td-today-meta{gap:.35rem}
  #view-training_diary .td-today-meta span{padding:.55rem .45rem}
  #view-training_diary .td-today-meta b{font-size:.95rem}
  #view-training_diary .td-today-recommendation{display:grid;gap:.2rem}
}

/* Společný webový základ: jedna vizuální logika pro všechny moduly. */
:root{--canvas:#f6f7f9;--surface:#fff;--ink:#111827;--muted:#667085;--line:#e3e7ed;--shadow:0 8px 24px rgba(17,24,39,.045);--radius:1rem}
body{background:var(--canvas);color:var(--ink)}
.page-hero,.panel,.stat-card,.member-card,.module-card,.event-card,.filter-bar,.table-wrap,.empty-state{border-color:var(--line);box-shadow:var(--shadow)}
.page-hero{background:#fff;box-shadow:var(--shadow)}
.page-hero:after{background:rgba(17,24,39,.025)}
.eyebrow{color:#667085}
.panel h3,.panel h2,.event-card h3,.member-card h3,.topbar h1{color:var(--ink)}
.panel-header p,.page-hero p{color:var(--muted)}
.button.primary{background:var(--primary);box-shadow:0 6px 14px color-mix(in srgb,var(--primary) 18%,transparent)}
.button.secondary,.button.soft{border-color:var(--line);background:#fff;color:#344054;box-shadow:none}
.button.secondary:hover,.button.soft:hover{border-color:#aab5c3;background:#f8fafc}
.badge.blue,.pill.blue,.badge.green,.pill.green,.badge.amber,.pill.amber,.badge.violet{box-shadow:none}
.filter-bar{background:#fff}
.data-table th{background:#f8fafc;color:#667085}
.data-table td{border-top-color:#edf0f3}
.dashboard-quick-actions{margin-top:1rem}
.dashboard-quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}
.dashboard-quick-action{display:grid;gap:.3rem;min-width:0;border:1px solid var(--line);border-radius:.85rem;padding:.8rem;background:#fbfcfd;color:var(--ink);text-align:left;transition:border-color .16s,background .16s,transform .16s}
.dashboard-quick-action:hover{border-color:#aab5c3;background:#fff;transform:translateY(-1px)}
.dashboard-quick-action strong{font-size:.8rem}
.dashboard-quick-action span{color:var(--muted);font-size:.68rem}
.dashboard-quick-action b{margin-top:.25rem;color:#52606f;font-size:.65rem}
.sidebar{border-right-color:var(--line);box-shadow:4px 0 18px rgba(17,24,39,.025)}
.nav-btn{color:#52606f}
.nav-btn:hover,.nav-btn.active{background:#f1f3f5;color:var(--ink)}
.nav-btn.active{border-right-color:#7b8794}
.nav-icon{color:inherit!important}
.mobile-header{background:#fff;color:var(--ink);border-bottom:1px solid var(--line);box-shadow:0 4px 15px rgba(17,24,39,.05)}
.bottom-nav{box-shadow:0 -8px 24px rgba(17,24,39,.07);backdrop-filter:none}
.bottom-nav .nav-btn.active{border-top-color:#7b8794;background:#f1f3f5;color:var(--ink)}
@media(max-width:760px){
  .main-content{padding-top:.8rem}
  .dashboard-quick-grid{grid-template-columns:1fr}
  .dashboard-quick-action{grid-template-columns:minmax(0,1fr) auto;align-items:center}
  .dashboard-quick-action span{grid-column:1}
  .dashboard-quick-action b{grid-column:2;grid-row:1 / span 2;margin:0;align-self:center}
}

/* Body zápasníka: jemný klubový modrý gradient místo kruhového odznaku. */
#view-members .member-points{width:3.45rem;height:3.45rem;border:1px solid color-mix(in srgb,var(--app-accent,var(--primary)) 24%,#fff);border-radius:.9rem;background:linear-gradient(145deg,#f5faff 0%,color-mix(in srgb,var(--app-accent,var(--primary)) 18%,#fff) 100%);color:#183b61;box-shadow:0 5px 14px color-mix(in srgb,var(--app-accent,var(--primary)) 12%,transparent)}

/* Nominace: tabulky zůstávají čitelné i na úzkém mobilním displeji. */
.tournament-nomination-table,.tournament-status-table{table-layout:fixed;min-width:0}
.tournament-nomination-table th:nth-child(1){width:8%}
.tournament-nomination-table th:nth-child(2){width:27%}
.tournament-nomination-table th:nth-child(3){width:21%}
.tournament-nomination-table th:nth-child(4){width:11%}
.tournament-nomination-table th:nth-child(5){width:13%}
.tournament-nomination-table th:nth-child(6){width:20%}
.tournament-status-table th:nth-child(1){width:32%}
.tournament-status-table th:nth-child(2){width:14%}
.tournament-status-table th:nth-child(3){width:27%}
.tournament-status-table th:nth-child(4){width:27%}
@media(max-width:760px){
  .tournament-nomination-table,.tournament-status-table{width:100%;min-width:0;table-layout:fixed;font-size:.64rem}
  .tournament-nomination-table th,.tournament-nomination-table td,
  .tournament-status-table th,.tournament-status-table td{min-width:0;padding:.42rem .22rem;overflow-wrap:anywhere;word-break:break-word}
  .tournament-nomination-table th:nth-child(1){width:9%}
  .tournament-nomination-table th:nth-child(2){width:28%}
  .tournament-nomination-table th:nth-child(3){width:21%}
  .tournament-nomination-table th:nth-child(4){width:11%}
  .tournament-nomination-table th:nth-child(5){width:12%}
  .tournament-nomination-table th:nth-child(6){width:19%}
  .tournament-status-table th:nth-child(1){width:31%}
  .tournament-status-table th:nth-child(2){width:13%}
  .tournament-status-table th:nth-child(3){width:28%}
  .tournament-status-table th:nth-child(4){width:28%}
  .tournament-nomination-table td:first-child,.tournament-status-table td:nth-child(2){text-align:center}
  .tournament-nomination-table .table-input{width:100%;min-width:0;max-width:4.2rem;margin-inline:auto;padding:.35rem .2rem;font-size:.65rem}
  .tournament-nomination-table .badge,.tournament-status-table .badge{display:inline-flex;max-width:100%;white-space:normal;line-height:1.15;padding:.25rem .25rem;font-size:.58rem;overflow-wrap:anywhere}
  .tournament-status-table td small{display:block;overflow-wrap:anywhere}
  .tournament-results-table tr{padding:.6rem .55rem;gap:.35rem .5rem}
  .tournament-results-table td::before{font-size:.56rem}
  .tournament-results-table .table-input{padding:.35rem .25rem;font-size:.7rem}

  /* Souhrn turnaje: na mobilu dvě kompaktní karty v řádku. */
  #modal-root .modal-body>.detail-head+.grid.grid-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
  #modal-root .modal-body>.detail-head+.grid.grid-4 .stat-card{padding:.6rem .62rem;border-radius:.85rem}
  #modal-root .modal-body>.detail-head+.grid.grid-4 .stat-card .label{font-size:.6rem}
  #modal-root .modal-body>.detail-head+.grid.grid-4 .stat-card strong{margin:.2rem 0 .12rem;font-size:1.2rem}
  #modal-root .modal-body>.detail-head+.grid.grid-4 .stat-card small{font-size:.6rem;line-height:1.25}

  /* Výsledky: tři krátká pole v jednom řádku místo osamoceného Prohry. */
  .tournament-results-table tr{grid-template-columns:repeat(6,minmax(0,1fr));gap:.35rem .45rem;padding:.6rem .55rem}
  .tournament-results-table td:first-child{grid-column:1/-1;display:grid;gap:.08rem;padding-bottom:.12rem}
  .tournament-results-table td:first-child::before{display:none}
  .tournament-results-table td:first-child strong{font-size:.82rem;line-height:1.25}
  .tournament-results-table td:first-child small{font-size:.64rem;margin-top:.08rem}
  .tournament-results-table td:nth-child(2){grid-column:span 3;display:flex;align-items:center;gap:.35rem}
  .tournament-results-table td:nth-child(2)::before{margin:0}
  .tournament-results-table td:nth-child(3){grid-column:span 3}
  .tournament-results-table td:nth-child(n+3){display:grid;gap:.12rem;align-content:start}
  .tournament-results-table td:nth-child(n+3)::before{margin:0;font-size:.56rem}
  .tournament-results-table td:nth-child(4),.tournament-results-table td:nth-child(5),.tournament-results-table td:nth-child(6){grid-column:span 2}
  .tournament-results-table .table-input{padding:.3rem .35rem;font-size:.72rem}

  .tournament-summary-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.5rem}
  .tournament-summary-stats .stat-card{min-width:0;padding:.55rem .6rem;border-radius:.85rem}
  .tournament-summary-stats .stat-card .label{font-size:.58rem;line-height:1.15}
  .tournament-summary-stats .stat-card strong{margin:.18rem 0 .1rem;font-size:1.12rem;line-height:1.15;overflow-wrap:anywhere}
  .tournament-summary-stats .stat-card small{font-size:.58rem;line-height:1.2;overflow-wrap:anywhere}
  .tournament-status-stats{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:.45rem}
  .tournament-status-stats .stat-card{min-width:0;padding:.55rem .4rem;border-radius:.85rem}
  .tournament-status-stats .stat-card .label{font-size:.56rem;line-height:1.15;overflow-wrap:anywhere}
  .tournament-status-stats .stat-card strong{margin:.18rem 0 .1rem;font-size:1.1rem;line-height:1.1}
  .tournament-status-stats .stat-card small{font-size:.55rem;line-height:1.15;overflow-wrap:anywhere}
  #modal-root .modal .tournament-summary-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  #modal-root .modal .tournament-status-stats{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}

/* Knihovna dokumentů turnaje: hlavní rozpis a pojmenované přílohy. */
.tournament-documents-editor{display:grid;gap:.8rem}
.tournament-document-card{display:grid;gap:.7rem;padding:.9rem;border:1px solid #dfe7f0;border-radius:1rem;background:#fbfcfe}
.tournament-document-primary{border-color:#cfe1f6;background:linear-gradient(145deg,#f5f9ff,#fff)}
.tournament-document-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}
.tournament-document-card-head strong,.tournament-document-card-head small{display:block}
.tournament-document-card-head strong{font-size:.84rem}
.tournament-document-card-head small{margin-top:.18rem;color:var(--muted);font-size:.67rem;line-height:1.4}
.tournament-document-type{flex:0 0 auto;border:1px solid #cfe2f7;border-radius:999px;padding:.25rem .45rem;background:#eff6ff;color:#2878b9;font-size:.57rem;font-weight:900;letter-spacing:.06em}
.tournament-editor-file-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem;align-items:end}
.tournament-file-picker{display:grid;gap:.3rem;min-width:0;color:#53647e;font-size:.69rem;font-weight:800}
.tournament-file-picker input[type=file]{width:100%;min-width:0;padding:.4rem;border:1px dashed #b9cde2;border-radius:.7rem;background:#fff;color:#52627a;font-size:.68rem}
.tournament-document-actions{display:flex;flex-wrap:wrap;gap:.45rem;min-height:0}
.tournament-document-external{margin-top:.05rem}
.tournament-document-upload-grid{display:grid;grid-template-columns:minmax(12rem,.8fr) minmax(0,1.2fr);gap:.6rem;align-items:end}
.tournament-document-upload-grid .form-field{min-width:0}
.tournament-document-list{display:grid;gap:.4rem}
.tournament-document-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.55rem;align-items:center;padding:.55rem .6rem;border:1px solid #e1e8f0;border-radius:.75rem;background:#fff}
.tournament-document-icon{display:grid;place-items:center;width:1.75rem;height:1.75rem;border-radius:.55rem;background:#eff6ff;color:#347dbd;font-size:.78rem}
.tournament-document-main{min-width:0}
.tournament-document-main strong,.tournament-document-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tournament-document-main strong{font-size:.72rem}
.tournament-document-main small{margin-top:.12rem;color:var(--muted);font-size:.61rem}
.tournament-document-main small a{font-weight:800}
.tournament-document-remove{padding:.28rem .48rem;font-size:.75rem}
.tournament-documents-empty{margin:0;padding:.7rem;border:1px dashed #d9e2ec;border-radius:.7rem;color:var(--muted);font-size:.68rem;text-align:center}
@media(max-width:680px){
  .tournament-document-card{padding:.75rem;border-radius:.85rem}
  .tournament-document-card-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem}
  .tournament-editor-file-row,.tournament-document-upload-grid{grid-template-columns:1fr;align-items:stretch}
  .tournament-editor-file-row .button{width:100%}
  .tournament-document-actions{width:100%}
  .tournament-document-actions .button{flex:1 1 100%;width:100%}
  .tournament-document-type{font-size:.52rem}
  .tournament-document-main strong{font-size:.68rem}
  .tournament-document-main small{font-size:.58rem}
  .tournament-document-remove{min-width:2rem}
}

.tournament-prompt-overlay{position:absolute;inset:0;z-index:20;display:grid;place-items:center;padding:1rem;border-radius:inherit;background:rgba(21,34,56,.48)}
.tournament-prompt-dialog{width:min(46rem,100%);max-height:calc(100% - 1rem);overflow:auto;padding:1rem;border:1px solid #d8e3ef;border-radius:1rem;background:#fff;box-shadow:0 1rem 3rem rgba(16,35,61,.2)}
.tournament-prompt-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.45rem}
.tournament-prompt-head strong{font-size:.95rem}
.tournament-prompt-text{width:100%;min-height:18rem;resize:vertical;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.72rem;line-height:1.5}
.tournament-prompt-dialog .modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.7rem}
@media(max-width:680px){
  .tournament-prompt-overlay{position:fixed;padding:.65rem;border-radius:0}
  .tournament-prompt-dialog{max-height:calc(100dvh - 1.3rem);padding:.8rem}
  .tournament-prompt-text{min-height:14rem;font-size:.65rem}
  .tournament-prompt-dialog .modal-actions{display:grid;grid-template-columns:1fr 1fr}
  .tournament-prompt-dialog .modal-actions .button{width:100%}
}

/* Klubová paleta: modrá #5394d4, černá, bílá a šedé odstíny. */
:root{
  --primary:#5394d4;
  --primary-dark:#3d78b0;
  --primary-contrast:#ffffff;
  --app-accent:#5394d4;
  --success:#4b5563;
  --warning:#6b7280;
  --danger:#374151;
  --violet:#6b7280;
  --canvas:#f4f5f7;
  --ink:#111827;
  --muted:#667085;
  --line:#dfe3e8;
  --shadow:0 8px 24px rgba(17,24,39,.045);
}

body{background:var(--canvas);color:var(--ink)}
.brand-mark{background:var(--primary);box-shadow:0 8px 20px rgba(83,148,212,.22)}
.role-super_admin,.role-admin,.role-trener,.role-rodic,.role-clen{background:#fff;color:var(--ink)}
.role-admin{border-color:var(--primary);color:var(--primary)}
.role-button:hover{border-color:var(--primary)}
.badge.green,.pill.green,.badge.amber,.pill.amber,.badge.violet,.pill.violet,.badge.red,.badge.gray{border-color:var(--line);background:#f3f4f6;color:#4b5563}
.badge.blue,.pill.blue,.button.soft{border-color:color-mix(in srgb,var(--primary) 35%,#fff);background:color-mix(in srgb,var(--primary) 10%,#fff);color:#3d78b0}
.button.primary{background:var(--primary);color:var(--primary-contrast);box-shadow:0 6px 14px color-mix(in srgb,var(--primary) 18%,transparent)}
.button.danger,.button.success{border-color:var(--line);background:#f3f4f6;color:#374151}
.eyebrow{color:#3d78b0}
.page-hero,.dashboard-welcome{border-color:color-mix(in srgb,var(--primary) 24%,var(--line));background:#fff}
.page-hero:after{background:color-mix(in srgb,var(--primary) 7%,transparent)}
.hero-icon,.notice-icon,.avatar{background:color-mix(in srgb,var(--primary) 10%,#fff);color:#3d78b0}
.nav-btn:hover,.nav-btn.active{background:color-mix(in srgb,var(--primary) 8%,#fff);color:#3d78b0}
.nav-btn.active{border-right-color:var(--primary)}
.mobile-header{background:var(--primary);color:var(--primary-contrast)}
.bottom-nav .nav-btn.active{border-top-color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,#fff);color:#3d78b0}
.week-day.active,.settings-tab.active,.filter-chip.active{border-color:color-mix(in srgb,var(--primary) 45%,#fff);background:color-mix(in srgb,var(--primary) 9%,#fff);color:#3d78b0}
.dashboard-welcome .dash-icon{background:var(--primary);color:var(--primary-contrast);box-shadow:0 8px 16px color-mix(in srgb,var(--primary) 18%,transparent)}

/* Přepis starších barevných dashboardových motivů. */
#view-dashboard .dashboard-alerts-panel,
#view-dashboard .dashboard-birthdays-panel,
#view-dashboard .dashboard-upcoming-tournament,
#view-dashboard .dashboard-main-stack>.dashboard-upcoming-tournament,
#view-dashboard .event-card{border-color:var(--line);background:#fff;box-shadow:var(--shadow)}
#view-dashboard .dashboard-alerts-panel .panel-header>div:first-child::before,
#view-dashboard .dashboard-upcoming-tournament .panel-header>div:first-child::before{color:#667085}
#view-dashboard .dashboard-alerts-panel .panel-header h3::before{background:#f3f4f6;color:#4b5563}
#view-dashboard .dash-task-stat--required,
#view-dashboard .dash-task-stat--soon,
#view-dashboard .dash-task-stat--info{border-color:var(--line);background:#f3f4f6;color:#4b5563}
#view-dashboard .dashboard-alerts-panel .dashboard-alert,
#view-dashboard .dashboard-birthdays-panel .notice{border-color:var(--line);background:#f8f9fa}
#view-dashboard .dashboard-alerts-panel .dashboard-alert .notice-icon{background:#eef0f2;color:#4b5563}
#view-dashboard .dashboard-birthdays-panel .dashboard-birthday-soon,
#view-dashboard .dashboard-birthdays-panel .dashboard-birthday-today{border-color:var(--line);background:#f3f4f6;box-shadow:inset 4px 0 0 #9ca3af}
#view-dashboard .dashboard-birthdays-panel .badge{border-color:var(--line);background:#fff;color:#4b5563}
#view-dashboard .dashboard-birthdays-panel .dashboard-birthday-avatar{background:#e5e7eb}
#view-dashboard .event-card .badge.amber{background:#f3f4f6;border-color:var(--line)}
#view-dashboard>.panel:last-child{border-color:var(--line);background:#fff}
.event-card.tournament,.event-card.training,.event-card.action,.event-card.camp,.tournament-card{border-top-color:var(--line);background:#fff}
.event-card.tournament,.event-card.training{border-left-color:var(--primary)}
.event-card.action,.event-card.camp{border-left-color:#9ca3af}
.calendar-event,.calendar-event.tournament,.calendar-event.action,.calendar-event.training,.calendar-event.camp{background:#f3f4f6;color:#4b5563}
.calendar-event{border-left-color:var(--primary)}
.stat-card:nth-child(4n+1),.stat-card:nth-child(4n+2),.stat-card:nth-child(4n+3),.stat-card:nth-child(4n){border-top-color:var(--line);background:#fff}
.notice.warning,.notice.danger{border-color:var(--line);background:#f8f9fa}
.data-table tbody tr:nth-child(4n+1) td:first-child,
.data-table tbody tr:nth-child(4n+2) td:first-child,
.data-table tbody tr:nth-child(4n+3) td:first-child,
.data-table tbody tr:nth-child(4n) td:first-child{border-left-color:var(--line)}
.empty-state .empty-icon{background:#f3f4f6;color:#4b5563;box-shadow:none}
#view-communication .communication-message--alert,
#view-communication .panel .stat-card:nth-child(1),
#view-communication .panel .stat-card:nth-child(2),
#view-communication .panel .stat-card:nth-child(3),
.calendar-program-stats .stat-card:nth-child(2),
.calendar-program-stats .stat-card:nth-child(3),
.calendar-program-stats .stat-card:nth-child(4){border-color:var(--line);background:#fff}
#view-communication .communication-message--alert .notice-icon{background:#f3f4f6;color:#4b5563}
#view-calendar .calendar-event,
#view-calendar .calendar-event.tournament,
#view-calendar .calendar-event.action,
#view-calendar .calendar-event.training{box-shadow:inset 3px 0 var(--primary)}
.td-readiness-bar i{background:var(--primary)}
.td-readiness-result.red strong,.td-readiness-result.orange strong,.td-readiness-result.blue strong,.td-readiness-result.green strong{color:#4b5563}

/* Klubový monochromatický motiv: modrá je pouze akcent, stavové bloky zůstávají neutrální. */
:root{
  --primary:#5394d4;
  --primary-dark:#3d78b0;
  --primary-contrast:#ffffff;
  --app-accent:#5394d4;
  --ink:#111827;
  --muted:#667085;
  --line:#dfe3e8;
  --canvas:#f4f5f7;
  --success:#4b5563;
  --warning:#6b7280;
  --danger:#4b5563;
  --violet:#6b7280;
}

.role-button,
.role-super_admin,.role-admin,.role-trener,.role-rodic,.role-clen{
  border-color:var(--line)!important;
  background:#fff!important;
  color:var(--ink)!important;
  box-shadow:none!important;
}
.role-button:hover,.role-button:focus-visible{border-color:var(--primary)!important;color:var(--primary)!important}
.role-button.role-admin{border-color:var(--primary)!important;background:var(--primary)!important;color:var(--primary-contrast)!important}
.role-button.role-super_admin{background:#111827!important;color:#fff!important}

.badge.green,.badge.amber,.badge.red,.badge.violet,.badge.gray,
.pill.green,.pill.amber,.pill.red,.pill.violet,
.button.success,.button.danger{
  border-color:var(--line)!important;
  background:#f3f4f6!important;
  color:#4b5563!important;
  box-shadow:none!important;
}
.badge.blue,.pill.blue,.button.soft{
  border-color:#b9d7ee!important;
  background:#eef6fc!important;
  color:#3d78b0!important;
}

.calendar-event,.calendar-event.tournament,.calendar-event.action,
.calendar-event.training,.calendar-event.camp,
.calendar-agenda-icon.training,.calendar-agenda-icon.tournament,
.calendar-agenda-icon.action,.calendar-agenda-icon.camp{
  border-color:var(--line)!important;
  background:#f3f4f6!important;
  color:#4b5563!important;
}
.calendar-event.training,.calendar-agenda-icon.training{
  border-color:#b9d7ee!important;
  background:#eef6fc!important;
  color:#3d78b0!important;
}

#view-dashboard .dashboard-alerts-panel,
#view-dashboard .dashboard-birthdays-panel,
#view-dashboard .dashboard-upcoming-tournament,
#view-dashboard .dashboard-main-stack>.dashboard-upcoming-tournament,
#view-dashboard .dashboard-alerts-panel .dashboard-alert,
#view-dashboard .dashboard-birthdays-panel .notice,
#view-dashboard .dashboard-birthdays-panel .dashboard-birthday-soon,
#view-dashboard .dashboard-birthdays-panel .dashboard-birthday-today{
  border-color:var(--line)!important;
  background:#fff!important;
  box-shadow:none!important;
}
#view-dashboard .dashboard-alerts-panel .panel-header>div:first-child::before,
#view-dashboard .dashboard-upcoming-tournament .panel-header>div:first-child::before{
  color:#6b7280!important;
}
#view-dashboard .dashboard-alerts-panel .panel-header h3::before,
#view-dashboard .dashboard-alerts-panel .dashboard-alert .notice-icon,
#view-dashboard .dashboard-birthdays-panel .dashboard-birthday-avatar{
  background:#f3f4f6!important;
  color:#4b5563!important;
}
#view-dashboard .dashboard-alerts-panel .dashboard-alert .notice-icon{border-color:var(--line)!important}
#view-dashboard .dashboard-birthdays-panel .badge{
  border-color:var(--line)!important;
  background:#fff!important;
  color:#4b5563!important;
}
#view-dashboard .dash-task-stat--required,
#view-dashboard .dash-task-stat--soon,
#view-dashboard .dash-task-stat--info{
  border-color:var(--line)!important;
  background:#f3f4f6!important;
  color:#4b5563!important;
}

.training-week-panel{
  border-color:color-mix(in srgb,var(--primary) 35%,var(--line))!important;
  background:#fff!important;
}
.training-week-panel .week-day.has-activity,
.training-week-panel .week-day.active,
.td-day.has-activity,.td-day.active{
  border-color:var(--primary)!important;
  background:#eef6fc!important;
}

/*
 * Shared compact UI system (2026-09-28)
 * Jedna společná prezentační vrstva pro všechny kluby. Zahušťuje rozhraní
 * po vzoru IZOdesk, ale na mobilu zachovává čitelné písmo a 44px ovládací prvky.
 */
:root{
  --ui-radius-card:.9rem;
  --ui-radius-control:.68rem;
  --ui-gap:.72rem;
  --ui-control-height:2.4rem;
  --ui-panel-padding:.88rem;
  --shadow:0 5px 18px rgba(17,24,39,.045);
}

html{font-size:15px}
body{line-height:1.45;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}

.sidebar{width:15.75rem;flex-basis:15.75rem;box-shadow:3px 0 14px rgba(17,24,39,.025)}
.sidebar-brand{height:4.35rem;padding-inline:1.05rem}
.sidebar-brand strong{font-size:.9rem}
.sidebar-brand span{font-size:.7rem}
.user-box{gap:.18rem;padding:.75rem 1.05rem}
.user-box strong{font-size:.84rem}
.desktop-nav{padding:.6rem .45rem}
.nav-btn{min-height:2.55rem;gap:.55rem;border-radius:.68rem;padding:.56rem .65rem;font-size:.78rem}
.nav-icon{width:1.35rem}
.logout-button{min-height:2.5rem;margin:.45rem .65rem .7rem;padding:.58rem .68rem;font-size:.78rem}

.main-content{width:min(100%,calc(100vw - 15.75rem));max-width:none;padding:1rem 1.4rem 1.15rem}
.topbar{min-height:2.25rem;margin-bottom:.55rem}
.topbar-actions{gap:.4rem}
.icon-button{width:2.35rem;height:2.35rem;border-radius:.7rem}
.profile-chip span{width:2.2rem;height:2.2rem;border-radius:.65rem}

.page-hero{border-radius:1rem;box-shadow:var(--shadow)}
.page-hero-inner{min-height:5.35rem;gap:.78rem;padding:.82rem 1rem}
.page-hero h2{font-size:1.22rem;line-height:1.2;letter-spacing:-.035em}
.page-hero p{margin-top:.22rem;font-size:.77rem;line-height:1.4}
.hero-icon{width:2.55rem;height:2.55rem;border-radius:.78rem}
.hero-icon svg{width:1.2rem;height:1.2rem}
.page-hero-actions{gap:.4rem}

.grid{gap:var(--ui-gap)}
.panel,.stat-card,.member-card,.module-card,.event-card,.empty-state,.table-wrap,.filter-bar,.product-card{
  border-radius:var(--ui-radius-card);
  box-shadow:var(--shadow);
}
.panel{padding:var(--ui-panel-padding)}
.panel-header{gap:.7rem;margin-bottom:.68rem}
.panel h3,.panel h2,.panel-header h3{font-size:.96rem;line-height:1.3}
.panel-header p{margin-top:.18rem;font-size:.73rem;line-height:1.4}
.stat-card{padding:.72rem .78rem}
.stat-card .label{font-size:.7rem}
.stat-card strong{margin:.25rem 0 .12rem;font-size:1.32rem}
.stat-card small{font-size:.7rem}

.button{min-height:var(--ui-control-height);border-radius:var(--ui-radius-control);padding:.48rem .76rem;font-size:.74rem}
.button.sm{min-height:2.1rem;padding:.36rem .58rem;font-size:.68rem}
.input,.select,.textarea{min-height:var(--ui-control-height);border-radius:var(--ui-radius-control);padding:.46rem .65rem;font-size:.79rem}
.toolbar{gap:.45rem}
.filter-bar,.compact-filter-panel{gap:.5rem;padding:.58rem;margin-bottom:.65rem;border-radius:var(--ui-radius-card)}
.compact-filter-panel{margin-top:.72rem}
.settings-tab,.filter-chip{min-height:2.15rem;border-radius:.65rem;padding:.42rem .66rem;font-size:.7rem}
.badge,.pill,.chip{font-size:.66rem}

.data-table{font-size:.75rem}
.data-table th{padding:.58rem .65rem;font-size:.64rem}
.data-table td{padding:.56rem .65rem}
.table-wrap{box-shadow:none}

.member-card{padding:.72rem}
.member-card h3{font-size:.84rem}
.member-meta{gap:.28rem;margin-top:.58rem;padding-top:.52rem;font-size:.7rem}
.member-footer{margin-top:.5rem;padding-top:.48rem}
#view-members .member-card{gap:.58rem;padding:.72rem}
#view-members .member-card-top{gap:.55rem}
#view-members .member-card-avatar{width:2.75rem;height:2.75rem;border-radius:.75rem}
#view-members .member-card-identity h3{font-size:.86rem}
#view-members .member-card-category,#view-members .member-card-basic,#view-members .member-card-group,
#view-members .member-card-tournaments,#view-members .member-doctor{font-size:.69rem}
#view-members .member-card-status{gap:.5rem;padding-top:.55rem}

.event-card{padding:.72rem}
.event-card h3{margin:.3rem 0 .18rem;font-size:.87rem}
.event-card p{font-size:.71rem}
.event-card .event-actions{margin-top:.5rem}
.tournament-card-rich{gap:.32rem;padding:.75rem .82rem .7rem}
.tournament-card-rich h3{font-size:.9rem}
.tournament-category-list{padding:.3rem}
.tournament-coaches{padding:.36rem 0}

.dashboard-welcome{padding:.88rem 1rem}
.dashboard-welcome h2{font-size:1.2rem}
.dashboard-welcome p{font-size:.75rem}
.dash-icon{width:2.55rem;height:2.55rem;border-radius:.78rem}
#view-dashboard{gap:.72rem}
#view-dashboard>.grid.grid-4,#view-dashboard>.grid.grid-2{gap:.58rem}
#view-dashboard .dashboard-main-stack{gap:.72rem}

.notice{gap:.55rem;border-radius:.72rem;padding:.58rem}
.notice strong{font-size:.74rem}
.notice small{font-size:.69rem}
.empty-state{min-height:8rem;padding:1rem}
.empty-state p{font-size:.73rem}

.modal{border-radius:1rem}
.modal-head{padding:.85rem .95rem}
.modal-head h2{font-size:1.05rem}
.modal-body{padding:.9rem}
.form-grid{gap:.65rem}
.form-field label{font-size:.7rem}
.modal-actions{margin-top:.75rem;padding-top:.75rem}

@media(max-width:1050px) and (min-width:761px){
  .sidebar{width:14.5rem;flex-basis:14.5rem}
  .main-content{width:calc(100vw - 14.5rem);padding-inline:1rem}
}

/* Desktopové menu zůstává dostupné i na dlouhých stránkách. Posouvá se pouze
   seznam modulů; identita klubu, uživatel a odhlášení zůstávají na místě. */
@media(min-width:761px){
  .sidebar{
    position:fixed;
    inset:0 auto 0 0;
    z-index:30;
    height:100vh;
    height:100dvh;
    overflow:hidden;
  }
  .sidebar-brand,.user-box,.logout-button{flex:0 0 auto}
  .desktop-nav{
    min-height:0;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
  }
  .main-content{
    width:calc(100% - 15.75rem);
    margin-left:15.75rem;
  }
}

@media(max-width:1050px) and (min-width:761px){
  .main-content{
    width:calc(100% - 14.5rem);
    margin-left:14.5rem;
  }
}

@media(max-width:760px){
  html{font-size:15px}
  .mobile-header{min-height:3.55rem;padding:.55rem .72rem}
  .main-content{margin-left:0;padding:.72rem .65rem 5.25rem}
  .topbar{min-height:2.2rem;margin-bottom:.38rem}
  .page-hero-inner{min-height:4.85rem;gap:.65rem;padding:.7rem .75rem}
  .page-hero h2{font-size:1.12rem}
  .page-hero p{font-size:.74rem}
  .hero-icon{width:2.45rem;height:2.45rem}
  .panel{padding:.75rem}
  .panel h3,.panel h2,.panel-header h3{font-size:.94rem}
  .button,.input,.select{min-height:2.75rem}
  .button{padding:.55rem .72rem;font-size:.76rem}
  .button.sm{min-height:2.5rem;font-size:.7rem}
  .settings-tab,.filter-chip{min-height:2.6rem;font-size:.72rem}
  .compact-filter-panel{padding:.52rem}
  #view-members .member-card{padding:.72rem}
  #view-members .member-card-identity h3{font-size:.9rem}
  .modal-head{padding:.75rem .8rem}
  .modal-body{padding:.75rem}
  .bottom-nav{min-height:4.35rem;padding-top:.32rem}
  .bottom-nav .nav-btn{min-height:3.6rem;font-size:.64rem}
  .bottom-nav .nav-icon{width:1.22rem;height:1.22rem}
  .page-footer{padding-top:1.15rem;font-size:.66rem}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* Jemné významové barvy. Základ rozhraní zůstává neutrální; barva se používá
   pouze pro stav, který má uživatel rozeznat na první pohled. Tato společná
   vrstva platí pro každý klub bez ohledu na jeho vlastní hlavní barvu. */
:root{
  --success:#16835f;
  --warning:#a86e12;
  --danger:#bc3545;
}

.badge.green,.pill.green{
  border-color:#bdebd9!important;
  background:#ecfbf4!important;
  color:#15815f!important;
  box-shadow:none!important;
}
.badge.amber,.pill.amber{
  border-color:#f1d79a!important;
  background:#fff8e6!important;
  color:#98620e!important;
  box-shadow:none!important;
}
.badge.red,.pill.red{
  border-color:#f0c3ca!important;
  background:#fff1f2!important;
  color:#b63848!important;
  box-shadow:none!important;
}

#view-members .member-doctor.valid .member-doctor-indicator i{background:var(--success)!important}
#view-members .member-doctor.expired .member-doctor-indicator i{background:var(--danger)!important}
#view-members .member-doctor.missing .member-doctor-indicator i{background:#94a3b8!important}

#view-tournaments .tournament-card-statuses .badge.green{
  border-color:#bdebd9!important;
  background:#ecfbf4!important;
  color:#15815f!important;
}
#view-tournaments .tournament-card-statuses .badge.amber{
  border-color:#f1d79a!important;
  background:#fff8e6!important;
  color:#98620e!important;
}

/* Dostupnost trenérů je binární a úsporná: jméno + Budu/Nebudu. */
.attendance-availability-panel{padding:.72rem}
.attendance-availability-panel .panel-header{align-items:center;margin-bottom:.55rem}
.attendance-availability-panel .panel-header p{margin-top:.12rem}
.attendance-availability-panel .availability-summary-list{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.38rem;
}
.attendance-availability-panel .availability-summary-row{
  grid-template-columns:2.15rem minmax(0,1fr) auto;
  align-items:center;
  gap:.45rem;
  min-height:3rem;
  padding:.34rem .42rem;
}
.attendance-availability-panel .availability-summary-row .avatar{
  width:2.15rem;
  height:2.15rem;
  border-radius:.65rem;
}
.attendance-availability-panel .availability-summary-row .row-main strong{font-size:.7rem}
.attendance-availability-panel .availability-summary-row .trainer-availability-actions{
  grid-column:auto;
  display:grid;
  grid-template-columns:repeat(2,minmax(3.7rem,1fr));
  gap:.22rem;
  width:auto;
  overflow:visible;
}
.attendance-availability-panel .availability-choice{
  min-height:1.9rem;
  padding:.25rem .46rem;
  font-size:.61rem;
}
.trainer-availability-panel--compact .trainer-availability-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(4.2rem,1fr));
}

@media(max-width:1180px){
  .attendance-availability-panel .availability-summary-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .attendance-availability-panel{padding:.65rem}
  .attendance-availability-panel .panel-header{align-items:flex-start}
  .attendance-availability-panel .availability-summary-list{grid-template-columns:1fr}
  .attendance-availability-panel .availability-summary-row{grid-template-columns:2rem minmax(0,1fr) auto}
  .attendance-availability-panel .availability-summary-row .avatar{display:grid;width:2rem;height:2rem}
  .attendance-availability-panel .availability-choice{min-height:2.25rem;padding:.32rem .52rem;font-size:.66rem}
}

/*
 * Mobilní pojistka rozvržení.
 * Kompaktní desktopová vrstva výše znovu nastavuje šířku hlavního obsahu podle
 * postranního panelu. Na telefonu ale panel není přítomný, proto musí aplikace
 * vždy zabrat celý viewport. Pravidla jsou společná pro všechny moduly i kluby.
 */
@media(max-width:760px){
  html,
  body,
  #app-screen,
  .app-screen{
    width:100%;
    max-width:100%;
    min-width:0;
  }

  .app-screen{overflow-x:clip}

  .main-content{
    width:100%!important;
    max-width:100%;
    min-width:0;
    margin-left:0!important;
  }

  .view-section,
  .view-section>*,
  .page-hero,
  .panel,
  .stat-card,
  .member-card,
  .module-card,
  .event-card,
  .empty-state,
  .filter-bar,
  .compact-filter-panel,
  .table-wrap{
    max-width:100%;
    min-width:0;
  }

  .grid>*{min-width:0}
  .page-hero-inner,
  .panel-header,
  .detail-head,
  .toolbar{max-width:100%;min-width:0}

  /* Široká data zůstávají posuvná uvnitř své karty, nikdy přes celou stránku. */
  .table-wrap,
  .detail-tabs,
  .settings-nav{
    max-width:100%;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
  }
}

@media(max-width:520px){
  /* Dvousloupcový editor osoby byl na užších telefonech příliš stísněný. */
  .member-form-grid{grid-template-columns:1fr!important}
  .member-form-grid .form-field.full{grid-column:auto}
}

/* Fáze 21 · Zpravodaj */
.nl-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin:1rem 0}
.nl-list-panel{margin-top:.4rem}
.nl-toolbar{display:flex;align-items:center;gap:.65rem;margin:.25rem 0 1rem}
.nl-search{flex:1;min-width:0}
.nl-search .input,.nl-filter .select{width:100%;min-width:0}
.nl-filter{width:min(100%,13rem)}
.nl-table td:first-child strong,.nl-table td:first-child small{display:block}
.nl-table td:first-child small{margin-top:.2rem;color:var(--muted);font-size:.7rem}
.nl-status{display:inline-flex;align-items:center;min-height:1.55rem;border-radius:999px;padding:.22rem .55rem;font-size:.66rem;font-weight:850;white-space:nowrap}
.nl-status-empty{background:#eef2f7;color:#65758d}
.nl-status-draft{background:#fff5df;color:#9b6816}
.nl-status-generated,.nl-status-review{background:#eaf3ff;color:#2868b2}
.nl-status-approved,.nl-status-published{background:#e8f7f1;color:#13835f}
.nl-stepbar{display:flex;align-items:center;justify-content:center;gap:.7rem;margin:1.15rem 0;color:var(--muted);font-size:.72rem}
.nl-stepbar span{display:flex;align-items:center;gap:.38rem;white-space:nowrap}
.nl-stepbar span.is-active{color:var(--primary-dark);font-weight:800}
.nl-stepbar b{display:grid;place-items:center;width:1.55rem;height:1.55rem;border-radius:50%;background:#eaf3ff;color:#2868b2;font-size:.68rem}
.nl-stepbar i{width:min(7vw,3.5rem);height:1px;background:var(--line)}
.nl-editor-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(16rem,.8fr);align-items:start;gap:1rem}
.nl-editor-panel,.nl-source-panel{min-width:0}
.nl-comment{display:grid;gap:.38rem;margin-top:.2rem}
.nl-comment>span{color:#53647e;font-size:.72rem;font-weight:800}
.nl-comment .input{width:100%;min-height:8rem;resize:vertical;line-height:1.55}
.nl-photo-section{margin-top:1.1rem;padding-top:1rem;border-top:1px solid var(--line)}
.nl-photo-heading{display:flex;align-items:center;justify-content:space-between;gap:.8rem}
.nl-photo-heading strong,.nl-photo-heading small{display:block}
.nl-photo-heading strong{font-size:.82rem}
.nl-photo-heading small{margin-top:.2rem;color:var(--muted);font-size:.68rem}
.nl-upload-button{position:relative;overflow:hidden}
.nl-upload-button input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.nl-upload-button.is-disabled{opacity:.55;pointer-events:none}
.nl-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(8.2rem,1fr));gap:.7rem;margin-top:.8rem}
.nl-photo{position:relative;min-width:0}
.nl-photo-select{display:flex;width:100%;height:8.7rem;flex-direction:column;overflow:hidden;border:2px solid transparent;border-radius:.85rem;padding:0;background:#f1f5f9;color:var(--ink);text-align:left}
.nl-photo-select[aria-pressed="true"]{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 18%,transparent)}
.nl-photo-select img{display:block;width:100%;height:6.45rem;object-fit:cover;background:#e8eef5}
.nl-photo-select span{display:flex;align-items:center;min-height:2.1rem;padding:0 .55rem;color:#526078;font-size:.65rem;font-weight:800}
.nl-photo-select[aria-pressed="true"] span{color:var(--primary-dark)}
.nl-photo-remove{position:absolute;top:.35rem;right:.35rem;display:grid;place-items:center;width:1.8rem;height:1.8rem;border:1px solid rgba(255,255,255,.65);border-radius:50%;background:rgba(15,23,42,.7);color:#fff;font-size:1.1rem}
.nl-photo-empty{grid-column:1/-1;border:1px dashed #cbd5e1;border-radius:.8rem;padding:1.3rem;color:var(--muted);font-size:.74rem;text-align:center}
.nl-upload-status{margin:.7rem 0 0;color:var(--primary-dark);font-size:.72rem}
.nl-required-cover{color:var(--warning)}
.nl-next-note{display:flex;gap:.6rem;align-items:flex-start;margin-top:1rem;border-radius:.8rem;padding:.75rem;background:#f0f7fd;color:#52657b}
.nl-next-note>span{color:#2477b8;font-weight:900}
.nl-next-note p{margin:0;font-size:.7rem;line-height:1.5}
.nl-editor-actions{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-top:1rem;padding-top:.9rem;border-top:1px solid var(--line)}
.nl-editor-actions .muted{font-size:.68rem}
.nl-article-editor{margin-top:1rem}.nl-article-editor textarea{min-height:15rem;line-height:1.65;resize:vertical}.nl-action-status{margin:.75rem 0 0;color:var(--primary-dark);font-size:.76rem;line-height:1.5}.nl-action-status.is-error{color:var(--danger)}.nl-editor-buttons{display:flex;align-items:center;gap:.55rem}
.nl-facts{display:grid;gap:0;margin:0}
.nl-facts>div{display:flex;justify-content:space-between;gap:.75rem;padding:.7rem 0;border-bottom:1px solid #edf1f6}
.nl-facts>div:last-child{border:0}
.nl-facts dt{color:var(--muted);font-size:.7rem}
.nl-facts dd{margin:0;text-align:right;font-size:.72rem;font-weight:750}
.nl-source-note{margin-top:.8rem;border-radius:.75rem;padding:.7rem;background:#f8fafc;color:var(--muted);font-size:.68rem;line-height:1.5}
.nl-athletes-panel{grid-column:1/-1;min-width:0}
.nl-athlete-count{flex:0 0 auto;border-radius:999px;padding:.3rem .6rem;background:#f0f6fc;color:#47617d;font-size:.67rem;font-weight:800}
.nl-athletes-table th,.nl-athletes-table td{white-space:nowrap}
.nl-athletes-table td:first-child{min-width:11rem;white-space:normal}
.nl-athlete-record{display:inline-flex;border-radius:999px;padding:.23rem .55rem;background:#e8f7f1;color:#13835f;font-size:.68rem;font-weight:850}
@media(max-width:900px){.nl-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.nl-editor-grid{grid-template-columns:1fr}}
@media(max-width:600px){.nl-toolbar{align-items:stretch;flex-direction:column}.nl-filter{width:100%}.nl-stepbar{justify-content:flex-start;gap:.35rem;font-size:.62rem}.nl-stepbar i{width:1rem}.nl-stepbar b{width:1.35rem;height:1.35rem}.nl-photo-heading{align-items:flex-start;flex-direction:column}.nl-editor-actions{align-items:stretch;flex-direction:column}.nl-editor-buttons{align-items:stretch;flex-direction:column}.nl-editor-actions .button{width:100%}.nl-table th:nth-child(3),.nl-table td:nth-child(3){display:none}.nl-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
