:root{--brand: #1f2933;--brand-deep: #161c22;--brand-deeper: #10151a;--brand-line: #3b4652;--brand-soft: #e8ebee;--brand-rgb: 31, 41, 51;--accent: #4f7cac;--accent-ink: #2e5378;--accent-light: #b9cde3;--accent-soft: #e9f0f7;--accent-rgb: 79, 124, 172;--highlight: #8fd3ff;--highlight-rgb: 143, 211, 255;--chip-bg: var(--accent-soft);--chip-ink: var(--accent-ink);--black: #151a1f;--ink-rgb: 21, 26, 31;--white: #ffffff;--bg: #f3f4f6;--surface-2: #f8f9fa;--border: #dde1e5;--border-soft: #eaedf0;--border-strong: #c6ccd2;--muted: #5c6670;--muted-2: #4b545d;--icon-muted: #b8c0c8;--on-dark-muted: #b5bec7;--sidebar-inactive: #aab4be;--success: #067352;--success-bg: #ddf8ee;--danger: #b42318;--danger-bg: #fdeceb;--danger-rgb: 180, 35, 24;--bar-muted: #d5dade;--shadow-color: 22, 28, 34;--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;--demobar-h: 0px}*{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:var(--border-strong);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(--danger);display:flex;align-items:center;gap:14px}.state-msg--ok{color:var(--success);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;position:sticky;top:var(--demobar-h);height:calc(100vh - var(--demobar-h));overflow-y:auto}.logo-mark{border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--font-display);font-weight:700;letter-spacing:.5px}.logo-mark--image{border:1px solid var(--border-soft)}.logo-mark--image img{display:block;object-fit:contain}.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}.logo-demo{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.logo-demo__name{font-family:var(--font-label, "Oswald", sans-serif);font-weight:700;letter-spacing:.5px;text-transform:uppercase;line-height:1.15;font-size:18px;color:var(--brand)}.logo-demo__name--sm{font-size:15px;letter-spacing:.3px}.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:var(--on-dark-muted);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:var(--brand-deeper);border:1px solid var(--brand-line);border-radius:14px;padding:16px;display:block;width:100%;text-align:left;color:inherit;font:inherit;transition:border-color .15s ease}.sidebar__qr-box:hover{border-color:var(--highlight)}.sidebar__qr-open{color:var(--highlight);font-weight:600}.sidebar__qr-label{font-family:var(--font-label);font-size:11px;letter-spacing:2px;color:var(--highlight);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:var(--on-dark-muted);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(--danger);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:var(--on-dark-muted)}.kpi-card__icon{color:var(--icon-muted)}.kpi-card__icon--dark{color:var(--highlight)}.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(--danger)}.kpi-card__delta{font-size:12.5px;margin-top:6px;font-weight:600;color:var(--muted)}.kpi-card__delta--up{color:var(--success)}.kpi-card__delta--muted{color:var(--muted)}.kpi-card__delta--muted-dark{color:var(--sidebar-inactive)}.kpi-card__icon--debt{color:var(--danger)}.kpi-card__delta--debt-link{color:var(--danger);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(--accent);box-shadow:0 12px 30px -14px rgba(var(--accent-rgb),.45)}.card--dark.kpi-card--active-dark{box-shadow:0 12px 30px -12px rgba(var(--shadow-color),.55),inset 0 0 0 1.5px var(--highlight)}.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(--danger)}.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(--danger)}.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(--success-bg);color:var(--success)}.pill--debt{background:var(--danger-bg);color:var(--danger)}.pill--muted{background:var(--border-soft);color:var(--muted-2)}.pill--inline{display:inline-flex;vertical-align:middle;margin-inline-start:8px}.live-badge{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--success);font-weight:600}.live-badge__dot{width:7px;height:7px;border-radius:50%;background:var(--success)}.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(--danger)}.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(--danger)}.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__row--prereg{border-top-color:var(--border-strong);background:var(--white);border-radius:8px;padding-inline:8px}.paytl__row--prereg .paytl__month{color:var(--brand)}.paytl__now--prereg{color:var(--brand);border-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:var(--surface-2);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(--danger-bg);border-color:var(--danger);color:var(--danger)}.icon-btn:disabled{opacity:.4;cursor:default}.icon-btn:disabled:hover{background:var(--surface-2);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(--chip-bg);color:var(--chip-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}.dept-card,.oc-card{cursor:pointer;transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease}.dept-card:hover,.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-daybar{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-bottom:16px}.datepicker{position:relative}.datepicker__trigger{display:inline-flex;align-items:center;gap:8px;width:auto;min-width:118px;cursor:pointer}.datepicker__value{font-variant-numeric:tabular-nums}.datepicker__caret{margin-left:auto;color:var(--muted);font-size:11px}.datepicker__pop{position:absolute;top:calc(100% + 6px);right:0;z-index:50;width:264px;padding:12px}.datepicker__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.datepicker__month{font-weight:600;font-size:14px;color:var(--black)}.datepicker__nav{border:none;background:transparent;font-size:18px;line-height:1;cursor:pointer;padding:4px 12px;border-radius:8px;color:var(--black)}.datepicker__nav:hover{background:var(--bg)}.datepicker__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.datepicker__grid--head{margin-bottom:4px}.datepicker__wd{text-align:center;font-size:11px;font-weight:600;color:var(--muted);padding:4px 0}.datepicker__day{border:none;background:transparent;border-radius:8px;padding:8px 0;font-size:13px;cursor:pointer;color:var(--black)}.datepicker__day:hover:not(:disabled){background:var(--bg)}.datepicker__day--sel{background:var(--brand);color:#fff}.datepicker__day:disabled{color:var(--border-strong);cursor:default}.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(--danger);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:rgba(var(--ink-rgb),.5);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);border:none;width:100%;text-align:left;color:inherit;font:inherit}.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:rgba(var(--ink-rgb),.5);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(--danger)}.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 rgba(var(--brand-rgb),.13)}.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:var(--surface-2)}.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(--danger);font-weight:600}.form__error{margin:0 24px;padding:11px 14px;border-radius:10px;background:var(--danger-bg);color:var(--danger);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:var(--surface-2)}.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-reset__intro{padding:4px 24px 0}.auth-reset__title{margin:0 0 6px;font-family:var(--font-label);font-size:13px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase;color:var(--black)}.auth-link{align-self:flex-start;padding:0;border:none;background:none;font-size:13px;font-weight:600;color:var(--brand);text-decoration:underline;cursor:pointer}.auth-link:hover{color:var(--black)}.auth-reset__sent{margin:0 24px;padding:12px 14px;border-radius:10px;background:var(--success-bg);color:var(--success);font-size:13.5px;line-height:1.55}.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:var(--on-dark-muted)}.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(--success)}.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(--success-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(--danger)}.debt-card__ok{font-family:var(--font-display);font-weight:700;font-size:28px;line-height:1.2;color:var(--success)}.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(--danger)}.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 rgba(var(--brand-rgb),.2)}.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(--success-bg);color:var(--success)}.checkin-card__icon--error{background:var(--danger-bg);color:var(--danger)}.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(--success)}.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(--danger);background:var(--danger-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(--danger);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(--highlight)}.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(--highlight);box-shadow:0 0 12px rgba(var(--highlight-rgb),.8);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}}.welcome{padding:4px 22px 22px}.welcome p{margin:0 0 12px;font-size:14px;line-height:1.65;color:var(--muted-2);text-align:justify}.welcome__lead{font-size:16px;font-weight:700;color:var(--brand)}.welcome__q{font-weight:700;color:var(--brand)}.welcome .btn{margin-top:6px;text-align:left}.athlete-home{text-align:justify}.export-modal{padding:4px 22px 22px}.export-modal .form__hint{margin:0 0 14px}.export-modal .field{margin-bottom:12px}.export-modal .btn{margin-top:6px}.brand-seal__credit{font-size:12px;color:var(--muted)}.brand-seal__credit strong{color:var(--muted-2)}.table__sub--debt{color:var(--danger);font-weight:600;margin-top:4px}.kpi-grid--athlete-2{grid-template-columns:repeat(2,1fr)}.kpi-grid--athlete-2>:last-child{grid-column:auto}.kpi-grid--athlete-1{grid-template-columns:1fr}.kpi-grid--athlete-1>:last-child{grid-column:1 / -1}body.has-demobar{--demobar-h: 44px;padding-top:var(--demobar-h)}body.has-demobar .app,body.has-demobar .role-gate,body.has-demobar .auth-splash{min-height:calc(100vh - var(--demobar-h))}.demobar{position:fixed;top:0;left:0;right:0;height:var(--demobar-h);z-index:40;display:flex;align-items:center;gap:10px;padding:0 12px;background:#222324;color:#fff;font-family:var(--font-body);border-bottom:1px solid rgba(255,255,255,.08)}.demobar__badge{font-family:var(--font-label);font-weight:700;font-size:11px;letter-spacing:1.5px;padding:3px 8px;border-radius:6px;background:var(--highlight);color:#121417;flex-shrink:0}.demobar__club{font-family:var(--font-label);font-weight:700;font-size:13px;letter-spacing:.4px;color:#ffffffb8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.demobar__roles{display:flex;gap:3px;margin:0 auto;padding:3px;border-radius:10px;background:#ffffff0f}.demobar__role{display:flex;align-items:center;gap:6px;border:none;background:transparent;color:#ffffffb8;font-size:13px;font-weight:600;padding:5px 11px;border-radius:8px;white-space:nowrap}.demobar__role:hover{color:#fff;background:#ffffff14}.demobar__role--active,.demobar__role--active:hover{background:#fff;color:#121417}.demobar__picker{display:none;position:relative;margin:0 auto}.demobar__menu{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);min-width:200px;display:flex;flex-direction:column;padding:6px;border-radius:12px;background:#fff;box-shadow:0 14px 34px #00000047}.demobar__menu-item{display:flex;align-items:center;gap:10px;border:none;background:transparent;padding:11px 12px;border-radius:8px;font-size:14px;font-weight:600;color:#121417;text-align:left}.demobar__menu-item--active{background:#eef0f2}.demobar__actions{display:flex;gap:6px;flex-shrink:0}.demobar__action{display:flex;align-items:center;gap:6px;border:1px solid rgba(255,255,255,.16);background:transparent;color:#ffffffd9;font-size:12.5px;font-weight:600;padding:5px 10px;border-radius:8px;white-space:nowrap}.demobar__action:hover,.demobar__action--active{background:#ffffff1a;color:#fff}.demobar__count{font-family:var(--font-label);font-size:11px;padding:1px 6px;border-radius:6px;background:#ffffff24}@media (max-width: 960px){.demobar__club,.demobar__action-label{display:none}}@media (max-width: 720px){.demobar__roles,.demobar__action--desktop{display:none}.demobar__picker{display:block}}.demo-entry{min-height:100vh;display:flex;justify-content:center;padding:48px 20px;background:var(--bg)}.demo-entry__inner{width:100%;max-width:1100px;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}.demo-entry__brand{padding:18px 28px;border:1px solid var(--border);border-radius:20px;background:var(--white)}.demo-entry__title{max-width:780px;margin-top:10px;font-family:var(--font-display);font-weight:800;font-size:42px;line-height:1.04;letter-spacing:.2px;text-transform:uppercase;color:var(--black)}.demo-entry__lead{max-width:640px;font-size:16px;line-height:1.55;color:var(--muted-2)}.demo-entry__roles{width:100%;margin-top:18px;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.demo-entry__roles--3{grid-template-columns:repeat(3,1fr)}.demo-entry__roles--2{grid-template-columns:repeat(2,1fr);max-width:720px}.demo-role{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:22px 20px;text-align:left;font:inherit;color:inherit;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.demo-role:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:0 16px 36px -18px rgba(var(--shadow-color),.45)}.demo-role__icon{width:46px;height:46px;margin-bottom:4px;display:flex;align-items:center;justify-content:center;border-radius:13px;background:var(--brand);color:var(--white)}.demo-role__title{font-family:var(--font-display);font-weight:700;font-size:23px;letter-spacing:.4px;text-transform:uppercase;color:var(--black)}.demo-role__persona{font-size:13px;font-weight:600;color:var(--muted)}.demo-role__list{list-style:none;display:flex;flex-direction:column;gap:6px;margin:6px 0 4px;font-size:13.5px;line-height:1.4;color:var(--muted-2)}.demo-role__list li{position:relative;padding-left:18px}.demo-role__list li:before{content:"→";position:absolute;left:0;font-weight:700;color:var(--accent)}.demo-role__cta{margin-top:auto;padding-top:6px;font-size:14px;font-weight:700;color:var(--brand)}.demo-entry__foot{margin-top:18px;font-size:12.5px;color:var(--muted)}@media (max-width: 1000px){.demo-entry__roles,.demo-entry__roles--3{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.demo-entry{padding:28px 16px}.demo-entry__title{font-size:29px}.demo-entry__lead{font-size:14.5px}.demo-entry__roles,.demo-entry__roles--3,.demo-entry__roles--2{grid-template-columns:1fr}.demo-role{padding:18px}}.guide{position:fixed;right:20px;bottom:20px;z-index:45;width:350px;max-height:calc(100vh - var(--demobar-h) - 40px);overflow-y:auto;padding:14px 16px;border:1px solid var(--border);border-radius:16px;background:var(--white);box-shadow:0 18px 50px -12px rgba(var(--ink-rgb),.35);animation:panel-in .25s ease}.guide__head{display:flex;align-items:center;gap:10px}.guide__icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:10px;background:var(--brand);color:var(--white)}.guide__titles{flex:1;min-width:0}.guide__title{font-family:var(--font-display);font-weight:700;font-size:16px;letter-spacing:.4px;text-transform:uppercase}.guide__sub{font-size:12px;color:var(--muted)}.guide__close{display:flex;padding:4px;border:none;border-radius:8px;background:transparent;color:var(--muted)}.guide__close:hover{background:var(--bg);color:var(--black)}.guide__progress{height:5px;margin:10px 0 4px}.guide__progress .progress__fill{background:var(--success);transition:width .3s ease}.guide__list{list-style:none;display:flex;flex-direction:column}.guide__task{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid var(--border-soft)}.guide__task:last-child{border-bottom:none}.guide__check{width:20px;height:20px;margin-top:1px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--success)}.guide__dot{width:14px;height:14px;border:2px solid var(--border-strong);border-radius:50%}.guide__text{flex:1;min-width:0}.guide__task-title{font-size:13.5px;font-weight:600;color:var(--black)}.guide__task--done .guide__task-title{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--border-strong)}.guide__hint{margin-top:2px;font-size:12px;line-height:1.45;color:var(--muted)}.guide__go{flex-shrink:0;padding:6px 9px;border:none;border-radius:8px;background:var(--brand-soft);color:var(--brand);font-size:12px;font-weight:700;white-space:nowrap}.guide__go:hover{background:var(--brand);color:var(--white)}.guide__foot{margin-top:8px;padding-top:8px;border-top:1px solid var(--border-soft);font-size:12px;line-height:1.45;color:var(--muted)}@media (max-width: 1227px){.guide{left:12px;right:12px;width:auto;bottom:calc(78px + env(safe-area-inset-bottom));max-height:46vh}}.scanner__footer{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 18px calc(28px + env(safe-area-inset-bottom))}.scanner__footer-hint{font-size:13px;color:#ffffffd1}.btn.scanner__simulate{justify-content:center;padding:13px 22px;font-size:15px;background:var(--highlight);color:#121417}.btn.scanner__simulate:hover:not(:disabled){background:#fff}.checkin-preset{padding:0}.entrance-qr{display:flex;flex-direction:column;align-items:center;gap:12px;padding:18px 24px 4px;text-align:center}.entrance-qr__code{padding:10px;border:1px solid var(--border);border-radius:14px;background:#fff;line-height:0}.entrance-qr__code svg{width:220px;height:220px}.entrance-qr__token{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:14px;font-weight:600;letter-spacing:1px;color:var(--muted-2)}.entrance-qr .form__hint{text-align:left}.entrance-qr__actions{align-self:stretch;padding:8px 0 18px}.event-rows{display:flex;flex-direction:column;gap:10px}.event-row{display:flex;align-items:center;gap:12px;width:100%;padding:9px 12px;border:1px solid var(--border-soft);border-radius:12px;background:transparent;font:inherit;color:inherit;text-align:left;transition:background .15s ease}.event-row:hover{background:var(--bg)}.event-row__date{width:44px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;padding:5px 0;border-radius:10px;background:var(--brand-soft);color:var(--brand)}.event-row__day{font-family:var(--font-display);font-weight:800;font-size:19px;line-height:1}.event-row__month{font-family:var(--font-label);font-size:10.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.event-row__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.event-row__title{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-row__meta{font-size:12px;color:var(--muted)}.event-row__count{flex-shrink:0;font-family:var(--font-display);font-weight:700;font-size:14px;color:var(--muted-2)}.event-row__cta{flex-shrink:0;font-size:12.5px;font-weight:700;color:var(--brand)}.event-card__meta{display:flex;flex-direction:column;gap:10px}.event-card__line{display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;color:var(--muted-2)}.chip--muted{background:var(--border-soft);color:var(--muted-2)}.event-athletes{display:flex;flex-direction:column;padding-top:6px;border-top:1px solid var(--border-soft)}.event-athlete{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--border-soft)}.event-athlete:last-child{border-bottom:none}.event-athlete__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.event-athlete__name{font-size:14px;font-weight:600}.event-athlete__meta{font-size:12px;color:var(--muted)}.events-past-toggle{align-self:flex-start}.segmented{display:flex;gap:4px;padding:4px;border-radius:var(--radius-btn);background:var(--bg)}.segmented__option{flex:1;padding:8px 10px;border:none;border-radius:8px;background:transparent;font-size:13px;font-weight:600;color:var(--muted)}.segmented__option--active{background:var(--white);color:var(--brand);box-shadow:0 1px 3px rgba(var(--ink-rgb),.12)}.check-list{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}.check-list__item{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);font-size:13.5px;font-weight:600;cursor:pointer}.check-list__item input{width:16px;height:16px;accent-color:var(--brand)}.booking-list__meta{font-size:12px;color:var(--muted);white-space:nowrap}@media (max-width: 640px){.check-list{grid-template-columns:1fr}}.tabs{align-self:flex-start;display:flex;gap:4px;padding:4px;border:1px solid var(--border);border-radius:12px;background:var(--white)}.tabs__tab{padding:8px 16px;border:none;border-radius:9px;background:transparent;font-size:14px;font-weight:600;color:var(--muted)}.tabs__tab--active{background:var(--brand);color:var(--white)}.automation-row{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--border-soft)}.automation-row:last-child{border-bottom:none}.automation-row__text{flex:1;min-width:0}.automation-row__title{margin-bottom:3px;font-size:14.5px;font-weight:700}.automation-row__meta{font-size:12.5px;line-height:1.5;color:var(--muted-2)}.automation-row__meta strong{font-weight:600;color:var(--black)}.automation-row__actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.switch{position:relative;width:44px;height:26px;flex-shrink:0;border:none;border-radius:13px;background:var(--border-strong);transition:background .18s ease}.switch__knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .18s ease}.switch--on{background:var(--success)}.switch--on .switch__knob{transform:translate(18px)}.email-log .list-row__left{align-items:flex-start}.email-log__when{width:92px;flex-shrink:0;padding-top:2px;font-family:var(--font-label);font-size:12px;font-weight:600;color:var(--muted)}.modal--wide{max-width:720px}.email-preview{display:flex;flex-direction:column;gap:12px;min-height:0;overflow:auto;padding:16px 20px 20px}.email-preview__head{display:flex;flex-direction:column;gap:4px;font-size:13px}.email-preview__head>div{display:flex;gap:8px}.email-preview__label{width:48px;flex-shrink:0;padding-top:1px;font-family:var(--font-label);font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted)}.email-preview__value{font-weight:600}.email-preview__frame{width:100%;height:560px;max-height:62vh;border:1px solid var(--border);border-radius:12px;background:#eef2f2}@media (max-width: 640px){.automation-row{flex-direction:column;align-items:stretch;gap:10px}.automation-row__actions{justify-content:space-between}.tabs{align-self:stretch}.tabs__tab{flex:1;padding:9px 8px}.email-log__when{width:70px}}.config-errors{max-width:640px;align-items:stretch;text-align:left}.config-errors__list{display:flex;flex-direction:column;gap:4px;padding-left:18px;font-size:13px;line-height:1.5;color:var(--danger)}.list-row--more{width:100%;border:none;background:transparent;font:inherit;text-align:left;cursor:pointer}.table__row>span>.pill,.table__cell>.pill{width:fit-content}.paytl__status>.pill{width:fit-content}.datepicker__trigger.select{background-image:none;padding-right:14px}.grid-main>*,.home-side>*,.dept-grid>*,.oc-grid>*,.kpi-grid>*{min-width:0}@media (max-width: 640px){.dept-card__head,.oc-card__head{flex-wrap:wrap}.dept-card__head>:first-child,.oc-card__head>:first-child{flex:1 1 150px;min-width:0}}a.btn{text-decoration:none}
