:root{--bg: #071218;--text: #e8edf0;--muted: #a7b3b8;--gold: #d7b982;--gold-strong: #f0d9a2;--line: rgba(224, 202, 154, .32);--panel: rgba(5, 14, 18, .54);--accent: #7fb2b8;--danger: #e85d5d;--success: #58d68d;--radius-lg: 22px;--radius-md: 14px}*,*:before,*:after{box-sizing:border-box}html{height:100%}body{margin:0;min-height:100vh;color:var(--text);background:var(--bg);font-family:Inter,Segoe UI,system-ui,sans-serif;font-size:15px;line-height:1.5}body.admin-shell{position:relative}#root{min-height:100vh}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.admin-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(circle at 50% 12%,#66979e2e,#06101500 40%),linear-gradient(180deg,#02080c4d,#061015f2)}.admin-bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 8% 30%,rgba(255,171,83,.12),transparent 22%),radial-gradient(circle at 88% 20%,rgba(127,178,184,.1),transparent 18%);mix-blend-mode:screen}.admin-wrap{position:relative;z-index:1;width:min(1320px,calc(100% - 28px));margin:0 auto;padding:24px 0 48px}.admin-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--line)}.brand .eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0 0 8px;color:var(--gold-strong);font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.brand .eyebrow:before{content:"";width:28px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}.brand h1{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(26px,4vw,38px);font-weight:700;color:#f4e5c2;letter-spacing:.02em;text-shadow:0 3px 18px rgba(0,0,0,.6)}.header-actions{display:flex;flex-wrap:wrap;gap:10px}.tab-strip{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.tab-btn{display:inline-flex;align-items:center;padding:10px 16px;border-radius:999px;border:1px solid rgba(215,185,130,.22);background:#ffffff0a;color:var(--muted);font-size:13px;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:background .2s,color .2s,border-color .2s}.tab-btn:hover{color:var(--gold-strong);border-color:#d7b98273}.tab-btn.active{color:#081016;background:linear-gradient(135deg,#f5e0ad,#c49a52);border-color:transparent;box-shadow:0 8px 24px #b98b4238}.btn-main,.btn-secondary,.btn-danger{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:var(--radius-md);font-size:13px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;border:none;transition:transform .18s ease,box-shadow .18s ease;font-family:inherit}.btn-main{color:#081016;background:linear-gradient(135deg,#f5e0ad,#b98b42);box-shadow:0 10px 28px #b98b4247}.btn-secondary{color:#e9d6a9;border:1px solid rgba(215,185,130,.38);background:#ffffff0d}.btn-danger{background:linear-gradient(135deg,#c94a4a,#8b2e2e);color:#fff;box-shadow:0 10px 28px #c8464640}.btn-main:hover,.btn-secondary:hover,.btn-danger:hover{transform:translateY(-1px)}.muted{margin:0 0 16px;color:var(--muted);font-size:14px;line-height:1.6}.section-intro{margin-bottom:28px}.page-heading{margin:0 0 16px;font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.card{border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(180deg,#0b1c22b8,#050e129e);box-shadow:0 18px 56px #00000059,inset 0 1px #ffffff0f;-webkit-backdrop-filter:blur(12px) saturate(1.15);backdrop-filter:blur(12px) saturate(1.15);padding:22px 24px;margin-bottom:18px}.card h2{margin:0 0 14px;font-family:Georgia,Times New Roman,serif;font-size:20px;color:#f4e5c2}.card h3{margin:0 0 12px;font-size:15px;font-weight:700;color:var(--gold-strong)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;margin-bottom:28px}.stats-grid .card{margin-bottom:0}.stat-metric{font-size:clamp(28px,4vw,36px);font-weight:800;color:var(--gold-strong);letter-spacing:-.02em;margin:8px 0 4px;font-variant-numeric:tabular-nums}.stat-label{color:var(--muted);font-size:13px;font-weight:600;letter-spacing:.03em}.data-table{width:100%;border-collapse:collapse;font-size:14px;margin-top:4px}.data-table th,.data-table td{border:1px solid rgba(215,185,130,.15);padding:10px 12px;text-align:left}.data-table th{background:#08161cd9;color:var(--gold-strong);font-weight:700;font-size:12px;letter-spacing:.04em;text-transform:uppercase}.data-table td{color:var(--text);background:#040c0f59}.data-table td.num{text-align:right;font-variant-numeric:tabular-nums}.data-table tr:nth-child(2n) td{background:#06121873}.data-table tr.total-row td{font-weight:700;background:#08161ca6;color:#f4e5c2}.table-scroll{overflow-x:auto;margin-top:8px}.table-hover tr:hover td{background:#7fb2b814}.base-stat-badge{display:inline-flex;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:4px 8px;border-radius:6px;border:1px solid transparent}.base-stat-badge--active{color:#8fd4a8;background:#28784638;border-color:#64c88c59}.base-stat-badge--paused{color:#e8c47a;background:#785a1e38;border-color:#d7b98259}.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:18px}.form-group{margin-bottom:16px}.form-group label,.field-label{display:block;margin-bottom:8px;color:#d5c298;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.form-group input,.form-group select,.input-dark{width:100%;min-height:46px;border:1px solid rgba(215,185,130,.28);border-radius:var(--radius-md);padding:0 14px;color:#fff;background:#01080bb8;font-size:15px;outline:none;transition:border-color .2s,box-shadow .2s,background .2s}.form-group input:focus,.form-group select:focus,.input-dark:focus{border-color:#f0d9a2bf;background:#030d11eb;box-shadow:0 0 0 3px #d7b9821f}.form-row{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end}.form-row .form-group{flex:1;min-width:140px;margin-bottom:0}input[type=date],input[type=time]{color-scheme:dark;cursor:pointer}input[type=date]::-webkit-calendar-picker-indicator,input[type=time]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:1;filter:invert(.88) sepia(.15) saturate(1.1)}.cash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:24px}.cash-tile{padding:20px;border-radius:var(--radius-md);border:1px solid rgba(215,185,130,.18);background:#030c108c;text-align:center}.cash-tile .amount{font-size:1.5rem;font-weight:800;color:var(--gold-strong);margin-top:8px;font-variant-numeric:tabular-nums}.cash-tile .label{color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.cash-tile--total{border-color:#d7b98259;background:#d7b98214}.base-stat-row{display:flex;flex-wrap:wrap;gap:4px 10px;justify-content:space-between;align-items:baseline;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.04);font-size:14px}.base-stat-row:last-child{border-bottom:none;padding-bottom:0}.base-stat-row dt{margin:0;color:var(--muted)}.base-stat-row dd{margin:0;font-weight:700;color:var(--text)}.base-stat-row dd.highlight{color:var(--gold-strong);font-weight:800}.message-error{margin:0 0 16px;padding:12px 14px;border-radius:14px;font-size:14px;color:#ffd1d1;background:#971e1e40;border:1px solid rgba(255,95,95,.32)}.login-shell{position:relative;min-height:100vh;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at 50% 18%,#66979e33,#06101500 38%),linear-gradient(180deg,#02080c80,#061015eb)}.login-shell:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(circle at 12% 30%,rgba(255,171,83,.14),transparent 20%),radial-gradient(circle at 88% 25%,rgba(127,178,184,.12),transparent 18%);mix-blend-mode:screen}.login-card{position:relative;z-index:1;width:min(420px,100%);border:1px solid var(--line);border-radius:28px;padding:32px 28px;background:linear-gradient(180deg,#0c1c23e0,#040b0fd1),linear-gradient(135deg,rgba(240,217,162,.12),transparent 42%);box-shadow:0 22px 70px #00000073,inset 0 1px #ffffff14;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.login-card h1{margin:0 0 8px;font-family:Georgia,Times New Roman,serif;font-size:28px;color:#f4e5c2}.login-card .lead{margin:0 0 22px;color:var(--muted);font-size:14px;line-height:1.55}.login-card .btn-main{width:100%;min-height:48px;margin-top:8px;font-size:15px}.flash-ok{margin:0 0 16px;padding:12px 16px;border-radius:var(--radius-md);border:1px solid rgba(88,214,141,.35);background:#58d68d14;color:var(--success)}.flash-error{margin:0 0 16px;padding:12px 16px;border-radius:var(--radius-md);border:1px solid rgba(232,93,93,.35);background:#e85d5d14;color:var(--danger)}.input-inline{width:100%;min-width:120px;padding:8px 10px}.input-inline--short{min-width:72px;width:88px}.checkbox-inline{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:14px}.login-card .form-group input{width:100%;height:48px}.week-grid-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.week-grid-toolbar h2{margin:0}.week-nav{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.week-range{font-size:14px;color:var(--gold-strong);font-weight:600;min-width:180px;text-align:center}.week-grid-table th.week-grid-trainer-col,.week-grid-table td.week-grid-trainer-col{min-width:140px;position:sticky;left:0;z-index:1;background:#08161cf2}.week-grid-day-col{text-align:center;min-width:88px;vertical-align:middle}.week-day-name{display:block;font-size:11px;letter-spacing:.06em}.week-day-date{display:block;font-size:12px;font-weight:400;text-transform:none;letter-spacing:0;color:var(--muted);margin-top:2px}.week-cell-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:52px;padding:6px 4px;border:1px solid rgba(127,178,184,.35);border-radius:10px;background:#081c2299;color:var(--muted);cursor:pointer;transition:border-color .15s,background .15s,transform .15s}.week-cell-btn:hover{border-color:var(--accent);background:#0c242ad9;transform:translateY(-1px)}.week-cell-btn--booked{border-color:#58d68d8c;background:#143024a6;color:var(--success)}.week-cell-btn--booked:hover{border-color:var(--success);background:#183a2cd9}.week-cell-count{font-size:20px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}.week-cell-label{font-size:11px;opacity:.85}.week-cell-muted{font-size:12px;color:#a7b3b88c}.week-trainer-deleted{display:block;margin-top:4px;font-size:11px;font-weight:600;color:var(--danger);text-transform:uppercase;letter-spacing:.04em}.week-cell-btn--orphan{border-color:#e8a55da6}.week-cell-orphan{margin-top:4px;font-size:11px;color:#f0b060;font-weight:700}.week-cell-att{margin-top:4px;font-size:11px;font-weight:700;color:var(--success)}.week-cell-att-summary{display:block;font-size:12px;font-weight:700;line-height:1.35;font-variant-numeric:tabular-nums;color:var(--text)}.week-cell-btn--attendance{min-height:58px}.week-cell-btn--pending-att{border-color:#7fb2b873}.attendance-legend{margin:0 0 14px;font-size:13px}.att-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}.att-badge--present{background:#58d68d26;color:var(--success)}.att-badge--absent{background:#e85d5d26;color:var(--danger)}.att-badge--late{background:#f0b06026;color:#f0b060}.att-badge--pending{background:#7fb2b81f;color:var(--muted)}.day-grid-explainer{margin:0 0 12px;font-size:13px;line-height:1.45}.day-grid-summary{display:flex;flex-wrap:wrap;gap:10px 14px;margin-bottom:16px;font-size:13px}.client-assign{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}.client-assign--mine{background:#58d68d26;color:var(--success)}.client-assign--other{background:#7fb2ff26;color:#8cb4ff}.client-assign--none{background:#f0b06026;color:#f0b060}.day-slot-client--mine .day-slot-client-name{color:var(--success)}.day-slot-client--orphan{color:#f0b060}.day-slot-client--other .day-slot-client-name{color:#8cb4ff}.day-slot-client-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}.day-slot-client-note{margin-top:4px;font-size:12px;color:var(--muted);line-height:1.35}.day-slot-orphan-tag{margin-left:8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--danger)}.week-cell-none{color:#a7b3b873;font-size:14px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;background:#02080cc7;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-card{width:min(520px,100%);max-height:min(88vh,720px);overflow:auto;border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(180deg,#0b1c22fa,#050e12fa);box-shadow:0 24px 64px #0000008c;padding:22px 24px}.modal-card--wide{width:min(640px,100%)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.modal-header h2{margin:0 0 4px;font-family:Georgia,Times New Roman,serif;font-size:22px;color:#f4e5c2}.modal-subtitle{margin:0;font-size:14px}.modal-close{flex-shrink:0;width:36px;height:36px;border:1px solid rgba(215,185,130,.25);border-radius:10px;background:#040c0f99;color:var(--text);font-size:22px;line-height:1;cursor:pointer}.modal-close:hover{border-color:var(--gold);color:var(--gold-strong)}.day-slots-grid{display:grid;gap:10px}.day-slot{border-radius:12px;border:1px solid rgba(215,185,130,.2);padding:12px 14px}.day-slot--free{border-color:#7fb2b859;background:#081c2273}.day-slot--partial{border-color:#d7b98273;background:#201c1066}.day-slot--full{border-color:#e85d5d73;background:#28101059}.day-slot-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px}.day-slot-time{font-size:18px;font-weight:800;color:var(--gold-strong);font-variant-numeric:tabular-nums}.day-slot-group{font-size:14px;color:var(--text)}.day-slot-cap{margin-left:auto;font-size:13px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}.day-slot-clients{margin:0;padding-left:0;list-style:none;font-size:14px;color:var(--text)}.day-slot-clients li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.day-slot-clients li+li{margin-top:8px}.day-slot-client-name{font-weight:600}.day-slot-free-label{margin:0;font-size:13px;color:var(--accent)}
