:root{--primary:#1a2b4b;--primary-light:#2a3b5b;--accent:#d49d42;--bg-main:#f8fafc;--bg-card:#fff;--text-main:#1e293b;--text-muted:#64748b;--border:#e2e8f0;--success:#10b981;--shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-main);color:var(--text-main);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}#root{flex-direction:column;min-height:100vh;display:flex}button{cursor:pointer;background:0 0;border:none;font-family:inherit;transition:all .2s}.btn{border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-size:.95rem;font-weight:600;display:inline-flex}.btn-primary{background-color:var(--primary);color:#fff}.btn-primary:hover{background-color:var(--primary-light);transform:translateY(-1px)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{color:var(--text-main);border:1px solid var(--border);background-color:#fff}.btn-secondary:hover{border-color:var(--text-muted);background-color:#f8fafc}.btn-ghost{color:var(--text-muted);font-weight:500}.btn-ghost:hover{color:var(--text-main)}.card{background:var(--bg-card);box-shadow:var(--shadow);border-radius:20px;padding:32px}.toast{border-left:4px solid var(--accent);box-shadow:var(--shadow-lg);z-index:1000;background:#fff;border-radius:12px;align-items:center;gap:.75rem;padding:1rem 1.5rem;animation:.3s forwards slideIn;display:flex;position:fixed;bottom:2rem;right:2rem}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@media (width<=500px){.btn{gap:12px;padding:14px 20px;font-size:1rem}.card{padding:24px 20px}.brand-name{font-size:1.5rem}}.camera-modal{z-index:9999;background:#000;flex-direction:column;display:flex;position:fixed;inset:0}.camera-container{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.camera-view{object-fit:cover;z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.camera-error{color:#fff;text-align:center;z-index:100;background:#000c;border:1px solid #fff3;border-radius:16px;width:85%;padding:24px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.camera-error p{margin-bottom:20px;font-size:.95rem;line-height:1.5}.error-actions{flex-direction:column;gap:12px;display:flex}.cam-btn.retry-mini,.cam-btn.cancel-mini{border-radius:12px;gap:8px;width:100%;height:48px;font-weight:600}.cam-btn.retry-mini{background:var(--accent)}.cam-btn.cancel-mini{background:#ffffff1a}.camera-controls{z-index:100;background:linear-gradient(#0000,#000000b3);justify-content:space-around;align-items:center;height:140px;padding:0 20px 30px;display:flex;position:absolute;bottom:0;left:0;right:0}.cam-btn{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:101;background:#fff3;border:none;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;display:flex}.cam-btn.capture{background:#fff;width:80px;height:80px;padding:6px}.capture-inner{border:4px solid #000;border-radius:50%;width:100%;height:100%}.cam-btn.retry,.cam-btn.confirm{border-radius:30px;gap:10px;width:auto;height:50px;padding:0 24px;font-size:.9rem;font-weight:700}.cam-btn.confirm{background:#d49d42}@media (width<=768px){.camera-controls{height:160px;padding-bottom:50px}}.upload-card{flex-direction:column;display:flex}.upload-options{flex-direction:column;gap:16px;margin-bottom:32px;display:flex}.upload-box{border:1px solid var(--border);cursor:pointer;background:#f8fafc;border-radius:16px;padding:24px;transition:all .2s}.upload-box:hover{border-color:var(--accent);box-shadow:var(--shadow);background:#fff}.upload-box.secondary{background:#fff}.hidden-input{display:none}.upload-content{align-items:center;gap:20px;display:flex}.icon-circle{background-color:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.icon-circle.secondary{color:var(--primary);background-color:#f1f5f9}.upload-btn-text{color:var(--primary);font-size:1.1rem;font-weight:700}.tips-section{background:#fdf8f0;border-radius:12px;padding:16px}.tips-title{color:#9a6d25;margin-bottom:8px;font-size:.9rem;font-weight:700}.tips-list{color:#9a6d25;flex-direction:column;gap:4px;font-size:.85rem;list-style:none;display:flex}.tips-list li:before{content:"•";color:var(--accent);margin-right:8px}@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size:12px;--rc-drag-handle-mobile-size:24px;--rc-drag-handle-bg-colour:#0003;--rc-drag-bar-size:6px;--rc-border-color:#ffffffb3;--rc-focus-color:#08f}.ReactCrop{cursor:crosshair;max-width:100%;display:inline-block;position:relative}.ReactCrop *,.ReactCrop :before,.ReactCrop :after{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{max-height:inherit;overflow:hidden}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{max-width:100%;max-height:inherit;display:block}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-mask{pointer-events:none;width:calc(100% + .5px);height:calc(100% + .5px);position:absolute;inset:0}.ReactCrop__crop-selection{cursor:move;position:absolute;top:0;left:0;transform:translateZ(0)}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{pointer-events:none;content:"";border:1px solid var(--rc-border-color);opacity:.3;position:absolute;inset:-1px}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed #fff}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){color:#fff;background-image:linear-gradient(90deg,#fff 50%,#444 50%),linear-gradient(90deg,#fff 50%,#444 50%),linear-gradient(#fff 50%,#444 50%),linear-gradient(#fff 50%,#444 50%);background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:10px 1px,10px 1px,1px 10px,1px 10px;animation:1s linear infinite marching-ants}.ReactCrop__crop-selection:focus{outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{content:"";background-color:#fff6;display:block;position:absolute}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6667%}.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6667%}.ReactCrop__drag-handle{width:var(--rc-drag-handle-size);height:var(--rc-drag-handle-size);background-color:var(--rc-drag-handle-bg-colour);border:1px solid var(--rc-border-color);position:absolute}.ReactCrop__drag-handle:focus{background:var(--rc-focus-color)}.ReactCrop .ord-nw{cursor:nw-resize;top:0;left:0;transform:translate(-50%,-50%)}.ReactCrop .ord-n{cursor:n-resize;top:0;left:50%;transform:translate(-50%,-50%)}.ReactCrop .ord-ne{cursor:ne-resize;top:0;right:0;transform:translate(50%,-50%)}.ReactCrop .ord-e{cursor:e-resize;top:50%;right:0;transform:translate(50%,-50%)}.ReactCrop .ord-se{cursor:se-resize;bottom:0;right:0;transform:translate(50%,50%)}.ReactCrop .ord-s{cursor:s-resize;bottom:0;left:50%;transform:translate(-50%,50%)}.ReactCrop .ord-sw{cursor:sw-resize;bottom:0;left:0;transform:translate(-50%,50%)}.ReactCrop .ord-w{cursor:w-resize;top:50%;left:0;transform:translate(-50%,-50%)}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{width:100%;height:var(--rc-drag-bar-size);top:0;left:0;transform:translateY(-50%)}.ReactCrop__drag-bar.ord-e{width:var(--rc-drag-bar-size);height:100%;top:0;right:0;transform:translate(50%)}.ReactCrop__drag-bar.ord-s{width:100%;height:var(--rc-drag-bar-size);bottom:0;left:0;transform:translateY(50%)}.ReactCrop__drag-bar.ord-w{width:var(--rc-drag-bar-size);height:100%;top:0;left:0;transform:translate(-50%)}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media (pointer:coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:var(--rc-drag-handle-mobile-size);height:var(--rc-drag-handle-mobile-size)}}.crop-card{flex-direction:column;display:flex}.crop-main-area{margin-top:10px}.crop-stage{background:#000;border-radius:12px;justify-content:center;align-items:center;min-height:300px;margin-bottom:24px;display:flex;position:relative;overflow:hidden}.custom-crop{max-width:100%}.custom-crop img{max-width:100%;max-height:400px;display:block}.ReactCrop__child-wrapper{position:relative}.crop-grid-overlay{pointer-events:none;z-index:10;position:absolute;inset:0}.ReactCrop__crop-selection{border:1px solid #fffc!important;box-shadow:0 0 0 9999em #00000080!important}.ReactCrop__crop-selection:before,.ReactCrop__crop-selection:after{content:"";z-index:1;background:#ffffff4d;position:absolute}.ReactCrop__crop-selection:before{border-top:1px solid #ffffff4d;border-bottom:1px solid #ffffff4d;inset:33.33% 0}.ReactCrop__crop-selection:after{border-left:1px solid #ffffff4d;border-right:1px solid #ffffff4d;inset:0 33.33%}.zoom-control{align-items:center;gap:16px;margin-bottom:24px;padding:0 10px;display:flex}.zoom-icon{color:var(--text-muted);cursor:pointer}.zoom-slider{-webkit-appearance:none;background:#eef2f6;border-radius:10px;outline:none;flex:1;height:6px}.zoom-slider::-webkit-slider-thumb{appearance:none;border:2px solid var(--accent);cursor:pointer;width:24px;height:24px;box-shadow:var(--shadow);background:#fff;border-radius:50%}.crop-info-box{background:#f8fafc;border-radius:12px;align-items:center;gap:12px;margin-bottom:32px;padding:12px 16px;display:flex}.crop-info-box p{color:var(--text-muted);margin:0;font-size:.85rem}.crop-footer{justify-content:space-between;align-items:center;display:flex}@media (width<=500px){.crop-footer{flex-direction:column-reverse;gap:12px}.crop-footer .btn{justify-content:center;width:100%;padding:16px}}.loader-card{flex-direction:column;align-items:center;width:100%;min-width:450px;max-width:700px;margin:0 auto;padding:60px 40px;display:flex}.loader-visual{justify-content:center;align-items:center;width:200px;height:200px;margin-bottom:40px;display:flex;position:relative}.expert-circle{z-index:2;border:4px solid #fdf8f0;border-radius:50%;width:160px;height:160px;position:relative;overflow:hidden}.expert-img{object-fit:cover;filter:grayscale()blur(2px);width:100%;height:100%}.expert-overlay{background:#1a2b4b33;position:absolute;inset:0}.pulse-ring{border:2px solid var(--accent);border-radius:50%;width:200px;height:200px;animation:2s ease-out infinite pulse;position:absolute}@keyframes pulse{0%{opacity:.8;transform:scale(.8)}to{opacity:0;transform:scale(1.2)}}.loader-progress{width:100%;max-width:450px;margin-bottom:24px}.loader-bar-bg{background:#eef2f6;border-radius:10px;height:10px;overflow:hidden}.loader-bar-fill{background:var(--primary);width:40%;height:100%;animation:3s ease-in-out infinite progress}@keyframes progress{0%{width:0;transform:translate(0)}50%{width:70%}to{width:100%;transform:translate(0)}}@media (width<=500px){.loader-card{min-width:unset;padding:32px 20px}.loader-visual{width:140px;height:140px}.expert-circle{width:100px;height:100px}.pulse-ring{width:140px;height:140px}}.assessment-card{padding:24px}.assessment-header{margin-bottom:24px}.header-actions{justify-content:flex-end;gap:16px;margin-bottom:20px;display:flex}.icon-btn{color:var(--text-muted);align-items:center;gap:6px;font-size:.75rem;font-weight:600;display:flex}.assessment-title-row{align-items:center;gap:16px;display:flex;position:relative}.expert-avatar{border-radius:12px;width:48px;height:48px;overflow:hidden}.expert-avatar img{object-fit:cover;width:100%;height:100%}.title-text .screen-title{margin-bottom:0;font-size:1.25rem}.title-text .screen-subtitle{margin-bottom:0;font-size:.8rem}.text-left{text-align:left}.verified-badge{color:#10b981;background:#ecfdf5;border-radius:20px;align-items:center;gap:4px;margin-left:auto;padding:6px 12px;font-size:.7rem;font-weight:700;display:flex}.section-label{text-transform:uppercase;color:var(--primary);letter-spacing:.5px;margin-bottom:12px;font-size:.75rem;font-weight:800}.clinical-summary{background:#f8fafc;border-radius:16px;margin-bottom:32px;padding:20px}.summary-text{color:var(--text-main);font-size:.9rem;line-height:1.6}.key-indicators{margin-bottom:32px}.indicators-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.indicator-card{border-radius:16px;flex-direction:column;gap:4px;padding:16px;display:flex}.indicator-card.tooth_color,.indicator-card.teeth_color{background:#fffbeb;border:1px solid #fef3c7}.indicator-card.gum_visibility,.indicator-card.gum_health{background:#f0fdf4;border:1px solid #dcfce7}.indicator-card.alignment{background:#f0fdfa;border:1px solid #ccfbf1}.indicator-card.cleanliness,.indicator-card.staining{background:#f0fdf9;border:1px solid #ccfbf1}.indicator-label{color:var(--text-muted);font-size:.65rem;font-weight:700}.indicator-value{color:var(--primary);font-size:1rem;font-weight:700}.actionable-steps{margin-bottom:40px}.steps-list{flex-direction:column;gap:16px;display:flex}.step-item{gap:16px;display:flex}.check-circle{border:2px solid #eef2f6;border-radius:50%;width:18px;height:18px;margin-top:2px;position:relative}.check-circle:after{content:"✓";color:var(--accent);opacity:.5;font-size:10px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.step-text{color:var(--text-main);margin:0;font-size:.85rem}.assessment-actions{flex-direction:column;gap:12px;margin-bottom:24px;display:flex}.dark-btn{background-color:#1a2333}.assessment-footer{text-align:center}.privacy-text{color:var(--text-muted);margin-bottom:16px;font-size:.75rem;font-weight:700}.disclaimer{color:#94a3b8;padding:0 20px;font-size:.65rem;line-height:1.4}@media (width<=500px){.assessment-card{padding:20px 16px}.indicators-grid{grid-template-columns:1fr}.header-actions{justify-content:space-between;width:100%}.assessment-actions{gap:16px}.assessment-actions .btn{width:100%;padding:14px}.assessment-title-row{flex-direction:column;align-items:flex-start;gap:12px}.verified-badge{margin-left:0}}.app-layout{flex-direction:column;max-width:800px;min-height:100vh;margin:0 auto;padding:0 20px;display:flex}.app-header{text-align:center;padding:32px 0}.header-top{flex-direction:column;align-items:center;gap:12px;margin-bottom:24px;display:flex}.logo{width:auto;height:60px}.brand-name{color:var(--primary);letter-spacing:-.5px;font-size:1.75rem;font-weight:800}.progress-container{width:100%;max-width:600px;margin:0 auto}.progress-labels{color:var(--text-muted);justify-content:space-between;margin-bottom:10px;font-size:.75rem;font-weight:600;display:flex}.progress-bar-bg{background-color:#eef2f6;border-radius:10px;height:6px;overflow:hidden}.progress-bar-fill{background-color:var(--accent);border-radius:10px;height:100%;transition:width .4s}.app-content{flex:1;width:100%}.app-footer{text-align:center;padding:24px 0}.footer-info{color:var(--text-muted);justify-content:center;align-items:center;gap:8px;font-size:.85rem;display:flex}.secure-tag{align-items:center;gap:6px;display:flex}.content-area{margin-top:10px}.screen-title{color:var(--primary);text-align:center;margin-bottom:8px;font-size:1.5rem;font-weight:700}.screen-subtitle{color:var(--text-muted);text-align:center;margin-bottom:24px;font-size:.95rem}.preview-card{flex-direction:column;gap:24px;display:flex}.preview-image-wrapper{background:#000;border-radius:12px;width:100%;overflow:hidden}.preview-image{width:100%;display:block}.preview-actions{flex-direction:column;gap:12px;display:flex}.w-full{width:100%}.private-note{text-align:center;color:var(--text-muted);margin-top:-12px;font-size:.75rem}
