:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#111827;background:#f5f7fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}header{height:72px;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;padding:0 28px;gap:28px;position:sticky;top:0;z-index:20}.brand-mark{font-weight:900;letter-spacing:.08em;font-size:20px}.subtitle{font-size:12px;color:#6b7280;margin-top:-2px}nav{display:flex;gap:8px;flex:1}nav button,.ghost{border:0;background:transparent;padding:10px 14px;border-radius:10px}nav button.active{background:#111827;color:#fff}.ghost{color:#6b7280}main{max-width:1280px;margin:0 auto;padding:28px}.page-head h1{margin:0;font-size:30px}.page-head p{margin:6px 0 24px;color:#6b7280}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}.card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:18px}.card span{display:block;color:#6b7280;font-size:13px;margin-bottom:8px}.card strong{font-size:26px}.toolbar{display:flex;gap:12px;margin:16px 0}.toolbar input,.toolbar select,.modal input,.modal select,.login-card input{border:1px solid #d1d5db;background:#fff;border-radius:10px;padding:11px 12px;outline:none}.toolbar input{min-width:300px}.table-wrap{background:#fff;border:1px solid #e5e7eb;border-radius:16px;overflow:auto}table{width:100%;border-collapse:collapse;min-width:850px}th,td{text-align:left;padding:14px 16px;border-bottom:1px solid #eef0f3;white-space:nowrap}th{font-size:12px;color:#6b7280;text-transform:uppercase;letter-spacing:.04em}tbody tr:last-child td{border-bottom:0}.clickable-row:hover{background:#fafafa;cursor:pointer}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700}.badge.good{background:#dcfce7;color:#166534}.badge.bad{background:#fee2e2;color:#991b1b}.badge.warn{background:#fef3c7;color:#92400e}.badge.neutral{background:#e5e7eb;color:#374151}.small-btn{border:1px solid #d1d5db;background:#fff;border-radius:9px;padding:7px 10px}.link-btn{border:0;background:none;padding:0;font-weight:700;color:#111827}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182757;z-index:50;display:flex;align-items:center;justify-content:center}.modal{width:min(440px,calc(100vw - 28px));background:#fff;border-radius:18px;padding:20px;box-shadow:0 24px 70px #0000002e}.modal label,.login-card label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;margin:13px 0}.modal button[type=submit],.login-card button[type=submit]{width:100%;border:0;background:#111827;color:#fff;padding:12px;border-radius:10px;margin-top:10px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start}.icon-btn{border:0;background:#f3f4f6;width:34px;height:34px;border-radius:9px;font-size:22px;line-height:1}.muted{color:#6b7280;font-size:13px}.error{background:#fee2e2;color:#991b1b;padding:10px;border-radius:9px;font-size:13px}.drawer-overlay{justify-content:flex-end}.drawer{height:100%;width:min(480px,95vw);background:#fff;padding:22px;overflow:auto}.history{border:1px solid #e5e7eb;border-radius:12px;overflow:hidden}.history-item{display:flex;justify-content:space-between;gap:16px;padding:13px 14px;border-bottom:1px solid #eef0f3}.history-item:last-child{border-bottom:0}.right{text-align:right}.login-shell{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(380px,100%);background:#fff;border:1px solid #e5e7eb;border-radius:20px;padding:26px;box-shadow:0 20px 60px #0000000f}.login-card h1{margin:12px 0 4px}.login-card p{margin:0 0 16px;color:#6b7280}.loading-screen{min-height:100vh;display:grid;place-items:center;font-weight:900;letter-spacing:.12em}.loading{padding:20px 0}@media(max-width:800px){header{padding:0 14px;gap:10px}main{padding:18px 12px}.cards{grid-template-columns:1fr}.toolbar{flex-direction:column}.toolbar input{min-width:0;width:100%}nav{overflow:auto}}.cards-four{grid-template-columns:repeat(4,1fr)}.wide-drawer{width:min(640px,96vw)}.attendance-list{border:1px solid #e5e7eb;border-radius:12px;overflow:hidden}.attendance-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:13px 14px;border-bottom:1px solid #eef0f3}.attendance-row:last-child{border-bottom:0}.attendance-name{min-width:0}@media(max-width:900px){.cards-four{grid-template-columns:1fr 1fr}}@media(max-width:650px){.cards-four{grid-template-columns:1fr}.attendance-row{grid-template-columns:1fr;align-items:start}}.finance-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:8px 0 14px}.finance-head h2{margin:0 0 5px;font-size:18px}.month-picker{border:1px solid #d1d5db;background:#fff;border-radius:10px;padding:10px 12px}.cards-finance{grid-template-columns:repeat(4,1fr)}.cards-three{grid-template-columns:repeat(3,1fr)}.compact-cards .card strong{font-size:22px}.method-breakdown{display:flex;flex-direction:column;gap:4px;margin-top:4px}.method-breakdown small{color:#4b5563;font-size:13px}@media(max-width:1000px){.cards-finance{grid-template-columns:1fr 1fr}}@media(max-width:700px){.finance-head{align-items:stretch;flex-direction:column}.cards-finance,.cards-three{grid-template-columns:1fr}}.finance-grid{grid-template-columns:repeat(3,1fr)}.profit-card strong{font-size:30px}.finance-secondary{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:14px 16px;margin:-2px 0 18px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.expense-box{margin:18px 0 22px;padding:16px;border:1px solid #e5e7eb;background:#f9fafb;border-radius:14px}.expense-title{margin-bottom:12px}.expense-fields{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:10px}.expense-fields label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600}.expense-fields input{width:100%;border:1px solid #d1d5db;background:#fff;border-radius:10px;padding:10px 11px}.expense-save{height:42px}.expense-message{margin-top:9px;font-size:13px;color:#4b5563}@media(max-width:900px){.finance-grid,.expense-fields{grid-template-columns:1fr 1fr}.expense-save{grid-column:1 / -1}}@media(max-width:600px){.finance-grid,.expense-fields{grid-template-columns:1fr}.expense-save{grid-column:auto}}.badge.exempt{background:#e0f2fe;color:#075985}.payment-rules{display:flex;flex-direction:column;gap:10px;margin-bottom:22px}.payment-rule-row{border:1px solid #e5e7eb;border-radius:12px;padding:13px;background:#f9fafb}.payment-rule-main{display:grid;grid-template-columns:120px minmax(160px,1fr) minmax(130px,160px);align-items:center;gap:10px}.payment-rule-main select{border:1px solid #d1d5db;background:#fff;border-radius:9px;padding:8px 10px}.switch-row{display:flex;align-items:center;gap:8px;font-size:13px}.switch-row input{width:17px;height:17px}.payment-rule-actions{display:flex;gap:8px;margin-top:10px}.payment-rule-message{margin-top:8px}@media(max-width:600px){.payment-rule-main{grid-template-columns:1fr}}.payment-rule-title{margin-bottom:10px;font-size:15px}.payment-rule-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.payment-rule-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#4b5563}.payment-rule-grid select{width:100%;border:1px solid #d1d5db;background:#fff;color:#111827;border-radius:9px;padding:9px 10px}.payment-rule-grid select:disabled{background:#f3f4f6;color:#9ca3af}.primary-small{background:#111827;color:#fff;border-color:#111827}@media(max-width:760px){.payment-rule-grid{grid-template-columns:1fr}}.payment-rule-single{padding:15px}.payment-rule-grid-single{grid-template-columns:repeat(3,minmax(0,1fr))}.payment-rule-note{margin-top:10px;line-height:1.4}@media(max-width:760px){.payment-rule-grid-single{grid-template-columns:1fr}}.badge.pending-sub{background:#fef3c7;color:#92400e}.badge.pending-exempt{background:#e0f2fe;color:#075985}.payment-processing-box{margin:0 0 22px;padding:14px 16px;border:1px solid #e5e7eb;border-radius:14px;background:#fff;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}.processing-message{grid-column:1 / -1}@media(max-width:650px){.payment-processing-box{grid-template-columns:1fr}.processing-message{grid-column:auto}}.payment-rule-stack{display:flex;flex-direction:column;gap:12px}.payment-rule-grid-dates{grid-template-columns:repeat(3,minmax(0,1fr))}.payment-rule-grid-dates label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#4b5563}.payment-rule-grid-dates input,.payment-rule-grid-dates select{width:100%;border:1px solid #d1d5db;background:#fff;color:#111827;border-radius:9px;padding:9px 10px}.field-hint{font-size:11px;font-weight:400;color:#9ca3af}.rule-history{border:1px solid #e5e7eb;border-radius:12px;overflow:hidden}.rule-history-title{padding:11px 13px;background:#f9fafb;border-bottom:1px solid #e5e7eb;font-size:13px;font-weight:800}.rule-history-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 13px;border-bottom:1px solid #eef0f3}.rule-history-item:last-child{border-bottom:0}.save-confirmation{margin-top:10px;padding:10px 12px;border-radius:10px;background:#dcfce7;color:#166534;font-size:13px;font-weight:700}.error-inline{margin-top:10px;padding:10px 12px;border-radius:10px;background:#fee2e2;color:#991b1b;font-size:13px;font-weight:600}.payment-start-editor{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:6px;margin-top:7px}.payment-start-editor input{border:1px solid #d1d5db;border-radius:7px;padding:5px 7px;font-size:12px}.mini-action{border:1px solid #d1d5db;background:#fff;border-radius:7px;padding:5px 7px;font-size:12px}.saved-check{color:#166534;font-weight:800}.inline-error{color:#991b1b;font-size:11px;max-width:220px}.payment-history-right{min-width:270px}@media(max-width:820px){.payment-rule-grid-dates{grid-template-columns:1fr 1fr}}@media(max-width:600px){.payment-rule-grid-dates{grid-template-columns:1fr}.rule-history-item{align-items:flex-start;flex-direction:column}.payment-history-right{min-width:0}}.payment-start-editor-wrap{margin-top:7px}.payment-start-hint{margin-top:5px;color:#6b7280;font-size:11px;line-height:1.35;text-align:right}.compact-confirmation{margin-top:7px;padding:7px 9px;font-size:11px;text-align:left}.form-hint{margin-top:-4px;margin-bottom:8px;color:#6b7280;font-size:12px;line-height:1.35}.payment-rule-note{margin-top:10px;padding:9px 11px;border-radius:9px;background:#fef3c7;color:#92400e;font-size:12px}.rule-history-empty{padding:12px 13px}.toolbar-count{align-self:center;color:#6b7280;font-size:13px;white-space:nowrap}.empty-table{padding:28px 18px!important;text-align:center;color:#6b7280}.profile-stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:22px}.profile-stat-card{border:1px solid #e5e7eb;border-radius:12px;background:#f9fafb;padding:13px}.profile-stat-card span{display:block;color:#6b7280;font-size:12px;margin-bottom:6px}.profile-stat-card strong{font-size:21px}.profile-stat-card.money{background:#fff}.active-subscriptions{display:flex;flex-direction:column;gap:10px;margin-bottom:22px}.subscription-card{border:1px solid #e5e7eb;border-radius:13px;padding:14px;background:#fff}.subscription-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.subscription-progress-text{margin-top:9px;color:#4b5563;font-size:13px}.empty-section{padding:14px}.debt-text{color:#991b1b;font-weight:700}@media(max-width:720px){.profile-stats-grid{grid-template-columns:1fr 1fr}}@media(max-width:480px){.profile-stats-grid{grid-template-columns:1fr}}.training-processing-summary{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:4px 0 16px}.training-toolbar{flex-wrap:wrap;align-items:center}.training-date-input{min-width:0!important;width:148px}.toolbar-check{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 11px;border:1px solid #d1d5db;border-radius:10px;background:#fff;font-size:13px;font-weight:600;color:#374151;-webkit-user-select:none;user-select:none}.toolbar-check input{width:16px;height:16px;min-width:16px;margin:0;accent-color:#111827}.trainings-table{min-width:1320px}.money-cell{font-variant-numeric:tabular-nums}.money-total{font-weight:800}.training-revenue-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}.training-revenue-summary>div{background:#fff;border:1px solid #e5e7eb;border-radius:13px;padding:13px 15px}.training-revenue-summary span,.training-drawer-revenue span{display:block;color:#6b7280;font-size:12px;margin-bottom:5px}.training-revenue-summary strong,.training-drawer-revenue strong{font-size:20px}.training-revenue-total{background:#f9fafb!important}.training-revenue-debt strong{color:#991b1b}.training-revenue-note{margin-top:8px;color:#6b7280;font-size:12px;line-height:1.45}.training-drawer-revenue{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:0 0 16px}.training-drawer-revenue>div{border:1px solid #e5e7eb;border-radius:11px;padding:11px 12px;background:#f9fafb}.training-drawer-revenue strong{font-size:17px}@media(max-width:900px){.training-revenue-summary{grid-template-columns:1fr 1fr}}@media(max-width:650px){.training-date-input,.toolbar-check{width:100%}.training-revenue-summary,.training-drawer-revenue{grid-template-columns:1fr}}@media(max-width:720px){html,body,#root{max-width:100%;overflow-x:hidden}body{background:#f5f7fb}header{height:auto;min-height:0;padding:10px 12px 8px;gap:8px 10px;display:grid;grid-template-columns:1fr auto;grid-template-areas:"brand logout" "nav nav";align-items:center}header>div:first-child{grid-area:brand}header>nav{grid-area:nav}header>.ghost{grid-area:logout}.brand-mark{font-size:18px}.subtitle{font-size:11px}nav{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;overflow:visible}nav button,.ghost{min-height:42px;padding:9px 10px}nav button{font-size:13px}header>.ghost{border:1px solid #e5e7eb;background:#fff}main{padding:14px 10px 24px}.page-head h1{font-size:24px}.page-head p{margin:4px 0 16px;font-size:13px;line-height:1.4}.toolbar,.training-toolbar{gap:8px;margin:12px 0;display:grid;grid-template-columns:1fr}.toolbar input,.toolbar select,.training-toolbar input,.training-toolbar select,.month-picker{width:100%;min-width:0;min-height:44px;font-size:16px}.toolbar-check{width:100%;min-height:44px;justify-content:flex-start}.toolbar-count{width:100%;padding:2px 2px 0}button,.small-btn,.mini-action,.primary-small,.icon-btn{min-height:42px}.small-btn{padding:9px 12px}.link-btn{min-height:0;text-align:left;white-space:normal}.table-wrap{border:0;border-radius:0;background:transparent;overflow:visible}.table-wrap table,.trainings-table{width:100%;min-width:0;display:block}.table-wrap thead{display:none}.table-wrap tbody{display:flex;flex-direction:column;gap:10px}.table-wrap tr{display:block;background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:8px 12px;overflow:hidden}.table-wrap td{width:100%;min-height:38px;padding:8px 0;border-bottom:1px solid #eef0f3;display:flex;align-items:center;justify-content:space-between;gap:14px;white-space:normal;text-align:right}.table-wrap td:last-child{border-bottom:0}.table-wrap td:before{flex:0 0 43%;text-align:left;color:#6b7280;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.table-wrap table:not(.trainings-table) td:nth-child(1):before{content:"Учасник"}.table-wrap table:not(.trainings-table) td:nth-child(2):before{content:"Група"}.table-wrap table:not(.trainings-table) td:nth-child(3):before{content:"Абонемент"}.table-wrap table:not(.trainings-table) td:nth-child(4):before{content:"Борг"}.table-wrap table:not(.trainings-table) td:nth-child(5):before{content:"Статус"}.table-wrap table:not(.trainings-table) td:nth-child(6):before{content:"Дія"}.trainings-table td:nth-child(1):before{content:"Дата"}.trainings-table td:nth-child(2):before{content:"Група"}.trainings-table td:nth-child(3):before{content:"Статус"}.trainings-table td:nth-child(4):before{content:"Присутні"}.trainings-table td:nth-child(5):before{content:"Разове"}.trainings-table td:nth-child(6):before{content:"Абонемент"}.trainings-table td:nth-child(7):before{content:"Не оплачено"}.trainings-table td:nth-child(8):before{content:"Не потребує оплати"}.trainings-table td:nth-child(9):before{content:"Готівка"}.trainings-table td:nth-child(10):before{content:"Онлайн"}.trainings-table td:nth-child(11):before{content:"Разом"}.trainings-table td:nth-child(12):before{content:"Зал"}.trainings-table td:nth-child(13):before{content:"Тренер"}.table-wrap td.empty-table{display:block;text-align:center;border:0;padding:22px 10px!important}.table-wrap td.empty-table:before{content:none!important}.badge{white-space:normal;text-align:center;justify-content:center}.cards,.cards-four,.cards-finance,.cards-three,.finance-grid,.training-revenue-summary,.training-drawer-revenue{grid-template-columns:1fr;gap:9px}.card{padding:15px}.card strong{font-size:22px}.profit-card strong{font-size:25px}.finance-secondary{display:grid;grid-template-columns:1fr;gap:9px}.overlay{align-items:flex-end;padding-top:max(8px,env(safe-area-inset-top))}.modal{width:100%;max-width:none;max-height:92dvh;overflow:auto;border-radius:18px 18px 0 0;padding:16px 14px calc(16px + env(safe-area-inset-bottom))}.drawer-overlay{align-items:stretch;justify-content:flex-end;padding:0}.drawer,.wide-drawer{width:100vw;max-width:none;height:100dvh;padding:14px 12px calc(18px + env(safe-area-inset-bottom))}.modal input,.modal select,.login-card input,.expense-fields input,.payment-rule-grid-dates input,.payment-rule-grid-dates select,.payment-rule-grid select{font-size:16px;min-height:44px}.attendance-row{grid-template-columns:1fr;gap:8px;padding:12px}.attendance-row>div:last-child .small-btn{width:100%}.history-item,.rule-history-item,.subscription-card-head{flex-direction:column;align-items:flex-start}.right,.payment-history-right{width:100%;min-width:0;text-align:left}.payment-start-editor{justify-content:flex-start}.payment-start-hint{text-align:left}.login-shell{padding:12px}.login-card{padding:22px 16px}}@media(max-width:390px){nav button{font-size:12px;padding:8px 6px}.table-wrap td:before{flex-basis:46%}.badge{font-size:11px}}
