.tooth-chart-container{margin:16px 0}.tooth-chart-display{padding:20px;background:#fafafa;border-radius:8px;text-align:center}.jaw-section{margin:16px 0}.jaw-label{font-size:11px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.teeth-row{display:flex;justify-content:center;gap:3px;flex-wrap:wrap}.teeth-row.upper{transform:perspective(600px) rotateX(-4deg)}.teeth-row.lower{transform:perspective(600px) rotateX(4deg)}.tooth-display{width:32px;height:42px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;border:2px solid;border-radius:6px 6px 8px 8px;transition:transform .2s,box-shadow .2s;cursor:default}.tooth-display:hover{transform:scale(1.1);box-shadow:0 2px 8px #00000026;z-index:10}.tooth-display.empty{border-color:#e5e7eb;background:#fff;color:#9ca3af}.tooth-findings{margin-top:16px;padding:12px 16px;background:#fff;border-left:3px solid #2563eb;border-radius:4px}.findings-title{font-weight:600;font-size:14px;margin-bottom:8px;color:#1f2937}.tooth-findings ul{margin:0;padding-left:20px;font-size:13px;line-height:1.6}.tooth-findings li{margin:4px 0;color:#4b5563}.tooth-legend{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:16px;padding-top:12px;border-top:1px solid #e5e7eb;font-size:12px}.legend-item{display:flex;align-items:center;gap:6px;color:#6b7280}.legend-dot{width:12px;height:12px;border-radius:50%;border:1px solid rgba(0,0,0,.1)}@media print{.tooth-chart-display{background:#fff;border:1px solid #e5e7eb}.tooth-display:hover{transform:none;box-shadow:none}.teeth-row.upper,.teeth-row.lower{transform:none}}.ops3{--left-w: 290px;--right-w: 220px;--gap: 18px;display:grid;grid-template-columns:var(--left-w) 1fr var(--right-w);gap:var(--gap);align-items:start;min-width:calc(var(--left-w) + 600px + var(--right-w) + var(--gap) * 2);width:100%}.ops3 .ops-left .card,.ops3 .ops-left .pane{background:#fff!important;border:1px solid #e5e7eb!important;border-left:3px solid #2563eb!important;border-radius:8px!important;padding:14px!important;box-shadow:0 1px 3px #00000014!important}.ops3 .ops-left h3{font-size:16px!important;margin:2px 0 10px!important;color:#1f2937!important}.ops3 .ops-left .group-title{font-weight:700;margin:14px 0 8px;font-size:15px;color:#1f2937;background:#f3f4f6;padding:6px 10px;border-radius:6px;border-left:3px solid #2563eb}.ops3 .ops-left .check-row{display:flex;align-items:center;gap:8px;margin:6px 0;padding:4px 0;transition:background .15s ease;border-radius:4px}.ops3 .ops-left .check-row:hover{background:#f9fafb}.ops3 .ops-left .check-row input[type=checkbox]{width:16px;height:16px;cursor:pointer}.ops3 .chip-risk,.ops3 .risk-badge,.ops3 .risk{display:inline-block;font-size:11px;line-height:16px;font-weight:600;color:#b91c1c;background:#fee2e2;border:1px solid #fecaca;border-radius:10px;padding:0 6px;margin-left:6px}.ops3 .ops-mid .preview-wrap{background:#fff!important;border:1px solid #e5e7eb!important;border-radius:10px!important;padding:12px!important;box-shadow:0 2px 4px #0000000f!important}.ops3 .ops-mid .preview-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.ops3 .ops-mid .preview-head .brand{display:flex;align-items:center;gap:10px}.ops3 .ops-mid .preview-head img{max-height:80px;max-width:200px;border-radius:6px}.ops3 .ops-mid .preview-canvas{transform-origin:top left;transform:scale(.95)}.ops3 .ops-mid .mini-btns button{font-size:12px;padding:4px 8px;border-radius:6px;border:1px solid #cfd6e3;background:#f8fafc;cursor:pointer;transition:background .2s ease}.ops3 .ops-mid .mini-btns button:hover{background:#e2e8f0}.ops3 .ops-right .panel{background:#fff!important;border:1px solid #e5e7eb!important;border-left:3px solid #10b981!important;border-radius:10px!important;padding:12px!important;position:sticky;top:12px;box-shadow:0 1px 3px #00000014!important}.ops3 .ops-right .panel h4{font-size:14px!important;margin:0 0 8px!important;color:#1f2937!important}.ops3 .ops-right .panel .form-row{display:grid;gap:6px;margin-bottom:10px}.ops3 .ops-right .panel input[type=text],.ops3 .ops-right .panel input[type=email],.ops3 .ops-right .panel input[type=tel]{border:1px solid #d1d5db;border-radius:6px;padding:8px 10px;font-size:14px}.ops3 .ops-right .panel .btn-primary{background:#2563eb;color:#fff;border:0;border-radius:8px;padding:10px 12px;font-weight:600;transition:background .2s ease}.ops3 .ops-right .panel .btn-primary:hover:not(:disabled){background:#1d4ed8}.ops3 .ops-right .panel .btn-secondary{background:#10b981;color:#fff;border:0;border-radius:8px;padding:10px 12px;font-weight:600;transition:background .2s ease}.ops3 .ops-right .panel .btn-secondary:hover:not(:disabled){background:#059669}.ops3 .ops-right .panel .attach{display:flex;align-items:center;gap:8px;margin:8px 0 12px}.ops3 .muted{color:#6b7280;font-size:12px}.ops3 input[type=text],.ops3 input[type=date],.ops3 input[type=email],.ops3 input[type=tel],.ops3 select{transition:border-color .2s ease,box-shadow .2s ease}.ops3 input[type=text]:focus,.ops3 input[type=date]:focus,.ops3 input[type=email]:focus,.ops3 input[type=tel]:focus,.ops3 select:focus{outline:none;border-color:#2563eb!important;box-shadow:0 0 0 3px #2563eb1a}.ops3 label{color:#374151;font-size:14px}.clinic-title{font-size:18px;font-weight:600;margin:0 0 10px}.clinic-name-text{font-size:16px;font-weight:600;color:#2563eb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clinic-name-header{font-size:18px;font-weight:600;color:var(--brand, #2563eb);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media print{.ops-left,.ops-right,body>div>div[style*=borderBottom],.preview-head,.mini-btns,.no-print{display:none!important}.ops3{display:block!important}.ops-mid{width:100%!important;max-width:100%!important;margin:0!important;padding:0!important}.preview-wrap{border:none!important;padding:0!important}.preview-canvas{transform:scale(1)!important}}.tooth-chart-editor{font-size:13px}.age-indicator{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#e3f2fd;border-radius:6px;font-size:12px;margin-bottom:12px;color:#1565c0}.age-icon{font-size:16px}.quick-mode-buttons{display:flex;gap:6px;margin-bottom:12px}.quick-btn{flex:1;padding:8px;font-size:12px;font-weight:500;border:2px solid;border-radius:6px;cursor:pointer;transition:all .2s}.quick-btn:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.quick-btn.active{font-weight:600}.quick-mode-hint{padding:8px;background:#fef3c7;border-radius:4px;font-size:12px;text-align:center;margin-bottom:12px;color:#92400e}.chart-type-select{width:100%;padding:8px;font-size:13px;border:1px solid #d1d5db;border-radius:6px;margin-bottom:12px;background:#fff}.tooth-chart-mini{text-align:center;padding:12px;background:#f9fafb;border-radius:6px;border:1px solid #e5e7eb}.jaw-label-mini{font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;margin-bottom:6px;letter-spacing:.5px}.teeth-row-mini{display:flex;justify-content:center;gap:2px;margin-bottom:12px;flex-wrap:wrap}.tooth-btn{width:24px;height:32px;font-size:9px;font-weight:700;border:2px solid;border-radius:4px;cursor:pointer;transition:all .15s;padding:0}.tooth-btn:hover{transform:scale(1.1);box-shadow:0 2px 4px #00000026;z-index:10}.tooth-btn:active{transform:scale(.95)}.tooth-btn.empty{background:#fff;border-color:#d1d5db;color:#9ca3af}.tooth-summary{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#e8f5e9;border-radius:6px;font-size:12px;margin-top:12px;color:#2e7d32}.clear-btn{font-size:11px;padding:4px 8px;background:#fff;border:1px solid #d1d5db;border-radius:4px;cursor:pointer;transition:background .2s}.clear-btn:hover{background:#f3f4f6}.marked-teeth-details{margin-top:12px;font-size:12px}.marked-teeth-details summary{cursor:pointer;color:#2563eb;font-weight:500;padding:4px 0;-webkit-user-select:none;user-select:none}.marked-teeth-details summary:hover{text-decoration:underline}.marked-teeth-list{margin-top:8px;border-top:1px solid #e5e7eb;padding-top:8px}.marked-tooth-item{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid #f3f4f6}.marked-tooth-item:last-child{border-bottom:none}.status-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;color:#fff}.remove-btn{color:#dc2626;font-size:14px;font-weight:700;background:none;border:none;cursor:pointer;padding:4px 8px;transition:color .2s}.remove-btn:hover{color:#991b1b}
