:root{--brand: #056270;--brand-deep: #05515e;--brand-soft: #e0eff0;--purple: #a575ff;--purple-ink: #5b32a8;--purple-light: #d0b6ff;--purple-soft: #f0e8ff;--mint: #63f7c9;--black: #062a31;--white: #ffffff;--bg: #eff5f5;--border: #d7e5e6;--border-soft: #e6efef;--border-strong: #bed4d6;--muted: #567275;--muted-2: #4d686c;--sidebar-inactive: #9dc0c4;--green: #067352;--green-bg: #ddf8ee;--red: #884474;--red-bg: #f5ecf2;--bar-muted: #cfe2e3;--shadow-color: 4, 65, 76;--font-display: "Fira Sans Condensed", system-ui, sans-serif;--font-body: "Manrope", system-ui, sans-serif;--font-label: "Fira Sans Condensed", system-ui, sans-serif;--radius-card: 16px;--radius-btn: 11px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);font-family:var(--font-body);color:var(--black);-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#bcd4d6;border-radius:8px}.app{display:flex;min-height:100vh}.main{flex:1;display:flex;flex-direction:column;min-width:0}.content{flex:1;padding:26px 30px;display:flex;flex-direction:column;gap:22px}.brand-seal{display:flex;justify-content:center;padding:10px 30px 34px}.brand-seal__img{width:92px;height:92px}.state-msg{color:var(--muted);font-size:15px;padding:24px 0}.state-msg--error{color:var(--red);display:flex;align-items:center;gap:14px}.state-msg--ok{color:var(--green);font-weight:600;padding:0}.sidebar{width:264px;flex-shrink:0;background:var(--brand-deep);color:var(--white);display:flex;flex-direction:column;padding:26px 18px;min-height:100vh;position:sticky;top:0;height:100vh}.logo-mark{border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.logo-full{display:block;height:auto;max-width:100%}.logo-lockup{display:flex;align-items:center;gap:9px;min-width:0}.logo-lockup img{display:block}.sidebar__brand{display:flex;justify-content:center;background:var(--white);border-radius:var(--radius-card);padding:16px 14px;margin-bottom:24px}.sidebar__section-label{font-family:var(--font-label);font-size:11px;letter-spacing:2px;color:#a3c7cb;text-transform:uppercase;padding:0 10px 10px}.sidebar__nav{display:flex;flex-direction:column;gap:3px}.sidebar__link{display:flex;align-items:center;gap:13px;padding:11px 14px;border-radius:11px;border:none;background:transparent;color:var(--sidebar-inactive);font-weight:500;font-size:15px;text-align:left;transition:background .15s ease}.sidebar__link:hover{background:#ffffff14}.sidebar__link--active,.sidebar__link--active:hover{background:var(--white);color:var(--brand);font-weight:600}.sidebar__qr-box{margin-top:auto;background:#043c46;border:1px solid #0a6d7c;border-radius:14px;padding:16px}.sidebar__qr-label{font-family:var(--font-label);font-size:11px;letter-spacing:2px;color:var(--mint);text-transform:uppercase}.sidebar__qr-row{display:flex;align-items:center;gap:12px;margin-top:10px}.sidebar__qr-icon{width:48px;height:48px;background:var(--white);color:var(--brand);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar__qr-text{font-size:12.5px;color:#a8c8cc;line-height:1.35}.sidebar__logout{margin-top:10px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:22px 30px;border-bottom:1px solid var(--border);gap:16px}.topbar__greeting{font-family:var(--font-display);font-weight:700;font-size:26px;letter-spacing:.5px;text-transform:uppercase}.topbar__subtitle{color:var(--muted-2);font-size:14px;margin-top:2px}.topbar__actions{display:flex;align-items:center;gap:12px}.topbar__search,.field-search{display:flex;align-items:center;gap:9px;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-btn);padding:9px 15px;color:var(--muted)}.topbar__search{width:230px}.field-search{width:100%}.field-search:focus-within{border-color:var(--brand)}.topbar__search input,.field-search input{border:none;outline:none;background:transparent;font-family:var(--font-body);font-size:14px;width:100%;color:var(--black)}.topbar__search input::placeholder,.field-search input::placeholder{color:var(--muted)}.btn{display:flex;align-items:center;gap:8px;border-radius:var(--radius-btn);font-weight:600;font-size:14px;padding:10px 18px;border:none}.btn--primary{background:var(--brand);color:var(--white)}.btn--primary:hover:not(:disabled){background:var(--brand-deep)}.btn--danger{background:var(--red);color:var(--white)}.btn--danger:disabled{opacity:.6;cursor:default}.avatar{border-radius:50%;font-family:var(--font-display);font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.avatar--dark{width:42px;height:42px;background:var(--brand);color:var(--white);font-size:15px}.avatar--dark.avatar--sm{width:36px;height:36px;font-size:13px}.avatar--light{width:34px;height:34px;background:var(--brand-soft);color:var(--brand);font-size:13px}.card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-card)}.card--dark{background:var(--brand-deep);border-color:var(--brand-deep);color:var(--white)}.kpi-grid--desktop{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.kpi-card{padding:20px}.kpi-card__head{display:flex;justify-content:space-between;align-items:flex-start}.kpi-card__label{font-family:var(--font-label);font-size:12px;letter-spacing:1.5px;color:var(--muted);text-transform:uppercase;font-weight:600}.card--dark .kpi-card__label{color:#a3c7cb}.kpi-card__icon{color:#a9c8ca}.kpi-card__icon--dark{color:var(--mint)}.kpi-card__value{font-family:var(--font-display);font-weight:700;font-size:40px;line-height:1.1;margin-top:8px}.kpi-card__value--debt{color:var(--red)}.kpi-card__delta{font-size:12.5px;margin-top:6px;font-weight:600;color:var(--muted)}.kpi-card__delta--up{color:var(--green)}.kpi-card__delta--muted{color:var(--muted)}.kpi-card__delta--muted-dark{color:var(--sidebar-inactive)}.kpi-card__icon--debt{color:var(--red)}.kpi-card__delta--debt-link{color:var(--red);display:flex;align-items:center;gap:5px}.kpi-card__arrow{transition:transform .15s ease}.kpi-card--button{cursor:pointer;text-align:left;font:inherit;color:inherit;transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease}.kpi-card--button:hover{transform:translateY(-2px);border-color:var(--border-strong)}.kpi-card--button:hover .kpi-card__arrow{transform:translate(3px)}.card.kpi-card--active{border-color:var(--purple);box-shadow:0 12px 30px -14px #7e42d673}.card--dark.kpi-card--active-dark{box-shadow:0 12px 30px -12px rgba(var(--shadow-color),.55),inset 0 0 0 1.5px var(--mint)}.kpi-grid--mobile{display:none}.kpi-card--sm{padding:15px;border-radius:15px}.kpi-card--sm .kpi-card__label{font-size:10.5px;letter-spacing:1px}.kpi-card__value--sm{font-size:28px;margin-top:4px}.kpi-card__value--debt-red{color:var(--red)}.kpi-card--sm .kpi-card__delta{font-size:11px;margin-top:2px}.kpi-card--wide{grid-column:span 2}.grid-main{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;align-items:start}.detail-panel{animation:panel-in .25s ease}@keyframes panel-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.list-card{padding:22px}.list-card__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.list-card__title{font-family:var(--font-display);font-weight:600;font-size:19px;text-transform:uppercase;letter-spacing:.5px}.list-card__hint{font-size:12px;color:var(--muted);font-weight:600}.list-card__link{font-size:13px;color:var(--brand);font-weight:600;border:none;background:none;border-bottom:1.5px solid var(--brand);border-radius:0;padding:0;position:relative}.list-card__link:after{content:"";position:absolute;top:-14px;right:-12px;bottom:-14px;left:-12px}.list-row{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--border-soft);gap:10px}.list-row:last-child{border-bottom:none}.list-row__left{display:flex;align-items:center;gap:12px}.list-row__name{font-weight:600;font-size:14px}.list-row__meta{font-size:12px;color:var(--muted)}.list-row__amount{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--red)}.pill{display:flex;align-items:center;gap:6px;font-weight:600;font-size:12px;padding:5px 11px;border-radius:20px;white-space:nowrap}.pill--ok{background:var(--green-bg);color:var(--green)}.pill--debt{background:var(--red-bg);color:var(--red)}.pill--muted{background:var(--border-soft);color:var(--muted-2)}.live-badge{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--green);font-weight:600}.live-badge__dot{width:7px;height:7px;border-radius:50%;background:var(--green)}.open-classes__rows{display:flex;flex-direction:column;gap:16px}.open-classes__row{display:block;width:100%;text-align:left;font:inherit;color:inherit;background:none;border:none;padding:6px 8px;margin:-6px -8px;border-radius:10px;transition:background .15s ease}.open-classes__row:hover{background:var(--bg)}.open-classes__row-head{display:flex;justify-content:space-between;font-size:14px;margin-bottom:7px}.open-classes__name{font-weight:600}.open-classes__count{font-family:var(--font-display);font-weight:700}.open-classes__count--full{color:var(--red)}.progress{height:8px;background:var(--border-soft);border-radius:5px;overflow:hidden}.progress__fill{height:100%;background:var(--brand);border-radius:5px}.progress__fill--full{background:var(--red)}.kpi-grid--page{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.kpi-grid--page .kpi-card__value{font-size:36px}.kpi-grid--pair{grid-template-columns:repeat(2,1fr)}.filters{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.filters__label{font-family:var(--font-label);font-size:12px;letter-spacing:2px;color:var(--muted);text-transform:uppercase;font-weight:600}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--white);border:1px solid var(--border);border-radius:10px;padding:10px 38px 10px 14px;font-family:var(--font-body);font-size:14px;font-weight:600;color:var(--black);cursor:pointer;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%230A0A0A' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}.table-card{padding:6px 22px}.table-scroll{overflow-x:auto}.table{min-width:860px}.table--athletes .table__head,.table--athletes .table__row{display:grid;grid-template-columns:2.1fr 1fr 1.6fr 1fr 1.7fr 1fr 84px;align-items:center;gap:12px}.table--coaches .table__row{display:grid;grid-template-columns:1.9fr 1.7fr 1.5fr 84px;align-items:center;gap:12px}.table--payments .table__head,.table--payments .table__row{display:grid;grid-template-columns:2fr 1.4fr 1fr 1.2fr 140px;align-items:center;gap:12px}.table--payments .table__cell{display:flex;align-items:center;gap:7px}.paytl{background:var(--bg);border-radius:12px;padding:14px 16px;margin:0 0 12px;display:flex;flex-direction:column}.paytl--loading{font-size:13px;color:var(--muted)}.paytl__head{font-family:var(--font-label);font-size:11.5px;letter-spacing:1.3px;color:var(--muted);text-transform:uppercase;font-weight:600;padding-bottom:10px}.paytl__row{display:grid;grid-template-columns:1.6fr 1.2fr 1fr 120px;align-items:center;gap:12px;padding:9px 0;border-top:1px solid var(--border)}.paytl__row--current{border-top-color:var(--border-strong)}.paytl__month{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px;color:var(--black)}.paytl__now{font-family:var(--font-label);font-size:10px;letter-spacing:.8px;text-transform:uppercase;font-weight:600;color:var(--muted);background:var(--white);border:1px solid var(--border-strong);border-radius:999px;padding:2px 7px}.paytl__date{font-size:12.5px;color:var(--muted);white-space:nowrap}.paytl__action{display:flex;justify-content:flex-end}.paytl__chevron{margin-left:6px;transition:transform .15s ease}.paytl__chevron--open{transform:rotate(90deg)}@media (max-width: 1227px){.paytl{margin-bottom:0}.paytl__row{grid-template-columns:1fr auto;row-gap:8px}.paytl__date{grid-row:2;grid-column:1}.paytl__action{grid-row:2;grid-column:2}}.btn--sm{padding:8px 16px;font-size:13px;border-radius:9px}.btn:disabled{opacity:.55;cursor:default}.table__head{padding:16px 0 12px;border-bottom:1px solid var(--border-soft)}.table__head span{font-family:var(--font-label);font-size:11.5px;letter-spacing:1.5px;color:var(--muted);text-transform:uppercase;font-weight:600}.table__row{padding:13px 0;border-bottom:1px solid var(--border-soft)}.table__row:last-child{border-bottom:none}.table__person{display:flex;align-items:center;gap:12px}.table__name{display:block;font-weight:600;font-size:14px;color:var(--black)}.table__sub{display:block;font-size:12px;color:var(--muted);margin-top:1px}.table__cell{font-size:14px;color:var(--black)}.table__actions{display:flex;gap:8px;justify-content:flex-end}.table__empty{padding:24px 0;color:var(--muted);font-size:14px}.record-list{display:none;gap:11px}.record-card{display:flex;flex-direction:column;gap:11px;padding:15px 16px;border-radius:15px}.record-card__head{display:flex;align-items:center;gap:11px}.record-card__head>.pill{flex-shrink:0}.record-card__titles{flex:1;min-width:0}.record-card__name{font-weight:600;font-size:15px;line-height:1.25}.record-card__sub{font-size:12.5px;color:var(--muted);margin-top:2px}.record-card__meta{font-size:12.5px;color:var(--muted-2);line-height:1.4}.record-card__money{display:flex;align-items:center;justify-content:flex-end;gap:12px}.record-card__actions{display:flex;gap:8px;justify-content:flex-end;padding-top:11px;border-top:1px solid var(--border-soft)}.icon-btn{width:34px;height:34px;border-radius:10px;border:1px solid var(--border);background:#f5fafa;color:var(--brand);display:flex;align-items:center;justify-content:center;transition:background .15s ease,border-color .15s ease}.icon-btn:hover{background:var(--white);border-color:var(--border-strong)}.icon-btn--danger:hover{background:var(--red-bg);border-color:var(--red);color:var(--red)}.icon-btn:disabled{opacity:.4;cursor:default}.icon-btn:disabled:hover{background:#f5fafa;border-color:var(--border)}.pagination{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:16px 0;border-top:1px solid var(--border-soft)}.pagination__range{font-size:13px;color:var(--muted)}.pagination__controls{display:flex;align-items:center;gap:10px}.pagination__page{font-size:13px;font-weight:600;color:var(--black);min-width:118px;text-align:center}.chip-list{display:flex;flex-wrap:wrap;gap:8px}.chip{background:var(--purple-soft);color:var(--purple-ink);font-size:12.5px;font-weight:600;padding:5px 12px;border-radius:20px;white-space:nowrap}.dept-grid,.oc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.dept-card,.oc-card{padding:24px;text-align:left;font:inherit;color:inherit;display:flex;flex-direction:column;gap:20px}.oc-card{cursor:pointer;transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease}.oc-card:hover{transform:translateY(-2px);border-color:var(--border-strong);box-shadow:0 14px 34px -18px rgba(var(--shadow-color),.3)}.dept-card__head,.oc-card__head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.dept-card__head-actions,.oc-card__head-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.dept-card__name,.oc-card__title{font-family:var(--font-display);font-weight:600;font-size:21px;color:var(--black)}.dept-card__room,.oc-card__date{font-size:13px;color:var(--muted);margin-top:3px}.dept-card__label,.oc-card__label{font-family:var(--font-label);font-size:11px;letter-spacing:1.5px;color:var(--muted);text-transform:uppercase;font-weight:600;margin-bottom:5px}.dept-card__stats,.oc-card__stats{display:flex;justify-content:space-between;align-items:flex-end;gap:16px}.dept-card__coach,.oc-card__time{font-weight:600;font-size:14.5px}.dept-card__athletes,.oc-card__seats{text-align:right}.dept-card__count,.oc-card__count{font-family:var(--font-display);font-weight:700;font-size:26px;line-height:1}.dept-card__schedule,.oc-card__notes{border-top:1px solid var(--border-soft);padding-top:16px}.oc-card__capacity{display:flex;flex-direction:column;gap:10px}.oc-card__note{font-size:13.5px;line-height:1.5;color:var(--muted-2)}.att-list{display:flex;flex-direction:column;gap:14px}.att-card{padding:18px 24px 20px;display:flex;flex-direction:column;gap:14px}.att-card__head{display:flex;align-items:center;gap:18px;background:none;border:none;padding:0;text-align:left;font:inherit;color:inherit;width:100%}.att-card__slot{width:78px;flex-shrink:0;border-right:1px solid var(--border-soft)}.att-card__start{font-family:var(--font-display);font-weight:700;font-size:22px;line-height:1.1}.att-card__end{font-size:12px;color:var(--muted);margin-top:2px}.att-card__main{flex:1;min-width:0}.att-card__name{font-family:var(--font-display);font-weight:600;font-size:19px}.att-card__coach{font-size:13px;color:var(--muted);margin-top:2px}.att-card__label{font-family:var(--font-label);font-size:11px;letter-spacing:1.5px;color:var(--muted);text-transform:uppercase;font-weight:600;margin-bottom:3px}.att-card__presence{text-align:right;flex-shrink:0}.att-card__count{font-family:var(--font-display);font-weight:700;font-size:24px;line-height:1}.att-card__chevron{display:flex;color:var(--muted-2);flex-shrink:0;transition:transform .18s ease}.att-card__chevron--open{transform:rotate(90deg)}.att-card__progress{height:6px}.att-card__roster{border-top:1px solid var(--border-soft);padding-top:4px}.att-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-soft)}.att-row:last-child{border-bottom:none}.att-row__person{display:flex;align-items:center;gap:12px;min-width:0}.att-row__name{font-weight:600;font-size:14px}.att-row__debt,.att-row__error{font-size:12px;color:var(--red);margin-top:1px}.att-row__actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.att-card__empty{padding:14px 0;color:var(--muted);font-size:14px}.coming-soon{padding:40px;color:var(--muted);font-size:15px;text-align:center}.mobile-header{display:none;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:9px 16px}.mobile-header .logo-lockup{grid-column:2}.mobile-header__logout{display:flex;align-items:center;grid-column:3;justify-self:end;border:none;background:transparent;color:var(--muted);padding:4px}.page-head{display:none;flex-direction:column;gap:12px;padding:2px 20px 0}.page-head__row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.page-head__titles{min-width:0}.page-head__title{font-family:var(--font-display);font-weight:700;font-size:22px;text-transform:uppercase;letter-spacing:.5px;line-height:1.1}.page-head__subtitle{color:var(--muted);font-size:12.5px;line-height:1.35;margin-top:3px}.page-head__row .btn{flex-shrink:0;white-space:nowrap}.page-head__search{display:flex;align-items:center;gap:9px;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-btn);padding:10px 15px;color:var(--muted)}.page-head__search:focus-within{border-color:var(--brand)}.page-head__search input{border:none;outline:none;background:transparent;font-family:var(--font-body);font-size:16px;width:100%;color:var(--black)}.page-head__search input::placeholder{color:var(--muted)}.tabbar{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--white);border-top:1px solid var(--border);padding:8px 8px calc(10px + env(safe-area-inset-bottom));align-items:stretch;z-index:10}.tabbar__item{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;border:none;background:none;color:var(--muted);font-size:10px;font-weight:500;padding:4px 2px;border-radius:12px;white-space:nowrap}.tabbar__item--active{color:var(--brand);font-weight:600}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#04212780;display:flex;align-items:flex-end;z-index:20;animation:sheet-fade .16s ease}.sheet{width:100%;background:var(--white);border-radius:var(--radius-card) var(--radius-card) 0 0;padding:10px 20px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px;animation:sheet-rise .2s ease}.sheet__handle{width:40px;height:4px;border-radius:2px;background:var(--border-strong);align-self:center;margin-bottom:2px}.sheet__label{font-family:var(--font-label);font-size:12px;letter-spacing:2px;color:var(--muted);text-transform:uppercase;font-weight:600}.sheet__grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sheet__tile{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:15px 14px;border:1px solid var(--border);border-radius:14px;background:var(--white);color:var(--black);font-family:var(--font-body);font-size:13.5px;font-weight:600;text-align:left}.sheet__tile--active{background:var(--brand);border-color:var(--brand);color:var(--white)}.sheet__party{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:14px;background:var(--bg);border:1px dashed var(--border-strong)}.sheet__party-icon{display:flex;color:var(--brand)}.sheet__party-text{font-size:13.5px;font-weight:600;color:var(--muted-2)}.sheet__qr{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:14px;background:var(--bg)}.sheet__qr-icon{display:flex;color:var(--black)}.sheet__qr-title{font-size:13.5px;font-weight:600}.sheet__qr-text{font-size:12px;color:var(--muted);margin-top:1px}.sheet__logout{display:flex;align-items:center;justify-content:center;gap:9px;padding:13px;border:1px solid var(--border);border-radius:var(--radius-btn);background:transparent;color:var(--muted-2);font-family:var(--font-body);font-size:14px;font-weight:600}@keyframes sheet-fade{0%{opacity:0}}@keyframes sheet-rise{0%{transform:translateY(14px)}}@media (max-width: 1227px){.sidebar,.topbar{display:none}.tabbar,.page-head{display:flex}.mobile-header{display:grid}.content{padding:16px 20px 6px;gap:16px}.brand-seal{padding:8px 20px 96px}.brand-seal__img{width:76px;height:76px}.kpi-grid--desktop{display:none}.kpi-grid--mobile{display:grid;grid-template-columns:1fr 1fr;gap:11px}.grid-main{grid-template-columns:1fr;gap:14px}.card{border-radius:15px}.list-card{padding:17px}.list-card__title{font-size:15px}.progress{height:7px}.pill__text{display:none}.dept-grid,.oc-grid{grid-template-columns:1fr;gap:14px}.att-card{padding:14px 16px 16px;gap:12px}.att-card__head{gap:12px}.att-card__slot{width:58px}.att-card__start{font-size:19px}.att-card__name{font-size:16px}.att-card__count{font-size:20px}.att-row__actions .pill--muted{display:none}.dept-card,.oc-card{padding:18px;gap:16px}.dept-card__name,.oc-card__title{font-size:19px}.att-row .pill__text{display:inline}.kpi-grid--page{grid-template-columns:1fr 1fr;gap:11px}.kpi-grid--page .kpi-card__value{font-size:28px}.table-scroll{display:none}.record-list{display:grid}.table-card{background:transparent;border:none;padding:0;display:flex;flex-direction:column;gap:14px}.table-card .pagination{border-top:none;padding:0 0 4px;justify-content:center}.table-card .pagination__range{display:none}.filters{display:grid;grid-template-columns:1fr;gap:9px}.filters__label{display:none}.select{width:100%;font-size:16px;padding:12px 38px 12px 14px}.eval-metric__input{font-size:16px}.icon-btn{width:40px;height:40px}.btn:not(.btn--sm){padding:12px 18px}.btn--sm{padding:10px 15px}}@media (min-width: 641px) and (max-width: 1227px){.record-list{grid-template-columns:1fr 1fr;gap:14px}.pill__text{display:inline}.att-row__actions .pill--muted{display:inline-flex}.filters{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.filters__label{display:block}.select{width:auto}.kpi-grid--mobile,.kpi-grid--page{grid-template-columns:repeat(4,1fr);gap:14px}.kpi-grid--pair{grid-template-columns:repeat(2,1fr)}.kpi-grid--athlete{grid-template-columns:repeat(3,1fr);gap:14px}.kpi-grid--athlete>:last-child{grid-column:auto}.dept-grid,.oc-grid{grid-template-columns:repeat(2,1fr);gap:18px}.content{padding:20px 26px 96px}}.btn--ghost{background:transparent;color:var(--muted-2);border:1px solid var(--border-strong)}.btn--ghost:hover:not(:disabled){color:var(--brand);border-color:var(--brand)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#04212780;display:flex;align-items:center;justify-content:center;padding:24px;overflow-y:auto}.modal{background:var(--white);border-radius:var(--radius-card);border:1px solid var(--border);width:100%;max-width:460px;max-height:calc(100vh - 48px);display:flex;flex-direction:column}.modal__head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px 16px;border-bottom:1px solid var(--border-soft)}.modal__title{font-family:var(--font-display);font-weight:600;font-size:20px;letter-spacing:1px;text-transform:uppercase;color:var(--black);margin:0}.modal__close{background:transparent;border:none;color:var(--muted);font-size:16px;line-height:1;padding:6px;border-radius:8px}.modal__close:hover{color:var(--black);background:var(--bg)}.form{display:flex;flex-direction:column;min-height:0}.form__fields{display:flex;flex-direction:column;gap:16px;padding:22px 24px;overflow-y:auto}.field{display:flex;flex-direction:column;gap:7px}.field__label{font-family:var(--font-label);font-size:11px;letter-spacing:1.4px;color:var(--muted);text-transform:uppercase;font-weight:600}.field__required{color:var(--red)}.field__input{background:var(--white);border:1px solid var(--border);border-radius:10px;padding:11px 14px;font-family:var(--font-body);font-size:14px;color:var(--black);width:100%;resize:vertical}.field__input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #05627021}.field__input::placeholder{color:var(--muted)}.select--block{width:100%}.booking-list,.assign-list{display:flex;flex-direction:column;gap:8px;list-style:none;max-height:260px;overflow-y:auto}.booking-list__row,.assign-list__row{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--border);border-radius:10px;background:#f5fafa}.booking-list__name,.assign-list__name{flex:1;min-width:0;font-size:14px;font-weight:600}.booking-add,.assign-add{display:flex;gap:10px}.booking-add .select,.assign-add .select{flex:1;min-width:0}.form__row{display:flex;gap:12px}.form__row>.field{flex:1;min-width:0}.slot-list{display:flex;flex-direction:column;gap:8px;list-style:none;max-height:250px;overflow-y:auto}.slot-row{display:flex;align-items:center;gap:8px}.slot-row__day{flex:1;min-width:0}.slot-row__time{width:auto;flex:0 0 auto;padding:10px}.slot-row__dash{color:var(--muted)}.slot-list__add{display:flex}.form__hint{font-size:13px;line-height:1.5;color:var(--muted);margin:0}.form__hint--error{color:var(--red);font-weight:600}.form__error{margin:0 24px;padding:11px 14px;border-radius:10px;background:var(--red-bg);color:var(--red);font-size:13px;font-weight:600}.form__actions{display:flex;justify-content:flex-end;gap:10px;padding:18px 24px 22px}.form__actions .btn:disabled{opacity:.45}.confirm__message{padding:4px 24px 18px;font-size:14.5px;line-height:1.55;color:var(--muted-2)}.list-card__empty{padding:22px 0;text-align:center;color:var(--muted);font-size:14px}@media (max-width: 640px){.modal-overlay{padding:0;align-items:flex-end}.modal{max-width:none;border-radius:var(--radius-card) var(--radius-card) 0 0;max-height:92vh;padding-bottom:env(safe-area-inset-bottom)}.field__input,.field-search input{font-size:16px}.form__actions .btn{flex:1;justify-content:center}.slot-row{flex-wrap:wrap;padding:10px;border:1px solid var(--border);border-radius:10px;background:#f5fafa}.slot-row__day{flex:1 0 100%}.slot-row__time{flex:1;min-width:0}}.auth-overlay{background:var(--bg)}.auth-card{max-width:400px}.auth-card__brand{display:flex;justify-content:center;padding:14px 24px 2px}.auth-tabs{display:flex;gap:6px;margin:0 24px;padding:4px;background:var(--bg);border-radius:var(--radius-btn)}.auth-tab{flex:1;padding:9px 0;border:none;border-radius:8px;background:transparent;font-family:var(--font-label);font-size:12px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted)}.auth-tab--active{background:var(--brand);color:var(--white)}.auth-card__actions{justify-content:stretch}.auth-card__actions .btn{width:100%;justify-content:center}.auth-splash{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--muted);font-family:var(--font-label);letter-spacing:2px;text-transform:uppercase;font-size:12px}@media (max-width: 640px){.auth-overlay{padding:20px;align-items:center}.auth-card{border-radius:var(--radius-card)}}.sidebar__logout--bottom{margin-top:auto}.card--dark.kpi-card--button{color:var(--white)}.kpi-card__of{font-size:.6em;color:var(--muted);margin-left:2px}.card--dark .kpi-card__of{color:#a3c7cb}.home-side{display:flex;flex-direction:column;gap:20px}.session-rows{display:flex;flex-direction:column;gap:14px}.session-row{display:flex;flex-direction:column;gap:8px;width:100%;padding:10px 12px;border:1px solid var(--border-soft);border-radius:12px;background:transparent;text-align:left;transition:background .15s ease}.session-row:hover{background:var(--bg)}.session-row__head{display:flex;align-items:baseline;gap:10px}.session-row__time{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--black);flex-shrink:0}.session-row__name{font-weight:600;font-size:14px;color:var(--black);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-row__count{font-family:var(--font-display);font-weight:700;font-size:14px;color:var(--muted-2);flex-shrink:0}.table--coach-athletes .table__head,.table--coach-athletes .table__row{display:grid;grid-template-columns:2.1fr 1fr 1.8fr 1.8fr 1.2fr;align-items:center;gap:12px}.report-list{display:flex;flex-direction:column;gap:14px}.report-card{padding:18px 20px;display:flex;flex-direction:column;gap:12px;cursor:pointer;transition:border-color .15s ease}.report-card:hover{border-color:var(--border-strong)}.report-card__head{display:flex;align-items:center;gap:12px}.report-card__titles{flex:1;min-width:0}.report-card__name{font-weight:600;font-size:15px;color:var(--black)}.report-card__meta{font-size:12.5px;color:var(--muted);margin-top:2px}.report-card__head-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.report-card__text{font-size:14px;line-height:1.5;color:var(--muted-2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.report-card__foot{font-family:var(--font-label);font-size:11.5px;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--border-soft);padding-top:10px}.report-modal__text{font-size:14px;line-height:1.6;color:var(--black);white-space:pre-wrap;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-btn);padding:12px 14px}.metric-list{display:flex;flex-direction:column;gap:8px;list-style:none}.metric-row{display:flex;align-items:center;gap:8px}.metric-row__index{flex:0 0 auto;width:24px;font-family:var(--font-display);font-weight:700;font-size:14px;color:var(--muted);text-align:center}.metric-row .field__input{flex:1;min-width:0}.eval-sheet{display:flex;flex-direction:column;gap:12px}.eval-card{padding:16px 18px;display:flex;flex-direction:column;gap:12px}.eval-card__head{display:flex;align-items:flex-start;gap:12px}.eval-card__titles{flex:1;min-width:0}.eval-card__name{font-weight:600;font-size:15px;color:var(--black)}.eval-card__attendance{font-size:12.5px;color:var(--muted);margin-top:2px}.eval-card__progress{max-width:240px;margin-top:7px}.eval-card__metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:8px}.eval-metric{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--bg);border:1px solid var(--border-soft);border-radius:var(--radius-btn);padding:8px 10px 8px 12px}.eval-metric__label{font-size:13px;font-weight:600;color:var(--muted-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eval-metric__input{flex:0 0 auto;width:52px;text-align:center;padding:8px 6px;font-family:var(--font-display);font-weight:700}.eval-metric__value{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--black);flex-shrink:0}.eval-metric__max{font-size:12px;color:var(--muted);font-weight:600}.eval-card__textarea{resize:vertical;min-height:62px}.eval-card__note{font-size:14px;line-height:1.5;color:var(--muted-2);white-space:pre-wrap}.eval-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.eval-actions__hint{flex:1;min-width:220px;font-size:13px;line-height:1.5;color:var(--muted)}.eval-summary{display:flex;align-items:center;gap:26px;flex-wrap:wrap;padding:18px 22px}.eval-summary__item{display:flex;flex-direction:column;gap:2px;min-width:0}.eval-summary__label{font-family:var(--font-label);font-size:11.5px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);font-weight:600}.eval-summary__value{font-family:var(--font-display);font-weight:700;font-size:26px;color:var(--black);line-height:1.1}.eval-summary__meta{font-size:12.5px;color:var(--muted)}.eval-summary .btn{margin-left:auto}.report-card__months{font-weight:400;color:var(--muted)}.eval-view__scores{display:flex;flex-direction:column;gap:9px}.eval-score{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) auto;align-items:center;gap:12px}.eval-score__label{font-size:13.5px;font-weight:600;color:var(--muted-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eval-score__value{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--black)}.eval-score__max{font-size:11.5px;color:var(--muted)}.eval-view__attendance{font-size:13px;color:var(--muted-2)}.role-gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.role-gate__card{max-width:460px;padding:32px;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}.role-gate__title{font-family:var(--font-display);font-weight:700;font-size:22px;line-height:1.25;color:var(--black)}.role-gate__message{font-size:14px;line-height:1.55;color:var(--muted-2)}.role-gate__user{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted)}.role-gate__actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}@media (max-width: 1227px){.home-side{gap:14px}.report-card{padding:16px 17px}.form__actions{flex-wrap:wrap}}.invite-link{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12px;line-height:1.5;color:var(--black);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-btn);padding:10px 12px;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.kpi-grid--athlete{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.kpi-card--ok .kpi-card__value{color:var(--green)}.club-info{padding:22px;display:flex;flex-direction:column;gap:10px}.club-info__title{font-family:var(--font-display);font-weight:700;font-size:17px;text-transform:uppercase;letter-spacing:.5px;color:var(--black)}.club-info__text{font-size:14px;line-height:1.6;color:var(--muted-2)}.debt-card{padding:22px;display:flex;flex-direction:column;gap:6px}.debt-card--ok{background:var(--green-bg);border-color:transparent}.debt-card__label{font-family:var(--font-label);font-size:12px;letter-spacing:1.5px;color:var(--muted);text-transform:uppercase;font-weight:600}.debt-card__total{font-family:var(--font-display);font-weight:700;font-size:40px;line-height:1.1;color:var(--red)}.debt-card__ok{font-family:var(--font-display);font-weight:700;font-size:28px;line-height:1.2;color:var(--green)}.debt-card__note{font-size:13.5px;line-height:1.5;color:var(--muted-2);margin-top:4px}.debt-list{display:flex;flex-direction:column}.debt-list__head{font-family:var(--font-label);font-size:11.5px;letter-spacing:1.4px;color:var(--muted);text-transform:uppercase;font-weight:600;padding:4px 0 12px}.debt-row{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-top:1px solid var(--border-soft)}.debt-row__month{font-weight:600;font-size:15px;color:var(--black)}.debt-row__right{display:flex;align-items:center;gap:10px}.debt-row__date{font-size:12.5px;color:var(--muted);white-space:nowrap}.debt-list__empty{font-size:13.5px;color:var(--muted-2);padding:14px 0 4px;border-top:1px solid var(--border-soft)}.debt-list__more{margin-top:14px;align-self:flex-start}.month-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}.month-card{padding:20px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}.month-card--due{border-color:var(--red)}.month-card__label{font-family:var(--font-label);font-size:11.5px;letter-spacing:1.4px;color:var(--muted);text-transform:uppercase;font-weight:600}.month-card__name{font-family:var(--font-display);font-weight:700;font-size:24px;line-height:1.15;color:var(--black)}.month-card__status{margin:2px 0}.month-card__note{font-size:12.5px;line-height:1.5;color:var(--muted-2)}.oc-card--static{cursor:default}.oc-card--static:hover{border-color:var(--border);transform:none;box-shadow:none}@media (max-width: 1227px){.kpi-grid--athlete{grid-template-columns:1fr 1fr;gap:11px}.kpi-grid--athlete .kpi-card__value{font-size:28px}.kpi-grid--athlete>:last-child{grid-column:span 2}.club-info,.debt-card{padding:18px}.debt-card__total{font-size:34px}.month-pair{grid-template-columns:1fr;gap:11px}}.tabbar__icon{display:flex;align-items:center;justify-content:center;width:34px;height:26px;border-radius:9px}.tabbar__item--accent .tabbar__icon{background:var(--brand);color:var(--white)}.tabbar__item--accent{color:var(--brand);font-weight:600}.tabbar__item--accent.tabbar__item--active .tabbar__icon{box-shadow:0 0 0 3px #05627033}.tabbar--compact .tabbar__item{font-size:9px;letter-spacing:-.1px;padding:4px 1px;min-width:0}.checkin-banner{display:flex;align-items:center;gap:14px;width:100%;padding:16px 18px;text-align:left;font-family:var(--font-body)}.checkin-banner__icon{display:flex;align-items:center;justify-content:center;width:46px;height:46px;flex-shrink:0;border-radius:13px;background:#ffffff1f}.checkin-banner__text{display:flex;flex-direction:column;gap:3px;min-width:0}.checkin-banner__title{font-family:var(--font-display);font-weight:600;font-size:16px;letter-spacing:.4px;text-transform:uppercase}.checkin-banner__sub{font-size:13px;line-height:1.4;color:#ffffffb8}.checkin-banner__arrow{margin-left:auto;font-size:19px;color:#ffffffb8}.checkin-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:34px 24px;max-width:460px;margin:0 auto;width:100%}.checkin-card__icon{display:flex;align-items:center;justify-content:center;width:68px;height:68px;border-radius:20px;background:var(--bg);color:var(--black);margin-bottom:4px}.checkin-card__icon--ok{background:var(--green-bg);color:var(--green)}.checkin-card__icon--error{background:var(--red-bg);color:var(--red)}.checkin-card__title{font-family:var(--font-display);font-weight:700;font-size:20px;text-transform:uppercase;letter-spacing:.5px}.checkin-card__time{font-family:var(--font-display);font-weight:700;font-size:44px;line-height:1.05;color:var(--green)}.checkin-card__text{font-size:14px;line-height:1.6;color:var(--muted-2);max-width:34ch}.checkin-card__cta{justify-content:center;margin-top:10px;padding:14px 24px;font-size:15px;width:100%;max-width:280px}.checkin-reminder{width:100%;margin-top:6px;padding:13px 15px;border:1px solid var(--red);background:var(--red-bg);border-radius:12px;text-align:left}.checkin-reminder__title{font-family:var(--font-label);font-size:11.5px;letter-spacing:1.3px;text-transform:uppercase;font-weight:600;color:var(--red);margin-bottom:4px}.checkin-reminder__text{font-size:13.5px;line-height:1.55;color:var(--black)}.checkin-note{max-width:460px;margin:0 auto;text-align:center}.checkin-list{width:100%;max-width:460px;margin:0 auto;padding:4px 18px}.checkin-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--border-soft)}.checkin-row:last-child{border-bottom:none}.checkin-row__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.checkin-row__name{font-weight:600;font-size:14.5px;color:var(--black)}.checkin-row__meta{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.athlete-switch{display:flex;flex-wrap:wrap;gap:8px}.athlete-switch__chip{display:flex;align-items:center;gap:7px;padding:8px 15px;border-radius:20px;border:1px solid var(--border);background:var(--white);color:var(--muted-2);font-family:var(--font-body);font-weight:600;font-size:13.5px;transition:background .15s ease,border-color .15s ease,color .15s ease}.athlete-switch__chip:hover{border-color:var(--border-strong)}.athlete-switch__chip--active{background:var(--brand);border-color:var(--brand);color:var(--white)}.athlete-switch__tag{font-family:var(--font-label);font-size:10.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;padding:2px 6px;border-radius:6px;background:var(--border-soft);color:var(--muted)}.athlete-switch__chip--active .athlete-switch__tag{background:#ffffff38;color:var(--white)}.roster-claim{display:flex;align-items:center;flex-wrap:wrap;gap:16px;padding:18px 20px}.roster-claim__text{flex:1;min-width:220px;display:flex;flex-direction:column;gap:4px}.roster-claim__title{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--black)}.roster-claim__note{font-size:13.5px;line-height:1.55;color:var(--muted-2)}.roster-list{display:flex;flex-direction:column;gap:12px}.roster-card{display:flex;align-items:flex-start;gap:14px;padding:16px 18px}.roster-card__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.roster-card__name{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-weight:600;font-size:15px;color:var(--black)}.roster-card__meta{font-size:12.5px;color:var(--muted)}.roster-card__actions{display:flex;gap:8px}.icon-btn--accent{background:var(--brand);border-color:var(--brand);color:var(--white)}.icon-btn--accent:hover{background:var(--brand-deep);border-color:var(--brand-deep);color:var(--white)}.scanner{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#000;overflow:hidden}.scanner__video{width:100%;height:100%;object-fit:cover;display:block}.scanner__shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#0009,#00000026 30%,#00000026 70%,#0000008c);pointer-events:none}.scanner__bar{position:absolute;top:0;left:0;right:0;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:calc(16px + env(safe-area-inset-top)) 18px 16px;color:var(--white)}.scanner__title{font-family:var(--font-display);font-weight:700;font-size:18px;text-transform:uppercase;letter-spacing:.6px}.scanner__hint{font-size:13px;margin-top:2px;color:#fffc}.scanner__close{display:flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border:none;border-radius:50%;background:#ffffff29;color:var(--white)}.scanner__frame{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(74vw,62vh,320px);aspect-ratio:1;pointer-events:none}.scanner__corner{position:absolute;width:34px;height:34px;border:3px solid var(--mint)}.scanner__corner--tl{top:0;left:0;border-right:none;border-bottom:none;border-top-left-radius:10px}.scanner__corner--tr{top:0;right:0;border-left:none;border-bottom:none;border-top-right-radius:10px}.scanner__corner--bl{bottom:0;left:0;border-right:none;border-top:none;border-bottom-left-radius:10px}.scanner__corner--br{bottom:0;right:0;border-left:none;border-top:none;border-bottom-right-radius:10px}.scanner__beam{position:absolute;left:6px;right:6px;height:2px;border-radius:2px;background:var(--mint);box-shadow:0 0 12px #63f7c9cc;animation:scanner-beam 2.2s ease-in-out infinite}@keyframes scanner-beam{0%,to{top:6px}50%{top:calc(100% - 8px)}}@media (prefers-reduced-motion: reduce){.scanner__beam{animation:none;top:50%}}.scanner__error{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(88vw,360px);display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;color:var(--white)}.scanner__error-text{font-size:14px;line-height:1.6;color:#ffffffdb}.scanner__error-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.btn--ghost-light{background:transparent;color:var(--white);border:1px solid rgba(255,255,255,.45)}@media (max-width: 1227px){.checkin-banner{padding:14px 16px;gap:12px}.checkin-banner__icon{width:42px;height:42px}.checkin-banner__sub{font-size:12.5px}.checkin-card{padding:28px 20px}.checkin-card__time{font-size:38px}.checkin-list{padding:4px 16px}.checkin-row .btn--sm{padding:8px 11px}.roster-card{padding:14px 16px;gap:12px}}
