:root{--navy-50:#f2f2fa;--navy-100:#e0e0f0;--navy-200:#c4c4e0;--navy-300:#9898c8;--navy-400:#6b6bab;--navy-500:#2c2c9e;--navy-600:#1a1a8f;--navy-700:#14147f;--navy-800:#0a0a70;--navy-900:#000080;--gray-50:#f8f9fc;--gray-100:#f0f2f7;--gray-200:#e4edf0;--gray-300:#cdd5e0;--gray-400:#9aa3b5;--gray-500:#5b6480;--gray-600:#434a5e;--gray-700:#2e3344;--gray-800:#1c1c28;--gray-900:#12121a;--color-primary:var(--navy-900);--color-primary-hover:var(--navy-700);--color-primary-subtle:var(--navy-50);--color-danger:#c41e3a;--color-danger-hover:#a01830;--color-danger-subtle:#fef2f4;--color-success:#198754;--color-success-subtle:#e8f5ee;--color-warning:#b45309;--color-warning-subtle:#fef9ec;--color-focus:#3535cd;--surface-page:#f6f9ff;--surface-raised:#ffffff;--surface-sunken:#eef3fc;--surface-sidebar:var(--navy-900);--surface-overlay:rgba(18,18,26,0.45);--text-primary:var(--gray-800);--text-secondary:var(--gray-600);--text-muted:var(--gray-500);--text-placeholder:#8a92a8;--text-on-primary:#ffffff;--text-on-sidebar:rgba(255,255,255,0.75);--text-on-sidebar-active:#ffffff;--border-subtle:var(--gray-200);--border-default:#d8dee6;--border-focus:var(--color-focus);--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:9999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--font-heading:"Rubik",system-ui,sans-serif;--font-body:"Roboto",system-ui,sans-serif;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--sidebar-width:260px;--sidebar-width-collapsed:0px;--header-height:64px;--content-max-width:960px;--input-height:48px;--touch-target:48px;--shadow-sm:0 1px 2px rgba(28,28,40,0.06);--shadow-md:0 4px 12px rgba(28,28,40,0.08);--shadow-card:0 0 24px rgba(28,28,40,0.06);--transition-fast:150ms cubic-bezier(0.16,1,0.3,1);--transition-base:250ms cubic-bezier(0.16,1,0.3,1);--density-gap:var(--space-5);--density-padding:var(--space-8)}@media (prefers-reduced-motion:reduce){:root{--transition-fast:0ms;--transition-base:0ms}}*,:after,:before{box-sizing:border-box}html{color-scheme:light;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;font-family:var(--font-body);font-size:var(--text-base);line-height:1.5;background:var(--surface-page)}body,h1,h2,h3,h4,h5,h6{color:var(--text-primary)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:500;line-height:1.25;margin:0 0 var(--space-3)}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}p{margin:0 0 var(--space-3)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover)}.app-layout{display:grid;grid-template-columns:var(--sidebar-width) 1fr;min-height:100dvh}.app-main{padding:var(--density-padding);overflow-x:auto;padding-bottom:calc(var(--density-padding) + 72px)}.app-content{max-width:var(--content-max-width)}.sidebar{display:flex;flex-direction:column;background:var(--surface-sidebar);color:var(--text-on-sidebar);min-height:100dvh;position:-webkit-sticky;position:sticky;top:0;height:100dvh}.sidebar-brand{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-6) var(--space-5);border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-brand img{height:40px;width:auto;object-fit:contain}.sidebar-brand span{font-family:var(--font-heading);font-size:var(--text-base);font-weight:500;color:var(--text-on-sidebar-active)}.sidebar-nav{flex:1 1;padding:var(--space-5) var(--space-4);overflow-y:auto}.sidebar-link{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);color:var(--text-on-sidebar);font-size:var(--text-base);font-weight:400;transition:background var(--transition-fast),color var(--transition-fast);margin-bottom:var(--space-1);min-height:var(--touch-target)}.sidebar-link:hover{background:rgba(255,255,255,.08);color:var(--text-on-sidebar-active)}.sidebar-link.active{background:rgba(255,255,255,.14);color:var(--text-on-sidebar-active);font-weight:500}.sidebar-footer{padding:var(--space-5);border-top:1px solid rgba(255,255,255,.1)}.sidebar-user{gap:var(--space-3);margin-bottom:var(--space-4)}.sidebar-avatar,.sidebar-user{display:flex;align-items:center}.sidebar-avatar{width:44px;height:44px;border-radius:var(--radius-full);background:rgba(255,255,255,.15);justify-content:center;font-family:var(--font-heading);font-size:var(--text-base);font-weight:500;color:var(--text-on-sidebar-active);flex-shrink:0}.sidebar-user-info{min-width:0}.sidebar-user-name{font-size:var(--text-sm);font-weight:500;color:var(--text-on-sidebar-active);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:var(--text-xs);color:rgba(255,255,255,.55)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap}.page-header-text h1{margin-bottom:var(--space-1)}.page-header-subtitle{font-size:var(--text-sm);color:var(--text-muted);margin:0}.page-header-actions{display:flex;gap:var(--space-2);align-items:center;flex-shrink:0}.card{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-6);box-shadow:var(--shadow-card);margin-bottom:var(--density-gap)}.card-flat{box-shadow:none}.card-header{margin-bottom:var(--space-4)}.card-header h2,.card-header h3{margin-bottom:var(--space-1)}.card-description{color:var(--text-muted);margin:0}.btn,.card-description{font-size:var(--text-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-heading);font-weight:500;line-height:1;padding:12px 24px;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);white-space:nowrap;text-decoration:none;min-height:var(--touch-target)}.btn:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--text-on-primary);border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:var(--text-on-primary)}.btn-secondary{background:var(--surface-raised);color:var(--text-primary);border-color:var(--border-default)}.btn-secondary:hover:not(:disabled){background:var(--surface-sunken);color:var(--text-primary)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--surface-sunken);color:var(--text-primary)}.btn-destructive{background:var(--color-danger);color:var(--text-on-primary);border-color:var(--color-danger)}.btn-destructive:hover:not(:disabled){background:var(--color-danger-hover);border-color:var(--color-danger-hover);color:var(--text-on-primary)}.btn-sm{padding:8px 16px;font-size:var(--text-xs);min-height:36px}.form-field{margin-bottom:var(--space-5)}.form-label{display:block;font-size:var(--text-sm);font-weight:500;color:var(--text-primary);margin-bottom:var(--space-2)}.form-label-required:after{content:" *";color:var(--color-danger)}.form-hint{color:var(--text-muted)}.form-error-text,.form-hint{font-size:var(--text-xs);margin-top:var(--space-1)}.form-error-text{color:var(--color-danger)}.form-input,.form-select,.form-textarea{display:block;width:100%;font-family:var(--font-body);font-size:var(--text-base);color:var(--text-primary);background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:0 var(--space-4);height:var(--input-height);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-textarea{height:auto;min-height:120px;padding:var(--space-4);resize:vertical}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-placeholder)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px rgba(53,53,205,.15)}.form-input.error,.form-select.error,.form-textarea.error{border-color:var(--color-danger)}.form-input-wrap{position:relative;display:flex;align-items:center}.form-input-wrap .form-input{width:100%;padding-right:4.5rem}.form-input-toggle{position:absolute;right:var(--space-2);background:none;border:none;font-family:var(--font-heading);font-size:var(--text-xs);font-weight:500;color:var(--color-primary);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);min-height:auto}.form-input-toggle:hover{background:var(--surface-sunken)}.form-input-toggle:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.password-requirements{list-style:none;padding:0;margin:var(--space-2) 0 0;font-size:var(--text-xs)}.password-requirements li{display:flex;align-items:center;gap:var(--space-2);margin-bottom:2px;color:var(--text-muted)}.password-requirements li.met{color:var(--color-success)}.password-requirements li.unmet{color:var(--text-muted)}.password-requirements li:before{content:"";width:6px;height:6px;border-radius:var(--radius-full);background:currentColor;flex-shrink:0}.char-count{font-size:var(--text-xs);color:var(--text-muted);text-align:right;margin-top:var(--space-1)}.form-checkbox-row{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);cursor:pointer;min-height:var(--touch-target)}.form-checkbox-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--color-primary);cursor:pointer}.form-section{margin-bottom:var(--space-8)}.form-section-title{font-family:var(--font-heading);font-size:var(--text-lg);font-weight:500;margin-bottom:var(--space-5);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-subtle)}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-5);gap:var(--space-5)}.form-actions{display:flex;gap:var(--space-3);margin-top:var(--space-6)}.badge{display:inline-flex;align-items:center;font-family:var(--font-heading);font-size:var(--text-xs);font-weight:500;padding:4px 12px;border-radius:var(--radius-full);text-transform:capitalize;white-space:nowrap}.badge-pending{background:var(--color-warning-subtle);color:var(--color-warning)}.badge-active,.badge-approved,.badge-confirmed{background:var(--color-success-subtle);color:var(--color-success)}.badge-cancelled,.badge-rejected,.badge-suspended{background:var(--color-danger-subtle);color:var(--color-danger)}.badge-inactive{background:var(--gray-100);color:var(--gray-500)}.agenda-day{margin-bottom:var(--space-8)}.agenda-day-header{font-family:var(--font-heading);font-size:var(--text-sm);font-weight:500;color:var(--text-muted);padding-bottom:var(--space-2);margin-bottom:var(--space-4);border-bottom:1px solid var(--border-subtle)}.agenda-item{display:flex;align-items:center;gap:var(--space-5);padding:var(--space-5);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:var(--space-3);min-height:var(--touch-target)}.agenda-time{font-family:var(--font-heading);font-size:var(--text-base);font-weight:500;color:var(--color-primary);min-width:90px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.agenda-timezone{font-size:var(--text-xs);color:var(--text-muted);display:block}.agenda-patient{flex:1 1;font-weight:500;font-size:var(--text-base)}.agenda-actions{display:flex;gap:var(--space-2);align-items:center}.availability-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:var(--space-3);gap:var(--space-3);margin-bottom:var(--space-8)}.availability-day{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);min-height:180px;display:flex;flex-direction:column}.availability-day-header{padding:var(--space-3);font-family:var(--font-heading);font-size:var(--text-sm);font-weight:500;text-transform:capitalize;border-bottom:1px solid var(--border-subtle);background:var(--surface-sunken);border-radius:var(--radius-md) var(--radius-md) 0 0}.availability-day-body{flex:1 1;padding:var(--space-2);display:flex;flex-direction:column;gap:var(--space-2)}.availability-slot{background:var(--color-primary-subtle);border-radius:var(--radius-sm);color:var(--color-primary);justify-content:space-between;gap:var(--space-1);min-height:var(--touch-target)}.availability-empty,.availability-slot{font-size:var(--text-sm);padding:var(--space-3);display:flex;align-items:center}.availability-empty{color:var(--text-muted);text-align:center;flex:1 1;justify-content:center}.availability-add-btn{margin:var(--space-2);width:calc(100% - var(--space-4))}.empty-state{text-align:center;padding:var(--space-12) var(--space-6)}.empty-state-icon{width:56px;height:56px;margin:0 auto var(--space-4);border-radius:var(--radius-full);background:var(--surface-sunken);display:flex;align-items:center;justify-content:center;font-size:var(--text-2xl);color:var(--text-muted)}.empty-state h3{margin-bottom:var(--space-2)}.empty-state p{color:var(--text-muted);max-width:360px;margin:0 auto var(--space-4)}.alert,.empty-state p{font-size:var(--text-sm)}.alert{padding:var(--space-4);border-radius:var(--radius-sm);margin-bottom:var(--space-4);display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.alert-error{background:var(--color-danger-subtle);color:var(--color-danger);border:1px solid rgba(196,30,58,.2)}.alert-success{background:var(--color-success-subtle);color:var(--color-success);border:1px solid rgba(25,135,84,.2)}.alert-retry{font-weight:500;cursor:pointer;background:none;border:none;color:inherit;text-decoration:underline;padding:0;font-size:inherit;white-space:nowrap}.skeleton{background:linear-gradient(90deg,var(--surface-sunken) 25%,var(--gray-100) 50%,var(--surface-sunken) 75%);background-size:200% 100%;border-radius:var(--radius-sm);animation:skeleton-shimmer 1.5s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.skeleton{animation:none;background:var(--surface-sunken)}}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{height:14px;margin-bottom:var(--space-2)}.skeleton-title{height:24px;width:40%;margin-bottom:var(--space-4)}.skeleton-row{height:56px;margin-bottom:var(--space-3)}.skeleton-card{height:120px;margin-bottom:var(--space-3)}.dialog-backdrop{position:fixed;inset:0;background:var(--surface-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4);animation:fade-in var(--transition-base)}.dialog{background:var(--surface-raised);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);width:100%;max-width:440px;max-height:90dvh;overflow-y:auto;animation:slide-up var(--transition-base)}@media (prefers-reduced-motion:reduce){.dialog,.dialog-backdrop{animation:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.dialog-header{padding:var(--space-5) var(--space-5) var(--space-3)}.dialog-header h2{margin:0;font-size:var(--text-lg)}.dialog-body{padding:0 var(--space-5) var(--space-4)}.dialog-footer{padding:var(--space-4) var(--space-5);border-top:1px solid var(--border-subtle);display:flex;justify-content:flex-end;gap:var(--space-2)}.login-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:var(--surface-sunken)}.login-card{width:100%;max-width:420px;background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-8);box-shadow:var(--shadow-md)}.login-brand{text-align:center;margin-bottom:var(--space-6)}.login-brand img{height:52px;width:auto;margin-bottom:var(--space-3)}.login-brand h1{font-size:var(--text-xl);margin:0}.login-brand p{font-size:var(--text-sm);color:var(--text-muted);margin:var(--space-1) 0 0}.loading-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--surface-page)}.loading-screen .skeleton{width:200px;height:20px}.avatar-upload{gap:var(--space-5);margin-bottom:var(--space-6)}.avatar-preview,.avatar-upload{display:flex;align-items:center}.avatar-preview{width:88px;height:88px;border-radius:var(--radius-full);background:var(--surface-sunken);border:2px solid var(--border-subtle);justify-content:center;font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:500;color:var(--color-primary);overflow:hidden}.avatar-preview img{width:100%;height:100%;object-fit:cover}.bottom-nav{display:none}@media (max-width:767px){.app-layout{grid-template-columns:1fr}.sidebar{display:none}.app-main{padding:var(--space-5);padding-bottom:calc(72px + var(--space-5))}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--surface-raised);border-top:1px solid var(--border-subtle);z-index:100;padding:var(--space-2) 0;box-shadow:var(--shadow-md)}.bottom-nav-link{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:var(--space-2);font-size:var(--text-xs);font-family:var(--font-heading);font-weight:500;color:var(--text-muted);text-decoration:none;min-height:var(--touch-target)}.bottom-nav-link.active{color:var(--color-primary)}.availability-grid,.form-row{grid-template-columns:1fr}.agenda-item{flex-direction:column;align-items:flex-start}}.calendar-wrap{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);position:relative}.calendar-wrap.calendar-loading:after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.45);border-radius:var(--radius-lg);pointer-events:none}.dialog--appointment{max-width:520px}.appointment-detail{display:flex;flex-direction:column;gap:var(--space-5)}.appointment-detail-hero{padding:var(--space-5);border-radius:var(--radius-md);background:linear-gradient(145deg,var(--navy-50) 0,var(--surface-sunken) 100%);border:1px solid var(--border-subtle)}.appointment-detail-person{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.appointment-detail-avatar{flex-shrink:0;width:48px;height:48px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-weight:600;font-size:var(--text-sm);color:var(--color-primary);background:var(--surface-raised);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm)}.appointment-detail-person-text{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.appointment-detail-person-label{font-size:var(--text-xs);font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.appointment-detail-person-name{font-family:var(--font-heading);font-size:var(--text-lg);font-weight:600;color:var(--text-primary);line-height:1.25}.appointment-detail-date{margin:0 0 var(--space-1);font-size:var(--text-sm);color:var(--text-secondary)}.appointment-detail-time{margin:0;font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:600;color:var(--color-primary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.2}.appointment-detail-tz{display:inline-block;margin-left:var(--space-2);font-size:var(--text-sm);font-weight:500;color:var(--text-muted);vertical-align:middle}.appointment-detail-section{padding:var(--space-4);border-radius:var(--radius-md);background:var(--surface-raised);border:1px solid var(--border-subtle)}.appointment-detail-section--flat{background:transparent;border:none;padding:0}.appointment-detail-section-title{margin:0 0 var(--space-2);font-family:var(--font-heading);font-size:var(--text-sm);font-weight:600;color:var(--text-secondary)}.appointment-detail-section .appointment-countdown{margin:0}.appointment-detail-readiness{margin:var(--space-2) 0 0;font-size:var(--text-sm);line-height:1.45}.appointment-detail-readiness--ready{color:var(--color-success);font-weight:500}.appointment-detail-readiness--waiting{color:var(--color-warning);font-weight:500}.appointment-detail-readiness--neutral{color:var(--text-secondary)}.appointment-detail-actions{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-2)}.appointment-detail-reason{margin:0;font-size:var(--text-base);color:var(--text-primary);line-height:1.5}.appointment-detail-hint{margin:0;font-size:var(--text-sm);color:var(--text-muted);line-height:1.45}.visit-lobby-panel{max-width:520px}.fc{--fc-border-color:var(--border-subtle);--fc-button-bg-color:var(--color-primary);--fc-button-border-color:var(--color-primary);--fc-button-hover-bg-color:var(--color-primary-dark,#0d5c4a);--fc-button-hover-border-color:var(--color-primary-dark,#0d5c4a);--fc-button-active-bg-color:var(--color-primary-dark,#0d5c4a);--fc-today-bg-color:rgba(13,110,90,0.08);--fc-event-border-color:transparent;font-family:var(--font-body)}.fc .fc-toolbar-title{font-family:var(--font-heading);font-size:var(--text-xl)}.fc .fc-event.fc-event-status-confirmed{background-color:var(--color-primary);color:#fff}.fc .fc-event.fc-event-status-cancelled{background-color:var(--gray-300,#d1d5db);color:var(--text-muted);text-decoration:line-through}.fc .fc-event.fc-event-status-pending_payment{background-color:var(--color-warning,#f59e0b);color:#fff}.fc .fc-event.fc-event-status-in_progress{background-color:var(--color-primary);color:#fff;box-shadow:inset 0 0 0 2px rgba(255,255,255,.35)}.fc .fc-event.fc-event-status-completed{background-color:var(--gray-500,#6b7280);color:#fff}.appointment-countdown{font-size:var(--text-sm);color:var(--text-muted);margin:var(--space-2) 0}.appointment-join-unlock{color:var(--color-focus);font-weight:500}.visit-lobby{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3)}.visit-participant-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:var(--space-4);gap:var(--space-4);width:100%;margin-bottom:var(--space-4)}.visit-participant-video{width:100%;aspect-ratio:16/9;background:#111;border-radius:var(--radius-md)}.visit-meeting-error{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-3)}.visit-meeting-controls .btn:disabled{opacity:.5;cursor:not-allowed}.visit-meeting-controls{display:flex;flex-wrap:wrap;gap:var(--space-2)}.visit-meeting-shell{width:100%}.visit-meeting-shell--debug{display:grid;grid-template-columns:2fr 1fr;grid-gap:var(--space-4);gap:var(--space-4);align-items:start}@media (max-width:768px){.visit-meeting-shell--debug{grid-template-columns:1fr}}.visit-meeting-main{min-width:0}.visit-debug-log{display:flex;flex-direction:column;min-height:280px;max-height:min(70vh,520px);border:1px solid var(--border-subtle,#e5e7eb);border-radius:var(--radius-md);background:var(--surface-elevated,#0f172a);color:#e2e8f0;font-size:11px;overflow:hidden}.visit-debug-log-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}.visit-debug-log-actions{display:flex;gap:var(--space-2)}.visit-debug-log-list{list-style:none;margin:0;padding:var(--space-2);overflow-y:auto;flex:1 1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.visit-debug-log-line{display:flex;flex-wrap:wrap;gap:.35rem .5rem;padding:2px 0;line-height:1.35}.visit-debug-log-line--muted{opacity:.6}.visit-debug-log-line--error{color:#fca5a5}.visit-debug-log-line--warn{color:#fcd34d}.visit-debug-log-ms{opacity:.65;flex-shrink:0}.visit-debug-log-src{color:#7dd3fc;flex-shrink:0}.visit-debug-log-detail{opacity:.85;word-break:break-all}.fc .fc-event.fc-event-status-no_show{background-color:var(--gray-300,#d1d5db);color:var(--text-muted);text-decoration:line-through}