:root{--bg:#10110e;--panel:#171914;--panel-strong:#20231c;--line:#34382d;--line-soft:#272a22;--text:#f4f0e8;--muted:#b8b2a5;--quiet:#817b70;--green:#9bec9b;--teal:#72dfc9;--amber:#f0d46a;--coral:#ff9b78;--black:#080907}*{box-sizing:border-box}html,body{min-height:100%}body{background:var(--bg);color:var(--text);letter-spacing:0;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.workbench{background:linear-gradient(#ffffff06 1px, transparent 1px), linear-gradient(90deg, #ffffff05 1px, transparent 1px), var(--bg);background-size:34px 34px;grid-template-columns:312px minmax(0,1fr) 332px;min-height:100vh;display:grid}.panel{background:color-mix(in srgb, var(--panel), #000 8%);border-color:var(--line-soft);border-style:solid;min-width:0}.left-panel{border-width:0 1px 0 0;padding:20px}.right-panel{border-width:0 0 0 1px;padding:20px}.brand{align-items:center;gap:12px;margin-bottom:22px;display:flex}.brand-mark,.status-light{color:var(--green);background:#20291f;border:1px solid #3f5c38;border-radius:8px;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex}.brand p,.result-header p,.stage-toolbar p{color:var(--text);margin:0;font-size:15px;font-weight:750;line-height:1.2}.brand span,.result-header span,.stage-toolbar p,.sample small,.drop-zone span,.field span,.stat-grid span,.implant-list span,.score-block span{color:var(--muted)}.brand span,.result-header span{margin-top:3px;font-size:12px;display:block}.panel-section{border-top:1px solid var(--line-soft);padding:18px 0}.panel-section.compact{padding:16px 0}.section-title{color:var(--text);align-items:center;gap:8px;margin-bottom:12px;font-size:13px;font-weight:750;display:flex}.section-title svg{color:var(--amber)}.drop-zone{color:var(--text);text-align:center;background:#20231c;border:1px dashed #59604e;border-radius:8px;place-items:center;gap:7px;width:100%;min-height:116px;padding:16px;display:grid}.drop-zone:hover{border-color:var(--green);background:#25291f}.drop-zone strong{overflow-wrap:anywhere;max-width:100%;font-size:14px}.drop-zone span{font-size:12px;line-height:1.35}.sample-list{gap:8px;margin-top:12px;display:grid}.sample{color:var(--text);text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:10px;padding:7px;display:grid}.sample:hover,.sample.active{background:#20231c;border-color:#3b4133}.sample img{aspect-ratio:1.2;object-fit:cover;border-radius:6px;width:54px;display:block}.sample strong,.sample small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.sample strong{font-size:13px}.sample small{margin-top:3px;font-size:11px}.field{gap:8px;margin-bottom:14px;display:grid}.field>span{font-size:12px;font-weight:700}select,textarea,.number-field{border:1px solid var(--line);color:var(--text);background:#11130f;border-radius:8px;width:100%}select{appearance:none;min-height:42px;padding:0 12px}.number-field{grid-template-columns:minmax(0,1fr) auto;align-items:center;min-height:42px;display:grid;overflow:hidden}.number-field input{color:var(--text);background:0 0;border:0;outline:none;min-width:0;padding:0 12px}.number-field span{border-left:1px solid var(--line);color:var(--muted);padding:0 12px;font-size:12px}.segmented{border:1px solid var(--line);background:#11130f;border-radius:8px;grid-template-columns:repeat(3,1fr);padding:3px;display:grid}.segmented button{color:var(--muted);text-transform:capitalize;background:0 0;border:0;border-radius:6px;min-height:32px;font-size:12px}.segmented button.active{color:var(--green);background:#2d3727}textarea{resize:vertical;outline:none;min-height:108px;padding:12px}.primary-action{background:var(--green);color:#10140f;border:0;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:42px;margin-top:10px;font-weight:800;display:inline-flex}.stage{grid-template-rows:auto minmax(0,1fr);min-width:0;padding:18px;display:grid}.stage-toolbar{justify-content:space-between;align-items:center;gap:16px;min-width:0;margin-bottom:14px;display:flex}.stage-toolbar h1{overflow-wrap:anywhere;margin:3px 0 0;font-size:22px;line-height:1.1}.stage-toolbar p{font-size:12px}.tool-buttons{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.icon-button{border:1px solid var(--line);color:var(--muted);background:#1a1d17;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.icon-button:hover,.icon-button.active{color:var(--green);border-color:#536948}.viewer{border:1px solid var(--line);background:#070806;border-radius:8px;justify-content:center;align-items:center;min-height:0;padding:14px;display:flex;position:relative;overflow:hidden}.film{background:var(--black);border-radius:6px;width:100%;max-width:100%;max-height:calc(100vh - 120px);position:relative;overflow:hidden;box-shadow:0 18px 70px #00000061}.film img{object-fit:contain;width:100%;height:100%;display:block}.overlay{pointer-events:none;position:absolute;inset:0}.landmarks line{stroke:#f0d46aa3;stroke-dasharray:12 8;stroke-width:2px}.marker-ring{fill:#f0d46a1f;stroke:var(--amber);stroke-width:4px}.dot{fill:var(--amber)}.implant .cup{fill:#72dfc914;stroke:var(--teal);stroke-width:5px}.implant .head{fill:#9bec9b29;stroke:var(--green);stroke-width:4px}.implant .neck{stroke:var(--green);stroke-linecap:round;stroke-width:10px}.implant .stem{fill:#9bec9b1a;stroke:var(--green);stroke-linejoin:round;stroke-width:5px}.implant .centerline{stroke:#ffffff94;stroke-dasharray:10 10;stroke-width:2px}.measurements text{fill:var(--amber);paint-order:stroke;stroke:#000000b8;stroke-width:5px;font-size:20px;font-weight:800}.viewer.analyzing:after{content:"";z-index:4;background:linear-gradient(90deg,#0000,#9bec9bd6,#0000);height:2px;animation:1.25s ease-in-out infinite scanline;position:absolute;top:24%;left:14px;right:14px}.viewer.analyzing:before{content:"";z-index:4;background:linear-gradient(#0000,#72dfc96b,#0000);width:2px;animation:1.65s ease-in-out infinite scan-column;position:absolute;top:14px;bottom:14px}.analysis-layer{pointer-events:none;z-index:5;position:absolute;inset:0}.analysis-layer:before{content:"";opacity:.6;background-image:linear-gradient(#9bec9b21 1px,#0000 1px),linear-gradient(90deg,#9bec9b1a 1px,#0000 1px);background-size:34px 34px;animation:1.2s ease-in-out infinite grid-pulse;position:absolute;inset:0}.analysis-reticle{border:1px solid #f0d46ae0;border-radius:8px;animation:1.45s ease-in-out infinite reticle-lock;position:absolute;inset:12%}.analysis-reticle:before,.analysis-reticle:after{content:"";background:#f0d46acc;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.analysis-reticle:before{width:100%;height:1px}.analysis-reticle:after{width:1px;height:100%}.analysis-hud{background:#080907d1;border:1px solid #9bec9b5c;border-radius:8px;min-width:min(390px,100% - 36px);max-width:min(520px,100% - 36px);padding:12px;position:absolute;top:16px;left:50%;transform:translate(-50%);box-shadow:0 16px 44px #00000061}.analysis-badge{color:var(--green);justify-content:center;align-items:center;gap:8px;min-height:26px;font-size:13px;font-weight:850;display:flex}.analysis-badge svg{animation:.9s ease-in-out infinite spark-step}.analysis-progress{background:#ffffff1a;border-radius:999px;height:5px;margin-top:10px;overflow:hidden}.analysis-progress span{background:linear-gradient(90deg, var(--green), var(--teal), var(--amber));border-radius:inherit;height:100%;transition:width .26s;display:block}.analysis-checks{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:10px;display:grid}.analysis-checks span{color:#f4f0e89e;text-overflow:ellipsis;white-space:nowrap;background:#ffffff0f;border:1px solid #ffffff14;border-radius:6px;min-height:28px;padding:7px 8px;font-size:11px;font-weight:750;line-height:1.2;overflow:hidden}.analysis-checks span.active{color:var(--green);border-color:#9bec9b8c;animation:.8s ease-in-out infinite active-step}.analysis-checks span.done{color:#f4f0e8e6;background:#9bec9b21;border-color:#9bec9b3d}@keyframes scanline{0%{opacity:0;top:20%}20%,80%{opacity:1}to{opacity:0;top:78%}}@keyframes scan-column{0%{opacity:0;left:20%}20%,80%{opacity:1}to{opacity:0;left:80%}}@keyframes grid-pulse{0%,to{opacity:.35}50%{opacity:.74}}@keyframes reticle-lock{0%,to{opacity:.42;transform:scale(.985)}50%{opacity:.92;transform:scale(1)}}@keyframes spark-step{0%,to{transform:rotate(0)scale(1)}50%{transform:rotate(10deg)scale(1.08)}}@keyframes active-step{0%,to{background:#9bec9b14}50%{background:#9bec9b2e}}.result-header{align-items:center;gap:12px;margin-bottom:18px;display:flex}.score-block{background:#20231c;border:1px solid #3b4133;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:4px;padding:16px;display:flex}.score-block strong{margin-top:4px;font-size:34px;line-height:1;display:block}.score-block svg{color:var(--coral)}.stat-grid{grid-template-columns:minmax(0,1fr) auto;gap:10px 12px;display:grid}.stat-grid span,.implant-list span,.score-block span{font-size:12px}.stat-grid strong,.implant-list strong{color:var(--text);text-align:right;font-size:13px}.implant-list{gap:9px;display:grid}.implant-list div{border-bottom:1px solid var(--line-soft);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding-bottom:9px;display:grid}.implant-list div:last-child{border-bottom:0;padding-bottom:0}.run-log{color:var(--muted);gap:9px;margin:0;padding-left:20px;font-size:13px;line-height:1.35;display:grid}.sr-only{width:1px;height:1px;position:absolute;top:auto;left:-10000px;overflow:hidden}@media (max-width:1160px){.workbench{grid-template-columns:292px minmax(0,1fr)}.right-panel{border-width:1px 0 0;grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 20px;display:grid}.result-header,.score-block{align-self:start}}@media (max-width:840px){.workbench{flex-direction:column;display:flex}.left-panel,.right-panel{border-width:0 0 1px}.left-panel{order:2}.right-panel{order:3;display:block}.stage{order:1;min-height:70vh}.stage-toolbar{flex-direction:column;align-items:flex-start}.tool-buttons{justify-content:flex-start}.film{max-height:72vh}}@media (max-width:520px){.left-panel,.right-panel,.stage{padding:14px}.viewer{padding:8px}.stage-toolbar h1{font-size:19px}.measurements text{font-size:24px}}
