body{margin:0}#root{min-height:100svh}:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}}.legacy-shell{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;width:1126px;max-width:100%;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;margin:0 auto}@media (prefers-color-scheme:dark){.legacy-shell{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){.legacy-shell{font-size:16px}}.legacy-shell h1,.legacy-shell h2{font-family:var(--heading);color:var(--text-h);font-weight:500}.legacy-shell h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}.legacy-shell h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){.legacy-shell h1{margin:20px 0;font-size:36px}.legacy-shell h2{font-size:20px}}.legacy-shell p{margin:0}.legacy-shell code{font-family:var(--mono);color:var(--text-h);background:var(--code-bg);border-radius:4px;padding:4px 8px;font-size:15px;line-height:135%;display:inline-flex}:root{--t-bg:#f6f5f2;--t-surface:#fff;--t-surface-2:#faf9f7;--t-border:#e8e5df;--t-border-strong:#d8d4cb;--t-ink:#221f1a;--t-ink-2:#5b564c;--t-ink-3:#938d80;--t-primary:#1e5c48;--t-primary-hover:#174a3a;--t-primary-soft:#e4efe9;--t-primary-soft-border:#c4dcd1;--t-danger:#b42318;--t-danger-hover:#981b12;--t-danger-soft:#fdecea;--t-warn-soft:#fdf3e0;--t-warn-ink:#8a5306;--t-ok-soft:#e5f3ea;--t-ok-ink:#19673f;--t-shadow-sm:0 1px 2px #231e140f;--t-shadow-md:0 2px 6px #231e140f, 0 8px 24px #231e1412;--t-radius:12px;--t-radius-sm:8px;--t-font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}.tshell,.tauth{font-family:var(--t-font);color:var(--t-ink);background:var(--t-bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;text-align:left;-webkit-font-smoothing:antialiased;box-sizing:border-box;min-height:100svh;font-size:15px;line-height:1.5}.tshell *,.tshell :before,.tshell :after,.tauth *,.tauth :before,.tauth :after{box-sizing:border-box}.tshell h1,.tshell h2,.tshell h3,.tshell p,.tauth h1,.tauth p{margin:0}.tshell button,.tshell input,.tshell select,.tshell textarea,.tauth button,.tauth input{font-family:inherit;font-size:inherit}.tnav{z-index:40;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--t-border);background:#ffffffeb;position:sticky;top:0}.tnav-inner{align-items:center;gap:20px;max-width:1280px;height:60px;margin:0 auto;padding:0 20px;display:flex}.tnav-brand{letter-spacing:-.3px;color:var(--t-ink);white-space:nowrap;align-items:center;gap:8px;font-size:17px;font-weight:700;display:flex}.tnav-brand-dot{background:var(--t-primary);border-radius:50%;flex-shrink:0;width:9px;height:9px}.tnav-links{scrollbar-width:none;-ms-overflow-style:none;flex:1;align-items:center;gap:4px;display:flex;overflow-x:auto}.tnav-links::-webkit-scrollbar{display:none}.tnav-link{color:var(--t-ink-2);white-space:nowrap;border-radius:999px;padding:7px 13px;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s,color .15s}.tnav-link:hover{background:var(--t-surface-2);color:var(--t-ink)}.tnav-link.active{background:var(--t-primary-soft);color:var(--t-primary);font-weight:600}.tnav-logout{border:1px solid var(--t-border);color:var(--t-ink-2);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;padding:7px 14px;font-size:13.5px;font-weight:500;transition:border-color .15s,color .15s,background .15s}.tnav-logout:hover{border-color:var(--t-border-strong);color:var(--t-ink);background:var(--t-surface-2)}.tnav-current,.tnav-burger,.tnav-drawer,.tnav-drawer-backdrop{display:none}@media (width<=767px){.tnav-links{display:none}.tnav-inner{z-index:3;gap:12px;position:relative}.tnav-current{text-align:center;min-width:0;color:var(--t-ink-2);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:14px;font-weight:600;display:block;overflow:hidden}.tnav-burger{border:1px solid var(--t-border);cursor:pointer;background:0 0;border-radius:9px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;width:36px;height:36px;padding:0;display:inline-flex}.tnav-burger span{background:var(--t-ink-2);border-radius:2px;width:16px;height:2px;transition:transform .18s,opacity .18s;display:block}.tnav-burger.open span:first-child{transform:translateY(6px)rotate(45deg)}.tnav-burger.open span:nth-child(2){opacity:0}.tnav-burger.open span:nth-child(3){transform:translateY(-6px)rotate(-45deg)}.tnav-drawer-backdrop{z-index:39;background:#1e1a142e;animation:.15s tfade;display:block;position:fixed;inset:0}.tnav-drawer{z-index:2;background:var(--t-surface);border-bottom:1px solid var(--t-border);box-shadow:var(--t-shadow-md);opacity:0;visibility:hidden;pointer-events:none;flex-direction:column;gap:2px;padding:8px 10px 12px;transition:opacity .18s,transform .18s,visibility .18s;display:flex;position:absolute;top:100%;left:0;right:0;transform:translateY(-6px)}.tnav-drawer.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.tnav-drawer .tnav-link{border-radius:10px;padding:12px 14px;font-size:15px;display:block}}.tmain{max-width:1280px;margin:0 auto;padding:28px 20px 64px}.tpage-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.tpage-title{letter-spacing:-.4px;color:var(--t-ink);font-size:24px;font-weight:700}.tpage-subtitle{color:var(--t-ink-2);margin-top:4px;font-size:14px}.tpage-actions{flex-wrap:wrap;gap:10px;display:flex}.tcard{background:var(--t-surface);border:1px solid var(--t-border);border-radius:var(--t-radius);box-shadow:var(--t-shadow-sm)}.tcard-pad{padding:22px}.tcard-title{color:var(--t-ink);margin-bottom:4px;font-size:15px;font-weight:600}.tbtn{border-radius:var(--t-radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:7px;padding:9px 16px;font-size:14px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s,opacity .15s;display:inline-flex}.tbtn:disabled{opacity:.55;cursor:default}.tbtn-primary{background:var(--t-primary);color:#fff}.tbtn-primary:hover:not(:disabled){background:var(--t-primary-hover)}.tbtn-secondary{background:var(--t-surface);border-color:var(--t-border-strong);color:var(--t-ink)}.tbtn-secondary:hover:not(:disabled){background:var(--t-surface-2)}.tbtn-danger{background:var(--t-surface);color:var(--t-danger);border-color:#ecc8c3}.tbtn-danger:hover:not(:disabled){background:var(--t-danger-soft);border-color:#e0a9a2}.tbtn-sm{padding:6px 12px;font-size:13px}.tfield{flex-direction:column;gap:6px;display:flex}.tfield-label{color:var(--t-ink-2);font-size:13px;font-weight:600}.tinput{border-radius:var(--t-radius-sm);border:1px solid var(--t-border-strong);background:var(--t-surface);color:var(--t-ink);outline:none;width:100%;padding:9px 12px;font-size:14px;transition:border-color .15s,box-shadow .15s}.tinput:focus{border-color:var(--t-primary);box-shadow:0 0 0 3px #1e5c4824}.tinput:disabled{background:var(--t-surface-2);color:var(--t-ink-3)}.tswitch{cursor:pointer;color:var(--t-ink-2);-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:9px;font-size:13.5px;font-weight:500;display:inline-flex}.tswitch input{opacity:0;pointer-events:none;position:absolute}.tswitch-track{background:var(--t-border-strong);border-radius:999px;flex-shrink:0;width:34px;height:20px;transition:background .18s;position:relative}.tswitch-track:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .18s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.tswitch input:checked+.tswitch-track{background:var(--t-primary)}.tswitch input:checked+.tswitch-track:after{transform:translate(14px)}.talert{border-radius:var(--t-radius-sm);border:1px solid #0000;margin-bottom:16px;padding:11px 15px;font-size:14px}.talert-ok{background:var(--t-ok-soft);color:var(--t-ok-ink);border-color:#c4e0cf}.talert-error{background:var(--t-danger-soft);color:var(--t-danger);border-color:#f2c8c3}.talert-warn{background:var(--t-warn-soft);color:var(--t-warn-ink);border-color:#efd9ad}.tbadge{border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.tbadge-ok{background:var(--t-ok-soft);color:var(--t-ok-ink)}.tbadge-cancelled{color:var(--t-ink-3);background:#f2f0ec}.tbadge-past{background:var(--t-surface-2);color:var(--t-ink-3);border:1px solid var(--t-border)}.tseg{background:#edebe6;border-radius:10px;gap:2px;padding:3px;display:inline-flex}.tseg button{color:var(--t-ink-2);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:6px 14px;font-size:13.5px;font-weight:600;transition:background .15s,color .15s,box-shadow .15s}.tseg button.active{background:var(--t-surface);color:var(--t-ink);box-shadow:var(--t-shadow-sm)}.cal-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.cal-toolbar-spacer{flex:1}.cal-nav{background:var(--t-surface);border:1px solid var(--t-border-strong);border-radius:var(--t-radius-sm);align-items:center;gap:2px;display:inline-flex;overflow:hidden}.cal-nav button{color:var(--t-ink-2);cursor:pointer;background:0 0;border:none;padding:7px 12px;font-size:14px;font-weight:600;transition:background .15s,color .15s}.cal-nav button:hover{background:var(--t-surface-2);color:var(--t-ink)}.cal-title{letter-spacing:-.2px;color:var(--t-ink);min-width:150px;font-size:17px;font-weight:700}.cal-filters{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.month-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:16px;display:grid}@media (width<=900px){.month-layout{grid-template-columns:1fr}}.month-grid-head{border-bottom:1px solid var(--t-border);grid-template-columns:repeat(7,1fr);display:grid}.month-grid-head span{text-transform:uppercase;letter-spacing:.06em;color:var(--t-ink-3);text-align:center;padding:10px 8px;font-size:12px;font-weight:600}.month-grid{grid-template-columns:repeat(7,1fr);display:grid}.month-cell{border-bottom:1px solid var(--t-border);border-right:1px solid var(--t-border);background:var(--t-surface);cursor:pointer;text-align:left;border-top:none;border-left:none;flex-direction:column;gap:6px;min-height:92px;padding:8px;font-family:inherit;transition:background .12s;display:flex}.month-cell:nth-child(7n){border-right:none}.month-cell:hover,.month-cell.outside{background:var(--t-surface-2)}.month-cell.outside .month-cell-date{color:var(--t-ink-3)}.month-cell.selected{background:var(--t-primary-soft)}.month-cell-date{color:var(--t-ink-2);border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:13px;font-weight:600;display:inline-flex}.month-cell.today .month-cell-date{background:var(--t-primary);color:#fff}.month-cell-dots{flex-wrap:wrap;align-items:center;gap:3px;display:flex}.month-dot{border-radius:50%;width:7px;height:7px}.month-cell-count{color:var(--t-ink-2);font-size:11.5px;font-weight:600}@media (width<=640px){.month-cell{min-height:64px;padding:5px}}.day-panel-date{color:var(--t-ink);font-size:15px;font-weight:700}.day-panel-empty{text-align:center;color:var(--t-ink-3);padding:24px 0;font-size:13.5px}.day-panel-list{flex-direction:column;gap:8px;max-height:480px;margin-top:14px;display:flex;overflow-y:auto}.bk-row{border-radius:var(--t-radius-sm);border:1px solid var(--t-border);background:var(--t-surface);cursor:pointer;text-align:left;gap:10px;width:100%;padding:10px 12px;font-family:inherit;transition:border-color .15s,box-shadow .15s;display:flex}.bk-row:hover{border-color:var(--t-border-strong);box-shadow:var(--t-shadow-sm)}.bk-row-stripe{border-radius:4px;flex-shrink:0;align-self:stretch;width:4px}.bk-row-body{flex:1;min-width:0}.bk-row-top{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.bk-row-client{color:var(--t-ink);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.bk-row-time{color:var(--t-ink-2);white-space:nowrap;font-size:12.5px;font-weight:600}.bk-row-meta{color:var(--t-ink-2);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:12.5px;overflow:hidden}.bk-row.cancelled .bk-row-client{color:var(--t-ink-3);text-decoration:line-through}.agenda-scroll{overflow-x:auto}.agenda{--agenda-gutter:56px;--ev-inset:3px;min-width:640px;display:grid}.agenda.day{min-width:0}.agenda-head-row{border-bottom:1px solid var(--t-border);display:grid}.agenda-head-cell{text-align:center;border-left:1px solid var(--t-border);padding:10px 8px}.agenda-head-dow{text-transform:uppercase;letter-spacing:.06em;color:var(--t-ink-3);font-size:11.5px;font-weight:600}.agenda-head-date{color:var(--t-ink);margin-top:1px;font-size:16px;font-weight:700}.agenda-head-cell.today .agenda-head-date{color:var(--t-primary)}.agenda-body{display:grid;position:relative}.agenda-gutter{position:relative}.agenda-hour-label{color:var(--t-ink-3);font-size:11px;font-weight:500;position:absolute;right:8px;transform:translateY(-50%)}.agenda-col{border-left:1px solid var(--t-border);position:relative}.agenda-hline{border-top:1px solid var(--t-border);position:absolute;left:0;right:0}.agenda-now{z-index:5;pointer-events:none;background:#d3573f;height:2px;position:absolute;left:0;right:0}.agenda-now:before{content:"";background:#d3573f;border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;left:-4px}.ev{cursor:pointer;text-align:left;box-shadow:var(--t-shadow-sm);z-index:2;border:none;border-left:3px solid;border-radius:7px;padding:3px 8px;font-family:inherit;font-size:12px;line-height:1.3;transition:box-shadow .15s,filter .15s;position:absolute;overflow:hidden}.ev:hover{box-shadow:var(--t-shadow-md);filter:brightness(.98);z-index:4}.ev-time{opacity:.85;font-size:11px;font-weight:600}.ev-client{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.ev-detail{white-space:nowrap;text-overflow:ellipsis;opacity:.85;overflow:hidden}.ev.cancelled{filter:grayscale();opacity:.55}.ev.cancelled .ev-client{text-decoration:line-through}@media (width<=640px){.agenda{--agenda-gutter:40px;--ev-inset:1px;min-width:0}.agenda-head-cell{padding:8px 2px}.agenda-head-dow{letter-spacing:.04em;font-size:9.5px}.agenda-head-date{font-size:14px}.agenda-hour-label{font-size:10px;right:5px}.ev{border-left-width:2px;border-radius:5px;padding:2px 4px;font-size:10.5px}.ev-time{font-size:9.5px}}.cal-legend{flex-wrap:wrap;align-items:center;gap:14px;margin-top:14px;padding:0 4px;display:flex}.cal-legend-item{color:var(--t-ink-2);align-items:center;gap:6px;font-size:12.5px;font-weight:500;display:inline-flex}.cal-legend-swatch{border-radius:3px;width:10px;height:10px}.ttable-wrap{overflow-x:auto}.ttable{border-collapse:collapse;width:100%;min-width:860px}.ttable th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--t-ink-3);border-bottom:1px solid var(--t-border);white-space:nowrap;padding:12px 14px;font-size:12px;font-weight:600}.ttable td{color:var(--t-ink);border-bottom:1px solid var(--t-border);padding:13px 14px;font-size:14px}.ttable tbody tr:last-child td{border-bottom:none}.ttable tbody tr{transition:background .12s}.ttable tbody tr:hover{background:var(--t-surface-2)}.ttable .muted{color:var(--t-ink-3)}.tlist-cards{flex-direction:column;gap:10px;display:none}@media (width<=720px){.ttable-wrap{display:none}.tlist-cards{display:flex}}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:20px;display:grid}.stat-tile{padding:18px 20px}.stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--t-ink-3);font-size:12.5px;font-weight:600}.stat-value{letter-spacing:-.8px;color:var(--t-ink);font-variant-numeric:tabular-nums;margin-top:4px;font-size:30px;font-weight:700}.stat-hint{color:var(--t-ink-2);margin-top:2px;font-size:12.5px}.tmodal-backdrop{z-index:60;background:#1e1a1466;place-items:center;padding:20px;animation:.15s tfade;display:grid;position:fixed;inset:0}.tmodal{background:var(--t-surface);border-radius:var(--t-radius);box-shadow:var(--t-shadow-md);width:100%;max-width:420px;padding:22px;animation:.18s tpop}.tmodal-title{color:var(--t-ink);font-size:16px;font-weight:700}.tmodal-rows{flex-direction:column;margin:16px 0;display:flex}.tmodal-row{border-bottom:1px solid var(--t-border);justify-content:space-between;gap:16px;padding:8px 0;font-size:14px;display:flex}.tmodal-row:last-child{border-bottom:none}.tmodal-row dt{color:var(--t-ink-2);flex-shrink:0}.tmodal-row dd{color:var(--t-ink);text-align:right;overflow-wrap:anywhere;margin:0;font-weight:600}.tmodal-actions{justify-content:flex-end;gap:10px;display:flex}.slot-grid{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px;display:grid}.slot-chip{border-radius:var(--t-radius-sm);border:1px solid var(--t-border-strong);background:var(--t-surface);color:var(--t-ink);cursor:pointer;text-align:center;font-variant-numeric:tabular-nums;padding:8px 4px;font-family:inherit;font-size:13.5px;font-weight:600;transition:background .12s,border-color .12s,color .12s}.slot-chip:hover{border-color:var(--t-primary)}.slot-chip.selected{background:var(--t-primary);border-color:var(--t-primary);color:#fff}.skel{background:#edebe6;border-radius:6px;position:relative;overflow:hidden}.skel:after{content:"";background:linear-gradient(90deg,#0000,#ffffffa6,#0000);animation:1.4s infinite tshimmer;position:absolute;inset:0}@keyframes tshimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.tfade-in{animation:.22s both tfadeup}@keyframes tfadeup{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes tfade{0%{opacity:0}to{opacity:1}}@keyframes tpop{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.tfade-in,.tmodal,.tmodal-backdrop{animation:none}.tshell *,.tauth *{transition-duration:.01ms!important}}.tauth{place-items:center;padding:20px;display:grid}.tauth-card{background:var(--t-surface);border:1px solid var(--t-border);width:100%;max-width:380px;box-shadow:var(--t-shadow-md);border-radius:16px;flex-direction:column;gap:16px;padding:32px 28px;display:flex}.tauth-brand{letter-spacing:-.4px;color:var(--t-ink);align-items:center;gap:9px;font-size:21px;font-weight:700;display:flex}.tauth-sub{color:var(--t-ink-2);margin-top:-8px;font-size:14px}
