.auth-loading{display:flex;align-items:center;justify-content:center;height:100vh;font-size:.9rem;color:#6b7280}.auth-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#f3f4f6}.auth-card{background:#fff;border:1px solid #E5E7EB;border-radius:12px;padding:40px 48px;max-width:420px;width:90%;text-align:center;box-shadow:0 4px 24px #00000014}.auth-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0 0 10px}.auth-subtitle{font-size:.9rem;color:#6b7280;margin:0 0 24px;line-height:1.5}.auth-error{font-size:.85rem;color:#dc2626;background:#fff5f5;border:1px solid #FECACA;border-radius:6px;padding:8px 12px;margin:0 0 16px}.auth-btn{display:inline-flex;align-items:center;gap:10px;padding:10px 24px;border:1.5px solid #D1D5DB;border-radius:8px;background:#fff;font-size:.95rem;font-weight:500;color:#374151;cursor:pointer;transition:all .15s;font-family:inherit}.auth-btn:hover{background:#f9fafb;border-color:#9ca3af}.auth-google-icon{width:20px;height:20px;flex-shrink:0}.patient-info-form{background:#fff;border:1px solid #E5E7EB;border-radius:8px;padding:16px 20px}.patient-info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.pif-field{display:flex;flex-direction:column;gap:5px}.pif-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#6b7280}.pif-input{padding:7px 10px;border:1.5px solid #D1D5DB;border-radius:6px;font-size:.875rem;color:#111;background:#fff;font-family:inherit}.pif-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb26}.pif-input--error{border-color:#dc2626;background:#fff5f5}select.pif-input{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;cursor:pointer}.pif-input--error:focus{border-color:#dc2626;box-shadow:0 0 0 2px #dc262626}.pif-required{color:#dc2626;font-weight:700}.species-toggle{display:flex;border:1.5px solid #D1D5DB;border-radius:6px;overflow:hidden}.species-btn{flex:1;padding:7px 0;border:none;background:#fff;font-size:.875rem;cursor:pointer;color:#374151;font-family:inherit;transition:all .15s}.species-btn:first-child{border-right:1px solid #D1D5DB}.species-btn:hover{background:#f3f4f6}.species-btn--active{background:#2563eb;color:#fff}.species-btn--active:hover{background:#1d4ed8}.dental-chart-container{width:100%;background:#fff;border:1px solid #E5E7EB;border-radius:8px;overflow:hidden}.dental-chart-svg{display:block;width:100%;height:auto}.tooth-group:hover>rect,.tooth-group:hover>polygon{filter:brightness(.92)}.panel-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000040;z-index:100}.tooth-panel{position:fixed;top:0;right:-420px;width:400px;max-width:95vw;height:100vh;background:#fff;box-shadow:-4px 0 24px #00000026;z-index:101;display:flex;flex-direction:column;transition:right .25s ease;overflow:hidden}.tooth-panel--open{right:0}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #E5E7EB;background:#f9fafb;flex-shrink:0}.panel-title{font-size:1rem;font-weight:600;color:#111}.panel-tooth-id{color:#2563eb;font-size:1.1rem}.panel-tooth-name{color:#666;font-weight:400}.panel-close-btn{background:none;border:none;font-size:1.1rem;cursor:pointer;color:#666;padding:4px 8px;border-radius:4px;line-height:1}.panel-close-btn:hover{background:#f3f4f6;color:#111}.panel-body{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:20px}.panel-section{display:flex;flex-direction:column;gap:8px}.panel-section-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#6b7280}.status-chips{display:flex;flex-wrap:wrap;gap:8px}.status-chip{padding:6px 14px;border-radius:20px;border:1.5px solid #D1D5DB;background:#fff;font-size:.85rem;cursor:pointer;color:#374151;transition:all .15s}.status-chip:hover{border-color:#9ca3af}.status-chip--active{background:#2563eb;border-color:#2563eb;color:#fff}.findings-list{display:flex;flex-direction:column;gap:12px}.finding-row{display:flex;flex-direction:column;gap:6px}.finding-label{font-size:.82rem;color:#374151;font-weight:500}.grade-buttons{display:flex;gap:6px;flex-wrap:wrap}.grade-btn{width:34px;height:28px;border-radius:6px;border:1.5px solid #D1D5DB;background:#fff;font-size:.85rem;cursor:pointer;color:#374151;transition:all .15s;font-weight:500}.grade-btn:hover{border-color:#9ca3af;background:#f9fafb}.grade-btn--active{background:#1d4ed8;border-color:#1d4ed8;color:#fff}.select-chips{display:flex;flex-wrap:wrap;gap:6px}.select-chip{padding:4px 10px;border-radius:6px;border:1.5px solid #D1D5DB;background:#fff;font-size:.78rem;cursor:pointer;color:#374151;transition:all .15s}.select-chip:hover{border-color:#9ca3af}.select-chip--active{background:#0891b2;border-color:#0891b2;color:#fff}.surface-chips{display:flex;gap:6px;flex-wrap:wrap}.surface-chip{width:38px;height:28px;border-radius:6px;border:1.5px solid #D1D5DB;background:#fff;font-size:.75rem;font-weight:600;cursor:pointer;color:#374151;transition:all .15s}.surface-chip:hover{border-color:#9ca3af;background:#f9fafb}.surface-chip--active{background:#d97706;border-color:#d97706;color:#fff}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:#2563EB;cursor:pointer}.checkbox-text{font-size:.85rem;color:#374151}.pocket-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pocket-item{display:flex;flex-direction:column;gap:4px}.pocket-site-label{font-size:.78rem;color:#6b7280}.pocket-input{width:100%;padding:6px 8px;border:1.5px solid #D1D5DB;border-radius:6px;font-size:.9rem;color:#111;background:#fff;text-align:center}.pocket-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb26}.pocket-input::-webkit-inner-spin-button,.pocket-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.notes-textarea{width:100%;padding:8px 10px;border:1.5px solid #D1D5DB;border-radius:6px;font-size:.875rem;color:#111;background:#fff;resize:vertical;font-family:inherit;box-sizing:border-box}.notes-textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb26}.panel-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid #E5E7EB;background:#f9fafb;flex-shrink:0}.btn{padding:8px 20px;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;border:none;transition:all .15s}.btn-primary{background:#2563eb;color:#fff}.btn-primary:hover{background:#1d4ed8}.btn-secondary{background:#fff;color:#374151;border:1.5px solid #D1D5DB}.btn-secondary:hover{background:#f3f4f6}.tt-wrapper{position:relative;display:inline-block}.tt-box{position:fixed;background:#1e293b;color:#f8fafc;font-size:.72rem;line-height:1.4;padding:5px 9px;border-radius:5px;white-space:normal;width:max-content;max-width:220px;z-index:9999;pointer-events:none;box-shadow:0 2px 8px #00000040}.tt-box--above:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1e293b}.tt-box--below:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-bottom-color:#1e293b}.toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:12px 16px;background:#fff;border:1px solid #E5E7EB;border-radius:8px}.legend{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.legend-title{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#6b7280;margin-right:4px}.legend-divider{display:inline-block;width:1px;height:16px;background:#d1d5db;margin:0 6px;vertical-align:middle}.legend-item{display:flex;align-items:center;gap:5px;font-size:.78rem;color:#374151}.legend-swatch{display:inline-block;width:14px;height:14px;border-radius:3px;flex-shrink:0}.toolbar-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.toolbar-error{margin:0;font-size:.78rem;color:#dc2626;font-weight:500}.toolbar-actions{display:flex;gap:8px}.toolbar-btn{padding:8px 18px;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;border:none;transition:all .15s;font-family:inherit}.toolbar-btn--primary{background:#2563eb;color:#fff}.toolbar-btn--primary:hover{background:#1d4ed8}.toolbar-btn--danger{background:#fff;color:#dc2626;border:1.5px solid #FCA5A5}.toolbar-btn--danger:hover{background:#fef2f2}.toolbar-btn--secondary{background:#fff;color:#374151;border:1.5px solid #D1D5DB}.toolbar-btn--secondary:hover{background:#f3f4f6}.toolbar-user{font-size:.78rem;color:#6b7280;align-self:center;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-capture-mode .toolbar{display:none!important}.chart-findings{background:#fff;border:1px solid #E5E7EB;border-radius:8px;overflow:visible}.cf-header{display:flex;align-items:baseline;gap:10px;padding:10px 16px 8px;border-bottom:1px solid #F3F4F6;background:#f9fafb}.cf-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#374151}.cf-subtitle{font-size:.7rem;color:#9ca3af}.cf-body{padding:12px 16px 14px;display:flex;flex-direction:column;gap:12px}.cf-grades-row{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start;overflow:visible}.cf-finding{display:flex;flex-direction:column;gap:5px;overflow:visible}.cf-finding-label{font-size:.78rem;font-weight:600;color:#374151}.cf-grade-buttons{display:flex;gap:5px;overflow:visible}.cf-grade-btn{width:32px;height:28px;border-radius:6px;border:1.5px solid #D1D5DB;background:#fff;font-size:.85rem;font-weight:500;cursor:pointer;color:#374151;transition:all .15s;font-family:inherit}.cf-grade-btn:hover{border-color:#9ca3af;background:#f9fafb}.cf-grade-btn--active{background:#1d4ed8;border-color:#1d4ed8;color:#fff}.cf-selected-desc{font-size:.7rem;color:#6b7280;font-style:italic}.cf-nerve-blocks{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}.cf-nerve-block-row{display:flex;flex-direction:column;gap:5px}.cf-side-buttons{display:flex;gap:6px}.cf-side-btn{padding:4px 14px;border-radius:6px;border:1.5px solid #D1D5DB;background:#fff;font-size:.82rem;font-weight:500;cursor:pointer;color:#374151;transition:all .15s;font-family:inherit}.cf-side-btn:hover{border-color:#9ca3af;background:#f9fafb}.cf-side-btn--active{background:#0891b2;border-color:#0891b2;color:#fff}.cf-soft-tissue{display:flex;flex-direction:column;gap:5px}.cf-textarea{width:100%;padding:7px 10px;border:1.5px solid #D1D5DB;border-radius:6px;font-size:.875rem;color:#111;font-family:inherit;resize:vertical;box-sizing:border-box}.cf-textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb26}.pdf-capture-mode .cf-grade-btn:not(.cf-grade-btn--active){display:none!important}.pdf-capture-mode .cf-grade-btn--active{pointer-events:none}.pdf-capture-mode .cf-textarea{pointer-events:none;border-color:#e5e7eb;resize:none}.pdf-capture-mode .cf-side-btn:not(.cf-side-btn--active){display:none!important}.pdf-capture-mode .cf-side-btn--active{pointer-events:none}.findings-summary{margin-top:16px;padding:16px;background:#fff;border:1px solid #E5E7EB;border-radius:8px}.findings-summary--empty{color:#6b7280;font-size:.875rem;text-align:center;padding:24px}.findings-summary-title{font-size:.875rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#374151;margin:0 0 12px}.summary-table{width:100%;border-collapse:collapse;font-size:.8rem}.summary-table th{text-align:left;padding:6px 10px;background:#f3f4f6;color:#6b7280;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #E5E7EB}.summary-table td{padding:6px 10px;border-bottom:1px solid #F3F4F6;vertical-align:top;color:#374151;line-height:1.4}.summary-table tr:last-child td{border-bottom:none}.summary-table tr:hover td{background:#f9fafb}.summary-tooth-id{font-family:monospace;white-space:nowrap}.summary-tooth-label{color:#9ca3af;font-weight:400}.summary-status{text-transform:capitalize;font-weight:500}.summary-status--present{color:#059669}.summary-status--missing{color:#6b7280}.summary-status--extracted{color:#d97706}.summary-status--not_charted{color:#9ca3af}.summary-none{color:#d1d5db}.chart-findings-summary{margin-bottom:14px;padding:10px 12px;background:#f9fafb;border:1px solid #E5E7EB;border-radius:6px;font-size:.8rem;color:#374151}.chart-findings-row{display:flex;flex-wrap:wrap;gap:6px 20px}.chart-finding-item{white-space:nowrap}.chart-finding-label{font-weight:600;color:#6b7280}.chart-finding-value{color:#111827}.soft-tissue-summary{margin-top:8px;line-height:1.5}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:#f3f4f6;color:#111;-webkit-font-smoothing:antialiased}.app-shell{max-width:1300px;margin:0 auto;padding:20px 16px 40px;display:flex;flex-direction:column;gap:16px}.app-header{display:flex;align-items:center}.app-title{font-size:1.25rem;font-weight:700;color:#1e3a5f;margin:0;letter-spacing:-.01em}.app-edit-controls{display:flex;flex-direction:column;gap:12px}.chart-export-root{display:flex;flex-direction:column;gap:12px;background:#fff;border-radius:8px;overflow:hidden}.patient-header-bar{display:flex;flex-wrap:wrap;gap:0;border:1px solid #E5E7EB;border-radius:8px 8px 0 0;overflow:hidden;background:#f9fafb}.patient-header-field{display:flex;flex-direction:column;padding:8px 16px;border-right:1px solid #E5E7EB;flex:1;min-width:100px}.patient-header-field:last-child{border-right:none}.ph-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#9ca3af}.ph-value{font-size:.875rem;font-weight:500;color:#111;margin-top:2px}.color-legend-bar{display:flex;flex-wrap:wrap;gap:16px;align-items:center;padding:8px 16px;border-top:1px solid #E5E7EB;border-bottom:1px solid #E5E7EB;background:#fafafa}.cl-item{display:flex;align-items:center;gap:6px;font-size:.75rem;color:#374151}.cl-swatch{display:inline-block;width:14px;height:14px;border-radius:3px;flex-shrink:0}.cl-divider{display:inline-block;width:1px;height:16px;background:#d1d5db;margin:0 6px;align-self:center}.pdf-capture-mode .app-edit-controls,body.pdf-capture-mode .panel-backdrop,body.pdf-capture-mode .tooth-panel{display:none!important}@media (max-width: 1100px){.ph-label{font-size:.7rem}.ph-value{font-size:.95rem;font-weight:600}.cl-item{font-size:.82rem;font-weight:500}}@media (max-width: 768px){.app-shell{padding:12px 8px 32px}.patient-header-bar{flex-direction:column}.patient-header-field{border-right:none;border-bottom:1px solid #E5E7EB;padding:6px 12px}.patient-header-field:last-child{border-bottom:none}}
