/* Shared clinic surfaces. Scoped to plugin panels and their host pages. */
body.cnb-panel-page{
 --cnb-page-base:#f3f7fb;--cnb-page-primary:#0067a8;
 background-color:#eaf1f7!important;
 background-image:radial-gradient(ellipse at 4% 8%,color-mix(in srgb,var(--cnb-page-primary) 15%,transparent),transparent 48%),radial-gradient(ellipse at 96% 64%,#c89b3c20,transparent 42%),linear-gradient(150deg,color-mix(in srgb,var(--cnb-page-base) 94%,var(--cnb-page-primary)),color-mix(in srgb,var(--cnb-page-base) 95%,#c89b3c))!important;
 background-attachment:fixed;min-height:100vh;
}
body.cnb-panel-page .cnb-panel-host{background:transparent!important;background-image:none!important;overflow:visible!important}
.cnb-panel-page .cnb-app[data-layout=wide]{
 --cnb-panel-width:min(1660px,calc(100vw - 48px));
 width:var(--cnb-panel-width);max-width:none;
 margin:24px calc((100% - var(--cnb-panel-width))/2);
 /* Block themes force automatic child margins; retain centered wide panels. */
 margin-left:calc((100% - var(--cnb-panel-width))/2)!important;
 margin-right:calc((100% - var(--cnb-panel-width))/2)!important;
}
.cnb-panel-page .cnb-app.cnb-staff-entry[data-layout=wide]{--cnb-panel-width:min(1180px,calc(100vw - 48px));margin-top:36px;margin-bottom:36px}
.cnb-app{--cnb-soft-shadow:0 7px 24px #123c6309;--cnb-surface-border:color-mix(in srgb,var(--cnb-line) 72%,var(--cnb-card));}
.cnb-app .cnb-shell{border:1px solid color-mix(in srgb,var(--cnb-line) 68%,var(--cnb-card));border-radius:24px;box-shadow:0 22px 64px #123c6312,0 2px 8px #123c6306;background:var(--cnb-bg)}
.cnb-app .cnb-main{background-color:var(--cnb-bg);background-image:radial-gradient(ellipse at 100% 0,color-mix(in srgb,var(--cnb-teal) 7%,transparent),transparent 56%),radial-gradient(ellipse at 0 100%,#c89b3c0d,transparent 48%)}
.cnb-app .cnb-content{padding:30px}
.cnb-app .cnb-sidebar{background-color:var(--cnb-sidebar);background-image:radial-gradient(ellipse at 100% 0,color-mix(in srgb,var(--cnb-teal) 16%,transparent),transparent 60%),linear-gradient(170deg,transparent 55%,#c89b3c0b);border-inline-end:1px solid color-mix(in srgb,var(--cnb-nav-text) 10%,transparent);padding:30px 15px}
.cnb-app .cnb-sidebar nav{gap:7px}
.cnb-app .cnb-sidebar nav button{border:1px solid transparent;border-radius:12px;transition:background .16s ease,border-color .16s ease;color:var(--cnb-nav-text)}
.cnb-app .cnb-sidebar nav button.active{background:var(--cnb-active);border-color:color-mix(in srgb,var(--cnb-active) 85%,var(--cnb-gold));color:var(--cnb-active-text,#fff);box-shadow:inset -3px 0 var(--cnb-gold),0 4px 12px #0000000b}
.cnb-app .cnb-sidebar nav button:not(.active):hover,.cnb-app .cnb-sidebar nav button:not(.active):focus-visible{background:color-mix(in srgb,var(--cnb-nav-text) 10%,transparent);border-color:color-mix(in srgb,var(--cnb-nav-text) 17%,transparent);color:var(--cnb-nav-text)!important}
.cnb-app .cnb-logo{padding:0 12px 26px}
.cnb-app .cnb-logo img{padding:9px;border-radius:14px;box-shadow:0 5px 15px #0000000a}
.cnb-app .cnb-logo small{font-size:10px;line-height:1.8}
.cnb-app .cnb-sidebar-foot{padding-top:24px;line-height:2.1}
.cnb-app .cnb-top{min-height:76px;height:auto;background:var(--cnb-card);background-image:linear-gradient(90deg,#c89b3c06,transparent 45%);border-bottom-color:var(--cnb-surface-border);gap:14px;padding:18px 30px}
.cnb-app .cnb-top>span{line-height:1.8}
.cnb-app .cnb-top>div{gap:12px;flex-wrap:wrap}
.cnb-app .cnb-top [data-action=logout]{border:1px solid var(--cnb-line);border-radius:9px;font-size:12px;min-height:34px}
.cnb-app .cnb-heading{gap:18px;margin-bottom:24px}
.cnb-app .cnb-heading h2{font-size:25px;line-height:1.65}
.cnb-app .cnb-heading p{margin-top:9px;line-height:1.95}
.cnb-app .cnb-heading>div:first-child>h2:after{width:42px;height:3px;margin-top:8px;background:linear-gradient(90deg,color-mix(in srgb,var(--cnb-gold) 25%,transparent),var(--cnb-gold))}
.cnb-app .cnb-panel,.cnb-app .cnb-card,.cnb-app .cnb-booking,.cnb-app .cnb-clinical-patient{border-color:var(--cnb-surface-border);border-radius:18px;box-shadow:var(--cnb-soft-shadow);background-color:var(--cnb-card)}
.cnb-app .cnb-stats{gap:16px}
.cnb-app .cnb-stats article{border-color:var(--cnb-surface-border);border-radius:17px;box-shadow:var(--cnb-soft-shadow);background-color:var(--cnb-card);background-image:linear-gradient(150deg,transparent 45%,color-mix(in srgb,var(--cnb-teal) 4%,transparent))}
.cnb-app .cnb-stats article:after{height:3px;opacity:.8;background:linear-gradient(90deg,transparent,var(--cnb-gold),transparent)}
.cnb-app .cnb-stats strong{font-size:25px;line-height:1.6;margin-top:10px}
.cnb-app .cnb-stats article>small{font-size:12px;line-height:1.8}
.cnb-app .cnb-btn{border-radius:11px;min-height:44px;transition:background .16s ease,box-shadow .16s ease,border-color .16s ease}
.cnb-app .cnb-btn:not(.cnb-outline):not(.cnb-quiet):not(.cnb-danger){box-shadow:0 4px 11px color-mix(in srgb,var(--cnb-teal) 16%,transparent);background-image:linear-gradient(155deg,#ffffff0b,transparent)}
.cnb-app .cnb-btn.cnb-outline{border-color:color-mix(in srgb,var(--cnb-teal) 25%,var(--cnb-line));box-shadow:none}
.cnb-app .cnb-btn.cnb-quiet{box-shadow:none;min-height:34px}
.cnb-app .cnb-btn:focus-visible{outline:3px solid var(--cnb-gold);outline-offset:3px}
.cnb-app .cnb-field{gap:8px}
.cnb-app input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.cnb-app select,.cnb-app textarea,.cnb-app .cnb-date{border-radius:10px;min-height:45px;border-color:var(--cnb-line);background-color:var(--cnb-card);transition:border-color .15s ease,box-shadow .15s ease}
.cnb-app input:not([type=checkbox]):not([type=radio]):focus,.cnb-app select:focus,.cnb-app textarea:focus,.cnb-app .cnb-date:focus-visible{border-color:var(--cnb-teal);box-shadow:0 0 0 3px color-mix(in srgb,var(--cnb-teal) 11%,transparent)}
.cnb-app .cnb-table-wrap{border-radius:12px}
.cnb-app table{font-size:13px}
.cnb-app th{background:color-mix(in srgb,var(--cnb-bg) 75%,var(--cnb-card));color:var(--cnb-ink)}
.cnb-app tbody tr:hover td{background:color-mix(in srgb,var(--cnb-teal) 3%,var(--cnb-card))}
.cnb-app .cnb-choice{transition:border-color .16s ease,box-shadow .16s ease}
.cnb-app .cnb-choice:hover{box-shadow:0 7px 22px #123c6310}
.cnb-app .cnb-empty{border:1px dashed var(--cnb-line);border-radius:14px;background:color-mix(in srgb,var(--cnb-bg) 55%,var(--cnb-card));margin:12px 0}
.cnb-app .cnb-notice,.cnb-app .cnb-warning,.cnb-app .cnb-clinical-alert{border-radius:12px;line-height:1.9}
.cnb-app .cnb-dialog{border-radius:22px;box-shadow:0 28px 100px #123c6338;border-color:var(--cnb-surface-border);max-height:calc(100dvh - 32px)}
.cnb-app .cnb-dialog:not(.cnb-calendar-dialog){width:920px;max-width:calc(100vw - 32px)}
.cnb-app .cnb-dialog:has(.cnb-auth){width:600px}
.cnb-app .cnb-dialog::backdrop{background:#102c4866;backdrop-filter:blur(3px)}
.cnb-app .cnb-doctor-tabs{box-shadow:inset 0 1px 2px #123c6305}
.cnb-app .cnb-clinical-interview.has-selection>summary{color:var(--cnb-active-text,#fff)}
.cnb-app.cnb-staff-entry .cnb-shell{background:transparent;border:0}
.cnb-app.cnb-staff-entry .cnb-content{padding:0}
.cnb-app.cnb-staff-entry .cnb-main{background:transparent}
@container(max-width:950px){.cnb-app .cnb-content{padding:22px}.cnb-app .cnb-top{padding:16px 22px}}
@container(max-width:700px){
 .cnb-app .cnb-shell{border-radius:18px}
 .cnb-app .cnb-sidebar{padding:16px 12px 10px}
 .cnb-app .cnb-sidebar nav{gap:6px;scrollbar-width:none;padding:4px 0 8px}
 .cnb-app .cnb-sidebar nav::-webkit-scrollbar{display:none}
 .cnb-app .cnb-logo{padding:0 8px 12px}
 .cnb-app .cnb-logo img{max-width:132px;max-height:78px;margin-bottom:0}
 .cnb-app .cnb-content{padding:20px 14px}
 .cnb-app .cnb-top{padding:13px 16px;gap:8px}
 .cnb-app .cnb-top>span{font-size:11px}
 .cnb-app .cnb-heading h2{font-size:21px}
 .cnb-app .cnb-heading{gap:12px;margin-bottom:20px}
 .cnb-app .cnb-stats{gap:10px}
 .cnb-app .cnb-stats strong{font-size:21px}
 .cnb-app .cnb-btn{min-height:43px;padding:9px 15px}
 .cnb-app .cnb-btn.cnb-quiet{min-height:32px;padding:5px 9px}
 .cnb-app .cnb-dialog{border-radius:17px}
 .cnb-app .cnb-dialog-head{top:-18px;margin:-18px -18px 16px}
 .cnb-app.cnb-staff-entry .cnb-content{padding:0}
}
@media(max-width:700px){.cnb-panel-page .cnb-app[data-layout=wide],.cnb-panel-page .cnb-app.cnb-staff-entry[data-layout=wide]{--cnb-panel-width:calc(100vw - 16px);margin-top:12px;margin-bottom:12px}body.cnb-panel-page{background-attachment:scroll}}
@media(prefers-reduced-motion:reduce){.cnb-app button,.cnb-app input,.cnb-app select,.cnb-app textarea{transition:none!important}}
@media print{body.cnb-panel-page{background:#fff!important}.cnb-app .cnb-shell,.cnb-app .cnb-panel,.cnb-app .cnb-stats article{box-shadow:none!important}.cnb-panel-page .cnb-app[data-layout=wide]{width:100%;margin:0!important;max-width:none}}

/* Shared date controls and time choices must not inherit the site's button colors. */
.cnb-app a:is(:hover,:focus,:visited){color:var(--cnb-teal)}
.cnb-app button.cnb-date,.cnb-app button.cnb-date:is(:hover,:focus){color:var(--cnb-ink)!important;background:var(--cnb-card)!important;border:1px solid var(--cnb-line)!important}
.cnb-app button.cnb-date:is(:hover,:focus-visible){background:#f3f8ff!important;border-color:var(--cnb-teal)!important}
.cnb-app button.cnb-slot,.cnb-app button.cnb-slot:is(:hover,:focus){color:var(--cnb-ink);background:var(--cnb-card);border-color:var(--cnb-line)}
.cnb-app button.cnb-slot:is(:hover,:focus-visible){background:#f3f8ff;border-color:var(--cnb-teal)}
.cnb-app button.cnb-slot.selected{color:var(--cnb-active-text,#fff)!important;background:var(--cnb-active)!important;border-color:var(--cnb-active)!important}
.cnb-app.cnb-reserving button.cnb-slot.selected{color:var(--cnb-button-text,#fff)!important;background:var(--cnb-teal)!important;border-color:var(--cnb-teal)!important}
.cnb-app .cnb-sidebar-foot{display:flex;flex-direction:column;align-items:center;gap:7px;margin:28px 0 0;padding:14px 7px;border:1px solid #d5e2ed;border-radius:12px;background:#f8fbfe;line-height:1.8;margin-top:auto}
.cnb-app .cnb-sidebar-foot a,.cnb-app .cnb-sidebar-foot a:is(:hover,:focus){color:#0067a8;text-decoration:none;max-width:100%}
.cnb-app .cnb-sidebar-foot a:hover{text-decoration:underline;text-underline-offset:4px}
.cnb-app .cnb-sidebar-foot .cnb-designer-link{font-family:Tahoma,Arial,sans-serif;font-size:14px;font-weight:700;letter-spacing:0}
.cnb-app .cnb-sidebar-foot .cnb-center-phone{font-size:20px;font-weight:700}
.cnb-app .cnb-sidebar nav{margin-bottom:24px}
.cnb-app .cnb-day-grid-controls{align-items:end;gap:20px;margin:4px 0 0;padding-bottom:24px;border-bottom:1px solid var(--cnb-line)}
.cnb-app [data-day-grid]:not(:empty){margin-top:24px}
.cnb-app .cnb-day-grid-heading{margin-bottom:18px}
.cnb-app .cnb-day-grid-heading h4{display:flex;align-items:center;gap:10px 18px;flex-wrap:wrap;font-size:17px;line-height:1.8;margin:0 0 7px}
.cnb-app .cnb-day-grid-date{font-size:13px;font-weight:400;color:var(--cnb-muted)}
.cnb-app .cnb-day-grid-heading p{font-size:12px;margin:0;color:var(--cnb-muted)}
.cnb-app .cnb-manager-booking-filter{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 20px}
@container(max-width:950px){.cnb-app .cnb-manager-booking-filter{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container(max-width:700px){.cnb-app .cnb-manager-booking-filter{grid-template-columns:1fr}}
@container(max-width:700px){.cnb-app .cnb-sidebar nav{margin-bottom:10px}.cnb-app .cnb-sidebar-foot{margin-top:8px;padding:9px;gap:3px}.cnb-app .cnb-day-grid-controls{gap:16px}.cnb-app .cnb-day-grid-heading h4{font-size:16px}.cnb-app .cnb-day-grid-date{flex-basis:100%}}
