/* City Dental Arts / premium presentation layer. No business rules or remote assets. */
:root {
  --ink:#183044; --muted:#5f7382; --line:#dbe5e9; --soft:#f1f5f5;
  --teal:#087e79; --premium-navy:#102b40; --premium-gold:#d5ad68;
  --premium-shadow:0 16px 42px rgb(17 46 62 / 6%);
}
body { background:#f1f5f5; -webkit-font-smoothing:antialiased; }
button,a,input,select,textarea { -webkit-tap-highlight-color:transparent; }
button:focus-visible,a:focus-visible { outline:3px solid #239b99; outline-offset:4px; }
.btn,.lw-button { font-weight:650; border-radius:12px; min-height:44px; }
.btn-primary,.lw-primary { background:linear-gradient(125deg,#0b817b,#086863); border-color:#0a7671; box-shadow:0 5px 14px #096e6a20; }
.btn:disabled:hover,.lw-button:disabled:hover { transform:none; box-shadow:none; }
.eyebrow,.lw-eyebrow { font-size:.68rem; letter-spacing:.2em; font-weight:750; }
h1,h2,h3 { text-wrap:balance; }

/* Cinematic enamel stage: characters remain independent, not a moving image. */
.login-shell { grid-template-columns:minmax(0,1.06fr) minmax(0,1fr); background:#f3f6f4; }
.login-art {
  background:radial-gradient(ellipse at 85% 60%,#14686570,transparent 55%),
    radial-gradient(ellipse at 8% 0,#204764,transparent 55%),linear-gradient(145deg,#112b40,#0b2233);
  padding:clamp(28px,4vw,62px); gap:24px; justify-content:center;
}
.login-art .brand-card { width:230px; margin:0 0 8px; padding:13px 19px; border-radius:17px; transform:none; animation:none; box-shadow:0 14px 30px #0002; }
.login-intro { text-align:left; width:100%; max-width:520px; margin:0 auto; }
.login-kicker { color:#d6bb86; letter-spacing:.18em; font-size:.68rem; }
.login-intro h1 { font-size:clamp(2.5rem,4.6vw,4.65rem); font-weight:650; letter-spacing:-.055em; line-height:1.08; text-shadow:none; }
.login-intro>p:last-child { color:#c1d3de; margin-top:17px; font-size:1rem; }
.login-art:before { width:650px; height:650px; top:-340px; right:-350px; border-color:#d5ad682a; box-shadow:0 0 0 70px #fff02,0 0 0 140px #fff01; }
.login-art:after { width:400px; height:110px; bottom:15%; left:calc(50% - 200px); border:1px solid #a9e7d525; background:radial-gradient(ellipse,#bde5e520,transparent 70%); border-radius:50%; animation:portal-breathe 7s ease-in-out infinite; }
.portal-scene-grid { opacity:.35; }
.portal-depth-ring { opacity:.32; }
.portal-depth-tile { opacity:.5; width:44px; height:44px; border-radius:13px; box-shadow:0 4px 0 #0a2936,0 14px 30px #0003; }
.portal-depth-tile.t1 { top:47%; left:3%; }.portal-depth-tile.t2 { right:4%; top:76%; }.portal-depth-tile.t3 { left:6%; bottom:7%; }
.animated-mascots { max-width:470px; margin:10px auto; }
.animated-mascots:before { content:""; position:absolute; left:-4%; right:-4%; bottom:0; height:35px; border-radius:50%; background:radial-gradient(ellipse,#b9ecde2a,transparent 65%); border:1px solid #99e1d518; z-index:-1; }
.login-art:after { opacity:.16; }
.login-copy { margin:0 auto; max-width:520px; text-align:left; }
.login-copy>p { font-size:.82rem; line-height:1.7; color:#b7ccd8; }
.login-feature-chips { justify-content:flex-start; gap:7px; margin-top:17px; }
.login-feature-chips span { font-weight:500; color:#e2edf3; border-color:#a4c5d12a; background:#fff04; }
.login-panel { padding:40px clamp(22px,4.5vw,75px); background:radial-gradient(ellipse at 100% 0,#e2ece4,transparent 65%),#f3f6f4; }
.login-panel:before { opacity:.35; }
.login-box { max-width:480px; border-radius:24px; padding:34px 36px; background:#fff; border:1px solid #e1e9e4; box-shadow:0 3px 0 #e3eae6,0 28px 80px #143a5010; }
.login-box .eyebrow { color:#516976; margin:0 0 20px; }
.login-box h2 { font-size:2.35rem; font-weight:650; letter-spacing:-.055em; margin:27px 0 9px; }
.login-box .lead { font-size:.9rem; color:#637681; margin-bottom:22px; }
.login-leave-link { padding:14px 16px; background:#f0f6f3; border-color:#d7e5dd; border-radius:12px; }
.login-leave-link>span { color:#546f66; }.login-leave-link strong { font-weight:700; font-size:.83rem; }
.login-box .field { gap:7px; margin-top:17px; }.login-box .field label { font-size:.8rem; font-weight:650; }
.login-box .field input { border-radius:11px; background:#fafcfb; border-color:#d3dfda; min-height:52px; }
.login-box #loginForm .btn-primary { box-shadow:0 7px 18px #08746e20; background:linear-gradient(125deg,#0c8279,#086a65); font-weight:650; border-radius:11px; }
.login-box .microsoft-login { background:#163b55; box-shadow:none; font-size:.88rem; border-radius:11px; }
.login-session-note { padding-top:18px; border-top:1px solid #e7ede9; color:#647a77; margin-top:23px; }

/* Workspace gallery with real counts only. */
.workspace-shell,.global-shell { background:radial-gradient(ellipse at 100% 20%,#dfebe880,transparent 50%),#f1f5f5; }
.workspace-top { min-height:82px; padding:13px clamp(20px,5vw,76px); border-bottom:1px solid #dce6e6; box-shadow:none; }
.workspace-top img { width:172px; }
.workspace-content { max-width:1360px; padding-top:34px; }
.premium-workspace-hero { position:relative; isolation:isolate; overflow:hidden; padding:35px 38px; border-radius:24px; background:radial-gradient(ellipse at 95% 70%,#2b756666,transparent 65%),linear-gradient(115deg,#12354d,#112a3d); color:#fff; }
.premium-workspace-hero:after { content:""; position:absolute; z-index:-1; width:420px; height:420px; border-radius:50%; border:1px solid #b8d9d522; right:-190px; top:-270px; box-shadow:0 0 0 45px #fff02,0 0 0 90px #fff01; animation:portal-orbit 35s linear infinite; }
.premium-workspace-hero .eyebrow { color:#d9bd87; margin:0; }
.premium-workspace-hero h1 { font-size:clamp(2rem,3.5vw,3.4rem); letter-spacing:-.045em; font-weight:650; line-height:1.15; margin:14px 0 11px; }
.premium-workspace-hero .lead { color:#bfd2dd; font-size:.92rem; max-width:560px; margin:0 0 25px; }
.premium-workspace-hero .btn { background:#fff; color:#12374d; border-color:#ffffff45; text-decoration:none; font-size:.83rem; }
.premium-workspace-hero .btn:last-child { background:#ffffff0c; color:#fff; }
.premium-workspace-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:30px 0 18px; }
.premium-workspace-heading h2 { margin:0; font-size:1.12rem; font-weight:650; }.premium-workspace-heading p { margin:5px 0 0; color:#607583; font-size:.82rem; }
.workspace-list { grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:0; gap:18px; }
.workspace-card { padding:25px; display:grid; grid-template-columns:58px minmax(0,1fr); align-items:start; gap:18px; border-radius:19px; border-color:#d9e5e7; box-shadow:0 7px 22px #183f5005; background:#fff; }
.workspace-card:first-child { background:#fff; border-color:#d9e5e7; }
.workspace-card:after { width:160px; height:160px; right:-100px; top:-80px; background:#e4f1ee; }
.workspace-badge { width:58px; height:58px; border-radius:15px; font-size:1.05rem; transform:none; background:#edf5f4; box-shadow:0 3px 0 #dbe8e5; color:#166460; font-weight:700; }
.workspace-card:first-child .workspace-badge { background:#e8f2f3; color:#17546b; }
.workspace-info h3 { font-weight:650; font-size:1.1rem; margin:3px 0 7px; }.workspace-info p { font-size:.8rem; }
.workspace-card .clinic-workspace-actions,.workspace-card>.btn { grid-column:1/-1; margin:4px 0 0; }
.workspace-card .clinic-workspace-actions { justify-content:flex-end; flex-wrap:wrap; }.workspace-card .btn { font-size:.8rem; padding:10px 14px; }
.workspace-card .clinic-workspace-actions .btn:last-child { color:#08776d; background:#eff7f4; border-color:#d0e5dc; }
.workspace-calendar { grid-column:1/-1; grid-template-columns:58px minmax(0,1fr) auto; background:linear-gradient(100deg,#e5f1ed,#f8fcfa)!important; border-color:#c6ded5!important; }
.workspace-calendar>.btn { grid-column:3; margin:6px 0 0; }
.workspace-calendar .workspace-badge svg { width:25px; height:25px; }

/* Dark navigation, calm content canvas and consistent line icons. */
.sidebar { background:linear-gradient(165deg,#14344a,#0f2537 85%); border-right:0; box-shadow:8px 0 32px #112d4010; }
.sidebar-logo { margin:20px 19px 0; padding:12px 16px; background:#fff; border-radius:13px; border:0; }
.nav { padding:25px 13px 16px; gap:5px; }.nav-label { color:#a0b8c8; font-size:.61rem; font-weight:600; padding:8px 14px 17px; }
.nav button { color:#c0d2de; font-weight:500; font-size:.86rem; min-height:45px; border-radius:10px; }
.nav button:hover { color:#fff; background:#ffffff0c; }
.nav button.active { color:#fff; background:linear-gradient(100deg,#276b6970,#276b6920); box-shadow:inset 3px 0 #64beb0; }
.nav-icon { display:grid; place-items:center; flex:0 0 23px; }.nav-icon svg { width:19px; height:19px; }
.sidebar-user { border-color:#ffffff15; background:#ffffff07; color:#e0eaf0; border-radius:12px; }
.sidebar-user small { color:#a6becc; }.sidebar-user .workspace-badge { background:#315767; color:#c7e3e4; box-shadow:none; }
.topbar { min-height:80px; background:#fbfdfbdc; box-shadow:none; border-color:#dce5e6; }
.topbar .search { background:#eef3f2; border-color:transparent; border-radius:11px; color:#405d6c; }
.avatar { background:#e3efea; color:#235e58; font-weight:650; }
.user-identity strong { font-weight:650; }.user-identity small { font-size:.7rem; }
.notification-button { box-shadow:none; }.logout-btn { min-width:72px; font-weight:550; }
.content,.global-content { padding-top:28px; }
.page-head { align-items:center; border-bottom:1px solid #d6e3e6; padding-bottom:23px; margin-bottom:24px; }
.page-head h1 { font-weight:650; font-size:clamp(1.8rem,2.9vw,2.8rem); letter-spacing:-.045em; }
.page-head p { font-size:.86rem; }.page-head .eyebrow { font-size:.65rem; color:#427b76; margin-bottom:11px; }
.card { border-radius:17px; border-color:#dce6e9; box-shadow:0 6px 23px #10384b04; }
.card h2,.card-title h2 { font-size:1.05rem; font-weight:650; letter-spacing:-.015em; }
.reminder-card .empty { padding:26px 0 10px; display:grid; grid-template-columns:52px minmax(0,1fr); gap:5px 17px; text-align:left; align-items:center; }
.reminder-card .empty-icon { width:52px; height:52px; border-radius:14px; grid-row:1/3; margin:0; font-size:1.4rem; }
.reminder-card .empty h3 { margin:0; font-size:.9rem; }.reminder-card .empty p { margin:0; max-width:650px; font-size:.78rem; }
.stat-card { border-top:1px solid #dce6e9!important; border-bottom:3px solid #85b9ae; padding:22px; }
.stat-card:nth-child(2) { border-bottom-color:#80a6be; }.stat-card:nth-child(3) { border-bottom-color:#d2b880; }.stat-card:nth-child(4) { border-bottom-color:#bfaba6; }
.stat-card>span { font-size:.78rem; font-weight:600; color:#5d7580; }.stat-card strong { font-size:2.8rem; line-height:1.2; font-weight:650; margin:16px 0 9px; font-variant-numeric:tabular-nums; }
.stat-card small { font-size:.72rem; }.stat-card:after { width:72px; height:72px; opacity:.45; }
.list-item strong { font-weight:600; font-size:.88rem; }.list-item small { font-size:.76rem; }
.data-table th { background:#edf3f2; color:#52717c; font-size:.65rem; letter-spacing:.11em; }.data-table td { padding-block:17px; }
.data-table tbody tr:hover { background:#f0f8f4; }.pill { font-size:.7rem; font-weight:650; padding:5px 10px; }
.link-btn { font-weight:650; }.table-wrap { border-radius:17px; }
.calendar-tools { padding:13px 17px; border:1px solid #dae5e7; background:#fff; border-radius:15px; }
.month-nav h2 { font-size:1.1rem; font-weight:650; }.cal-head { background:#eff5f3; font-size:.65rem; letter-spacing:.1em; }
.cal-num { font-weight:600; }.cal-day:not(.muted):hover { background:#f3faf7; }.cal-event { border-radius:6px; font-weight:600; font-size:.69rem; }
.modal { border-radius:20px; box-shadow:0 30px 95px #0c293b40; }.modal-head { background:#f9fcfa; }.modal-head h2 { font-weight:650; }.modal-foot { background:#f4f8f6; }
.field label { font-size:.83rem; font-weight:650; }.field input,.field select,.field textarea { border-radius:10px; border-color:#cfddda; background:#fbfdfc; }

/* Leave intake, settings and decision screens share the same design system. */
.lw-header { min-height:88px; padding:14px max(5vw,20px); border-color:#dce5e6; background:#ffffffdc; }
.lw-header img { width:172px; }.lw-header .lw-button { background:transparent; font-size:.82rem; }
.lw-main { max-width:940px; margin-top:36px; }.lw-wide { max-width:1260px; }
.lw-main>h1 { font-size:clamp(2.15rem,4vw,3.55rem); font-weight:650; letter-spacing:-.05em; margin:10px 0; }
.lw-eyebrow { color:#487b72; margin-bottom:9px; }.lw-lead { font-size:.95rem; margin:12px 0 28px; }
.lw-card { border-radius:19px; padding:30px; border-color:#d9e5e6; box-shadow:var(--premium-shadow); }
.lw-card h2 { font-size:1.3rem; letter-spacing:-.03em; font-weight:650; }.lw-card h3 { font-size:1.03rem; font-weight:650; }
.lw-card>p,.lw-card>summary { font-size:.9rem; }.lw-card summary { cursor:pointer; }
.lw-field label,legend { font-weight:650; font-size:.83rem; }.lw-field input,.lw-field select,.lw-field textarea { background:#fbfdfb; border-radius:10px; border-color:#ccdcd5; font-size:.94rem; }
.lw-field input:focus,.lw-field select:focus,.lw-field textarea:focus { outline:2px solid #128d8060; outline-offset:2px; }
.lw-field small,.lw-footnote { font-size:.77rem; line-height:1.65; }.lw-check { font-size:.85rem; gap:12px; }
.lw-check input { accent-color:#087c71; flex-shrink:0; }
.lw-status { border:1px solid #b7d5c9; background:#eaf5ee; color:#225e4a; padding:13px 17px; font-size:.86rem; }
.lw-error { border-color:#e9c1b8; background:#fff0eb; color:#8e3121; }
.lw-request { padding:20px 22px; border-radius:13px; box-shadow:none; }.lw-request strong { font-weight:650; }.lw-request p { font-size:.81rem; }.lw-badge { border-radius:999px; font-size:.72rem; padding:5px 11px; }
.lw-details { grid-template-columns:180px minmax(0,1fr); gap:0 22px; }.lw-details dt,.lw-details dd { padding:12px 0; border-bottom:1px solid #e8efeb; font-size:.88rem; }
.lw-details dt { color:#607c76; }.lw-details dd { color:#223e4b; }
.lw-queue th { font-size:.7rem; letter-spacing:.06em; color:#50716a; background:#f0f6f3; }.lw-queue td { overflow-wrap:anywhere; }
.lw-availability { border-top:3px solid #74b4a4; }

@media(min-width:1101px) { .login-art { min-height:100svh; }.login-art .brand-card { align-self:flex-start; }.login-box { margin-block:12px; } }
@media(max-width:1100px) and (min-width:761px) { .login-art { padding:30px; gap:20px; }.login-intro h1 { font-size:3rem; }.login-box { padding:28px 24px; }.login-art .brand-card { width:200px; }.login-panel { padding:30px 22px; } }
@media(max-width:1000px) { .workspace-list { gap:14px; }.workspace-card { padding:20px; }.workspace-calendar { grid-template-columns:58px minmax(0,1fr); }.workspace-calendar>.btn { grid-column:1/-1; justify-self:start; } }
@media(max-width:760px) {
  .login-shell { grid-template-columns:1fr; }.login-art { padding:28px 24px 25px; gap:20px; }.login-art .brand-card { width:175px; margin:0; padding:10px 14px; border-radius:12px; }
  .login-intro { max-width:470px; }.login-intro h1 { font-size:2.85rem; }.login-intro>p:last-child { font-size:.84rem; margin-top:12px; }.login-kicker { font-size:.6rem; }
  .animated-mascots { max-width:390px; min-height:0; margin:0 auto; }.login-copy { max-width:470px; }.login-copy>p { font-size:.75rem; }.login-feature-chips span { font-size:.61rem; }
  .login-art:after { bottom:22%; }.portal-depth-tile.t1,.portal-depth-tile.t2 { display:none; }
  .login-panel { padding:24px 18px 35px; }.login-box { padding:25px 22px; border-radius:20px; }.login-box h2 { font-size:2rem; }
  .workspace-top { gap:10px; padding:12px 16px; min-height:74px; }.workspace-top img { width:140px; }.workspace-top .logout-btn { min-width:60px; padding:8px 10px; }
  .workspace-content { padding:22px 18px 45px; }.premium-workspace-hero { padding:28px 24px; border-radius:19px; }.premium-workspace-hero h1 { font-size:2.3rem; }.premium-workspace-hero .lead { font-size:.84rem; }
  .premium-workspace-hero .clinic-workspace-actions { gap:8px; }.premium-workspace-hero .btn { font-size:.77rem; padding:11px 13px; }
  .workspace-list { grid-template-columns:1fr; }.workspace-card { padding:22px; }.workspace-calendar { grid-column:auto; }
  .premium-workspace-heading h2 { font-size:1rem; }.premium-workspace-heading .btn { padding:9px 12px; font-size:.78rem; }
  .content,.global-content { padding:22px 18px 45px; }.page-head { padding-bottom:20px; }.topbar { min-height:70px; }
  .page-head>.actions { justify-content:flex-start; }.calendar-tools { padding:10px; }.month-nav { gap:6px; }.month-nav h2 { min-width:150px; font-size:1rem; }
  .lw-header { min-height:76px; padding:13px 18px; gap:12px; }.lw-header img { width:142px; }.lw-header nav { gap:5px; }.lw-header .lw-button { min-height:36px; padding:7px 10px; font-size:.75rem; }
  .lw-main { margin-top:28px; padding-inline:18px; }.lw-main>h1 { font-size:2.25rem; }.lw-lead { font-size:.86rem; }
  .lw-card { padding:23px; border-radius:16px; }.lw-details { grid-template-columns:1fr; gap:0; }.lw-details dt { padding-bottom:0; border:0; font-size:.75rem; }.lw-details dd { padding-top:4px; margin:0; }
}
@media(prefers-reduced-motion:reduce) { .premium-workspace-hero:after { animation:none; } }
@media print {
  .sidebar,.topbar,.workspace-top,.lw-header { display:none!important; }
  body,.workspace-shell,.global-shell { background:#fff; }.app-shell { display:block; }
  .card,.lw-card,.workspace-card { box-shadow:none; break-inside:avoid; }
}
