:root{--color-bg:#f5f8f8;--color-surface:#fff;--color-surface-sunken:#eef3f3;--color-primary:#0e4a5c;--color-primary-light:#14708a;--color-primary-dark:#082f3b;--color-secondary:#1a936f;--color-secondary-light:#e4f4ee;--color-accent:#f2c14e;--color-accent-dark:#c99a28;--color-danger:#e4572e;--color-danger-bg:#fce9e3;--color-info-bg:#e7ecf6;--color-info:#3b4e9e;--color-text:#16262b;--color-muted:#62787d;--color-border:#dce6e7;--font-display:"Baloo Bhai 2", Georgia, serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"IBM Plex Mono", "Courier New", monospace;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--cusp:28px 8px 28px 8px;--shadow-sm:0 1px 2px #0e4a5c12;--shadow-md:0 10px 28px #0e4a5c1a;--shadow-lg:0 24px 56px #0e4a5c2e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--color-bg:#0f171d;--color-surface:#17222a;--color-surface-sunken:#1d2a33;--color-primary:#5fc7de;--color-primary-light:#82d6e8;--color-primary-dark:#0b3a48;--color-secondary:#3fcb99;--color-secondary-light:#16332a;--color-accent:#f2c14e;--color-accent-dark:#c99a28;--color-danger:#ff7a5c;--color-danger-bg:#3a2019;--color-info-bg:#1d2542;--color-info:#9ab0ec;--color-text:#e7eef0;--color-muted:#93a6ab;--color-border:#2b3b44;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=dark] body{background:var(--color-bg)}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.6;transition:background .2s,color .2s}h1,h2,h3,h4{font-family:var(--font-display);color:var(--color-primary);letter-spacing:-.01em;margin:0 0 .4em;font-weight:600}h1{font-size:clamp(2rem,1.5rem + 2vw,3.2rem);font-weight:500;line-height:1.08}h2{font-size:clamp(1.5rem,1.3rem + .8vw,2.1rem)}h3{font-size:1.15rem}p{color:var(--color-muted);margin:0 0 1em}a{color:var(--color-primary-light);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font-family:inherit;font-size:inherit}img{max-width:100%;display:block}:focus-visible{outline:2px solid var(--color-secondary);outline-offset:2px}ul{margin:0;padding:0;list-style:none}.app-shell{flex-direction:column;min-height:100%;display:flex}.container{width:100%;max-width:1120px;margin:0 auto;padding:0 24px}.container-narrow{width:100%;max-width:760px;margin:0 auto;padding:0 24px}.page{flex:1;padding:40px 0 72px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:28px;display:flex}.eyebrow{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-secondary);margin-bottom:8px;font-size:.72rem;font-weight:500;display:block}.section{padding:84px 0}.section-alt{background:var(--color-surface)}.section-header{text-align:center;max-width:620px;margin:0 auto 48px}.btn{cursor:pointer;border-radius:var(--radius-sm);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:8px;padding:12px 22px;font-size:.92rem;font-weight:600;transition:transform .12s,box-shadow .12s,background .15s,color .15s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff;border-radius:var(--cusp);box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--color-primary-light);box-shadow:var(--shadow-md)}.btn-accent{background:var(--color-accent);color:#3a2c05;border-radius:var(--cusp)}.btn-accent:hover:not(:disabled){background:var(--color-accent-dark);color:#fff}.btn-ghost{color:var(--color-primary);border:1px solid var(--color-border);background:0 0}.btn-ghost:hover:not(:disabled){border-color:var(--color-primary-light);background:var(--color-secondary-light)}.btn-outline-light{color:#fff;background:0 0;border:1px solid #ffffff80}.btn-outline-light:hover:not(:disabled){background:#ffffff1f}.btn-danger{background:var(--color-danger-bg);color:var(--color-danger)}.btn-danger:hover:not(:disabled){background:var(--color-danger);color:#fff}.btn-sm{padding:7px 14px;font-size:.82rem}.btn-lg{padding:15px 28px;font-size:1rem}.btn-block{width:100%}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:24px}.card-cusp{border-radius:var(--cusp)}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:18px 20px}.stat-card .stat-value{font-family:var(--font-display);color:var(--color-primary);margin-bottom:4px;font-size:1.9rem;line-height:1}.stat-card .stat-label{color:var(--color-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem}.grid{gap:18px;display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-auto{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.form-group{margin-bottom:18px}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-label{color:var(--color-primary);margin-bottom:6px;font-size:.84rem;font-weight:600;display:block}.form-input,.form-select,.form-textarea{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;color:var(--color-text);padding:11px 13px}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-secondary);outline:none;box-shadow:0 0 0 3px #1a936f26}.form-hint{color:var(--color-muted);margin-top:4px;font-size:.78rem}.form-error{background:var(--color-danger-bg);color:var(--color-danger);border-radius:var(--radius-sm);margin-bottom:16px;padding:10px 14px;font-size:.86rem}.form-success{background:var(--color-secondary-light);color:var(--color-secondary);border-radius:var(--radius-sm);margin-bottom:16px;padding:10px 14px;font-size:.86rem}.role-toggle{gap:8px;margin-bottom:18px;display:flex}.role-toggle button{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;color:var(--color-muted);flex:1;padding:10px;font-size:.85rem;font-weight:600}.role-toggle button.active{border-color:var(--color-primary);background:var(--color-secondary-light);color:var(--color-primary)}.auth-shell{background:var(--color-primary);grid-template-columns:1.1fr 1fr;min-height:100vh;display:grid}.auth-side{color:#eaf4f1;background:radial-gradient(circle at 20% 20%, #ffffff14, transparent 45%), linear-gradient(160deg, var(--color-primary), #072934);flex-direction:column;justify-content:space-between;padding:56px;display:flex;position:relative;overflow:hidden}.auth-photo-wrap{border:6px solid #ffffff26;border-radius:50%;width:280px;height:280px;position:absolute;bottom:24px;left:30px;overflow:hidden;box-shadow:0 16px 44px #0006}.auth-photo-wrap img{object-fit:cover;width:100%;height:100%;display:block}.auth-photo-dental-chckup{border:6px solid #ffffff26;border-radius:50%;width:280px;height:280px;position:fixed;bottom:24px;left:30px;overflow:hidden;box-shadow:0 16px 44px #0006}.auth-photo-dental-chckup img{object-fit:cover;width:100%;height:100%;display:block}.teeth-logo{border:6px solid #ffffff26;border-radius:50%;width:80px;height:80px;position:fixed;bottom:20px;right:20px;overflow:hidden;box-shadow:0 16px 44px #0006}.teeth-logo img{object-fit:cover;width:100%;height:100%;display:block}@media (width<=640px){.auth-photo-wrap{display:none}}.auth-side h1{color:#fff}.auth-side p{color:#b9d6d0;max-width:380px}.auth-brand{color:#fff;font-family:var(--font-display);align-items:center;gap:10px;font-size:2rem;font-weight:600;display:flex}.auth-form-wrap{background:var(--color-bg);justify-content:center;align-items:center;padding:40px 24px;display:flex}.auth-card{width:100%;max-width:420px}.navbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:20;position:sticky;top:0}.navbar-inner{justify-content:space-between;align-items:center;max-width:1120px;margin:0 auto;padding:14px 24px;display:flex}.brand{font-family:var(--font-display);color:var(--color-primary);align-items:center;gap:10px;font-size:1.15rem;font-weight:600;display:flex}.brand svg{flex-shrink:0}.nav-links{align-items:center;gap:4px;display:flex}.nav-link{color:var(--color-muted);border-radius:999px;padding:8px 14px;font-size:.92rem;font-weight:500;position:relative}.nav-link:hover{color:var(--color-primary);text-decoration:none}.nav-link.active{color:var(--color-primary);background:var(--color-secondary-light)}.nav-actions{align-items:center;gap:10px;display:flex}.nav-user{flex-direction:column;align-items:flex-end;line-height:1.2;display:flex}.nav-user .name{color:var(--color-text);font-size:.85rem;font-weight:600}.nav-user .role{color:var(--color-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem;font-family:var(--font-mono)}.theme-toggle{border:1px solid var(--color-border);background:var(--color-surface);width:36px;height:36px;color:var(--color-primary);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,border-color .15s,transform .12s;display:inline-flex}.theme-toggle:hover{border-color:var(--color-secondary);background:var(--color-secondary-light)}.theme-toggle:active{transform:translateY(1px)}.theme-toggle-light{color:#fff;background:#ffffff14;border-color:#ffffff59}.theme-toggle-light:hover{background:#ffffff29;border-color:#fff9}.site-nav{z-index:30;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#082f3bb8;position:sticky;top:0}.site-nav-inner{justify-content:space-between;align-items:center;max-width:1120px;margin:0 auto;padding:18px 24px;display:flex}.site-nav .brand{color:#fff}.site-nav .brand svg path{fill:#fff}.site-nav-links{align-items:center;gap:28px;display:flex}.site-nav-links a{color:#cfe3e0;font-size:.92rem;font-weight:500}.site-nav-links a:hover{color:#fff;text-decoration:none}.site-nav-actions{align-items:center;gap:12px;display:flex}.hero{color:#fff;background:linear-gradient(150deg, var(--color-primary-dark) 0%, var(--color-primary) 55%, var(--color-primary-light) 100%);padding:96px 0 120px;position:relative;overflow:hidden}.hero:before{content:"";opacity:.5;pointer-events:none;background:radial-gradient(circle at 85% 20%,#1a936f59,#0000 40%),radial-gradient(circle at 10% 90%,#f2c14e2e,#0000 45%);position:absolute;inset:0}.hero-inner{grid-template-columns:1.05fr .95fr;align-items:center;gap:56px;display:grid;position:relative}.hero-eyebrow{font-family:var(--font-mono);letter-spacing:.06em;color:#bfe3d8;background:#ffffff1a;border:1px solid #ffffff2e;border-radius:999px;align-items:center;gap:8px;margin-bottom:22px;padding:6px 14px;font-size:.74rem;display:inline-flex}.hero h1{color:#fff;margin-bottom:20px}.hero p.lead{color:#c9deda;max-width:480px;margin-bottom:32px;font-size:1.05rem}.hero-actions{flex-wrap:wrap;gap:14px;margin-bottom:40px;display:flex}.hero-trust{flex-wrap:wrap;gap:28px;display:flex}.hero-trust div{font-family:var(--font-display);color:#fff;font-size:1.5rem;line-height:1}.hero-trust span{color:#9fc4bd;text-transform:uppercase;letter-spacing:.06em;margin-top:4px;font-size:.74rem;display:block}.hero-visual{position:relative}.hero-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:var(--color-text);max-width:380px;margin-left:auto;padding:26px}.hero-card .badge-row{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.hero-mini-appt{border-radius:var(--radius-sm);background:var(--color-surface-sunken);align-items:center;gap:12px;margin-bottom:10px;padding:12px;display:flex}.hero-mini-appt:last-child{margin-bottom:0}.hero-float{border-radius:var(--radius-md);box-shadow:var(--shadow-md);color:var(--color-primary);background:#fff;align-items:center;gap:10px;padding:14px 18px;font-size:.85rem;font-weight:600;display:flex;position:absolute}.hero-float.top{top:-18px;left:-24px}.hero-float.bottom{bottom:-20px;right:-18px}.feature-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:28px;transition:box-shadow .15s,transform .15s}.feature-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.feature-icon{border-radius:var(--cusp);background:var(--color-secondary-light);justify-content:center;align-items:center;width:46px;height:46px;margin-bottom:16px;display:flex}.doctor-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.doctor-photo{background:linear-gradient(150deg, var(--color-secondary-light), var(--color-surface-sunken));justify-content:center;align-items:center;height:180px;display:flex}.doctor-photo .avatar-xl{border-radius:var(--cusp);background:var(--color-primary);color:#fff;width:84px;height:84px;font-family:var(--font-display);justify-content:center;align-items:center;font-size:1.8rem;font-weight:600;display:flex}.doctor-body{padding:18px 20px}.doctor-body h3{margin-bottom:2px}.doctor-spec{color:var(--color-secondary);margin-bottom:10px;font-size:.82rem;font-weight:600}.cta-band{background:linear-gradient(135deg, var(--color-secondary), #157a5c);border-radius:var(--radius-lg);color:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;padding:56px;display:flex}.cta-band h2{color:#fff;margin-bottom:8px}.cta-band p{color:#dff3ea;margin-bottom:0}.site-footer-full{background:var(--color-primary-dark);color:#9fc4bd;padding:56px 0 28px}.site-footer-full .brand{color:#fff;margin-bottom:12px}.site-footer-full h4{color:#fff;font-family:var(--font-body);text-transform:uppercase;letter-spacing:.06em;margin-bottom:14px;font-size:.85rem}.site-footer-full a{color:#9fc4bd}.site-footer-full a:hover{color:#fff}.footer-grid{grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;margin-bottom:40px;display:grid}.footer-bottom{border-top:1px solid #ffffff1a;flex-wrap:wrap;justify-content:space-between;gap:8px;padding-top:20px;font-size:.78rem;display:flex}.site-footer{border-top:1px solid var(--color-border);color:var(--color-muted);text-align:center;padding:20px 0;font-size:.8rem}.badge{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;align-items:center;gap:6px;padding:4px 11px;font-size:.74rem;font-weight:600;display:inline-flex}.badge-confirmed{background:var(--color-secondary-light);color:var(--color-secondary)}.badge-pending{color:var(--color-accent-dark);background:#fdf1da}.badge-cancelled{background:var(--color-danger-bg);color:var(--color-danger)}.badge-completed{background:var(--color-info-bg);color:var(--color-info)}.badge-no-show{color:#666;background:#ececec}.badge-role{background:var(--color-surface-sunken);color:var(--color-primary)}.appt-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);grid-template-columns:88px 1fr auto;align-items:center;gap:18px;padding:18px 20px;display:grid}.appt-date{text-align:center;background:var(--color-secondary-light);border-radius:var(--cusp);padding:10px 6px}.appt-date .day{font-family:var(--font-display);color:var(--color-primary);font-size:1.5rem;line-height:1}.appt-date .month{text-transform:uppercase;color:var(--color-secondary);letter-spacing:.05em;font-size:.7rem;font-weight:600}.appt-meta{color:var(--color-muted);font-size:.85rem;font-family:var(--font-mono)}.appt-title{color:var(--color-text);margin-bottom:4px;font-weight:600}.appt-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.slot-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;display:grid}.slot-btn{border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-sm);font-family:var(--font-mono);cursor:pointer;text-align:center;padding:10px 8px;font-size:.84rem;transition:all .12s}.slot-btn:hover:not(:disabled){border-color:var(--color-secondary);color:var(--color-secondary)}.slot-btn:disabled{opacity:.45;cursor:not-allowed;text-decoration:line-through}.slot-btn.selected{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.dentist-tile{border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;background:var(--color-surface);text-align:left;align-items:center;gap:14px;width:100%;padding:14px 16px;display:flex}.dentist-tile:hover{border-color:var(--color-secondary)}.dentist-tile.selected{border-color:var(--color-primary);background:var(--color-secondary-light)}.avatar{background:var(--color-primary);color:#fff;width:44px;height:44px;font-family:var(--font-display);border-radius:14px 6px;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:flex}.data-table{border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;overflow:hidden}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--color-border);padding:12px 16px;font-size:.86rem}.data-table th{background:var(--color-surface-sunken);color:var(--color-primary);text-transform:uppercase;letter-spacing:.04em;font-size:.76rem;font-weight:600}.data-table tr:last-child td{border-bottom:none}.table-wrap{overflow-x:auto}.modal-overlay{z-index:50;background:#082f3b80;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-box{background:var(--color-surface);border-radius:var(--radius-md);width:100%;max-width:440px;max-height:calc(100vh - 40px);box-shadow:var(--shadow-lg);padding:26px;overflow:auto}.tab-row{flex-wrap:wrap;gap:8px;margin-bottom:22px;display:flex}.empty-state{text-align:center;color:var(--color-muted);padding:56px 24px}.empty-state h3{color:var(--color-primary);margin-bottom:6px}.tooth-loader{justify-content:center;align-items:center;padding:48px 0;display:flex}.tooth-loader svg{animation:1.1s ease-in-out infinite chomp}@keyframes chomp{0%,to{transform:scaleY(1)}50%{transform:scaleY(.72)}}@media (prefers-reduced-motion:reduce){.tooth-loader svg{animation:none}}@media (width<=980px){.hero-inner{grid-template-columns:1fr}.hero-visual{max-width:420px}.footer-grid{grid-template-columns:1fr 1fr}}@media (width<=860px){.auth-shell{grid-template-columns:1fr}.auth-side{display:none}.grid-3,.grid-4{grid-template-columns:1fr 1fr}.site-nav-links{display:none}}@media (width<=640px){.nav-links{display:none}.grid-2,.grid-3,.grid-4,.form-row{grid-template-columns:1fr}.appt-card{grid-template-columns:64px 1fr}.appt-actions{grid-column:1/-1;justify-content:flex-start}.cta-band{text-align:center;flex-direction:column}.footer-grid{grid-template-columns:1fr}.section{padding:56px 0}}
