@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--homs-teal:#8aabb4;--homs-teal-dark:#6a8e98;--homs-teal-light:#b4d0d8;--homs-teal-subtle:#e8f2f5;--homs-silver:#b4b8bc;--homs-orange:#d4695a;--homs-orange-dark:#b85548;--homs-orange-light:#e89585;--neutral-50:#fafafa;--neutral-100:#f5f5f7;--neutral-200:#e8e8ed;--neutral-300:#d1d1d6;--neutral-400:#aeaeb2;--neutral-500:#8e8e93;--neutral-600:#636366;--neutral-700:#48484a;--neutral-800:#2c2c2e;--neutral-900:#1c1c1e;--success:#34c759;--warning:#ff9f0a;--error:#ff3b30;--info:#5ac8fa;--proc-extraction:#ff453a;--proc-expose:#ffd60a;--proc-expose-bond:#ff9f0a;--proc-subluxate:#bf5af2;--proc-implant:#0a84ff;--proc-pathology:#30d158;--proc-other:#8e8e93;--surface-primary:#fff;--surface-secondary:var(--neutral-100);--surface-elevated:#fff;--surface-glass:#ffffffb8;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow-md:0 4px 6px #0000000a, 0 2px 4px #00000008;--shadow-lg:0 10px 25px #0000000f, 0 4px 10px #0000000a;--shadow-xl:0 20px 40px #00000014, 0 8px 16px #0000000a;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-size-xs:.75rem;--font-size-sm:.8125rem;--font-size-base:.9375rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:2rem;--font-size-4xl:2.5rem;--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;--space-16:64px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px;--border-color:var(--neutral-200);--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.25s cubic-bezier(.4, 0, .2, 1);--transition-smooth:.35s cubic-bezier(.4, 0, .2, 1);--transition-spring:.5s cubic-bezier(.34, 1.56, .64, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;background:var(--neutral-100)}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--neutral-900);background:var(--neutral-100);min-height:100vh;line-height:1.6}h1,h2,h3,h4,h5,h6{color:var(--neutral-900);font-weight:600;line-height:1.25}a{color:var(--homs-teal-dark);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--homs-orange)}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.form-label{font-size:var(--font-size-sm);color:var(--neutral-700);letter-spacing:.01em;text-transform:uppercase;font-weight:600}.form-input,.form-select,.form-textarea{width:100%;padding:var(--space-3) var(--space-4);font-family:var(--font-family);font-size:var(--font-size-base);color:var(--neutral-900);background:var(--surface-primary);border:1.5px solid var(--border-color);border-radius:var(--radius-sm);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none}.form-input::placeholder,.form-textarea::placeholder{color:var(--neutral-400)}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--homs-teal);box-shadow:0 0 0 3px #8aabb433}.form-input:hover:not(:focus),.form-select:hover:not(:focus),.form-textarea:hover:not(:focus){border-color:var(--neutral-300)}.form-textarea{resize:vertical;min-height:100px}.form-select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' fill='none' stroke='%23636366' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.checkbox-group{align-items:center;gap:var(--space-3);cursor:pointer;padding:var(--space-2) 0;-webkit-user-select:none;user-select:none;display:flex}.checkbox-group input[type=checkbox]{border:1.5px solid var(--neutral-300);appearance:none;cursor:pointer;width:20px;height:20px;transition:all var(--transition-fast);background:var(--surface-primary);border-radius:6px;flex-shrink:0;position:relative}.checkbox-group input[type=checkbox]:checked{background:var(--homs-teal);border-color:var(--homs-teal)}.checkbox-group input[type=checkbox]:checked:after{content:"✓";color:#fff;font-size:12px;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.checkbox-group span{font-size:var(--font-size-base);color:var(--neutral-800)}.radio-group{gap:var(--space-4);flex-wrap:wrap;display:flex}.radio-option{align-items:center;gap:var(--space-2);cursor:pointer;padding:var(--space-2) var(--space-4);border:1.5px solid var(--border-color);border-radius:var(--radius-full);transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;background:var(--surface-primary);display:flex}.radio-option:hover{border-color:var(--homs-teal)}.radio-option.active{background:var(--homs-teal-subtle);border-color:var(--homs-teal);color:var(--homs-teal-dark)}.radio-option input[type=radio]{display:none}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);font-family:var(--font-family);font-size:var(--font-size-base);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;border:none;font-weight:600;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--homs-teal);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--homs-teal-dark);box-shadow:var(--shadow-md)}.btn-accent{background:var(--homs-orange);color:#fff;box-shadow:var(--shadow-sm)}.btn-accent:hover{background:var(--homs-orange-dark);box-shadow:var(--shadow-md)}.btn-outline{color:var(--neutral-700);border:1.5px solid var(--border-color);background:0 0}.btn-outline:hover{background:var(--neutral-100);border-color:var(--neutral-300)}.btn-ghost{color:var(--neutral-600);background:0 0}.btn-ghost:hover{background:var(--neutral-100)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--font-size-md);border-radius:var(--radius-md)}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.card{background:var(--surface-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid #0000000a;overflow:hidden}.card-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--neutral-200);align-items:center;gap:var(--space-3);display:flex}.card-header h2{font-size:var(--font-size-md);text-transform:uppercase;letter-spacing:.04em;color:var(--neutral-700);font-weight:700}.card-header .icon{font-size:var(--font-size-lg)}.card-body{padding:var(--space-6)}.section-label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--neutral-500);margin-bottom:var(--space-3);font-weight:700}.form-grid{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}@media (width<=640px){.form-grid{grid-template-columns:1fr}}.emr-upload-banner{margin-bottom:var(--space-4)}.emr-toggle{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--surface-elevated);border:2px dashed var(--neutral-300);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);display:flex}.emr-toggle:hover{border-color:var(--homs-teal);background:#8aabb40a}.emr-toggle-active{border-style:solid;border-color:var(--homs-teal);background:#8aabb40f}.emr-toggle-icon{flex-shrink:0;font-size:24px}.emr-toggle-text{flex-direction:column;flex:1;gap:2px;display:flex}.emr-toggle-text strong{font-size:var(--font-size-sm);color:var(--neutral-800)}.emr-toggle-text span{font-size:var(--font-size-xs);color:var(--neutral-400);line-height:1.4}.emr-toggle-arrow{font-size:var(--font-size-lg);color:var(--neutral-400);transition:transform var(--transition-fast);flex-shrink:0}.emr-toggle:hover .emr-toggle-arrow{color:var(--homs-teal-dark);transform:translate(2px)}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{animation:.5s ease-out fadeInUp}.animate-fade-in{animation:.3s ease-out fadeIn}.animate-scale-in{animation:.3s cubic-bezier(.34,1.56,.64,1) scaleIn}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--neutral-300);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--neutral-400)}@keyframes orbDrift1{0%{opacity:.5;transform:translate(0)scale(1)}50%{opacity:.8;transform:translate(-120px,80px)scale(1.12)}to{opacity:.5;transform:translate(60px,-50px)scale(.92)}}@keyframes orbDrift2{0%{opacity:.45;transform:translate(0)scale(1)}50%{opacity:.7;transform:translate(100px,-70px)scale(1.08)}to{opacity:.45;transform:translate(-60px,60px)scale(.9)}}@keyframes orbDrift3{0%{opacity:.4;transform:translate(0)scale(1)}50%{opacity:.7;transform:translate(-80px,-60px)scale(1.1)}to{opacity:.4;transform:translate(50px,80px)scale(.88)}}.page-orbs{pointer-events:none;z-index:0;width:100%;height:100%;position:fixed;top:0;left:0;overflow:hidden}.page-orb{pointer-events:none;filter:blur(80px);opacity:0;border-radius:50%;transition:opacity 2.5s;position:absolute}.page-orb-1{background:radial-gradient(circle,#5a8a9a59,#0000 70%);width:600px;height:600px;top:-8%;left:-10%}.page-orb-2{background:radial-gradient(circle,#a0603a40,#0000 70%);width:500px;height:500px;bottom:2%;right:-8%}.page-orb-3{background:radial-gradient(circle,#7fb0be4d,#0000 70%);width:450px;height:450px;top:40%;left:48%}.page-orbs.active .page-orb-1{opacity:1;animation:20s ease-in-out infinite alternate orbDrift1}.page-orbs.active .page-orb-2{opacity:1;animation:24s ease-in-out infinite alternate orbDrift2}.page-orbs.active .page-orb-3{opacity:1;animation:18s ease-in-out infinite alternate orbDrift3}.trust-footer{text-align:center;padding:var(--space-8) var(--space-4) var(--space-6);font-size:var(--font-size-xs);color:var(--neutral-400);z-index:1;line-height:1.8;position:relative}.trust-footer a{color:var(--homs-teal-dark);font-weight:600;text-decoration:none}.trust-footer a:hover{text-decoration:underline}.referral-app{flex-direction:column;min-height:100vh;display:flex}.portal-header{background:var(--surface-glass);-webkit-backdrop-filter:blur(20px);padding:var(--space-4) var(--space-8);z-index:100;border-bottom:1px solid #0000000f;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.header-brand{align-items:center;gap:var(--space-4);display:flex}.header-brand img{object-fit:contain;height:36px}.header-divider{background:var(--neutral-300);width:1px;height:24px}.header-brand-text{font-size:var(--font-size-sm);color:var(--homs-teal-dark);letter-spacing:.03em;text-transform:uppercase;font-weight:600}.header-login{align-items:center;gap:var(--space-3);display:flex}.header-login .btn{font-size:var(--font-size-sm);padding:var(--space-2) var(--space-5)}.portal-main{width:100%;max-width:920px;padding:var(--space-8) var(--space-6);flex:1;margin:0 auto}.portal-title{text-align:center;margin-bottom:var(--space-8);animation:.6s ease-out fadeInUp}.portal-title h1{font-size:var(--font-size-3xl);color:var(--neutral-900);margin-bottom:var(--space-2);letter-spacing:-.02em;font-weight:800}.portal-title p{font-size:var(--font-size-md);color:var(--neutral-500);max-width:500px;margin:0 auto}.form-section{animation:.5s ease-out backwards fadeInUp}.form-section:first-child{animation-delay:50ms}.form-section:nth-child(2){animation-delay:.1s}.form-section:nth-child(3){animation-delay:.15s}.form-section:nth-child(4){animation-delay:.2s}.form-section:nth-child(5){animation-delay:.25s}.form-section:nth-child(6){animation-delay:.3s}.form-section:nth-child(7){animation-delay:.35s}.form-sections{gap:var(--space-6);flex-direction:column;display:flex}.landing-page{max-width:820px;margin:0 auto;animation:.5s ease-out fadeInUp}.landing-hero{text-align:center;margin-bottom:var(--space-10)}.landing-title{font-size:var(--font-size-3xl);color:var(--neutral-900);margin-bottom:var(--space-3);letter-spacing:-.02em;font-weight:800}.landing-subtitle{font-size:var(--font-size-lg);color:var(--neutral-500);font-weight:400}.landing-cards{gap:var(--space-6);margin-bottom:var(--space-8);grid-template-columns:1fr 1fr;display:grid}.landing-card{text-align:left;padding:var(--space-8) var(--space-6);background:var(--surface-elevated);border:2px solid var(--neutral-200);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);font-family:var(--font-family);box-shadow:var(--shadow-sm);flex-direction:column;align-items:flex-start;display:flex}.landing-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.landing-card-quick:hover{border-color:var(--homs-orange);box-shadow:var(--shadow-lg), 0 0 0 3px #d4695a1a}.landing-card-upload:hover{box-shadow:var(--shadow-lg), 0 0 0 3px #6366f11f;border-color:#6366f1}.landing-card-auth:hover{border-color:var(--homs-teal);box-shadow:var(--shadow-lg), 0 0 0 3px #8aabb426}.landing-card-icon{margin-bottom:var(--space-4);font-size:36px;line-height:1}.landing-card-title{font-size:var(--font-size-lg);color:var(--neutral-900);margin-bottom:var(--space-3);font-weight:700}.landing-card-desc{font-size:var(--font-size-sm);color:var(--neutral-500);margin-bottom:var(--space-5);line-height:1.6}.landing-card-features{margin:0 0 var(--space-6);gap:var(--space-2);flex-direction:column;flex:1;padding:0;list-style:none;display:flex}.landing-card-features li{font-size:var(--font-size-xs);color:var(--neutral-600);line-height:1.5}.landing-card-cta{font-size:var(--font-size-base);transition:color var(--transition-fast);align-items:center;font-weight:700;display:inline-flex}.landing-card-quick .landing-card-cta{color:var(--homs-orange)}.landing-card-upload .landing-card-cta{color:#6366f1}.landing-card-auth .landing-card-cta{color:var(--homs-teal-dark)}.landing-card:hover .landing-card-cta{letter-spacing:.02em}.landing-footer-note{text-align:center;font-size:var(--font-size-xs);color:var(--neutral-400);line-height:1.8}.landing-footer-note a{color:var(--homs-teal-dark);font-weight:600}@media (width<=768px){.landing-cards{grid-template-columns:1fr}.landing-title{font-size:var(--font-size-2xl)}}.tooth-diagram-container{position:relative}.referral-type-toggle{gap:var(--space-3);margin-bottom:var(--space-6);grid-template-columns:1fr 1fr;display:grid}.rtt-btn{align-items:center;gap:var(--space-1);padding:var(--space-5) var(--space-4);border:2px solid var(--neutral-200);border-radius:var(--radius-md);background:var(--surface-primary);cursor:pointer;transition:all var(--transition-base);font-family:var(--font-family);text-align:center;flex-direction:column;display:flex}.rtt-btn:hover{border-color:var(--neutral-300);box-shadow:var(--shadow-sm)}.rtt-icon{font-size:28px;line-height:1}.rtt-label{font-size:var(--font-size-md);color:var(--neutral-900);font-weight:700}.rtt-desc{font-size:var(--font-size-xs);color:var(--neutral-400)}.rtt-extraction.active{background:#a0603a0a;border-color:#a0603a;box-shadow:0 0 0 3px #a0603a1f}.rtt-extraction.active .rtt-icon,.rtt-extraction.active .rtt-label{color:#a0603a}.rtt-consultation.active{border-color:var(--homs-teal);background:#5a8a9a0a;box-shadow:0 0 0 3px #5a8a9a1f}.rtt-consultation.active .rtt-icon,.rtt-consultation.active .rtt-label{color:var(--homs-teal)}.consult-type-section{margin-bottom:var(--space-5);padding-bottom:var(--space-5);border-bottom:1px solid var(--neutral-200)}.consult-type-chips{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.consult-chip{padding:var(--space-2) var(--space-4);border:2px solid var(--neutral-200);border-radius:var(--radius-full);background:var(--surface-primary);font-family:var(--font-family);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);color:var(--neutral-600);align-items:center;gap:6px;font-weight:600;display:inline-flex}.consult-chip:hover{border-color:var(--neutral-300);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.consult-chip-active{box-shadow:var(--shadow-sm);font-weight:700}.consult-chip-icon{font-size:14px;line-height:1}.brush-mode-toggle{align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);padding:var(--space-3) var(--space-4);background:var(--neutral-50);border-radius:var(--radius-sm);border:1px solid var(--neutral-200);display:flex}.brush-label{font-size:var(--font-size-sm);color:var(--neutral-500);white-space:nowrap;font-weight:600}.brush-btn{padding:var(--space-2) var(--space-4);border:1.5px solid var(--neutral-200);border-radius:var(--radius-full);background:var(--surface-primary);font-family:var(--font-family);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);color:var(--neutral-600);font-weight:600}.brush-extract.active{background:var(--proc-extraction);border-color:var(--proc-extraction);color:#fff;box-shadow:var(--shadow-sm)}.brush-eval.active{background:var(--proc-implant);border-color:var(--proc-implant);color:#fff;box-shadow:var(--shadow-sm)}.animate-slide-down{animation:.3s ease-out slideDown}.pathology-tissue-toggle{gap:var(--space-2);display:flex}.dentition-toggle{gap:var(--space-2);margin-bottom:var(--space-5);background:var(--neutral-100);border-radius:var(--radius-full);width:fit-content;padding:3px;display:flex}.dentition-toggle button{padding:var(--space-2) var(--space-5);border-radius:var(--radius-full);font-family:var(--font-family);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);color:var(--neutral-600);background:0 0;border:none;font-weight:600}.dentition-toggle button.active{background:var(--surface-primary);color:var(--neutral-900);box-shadow:var(--shadow-sm)}.tooth-arch{margin-bottom:var(--space-5)}.arch-label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--neutral-400);margin-bottom:var(--space-3);text-align:center;font-weight:700}.tooth-row{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.tooth-btn{border:2px solid var(--neutral-200);border-radius:var(--radius-sm);background:var(--surface-primary);width:42px;height:42px;font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--neutral-700);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:flex;position:relative;overflow:hidden}.tooth-btn:hover{border-color:var(--homs-teal);background:var(--homs-teal-subtle);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.tooth-btn.selected{box-shadow:var(--shadow-md);transform:translateY(-2px)}.tooth-btn.tooth-extract{border-color:var(--proc-extraction);color:#333;background:#ff453a59;font-weight:800}.tooth-btn.tooth-extract:after{content:"✕";color:#ffffff80;pointer-events:none;justify-content:center;align-items:center;font-size:28px;font-weight:900;line-height:1;display:flex;position:absolute;inset:0}.tooth-btn.tooth-eval{border:3px solid var(--proc-implant);color:var(--proc-implant);background:#0a84ff14;font-weight:800}.tooth-btn.tooth-both{border-color:var(--proc-extraction);color:#333;box-shadow:0 0 0 3px var(--proc-implant), var(--shadow-md);background:#ff453a59;font-weight:800}.tooth-btn.tooth-both:after{content:"✕";color:#ffffff80;pointer-events:none;justify-content:center;align-items:center;font-size:28px;font-weight:900;line-height:1;display:flex;position:absolute;inset:0}.tooth-btn.tooth-both:before{content:"●";color:var(--proc-implant);z-index:2;pointer-events:none;text-shadow:0 0 2px #fff;font-size:10px;line-height:1;position:absolute;top:-1px;right:1px}.tooth-summary{margin-top:var(--space-5);border-top:1px solid var(--neutral-200);padding-top:var(--space-5);gap:var(--space-3);flex-direction:column;display:flex}.summary-row{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);flex-wrap:wrap;animation:.25s ease-out slideDown;display:flex}.summary-extract{border-left:4px solid var(--proc-extraction);background:#ff453a0f}.summary-eval{border-left:4px solid var(--proc-implant);background:#0a84ff0f}.summary-icon{text-align:center;flex-shrink:0;width:24px;font-size:18px;font-weight:900}.summary-extract .summary-icon{color:var(--proc-extraction)}.summary-eval .summary-icon{color:var(--proc-implant)}.summary-label{font-size:var(--font-size-sm);color:var(--neutral-700);white-space:nowrap;font-weight:600}.summary-teeth{gap:var(--space-1);flex-wrap:wrap;display:flex}.summary-tooth-tag{border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:700;font-family:var(--font-family);padding:2px 8px;display:inline-flex}.tag-extract{background:var(--proc-extraction);color:#fff}.tag-eval{background:var(--proc-implant);color:#fff}.summary-empty{text-align:center;color:var(--neutral-400);font-size:var(--font-size-sm);padding:var(--space-6) 0;font-style:italic}.file-upload-zone{border:2px dashed var(--neutral-300);border-radius:var(--radius-md);padding:var(--space-10) var(--space-6);text-align:center;cursor:pointer;transition:all var(--transition-base);background:var(--neutral-50)}.file-upload-zone:hover,.file-upload-zone.drag-over{border-color:var(--homs-teal);background:var(--homs-teal-subtle)}.file-upload-zone.drag-over{transform:scale(1.01)}.file-upload-icon{margin-bottom:var(--space-3);opacity:.6;font-size:40px}.file-upload-text{font-size:var(--font-size-md);color:var(--neutral-700);margin-bottom:var(--space-1);font-weight:600}.file-upload-hint{font-size:var(--font-size-sm);color:var(--neutral-400)}.file-list{margin-top:var(--space-4);gap:var(--space-2);flex-direction:column;display:flex}.file-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--neutral-50);border-radius:var(--radius-sm);transition:background var(--transition-fast);animation:.2s ease-out slideDown;display:flex}.file-item-error{background:#ff3b300a;border:1px solid #ff3b3026}.file-item-icon{flex-shrink:0;font-size:20px}.file-item-thumbnail{object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--neutral-200);flex-shrink:0;width:40px;height:40px}.file-item-info{flex:1;min-width:0}.file-item-name{font-size:var(--font-size-sm);color:var(--neutral-800);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.file-item-meta{align-items:center;gap:var(--space-2);margin-top:2px;display:flex}.file-item-size{font-size:var(--font-size-xs);color:var(--neutral-400)}.file-item-status{letter-spacing:.02em;font-size:11px;font-weight:600}.file-item-status.uploading{color:var(--homs-teal)}.file-item-status.complete{color:#1b8a37}.file-item-status.error{color:#ff3b30}.file-item-status.pending{color:var(--neutral-400)}.file-progress-track{background:var(--neutral-200);border-radius:2px;height:4px;margin-top:6px;overflow:hidden}.file-progress-bar{background:linear-gradient(90deg, var(--homs-teal), #00c9a7);border-radius:2px;height:100%;transition:width .3s}.file-item-error-msg{color:#ff3b30;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:11px;overflow:hidden}.file-item-actions{align-items:center;gap:var(--space-1);flex-shrink:0;display:flex}.file-item-retry{width:24px;height:24px;color:var(--homs-teal);cursor:pointer;border-radius:var(--radius-full);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex}.file-item-retry:hover{background:var(--homs-teal-subtle);color:var(--homs-teal)}.file-item-remove{width:24px;height:24px;color:var(--neutral-400);cursor:pointer;border-radius:var(--radius-full);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-size:14px;display:flex}.file-item-remove:hover{background:var(--error);color:#fff}.file-upload-summary{font-size:var(--font-size-xs);color:var(--neutral-400);margin-top:var(--space-1);justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.file-upload-summary-status{gap:var(--space-2);display:flex}.badge{letter-spacing:.02em;border-radius:10px;align-items:center;gap:3px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-success{color:#1b8a37;background:#1b8a3714}.badge-info{color:#0a84ff;background:#0a84ff14}.badge-error{color:#ff3b30;background:#ff3b3014}.urgency-group{gap:var(--space-3);display:flex}.urgency-option{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1.5px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:var(--surface-primary);font-size:var(--font-size-sm);color:var(--neutral-600);-webkit-user-select:none;user-select:none;flex:1;font-weight:500;display:flex}.urgency-option input{display:none}.urgency-option:hover{border-color:var(--homs-teal)}.urgency-option.active-routine{border-color:var(--success);color:#1b8a37;background:#34c75914}.urgency-option.active-asap{border-color:var(--error);color:var(--error);background:#ff3b3014}.form-actions{justify-content:center;gap:var(--space-4);padding:var(--space-8) 0;animation:.5s ease-out .4s backwards fadeInUp;display:flex}.form-actions .btn{min-width:200px}.confirmation{text-align:center;padding:var(--space-16) var(--space-6);animation:.5s ease-out fadeInUp}.confirmation-icon{margin-bottom:var(--space-6);font-size:64px;animation:.5s cubic-bezier(.34,1.56,.64,1) .2s backwards scaleIn}.confirmation h2{font-size:var(--font-size-2xl);margin-bottom:var(--space-3);font-weight:800}.confirmation p{color:var(--neutral-500);font-size:var(--font-size-md);max-width:480px;margin:0 auto;line-height:1.7}.confirmation .btn{margin-top:var(--space-8)}.portal-footer{text-align:center;padding:var(--space-8) var(--space-6);color:var(--neutral-400);font-size:var(--font-size-xs);border-top:1px solid var(--neutral-200);margin-top:auto}.portal-footer a{color:var(--neutral-400);text-underline-offset:2px;text-decoration:underline}.portal-footer a:hover{color:var(--homs-teal-dark)}@media (width<=768px){.portal-header{padding:var(--space-3) var(--space-4)}.header-brand img{height:28px}.header-brand-text{font-size:var(--font-size-xs)}.portal-main{padding:var(--space-5) var(--space-4)}.portal-title h1{font-size:var(--font-size-2xl)}.card-body{padding:var(--space-4)}.tooth-btn{width:38px;height:38px;font-size:var(--font-size-xs)}.urgency-group{flex-direction:column}.form-actions{flex-direction:column;align-items:stretch}.form-actions .btn{min-width:auto}.procedure-legend{gap:var(--space-2)}}@media (width<=480px){.tooth-btn{width:34px;height:34px;font-size:11px}.tooth-row{gap:3px}}.login-page{justify-content:center;animation:.5s ease-out fadeInUp;display:flex}.login-card{background:var(--surface-elevated);border-radius:var(--radius-lg);width:100%;max-width:440px;box-shadow:var(--shadow-lg);padding:var(--space-10) var(--space-8)}.login-header{text-align:center;margin-bottom:var(--space-8)}.login-title{font-size:var(--font-size-2xl);color:var(--neutral-900);margin-bottom:var(--space-2);font-weight:800}.login-subtitle{font-size:var(--font-size-sm);color:var(--neutral-500)}.login-form{gap:var(--space-4);flex-direction:column;display:flex}.login-error{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);color:var(--error);font-size:var(--font-size-sm);background:#ff3b300f;border:1px solid #ff3b3033;font-weight:500;animation:.25s ease-out slideDown}.login-submit{width:100%;margin-top:var(--space-2)}.login-footer{margin-top:var(--space-6);text-align:center;gap:var(--space-3);flex-direction:column;display:flex}.login-link{font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--homs-teal-dark);cursor:pointer;background:0 0;border:none;font-weight:600}.login-link:hover{text-decoration:underline}.login-help{font-size:var(--font-size-xs);color:var(--neutral-400)}.login-help a{color:var(--homs-teal-dark);font-weight:600}.login-tabs{background:var(--neutral-100);border-radius:var(--radius-md);margin-bottom:var(--space-6);padding:4px;display:flex}.login-tab-btn{padding:var(--space-2) var(--space-3);font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--neutral-600);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;flex:1;font-weight:600}.login-tab-btn.active{background:var(--surface-elevated);color:var(--neutral-900);box-shadow:var(--shadow-sm)}.login-success{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);color:#1b8a37;font-size:var(--font-size-sm);background:#34c75914;border:1px solid #34c75940;font-weight:500;animation:.25s ease-out slideDown}.login-secure-badge{margin-top:var(--space-6);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);text-align:center;font-size:var(--font-size-xs);color:var(--homs-teal-dark);justify-content:center;align-items:center;gap:var(--space-2);background:#1e72720d;border:1px solid #1e727226;font-weight:500;display:flex}.login-deeplink-banner{border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-6);text-align:center;font-size:var(--font-size-sm);color:var(--homs-teal-dark);justify-content:center;align-items:center;gap:var(--space-2);background:linear-gradient(135deg,#0284c714,#1e72721a);border:1px solid #0284c740;font-weight:600;display:flex}.mfa-qr-container{margin:var(--space-4) 0;padding:var(--space-4);border:1px solid var(--neutral-200);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:#fff;flex-direction:column;align-items:center;display:flex}.mfa-qr-img{width:180px;height:180px;display:block}.mfa-instructions{font-size:var(--font-size-xs);color:var(--neutral-600);margin-top:var(--space-2);text-align:center;line-height:1.5}.mfa-secret-box{margin-top:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--neutral-100);border-radius:var(--radius-sm);flex-direction:column;align-items:center;gap:4px;display:flex}.mfa-secret-label{color:var(--neutral-500);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600}.mfa-secret-code{font-family:monospace;font-size:var(--font-size-sm);letter-spacing:.1em;color:var(--neutral-900);word-break:break-all;-webkit-user-select:all;user-select:all;font-weight:700}.dashboard{gap:var(--space-6);flex-direction:column;animation:.5s ease-out fadeInUp;display:flex}.dash-welcome{padding:var(--space-8) var(--space-8);background:linear-gradient(135deg, var(--homs-teal), var(--homs-teal-dark));border-radius:var(--radius-lg);color:#fff;box-shadow:var(--shadow-lg);justify-content:space-between;align-items:center;display:flex}.dash-welcome-name{font-size:var(--font-size-2xl);margin-bottom:var(--space-1);font-weight:800}.dash-welcome-office{font-size:var(--font-size-base);opacity:.85}.dash-welcome-actions{gap:var(--space-3);display:flex}.dash-welcome-actions .btn-accent{color:var(--homs-teal-dark);background:#fff;border:none}.dash-welcome-actions .btn-accent:hover{background:var(--neutral-100);transform:translateY(-2px)}.dash-welcome-actions .btn-outline{color:#fff;border-color:#fff6}.dash-welcome-actions .btn-outline:hover{background:#ffffff1a}.dash-stats{gap:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.dash-stat-card{background:var(--surface-elevated);border-radius:var(--radius-md);padding:var(--space-6) var(--space-5);text-align:center;box-shadow:var(--shadow-sm);border:1px solid var(--neutral-100)}.dash-stat-value{font-size:var(--font-size-3xl);color:var(--homs-teal-dark);margin-bottom:var(--space-2);font-weight:800;line-height:1}.dash-stat-label{font-size:var(--font-size-sm);color:var(--neutral-500);font-weight:500}.dash-history{gap:var(--space-2);flex-direction:column;display:flex}.dash-history-row{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--neutral-50);border-radius:var(--radius-sm);transition:background var(--transition-fast);grid-template-columns:120px 1fr 140px 100px 100px;display:grid}.dash-history-row:hover{background:var(--neutral-100)}.dash-history-id{font-size:var(--font-size-sm);color:var(--homs-teal-dark);font-family:SF Mono,Fira Code,monospace;font-weight:700}.dash-history-patient{font-size:var(--font-size-sm);color:var(--neutral-900);font-weight:600}.dash-history-type{font-size:var(--font-size-xs);color:var(--neutral-500)}.dash-history-date{font-size:var(--font-size-xs);color:var(--neutral-400)}.dash-history-status{border-radius:var(--radius-full);font-size:var(--font-size-xs);justify-content:center;align-items:center;padding:4px 10px;font-weight:600;display:inline-flex}.dash-history-pdf{cursor:pointer;opacity:.4;border-radius:var(--radius-sm);flex-shrink:0;padding:4px 6px;font-size:16px;transition:all .2s}.dash-history-pdf:hover{opacity:1;background:#8aabb41f;transform:scale(1.15)}.dash-coming-soon{text-align:center;padding:var(--space-8) var(--space-4)}.dash-coming-icon{margin-bottom:var(--space-4);font-size:40px;display:block}.dash-coming-soon p{font-size:var(--font-size-base);color:var(--neutral-600);margin-bottom:var(--space-2)}.dash-coming-sub{font-size:var(--font-size-sm)!important;color:var(--neutral-400)!important}@media (width<=768px){.dash-welcome{text-align:center;gap:var(--space-4);flex-direction:column}.dash-stats{grid-template-columns:1fr}.dash-history-row{gap:var(--space-2);grid-template-columns:1fr 1fr}.dash-history-type,.dash-history-date{display:none}.login-card{padding:var(--space-6) var(--space-4)}}.dash-history-clickable{cursor:pointer;width:100%;font-family:var(--font-family);text-align:left;border:1px solid #0000}.dash-history-clickable:hover{border-color:var(--homs-teal);background:#8aabb40a!important}.unread-dot{vertical-align:middle;background:#ff3b30;border-radius:50%;width:10px;height:10px;margin-right:6px;animation:1.5s ease-in-out infinite pulseUnread;display:inline-block;box-shadow:0 0 6px #ff3b3080}@keyframes pulseUnread{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.3)}}.dash-history-unread{background:#ff3b300a!important;border-left:3px solid #ff3b30!important}.dash-history-unread .dash-history-patient{font-weight:700}.referral-detail{gap:var(--space-5);flex-direction:column;animation:.4s ease-out fadeInUp;display:flex}.rd-header{gap:var(--space-4);flex-direction:column;display:flex}.rd-back{font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--homs-teal-dark);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-weight:600}.rd-back:hover{text-decoration:underline}.rd-header-info{padding:var(--space-5) var(--space-6);background:var(--surface-elevated);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--neutral-100);justify-content:space-between;align-items:center;display:flex}.rd-header-left{align-items:center;gap:var(--space-4);display:flex}.rd-ref-id{font-size:var(--font-size-lg);color:var(--homs-teal-dark);font-family:SF Mono,Fira Code,monospace;font-weight:800}.rd-patient{font-size:var(--font-size-base);color:var(--neutral-900);font-weight:600}.rd-type{font-size:var(--font-size-sm);color:var(--neutral-500)}.rd-status{border-radius:var(--radius-full);font-size:var(--font-size-sm);padding:5px 14px;font-weight:600}.rd-thread{gap:var(--space-3);padding:var(--space-5);background:var(--neutral-50);border-radius:var(--radius-md);border:1px solid var(--neutral-100);flex-direction:column;min-height:200px;max-height:500px;display:flex;overflow-y:auto}.rd-empty{text-align:center;padding:var(--space-10);color:var(--neutral-400)}.rd-message{max-width:75%;padding:var(--space-4);border-radius:var(--radius-md);animation:.2s ease-out fadeInUp}.rd-msg-homs{background:var(--surface-elevated);border:1px solid var(--neutral-200);align-self:flex-start}.rd-msg-doctor{background:#8aabb41a;border:1px solid #8aabb440;align-self:flex-end}.rd-msg-header{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.rd-msg-sender{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--neutral-600);font-weight:700}.rd-msg-time{color:var(--neutral-400);white-space:nowrap;font-size:11px}.rd-msg-content{font-size:var(--font-size-sm);color:var(--neutral-800);margin:0;line-height:1.6}.rd-msg-files{gap:var(--space-2);margin-top:var(--space-3);flex-direction:column;display:flex}.rd-file-chip{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-family);transition:all var(--transition-fast);background:#0a84ff0d;border:1px solid #0a84ff26;display:inline-flex}.rd-file-chip:hover{background:#0a84ff1a;border-color:#0a84ff4d}.rd-file-icon{font-size:16px}.rd-file-name{font-size:var(--font-size-xs);color:var(--neutral-800);font-weight:600}.rd-file-size{color:var(--neutral-400);font-size:11px}.rd-composer{background:var(--surface-elevated);border-radius:var(--radius-md);border:1px solid var(--neutral-200);box-shadow:var(--shadow-sm);overflow:hidden}.rd-pending-files{gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--neutral-100);flex-wrap:wrap;display:flex}.rd-pending-chip{align-items:center;gap:var(--space-2);background:var(--neutral-100);border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--neutral-700);padding:4px 8px;display:inline-flex}.rd-pending-remove{color:var(--neutral-400);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:12px;line-height:1}.rd-pending-remove:hover{color:var(--error)}.rd-composer-row{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);display:flex}.rd-attach-btn{cursor:pointer;opacity:.6;transition:opacity var(--transition-fast);background:0 0;border:none;padding:4px;font-size:22px}.rd-attach-btn:hover{opacity:1}.rd-composer-input{font-family:var(--font-family);font-size:var(--font-size-sm);resize:none;color:var(--neutral-900);background:0 0;border:none;outline:none;flex:1;min-height:24px}.rd-composer-input::placeholder{color:var(--neutral-400)}.rd-send-btn{padding:var(--space-2) var(--space-5);background:var(--homs-teal-dark);color:#fff;border-radius:var(--radius-sm);font-family:var(--font-family);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);border:none;font-weight:700}.rd-send-btn:hover:not(:disabled){background:var(--homs-teal);transform:translateY(-1px)}.rd-send-btn:disabled{opacity:.4;cursor:not-allowed}@media (width<=768px){.rd-header-info{align-items:flex-start;gap:var(--space-3);flex-direction:column}.rd-header-left{align-items:flex-start;gap:var(--space-1);flex-direction:column}.rd-message{max-width:90%}}.cbct-upload-section{background:linear-gradient(135deg,#6366f10d,#8b5cf60d);border:2px solid #6366f14d;border-radius:12px;margin-bottom:16px;padding:20px;transition:border-color .2s}.cbct-upload-section:hover{border-color:#6366f180}.cbct-upload-header{align-items:center;gap:12px;margin-bottom:16px;display:flex}.cbct-upload-icon{font-size:2rem}.cbct-upload-title{color:#1e293b;font-size:1rem;font-weight:600}.cbct-upload-hint{color:#64748b;margin-top:2px;font-size:.8rem}.cbct-upload-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-size:.9rem;font-weight:500;transition:transform .15s,box-shadow .15s;display:inline-flex}.cbct-upload-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.cbct-upload-btn:active{transform:translateY(0)}.cbct-progress-area{flex-direction:column;gap:6px;display:flex}.cbct-progress-label{color:#475569;font-size:.85rem;font-weight:500}.cbct-progress-pct{color:#6366f1;text-align:right;font-size:.8rem;font-weight:600}.file-progress-bar.packaging{background:linear-gradient(90deg,#6366f1,#8b5cf6)}.cbct-complete{background:#22c55e14;border:1px solid #22c55e4d;border-radius:8px;align-items:center;gap:12px;padding:12px 16px;display:flex}.cbct-complete-icon{font-size:1.4rem}.cbct-complete-info{flex:1}.cbct-complete-name{color:#1e293b;font-size:.9rem;font-weight:600}.cbct-complete-meta{color:#64748b;margin-top:2px;font-size:.8rem}.cbct-error{color:#dc2626;background:#ef444414;border:1px solid #ef44444d;border-radius:8px;align-items:center;gap:12px;padding:12px 16px;font-size:.85rem;display:flex}.cbct-retry-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#ef4444;border:none;border-radius:6px;padding:4px 12px;font-size:.8rem}.cbct-retry-btn:hover{background:#dc2626}
