:root{--brand: #2563eb;--brand-dark: #163f9a;--brand-navy: #071630;--bg: #f4f7fb;--surface: #fff;--text: #172033;--text-strong: #0f172a;--muted: #5b6780;--accent: #93c5fd;--border: #dce4f0;--danger: #c62828;--warning: #9a600e;--ok: #2d7a4d;--on-brand: #fff;--surface-alt: #f8faff;--shadow: var(--shadow-sm);--radius: 12px;--sidebar: 260px;--brand-soft: color-mix(in srgb, var(--brand) 10%, var(--surface));--danger-soft: #fde8e8;--warning-soft: #fff1db;--ok-soft: #e6f5ea;--on-brand-line: rgba(255, 255, 255, .12);--on-brand-border: rgba(255, 255, 255, .25);--backdrop: rgba(15, 23, 42, .55);--tooltip-bg: var(--text-strong);--tooth-treated: #e7f4f1;--tooth-missing: #eeeae4;--tooth-implant: #e8eef5;--shadow-sm: 0 1px 3px rgba(23, 32, 51, .08);--shadow-lg: 0 16px 40px rgba(23, 32, 51, .18);--shadow-xl: 0 24px 70px rgba(23, 32, 51, .12);--radius-xs: 4px;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 999px;--font-2xs: .72rem;--font-xs: .8rem;--font-sm: .875rem;--font-md: 1rem;--font-lg: 1.15rem;--font-xl: 1.4rem;--font-2xl: 1.7rem;--font-3xl: 2.4rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--duration-fast: .15s;--duration-base: .2s;--z-dialog: 50;--z-popover: 900;--z-toast: 1000;font-family:Inter,Segoe UI,Roboto,system-ui,sans-serif;color:var(--text);background:var(--bg);line-height:1.45}:root[data-company-theme=esencia]{--brand: #526851;--brand-dark: #373737;--bg: #fffbf8;--surface: #fff;--text: #373737;--muted: #526851;--accent: #baad9c;--border: #e5dbcd;--on-brand: #fffbf8;--surface-alt: #fffdfa}:root[data-company-theme=oceano]{--brand: #1f5f78;--brand-dark: #173f52;--bg: #f4fafc;--surface: #fff;--text: #24343b;--muted: #527180;--accent: #9cc6d3;--border: #d1e4ea;--on-brand: #fff;--surface-alt: #f8fcfd}:root[data-company-theme=lavanda]{--brand: #66547a;--brand-dark: #40354f;--bg: #faf7fc;--surface: #fff;--text: #352f3b;--muted: #776883;--accent: #c9b7d8;--border: #e5dced;--on-brand: #fff;--surface-alt: #fcf9fd}:root[data-company-theme=terracota]{--brand: #8a4f3d;--brand-dark: #573126;--bg: #fff8f4;--surface: #fff;--text: #3e302c;--muted: #77584f;--accent: #d8ad9e;--border: #ead6cf;--on-brand: #fff;--surface-alt: #fffaf7}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg)}a{color:inherit;text-decoration:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button,input,textarea{font:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}h1,h2,h3{font-family:inherit;font-weight:700;line-height:1.25;margin:0}h1{font-size:var(--font-2xl)}h2{font-size:var(--font-xl)}h3{font-size:var(--font-lg)}.app-shell{display:grid;grid-template-columns:var(--sidebar) 1fr;min-height:100vh}.app-shell.sidebar-collapsed{grid-template-columns:76px 1fr}.sidebar{background:var(--brand);color:var(--on-brand);padding:1.25rem 1rem;display:flex;flex-direction:column;gap:1rem;position:sticky;top:0;height:100vh;overflow-y:auto}.ui-icon{display:block;width:1rem;height:1rem;flex:0 0 1rem}.sidebar-toggle{display:grid;place-items:center;align-self:flex-end;width:44px;height:44px;padding:0;border:1px solid var(--on-brand-border);border-radius:var(--radius-md);background:transparent;color:var(--on-brand);cursor:pointer}.sidebar-toggle .ui-icon{width:1rem;height:1rem}.brand{padding:.25rem .75rem 1rem;border-bottom:1px solid var(--on-brand-line)}.brand img{display:block;width:min(152px,100%);height:auto;margin:0 auto}.brand .product-mark-symbol{width:2.5rem}.brand img.company-logo{max-height:120px;object-fit:contain}.product-mark{position:relative;z-index:2;display:inline-flex;align-items:center}.product-mark img{display:block;height:auto}.product-mark-logo{width:clamp(120px,100%,220px)}.product-mark .product-mark-symbol{display:none;width:2.25rem;min-height:24px}.product-mark-compact .product-mark-symbol{display:block;width:2rem}.company-wordmark,.login-company-fallback{display:grid;place-items:center;gap:.75rem;text-align:center}.company-wordmark span,.login-company-fallback span{display:grid;place-items:center;width:3.5rem;aspect-ratio:1;border:1px solid currentColor;border-radius:50%;font-size:var(--font-2xl);font-weight:750}.company-wordmark strong{max-width:180px;overflow-wrap:anywhere}.nav{display:flex;flex-direction:column;gap:.35rem;flex:1}.nav a{display:flex;align-items:center;gap:.7rem;min-height:44px;padding:.7rem .85rem;border-radius:var(--radius-md);color:var(--on-brand)}.nav a .ui-icon{width:1.125rem;height:1.125rem;flex-basis:1.125rem}.nav a.active,.nav a:hover{background:var(--on-brand);color:var(--text)}.sidebar.collapsed{padding-inline:.65rem}.sidebar.collapsed .sidebar-toggle{align-self:center}.sidebar.collapsed .brand{min-height:62px;padding-inline:0}.sidebar.collapsed .brand img.company-logo{width:48px;max-height:48px}.sidebar.collapsed .company-wordmark strong,.sidebar.collapsed .product-mark-logo,.sidebar.collapsed .nav-label{display:none}.sidebar.collapsed .company-wordmark span{width:2.75rem;font-size:var(--font-lg)}.sidebar.collapsed .product-mark,.sidebar.collapsed .nav a{justify-content:center}.sidebar.collapsed .product-mark .product-mark-symbol{display:block}.sidebar.collapsed .nav a{padding-inline:0}.sidebar.collapsed .sidebar-footer{padding-top:.65rem}.sidebar.collapsed .sidebar-footer>:not(.sidebar-logout):not(.language-compact),.sidebar.collapsed .sidebar-logout span{display:none}.language-compact{display:none}.sidebar.collapsed .language-compact{display:grid;place-items:center;width:44px;height:44px;margin:0 auto .35rem;padding:0;border:1px solid var(--on-brand-border);border-radius:var(--radius-md);background:transparent;font-size:var(--font-lg);cursor:pointer}.sidebar.collapsed .sidebar-logout{display:grid;place-items:center;width:44px;height:44px;margin-inline:auto;padding:0}.sidebar-logout{display:flex;align-items:center;justify-content:center;gap:.55rem;min-height:44px}.sidebar-footer{border-top:1px solid var(--on-brand-line);padding-top:.85rem;font-size:var(--font-sm)}.sidebar-role{color:var(--accent)}.company-context{display:grid;gap:.3rem;padding-bottom:.8rem;margin-bottom:.8rem;border-bottom:1px solid var(--on-brand-line)}.company-context-label{color:var(--accent);font-size:var(--font-2xs);letter-spacing:.08em;text-transform:uppercase}.company-context small{color:var(--accent)}.company-context .company-context-error{color:#ffd5d0}.language-selector{display:grid;gap:.3rem;margin-bottom:.75rem}.sidebar-footer button{margin-top:.5rem;width:100%}.main{padding:1.25rem 1.5rem 2rem;min-width:0}.back-button{display:inline-flex;align-items:center;gap:var(--space-1);margin-bottom:var(--space-3)}.back-button svg{width:1rem;height:1rem}.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem;margin-bottom:1.25rem}.admin-tabs,.row-actions{display:flex;gap:.5rem;flex-wrap:wrap}.admin-tabs button{border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);color:var(--text);padding:.5rem .8rem;cursor:pointer}.admin-tabs button.active{background:var(--brand);color:var(--on-brand)}.admin-grid{grid-template-columns:minmax(0,2fr) minmax(280px,1fr)}.admin-form-panel{max-width:850px}.permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.permission-grid article{border:1px solid var(--border);border-radius:var(--radius-md);padding:1rem}.permission-grid .badge{display:inline-block;margin:.2rem}.companies-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.8fr);gap:1rem;align-items:start}.company-cards{display:grid;gap:.75rem}.company-card{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-alt)}.company-card-logo{width:58px;height:58px;flex:0 0 58px;display:grid;place-items:center;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--brand);font-size:var(--font-xl);font-weight:700}.company-card-logo img{width:100%;height:100%;object-fit:contain}.check-field{display:flex;align-items:center;gap:.55rem;cursor:pointer}.check-field input{width:auto;min-height:0}.company-card-title{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.company-card p{margin:.25rem 0;color:var(--muted)}.company-card small{color:var(--muted)}.form-intro{margin-top:-.5rem}.admin-seed-fields{display:grid;gap:.75rem;margin:.35rem 0;padding:.85rem;border:1px solid var(--border);border-radius:var(--radius-md)}.admin-seed-fields legend{padding:0 .4rem;color:var(--brand);font-weight:700}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-dialog);display:grid;place-items:center;padding:1rem;background:var(--backdrop)}.edit-company-dialog,.modal-dialog{width:min(520px,100%);max-height:calc(100vh - 2rem);overflow-y:auto}.modal-dialog-wide{width:min(640px,100%)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.modal-header h2{margin-bottom:0}.modal-summary{margin:0 0 1rem;color:var(--muted);font-size:var(--font-sm)}.topbar-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.search-control{min-height:44px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text)}.search-control{display:flex;align-items:center;gap:.5rem;padding:0 .75rem}.search-control .ui-icon{color:var(--muted)}.search-control input{min-width:0;border:0;outline:0;background:transparent;color:inherit}.date-field{position:relative;display:flex;align-items:center;min-height:44px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text)}.date-field:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}.date-field.disabled{opacity:.6}.form-grid .date-field input,.date-field input{flex:1;min-width:0;width:auto;border:0;outline:0;box-shadow:none;padding:.6rem 0 .6rem .75rem;background:transparent;color:inherit;font:inherit;font-variant-numeric:tabular-nums}.date-field:has(input[aria-invalid=true]){border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 18%,transparent)}.date-field input[aria-invalid=true]{border:0!important;box-shadow:none!important}.date-field-toggle{display:grid;place-items:center;width:44px;height:42px;flex:none;border:0;border-left:1px solid var(--border);border-radius:0 var(--radius-md) var(--radius-md) 0;background:transparent;color:var(--muted);cursor:pointer}.date-field-toggle:hover,.date-field-toggle[aria-expanded=true]{color:var(--brand);background:var(--surface-alt)}.date-popover{position:fixed;z-index:var(--z-popover);display:flex;gap:.75rem;max-width:calc(100vw - 16px);padding:.75rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg)}.date-popover-calendar{width:17.5rem;max-width:100%}.date-popover-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.date-popover-header strong{font-size:var(--font-md)}.date-popover-nav{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer}.date-popover-nav:hover{border-color:var(--brand);color:var(--brand)}.date-grid-row{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.date-grid-weekday{padding:.3rem 0;color:var(--muted);font-size:var(--font-xs);font-weight:600;text-align:center}.date-grid-day{width:100%;aspect-ratio:1;min-height:36px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);font:inherit;font-size:var(--font-sm);font-variant-numeric:tabular-nums;cursor:pointer}.date-grid-day:hover:not(:disabled){background:var(--surface-alt);color:var(--brand)}.date-grid-day.outside{color:var(--muted);opacity:.6}.date-grid-day.today{box-shadow:inset 0 0 0 1px var(--brand);font-weight:700}.date-grid-day.selected,.date-grid-day.selected:hover{background:var(--brand);color:var(--on-brand);opacity:1}.date-grid-day:disabled{color:var(--muted);opacity:.35;cursor:not-allowed;text-decoration:line-through}.date-grid-day:focus-visible,.time-option:focus-visible,.date-popover-nav:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.date-popover-footer{display:flex;justify-content:space-between;gap:.5rem;margin-top:.5rem}.date-popover-time{display:flex;flex-direction:column;gap:.5rem;width:6.5rem;padding-left:.75rem;border-left:1px solid var(--border)}.date-popover-time strong{font-size:var(--font-md);line-height:36px}.time-list{display:flex;flex-direction:column;gap:2px;max-height:17rem;overflow-y:auto;padding-right:2px}.time-option{min-height:34px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);font:inherit;font-size:var(--font-sm);font-variant-numeric:tabular-nums;cursor:pointer}.time-option:hover:not(:disabled){background:var(--surface-alt);color:var(--brand)}.time-option.selected{background:var(--brand);color:var(--on-brand)}.time-option:disabled{opacity:.35;cursor:not-allowed}@media(max-width:480px){.date-popover.with-time{flex-direction:column}.date-popover-time{width:auto;padding:.75rem 0 0;border-left:0;border-top:1px solid var(--border)}.time-list{flex-direction:row;max-height:none;overflow-x:auto}.time-option{flex:none;padding:0 .6rem}}.page-loader{display:grid;gap:1rem;opacity:0;animation:page-loader-in .2s ease .15s forwards}.page-loader.full-screen{padding:2rem}.page-loader-mark{width:3rem;height:auto}.skeleton{display:block;border-radius:var(--radius-md);background:linear-gradient(90deg,var(--border) 25%,var(--surface-alt) 50%,var(--border) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.2s ease-in-out infinite}.skeleton-title{width:min(280px,60%);height:2rem}.skeleton-line{width:min(420px,80%);height:1rem}.skeleton-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.skeleton-card{height:5.5rem}.skeleton-block{height:16rem}@keyframes page-loader-in{to{opacity:1}}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.page-loader{animation-duration:0s}.skeleton,.appt-alert.urgent .appt-alert-icon{animation:none}}.select-field input:focus-visible,.date-field input:focus-visible,.search-field input:focus-visible{outline:none}.select-field{position:relative;display:flex;align-items:center;min-height:44px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text);cursor:pointer}.select-field:focus-within,.select-field.open{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}.select-field.disabled{opacity:.6;cursor:not-allowed}.form-grid .select-field input,.select-field input{flex:1;min-width:0;width:auto;border:0;outline:0;box-shadow:none;padding:.6rem 0 .6rem .75rem;background:transparent;color:inherit;font:inherit;text-overflow:ellipsis;cursor:inherit}.select-field input::placeholder{color:var(--muted)}.select-field:has(input[aria-invalid=true]){border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 18%,transparent)}.select-field input[aria-invalid=true]{border:0!important;box-shadow:none!important}.select-field-chevron{display:grid;place-items:center;width:40px;flex:none;color:var(--muted);pointer-events:none;transition:transform .15s ease}.select-field.open .select-field-chevron{transform:rotate(180deg);color:var(--brand)}.company-context .select-field,.language-selector .select-field{min-height:38px;border-color:var(--on-brand-border);border-radius:var(--radius-sm);background:var(--on-brand)}.company-context .select-field input,.language-selector .select-field input{padding:.45rem 0 .45rem .6rem}.login-language .select-field{min-height:34px;border-radius:var(--radius-sm)}.login-language .select-field input{width:7.5rem;padding:.35rem 0 .35rem .55rem}.login-language .select-field-chevron{width:30px}.option-list{position:fixed;z-index:var(--z-popover);min-width:12rem;max-width:calc(100vw - 16px);max-height:min(18rem,60vh);overflow-y:auto;padding:.3rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg)}.option-list .option{display:flex;align-items:center;gap:.5rem;min-height:40px;padding:.45rem .6rem;border-radius:var(--radius-sm);cursor:pointer}.option-list .option.active{background:var(--surface-alt);box-shadow:inset 3px 0 0 var(--brand)}.option-list .option.selected{color:var(--brand);font-weight:600}.option-list .option.placeholder{color:var(--muted)}.option-list .option.disabled{opacity:.45;cursor:not-allowed}.option-label{flex:1;min-width:0;overflow-wrap:anywhere}.option-check{flex:none;color:var(--brand)}.option-list mark.match{padding:0;border-radius:var(--radius-xs);background:color-mix(in srgb,var(--brand) 18%,transparent);color:inherit;font-weight:700}.option-empty{padding:.65rem .6rem;color:var(--muted);font-size:var(--font-sm)}.suggestion-list .option{flex-direction:column;align-items:flex-start;gap:.1rem}.option-description{color:var(--muted);font-size:var(--font-xs)}.suggestion-search-all{display:flex;align-items:center;gap:.5rem;width:100%;margin-top:.25rem;padding:.55rem .6rem;border:0;border-top:1px solid var(--border);border-radius:0 0 var(--radius-sm) var(--radius-sm);background:transparent;color:var(--brand);font:inherit;font-weight:600;text-align:left;cursor:pointer}.suggestion-search-all:hover{background:var(--surface-alt)}.search-field{padding-right:0}.search-field input{flex:1}.search-field input::-webkit-search-cancel-button{display:none}.search-field-button{display:grid;place-items:center;width:44px;height:42px;flex:none;border:0;border-left:1px solid var(--border);border-radius:0 var(--radius-md) var(--radius-md) 0;background:transparent;color:var(--muted);cursor:pointer}.search-field-button:hover{background:var(--surface-alt);color:var(--brand)}.search-field:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}.week-day>header{display:flex;flex-direction:column;align-items:center;gap:.35rem}.week-day-add{width:100%;padding:.2rem .4rem;font-size:var(--font-2xs);font-weight:600}.company-logo-preview{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.company-logo-preview img{width:min(220px,100%);max-height:110px;object-fit:contain;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);padding:.5rem}.kpi,.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.kpi{padding:1rem}.kpi .label{color:var(--muted);font-size:var(--font-sm)}.kpi .value{font-size:var(--font-xl);font-weight:700;margin-top:.25rem}.kpi .value.value-text{font-size:var(--font-lg)}.panel{padding:1rem}.panel h2{font-size:var(--font-lg);margin-bottom:.85rem}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;background:var(--brand);color:var(--on-brand);border-radius:var(--radius-md);padding:.65rem 1rem;cursor:pointer;font-weight:600}.btn:hover:not(:disabled){background:var(--brand-dark)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn[aria-busy=true]{cursor:progress}.btn[aria-busy=true]:before{content:"";display:inline-block;width:.9em;height:.9em;margin-right:.45em;vertical-align:-.12em;border:2px solid currentColor;border-right-color:transparent;border-radius:var(--radius-full);animation:button-spin calc(var(--duration-base) * 4) linear infinite}@keyframes button-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.btn[aria-busy=true]:before{animation:none}}.btn.compact{padding:.35rem .5rem;font-size:var(--font-2xs)}.btn.danger{background:var(--danger)}.btn.secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.btn.ghost{background:transparent;color:var(--on-brand);border-color:var(--accent)}.btn.secondary:hover:not(:disabled){background:var(--surface-alt);border-color:var(--brand)}.btn.danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 85%,#000)}.btn.ghost:hover:not(:disabled){background:var(--on-brand-line)}.grid-2{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:1rem}.form-grid{display:grid;gap:.75rem}.treatment-plan{border:1px solid var(--border);border-radius:var(--radius-xl);padding:1rem;background:color-mix(in srgb,var(--surface) 94%,var(--accent))}.plan-totals{display:flex;flex-wrap:wrap;gap:.4rem 1rem;justify-content:flex-end}.money-input{min-width:8rem;max-width:11rem}.plan-item-editor{display:grid;grid-template-columns:minmax(12rem,2fr) .7fr .8fr auto;gap:.75rem;align-items:end;border-bottom:1px solid var(--border);padding-bottom:.75rem}.payment-allocation{display:grid;gap:.75rem;border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem}.payment-allocation label{display:grid;grid-template-columns:minmax(0,1fr) 9rem;align-items:center;gap:.75rem}.form-grid label{display:grid;gap:.35rem;font-size:var(--font-sm);color:var(--muted)}.form-grid input,.form-grid textarea{width:100%;border:1px solid var(--border);border-radius:var(--radius-md);padding:.65rem .75rem;background:var(--surface);color:var(--text)}.password-control{position:relative;display:block}.password-control input{width:100%;padding-right:2.9rem}.password-toggle{position:absolute;top:0;right:0;bottom:0;width:2.75rem;min-height:2.75rem;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:var(--radius-md);background:transparent;color:var(--muted);cursor:pointer}.password-toggle:hover,.password-toggle[aria-pressed=true]{color:var(--brand)}.password-toggle svg{width:1.15rem;height:1.15rem}.field-hint{font-size:var(--font-xs);font-weight:500;line-height:1.3}.field-hint.error{color:var(--danger)}.field-hint.ok{color:var(--ok)}label[data-error] .field-hint.error{display:none}[aria-invalid=true]{border-color:var(--danger)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 18%,transparent)}[data-error]:after{content:attr(data-error);display:block;margin-top:.3rem;color:var(--danger);font-size:var(--font-xs);font-weight:500;line-height:1.3}.table-wrap{overflow-x:auto}.section-gap{margin-top:var(--space-4)}.panel-note{margin-top:var(--space-4);font-size:var(--font-sm)}table{width:100%;border-collapse:collapse;font-size:var(--font-sm)}th,td{text-align:left;padding:.7rem .55rem;border-bottom:1px solid var(--border);vertical-align:top}th{color:var(--muted);font-weight:600;font-size:var(--font-xs);text-transform:uppercase;letter-spacing:.03em}.badge{display:inline-flex;align-items:center;border-radius:var(--radius-full);padding:.15rem .55rem;font-size:var(--font-xs);font-weight:600;background:var(--brand-soft);color:var(--brand-dark)}.badge.warn{background:var(--warning-soft);color:var(--warning)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.badge.ok{background:var(--ok-soft);color:var(--ok)}.agenda{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:.75rem}.week-nav,.doctor-filter,.doctor-filter label,.appt-actions{display:flex;align-items:center;gap:.55rem}.doctor-filter{flex-wrap:wrap;padding:.75rem 1rem}.doctor-filter label{cursor:pointer;font-size:var(--font-sm)}.doctor-dot{width:.65rem;height:.65rem;border-radius:50%}.doctor-filter{border-top-color:var(--accent)}.weekly-panel{overflow:hidden}.weekly-calendar{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-md)}.week-day{min-width:145px;border-right:1px solid var(--border);background:var(--surface-alt)}.week-day:last-child{border-right:0}.week-day>header{position:sticky;top:0;padding:.6rem;text-transform:capitalize;text-align:center;font-weight:700;background:var(--border)}.day-appointments{padding:.4rem;min-height:360px;display:grid;align-content:start;gap:.45rem}.appt-alerts{display:grid;gap:var(--space-1);margin:var(--space-1) 0 0;padding:0;list-style:none}.appt-alert{display:flex;align-items:center;gap:var(--space-1);padding:.15rem .4rem;border-radius:var(--radius-sm);font-weight:600}.appt-alert-icon{width:14px;height:14px;flex:0 0 auto}.appt-alert-soon,.appt-alert-late{background:var(--warning-soft);color:var(--warning)}.appt-alert-unconfirmed{background:var(--brand-soft);color:var(--brand-dark)}.appt-alert-unpaid{background:var(--danger-soft);color:var(--danger)}.appt-alert.urgent .appt-alert-icon{animation:appt-alert-blink 1s ease-in-out infinite}@keyframes appt-alert-blink{50%{opacity:.15}}.calendar-appt{padding:.55rem;background:var(--surface);border:1px solid var(--border);border-left:5px solid;border-radius:var(--radius-sm);font-size:var(--font-xs);box-shadow:var(--shadow)}.calendar-appt .meta,.room-label{color:var(--muted);margin:.18rem 0}.appt-doctor{font-size:var(--font-2xs);font-weight:800}.appt-actions{margin-top:.45rem;flex-wrap:wrap}.status-cancelada{opacity:.55}.empty-day{color:var(--muted);text-align:center;padding-top:2rem;font-size:var(--font-xs)}.agenda-form-row{grid-template-columns:1fr 1fr}.agenda-help{background:var(--border)}.notice{color:var(--brand);background:var(--surface-alt);border-radius:var(--radius-sm);padding:.65rem}.color-swatch-field{border:0;margin:0;padding:0;min-width:0}.color-swatch-field legend{padding:0;margin-bottom:.35rem;font-size:var(--font-sm);color:var(--muted)}.color-swatches{display:flex;flex-wrap:wrap;gap:var(--space-1)}.form-grid .color-swatch{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;cursor:pointer}.color-swatch-chip{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:var(--radius-full);border:1px solid var(--border);color:var(--on-brand)}.color-swatch-chip svg{width:1.1rem;height:1.1rem}.color-swatch input:checked+.color-swatch-chip{outline:2px solid var(--text);outline-offset:2px}.color-swatch input:focus-visible+.color-swatch-chip{outline:3px solid var(--accent);outline-offset:2px}.agenda-color-preview{display:grid;gap:.35rem;font-size:var(--font-sm)}.doctor-name-cell{display:inline-flex;align-items:center;gap:var(--space-2)}.doctor-color-bar{flex:none;width:5px;height:1.5rem;border-radius:var(--radius-full)}.doctor-col{background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-lg);min-height:320px;overflow:hidden}.doctor-col header{padding:.75rem;color:var(--on-brand);font-weight:600}.appt{margin:.55rem;padding:.65rem;border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);font-size:var(--font-sm)}.appt strong{display:block}.appt .meta{color:var(--muted);margin-top:.2rem}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(400px,.85fr);background:var(--border);overflow:hidden}.login-brand{position:relative;display:grid;place-items:center;min-height:100vh;padding:clamp(2rem,6vw,6rem);isolation:isolate}.brand-gradient{background:linear-gradient(135deg,color-mix(in srgb,var(--brand-dark) 92%,var(--brand-navy)),var(--brand)),var(--brand-dark)}.login-logo{position:relative;z-index:2;display:block;width:min(440px,72%);height:auto}.login-logo.company-logo{max-height:45vh;object-fit:contain}.login-brand .product-mark-logo{width:min(440px,72%,100vw - 4rem);min-width:120px}.login-brand>.product-mark{justify-content:center;width:100%}.login-company-fallback{position:relative;z-index:2;color:var(--on-brand);font-size:clamp(1.8rem,4vw,3rem)}.login-company-fallback span{width:5rem;font-size:var(--font-3xl)}.login-brand-shape{position:absolute;z-index:1;pointer-events:none}.login-brand-shape-light{width:clamp(110px,20vw,290px);height:clamp(150px,28vh,340px);right:0;top:0;background:color-mix(in srgb,var(--accent) 35%,transparent)}.login-brand-shape-warm{width:clamp(150px,26vw,380px);height:clamp(90px,18vh,210px);left:0;bottom:0;background:color-mix(in srgb,var(--on-brand) 12%,transparent)}.login-access{position:relative;z-index:3;display:grid;place-items:center;min-height:100vh;padding:clamp(1.5rem,5vw,5rem);background:var(--bg)}.login-language{position:absolute;top:1rem;right:1rem;display:flex;align-items:center;gap:.5rem;color:var(--muted);font-size:var(--font-xs)}.login-card{width:min(430px,100%);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:clamp(1.5rem,4vw,2.5rem);box-shadow:var(--shadow-xl)}.login-card h2{font-size:clamp(2rem,4vw,2.65rem);margin-bottom:.25rem}.login-card-heading p{color:var(--muted);margin-top:0;margin-bottom:1.5rem}.login-eyebrow{display:block;color:var(--brand);font-size:var(--font-xs);font-weight:700;letter-spacing:.16em;margin-bottom:.55rem;text-transform:uppercase}.login-card .btn{margin-top:.35rem;min-height:46px}.hint{margin-top:1rem;font-size:var(--font-sm);color:var(--muted);background:var(--surface-alt);border-radius:var(--radius-md);padding:.75rem}.mobile-bar{display:none;position:sticky;top:0;z-index:20;background:var(--brand);color:var(--on-brand);padding:.75rem 1rem;align-items:center;justify-content:space-between}.mobile-bar img{display:block;width:142px;height:auto}.mobile-bar button{background:transparent;border:1px solid var(--on-brand-border);color:var(--on-brand);border-radius:var(--radius-sm);padding:.4rem .7rem;min-height:44px}.overlay{display:none}.error{color:var(--danger);background:var(--danger-soft);border-radius:var(--radius-sm);padding:.6rem .75rem;margin-bottom:.75rem;font-size:var(--font-sm)}.toast-viewport{position:fixed;z-index:var(--z-toast);top:1rem;right:1rem;display:grid;width:min(390px,calc(100vw - 2rem));gap:.65rem;pointer-events:none}.tooltip{position:fixed;z-index:var(--z-toast);max-width:min(320px,calc(100vw - 16px));padding:.35rem .6rem;border-radius:var(--radius-sm);background:var(--tooltip-bg);color:#fff;font-size:var(--font-xs);line-height:1.35;overflow-wrap:anywhere;pointer-events:none;box-shadow:0 6px 18px #0f172a40}.tooltip-right{transform:translateY(-50%)}.tooltip-left{transform:translate(-100%,-50%)}.tooltip-top{transform:translate(-50%,-100%)}.toast{display:grid;grid-template-columns:.55rem 1fr auto;align-items:center;gap:.75rem;min-height:56px;padding:.75rem .75rem .75rem .85rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg);pointer-events:auto;animation:toast-enter .18s ease-out both}.toast-indicator{width:.55rem;height:.55rem;border-radius:50%;background:var(--brand)}.toast-success .toast-indicator{background:var(--ok)}.toast-error .toast-indicator{background:var(--danger)}.toast button{width:2rem;height:2rem;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted);font-size:var(--font-xl);cursor:pointer}.toast button:hover{background:var(--surface-alt);color:var(--text)}@keyframes toast-enter{0%{opacity:0;transform:translateY(-8px)}}.stack{display:grid;gap:1rem}.row-actions{display:flex;gap:.5rem;flex-wrap:wrap}.muted{color:var(--muted)}.odontogram-panel .topbar{align-items:flex-start}.odontogram-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,280px);gap:1rem;align-items:start}.odontogram{display:grid;gap:.65rem}.odontogram-arch{display:flex;justify-content:center;gap:.35rem;flex-wrap:wrap}.odontogram-quadrant{display:flex;gap:.28rem;flex-wrap:wrap;justify-content:center}.odontogram-split{width:1px;background:var(--border);margin:0 .2rem}.odontogram-midline{height:1px;background:var(--border)}.odontogram-tooth{min-width:2.1rem;min-height:2.1rem;padding:.2rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);color:var(--text);font-size:var(--font-2xs);font-weight:700;cursor:pointer}.odontogram-tooth.is-sano{background:var(--ok-soft)}.odontogram-tooth.is-caries{background:var(--danger-soft);color:var(--danger)}.odontogram-tooth.is-tratado{background:var(--tooth-treated);color:var(--brand-dark)}.odontogram-tooth.is-ausente{background:var(--tooth-missing);color:var(--muted);text-decoration:line-through}.odontogram-tooth.is-corona{background:var(--warning-soft);color:var(--warning)}.odontogram-tooth.is-implante{background:var(--tooth-implant);color:var(--brand-dark)}.odontogram-tooth.is-selected{outline:3px solid var(--accent);outline-offset:1px}.odontogram-arch.compact .odontogram-tooth{min-width:1.85rem;min-height:1.85rem;font-size:var(--font-2xs)}.odontogram-primary{display:grid;gap:.45rem;padding-top:.35rem;border-top:1px dashed var(--border)}.odontogram-legend{display:flex;flex-wrap:wrap;gap:.65rem 1rem;margin:0;padding:0;list-style:none;font-size:var(--font-xs);color:var(--muted)}.odontogram-legend li{display:flex;align-items:center;gap:.35rem}.odontogram-swatch{width:.75rem;height:.75rem;border-radius:var(--radius-xs);border:1px solid var(--border)}.odontogram-swatch.is-sano{background:var(--ok-soft)}.odontogram-swatch.is-caries{background:var(--danger-soft)}.odontogram-swatch.is-tratado{background:var(--tooth-treated)}.odontogram-swatch.is-ausente{background:var(--tooth-missing)}.odontogram-swatch.is-corona{background:var(--warning-soft)}.odontogram-swatch.is-implante{background:var(--tooth-implant)}.odontogram-toggle{display:flex;align-items:center;gap:.4rem;font-size:var(--font-sm);color:var(--muted)}.odontogram-editor{border:1px solid var(--border);border-radius:var(--radius-md);padding:.85rem;background:var(--surface-alt)}@media(max-width:1100px){.kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2,.odontogram-layout{grid-template-columns:minmax(0,1fr)}.agenda{grid-template-columns:repeat(2,minmax(0,1fr))}.companies-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:1024px){.app-shell,.app-shell.sidebar-collapsed{grid-template-columns:minmax(0,1fr)}.mobile-bar{display:flex}.sidebar{position:fixed;inset:0 auto 0 0;width:min(84vw,300px);transform:translate(-105%);transition:transform .2s ease;z-index:30}.sidebar.collapsed{width:min(84vw,300px);padding:1.25rem 1rem}.sidebar.collapsed .brand{min-height:auto;padding:.25rem .75rem 1rem}.sidebar.collapsed .brand img.company-logo{width:min(152px,100%);max-height:120px}.sidebar.collapsed .company-wordmark strong,.sidebar.collapsed .nav-label{display:initial}.sidebar.collapsed .product-mark .product-mark-logo{display:block}.sidebar.collapsed .product-mark .product-mark-symbol{display:none}.sidebar.collapsed .sidebar-footer{display:block}.sidebar.collapsed .sidebar-footer>:not(.language-compact){display:revert}.sidebar.collapsed .company-context,.sidebar.collapsed .language-selector{display:grid}.sidebar.collapsed .language-compact{display:none}.sidebar.collapsed .sidebar-logout{display:flex;width:100%;height:auto;margin-top:.5rem;padding:.6rem .85rem}.sidebar.collapsed .sidebar-logout span{display:inline}.sidebar.collapsed .company-wordmark{display:grid}.sidebar.collapsed .company-wordmark span{width:3.5rem;font-size:var(--font-2xl)}.sidebar.collapsed .product-mark,.sidebar.collapsed .nav a{justify-content:flex-start}.sidebar.collapsed .nav a{padding:.7rem .85rem}.sidebar-toggle{display:none}.sidebar.open{transform:translate(0)}.overlay.open{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--backdrop);z-index:25}.main{padding:1rem}.agenda{grid-template-columns:minmax(0,1fr)}.weekly-calendar{grid-template-columns:repeat(7,minmax(170px,1fr))}.admin-grid,.permission-grid{grid-template-columns:minmax(0,1fr)}}@media(pointer:coarse){input,textarea,select,.date-field input,.select-field input{font-size:max(16px,var(--font-md))}}@media(max-width:767px){.topbar,.topbar-actions{align-items:stretch}.topbar-actions,.topbar-actions>*,.topbar>.row-actions,.search-control{width:100%}.search-control input{flex:1}.agenda-form-row,.plan-item-editor,.payment-allocation label{grid-template-columns:minmax(0,1fr)}.company-card{align-items:flex-start;flex-direction:column}.company-card .row-actions{width:100%}.company-card .row-actions .btn{flex:1}.login-page{grid-template-columns:minmax(0,1fr);overflow:visible}.login-brand{min-height:clamp(260px,38vh,360px);padding:2.5rem 1.5rem}.login-logo{width:min(260px,64vw)}.login-brand-shape-light{width:24vw;height:42%}.login-brand-shape-warm{width:34vw;height:25%}.login-access{min-height:auto;padding:1.25rem;gap:var(--space-3)}.login-language{position:static;justify-self:end}.login-card{padding:1.5rem}}@media(max-width:480px){.main{padding:.75rem}.mobile-bar{padding:.6rem .75rem}.mobile-bar img{width:min(124px,48vw);max-height:44px;object-fit:contain}.kpi-row{grid-template-columns:minmax(0,1fr)}.panel,.kpi{padding:.8rem}.row-actions .btn{flex:1 1 auto}.toast-viewport{top:.75rem;right:.75rem;width:calc(100vw - 1.5rem)}}.mfa-enrollment{display:grid;justify-items:center;gap:var(--space-2)}.mfa-qr{width:220px;height:220px;padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:#fff}.mfa-secret,.recovery-codes code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:var(--font-sm);letter-spacing:.06em;word-break:break-all}.recovery-codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2) var(--space-4);margin:0;padding:var(--space-3) var(--space-3) var(--space-3) var(--space-6);border:1px dashed var(--border);border-radius:var(--radius-md)}.btn-link{justify-self:center;min-height:44px;padding:var(--space-2) var(--space-3);border:0;background:none;color:var(--brand);font:inherit;font-size:var(--font-sm);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.btn-link:hover{text-decoration-thickness:2px}.btn-link:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:var(--radius-sm)}a.btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;text-decoration:none}
