@font-face{font-family:Local;src:local('Segoe UI')}*{box-sizing:border-box} :root{font-family:Local,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;color:#2a3532;background:#f7f7f2;font-synthesis:none;--accent:#e87550;--green:#287967;--purple:#7060a2;--line:#e6e8df}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible{outline:3px solid #c78367;outline-offset:3px}button{transition:background .15s,transform .15s}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}.shell{max-width:1180px;padding:0 44px;margin:auto}.topbar{height:105px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;font-size:29px;font-weight:750;letter-spacing:-1.2px}.brand-mark{display:grid;place-items:center;width:43px;height:43px;border-radius:13px;background:var(--accent);color:white;font-size:36px;line-height:1;padding-bottom:6px;font-weight:600}.brand-by{display:block;color:#858c80;font-size:10px;letter-spacing:1.2px;font-weight:500;margin-top:1px}.icon-button{display:grid;place-items:center;width:39px;height:39px;border:1px solid var(--line);border-radius:12px;background:white;color:#56615a;font-size:25px}.icon-button svg{width:21px;height:21px}.icon-button:hover{background:#ecefe6}.hero{display:flex;align-items:center;justify-content:space-between;padding:46px 0 33px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:650;color:#838b79;margin:0 0 10px}h1{font-size:43px;line-height:1.2;letter-spacing:-1.8px;margin:0;font-weight:650}h1 span{color:var(--accent)}.subtitle{font-size:14px;color:#7b857b;margin:13px 0 0}.hero-art{font-size:101px;line-height:1;color:#e6a681;transform:rotate(12deg);padding-right:22px}.accounts{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.account{position:relative;border:1px solid var(--line);background:#fff;border-radius:20px;padding:21px 25px;overflow:hidden}.account-top{display:flex;align-items:center;gap:11px}.avatar{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#efeafb;color:#7c69a2;font-size:17px;font-weight:600}.account:nth-child(even) .avatar{background:#e5eee4;color:#52795a}.account h3{font-size:16px;margin:0;font-weight:600}.account .caption{font-size:11px;color:#959b90;margin:4px 0 0}.quota{margin:15px 0 12px;display:flex;align-items:baseline;gap:7px}.quota strong{font-size:33px;font-weight:600;letter-spacing:-1px}.quota span{font-size:12px;color:#848e81}.quota-bar{height:5px;width:100%;background:#f0edf4;border-radius:5px;overflow:hidden}.quota-fill{height:100%;background:#b3a3d2;border-radius:5px}.account:nth-child(even) .quota-bar{background:#edf2e9}.account:nth-child(even) .quota-fill{background:#9fbc9c}.quota-foot{display:flex;justify-content:space-between;font-size:10px;color:#939b8e;margin-top:9px;gap:8px}.section-bar{display:flex;align-items:center;justify-content:space-between;margin:32px 0 24px;gap:10px}.tabs{display:flex;gap:25px}.tabs button{background:none;border:0;padding:10px 0;color:#93998f;font-weight:550;font-size:14px;position:relative}.tabs button.active{color:#354638}.tabs button.active:after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--accent)}.tabs span{padding:2px 6px;border-radius:6px;background:#e9eee4;font-size:10px;margin-left:4px;color:#64725e}.timezone{font-size:10px;letter-spacing:.3px;color:#91998c}.calendar{background:white;border:1px solid var(--line);border-radius:20px;padding:24px}.calendar-heading{display:flex;align-items:center;justify-content:space-between}.calendar h2{font-size:19px;letter-spacing:-.4px;margin:0;font-weight:600}.calendar .eyebrow{font-size:8px;margin-bottom:6px}.week-controls{display:flex;gap:7px;align-items:center}.week-controls .icon-button{width:30px;height:30px;border-radius:8px;font-size:23px}.today-button{background:transparent;border:0;font-size:11px;color:#7f8877;padding:8px}.days{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin-top:22px}.day{border:0;border-radius:14px;background:#f7f8f3;padding:12px 2px 8px;text-align:center;min-height:79px;color:#555f52}.day .weekday{display:block;font-size:10px;color:#9aa28f}.day strong{display:block;font-size:21px;margin:4px 0 6px;font-weight:550}.day.active{background:#344e40;color:white;box-shadow:0 5px 11px #324e4017}.day.active .weekday{color:#bfcec1}.day .day-dots{height:5px;display:flex;justify-content:center;gap:3px}.day-dot{height:4px;width:4px;border-radius:50%;background:#b4a2cf}.day-dot.confirmed{background:#77a894}.day.active .day-dot{background:#f5d2b5}.day:disabled{background:#fafaf7;opacity:.4}.day-heading{display:flex;align-items:center;justify-content:space-between;margin:29px 0 20px;gap:10px}.day-heading h2{font-size:22px;font-weight:600;letter-spacing:-.6px;margin:0}.day-heading p{font-size:12px;color:#909787;margin:7px 0 0}.source-badge{font-size:10px;color:#468576;background:#eaf1e9;border-radius:8px;padding:8px 10px;white-space:nowrap}.source-badge.future{color:#a47a49;background:#f7eee0}.filter-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.filters{display:flex;gap:5px;background:#edefe7;padding:4px;border-radius:10px}.filters button{border:0;background:transparent;color:#949b8d;font-size:11px;padding:7px 13px;border-radius:7px}.filters button.active{background:white;color:#4d5c49;box-shadow:0 1px 4px #253a3210}.legend{display:flex;gap:13px;font-size:10px;color:#92998b}.legend span{display:flex;align-items:center;gap:5px}.dot{width:6px;height:6px;border-radius:50%;display:inline-block}.dot.free{background:#83ad93}.dot.busy{background:#d3b5a7}.dot.mine{background:#aa9dcd}.specialists{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;align-items:start}.specialist{border:1px solid var(--line);background:#fff;border-radius:18px;overflow:hidden}.specialist-head{padding:19px 19px 15px;display:flex;align-items:center;gap:11px;border-bottom:1px solid #f0f1eb}.specialist-icon{width:37px;height:37px;display:grid;place-items:center;background:#f2f0e8;border-radius:12px;font-size:20px;color:#a69774;flex-shrink:0}.specialist:nth-child(3n+2) .specialist-icon{color:#9386af;background:#f1edf5}.specialist:nth-child(3n+3) .specialist-icon{color:#77a08d;background:#ecf3ed}.specialist h3{font-size:13px;font-weight:600;margin:0;line-height:1.4}.specialist-head p{font-size:10px;margin:4px 0 0;color:#939b8b;line-height:1.5}.slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:15px}.slot{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;border:1px solid #dceadd;background:#f3f8f2;border-radius:10px;padding:10px 11px;min-height:62px;text-align:left;color:#518065}.slot:hover{background:#e7f2e6}.slot-time{font-size:12px;font-weight:600;white-space:nowrap}.slot-time small{font-size:10px;font-weight:400;opacity:.75}.slot-status{font-size:9px}.slot.busy{background:#faf6f2;border-color:#eee2da;color:#af998a;opacity:1}.slot.mine,.slot.recorded{background:#f1edf8;border-color:#e2d8f0;color:#8570ac;opacity:1}.slot.pending{background:#fff5e8;border:1px dashed #e8cda9;color:#af8558}.slot.planned{background:#f4f6f0;border-color:#e3e8da;color:#7f8e70}.slot.past{opacity:.55}.specialist-foot{padding:0 17px 15px;font-size:9px;color:#aaaF9e}.empty{grid-column:1/-1;text-align:center;padding:45px 18px;border:1px dashed #dce0d3;border-radius:17px;color:#919b87;font-size:13px;line-height:1.7}.empty b{display:block;color:#66725d;font-weight:500;font-size:16px;margin-bottom:6px}.notice{background:#fff0dd;color:#98703f;font-size:12px;line-height:1.7;padding:13px 17px;border-radius:11px;margin:0 0 17px}.notice.demo{background:#ece8f5;color:#837197}.my-lessons{display:grid;gap:10px}.lesson{display:flex;align-items:center;justify-content:space-between;gap:15px;background:white;border:1px solid var(--line);padding:19px;border-radius:15px}.lesson-date{width:49px;flex-shrink:0;text-align:center;background:#f4f5ee;border-radius:10px;padding:8px}.lesson-date strong{font-size:21px;font-weight:600}.lesson-date span{display:block;font-size:10px;color:#99a08f}.lesson-main{flex:1}.lesson-main h3{font-size:13px;margin:0 0 6px;font-weight:600}.lesson-main p{font-size:11px;color:#919b87;margin:0;line-height:1.6}.lesson-badge{font-size:10px;padding:6px 9px;border-radius:7px;background:#f1edf8;color:#8570ac}.lesson-badge.pending{background:#fff1db;color:#ad8555}.lesson-badge.missed{background:#fae7e1;color:#ad7c68}.remove-button{border:0;background:transparent;color:#a59487;font-size:11px;padding:8px}.gate{border:1px solid var(--line);background:white;border-radius:20px;padding:40px;text-align:center;max-width:540px;margin:10px auto 50px}.gate-icon{font-size:37px;color:var(--accent)}.gate h2{font-weight:600}.gate p{font-size:14px;color:#93998f;line-height:1.8}.gate .primary{margin-top:15px}footer{display:flex;align-items:center;gap:9px;font-size:10px;color:#a0a795;padding:28px 0 35px;line-height:1.5}footer #updated{margin-left:auto}.footer-flower{font-size:20px;color:#b3bba4}dialog{border:0;border-radius:22px;padding:29px;max-width:410px;width:calc(100% - 32px);background:#fdfdf8;color:#364233;box-shadow:0 25px 80px #26332530}dialog::backdrop{background:#28342755;backdrop-filter:blur(4px)}.dialog-close{position:absolute;right:14px;top:12px;border:0;background:transparent;color:#989f90;font-size:24px}.dialog-label{font-size:10px;letter-spacing:1.5px;color:#b48f71}.dialog-title{font-size:24px;line-height:1.3;letter-spacing:-.5px;font-weight:600;margin:15px 0}.dialog-sub{font-size:13px;line-height:1.7;color:#919988}.dialog-details{border:1px solid #e7eade;background:white;border-radius:12px;padding:15px;font-size:13px;line-height:1.8;margin:19px 0}.dialog-actions{display:flex;gap:9px;margin-top:24px}.primary,.secondary{border:0;border-radius:10px;padding:12px 19px;font-size:12px;font-weight:500}.primary{background:#365644;color:white;flex:1}.primary:hover{background:#284934}.secondary{background:#eaeee2;color:#7d8b70}.toast{position:fixed;bottom:calc(23px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:#344c3e;color:white;font-size:13px;line-height:1.6;padding:13px 20px;border-radius:12px;max-width:calc(100% - 32px);width:max-content;z-index:5;box-shadow:0 5px 25px #263b3225}.loading .specialist{animation:pulse 1s infinite alternate}.skeleton{height:175px;background:#eff1e9;border-radius:18px}@keyframes pulse{to{opacity:.5}}@media(min-width:1100px){.accounts{max-width:720px}.hero-art{padding-right:75px;font-size:120px}.account{padding:20px 25px}}@media(max-width:850px){.shell{padding:0 25px}.specialists{grid-template-columns:repeat(2,minmax(0,1fr))}h1{font-size:35px}.hero-art{font-size:80px;padding-right:5px}.timezone{font-size:9px}}@media(max-width:520px){.shell{padding:0 18px;padding-top:var(--tg-content-safe-area-inset-top,0px)}.topbar{height:77px}.brand{font-size:25px}.brand-mark{width:37px;height:37px;font-size:32px}.brand-by{font-size:8px;letter-spacing:.8px}.hero{padding:29px 0 24px}.hero .eyebrow{font-size:7px;letter-spacing:1.1px}h1{font-size:29px;letter-spacing:-1.2px}.subtitle{font-size:11px;margin-top:9px;max-width:235px;line-height:1.6}.hero-art{font-size:55px;padding:0}.accounts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.account{border-radius:16px;padding:15px 13px}.account-top{gap:7px}.avatar{width:31px;height:31px;font-size:14px;flex-shrink:0}.account h3{font-size:13px}.account .caption{font-size:8px}.quota{margin:12px 0 10px;gap:4px}.quota strong{font-size:28px}.quota span{font-size:9px}.quota-foot{font-size:8px;flex-wrap:wrap;gap:3px}.section-bar{margin:24px 0 18px}.tabs{gap:19px}.tabs button{font-size:12px}.timezone{display:none}.calendar{padding:17px 12px;border-radius:16px}.calendar-heading{padding:0 4px}.calendar h2{font-size:16px}.calendar .eyebrow{font-size:7px;letter-spacing:1.3px}.week-controls{gap:2px}.today-button{font-size:9px;padding:6px}.week-controls .icon-button{width:25px;height:25px;border-radius:7px}.days{gap:5px;margin-top:17px}.day{border-radius:10px;min-height:70px;padding:10px 0 8px}.day strong{font-size:18px}.day .weekday{font-size:8px}.day-heading{margin:23px 0 15px;align-items:flex-start}.day-heading h2{font-size:19px}.day-heading p{font-size:10px;line-height:1.7;max-width:240px;margin-top:5px}.source-badge{font-size:8px;padding:7px 8px;margin-top:2px}.filter-bar{display:block;margin-bottom:15px}.filters{display:inline-flex}.filters button{font-size:10px;padding:6px 12px}.legend{margin-top:12px;gap:15px;font-size:9px}.specialists{grid-template-columns:1fr;gap:12px}.specialist-head{padding:16px}.specialist h3{font-size:14px}.specialist-head p{font-size:11px}.slot-grid{grid-template-columns:repeat(3,minmax(0,1fr));padding:13px;gap:7px}.slot{min-height:59px;padding:9px 8px}.slot-time{font-size:11px}.slot-time small{font-size:8px}.slot-status{font-size:8px}.specialist-foot{font-size:9px;padding:0 15px 14px}footer{flex-wrap:wrap;font-size:9px;gap:6px;padding-bottom:calc(24px + env(safe-area-inset-bottom))}footer #updated{margin-left:25px;width:100%}.lesson{padding:13px;gap:10px;flex-wrap:wrap}.lesson-main h3{font-size:12px}.lesson-main p{font-size:10px}.lesson-badge{margin-left:59px}.remove-button{margin-left:auto}.gate{padding:28px 21px}.notice{font-size:10px;padding:10px 12px}.dialog-title{font-size:22px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Readable status labels, including narrow phone screens. */
.slot{color:#38674c}.slot.busy{color:#866854}.slot.mine,.slot.recorded{color:#6c528b}.slot.pending{color:#8b6335}.slot.planned{color:#5e704b}
.slot-status{font-size:10px}.legend,.specialist-foot,.day-heading p,.account .caption,.quota-foot,.timezone,footer{color:#6e7a66}.specialist-head p{color:#72816b}
@media(max-width:520px){.slot-status{font-size:10px}.slot-time{font-size:12px}.slot-time small{font-size:9px}.account .caption{font-size:9px}.quota span{font-size:10px}.quota-foot{font-size:9px}.legend{font-size:10px}}
/* Compact summary and one card per day. */
.shell{padding-top:16px}
.accounts-panel{background:#fff;border:1px solid var(--line);border-radius:17px;padding:13px 17px 16px}
.accounts-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.accounts-heading h2{font-size:12px;font-weight:550;margin:0;color:#6e7a66}
.accounts-tools{display:flex;align-items:center;gap:10px}
#accounts-updated{font-size:10px;color:#7c8675}
.accounts-tools .icon-button{width:29px;height:29px;border-radius:9px}
.accounts-tools .icon-button svg{width:17px;height:17px}
.accounts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;max-width:none}
.account{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:8px;row-gap:9px;padding:0 18px 0 0;border:0;border-radius:0;background:none;overflow:visible}
.account:nth-child(even){border-left:1px solid var(--line);padding:0 0 0 18px}
.account-top{gap:8px}.account h3{font-size:14px;font-weight:550}
.account .avatar{width:28px;height:28px;font-size:13px}
.account .quota{margin:0;gap:4px}.account .quota strong{font-size:24px;font-weight:550;letter-spacing:-.8px}
.account .quota span{font-size:11px;white-space:nowrap;color:#818b78}
.account .quota-bar{grid-column:1/-1;height:3px}
.account-error{grid-column:1/-1;font-size:10px;color:#98703f;margin:0}
.section-bar{margin:17px 0 19px}
.lesson-day{border:1px solid var(--line);background:white;border-radius:16px;overflow:hidden}
.lesson-day-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:16px 18px;background:#f9faf5;border-bottom:1px solid var(--line)}
.lesson-day-heading h3{font-size:15px;font-weight:600;margin:0;letter-spacing:-.2px}
.lesson-day-heading>span{font-size:10px;color:#7d8776;white-space:nowrap}
.lesson{display:flex;align-items:center;gap:16px;padding:16px 18px;background:transparent;border:0;border-radius:0;flex-wrap:nowrap}
.lesson+.lesson{border-top:1px solid #eef0e7}
.lesson-time{width:49px;flex-shrink:0;display:flex;flex-direction:column;gap:4px}
.lesson-time strong{font-size:14px;font-weight:550}.lesson-time span{font-size:11px;color:#8a9480}
.lesson-main{min-width:0}.lesson-main h4{font-size:13px;font-weight:550;margin:0 0 5px;line-height:1.5}
.lesson-main p{font-size:11px;line-height:1.6;color:#75816b;margin:0}
.lesson-main p.lesson-note{font-size:10px;margin-top:5px;color:#8a9480}
.lesson-actions{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex-shrink:0}
.lesson-badge{margin:0;white-space:nowrap}
.remove-button{margin:0;padding:4px 0;font-size:10px}
@media(max-width:520px){
  .shell{padding-top:calc(12px + var(--tg-content-safe-area-inset-top,0px))}
  .accounts-panel{padding:10px 12px 13px;border-radius:14px}
  .accounts-heading{margin-bottom:8px}.accounts-heading h2{font-size:11px}
  .accounts-tools{gap:7px}#accounts-updated{font-size:9px}
  .account{padding-right:10px;column-gap:4px;row-gap:8px}.account:nth-child(even){padding-left:10px}
  .account-top{gap:6px}.account .avatar{width:24px;height:24px;font-size:11px}
  .account h3{font-size:12px}.account .quota strong{font-size:22px}.account .quota span{font-size:10px}
  .section-bar{margin:13px 0 15px}
  .lesson-day-heading{padding:13px}.lesson-day-heading h3{font-size:14px}
  .lesson{padding:13px;gap:10px}.lesson-time{width:40px}.lesson-time strong{font-size:12px}.lesson-time span{font-size:10px}
  .lesson-main h4{font-size:12px}.lesson-main p{font-size:11px}.lesson-actions{max-width:101px}
  .lesson-badge{font-size:9px;padding:5px 7px;white-space:normal;text-align:right}.remove-button{font-size:9px}
}
@media(max-width:350px){.account .avatar{display:none}.account .quota strong{font-size:20px}.lesson{gap:8px}.lesson-actions{max-width:90px}}
/* Known slots remain visible while live occupancy is being checked. */
.preview .slot,.slot.unknown{background:#f0f2ed;border-color:#e0e5dc;color:#7b8874;opacity:1}
.preview .slot.pending{border-style:dashed}
.preview .slot.past{opacity:.65}
