@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#203c37;--muted:#82908b;--green:#23775e;--line:#e6ece8;--bg:#f6f8f5;--sans:'DM Sans',-apple-system,BlinkMacSystemFont,sans-serif}*{box-sizing:border-box}body{margin:0;font:14px var(--sans);color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #77aa8d;outline-offset:3px}button{transition:background .15s,transform .15s}button:hover{filter:brightness(.97)}a{color:var(--green)}body>aside{position:fixed;inset:0 auto 0 0;width:244px;background:#fff;border-right:1px solid var(--line);padding:31px 22px;display:flex;flex-direction:column}.logo{display:flex;align-items:center;gap:7px;text-decoration:none;color:var(--ink);font:800 30px Manrope,var(--sans);letter-spacing:-1.5px}.logo>span:first-child{color:var(--green);font:42px var(--sans);margin-right:3px}.logo-dot{color:#86a45d;margin-left:-7px}.practice{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:9px;padding:13px 11px;margin:28px 0;font-weight:600;font-size:12px}.practice>span:last-child{margin-left:auto;color:var(--muted)}.practice-icon{background:#f1f3e9;color:#8a9472;border:1px solid #e5e8dc;width:30px;height:32px;border-radius:7px;display:grid;place-items:center}.practice small{font-size:10px;font-weight:400}.nav-caption{color:#a0aaa5;font-size:9px;letter-spacing:1.8px;padding:0 12px;margin-bottom:13px}nav button{display:flex;align-items:center;gap:12px;border:0;width:100%;background:none;padding:13px;border-radius:7px;color:#7b8a83;font-size:12px;text-align:left;margin:5px 0}nav button.active{background:#eaf3ed;color:var(--green);font-weight:700}.icon{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.nav-count{margin-left:auto;font-size:10px;background:#daeade;padding:2px 6px;border-radius:4px}.sidebar-bottom{margin-top:auto}.demo-card{background:#f5f7ee;border:1px solid #ebeedf;border-radius:9px;padding:17px;margin-top:24px}.demo-card>span{font-size:27px;color:#90a074;display:block;margin-bottom:12px}.demo-card b{font-size:11px}.demo-card p{font-size:11px;line-height:1.7;margin:7px 0 15px}.demo-card small{font-size:8px;letter-spacing:1.3px;color:#8b987a}.staff{display:flex;gap:10px;align-items:center;margin-top:23px;font-size:11px}.avatar{width:34px;height:34px;display:inline-grid;place-items:center;border-radius:50%;background:#eff2e8;color:#69816d;font-size:10px;flex-shrink:0}.avatar.blue{background:#ecf0f7;color:#708298}.avatar.peach{background:#f8eee8;color:#a88872}.mini{width:29px;height:29px;font-size:9px}small{display:block;color:var(--muted);font-size:10px;margin-top:5px;font-weight:400}main{margin-left:244px}header{height:76px;border-bottom:1px solid var(--line);padding:0 38px;display:flex;align-items:center;justify-content:space-between;background:#fff9}.breadcrumb{font-size:11px;color:var(--muted)}.breadcrumb span{margin:0 15px;color:#c3ccc5}.breadcrumb b{font-weight:500;color:#576e62}.header-right{display:flex;gap:19px;align-items:center}.demo-badge{font-size:10px;color:#7d895f;background:#f0f4e7;padding:7px 11px;border-radius:20px}.icon-btn{display:grid;place-items:center;border:1px solid var(--line);background:white;border-radius:7px;width:29px;height:29px;color:#809186;font-size:12px}section{padding:34px 38px 20px;max-width:1600px;margin:auto}.eyebrow{font-size:9px;letter-spacing:1.8px;color:#739478;font-weight:700;text-transform:uppercase}h1{font:800 31px Manrope,var(--sans);letter-spacing:-1px;margin:8px 0 8px}h2{font:700 15px Manrope,var(--sans);margin:0}h3{font-size:13px;margin:0}p{color:var(--muted);line-height:1.6}.page-head{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:26px}.page-head p{margin:0;font-size:12px}.head-actions{display:flex;gap:10px}.btn{border:1px solid #dce4dd;border-radius:7px;background:white;padding:10px 14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:11px;font-weight:600;color:#53695d}.btn .icon{width:14px;height:14px}.primary{background:var(--green);color:white;border-color:var(--green)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat{background:#fff;border:1px solid var(--line);padding:19px 20px;border-radius:10px}.stat-top{display:flex;justify-content:space-between;align-items:center;color:#85938b;font-size:11px}.stat-top .icon{width:16px;height:16px;color:#a2af9f}.stat-value{font:700 29px Manrope,var(--sans);margin:12px 0 6px;letter-spacing:-.7px}.stat-note{color:#94a092;font-size:10px}.green{color:var(--green)}.amber{color:#b1844e}.hero-banner{border:1px solid #dfe8d6;background:linear-gradient(115deg,#eaf1e3,#f3f6e9);border-radius:10px;padding:19px 22px;display:flex;align-items:center;gap:15px;margin-bottom:25px}.sun{display:grid;place-items:center;width:42px;height:42px;background:#ffffff88;border:1px solid #dce6d1;border-radius:10px;font-size:26px;color:#8e9d6e}.hero-banner b{font-size:12px}.hero-banner p{font-size:11px;margin:5px 0 0;color:#7b8c72}.hero-banner .btn{margin-left:auto}.workspace-grid{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:22px}.panel{background:white;border:1px solid var(--line);border-radius:10px;overflow:hidden}.panel-head{padding:20px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line)}.subtle{font-size:10px;color:var(--muted)}.link-btn{border:0;background:none;color:var(--green);font-size:11px;font-weight:600;padding:4px 0}.schedule-list{padding:0 20px}.appointment-row{display:grid;grid-template-columns:64px 1fr auto;gap:15px;padding:18px 0;align-items:center;border-bottom:1px solid #edf1eb}.appointment-row:last-child{border:0}.time{font-size:11px;font-weight:700;color:#6b7f70}.time small{font-size:9px}.patient-cell{display:flex;align-items:center;gap:11px;font-size:12px}.patient-cell b{font-weight:600}.patient-cell small{font-size:10px}.row-actions{display:flex;gap:8px;align-items:center}.badge{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border-radius:5px;font-size:9px;white-space:nowrap}.badge.verified,.badge.completed{background:#eaf4ec;color:#448b65}.badge.pending,.badge.scheduled,.badge.planned{background:#f3f1e6;color:#9b8c51}.badge.review{background:#fbefe7;color:#ad7f58}.badge.arrived,.badge.accepted{background:#eaf0f8;color:#6d8cac}.badge.cancelled{background:#f1f1f1;color:#879088}.panel-foot{padding:14px 20px;border-top:1px solid var(--line);font-size:10px;color:#92a08f;display:flex;justify-content:space-between}.card{background:white;border:1px solid var(--line);border-radius:10px;padding:20px}.card+.card{margin-top:19px}.card h2{margin-bottom:17px}.focus-item{padding:13px 0;border-bottom:1px solid #eef1eb;display:flex;gap:10px;align-items:flex-start}.focus-item:last-child{border:0}.focus-dot{width:7px;height:7px;border-radius:50%;background:#d5b18a;margin-top:5px;flex-shrink:0}.focus-item b{font-size:11px;font-weight:500}.focus-item p{font-size:10px;line-height:1.6;margin:4px 0}.focus-item button{font-size:10px;padding:0}.bar{height:5px;background:#edf1e8;border-radius:5px;overflow:hidden}.bar span{height:100%;display:block;background:#8eab81}.row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:10px 0;font-size:11px}.bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:22px}.bottom-grid .card{margin:0}.quick-actions{display:flex;gap:10px;flex-wrap:wrap}.quick-actions .btn{flex:1}.note{font-size:10px;line-height:1.7;color:var(--muted)}footer{padding:18px 38px 24px;color:#9aa59b;font-size:9px;display:flex;justify-content:space-between;gap:15px}.footer-dot{margin:0 9px}footer button{border:0;background:none;color:#8d9a8d;font-size:9px}.toolbar{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;justify-content:space-between}.search,input,select,textarea{border:1px solid #dfe6df;border-radius:6px;padding:10px 11px;background:white;color:var(--ink);outline-color:#86ab91;font-size:12px}.search{width:250px}.tabs{display:flex;gap:4px}.tab{border:0;background:none;border-radius:6px;color:#8a968b;padding:8px 10px;font-size:11px}.tab.active{background:#eef4e9;color:var(--green);font-weight:600}table{border-collapse:collapse;width:100%;text-align:left}th{padding:14px 18px;background:#fafbf8;color:#96a193;font-size:9px;letter-spacing:.7px;font-weight:500}td{padding:17px 18px;border-top:1px solid #eff2ed;font-size:11px}.empty{text-align:center;padding:45px;color:var(--muted)}.table-wrap{overflow:auto}.date-controls{display:flex;align-items:center;gap:8px}.date-controls input{padding:7px 9px;font-size:11px}.day-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.room{border:1px solid var(--line);border-radius:10px;background:#edf1eb60;overflow:hidden;min-height:430px}.room-head{padding:17px;background:white;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;font-size:12px;font-weight:600}.room-head small{font-size:9px}.visit-card{background:white;border:1px solid #dce7df;border-left:3px solid #88ab93;border-radius:7px;margin:14px;padding:15px;cursor:pointer;text-align:left;width:calc(100% - 28px)}.visit-card.review{border-left-color:#c8aa83}.visit-card .time{margin-bottom:13px}.visit-card h3{margin-bottom:5px}.visit-card p{font-size:10px;margin:0 0 12px}.visit-meta{display:flex;justify-content:space-between;align-items:center}.room-empty{padding:30px;font-size:11px;text-align:center;color:#9aa598}.schedule-summary{margin-top:18px;color:var(--muted);font-size:11px}.split{display:grid;grid-template-columns:1fr 1fr;gap:18px}.profile-head{display:flex;align-items:center;gap:14px;margin-bottom:20px}.profile-head .avatar{width:52px;height:52px;font-size:15px}.profile-head h2{font-size:22px}.detail-tabs{margin:15px 0 22px;border-bottom:1px solid var(--line);padding-bottom:10px}.key-value{display:grid;grid-template-columns:1fr 1fr;gap:18px}.key-value span{font-size:10px;color:var(--muted);display:block;margin-bottom:5px}.key-value b{font-size:12px;font-weight:500}.tooth-chart{display:grid;grid-template-columns:repeat(8,1fr);gap:7px;margin:20px 0}.tooth{border:1px solid #dae4da;border-radius:8px 8px 12px 12px;background:#f6f8f2;height:48px;display:grid;place-items:center;color:#8b9b84;font-size:10px}.tooth.marked{background:#e5f0e7;border-color:#8aac93;color:var(--green)}.alert{border:1px solid #ebe4d4;background:#faf7ee;color:#9e895d;padding:12px;border-radius:7px;font-size:11px;line-height:1.6;margin:15px 0}dialog{width:min(760px,94vw);max-height:92vh;border:1px solid #e1e8dc;border-radius:14px;padding:26px;color:var(--ink);box-shadow:0 30px 100px #233f3225}dialog::backdrop{background:#163a2d66;backdrop-filter:blur(3px)}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-head h2{font-size:20px}.close{border:0;width:28px;height:28px;background:#f0f3ec;border-radius:50%;color:#80927f;font-size:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.field{display:flex;flex-direction:column;gap:7px;font-size:11px;margin-bottom:15px;color:#6c8171}.field input,.field select,.field textarea{width:100%}.full{grid-column:1/-1}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.error{color:#ac7359;font-size:11px;min-height:15px}.list-line{padding:13px 0;border-bottom:1px solid var(--line);font-size:12px}.list-line:last-child{border:0}#toast{position:fixed;bottom:25px;right:25px;background:#234c3b;color:white;padding:15px 18px;border-radius:9px;box-shadow:0 10px 30px #234c3b30;max-width:360px;font-size:12px;display:none;z-index:10}@media(min-width:1500px){.workspace-grid{grid-template-columns:1fr 340px}}@media(max-width:1100px){body>aside{width:206px;padding:24px 16px}main{margin-left:206px}section,header{padding-left:23px;padding-right:23px}.workspace-grid{grid-template-columns:1fr 250px}.row-actions{flex-direction:column;align-items:flex-end}.stat{padding:17px 14px}.toolbar{flex-wrap:wrap}.day-board{gap:9px}.visit-card{margin:9px;width:calc(100% - 18px)}}@media(max-width:900px){.workspace-grid{grid-template-columns:1fr}.side-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px}.side-cards .card{margin:0}.stats{gap:10px}.appointment-row{grid-template-columns:60px 1fr auto}.day-board{grid-template-columns:1fr}.room{min-height:0}.room-empty{padding:16px}}@media(max-width:640px){body>aside{position:static;width:100%;padding:14px;border-right:0;border-bottom:1px solid var(--line)}.logo{font-size:23px}.logo>span:first-child{font-size:30px}.practice,.nav-caption,.sidebar-bottom{display:none}nav{display:flex;overflow:auto;margin-top:12px}nav button{width:auto;white-space:nowrap;padding:10px;font-size:10px;gap:6px;margin:0}nav .icon{width:15px;height:15px}.nav-count{display:none}main{margin:0}header{height:57px;padding:14px}.header-right{gap:9px}.breadcrumb{font-size:10px}.breadcrumb span{margin:0 7px}.demo-badge{font-size:8px}section{padding:24px 14px 12px}h1{font-size:25px}.page-head{align-items:flex-start}.head-actions{flex-direction:column}.btn{font-size:10px;padding:9px 11px}.stats{grid-template-columns:1fr 1fr}.hero-banner{padding:15px}.hero-banner .btn{display:none}.side-cards,.bottom-grid,.split{grid-template-columns:1fr}.row-actions .link-btn{font-size:10px}.appointment-row{gap:8px;padding:15px 0}.patient-cell{gap:8px;font-size:11px}.schedule-list{padding:0 13px}.panel-head{padding:16px}.search{width:100%}.tabs{flex-wrap:wrap}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}footer{padding:15px}.key-value{gap:15px}th,td{padding:13px}table{min-width:600px}.date-controls{flex-wrap:wrap}.panel-foot{padding:12px}.stat-value{font-size:25px}}
.account-summary{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.account-summary .stat-value{font-size:28px}.medical-alert{background:#fbefe8;border:1px solid #efd8c9;border-left:3px solid #bd8864;border-radius:7px;padding:13px;margin-bottom:18px;font-size:11px}.medical-alert b{display:block;color:#a47553;margin-bottom:6px}.medical-alert span{line-height:1.7}.medical-alert small{color:#ac8f79}nav button{padding-top:10px;padding-bottom:10px}.demo-card{padding:13px}.demo-card>span{margin-bottom:7px}.demo-card p{margin-bottom:8px}@media(max-width:640px){.account-summary{align-items:flex-start;flex-direction:column}.account-summary .quick-actions{width:100%}}
/* Dropdowns: our own arrow, inset from the edge the same way everywhere
   (the browser's arrow sits against the right border). Sized in em so compact
   dropdowns get a smaller arrow and gap. */
:root{--chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1.5 1.75l4.5 4.5 4.5-4.5' fill='none' stroke='%23667a6d' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
select:not([multiple]):not([size]){-webkit-appearance:none;appearance:none;background-image:var(--chev)!important;background-repeat:no-repeat!important;background-position:right .95em center!important;background-size:.8em auto!important;padding-right:2.6em!important;text-overflow:ellipsis}
select:not([multiple]):not([size]):disabled{opacity:.6}
select.prio-select:not([multiple]){background-image:var(--chev),radial-gradient(circle at 10px 50%,var(--pc) 4px,transparent 4.5px)!important;background-position:right .8em center,0 0!important;background-size:.8em auto,auto!important;padding-right:2.2em!important}
/* Date and time pickers: keep the calendar/clock icon off the right edge too. */
input[type=date],input[type=time],input[type=datetime-local],input[type=month],input[type=week]{padding-right:.95em}
input::-webkit-calendar-picker-indicator{margin-left:.5em;opacity:.7;cursor:pointer}
/* "Name … Action →" rows: the action never wraps under its arrow. */
.row>.link-btn{white-space:nowrap;flex:none}
.nowrap{white-space:nowrap}
/* Text links next to each other or after a button keep their breathing room
   (links have no side padding, so the text lines up with what's around it). */
.link-btn+.link-btn,.btn+.link-btn{margin-left:10px}
/* Column headings are short labels: never break them mid-word. */
th{white-space:nowrap}
/* A patient's name stays on one line in tables. */
.patient-cell b{white-space:nowrap}
/* A note under a patient (phone, "since…", "referred…") lines up with the
   name, not the avatar. */
.patient-cell+small{padding-left:45px}
/* Page-top buttons keep their labels on one line; the title wraps instead. */
.head-actions{flex-shrink:0}
.head-actions .btn{white-space:nowrap}
