body.cai-open{overflow:hidden}
.cai-overlay{position:fixed;inset:0;z-index:6200;display:flex;align-items:center;justify-content:center;padding:22px;background:rgba(10,27,42,.56);backdrop-filter:blur(5px)}
.cai-dialog{display:flex;flex-direction:column;width:min(980px,100%);max-height:min(920px,94dvh);overflow:hidden;border:1px solid rgba(255,255,255,.62);border-radius:20px;background:#f5f8fa;box-shadow:0 28px 80px rgba(10,27,42,.28)}
.cai-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:22px 26px 20px;border-bottom:1px solid #cddbe4;background:linear-gradient(125deg,#0a3a63,#1d72c9);color:#fff}
.cai-eyebrow{display:block;margin-bottom:6px;color:rgba(255,255,255,.72);font-size:10px;font-weight:800;letter-spacing:.65px;text-transform:uppercase}
.cai-header h2{margin:0;font:800 22px/1.15 'Montserrat',sans-serif}
.cai-header p{margin:6px 0 0;color:rgba(255,255,255,.78);font-size:12px}
.cai-close{display:grid;width:36px;height:36px;flex:0 0 36px;place-items:center;border:1px solid rgba(255,255,255,.26);border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font:400 24px/1 sans-serif;cursor:pointer}
.cai-close:hover{background:rgba(255,255,255,.22)}
.cai-body{padding:20px 22px 30px;overflow-y:auto;overscroll-behavior:contain}
.cai-section{margin-bottom:16px;padding:18px;border:1px solid #d5e0e7;border-radius:14px;background:#fff;box-shadow:0 3px 12px rgba(23,63,88,.045)}
.cai-section-title{display:flex;align-items:center;gap:10px;margin-bottom:15px}
.cai-section-title>b{display:grid;width:27px;height:27px;flex:0 0 27px;place-items:center;border-radius:8px;background:#e3eff8;color:#0f4c81;font:800 12px/1 'Montserrat',sans-serif}
.cai-section-title strong,.cai-section-title span{display:block}
.cai-section-title strong{color:#173f58;font:800 14px/1.2 'Montserrat',sans-serif}
.cai-section-title span{margin-top:2px;color:#6d8190;font-size:11px}
.cai-profile-ready{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 15px;border:1px solid #b9d5ca;border-radius:11px;background:#f2faf7}
.cai-profile-ready span,.cai-profile-ready strong,.cai-profile-ready small{display:block}
.cai-profile-ready span{color:#4e6a5f;font-size:10px;font-weight:800;letter-spacing:.4px;text-transform:uppercase}
.cai-profile-ready strong{margin-top:4px;color:#164f3d;font:800 15px/1.2 'Montserrat',sans-serif}
.cai-profile-ready small{margin-top:4px;color:#5d756c;font-size:11px;line-height:1.4}
.cai-profile-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;padding:14px;border:1px solid #d8e3ea;border-radius:11px;background:#f8fafb}
.cai-span-2{grid-column:span 2}.cai-span-3{grid-column:span 3}
.cai-field{min-width:0}
.cai-field label,.cai-teeth-label{display:block;margin:0 0 5px 1px;color:#617586;font-size:10px;font-weight:800;letter-spacing:.35px;text-transform:uppercase}
.cai-field input,.cai-field select,.cai-field textarea{width:100%;min-height:39px;padding:8px 10px;border:1px solid #cbd8e1;border-radius:9px;background:#fff;color:#1d3445;font:400 12.5px/1.35 'Roboto',sans-serif;outline:none}
.cai-field textarea{resize:vertical}
.cai-field input:focus,.cai-field select:focus,.cai-field textarea:focus{border-color:#1d72c9;box-shadow:0 0 0 3px rgba(29,114,201,.09)}
.cai-profile-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:2px}
.cai-profile-actions small{color:#6b7f8e;font-size:11px;line-height:1.4}
.cai-photo-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(230px,.8fr);gap:14px}
.cai-drop{display:block;min-height:230px;overflow:hidden;border:1.5px dashed #9fb7c7;border-radius:12px;background:#f4f8fb;cursor:pointer}
.cai-drop input{display:none}
#cai-photo-preview{display:flex;height:100%;min-height:230px;align-items:center;justify-content:center;flex-direction:column;gap:6px;color:#49677b;text-align:center}
#cai-photo-preview img{width:100%;height:230px;object-fit:contain;background:#12202a}
.cai-camera-icon{font-size:26px}
#cai-photo-preview strong{font:800 14px/1.2 'Montserrat',sans-serif}
#cai-photo-preview small{color:#768a99;font-size:11px}
.cai-photo-change{display:block;width:100%;padding:7px;background:#e8f1f7;color:#0f4c81;font-size:11px;font-weight:800;text-align:center}
.cai-capture-guide{padding:15px;border:1px solid #d7e2e9;border-radius:12px;background:#f9fbfc}
.cai-capture-guide>strong{color:#244c67;font:800 13px/1.2 'Montserrat',sans-serif}
.cai-capture-guide ul{margin:10px 0 13px;padding-left:18px;color:#617586;font-size:11.5px;line-height:1.6}
.cai-profile-mini{padding:10px;border-radius:8px;background:#e9f2f8;color:#315c78;font-size:10.5px;line-height:1.45}
.cai-preselection{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.cai-odontogram{display:grid;grid-template-columns:repeat(17,minmax(34px,1fr));gap:4px;padding:10px 8px;overflow-x:auto;border:1px solid #d9e3e9;border-radius:11px;background:#f8fafb}
.cai-midline{width:2px;border-radius:99px;background:#b8cad6}
.cai-tooth{display:flex;min-width:34px;height:54px;align-items:center;justify-content:center;flex-direction:column;gap:1px;border:1px solid #cfdae2;border-radius:8px;background:#fff;color:#5f7280;cursor:pointer}
.cai-tooth span{font-size:17px;filter:grayscale(.8);opacity:.78}
.cai-tooth b{font-size:9px}
.cai-tooth:hover{border-color:#83afd0;background:#f1f7fb}
.cai-tooth.is-selected{border-color:#1d72c9;background:#e4f0fa;color:#0f4c81;box-shadow:inset 0 0 0 1px #1d72c9}
.cai-tooth.is-selected span{filter:none;opacity:1}
.cai-teeth-count{min-height:16px;margin:6px 0 12px;color:#647988;font-size:10.5px}
.cai-analyze{min-width:190px}
.cai-result-section{border-color:#b9d0df;background:linear-gradient(135deg,#fff,#f6fafc)}
.cai-result-empty{display:flex;min-height:96px;align-items:center;justify-content:center;flex-direction:column;gap:5px;border:1px dashed #c7d6e0;border-radius:11px;background:#f8fafb;color:#738795;text-align:center}
.cai-result-empty strong{color:#466378;font:800 13px/1.2 'Montserrat',sans-serif}
.cai-result-empty span{max-width:480px;font-size:11px;line-height:1.45}
.cai-analysis-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:10px}
.cai-analysis-head span,.cai-analysis-head strong{display:block}
.cai-analysis-head span{color:#637888;font-size:10px;font-weight:800;letter-spacing:.35px;text-transform:uppercase}
.cai-analysis-head strong{margin-top:4px;color:#173f58;font:800 14px/1.3 'Montserrat',sans-serif}
.cai-confidence{padding:7px 10px;border-radius:9px;background:#e6f2fa;color:#0f4c81;text-align:right;white-space:nowrap}
.cai-confidence small,.cai-confidence b{display:block}.cai-confidence small{font-size:9px}.cai-confidence b{font:800 17px/1.15 'Montserrat',sans-serif}
.cai-quality{margin-bottom:12px;padding:9px 11px;border-radius:9px;font-size:11px;line-height:1.45}
.cai-quality.is-good{border:1px solid #b9ddcf;background:#f2faf7;color:#235b46}
.cai-quality.is-warning{border:1px solid #ecd7aa;background:#fffaf0;color:#805a13}
.cai-final-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.cai-result-foot{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:14px;padding-top:13px;border-top:1px solid #dbe5eb}
.cai-result-foot span{color:#667b8b;font-size:10.5px;line-height:1.45}
.cai-history-section{margin-bottom:0}
.cai-history-empty{padding:12px;border:1px dashed #d1dde5;border-radius:9px;color:#6b7f8e;font-size:11.5px;text-align:center}
.cai-history-card{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(0,1.3fr);gap:14px;padding:11px 12px;border:1px solid #d9e3e9;border-radius:9px;background:#fafcfd}
.cai-history-card+.cai-history-card{margin-top:7px}
.cai-history-card strong,.cai-history-card span{display:block}
.cai-history-card strong{color:#294d65;font:800 12px/1.25 'Montserrat',sans-serif}
.cai-history-card span{margin-top:3px;color:#728694;font-size:10px}
.cai-history-card p{margin:0;color:#4f6676;font-size:11px;line-height:1.45}
@media(max-width:760px){
  .cai-overlay{align-items:flex-end;padding:0}
  .cai-dialog{width:100%;max-height:96dvh;border-radius:18px 18px 0 0}
  .cai-header{padding:18px 17px 16px}.cai-header h2{font-size:19px}
  .cai-body{padding:14px 12px calc(24px + env(safe-area-inset-bottom))}
  .cai-section{padding:14px 12px}
  .cai-profile-form{grid-template-columns:repeat(2,minmax(0,1fr));padding:11px}
  .cai-profile-ready,.cai-result-foot{align-items:stretch;flex-direction:column}
  .cai-profile-ready button,.cai-result-foot button,.cai-analyze{width:100%;min-height:43px}
  .cai-photo-layout{grid-template-columns:minmax(0,1fr)}
  .cai-preselection,.cai-final-grid{grid-template-columns:minmax(0,1fr)}
  .cai-span-3{grid-column:auto}.cai-span-2{grid-column:span 2}
  .cai-odontogram{grid-template-columns:repeat(17,38px)}
  .cai-analysis-head{align-items:stretch;flex-direction:column}.cai-confidence{text-align:left}
  .cai-history-card{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:430px){
  .cai-profile-form{grid-template-columns:minmax(0,1fr)}
  .cai-span-2{grid-column:auto}
  .cai-profile-actions{align-items:stretch;flex-direction:column}
}
