:root{--page:#f1ece4;--surface:#fffdf9;--surface-soft:#faf6ef;--ink:#122f3b;--ink-soft:#43535a;--muted:#7b7b77;--line:#ddd5c8;--line-strong:#cfc4b5;--teal:#0f6662;--teal-dark:#0a5552;--teal-soft:#edf5f3;--danger:#dd2737;--danger-soft:#ffe7e7;--gold:#edae21;--gray-dot:#98a3a8;--shadow:0 20px 48px #1d303614;--serif:Georgia, "Times New Roman", serif;--sans:"Segoe UI", Arial, sans-serif;--ease-out:cubic-bezier(.2,.7,.2,1);--ease-in:cubic-bezier(.4,0,1,1);--ease-pop:cubic-bezier(.3,1.4,.5,1);--dur-tap:.2s;--dur-fast:.24s;--dur-base:.32s;--dur-feedback:.38s;--dur-admin:.25s;--dur-scene:.9s;--calm:2}*{box-sizing:border-box}html{background:var(--page);min-height:100%}body{min-height:100vh;color:var(--ink);font-family:var(--sans);background:radial-gradient(circle at top, #ffffffb8, transparent 38rem), var(--page);margin:0}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}svg{display:block}.app-shell{background:var(--surface);width:min(100%,420px);min-height:100vh;margin:0 auto;overflow:hidden;box-shadow:0 20px 48px #1d30360e}.app-screen{min-height:100vh;display:none}.app-screen.is-active{display:block}.clinic-header{padding:20px 20px 12px}.brand{align-items:center;gap:13px;display:flex}.brand-logo{flex:none;width:67px;height:67px}.brand-copy h1{color:#164c50;font-family:var(--serif);letter-spacing:-.6px;margin:0;font-size:30px;font-weight:500;line-height:1}.brand-copy p{color:#4e5558;letter-spacing:.01em;margin:6px 0 0;font-size:10px}.brand-copy p span{margin:0 3px}.utility-nav{border-top:1px solid #ddd5c8cc;justify-content:flex-start;align-items:center;gap:23px;margin-top:22px;padding:15px 2px 0;display:flex}.utility-nav a{color:#243d48;align-items:center;gap:11px;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}.utility-nav svg{fill:none;width:18px;height:18px;stroke:var(--teal);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.utility-divider{background:#ddd5c8cc;width:1px;height:24px}.section-divider{background:#ddd5c8cc;height:1px;margin:0 20px}.booking-form{padding:21px 20px 28px}.form-intro{margin-bottom:23px}.form-intro h2{color:#164c50;font-family:var(--serif);margin:0 0 8px;font-size:23px;font-weight:500;line-height:1.15}.form-intro p{color:#34444b;max-width:350px;margin:0;font-size:13px;line-height:1.58}.field{margin-bottom:18px;display:block}.field>span,.field legend{color:#263b44;margin:0 0 8px;font-size:12px;font-weight:600;display:block}.field>span em{color:var(--muted);font-size:11px;font-style:normal;font-weight:400}.field small{color:#747a7c;margin-top:6px;font-size:10px;line-height:1.4;display:block}input,select,textarea{border:1px solid var(--line-strong);color:#263b44;background:#fffefb;border-radius:7px;outline:none;width:100%;transition:border-color .16s,box-shadow .16s}input,select{height:43px;padding:0 12px}textarea{resize:vertical;min-height:78px;padding:11px 12px}input::placeholder,textarea::placeholder{color:#9a9b98}input:focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0f666217}.booking-form>label.field>span{font-size:13px;font-weight:600;line-height:1.3}.booking-form>label.field small{font-size:11px;font-weight:400;line-height:1.45}.booking-form input::placeholder,.booking-form textarea::placeholder{color:var(--muted)}fieldset{border:0;min-inline-size:0;margin-inline:0;padding:0}.category-field legend{font-size:13px;font-weight:600}.category-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.category-button{color:#344148;text-align:center;background:#fffefb;border:1px solid #cfc4b5cc;border-radius:7px;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-height:61px;padding:8px 5px;font-size:11px;font-weight:600;line-height:1.25;display:flex}.category-button svg{fill:none;stroke:#807a70;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:19px;height:19px}.category-button.is-selected{color:#fff;background:var(--teal);border-color:var(--teal);box-shadow:0 5px 13px #0f66622e}.category-button.is-selected svg{stroke:#fff}.category-button[data-category=other]{grid-column:1/-1}.category-button:focus-visible{outline:2px solid var(--teal);outline-offset:3px}.pain-section{background:#fbf7ef;border:1px solid #e5dccf;border-radius:8px;margin:2px 0 19px;padding:14px 13px 1px}.appointment-choice{background:var(--surface-soft);border:1px solid #ddd5c8cc;border-radius:8px;margin:4px 0 18px;padding:12px 16px 1px}.appointment-choice h3{color:#263b44;margin:0 0 13px;font-size:13px;font-weight:600;line-height:1.3}.appointment-grid{grid-template-columns:1.25fr .9fr;gap:0 10px;display:grid}.field.compact{margin-bottom:13px}.consent{color:#4b565a;background:#fbf6eb;border:1px solid #e5dac7;border-radius:7px;align-items:flex-start;gap:10px;margin:5px 0 20px;padding:12px;font-size:10.5px;line-height:1.5;display:flex}.consent input{width:18px;height:18px;accent-color:var(--teal);flex:none;margin:1px 0 0}.booking-form .consent{background:var(--surface-soft);border-color:#ddd5c8cc;margin:5px 0 8px;font-size:12px;line-height:1.5}.booking-form .consent-optional{background:0 0;border-color:#ddd5c88c;margin:0 0 14px;line-height:1.45}.primary-button,.danger-button,.text-button,.outline-button{border-radius:7px;font-weight:600}.primary-button{border:1px solid var(--teal);color:#fff;background:var(--teal);width:100%;min-height:48px;box-shadow:0 5px 13px #0f666224}.primary-button:hover{background:var(--teal-dark)}.booking-form .primary-button:focus-visible{outline:2px solid var(--teal);outline-offset:3px}.booking-form .primary-button:disabled{opacity:.6}.danger-button{color:#db1e2e;background:0 0;border:1px solid #ef5761;width:100%;min-height:48px;margin-top:13px}.text-button{color:#183642;background:0 0;border:0;width:100%;min-height:44px}.form-error{color:#b7212c;background:#fff0f0;border:1px solid #f1b7bb;border-radius:7px;margin:0 0 15px;padding:10px 12px;font-size:12px;display:none}.form-error.is-visible{display:block}.req{color:var(--danger);margin-left:2px;font-weight:700}.form-intro .required-note{color:var(--muted);margin-top:8px;font-size:11.5px}.appointment-choice .appointment-hint{color:var(--muted);margin:-6px 0 12px;font-size:11px;line-height:1.4}.field.is-invalid input,.field.is-invalid select{border-color:var(--danger);box-shadow:0 0 0 3px #dd273714}.field.is-invalid>span,.field.is-invalid>legend{color:#b7212c}.category-field.is-invalid .category-button:not(.is-selected){border-color:#f1b7bb}.booking-form .consent.is-invalid{background:#fff5f5;border-color:#f1b7bb}.booking-form small.field-error-msg,.booking-form label.field small.field-error-msg{color:#b7212c;margin-top:6px;font-size:11.5px;font-weight:500;line-height:1.4;display:block}.booking-form>small.field-error-msg{margin:-2px 0 14px}.confirmation-screen{background:linear-gradient(#fffefa,#fffdf9)}.confirmation-content{text-align:center;min-height:100vh;padding:92px 25px 32px}.calendar-icon{background:#f5efe5;border-radius:50%;place-items:center;width:96px;height:96px;margin:0 auto 23px;display:grid}.calendar-icon svg{fill:none;width:52px;height:52px;stroke:var(--teal);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.confirmation-content h2{color:#174f51;font-family:var(--serif);margin:0 0 19px;font-size:29px;font-weight:500}.confirmation-content>p{color:#34444b;margin:0 0 12px;font-size:14px;line-height:1.65}.confirmation-content .confirmation-strong{color:#183642;margin-bottom:28px;font-weight:600}.privacy-note{color:#5a5550;text-align:left;background:#fbf2e3;border:1px solid #eadac0;border-radius:8px;align-items:flex-start;gap:9px;margin-bottom:54px;padding:15px 14px;font-size:10px;line-height:1.5;display:flex}.privacy-note svg{fill:none;stroke:#887a68;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:17px;height:17px}.panel-screen{background:#fffdfa;padding-bottom:76px;position:relative}.panel-header{color:#fff;background:linear-gradient(#0f6965,#0d5f5b)}.panel-brand{justify-content:space-between;align-items:center;min-height:70px;padding:0 22px;display:flex}.panel-brand strong{font-family:var(--serif);font-size:24px;font-weight:500}.panel-tabs{border-bottom:1px solid var(--line);background:#fffdfa;grid-auto-columns:1fr;grid-auto-flow:column;display:grid}.panel-tabs button{color:#213944;background:0 0;border:0;min-height:55px;font-size:13px;position:relative}.panel-tabs{position:relative}.tab-uline{background:var(--teal);transform-origin:0;opacity:0;pointer-events:none;width:100px;height:2px;transition:transform var(--dur-admin) var(--ease-out);position:absolute;bottom:0;left:0}.panel-tabs.has-uline .tab-uline{opacity:1}.panel-tabs.has-uline button.is-active:after{content:none}.panel-tabs button.is-active:after{content:"";background:var(--teal);height:2px;position:absolute;bottom:0;left:18px;right:18px}.panel-list{padding:10px 20px 0;display:none}.panel-list.is-active{display:block}.request-row{border-bottom:1px solid var(--line);grid-template-columns:1fr 94px;gap:14px;padding:19px 0;display:grid}.request-title{align-items:center;gap:7px;margin-bottom:10px;display:flex}.request-title strong{font-size:14px}.status-dot{background:var(--gray-dot);border-radius:50%;width:10px;height:10px}.request-pain .status-dot{background:var(--danger)}.request-checkup .status-dot{background:var(--gold)}.request-cleaning .status-dot{background:#4f9d68}.request-confirmed .status-dot{background:var(--teal)}.request-main p{color:#2f424a;margin:0 0 7px;font-size:11.5px}.request-main p span{color:#8d918f;margin:0 4px}.request-actions{flex-direction:column;justify-content:center;gap:9px;display:flex}.outline-button{color:#213944;background:#fffefa;border:1px solid #d6cec1;min-height:42px;font-size:11px}.outline-button span{margin-left:5px;font-size:17px;line-height:0}.call-button{justify-content:center;align-items:center;gap:8px;display:inline-flex}.call-button svg{fill:none;width:16px;height:16px;stroke:var(--teal);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.panel-search{background:#fffefa;border:1px solid #d7cfc2;border-radius:7px;grid-template-columns:38px 1fr 44px;align-items:center;height:45px;display:grid;position:absolute;bottom:17px;left:20px;right:20px;overflow:hidden}.panel-search>svg{fill:none;stroke:#777e80;stroke-width:1.7px;stroke-linecap:round;width:17px;height:17px;margin-left:13px}.panel-search input{height:43px;box-shadow:none;border:0;padding:0 5px;font-size:11px}.panel-search button{background:0 0;border:0;border-left:1px solid #ddd5c8;width:44px;height:43px}.panel-search button svg{fill:none;width:17px;height:17px;stroke:var(--teal);stroke-width:1.8px;stroke-linecap:round;margin:auto}.details-screen,.dossier-screen,.notifications-screen{background:#fffdfa}.details-screen.is-first-visit{background:#fdf6de}.first-visit-note{color:#7a5c05;background:#fbecc0;border:1px solid #edae21;border-radius:7px;margin:0 0 18px;padding:10px 12px;font-size:11px;font-weight:600}.details-header{color:#fff;background:linear-gradient(#0f6965,#0d5f5b);grid-template-columns:92px 1fr 92px;align-items:center;min-height:70px;padding:0 16px;display:grid}.details-header>strong{justify-self:center;font-size:13px;font-weight:600}.back-button{color:#fff;background:0 0;border:0;align-items:center;gap:4px;font-size:12px;display:inline-flex}.back-button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.details-content{padding:18px 18px 28px}.details-block{border-bottom:1px solid var(--line);padding:0 0 20px}.details-block+.details-block{border-bottom:0;padding-top:17px}.details-block h2{color:#1b5152;margin:0 0 15px;font-size:13px}.patient-summary-row{justify-content:space-between;align-items:flex-start;display:flex}.patient-summary-row strong{font-size:14px}.patient-summary-row p{color:#48565b;margin:7px 0 0;font-size:12px}.category-badge{border:1px solid #0000;border-radius:7px;padding:8px 15px;font-size:11px}.badge-pain{color:#cb1f2c;background:var(--danger-soft);border-color:#ffb9bd}.badge-checkup{color:var(--teal);background:var(--teal-soft);border-color:#bfe0da}.badge-cleaning{color:#3f7a4e;background:#eaf6ea;border-color:#bfe3c4}.badge-aesthetic{color:#8a660f;background:#fbf1da;border-color:#eddba0}.badge-prosthetics{color:#34495a;background:#e8edf1;border-color:#c3ced9}.badge-orthodontics{color:#5b4f6b;background:#eee9f2;border-color:#d6cbe0}.badge-other{color:#5a6266;background:#eef0f0;border-color:#d3d8d9}.details-list{margin:0 0 28px}.details-list div{margin-bottom:17px}.details-list dt{color:#58656a;margin-bottom:5px;font-size:10.5px}.details-list dd{color:#213943;margin:0;font-size:12px;font-weight:600;line-height:1.45}.pref-cal{margin-top:6px;font-weight:400}.pref-cal ul{margin:0;padding:0;list-style:none}.pref-cal-legend{gap:7px;display:grid;margin-bottom:12px!important}.pref-cal-legend li{color:#213943;align-items:center;gap:9px;font-size:12.5px;display:flex}.pref-cal-legend b{font-weight:700}.pref-cal-key{border-radius:6px;flex:none;place-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:inline-grid}.pref-cal-key.is-first{background:var(--teal);color:#fff}.pref-cal-key.is-second{background:var(--gold);color:#3b2a00}.pref-cal-month{border-collapse:separate;border-spacing:3px;table-layout:fixed;background:var(--surface-soft);border:1px solid #ddd5c8cc;border-radius:10px;width:100%;max-width:340px;padding:6px 5px 8px}.pref-cal-month caption{caption-side:top;text-align:left;color:#263b44;padding:0 4px 6px;font-size:13px;font-weight:700}.pref-cal-month th{color:#58656a;text-align:center;text-transform:lowercase;padding:2px 0 4px;font-size:10px;font-weight:600}.pref-cal-month th.is-weekend{color:#a9a49b}.pref-cal-month td{text-align:center;padding:0}.pref-cal-day{color:#263b44;border-radius:8px;place-items:center;height:34px;font-size:13px;font-weight:600;display:grid;position:relative}.pref-cal-month td.is-weekend .pref-cal-day{color:#b5b0a7;font-weight:400}.pref-cal-month td.is-today .pref-cal-day{box-shadow:inset 0 0 0 1.5px var(--teal)}.pref-cal-month td.is-first .pref-cal-day{background:var(--teal);color:#fff;font-weight:700}.pref-cal-month td.is-second .pref-cal-day{background:var(--gold);color:#3b2a00;font-weight:700}.pref-cal-month td.is-first.is-second .pref-cal-day{background:linear-gradient(135deg, var(--teal) 50%, var(--gold) 50%);color:#fff}.pref-cal-month td.is-hidden{visibility:hidden}.pref-cal-day small{color:inherit;opacity:.75;font-size:8px;font-weight:600;line-height:1;position:absolute;bottom:2px;left:0;right:0}.pref-cal-gap td{color:#a9a49b;letter-spacing:2px;text-align:center;padding:2px 0;font-size:14px}.pref-cal-day sup{opacity:.9;font-size:8.5px;font-weight:700;line-height:1;position:absolute;top:2px;right:4px}@media (max-width:380px){.clinic-header{padding-inline:16px}.section-divider{margin-inline:16px}.booking-form{padding-inline:16px}.brand-logo{width:60px;height:60px}.brand-copy h1{font-size:27px}.utility-nav{gap:17px}.appointment-grid{grid-template-columns:1.15fr .85fr;gap:0 7px}}@media (min-width:650px){body{padding-bottom:30px}.app-shell{border:1px solid #bfc4c5cc;border-radius:12px;min-height:760px;margin-top:26px}.app-screen,.confirmation-content{min-height:760px}}@media (max-width:649px){.app-shell{width:100%;box-shadow:none}}.panel-menu{position:relative}.panel-menu-trigger{color:#fff;cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;padding:3px 2px;font-family:inherit;font-size:11px;display:inline-flex}.panel-menu-caret{opacity:.8;font-size:9px;transition:transform .15s}.panel-menu-trigger[aria-expanded=true] .panel-menu-caret{transform:rotate(180deg)}.panel-menu-list{transform-origin:100% 0;border:1px solid var(--line);z-index:20;background:#fffdfa;border-radius:8px;min-width:168px;padding:5px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 6px 20px #0d5f5b2e}.panel-menu-item{color:#213944;border-radius:6px;padding:9px 11px;font-size:13px;text-decoration:none;display:block}.panel-menu-item:hover{background:var(--teal-soft);color:var(--teal)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important;transition-delay:0s!important;animation-duration:0s!important;animation-delay:0s!important}}.primary-button,.outline-button,.danger-button,.text-button,.category-button,.footer-link{transition:transform var(--dur-tap) var(--ease-out), color .15s var(--ease-out), border-color .15s var(--ease-out)}.booking-form .primary-button:active:not(:disabled),.category-button:active,.text-button:active,.footer-link:active{transform:scale(.97)}.panel-screen .outline-button:active:not(:disabled),.details-screen button:active:not(:disabled){transform:scale(.98)}.field>span,.field legend{transition:color .15s var(--ease-out)}.field:focus-within>span{color:var(--teal)}.category-button{isolation:isolate;position:relative;overflow:hidden}.category-button.is-selected:has(>.ink){background:#fffefb}.category-button>.ink{z-index:-1;border-radius:inherit;background:var(--teal);pointer-events:none;position:absolute;inset:0;transform:scale(0)}.category-button.is-selected>.ink{transform:scale(1)}.category-button svg{transition:stroke .15s var(--ease-out)}.category-button svg [pathLength]{stroke-dasharray:1;stroke-dashoffset:0}.pain-location legend{color:#263b44;margin:0 0 8px;font-size:12px;font-weight:600;display:block}.mouth{max-width:320px;transition:opacity var(--dur-tap) var(--ease-out);margin:2px auto 0}.mouth svg{width:100%;height:auto;overflow:visible}.mouth .jaw-q{cursor:pointer}.mouth .tf{fill:var(--teal);stroke:none;mix-blend-mode:multiply;opacity:0;transition:opacity var(--dur-tap) var(--ease-in)}.mouth[data-sel=UL] .tf[data-q=UL],.mouth[data-sel=UR] .tf[data-q=UR],.mouth[data-sel=LL] .tf[data-q=LL],.mouth[data-sel=LR] .tf[data-q=LR]{opacity:.62;transition:opacity calc(var(--dur-tap) * var(--calm)) var(--ease-out) calc(var(--i) * 24ms * var(--calm))}.mouth .lbl{font-family:var(--sans);pointer-events:none;font-size:10.5px}.mouth .lbl-side{fill:#4b565a;font-weight:600}.jaw-note{text-align:center;color:#747a7c;margin:0 0 14px;font-size:10.5px}.jaw-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin:10px 0 4px}.jaw-grid .category-button{min-height:50px;font-size:13px}.pain-location:disabled .mouth,.pain-location:disabled .jaw-grid,.pain-location:disabled .jaw-note{opacity:.4}.pain-location:disabled .mouth .jaw-q{cursor:default}.jaw-dd{justify-items:start;gap:6px;display:grid}.jaw-chart{width:100%;max-width:200px;margin:2px 0 0}.jaw-chart svg{width:100%;height:auto;overflow:visible}.jaw-chart .qb{fill:var(--teal-soft);opacity:0}.jaw-chart .is-sel .qb{opacity:1}.jaw-chart .t{fill:#fffefb;stroke:#9c9384;stroke-width:1.2px}.jaw-chart .tf{fill:var(--teal);stroke:var(--teal-dark);stroke-width:1.2px;opacity:0}.jaw-chart .is-sel .tf{opacity:1}.jaw-chart .mid{stroke:var(--line-strong);stroke-dasharray:3 4}.jaw-chart .lbl{font-family:var(--sans);fill:#7b7b77;font-size:10.5px}.jaw-chart .lbl-side{fill:#4b565a;font-weight:600}.calendar-icon svg [pathLength]{stroke-dasharray:1;stroke-dashoffset:0}.morph{z-index:40;pointer-events:none;transform-origin:0 0;background:#fffdf9;border-radius:7px;position:fixed}.morph-teal{border-radius:inherit;background:var(--teal);position:absolute;inset:0}.site-footer{color:#747a7c;border-top:1px solid #ddd5c8cc;flex-direction:column;align-items:center;gap:6px;margin:0 20px;padding:16px 0 26px;font-size:10.5px;display:flex}.footer-link{color:var(--teal);text-underline-offset:3px;background:0 0;border:0;padding:4px 6px;font-size:12px;font-weight:600;-webkit-text-decoration:underline #0f666259;text-decoration:underline #0f666259}.footer-link:focus-visible{outline:2px solid var(--teal);outline-offset:2px;border-radius:4px}.sheet-backdrop{z-index:60;background:#122f3b61;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet-dialog{background:var(--surface);border:1px solid var(--line-strong);width:100%;max-width:460px;max-height:82vh;box-shadow:var(--shadow);padding:16px;padding-bottom:max(16px, env(safe-area-inset-bottom,0px));border-bottom:0;border-radius:14px 14px 0 0;overflow-y:auto}.sheet-dialog:focus{outline:none}@media (min-width:560px){.sheet-backdrop{align-items:center;padding:20px}.sheet-dialog{border-bottom:1px solid var(--line-strong);border-radius:14px}}.sheet-close{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:22px;line-height:1}.uc{text-align:center;padding:10px 6px 2px;position:relative}.uc .sheet-close{position:absolute;top:-6px;right:-4px}.uc-logo{width:74px;height:74px;margin:6px auto 12px}.uc-logo path{fill:none;stroke:#0c5e5a;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0}.uc-title{color:#174f51;font-family:var(--serif);margin:0;font-size:25px;font-weight:500}.uc-title:focus{outline:none}.uc-line{background:var(--teal);border-radius:1px;width:44px;height:2px;margin:12px auto 14px;display:block}.uc>p{color:#34444b;max-width:330px;margin:0 auto 16px;font-size:13.5px;line-height:1.6}.uc .privacy-note{max-width:360px;margin:0 auto 10px}.confirmation-content h2:focus{outline:none}.panel-list{position:relative}.request-row{isolation:isolate;position:relative}.row-hl{z-index:-1;background:var(--teal-soft);opacity:0;pointer-events:none;position:absolute;inset:0 -20px}
