:root{--bg:#f3eee4;--paper:#fffcf5;--ink:#282320;--muted:#82786b;--line:#e5dcce;--dark:#191715;--red:#8c322b;--red-dark:#68251f;--gold:#b28c52;--soft-red:#f2e4db;--soft-gold:#f0e4cd;--blue:#466273}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid transparent;border-radius:7px;padding:10px 16px;background:var(--red);color:#fff7e7;font-weight:600;transition:background .15s}button:hover{background:var(--red-dark)}button:disabled{opacity:.5;cursor:wait}button.ghost{background:transparent;border-color:var(--line);color:var(--ink)}button.ghost:hover{background:var(--soft-gold)}button.text{padding:0;background:none;color:var(--red);text-align:left;border:0}button.icon{padding:6px 12px}button.small{padding:6px 10px;font-size:12px}button.danger{color:var(--red);background:var(--soft-red)}button:focus-visible,input:focus,select:focus,textarea:focus{outline:2px solid var(--gold);outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:32px;font-weight:600;letter-spacing:-1.2px;margin-bottom:0}h2{font-size:22px;font-weight:600;letter-spacing:-.5px;margin-bottom:12px}h3{font-size:16px}small{font-size:10px;color:var(--muted);letter-spacing:1.5px}input,select,textarea{width:100%;padding:10px 12px;color:var(--ink);background:var(--paper);border:1px solid #d8cebf;border-radius:6px}textarea{min-height:85px;resize:vertical}input[type=checkbox]{width:auto}input[type=date]{max-width:180px}label{display:block;font-size:12px;font-weight:600;margin-bottom:15px}label input,label select,label textarea{display:block;margin-top:6px}.muted{color:var(--muted);font-size:12px}.pre{white-space:pre-line}#app{display:grid;grid-template-columns:224px 1fr;min-height:100vh}#app[hidden],#login[hidden],[hidden]{display:none!important}aside{background:var(--dark);color:#f0e5d0;padding:34px 20px;display:flex;flex-direction:column}.brand-mark{font-size:43px;line-height:1;font-weight:900;letter-spacing:5px}.brand-mark span{display:block;font-size:8px;letter-spacing:1.4px;font-weight:500;margin-top:10px;line-height:1.5;color:#c6ae86}.workspace{font-size:9px;letter-spacing:1.5px;color:#998976;padding:32px 10px 15px;border-bottom:1px solid #ffffff12}.workspace span{float:right;color:var(--gold)}nav{display:grid;gap:6px;margin-top:22px}nav button{text-align:left;background:none;color:#bcb2a4;padding:11px 14px;font-weight:500;display:flex;gap:12px;align-items:center}nav button:hover{background:#28231f}nav button.selected{background:#4b2722;color:#fff0da;border:1px solid #8c4638}nav .nav-icon{width:18px;font-size:17px;color:#c5a775}nav .count{margin-left:auto;border-radius:4px;background:#ffffff14;padding:0 5px;font-size:10px}aside footer{margin-top:auto;font-size:11px;color:#9c8b77;padding-top:35px}aside footer button{display:block;margin-top:12px;border-color:#4c4337!important;color:#d4c2a7!important}main{padding:32px 38px;min-width:0}.main-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.actions,.toolbar,.tabs{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.toolbar{margin-bottom:20px;justify-content:space-between}.toolbar .actions{gap:7px}.toolbar input[type=search]{max-width:340px}.date-label{font-size:19px;font-weight:600;min-width:190px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.stat{padding:18px 21px;background:var(--paper);border:1px solid var(--line);border-radius:8px}.stat strong{display:block;font-size:29px;letter-spacing:-1px;margin-top:8px;font-weight:500}.stat small{letter-spacing:.1px;font-size:12px}.stat .accent{color:var(--red)}.panel,.card{background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:23px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:17px}.columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.row{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:15px 0;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:0}.row .actions{justify-content:flex-end}.tag{display:inline-block;border-radius:5px;padding:4px 8px;background:#ece6da;color:#6e5b43;font-size:11px;white-space:nowrap}.tag.red{background:#f3dfd5;color:#8c322b}.tag.green{background:#e4eadc;color:#4d6338}.tag.blue{background:#e1e8eb;color:#3c5c70}.empty{text-align:center;color:var(--muted);padding:36px 20px;font-size:13px}.hint{padding:13px 17px;background:var(--soft-gold);border-left:3px solid var(--gold);font-size:12px;margin:0 0 20px}.table-wrap{overflow:auto;border:1px solid var(--line);background:var(--paper);border-radius:9px}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;background:#eee7db;color:#786c5c;font-weight:500;white-space:nowrap}td,th{padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:top}td{max-width:330px;overflow-wrap:anywhere}td strong{font-weight:600}.table-wrap button{font-size:12px}.table-wrap .actions{min-width:150px}td .muted{margin-top:4px;font-size:11px}.table-wrap tr:last-child td{border-bottom:0}.filters select{width:auto;max-width:210px}.calendar-shell{background:var(--paper);border:1px solid var(--line);border-radius:9px;overflow:hidden}.calendar-heading{display:flex;border-bottom:1px solid var(--line);background:#fbf7ef}.time-heading{width:70px;flex:none;padding:18px 10px;color:var(--muted);font-size:10px}.trainer-heading{flex:1;min-width:220px;padding:15px 20px;border-left:1px solid var(--line);font-weight:600}.trainer-heading small{display:block;margin-top:3px;letter-spacing:.2px}.calendar-scroll{max-height:580px;overflow:auto}.calendar-body{display:flex;min-width:440px;position:relative}.time-column{width:70px;flex:none}.time-tick{height:52px;padding:0 12px;text-align:right;transform:translateY(-8px);color:#91816e;font-size:11px}.time-tick:first-child{transform:none}.trainer-column{position:relative;flex:1;min-width:220px;border-left:1px solid var(--line)}.slot{display:block;width:100%;height:52px;border:0;border-bottom:1px solid #eae3d7;background:transparent;border-radius:0}.slot:nth-child(even){border-bottom-style:dashed}.slot:hover{background:#f0e5d4}.event{position:absolute;left:10px;right:10px;border:1px solid #cfb798;border-left:4px solid var(--gold);border-radius:7px;padding:10px 14px;text-align:left;background:#eee2cc;color:#4b3928;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between}.event:hover{background:#e6d3b5}.event.hema{background:#e8e3db;border-color:#b5aa98;border-left-color:#766451;color:#423c33}.event.isb{background:#f0ded2;border-color:#cda88b;border-left-color:#9a4734;color:#703e2d}.event.cancelled{opacity:.5;text-decoration:line-through}.event .event-title{font-size:14px;font-weight:650}.event .event-meta{display:flex;justify-content:space-between;width:100%;font-size:11px;gap:8px}.event .event-type{font-size:10px;letter-spacing:.7px;opacity:.75}.legend{display:flex;gap:18px;margin-top:14px;color:var(--muted);font-size:11px}.legend span:before{content:'◆';color:var(--gold);padding-right:7px}.calendar-caption{font-size:12px;color:var(--muted);margin-top:12px}.list-card{padding:18px 22px;background:var(--paper);border:1px solid var(--line);border-radius:8px;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:15px}.list-card h3{margin:4px 0}.day-badge{font-size:23px;font-weight:600;color:var(--red);min-width:75px}.day-badge small{display:block;letter-spacing:.5px;font-size:10px}.list-card .description{flex:1}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.full{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}dialog{width:760px;max-width:95vw;max-height:90vh;overflow:auto;border:1px solid #cabb9f;border-radius:12px;background:var(--paper);color:var(--ink);padding:28px}dialog::backdrop{background:#17110be0}dialog>header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:22px;gap:15px}dialog h2{margin:5px 0 0}dialog .panel{background:#f5eee2}.section-label{margin-top:22px;padding-bottom:10px;border-bottom:1px solid var(--line);font-size:12px;font-weight:600;color:#897454}.error{color:var(--red);font-size:13px;margin:10px 0}.toast{position:fixed;bottom:25px;right:25px;max-width:440px;background:var(--dark);border:1px solid var(--gold);color:#f8edd8;box-shadow:0 8px 30px #0002;padding:15px 22px;border-radius:8px;z-index:1000}#login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:var(--dark)}.login-brand{padding:70px clamp(35px,8vw,130px);background:radial-gradient(ellipse at left bottom,#59362366,transparent 65%);color:#f2e6d1;display:flex;flex-direction:column;justify-content:center}.login-brand .brand-mark{margin-bottom:50px;font-size:65px}.login-brand>small{color:#bfa377;font-size:9px}.login-brand h1{font-size:clamp(42px,5vw,72px);line-height:1.03;margin:24px 0}.login-brand p{color:#b1a28b;font-size:15px}.gold-rule{color:var(--gold);display:flex;align-items:center;gap:12px;margin-top:25px}.gold-rule:before,.gold-rule:after{content:'';height:1px;background:var(--gold);flex:1}.login-card{align-self:center;justify-self:center;background:var(--bg);padding:35px;width:410px;max-width:90%;border-radius:10px}.tabs{margin-bottom:30px}.tabs button{flex:1;font-size:12px}.tabs button.ghost{border-color:var(--line)}.login-card h2{font-size:24px;margin-bottom:10px}.login-card p{font-size:13px;color:var(--muted)}.login-card button[type=submit]{width:100%;margin-top:5px}.login-card .local-note{color:#946c3a;background:var(--soft-gold);padding:10px;font-size:12px}.spaced{margin-top:22px}.profile-line{display:flex;gap:20px;align-items:center}.avatar{width:48px;height:48px;border-radius:50%;background:#e7d5b6;color:#755334;display:grid;place-items:center;font-weight:700;font-size:18px}.number-note{font-variant-numeric:tabular-nums}.inline-form{margin-top:20px;display:flex;gap:10px}.inline-form select{flex:1}.inline-form button{flex:none}.check-label{display:flex;gap:9px;align-items:center}.check-label input{margin:0}a{color:var(--red)}@media(min-width:1450px){main{padding:36px 52px}.calendar-scroll{max-height:68vh}}@media(max-width:1050px){#app{grid-template-columns:185px 1fr}main{padding:25px 22px}aside{padding:27px 15px}.stats{grid-template-columns:1fr 1fr}.columns{grid-template-columns:1fr}.main-header{align-items:flex-start}.date-label{font-size:16px;min-width:auto}}@media(max-width:680px){#app{display:block}aside{padding:17px 15px}.brand-mark{font-size:28px}.brand-mark span{font-size:7px;margin-top:6px}.workspace,aside footer{display:none}nav{display:flex;overflow:auto;gap:4px;margin-top:18px}nav button{white-space:nowrap;padding:8px 12px;font-size:12px}nav .nav-icon{display:none}main{padding:21px 14px}h1{font-size:26px}.main-header{flex-wrap:wrap;margin-bottom:20px}.stats{gap:10px}.stat{padding:15px}.stat strong{font-size:25px}.calendar-scroll{max-height:540px}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.list-card{padding:16px;flex-wrap:wrap}.list-card .actions{width:100%}dialog{padding:21px}.login-brand{display:none}#login{grid-template-columns:1fr}.login-card{max-width:92%}.toolbar .actions{flex-wrap:wrap}.columns{grid-template-columns:1fr}}
@media(min-width:681px) and (max-width:1050px){.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.stat{padding:12px 10px}.stat small{font-size:10px;line-height:1.3;display:block;min-height:26px}.stat strong{font-size:24px;margin-top:4px}.main-header .actions{gap:6px}.main-header .actions button{padding:9px 11px;font-size:12px}.toolbar input[type=date]{width:148px}.toolbar .actions{gap:5px}.toolbar .date-label{font-size:15px}.trainer-heading{padding:12px 16px}}
@media(max-width:900px){#login{grid-template-columns:1fr}.login-brand{display:none}.login-card{width:410px;max-width:92%}}
.calendar-heading{position:sticky;top:0;z-index:5}.calendar-scroll{position:relative}.calendar-heading .trainer-heading{background:#fbf7ef}.calendar-heading .time-heading{background:#fbf7ef}
@media(max-width:680px){aside{position:relative}aside footer{display:flex;position:absolute;top:19px;right:15px;margin:0;padding:0}aside footer>span{display:none}aside footer button{margin:0;padding:7px 12px;font-size:11px}}

.mobile-login-brand{display:none}
@media(max-width:680px){
 #login{grid-template-columns:minmax(0,1fr);min-height:100svh;padding:24px 0}
 .login-card{width:calc(100% - 32px);max-width:410px;min-width:0;padding:26px;justify-self:center}
 .mobile-login-brand{display:block;font-size:29px;font-weight:850;letter-spacing:3px;margin-bottom:24px}
 .mobile-login-brand span{display:block;font-size:8px;letter-spacing:1.6px;color:var(--muted);font-weight:500}
 input,select,textarea{font-size:16px;min-height:44px}
 input[type=checkbox]{min-height:auto}
 button{min-height:44px}
 .list-card>.actions{display:grid;grid-template-columns:minmax(0,1fr)}
 .list-card>.actions button{width:100%;min-height:48px}
 .toast{left:16px;right:16px;bottom:88px;max-width:none}
 body[data-role=client] nav{position:fixed;bottom:0;left:0;right:0;z-index:20;background:var(--dark);margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:8px 4px max(8px,env(safe-area-inset-bottom));border-top:1px solid #b28c5244;overflow:visible}
 body[data-role=client] nav button{display:flex;flex-direction:column;gap:3px;padding:6px 1px;font-size:10px;min-width:0;border-radius:6px;white-space:normal;text-align:center}
 body[data-role=client] nav .nav-icon{display:block;font-size:20px;line-height:1.2}
 body[data-role=client] main{padding-bottom:100px}
 body[data-role=client] .list-card .description{min-width:0}
}

.login-card button.text{display:block}

.client-name{font-size:14px!important;font-weight:650;text-decoration:underline;text-underline-offset:3px}.client-list{display:grid;gap:12px}.client-card .client-name{font-size:17px!important}.client-detail{width:920px}.client-detail .row{align-items:flex-start}.client-detail .row>.actions{flex-shrink:0;max-width:55%;justify-content:flex-end}
@media(max-width:680px){.client-card{padding:18px}.client-card>button{width:100%}.client-detail{width:100%;max-width:100%;height:100%;max-height:100dvh;margin:0;border:0;border-radius:0;padding:20px 16px}.client-detail>header{position:sticky;top:-20px;background:var(--paper);z-index:2;padding:16px 0;margin-top:-20px}.client-detail .stats{grid-template-columns:1fr 1fr}.client-detail .row{flex-wrap:wrap}.client-detail .row>.actions{max-width:100%;justify-content:flex-start}.client-detail>header h2{font-size:22px}.client-detail>header .icon{flex:none}}

.booking-choice{margin-bottom:12px}.booking-choice h3{margin:10px 0 6px}.booking-choice .actions{margin-top:14px}

.participant-form{align-items:flex-start;flex-wrap:wrap}.participant-search{flex:1;min-width:220px}.participant-search>p{margin:8px 0}.participant-results{max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:6px;margin-top:8px;padding:6px}.participant-results>p{padding:8px;margin:0}.participant-option{display:flex;width:100%;justify-content:space-between;gap:12px;text-align:left;margin:3px 0}.participant-option span{font-weight:400}.participant-form>button{flex:none}@media(max-width:680px){.participant-search{min-width:0;flex-basis:100%}.participant-option{flex-wrap:wrap}}

.vk-dialog-link{display:inline-block;margin-top:18px;padding:10px 15px;border:1px solid var(--gold);border-radius:6px;font-weight:600;text-decoration:none}.vk-dialog-link:hover{background:var(--soft-gold)}

button.stat-action{display:block;text-align:left;width:100%;color:var(--ink);font-weight:400;cursor:pointer;transition:border-color .15s,background .15s}button.stat-action:hover{background:var(--paper);border-color:var(--gold)}button.stat-action small{color:var(--muted)}button.stat-action:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.summary-contact{display:inline-block;padding:6px 10px;border:1px solid var(--gold);border-radius:6px;font-size:12px;font-weight:600;text-decoration:none}.summary-contact:hover{background:var(--soft-gold)}.summary-booking{gap:16px}.summary-booking .tag{margin-top:7px;margin-right:6px}

.client-list-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,300px);align-items:end;gap:16px;margin:20px 0 14px}.client-list-toolbar>input{margin-bottom:0}.client-list-toolbar>label{margin:0}.client-filters{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:14px 18px}.client-filters summary{cursor:pointer;font-weight:600;color:var(--ink)}.client-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px;margin-top:18px}.client-filter-grid label{margin:0}.client-result-bar{margin:14px 0;min-height:32px}.client-result-bar p{margin:0}@media(max-width:900px){.client-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.client-list-toolbar{grid-template-columns:1fr;gap:12px}.client-filter-grid{grid-template-columns:1fr}.client-filters{padding:14px}.client-filter-grid select,.client-list-toolbar select,.client-list-toolbar>input{font-size:16px}}
