:root{--navy: #002d52;--navy-dark: #00233d;--blue: #0077cc;--blue-dark: #005c9e;--blue-soft: #e6f1fa;--text: #002d52;--muted: #666666;--bg: #ffffff;--panel: #f5f5f5;--surface: #ffffff;--border: #e3e3e3;--radius: 12px;--shadow: 0 1px 2px rgba(0, 45, 82, .05), 0 10px 30px rgba(0, 45, 82, .07);--font: "Helvetica Neue", Helvetica, Arial, sans-serif;--mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{margin:0}body{font-family:var(--font);color:var(--text);background:var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:780px;margin:0 auto;padding:0 20px 64px}.appbar{background:var(--navy);margin-bottom:28px}.appbar-inner{max-width:780px;margin:0 auto;height:56px;padding:0 20px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:11px;font-weight:800;font-size:18px;text-transform:uppercase;letter-spacing:.03em;color:#fff}.brand .logo{width:22px;height:22px;border-radius:5px;background:var(--blue)}.brand-logo{height:30px;width:auto;display:block}.appbar .btn-ghost{border-color:#fff6;color:#fff}.appbar .btn-ghost:hover{background:#ffffff26;border-color:#ffffff8c;color:#fff}.appbar .muted{color:#fffc}.muted{color:var(--muted)}.uin{font:inherit;font-size:14px;padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--navy)}.uin-wide{min-width:230px;flex:1 1 230px}.ustatus{font-family:var(--mono);font-size:12px;white-space:nowrap}.ustatus.ok{color:#2c7a4b}.ustatus.wait{color:#b8860b}.usersbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:6px 0 10px}.iconbtn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:32px;border:1.5px solid var(--border);background:#fff;border-radius:8px;color:var(--navy);font-size:14px;cursor:pointer;transition:.12s}.iconbtn:hover:not(:disabled){border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}.iconbtn.danger:hover:not(:disabled){border-color:#c60101;color:#c60101;background:#fdecec}.iconbtn:disabled{opacity:.4;cursor:not-allowed}.pager{display:flex;align-items:center;gap:12px;margin-top:16px}.uform{display:flex;flex-direction:column;gap:12px}.uform label{display:flex;flex-direction:column;gap:4px;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.uform .uin{width:100%;font-family:var(--font);font-size:15px}.req{color:#c60101}.uin.invalid{border-color:#c60101}.field-err{color:#c60101;font-family:var(--font);font-size:12px;text-transform:none;letter-spacing:0;margin-top:3px}.uform .setrow{display:flex;gap:12px}.uform .setrow label{flex:1}.ucolor{width:100%;height:40px;padding:3px;border:1px solid var(--border);border-radius:8px;background:#fff;cursor:pointer}.uform .ucheck{flex-direction:row;align-items:center;gap:8px;text-transform:none;font-family:var(--font);font-size:14px;color:var(--navy)}.uform .ucheck input{width:auto;cursor:pointer}.capslist{display:flex;flex-direction:column;gap:8px;margin:6px 0 20px;max-width:420px}.caprow{display:flex;align-items:center;justify-content:space-between;gap:12px}.caplabel{color:var(--navy)}.studioblock{margin-bottom:26px}.studiorow{display:flex;gap:10px;align-items:stretch}.selwrap{flex:1;min-width:0}.studiosel{-moz-appearance:none;appearance:none;-webkit-appearance:none;font-family:var(--font);font-size:16px;font-weight:600;color:var(--navy);padding:13px 42px 13px 16px;border:1.5px solid var(--border);border-radius:var(--radius);cursor:pointer;background:#fff url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><path d="M2 4.5l4 4 4-4" fill="none" stroke="%23666" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/></svg>') no-repeat right 15px center}.selwrap .studiosel{width:100%}.studiosel:hover{border-color:#c4cdd6}.studiosel:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.starbtn{flex:0 0 auto;width:54px;border:1.5px solid var(--border);border-radius:var(--radius);background:#fff;color:#cdcdcd;font-size:22px;line-height:1;cursor:pointer;transition:.15s}.starbtn:hover{border-color:#efc23c;color:#efc23c}.starbtn.on{color:#f5b301;border-color:#f5b301;background:#fff9e8}.studio-meta{margin:10px 2px 0;color:var(--muted);font-size:13px;display:flex;align-items:center;gap:6px}.studio-meta .pin{font-size:12px}.spinner{display:inline-block;width:18px;height:18px;border:2.5px solid var(--border);border-top-color:var(--blue);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.studio-pane{position:relative}.studio-pane.loading{pointer-events:none}.pane-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;align-items:flex-start;justify-content:center;padding-top:80px;background:#fff9}.studiobar .studiosel{font-size:14px;font-weight:500;padding:8px 34px 8px 12px;border-radius:8px;background-position:right 12px center}.studiobar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:18px}.studio-lbl{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}.stddef{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:13px;cursor:pointer}.stddef input{cursor:pointer}.settings .stddef{display:flex;flex-direction:row;align-items:center;gap:8px;margin:8px 0 18px}.settings .stddef input{width:auto}.appt-studio{color:var(--muted)}.modal-studio{margin:2px 0 0;color:var(--navy);font-weight:600}.usermenu{position:relative}.appbar .usermenu-btn{border:0}.usermenu-btn .caret{font-size:10px;opacity:.8;transition:transform .15s}.usermenu-btn .caret.up{transform:rotate(180deg)}.usermenu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.usermenu-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:41;min-width:160px;background:#fff;border-radius:8px;box-shadow:0 6px 24px #0000002e;padding:4px}.usermenu-item{display:block;width:100%;text-align:left;background:transparent;border:0;padding:9px 12px;border-radius:6px;font-size:14px;color:var(--navy);cursor:pointer}.usermenu-item:hover{background:var(--navy);color:#fff}.langs{display:flex;gap:2px}.langs button{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.03em;color:#ffffffa6;background:transparent;border:0;padding:5px 7px;cursor:pointer;border-radius:6px}.langs button:hover{color:#fff}.langs button.on{color:#fff;background:var(--blue)}.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-weight:600;font-size:14px;line-height:1;text-transform:uppercase;letter-spacing:.03em;border:2px solid transparent;border-radius:var(--radius);padding:13px 22px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:var(--blue-dark)}.btn-ghost{background:transparent;border-color:var(--navy);color:var(--navy)}.btn-ghost:hover{background:var(--navy);color:#fff}.btn-sm{padding:8px 13px;font-size:12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:26px}.tabs{display:flex;gap:4px;margin-bottom:18px;border-bottom:1px solid var(--border)}.tab{font-family:var(--mono);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:12px 18px;background:transparent;border:0;border-bottom:3px solid transparent;margin-bottom:-1px;color:var(--muted);cursor:pointer}.tab.on{color:var(--navy);border-bottom-color:var(--blue)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#002d5273;display:flex;align-items:center;justify-content:center;padding:20px;z-index:50}.modal{background:#fff;border-radius:var(--radius);box-shadow:0 24px 60px #00000047;padding:28px;width:100%;max-width:420px}.modal-title{margin:0 0 6px;font-size:22px;font-weight:800;color:var(--navy);text-transform:uppercase;letter-spacing:-.01em}.modal-when{margin:0 0 20px;color:var(--muted);font-weight:600}.seg-modal{display:flex;flex-direction:column;align-items:stretch;width:100%}.seg-modal .seg-btn{text-align:center;padding:13px}.seg-modal .seg-btn+.seg-btn{border-left:0;border-top:2px solid var(--navy)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.btn:disabled{opacity:.45;cursor:not-allowed}.stack>*+*{margin-top:16px}.hero{padding:76px 0 56px;max-width:640px}.hero h1{font-size:52px;line-height:1.05;margin:0 0 20px;letter-spacing:-.01em;font-weight:800;text-transform:uppercase;color:var(--navy);max-width:18ch;text-wrap:balance}.hero p{font-size:18px;color:var(--muted);margin:0 0 32px;max-width:42ch;text-wrap:pretty}.section-title{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--navy);font-weight:600;margin:0 0 16px}.picker-label{display:block;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:8px}.pickgroup{margin-bottom:24px}.seg{display:inline-flex;flex-wrap:wrap;border:2px solid var(--navy);border-radius:var(--radius);overflow:hidden}.seg-btn{font-family:var(--mono);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:10px 15px;background:#fff;color:var(--navy);border:0;cursor:pointer}.seg-btn+.seg-btn{border-left:2px solid var(--navy)}.seg-btn.on{background:var(--navy);color:#fff}.field{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.daynav{display:flex;align-items:center;gap:14px;margin-bottom:18px}.daynav>.btn:last-child{margin-left:auto}.trainer{padding:4px 0}.tr-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.tr-head h2{margin:0}.tr-date{width:auto;flex:0 0 auto}.daygrid{position:relative;margin:8px 0 0;border-top:1px solid var(--border)}.dg-hour{position:absolute;left:0;right:0;height:0;border-top:1px solid #eef1f4}.dg-slotline{position:absolute;left:0;right:0;height:0;border-top:1px dashed #e6ebef;pointer-events:none}.dg-hover{position:absolute;left:0;right:2px;box-sizing:border-box;background:var(--blue-soft);border:1px solid var(--blue);border-radius:4px;pointer-events:none;display:flex;align-items:center;z-index:2}.dg-hovlbl{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--blue);padding:0 6px;white-space:nowrap}.dg-hlabel{position:absolute;left:0;top:-7px;width:50px;text-align:right;font-family:var(--mono);font-size:11px;color:var(--muted);background:#fff;padding-right:4px}.dg-area{position:absolute;left:58px;right:2px;top:0;bottom:0;cursor:copy}.dg-appt{position:absolute;box-sizing:border-box;overflow:hidden;background:var(--blue-soft);border-left:3px solid var(--blue);border-radius:4px;padding:0 6px;font-size:11.5px;line-height:1.25;color:var(--navy);cursor:default}.dg-appt:hover{filter:brightness(.97)}.dg-l1{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dg-t{font-family:var(--mono);font-size:11px;color:var(--muted);margin-right:4px}.dg-l2,.dg-note{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dg-l2{color:var(--muted)}.dg-note{color:#8a6d1a}.dg-acts{position:absolute;top:1px;right:1px;z-index:5;display:none;gap:2px}.dg-appt:hover .dg-acts{display:flex}.dg-add,.dg-x{border:1px solid var(--border);border-radius:3px;background:#ffffffeb;cursor:pointer;font-size:11px;line-height:1;padding:2px 4px;font-weight:700}.dg-add{color:var(--blue)}.dg-add:hover{background:var(--blue);color:#fff;border-color:var(--blue)}.dg-x{color:#c62828}.dg-x:hover{background:#c62828;color:#fff;border-color:#c62828}.dg-now{position:absolute;left:0;right:0;height:0;border-top:2px solid #e01e1e;z-index:6;pointer-events:none}.dg-now:before{content:"";position:absolute;left:-3px;top:-4px;width:7px;height:7px;border-radius:50%;background:#e01e1e}.tr-zoom{display:inline-flex;align-items:center;gap:5px;margin-left:auto}.overlap-warn{margin-top:14px;padding:10px 12px;background:#fff7ed;border:1px solid #f0b26b;border-radius:var(--radius);font-size:13px;color:#7a4a12}.overlap-title{font-weight:700;margin:0 0 6px}.overlap-warn ul{margin:0;padding-left:18px}.overlap-warn li{margin:2px 0}.btn-warn{background:#e8850c;border-color:#e8850c;color:#fff}.btn-warn:hover{background:#cf760a;border-color:#cf760a}.btn-danger{background:#c62828;border-color:#c62828;color:#fff}.btn-danger:hover{background:#a91f1f;border-color:#a91f1f}.modal-sm{max-width:380px}.confirm-msg{font-weight:600;margin:0 0 4px}.confirm-sub{color:var(--muted);font-family:var(--mono);font-size:13px;margin:0 0 4px}.uform-row{display:flex;gap:12px}.uform-row>label{flex:1 1 auto}.uform-row .dur-field{flex:0 0 110px}.segmented{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.segmented button{border:0;background:#fff;padding:8px 14px;font-family:var(--font);font-size:13px;color:var(--navy);cursor:pointer}.segmented button+button{border-left:1px solid var(--border)}.segmented button.on{background:var(--blue);color:#fff}.custpick{position:relative}.custpick-in{display:flex;gap:6px;align-items:center}.custclear{border:1px solid var(--border);background:#fff;border-radius:var(--radius);width:34px;align-self:stretch;cursor:pointer;color:var(--muted);font-size:13px}.custresults{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 2px);margin:0;padding:4px;list-style:none;background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #0000001f;max-height:220px;overflow:auto}.custresults li{padding:8px 10px;border-radius:6px;cursor:pointer;font-size:13px}.custresults li:hover{background:var(--blue-soft)}.custresults li span{color:var(--muted)}.uform textarea.uin{resize:vertical;font-family:var(--font)}.dayname{position:relative;font-weight:700;color:var(--navy);font-size:15px;text-transform:capitalize;cursor:pointer;border-bottom:2px dashed var(--border);padding-bottom:2px}.dayname:hover{border-bottom-color:var(--blue)}.datewrap{position:relative}.calpop{position:absolute;top:150%;left:50%;transform:translate(-50%);z-index:40;width:258px;background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.cal-title{font-weight:700;color:var(--navy);text-transform:capitalize;font-size:14px}.cal-nav{border:0;background:transparent;cursor:pointer;color:var(--navy);padding:4px 9px;border-radius:6px;font-size:12px}.cal-nav:hover{background:var(--blue-soft);color:var(--blue)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-dow{text-align:center;font-family:var(--mono);font-size:10px;text-transform:uppercase;color:var(--muted);padding:4px 0}.cal-day{border:0;background:transparent;border-radius:6px;padding:7px 0;font-family:var(--mono);font-size:13px;color:var(--navy);cursor:pointer}.cal-day:hover:not(:disabled){background:var(--blue-soft);color:var(--blue)}.cal-day.selected{background:var(--blue);color:#fff}.cal-day:disabled{color:#ccc;cursor:default}.cal-day.empty{visibility:hidden}.cal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30}input[type=date]{font:inherit;padding:11px 13px;border:1px solid var(--border);border-radius:var(--radius);background:#fff;color:var(--text)}.zoombar{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-bottom:10px}.zoombar .zoomlbl{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-right:2px}.zoombtn{width:30px;height:30px;border:1px solid var(--border);background:#fff;border-radius:var(--radius);font-family:var(--mono);font-weight:600;font-size:17px;line-height:1;color:var(--navy);cursor:pointer;transition:.12s}.zoombtn:hover:not(:disabled){border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}.zoombtn:disabled{opacity:.4;cursor:not-allowed}.slotgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--slot-w, 90px),1fr));gap:8px}.slot{border:1px solid var(--border);background:#fff;border-radius:var(--radius);padding:var(--slot-pad, 12px) 0;text-align:center;font-family:var(--mono);font-weight:600;font-size:var(--slot-fs, 14px);color:var(--navy);cursor:pointer;transition:.12s}.slot:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}.slot:disabled{cursor:not-allowed}.slot.taken,.slot.taken:hover{color:#b3b3b3;background:#f5f5f5;border-color:#ededed;text-decoration:line-through}.slot.unavailable,.slot.unavailable:hover{color:#b0b0b0;background:#fafafa;border-color:#ededed}.slot.mine{color:#fff;background:var(--blue);border-color:var(--blue);font-weight:700;cursor:pointer}.slot.mine:hover{background:var(--blue-dark);border-color:var(--blue-dark)}.legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:16px;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.legend .sw{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px;border:1px solid var(--border)}.legend .sw-mine{background:var(--blue);border-color:var(--blue)}.legend .sw-taken{background:#f5f5f5}.legend .sw-soon{background:#fafafa}.appt{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius)}.appt+.appt{margin-top:8px}.feed{font-size:13px;color:var(--muted);word-break:break-all;background:var(--panel);border:1px dashed var(--border);border-radius:var(--radius);padding:13px 15px}.empty{color:var(--muted);font-size:14px;padding:4px 0}.error{background:#fdecec;color:#c60101;border:1px solid #ffc2c2;border-radius:var(--radius);padding:12px 14px}@media (max-width: 640px){.container{padding:0 14px 48px}.appbar-inner{height:auto;min-height:52px;padding:9px 14px;flex-wrap:wrap;row-gap:8px}.field{margin-left:auto;gap:8px;flex-wrap:wrap;justify-content:flex-end}.appbar .muted,.feed-label{display:none}.brand-logo{height:26px}.hero{padding:44px 0 36px;max-width:none}.hero h1{font-size:38px}.hero p{font-size:16px}.daynav{flex-wrap:wrap;gap:8px 10px}.dayname{font-size:14px}.calpop{width:min(300px,calc(100vw - 32px));left:0;transform:none}.slotgrid{grid-template-columns:repeat(auto-fill,minmax(var(--slot-w, 72px),1fr));gap:6px}.modal{padding:22px}.appt{flex-wrap:wrap;gap:8px}}.types-bar{display:flex;width:100%;flex-wrap:wrap;margin-bottom:0}.types-bar .seg-btn{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;padding:13px 12px}.tdot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:7px;vertical-align:middle}.modal-type{margin:-6px 0 18px;font-weight:600}.login-wrap{display:flex;justify-content:center;padding:64px 16px}.login-card{background:#fff;border:1px solid #ececec;border-radius:16px;box-shadow:0 10px 34px #00000017;padding:40px 36px 32px;width:350px;max-width:100%;display:flex;flex-direction:column;gap:16px;text-align:center}.login-lock{font-size:30px;line-height:1}.login-title{margin:-4px 0 4px;font-size:20px}.login-input{padding:12px 14px;font-size:15px;border:1px solid #cfcfcf;border-radius:10px;width:100%;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.login-input:focus{outline:none;border-color:#0a3d62;box-shadow:0 0 0 3px #0a3d6221}.login-btn{width:100%;padding:12px;font-size:15px}.login-err{color:#c0392b;font-size:13px;margin:0}.small{font-size:13px}.admin h2{margin:8px 0 4px}.admin h3{margin:20px 0 8px;font-size:15px}.tblwrap{overflow-x:auto}.atbl{width:100%;border-collapse:collapse;margin:10px 0;font-size:14px}.atbl th{text-align:left;padding:6px 8px;border-bottom:2px solid #e5e5e5;font-size:12px;color:#666;vertical-align:bottom}.atbl td{padding:8px;border-bottom:1px solid #eee;vertical-align:middle;overflow-wrap:anywhere}.typedot{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:8px;vertical-align:middle}.type-note{margin:4px 0 0;font-size:13px;color:#8a6d1a;background:#fdf6e3;border:1px solid #f0e2b6;border-radius:8px;padding:8px 12px}.row-actions{white-space:nowrap;text-align:right}.row-actions>*+*{margin-left:6px}.settings .setrow{display:flex;gap:20px;flex-wrap:wrap}.settings label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#444}.settings .num{width:90px;padding:8px;border:1px solid #ccc;border-radius:6px}.whlist{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}.whrow{display:flex;align-items:center;gap:10px}.whday{display:inline-flex;align-items:center;gap:6px;width:56px}.whrow .tin{width:62px;padding:6px 8px;border:1px solid #ccc;border-radius:6px;text-align:center}.whrow .tin:disabled{background:#f4f4f4;color:#aaa}
