:root{--bg:#f7f4ef;--card:#fffdf9;--ink:#312c29;--muted:#796e68;--brand:#77594e;--line:#ded7cf;--green:#dcebd6;--green-ink:#315b36;--blue:#dce9f8;--blue-ink:#345679;--orange:#fae6bd;--orange-ink:#755419;--red:#f7d6d2;--red-ink:#8a3029}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px Arial,sans-serif}h1,h2{font-family:Georgia,serif;font-weight:400}h2{margin:.2rem 0 .6rem}p{color:var(--muted)}button,input,select{font:inherit}button{border:0;border-radius:.7rem;padding:.7rem 1rem;background:var(--brand);color:#fff;cursor:pointer}button:disabled{opacity:.45;cursor:default}.ghost{border:1px solid var(--line);background:transparent;color:var(--ink)}.danger{background:#fff0ee;color:var(--red-ink);border:1px solid #efb8b1}.muted{color:var(--muted)}
.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.brand{padding:4rem;display:flex;flex-direction:column;justify-content:space-between;background:var(--brand);color:#fff}.brand h1{font-size:4rem}.card{padding:1.2rem;border:1px solid var(--line);border-radius:1rem;background:var(--card);box-shadow:0 8px 30px #523d3410}.login form{width:min(90%,30rem);margin:auto;display:grid;gap:1rem}.login label,.change-panel label{display:grid;gap:.4rem}input,select{width:100%;padding:.7rem;border:1px solid var(--line);border-radius:.55rem;background:#fff;color:var(--ink)}
header{position:sticky;top:0;z-index:5;display:flex;gap:1rem;align-items:center;padding:1rem 4vw;border-bottom:1px solid var(--line);background:#f7f4eff2;backdrop-filter:blur(10px)}header span{margin-left:auto}main:not(.login){width:min(1380px,95%);margin:auto;padding:2.4rem 0 5rem}.heading{display:flex;justify-content:space-between;align-items:end}.heading h1{font-size:3.2rem;margin:.3rem 0}.month-control{display:grid;gap:.35rem;color:var(--muted);font-size:.8rem}.month-control input{width:12rem}.summary{display:grid;grid-template-columns:2fr 1fr;gap:1rem;margin:1.2rem 0}.summary div{display:grid;gap:.5rem}.summary strong{font:1.7rem Georgia}.summary span{color:var(--muted)}
nav{display:flex;gap:.5rem;margin:1rem 0}nav button,.view-controls button{background:#e9e2dc;color:var(--ink)}nav button.active,.view-controls button.active{background:var(--brand);color:#fff}.section-title{display:flex;align-items:center;justify-content:space-between;gap:1rem}.section-title p{margin:.2rem 0 1rem}.view-controls{display:flex;gap:.35rem}.agenda-card{margin-top:1rem;padding:1.1rem}
.legend{display:flex;flex-wrap:wrap;gap:.8rem;margin:.2rem 0 .8rem;color:var(--muted);font-size:.75rem}.legend span{display:flex;align-items:center;gap:.3rem}.legend i{display:inline-block;width:.8rem;height:.8rem;border-radius:.2rem;border:1px solid #d7d0ca}
.week-nav{display:flex;align-items:center;justify-content:center;gap:1rem;margin:.7rem 0 1rem}.week-nav strong{min-width:16rem;text-align:center}.schedule-scroll{overflow-x:auto;padding-bottom:.4rem}.schedule{display:grid;grid-template-columns:88px repeat(7,minmax(105px,1fr));gap:.4rem;min-width:900px}.day-head{padding:.55rem;text-align:center;border-bottom:1px solid var(--line);display:grid;gap:.25rem}.day-head small{color:var(--muted)}.hour{display:grid;align-content:center;justify-items:center;min-height:62px;border-right:1px solid var(--line);font-weight:bold}.hour small{font-size:.72rem;color:var(--muted);font-weight:normal}.slot{min-height:62px;padding:.45rem;display:grid;align-content:center;gap:.2rem;border:1px solid transparent;color:var(--ink)}.slot b{font-size:.78rem}.slot span{font-size:.74rem}.slot:disabled{opacity:.66}.slot.unavailable{background:#f3f0ec;border:1px dashed #e7e0d9}.empty{background:#f3f0ec}.open{background:var(--green);color:var(--green-ink)}.busy{background:var(--orange);color:var(--orange-ink)}.full{background:var(--red);color:var(--red-ink)}.mine{background:var(--blue)!important;color:var(--blue-ink)!important;border-color:#a9c8ea!important;opacity:1!important}
.month-calendar{overflow-x:auto}.month-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(125px,1fr));min-width:875px}.month-weekdays b{padding:.7rem;text-align:center;color:var(--muted);font-size:.8rem}.month-day{min-height:148px;border-top:1px solid var(--line);border-left:1px solid var(--line);padding:.45rem}.month-day:nth-child(7n){border-right:1px solid var(--line)}.month-day.outside{background:#f3f0ec}.month-day>strong{display:block;text-align:right;color:var(--muted);margin-bottom:.3rem}.month-day>div{display:grid;grid-template-columns:1fr 1fr;gap:.2rem}.month-session{padding:.28rem .35rem;border-radius:.35rem;display:flex;justify-content:space-between;font-size:.68rem;color:var(--ink)}.free-count{grid-column:1/-1;color:var(--green-ink);padding:.35rem 0}
.change-panel{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem;align-items:start}.change-panel>button{align-self:end}.mini-weekdays,.change-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem}.mini-weekdays b{text-align:center;font-size:.72rem;color:var(--muted)}.change-day{min-height:50px;padding:.35rem;background:#eee3da;color:var(--ink);display:grid}.change-day small{font-size:.62rem}.change-day.disabled{display:grid;place-items:center;background:#f1eeea;color:#b9b0aa;border-radius:.5rem}.change-day.active,.time.active{outline:2px solid var(--brand)}.times{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;margin-top:.6rem}.time{background:var(--blue);color:var(--blue-ink)}
.session-detail{margin-top:1rem}.detail-head{display:flex;justify-content:space-between;align-items:start}.detail-head h2{font-size:2rem;margin:.15rem 0}.occupancy{display:inline-block;padding:.3rem .6rem;border-radius:2rem;font-size:.8rem}.roster{display:grid;margin:1rem 0}.student{display:grid;grid-template-columns:minmax(150px,1fr) 145px auto auto auto;gap:.5rem;align-items:center;padding:.7rem 0;border-bottom:1px solid var(--line)}.student.blocked-student{grid-template-columns:1fr auto auto}.student button{padding:.55rem .7rem}.add-student,.move-box{display:flex;gap:.6rem;margin-top:1rem}.add-student select,.move-box select{flex:1}.move-box{padding:1rem;border-radius:.8rem;background:#f3ece6;align-items:center}.move-box b{min-width:170px}
.form{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem;margin-bottom:1rem}.table{display:grid;gap:.5rem}.table>div{display:flex;align-items:center;gap:1rem;padding:.7rem;border-bottom:1px solid var(--line)}.table span{margin-left:auto;color:var(--muted)}.paid{margin-left:.5rem}
.blocked{background:#e3deda!important;color:#625a55!important;background-image:repeating-linear-gradient(135deg,transparent 0 8px,#d7d0ca 8px 10px)!important}.slot[data-session],.month-session[data-session],.today-class[data-session]{border-left:4px solid var(--type-color,transparent)}.summary.four{grid-template-columns:2fr 1fr 1fr 1fr}.counter strong{font-size:1.45rem}.today-nav{display:flex;justify-content:center;gap:.5rem;margin-top:1rem}.today-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:1rem 0}.metric{display:grid;gap:.35rem}.metric span{color:var(--muted)}.metric strong{font:2rem Georgia}.today-list{display:grid;gap:.55rem;margin-top:1.5rem}.today-class{width:100%;display:grid;grid-template-columns:120px 1fr auto;align-items:center;text-align:left;color:var(--ink);border-color:transparent}.today-class span{font:1.2rem Georgia}.today-class small{text-align:right}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem}.stacked{display:grid;gap:.8rem}.stacked label{display:grid;gap:.35rem}.inline-fields{display:flex;gap:.6rem}.inline-fields>*{flex:1}.block-list{margin-top:1rem}.block-list>div{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--line)}.type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.type-form{display:grid;gap:.7rem}.type-title{display:flex;align-items:center;gap:.5rem}.type-title i{width:1.1rem;height:1.1rem;border-radius:.3rem}.check{display:flex!important;align-items:center;gap:.4rem}.check input{width:auto}.new-type{margin-top:1rem}.notification-help{margin-bottom:1rem}.blocked-detail{border-color:#c8beb6}.change-intro{display:grid;gap:.4rem}.change-intro .view-controls{width:max-content}.change-intro p{margin:.2rem 0}select[multiple]{min-height:9rem}
.client-list{display:grid;gap:1rem}.client-card{display:grid;gap:1rem}.client-card>div:first-child{display:flex;justify-content:space-between;gap:1rem}.client-card>div:first-child span{color:var(--muted)}.contract-list{display:grid;gap:.4rem}.contract-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem 0;border-bottom:1px solid var(--line)}.contract-row span{color:var(--muted)}.contract-form{display:grid;grid-template-columns:1.2fr 1.2fr 1fr auto;gap:.6rem;padding-top:.35rem}
@media(max-width:800px){.login,.summary,.summary.four,.change-panel,.today-summary,.two-columns,.type-grid{grid-template-columns:1fr}.brand{min-height:34vh;padding:1.5rem}.brand h1{font-size:2.8rem}.form,.contract-form{grid-template-columns:1fr}.heading{align-items:start;flex-direction:column}.heading h1{font-size:2.5rem}.section-title{align-items:start;flex-direction:column}.view-controls{width:100%}.view-controls button{flex:1}header{flex-wrap:wrap;padding:.8rem 3vw}header span{width:100%;margin-left:0;order:3}nav{overflow-x:auto;padding-bottom:.4rem}nav button{white-space:nowrap}.week-nav{justify-content:space-between}.week-nav strong{min-width:0;font-size:.8rem}.student{grid-template-columns:1fr 1fr}.student b{grid-column:1/-1}.add-student,.move-box{align-items:stretch;flex-direction:column}.table>div,.client-card>div:first-child,.contract-row{align-items:flex-start;flex-direction:column}.table span{margin-left:0}.inline-fields{flex-direction:column}.today-class{grid-template-columns:85px 1fr}.today-class small{grid-column:2;text-align:left}}
