:root{color-scheme:light;--paper:#fff7f3;--white:#fffefd;--ink:#382f36;--muted:#857a80;--line:#eee1dc;--line-strong:#e6d4cd;--green:#537d65;--green-soft:#e7f0e4;--red:#c7686c;--red-soft:#f9e4df;--purple:#8271a9;--purple-soft:#eee8f7;--blue:#5b7194;--blue-soft:#e8edf7;--yellow:#f5d77d;--hour-height:60px}
*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;color:var(--ink);background:radial-gradient(ellipse at 8% 12%,#ffe6dc 0,transparent 27rem),radial-gradient(ellipse at 92% 4%,#eee8f7 0,transparent 28rem),var(--paper);font-family:ui-rounded,"Avenir Next",system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{cursor:pointer}.page-shell{max-width:1400px;margin:auto;padding:0 40px 28px}
.topbar{height:70px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ebddd8}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-size:10px;font-weight:850;letter-spacing:.13em}.brand i{font-style:normal;color:#d8877b;padding:0 3px}.brand-icon{width:31px;height:31px;border-radius:10px;background:#fff;display:grid;place-items:center;box-shadow:0 4px 12px #b96f6122}.brand-icon svg{width:26px;height:26px}.sync-status{display:flex;align-items:center;gap:8px;background:#ffffffad;border:1px solid #e9ded8;border-radius:999px;padding:8px 12px;color:#6d7867;font-size:10px;font-weight:700}.sync-dot{width:8px;height:8px;border-radius:50%;background:#d3ac59;box-shadow:0 0 0 3px #f8efd7}.sync-status.live .sync-dot{background:#70a779;box-shadow:0 0 0 3px #e1f0df}.sync-status.offline{color:#a65c5a}.sync-status.offline .sync-dot{background:#cf7774;box-shadow:0 0 0 3px #f8e4e2}
.hero{min-height:270px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:24px;padding:26px 10px 20px}.hero-copy{padding:10px 0}.eyebrow{margin:0 0 8px;color:#aa766c;font-size:9px;font-weight:850;letter-spacing:.17em}.sparkle{color:#e5b849;font-size:13px;margin-right:4px}h1{margin:0;font:400 clamp(42px,5.3vw,65px)/.98 Georgia,"Times New Roman",serif;letter-spacing:-.055em;color:#46353e}h1 em{font-weight:400;color:#c76770}.hero-subtitle{max-width:505px;margin:15px 0 13px;color:#766c72;font-size:13px;line-height:1.6}.hero-tags{display:flex;gap:7px;flex-wrap:wrap}.hero-tags span{padding:7px 10px;border:1px solid #f0ded5;border-radius:999px;background:#fffaf6;color:#80716e;font-size:9px;font-weight:700}.hero-art{position:relative;width:min(100%,430px);justify-self:end}.hero-art svg{position:relative;z-index:1;width:100%;height:auto;display:block;filter:drop-shadow(0 14px 12px #80574a18)}.art-sun{position:absolute;width:150px;height:150px;border-radius:50%;background:#fff0ba;right:15%;top:10%;opacity:.8}.art-caption{position:absolute;z-index:2;right:3%;bottom:3%;padding:7px 11px;border-radius:999px;background:#fffefd;color:#c16c6f;font-size:9px;font-weight:850;letter-spacing:.08em;box-shadow:0 4px 14px #8e5d5020}
.schedule-section{margin-top:4px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.stage-picker{display:flex;gap:8px;align-items:center}.stage-button{min-width:145px;padding:10px 13px;border-radius:13px;border:1px solid #ecded9;background:#fffefa;color:#71656b;text-align:left;box-shadow:0 3px 9px #845c4c08;transition:transform .16s,border-color .16s,box-shadow .16s}.stage-button:hover{transform:translateY(-2px);box-shadow:0 7px 18px #845c4c16}.stage-button[aria-pressed=true]{color:#fff;border-color:transparent;box-shadow:0 7px 18px #965d5d24}.stage-button[data-index="0"][aria-pressed=true]{background:#cf7476}.stage-button[data-index="1"][aria-pressed=true]{background:#8a79b2}.stage-button[data-index="2"][aria-pressed=true]{background:#5c9278}.stage-symbol{display:inline-grid;place-items:center;width:21px;height:21px;margin-right:6px;border-radius:7px;background:#fff5ed;color:#b77368;font-size:12px;vertical-align:middle}.stage-button[aria-pressed=true] .stage-symbol{background:#ffffff37;color:#fff}.stage-name{font-size:10px;font-weight:800}.stage-number{display:block;margin:0 0 5px 1px;font:14px Georgia,serif;opacity:.72}.legend{display:flex;flex-wrap:wrap;gap:13px;color:#82777c;font-size:9px}.legend span{display:inline-flex;align-items:center;gap:6px}.legend-dot{width:9px;height:9px;border-radius:3px}.legend-dot.lesson{background:#e49683}.legend-dot.exam{background:#edbb62}.legend-dot.reserved{background:#8271a9}.legend-dot.free{background:#fff;border:1px solid #d9cfc8}
.calendar-toolbar{display:flex;justify-content:space-between;align-items:end;gap:18px;margin:18px 0 10px}.week-title{display:flex;align-items:center;gap:12px}.week-arrows{display:flex;gap:5px}.arrow-button{width:31px;height:31px;border-radius:50%;border:1px solid #e5d4ce;background:#fffaf7;color:#856c70;font:24px/1 Georgia,serif}.arrow-button:hover{background:#f8e7e0;border-color:#d7aea6}.week-title .eyebrow{font-size:8px;color:#aa8c82;margin-bottom:3px}.week-title h2,.card-heading h2{margin:0;font:400 21px Georgia,serif;letter-spacing:-.02em}.tap-hint{margin:0 2px 4px;color:#9a8c90;font-size:9px}.tap-hint span{color:#cf7974;font-size:13px}.calendar-card{border:1px solid #ecdfda;border-radius:15px;background:#fffefaed;overflow:hidden;box-shadow:0 10px 25px #9d6d5d0c}.calendar-scroll{overflow-x:auto}.week-grid{min-width:830px;display:grid;grid-template-columns:63px repeat(5,minmax(125px,1fr))}.axis-head,.day-head{height:54px;border-bottom:1px solid #eee4df;display:flex;flex-direction:column;justify-content:center;padding:7px 10px}.axis-head{color:#aaa0a1;font-size:9px;align-items:center;letter-spacing:.08em}.day-head{border-left:1px solid #eee4df}.day-head strong{text-transform:capitalize;color:#63565e;font-size:10px;font-weight:800}.day-head span{margin-top:3px;color:#a99d9c;font-size:9px}.day-head.today strong{color:#58906d}.time-axis,.day-column{min-width:0}.time-track,.day-track{height:calc(var(--hour-height)*9);position:relative}.time-label{position:absolute;right:8px;transform:translateY(-50%);color:#aaa0a1;font-size:9px;font-variant-numeric:tabular-nums}.day-column{border-left:1px solid #eee4df}.day-track{background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--hour-height) - 1px),#eee6e1 calc(var(--hour-height) - 1px),#eee6e1 var(--hour-height))}.day-track:before{content:"";position:absolute;z-index:0;inset:0;pointer-events:none;background:repeating-linear-gradient(to bottom,transparent 0,transparent 29.5px,#f3eeea 29.5px,#f3eeea 30px)}.day-track:after{content:"";position:absolute;z-index:1;inset:0;cursor:crosshair}.event-block{position:absolute;z-index:2;left:4px;right:4px;display:flex;flex-direction:column;justify-content:center;padding:3px 5px;border:0;border-radius:6px;text-align:left;overflow:hidden;line-height:1.05;cursor:default}.event-block.lesson{background:#f8e4db;color:#a95e55;border-left:3px solid #e38b7d}.event-block.exam{background:#fbefcf;color:#90651c;border-left:3px solid #e1af4a}.event-block.booking{background:#ebe5f6;color:#6b5b91;border-left:3px solid #8777b5;cursor:pointer}.event-label{font-size:9px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-time{margin-top:3px;font-size:8px;font-variant-numeric:tabular-nums;opacity:.82}.calendar-footer{padding:10px 13px;border-top:1px solid #eee4df;color:#897d80;font-size:9px}.mini-star{color:#d99a5f;margin-right:4px;font-size:12px}
.bottom-grid{display:grid;grid-template-columns:minmax(290px,.86fr) minmax(350px,1.14fr);gap:14px;margin-top:16px}.booking-card,.reservations-card{padding:19px 21px;border:1px solid #ecdfda;border-radius:15px;background:#fffefaed;box-shadow:0 8px 22px #9d6d5d0a}.booking-card{background:linear-gradient(145deg,#fffefb,#fff8f0)}.reservations-card{background:linear-gradient(145deg,#fffefd,#fbf8ff)}.card-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.card-heading .eyebrow{color:#ab8c82;font-size:8px;margin-bottom:4px}.card-heading h2{font-size:20px}.heading-sticker{width:31px;height:31px;border-radius:10px;background:#fae7c9;color:#ba7b52;display:grid;place-items:center;font-size:17px;transform:rotate(5deg)}.booking-card label{display:block;margin:11px 0 5px;color:#7b7076;font-size:9px;font-weight:800}.booking-card input,.booking-card select{width:100%;height:39px;padding:0 11px;border:1px solid #e7d9d3;border-radius:8px;outline:none;color:#3d3339;background:#fffefa;font:11px system-ui}.booking-card input:focus,.booking-card select:focus{border-color:#b38cad;box-shadow:0 0 0 3px #9c81b21a}.time-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.selected-stage{display:flex;align-items:center;gap:7px;margin-top:13px;color:#665b62;font-size:10px;font-weight:800}.stage-pin{width:8px;height:8px;border-radius:50%;background:#c87577}.availability{min-height:29px;display:flex;align-items:center;color:#5c9168;font-size:9px}.availability.error{color:#bb5e5e}.submit-button{width:100%;height:43px;display:flex;justify-content:space-between;align-items:center;padding:0 13px;border:0;border-radius:8px;color:#fff;background:linear-gradient(100deg,#cb6f76,#957eb5);font-weight:850;font-size:10px;box-shadow:0 5px 13px #bd758025;transition:transform .16s,filter .16s}.submit-button:hover:not(:disabled){transform:translateY(-1px);filter:saturate(1.15)}.submit-button:disabled{cursor:not-allowed;opacity:.48}.button-arrow{font-size:14px}.form-note{margin:8px 0 0;color:#a39899;font-size:8px;text-align:center}.count-badge{min-width:26px;height:26px;padding:0 7px;display:grid;place-items:center;border-radius:50%;background:#f3e6ef;color:#916d8e;font-size:10px;font-weight:850}.booking-list{display:grid;gap:8px}.empty-state{min-height:100px;display:grid;place-items:center;padding:17px;border:1px dashed #e4d8df;border-radius:9px;color:#988b92;font-size:10px;line-height:1.5;text-align:center}.booking-item{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;padding:9px;border:1px solid #eee4e6;border-radius:9px;background:#fffdfc}.booking-date-chip{width:39px;height:39px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:8px;background:#fae8dc;color:#b46d68;line-height:1}.booking-date-chip strong{font:17px Georgia,serif}.booking-date-chip span{margin-top:3px;font-size:8px;text-transform:uppercase}.booking-name{font-size:10px;font-weight:850}.booking-meta{margin-top:3px;color:#8a7e84;font-size:8px;line-height:1.4}.cancel-button{border:0;background:transparent;color:#af7b78;font-size:8px;padding:6px}.cancel-button:hover{color:#a23e3e;text-decoration:underline}.privacy-note{margin:11px 0 0;color:#9a8f95;font-size:8px}.privacy-note span{color:#cf7880;margin-right:3px}.footer{display:flex;justify-content:space-between;gap:16px;margin-top:17px;padding:12px 2px;border-top:1px solid #ebddd8;color:#9a8f91;font-size:9px}.toast{position:fixed;z-index:5;right:20px;bottom:20px;max-width:min(390px,calc(100vw - 32px));padding:12px 15px;border-radius:10px;color:#fff;background:#53434d;box-shadow:0 10px 28px #40323a33;font-size:10px;line-height:1.5;opacity:0;transform:translateY(9px);pointer-events:none;transition:opacity .2s,transform .2s}.toast.visible{opacity:1;transform:translateY(0)}
@media(max-width:970px){.page-shell{padding:0 24px 24px}.hero{grid-template-columns:1fr .7fr;gap:10px}.stage-button{min-width:120px}.bottom-grid{grid-template-columns:1fr}.section-heading{align-items:flex-start;flex-direction:column}.legend{margin:3px 2px}}@media(max-width:600px){.page-shell{padding:0 14px 20px}.topbar{height:60px}.brand{font-size:8px;letter-spacing:.08em}.brand-icon{width:27px;height:27px}.sync-status{font-size:8px;padding:7px 9px}.hero{display:block;padding:22px 3px 12px}.hero-copy{position:relative;z-index:2}.hero-art{width:min(68%,270px);margin:-8px 0 0 auto}.hero-subtitle{max-width:390px;font-size:11px;margin-top:11px}.hero-tags{gap:5px}.hero-tags span{font-size:8px;padding:6px 8px}.hero-art svg{margin-top:-12px}.section-heading{gap:11px}.stage-picker{width:100%;gap:5px}.stage-button{flex:1;min-width:0;padding:8px;border-radius:10px}.stage-name{font-size:8px}.stage-number{font-size:12px;margin-bottom:4px}.stage-symbol{width:17px;height:17px;font-size:10px;margin-right:3px}.calendar-toolbar{align-items:flex-start;flex-direction:column;margin-top:16px}.tap-hint{margin-left:0}.week-grid{min-width:760px;grid-template-columns:54px repeat(5,minmax(118px,1fr))}.booking-card,.reservations-card{padding:16px}.footer{flex-direction:column;gap:6px}}
