@font-face{font-family:Schibsted Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/schibsted-grotesk-latin-ext-400-normal-DHVTfbSM.woff2) format("woff2"),url(/assets/schibsted-grotesk-latin-ext-400-normal-DUPvg9bQ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/schibsted-grotesk-latin-400-normal-DPhJBilQ.woff2) format("woff2"),url(/assets/schibsted-grotesk-latin-400-normal-BkiRe4WW.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/schibsted-grotesk-latin-ext-500-normal-Ch1izu81.woff2) format("woff2"),url(/assets/schibsted-grotesk-latin-ext-500-normal-BjmYCtCC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/schibsted-grotesk-latin-500-normal-rf9C4Thp.woff2) format("woff2"),url(/assets/schibsted-grotesk-latin-500-normal-Ba39e-CX.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/schibsted-grotesk-latin-ext-600-normal-C5pQPdUJ.woff2) format("woff2"),url(/assets/schibsted-grotesk-latin-ext-600-normal-DQsnXf5q.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/schibsted-grotesk-latin-600-normal-Czv9Obfv.woff2) format("woff2"),url(/assets/schibsted-grotesk-latin-600-normal-BieE9YjJ.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/schibsted-grotesk-latin-ext-700-normal-o210KhU4.woff2) format("woff2"),url(/assets/schibsted-grotesk-latin-ext-700-normal-DDW2aNyx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/schibsted-grotesk-latin-700-normal-BkH0uJ1o.woff2) format("woff2"),url(/assets/schibsted-grotesk-latin-700-normal-Dz-okVa0.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-cyrillic-ext-500-normal-Yta7XZ9C.woff2) format("woff2"),url(/assets/cormorant-garamond-cyrillic-ext-500-normal-lsPpqi9g.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-cyrillic-500-normal-CyAY5ZLS.woff2) format("woff2"),url(/assets/cormorant-garamond-cyrillic-500-normal-DkJXBcIH.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-vietnamese-500-normal-BZGLGj12.woff2) format("woff2"),url(/assets/cormorant-garamond-vietnamese-500-normal-DqXqCC0q.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-ext-500-normal-CH1kM7og.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-ext-500-normal-DYeaGGzO.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-500-normal-BsRWmXhO.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-500-normal-zIXX3Q-H.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-cyrillic-ext-600-normal-BMhMHfrj.woff2) format("woff2"),url(/assets/cormorant-garamond-cyrillic-ext-600-normal-CsIYWmWK.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-cyrillic-600-normal-C2atO-64.woff2) format("woff2"),url(/assets/cormorant-garamond-cyrillic-600-normal-FNmA3REe.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-vietnamese-600-normal-BoXdMtcr.woff2) format("woff2"),url(/assets/cormorant-garamond-vietnamese-600-normal-C4HEjEaf.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-latin-ext-600-normal-DaBc-lu7.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-ext-600-normal-Dk3-quAP.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-latin-600-normal-Co1r35X9.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-600-normal-2CBVLo0M.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink: #1f2b2a;--ink-soft: #46514f;--ink-faint: #6f7a77;--paper: #f4f6f4;--card: #ffffff;--line: #dde4e0;--spruce: #2e6e5e;--spruce-deep: #23554a;--spruce-wash: #e3eeea;--eucalyptus: #8fb3a9;--marigold: #d9a441;--marigold-soft: #f4e5c4;--danger: #b4543e;--danger-wash: #f4e1dc;--radius-crisp: 5px;--radius: 8px;--radius-pill: 999px;--shadow: 0 1px 1px rgba(31, 43, 42, .05), 0 6px 20px -4px rgba(23, 61, 51, .16);--shadow-lift: 0 2px 4px rgba(31, 43, 42, .08), 0 10px 28px -6px rgba(23, 61, 51, .22);--font-ui: "Schibsted Grotesk", system-ui, -apple-system, sans-serif;--font-display: "Cormorant Garamond", Georgia, serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-ui);background:var(--paper);color:var(--ink);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;color:inherit}a{color:inherit}:focus-visible{outline:2px solid var(--spruce);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.shell{display:flex;height:100%}.rail{width:216px;flex-shrink:0;background:var(--ink);color:#e8ece9;display:flex;flex-direction:column;padding:20px 12px;gap:2px}.rail-brand{font-weight:700;letter-spacing:.01em;font-size:17px;padding:4px 12px 18px;color:#fff}.rail-brand em{font-style:normal;color:var(--marigold)}.rail a{display:block;padding:9px 12px;border-radius:var(--radius);text-decoration:none;color:#c6d0cb;font-weight:500}.rail a:hover{background:#ffffff12;color:#fff}.rail a.active{background:var(--spruce);color:#fff}.rail-foot{margin-top:auto;padding:12px;font-size:13px;color:#97a39e;border-top:1px solid rgba(255,255,255,.1)}.rail-foot button{background:none;border:none;color:#c6d0cb;padding:0;margin-top:6px;font-size:13px;text-decoration:underline}.main{flex:1;overflow-y:auto;padding:28px 32px 60px}.page-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:22px;gap:16px;flex-wrap:wrap}.page-head h1{font-size:22px;font-weight:700;letter-spacing:-.01em}.page-head .sub{color:var(--ink-faint);font-size:14px}.btn{display:inline-flex;align-items:center;gap:6px;background:var(--spruce);color:#fff;border:none;border-radius:var(--radius);padding:8px 16px;font-weight:600;font-size:14px;box-shadow:inset 0 1px #ffffff29,0 1px 2px #173d332e,0 3px 8px -2px #173d3347;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.btn:hover{background:var(--spruce-deep);transform:translateY(-1px);box-shadow:inset 0 1px #ffffff2e,0 2px 4px #173d3333,0 8px 18px -4px #173d3357}.btn:active{transform:translateY(0);box-shadow:inset 0 1px 3px #0f262059}.btn:disabled{opacity:.5;cursor:default;transform:none;box-shadow:none}.btn-quiet{background:var(--card);color:var(--spruce-deep);border:1px solid var(--line);box-shadow:0 1px 2px #1f2b2a0d}.btn-quiet:hover{background:var(--spruce-wash);border-color:var(--eucalyptus);transform:translateY(-1px);box-shadow:0 4px 10px -2px #173d3329}.btn-quiet:active{transform:translateY(0);box-shadow:inset 0 1px 2px #173d331f}.btn-danger{background:var(--card);color:var(--danger);border:1px solid var(--line);box-shadow:0 1px 2px #1f2b2a0d}.btn-danger:hover{background:var(--danger-wash);border-color:var(--danger);transform:translateY(-1px);box-shadow:0 4px 10px -2px #b4543e38}.btn-danger:active{transform:translateY(0);box-shadow:inset 0 1px 2px #b4543e2e}.btn-small{padding:4px 10px;font-size:13px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-crisp);box-shadow:var(--shadow)}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.field label{font-size:13px;font-weight:600;color:var(--ink-soft)}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:var(--radius);padding:8px 10px;background:#fff}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--spruce);outline:none}.field .hint{font-size:12px;color:var(--ink-faint)}.field-group-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);border-top:1px solid var(--line);padding-top:12px;margin:4px 0 12px}.badge{display:inline-block;padding:2px 9px;border-radius:var(--radius-pill);font-size:12px;font-weight:600}.badge.pending{background:var(--marigold-soft);color:#7a5a13}.badge.confirmed{background:var(--spruce-wash);color:var(--spruce-deep)}.badge.completed{background:#e4e7e5;color:var(--ink-soft)}.badge.cancelled,.badge.no_show{background:var(--danger-wash);color:var(--danger)}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);padding:10px 14px;border-bottom:1px solid var(--line)}.table td{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tr.rowlink:hover td{background:var(--spruce-wash);cursor:pointer}.link{color:var(--spruce, #2f4d3a);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.link:hover{opacity:.8}.empty{padding:40px;text-align:center;color:var(--ink-faint)}.empty strong{display:block;color:var(--ink-soft);margin-bottom:4px}.error-note{background:var(--danger-wash);color:var(--danger);border-left:3px solid var(--danger);border-radius:var(--radius-crisp);padding:10px 14px;font-size:14px;margin-bottom:14px}.notice-note{background:var(--spruce-wash);color:var(--spruce-deep);border-left:3px solid var(--spruce);border-radius:var(--radius-crisp);padding:10px 14px;font-size:14px;margin-bottom:14px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1f2b2a73;display:flex;align-items:center;justify-content:center;padding:20px;z-index:40}.modal{background:#fff;border-radius:12px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;padding:24px;box-shadow:0 16px 40px -8px #173d3352,0 4px 12px #1f2b2a24}.modal-wide{max-width:760px}.modal h2{font-size:18px;margin-bottom:16px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.time-dropdown-list{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:220px;overflow-y:auto;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px -4px #173d333d,0 2px 6px #1f2b2a1f;z-index:50;padding:4px}.time-dropdown-group{font-size:11px;font-weight:600;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.03em;padding:8px 8px 2px}.time-dropdown-item{display:block;width:100%;text-align:left;padding:7px 8px;border:none;border-radius:6px;background:none;cursor:pointer;font-size:14px;color:var(--ink)}.time-dropdown-item:hover{background:var(--spruce-wash)}.time-dropdown-item.picked{background:var(--spruce);color:#fff}.login-wrap{min-height:100%;display:flex;align-items:center;justify-content:center;background:radial-gradient(1200px 500px at 80% -10%,var(--spruce-wash),transparent),var(--paper);padding:20px}.login-card{width:100%;max-width:380px;padding:34px}.login-card .brand{font-size:24px;font-weight:700;margin-bottom:4px}.login-card .brand em{font-style:normal;color:var(--spruce)}.login-practice-logo{display:block;max-width:200px;max-height:76px;margin-bottom:16px}.login-card p{color:var(--ink-faint);margin-bottom:22px;font-size:14px}.login-powered-by{margin-top:18px;text-align:right;font-size:12px;color:var(--ink-faint)}.login-powered-by em{font-style:normal;color:var(--spruce)}.dash-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px}@media (max-width: 1000px){.dash-grid{grid-template-columns:1fr}}.stat-row{display:flex;gap:14px;margin-bottom:20px;flex-wrap:wrap}.stat{flex:1;min-width:140px;padding:16px 18px}.stat .n{font-size:26px;font-weight:700;letter-spacing:-.02em}.stat .l{font-size:13px;color:var(--ink-faint)}.timeline{position:relative;padding:18px 0}.timeline-hour{display:grid;grid-template-columns:56px 1fr;min-height:52px;border-top:1px solid var(--line)}.timeline-hour .h{font-size:12px;color:var(--ink-faint);padding:4px 10px 0 14px;font-variant-numeric:tabular-nums}.timeline-hour .slot-lane{position:relative;padding:3px 12px 3px 0}.tl-booking{border-left:3px solid var(--spruce);background:var(--spruce-wash);border-radius:var(--radius-crisp);padding:6px 10px;margin:2px 0;font-size:13px}.tl-booking.pending{border-left-color:var(--marigold);background:var(--marigold-soft)}.tl-booking.cancelled,.tl-booking.no_show{border-left-color:var(--danger);background:var(--danger-wash)}.tl-booking.cancelled .who,.tl-booking.cancelled .what,.tl-booking.no_show .who,.tl-booking.no_show .what{color:var(--danger);text-decoration:line-through}.tl-booking .who{font-weight:600}.tl-booking .what{color:var(--ink-soft)}.now-thread{position:absolute;left:56px;right:0;height:2px;background:var(--marigold);z-index:5}.now-thread:before{content:"";position:absolute;left:-5px;top:-3px;width:8px;height:8px;border-radius:var(--radius-pill);background:var(--marigold)}.side-card{padding:18px;margin-bottom:16px}.side-card h3{font-size:14px;margin-bottom:12px;color:var(--ink-soft)}.side-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}.side-card-head h3{margin-bottom:0}.section-note{display:block;font-size:13px;color:var(--ink-faint);margin-bottom:10px;line-height:1.5}.note-line{font-size:13px;padding:8px 0;border-top:1px solid var(--line);color:var(--ink-soft)}.note-line .meta{color:var(--ink-faint);font-size:12px}a.note-line:hover{background:var(--spruce-wash);margin:0 -10px;padding:8px 10px;border-radius:var(--radius-crisp)}.cal-controls{display:flex;align-items:center;gap:10px}.cal-grid{display:grid;grid-template-columns:56px repeat(7,minmax(110px,1fr));overflow-x:auto}.cal-grid .corner{border-bottom:1px solid var(--line)}.cal-dayhead{padding:10px 8px;text-align:center;font-size:13px;font-weight:600;border-bottom:1px solid var(--line);border-left:1px solid var(--line);cursor:pointer}.cal-dayhead:hover{background:var(--spruce-wash)}.cal-dayhead.selected{background:var(--marigold-soft)}.cal-dayhead.today{color:var(--spruce)}.cal-dayhead.today .dn{background:var(--marigold);color:var(--ink);border-radius:var(--radius-pill);padding:1px 8px}.cal-hourlabel{font-size:11px;color:var(--ink-faint);text-align:right;padding:2px 6px 0 0;border-top:1px solid var(--line);height:44px;font-variant-numeric:tabular-nums;cursor:pointer}.cal-hourlabel:hover{color:var(--spruce-deep);font-weight:600}.cal-hourlabel.selected{color:var(--spruce-deep);font-weight:700}.cal-cell{border-top:1px solid var(--line);border-left:1px solid var(--line);height:44px;position:relative;cursor:pointer}.cal-cell:hover{background:var(--spruce-wash)}.cal-cell.drag-over,.cal-cell.selected{background:var(--marigold-soft)}.cal-block{position:absolute;left:0;right:0;z-index:2;background:repeating-linear-gradient(45deg,#e4e7e5,#e4e7e5 6px,#d7dbd8 6px,#d7dbd8 12px);border-left:2px solid var(--ink-faint);font-size:10.5px;color:var(--ink-faint);padding:2px 5px;overflow:hidden;cursor:pointer}.cal-gevent{position:absolute;left:0;right:0;z-index:1;background:#e8f0fe;border-left:2px solid #4285F4;font-size:10.5px;color:#1a4ba0;padding:2px 5px;overflow:hidden;pointer-events:none}.cal-gevent-allday{margin-top:4px;background:#e8f0fe;border-left:2px solid #4285F4;color:#1a4ba0;font-size:10px;font-weight:500;padding:1px 6px;border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-ev{position:absolute;left:3px;right:3px;border-radius:var(--radius-crisp);background:var(--spruce);color:#fff;font-size:11.5px;line-height:1.25;padding:3px 6px;overflow:hidden;z-index:3;border:none;text-align:left;cursor:grab}.cal-ev.pending{background:var(--marigold);color:var(--ink)}.cal-ev.cancelled,.cal-ev.no_show{background:var(--danger-wash);color:var(--danger);text-decoration:line-through}.cal-ev.completed{background:#cdd6d2;color:var(--ink-soft)}.cal-view-toggle{display:flex;gap:2px;border-right:1px solid var(--line);padding-right:10px;margin-right:2px}.cal-month{display:grid;grid-template-columns:repeat(7,1fr)}.cal-month-head{padding:8px;text-align:center;font-size:12px;font-weight:600;color:var(--ink-faint);border-bottom:1px solid var(--line)}.cal-month-cell{min-height:96px;border-top:1px solid var(--line);border-left:1px solid var(--line);padding:6px;cursor:pointer;display:flex;flex-direction:column;gap:3px}.cal-month-cell:hover{background:var(--spruce-wash)}.cal-month-cell.outside{background:#fafaf9}.cal-month-cell.outside .cal-month-daynum{color:var(--ink-faint)}.cal-month-daynum{font-size:12px;font-weight:600}.cal-month-cell.today .cal-month-daynum{background:var(--marigold);color:var(--ink);border-radius:var(--radius-pill);padding:1px 7px;display:inline-block}.cal-month-events{display:flex;flex-direction:column;gap:2px}.cal-month-ev{border:none;border-radius:4px;background:var(--spruce);color:#fff;font-size:10.5px;line-height:1.3;padding:2px 4px;text-align:left;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer}.cal-month-ev.pending{background:var(--marigold);color:var(--ink)}.cal-month-ev.cancelled,.cal-month-ev.no_show{background:var(--danger-wash);color:var(--danger);text-decoration:line-through}.cal-month-ev.completed{background:#cdd6d2;color:var(--ink-soft)}.cal-month-more{font-size:10px;color:var(--ink-faint)}.dp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.dp-weekday{text-align:center;font-size:11px;font-weight:600;color:var(--ink-faint);padding-bottom:4px}.dp-day{aspect-ratio:1;border:none;background:none;border-radius:var(--radius-pill);font-size:13px;cursor:pointer;color:var(--ink)}.dp-day:hover{background:var(--spruce-wash)}.dp-day.outside{color:var(--ink-faint)}.dp-day.today{font-weight:700;color:var(--spruce-deep)}.dp-day.picked{background:var(--spruce);color:#fff;font-weight:600}.week-editor{display:grid;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.week-row{display:grid;grid-template-columns:52px 1fr;gap:10px;align-items:center;padding:9px 12px;background:#fff}.week-row:not(:last-child){border-bottom:1px solid var(--line)}.week-row .day{font-weight:600;font-size:13px;color:var(--ink-soft)}.week-row.closed{background:var(--paper)}.week-row .closed-label{font-size:13px;color:var(--ink-faint);font-style:italic}.window-chip{display:inline-flex;align-items:center;gap:6px;background:var(--spruce-wash);border:1px solid var(--eucalyptus);border-radius:var(--radius);padding:4px 8px;font-size:13px;margin:2px 6px 2px 0;font-variant-numeric:tabular-nums}.window-chip button{background:none;border:none;color:var(--spruce-deep);font-weight:700}.window-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px}.window-toolbar select,.window-toolbar input{border:1px solid var(--line);border-radius:var(--radius);padding:7px 9px;background:#fff;font:inherit}.window-toolbar .to-label{font-size:13px;color:var(--ink-faint)}.service-toggles{display:flex;flex-direction:column;gap:6px}.service-toggle{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:var(--radius);padding:9px 12px;background:#fff;font:inherit;text-align:left;cursor:pointer;transition:background .1s,border-color .1s}.service-toggle:hover{border-color:var(--eucalyptus)}.service-toggle.on{background:var(--spruce-wash);border-color:var(--spruce)}.service-toggle .dot{width:16px;height:16px;border-radius:var(--radius-pill);border:1.5px solid var(--eucalyptus);flex:none;display:flex;align-items:center;justify-content:center}.service-toggle.on .dot{background:var(--spruce);border-color:var(--spruce)}.service-toggle.on .dot:after{content:"";width:6px;height:6px;border-radius:var(--radius-pill);background:#fff}.pub-wrap{min-height:100%;background:radial-gradient(900px 420px at 15% -8%,var(--spruce-wash),transparent),var(--paper);padding:0 20px 80px}.pub-inner{max-width:660px;margin:0 auto}.pub-mast{padding:44px 0 10px}.pub-mast .practice{font-family:var(--font-display);font-weight:600;font-size:40px;letter-spacing:-.01em;line-height:1.1}.pub-mast .invite{color:var(--ink-faint);margin-top:6px}.sentence{font-family:var(--font-display);font-size:26px;line-height:1.45;margin:26px 0 30px;color:var(--ink-soft)}.sentence .slot{border-bottom:2px solid var(--eucalyptus);color:var(--ink-faint);padding:0 2px;white-space:nowrap}.sentence .slot.filled{color:var(--spruce-deep);font-weight:600;border-bottom-color:var(--marigold)}.pub-step{padding:22px;margin-bottom:18px}.pub-step h2{font-size:15px;margin-bottom:14px;color:var(--ink-soft)}.choice-list{display:grid;gap:10px}.choice{text-align:left;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.choice:hover{border-color:var(--spruce);transform:translateY(-1px);box-shadow:var(--shadow)}.choice.picked{border-color:var(--spruce);background:var(--spruce-wash);box-shadow:var(--shadow)}.choice .nm{font-weight:600}.choice .ds{color:var(--ink-faint);font-size:13px}.choice .pr{font-weight:700;color:var(--spruce-deep);white-space:nowrap}.day-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:12px}.day-pill{border:1px solid var(--line);background:#fff;border-radius:var(--radius);padding:8px 12px;min-width:74px;text-align:center;font-size:13px}.day-pill.picked{border-color:var(--spruce);background:var(--spruce-wash);font-weight:600}.day-pill .dow{display:block;font-size:11px;color:var(--ink-faint)}.day-pill:disabled{opacity:.4;cursor:default}.time-grid{display:flex;flex-wrap:wrap;gap:8px}.time-chip{border:1px solid var(--line);background:#fff;border-radius:var(--radius);padding:7px 13px;font-variant-numeric:tabular-nums;font-size:14px}.time-chip.picked{background:var(--spruce);color:#fff;border-color:var(--spruce)}.time-chip:hover:not(.picked){border-color:var(--spruce)}.pub-done{text-align:center;padding:60px 24px}.pub-done .mark{width:56px;height:56px;border-radius:var(--radius-pill);background:var(--spruce);color:#fff;font-size:28px;line-height:56px;margin:0 auto 18px}.pub-done h2{font-family:var(--font-display);font-size:30px;margin-bottom:8px}.pub-done p{color:var(--ink-faint)}.pub-foot{text-align:center;color:var(--ink-faint);font-size:12px;padding-top:30px}.doc-wrap{max-width:800px;margin:0 auto;padding:24px 20px 60px}.doc-actions{display:flex;gap:10px;margin-bottom:18px}.doc{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:var(--radius-crisp);padding:40px 44px}.doc-watermark{position:absolute;top:42%;left:50%;transform:translate(-50%,-50%) rotate(-24deg);font-family:var(--font-ui);font-size:88px;font-weight:800;letter-spacing:.1em;color:var(--danger);opacity:.28;pointer-events:none;white-space:nowrap;z-index:5;-webkit-print-color-adjust:exact;print-color-adjust:exact}.doc-head{display:flex;justify-content:space-between;gap:20px;margin-bottom:30px}.doc-practice{font-family:var(--font-display);font-size:26px;font-weight:600}.doc-logo{max-height:56px;max-width:220px;width:auto;height:auto;object-fit:contain;margin-bottom:6px;display:block}.doc-title h1{font-size:20px;text-transform:uppercase;letter-spacing:.08em;text-align:right}.doc-meta{font-size:12.5px;color:var(--ink-faint);line-height:1.6}.doc-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin-bottom:4px}.doc-parties{margin-bottom:24px}.doc-table{width:100%;border-collapse:collapse;font-size:13.5px}.doc-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);border-bottom:1.5px solid var(--ink);padding:6px 8px}.doc-table td{padding:8px;border-bottom:1px solid var(--line);vertical-align:top}.doc-table tfoot td{border-bottom:none;padding-top:10px}.doc-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.doc-foot{margin-top:28px;font-size:13.5px}@media print{.no-print{display:none!important}body{background:#fff}.doc-wrap{max-width:none;padding:0}.doc{border:none;border-radius:0;padding:0}}@media (max-width: 700px){.rail{display:none}.main{padding:18px 14px 60px}.pub-mast .practice{font-size:30px}.sentence{font-size:21px}}
