:root{--bg: #f4f1ea;--panel: #fffdf9;--line: rgba(16, 34, 36, .1);--ink: #132527;--muted: #617173;--green: #008685;--green-dark: #0d5c5e;--orange: #f3941f;--shadow: 0 18px 50px rgba(14, 30, 30, .1);font-family:Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:linear-gradient(180deg,#f8f4ed,#eef6f5);color:var(--ink)}button,input{font:inherit}.page{max-width:1400px;margin:0 auto;padding:28px}.hero{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px}.hero-brand{display:flex;gap:16px;align-items:center}.hero-logo{width:108px;height:108px;padding:8px;border-radius:18px;background:#fff;box-shadow:var(--shadow)}.eyebrow{margin:0 0 6px;color:var(--green-dark);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.hero h1,.empty-state h2{margin:0;font-family:Georgia,serif}.hero-copy{margin:6px 0 0;color:var(--muted)}.hero-subtitle{margin:6px 0 0;color:var(--green-dark);font-weight:700}.health{padding:10px 14px;border-radius:999px;font-weight:600;background:#fff;box-shadow:var(--shadow)}.health-ok{color:var(--green-dark)}.health-error{color:#9d3a1f}.onepage-grid{display:grid;grid-template-columns:360px minmax(0,1fr);gap:20px}.controls-card,.workspace-card{background:var(--panel);border:1px solid rgba(255,255,255,.8);border-radius:24px;box-shadow:var(--shadow)}.controls-card{padding:20px}.controls-block+.controls-block{margin-top:18px}.block-label{display:block;margin-bottom:10px;font-size:.94rem;font-weight:700}.button-row{display:grid;gap:10px}.button{position:relative;display:inline-flex;justify-content:center;align-items:center;gap:8px;border:0;border-radius:14px;padding:13px 16px;cursor:pointer;text-align:center}.button input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.button-soft{background:#00868514;color:var(--green-dark)}.button-primary{background:linear-gradient(135deg,var(--orange),#d67c15);color:#fff}.segmented{display:flex;gap:10px;flex-wrap:wrap}.segment{border:0;border-radius:14px;padding:12px 15px;background:#00868514;color:var(--green-dark);cursor:pointer}.segment-active{background:var(--orange);color:#fff}.distance-field,.zoom-control{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:10px 12px}.advanced-block{border-top:1px solid var(--line);padding-top:18px}.advanced-toggle{width:100%;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:#fff;color:var(--ink);cursor:pointer;font-weight:700;text-align:left}.advanced-toggle-open{border-color:#f3941f80;background:#f3941f14}.advanced-panel{margin-top:14px}.advanced-field{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:10px 12px}.advanced-field+.block-label{margin-top:14px}.advanced-field input{flex:1;accent-color:var(--orange)}.distance-field input{width:100px;border:0;outline:none}.zoom-control input{flex:1;accent-color:var(--orange)}.error-banner{margin-top:16px;border-radius:14px;background:#fff0ec;color:#9d3a1f;padding:12px 14px}.run-button{width:100%;margin-top:18px}.inline-disclaimer{margin-top:14px;padding:14px 16px;border-radius:16px;background:#f3941f1a;border:1px solid rgba(243,148,31,.24);color:var(--ink)}.inline-disclaimer-title{margin-bottom:8px;color:#9d5b10;font-size:.95rem;font-weight:800}.inline-disclaimer p{margin:0;font-size:.88rem;line-height:1.45}.inline-disclaimer p+p{margin-top:8px}.workspace-card{min-height:720px;padding:18px}.analysis-stage{height:100%;overflow:auto;overscroll-behavior:contain;border-radius:18px;background:#f5f9f8;padding:18px}.image-frame{position:relative;width:min(100%,860px);margin:0 auto;transform-origin:center top;touch-action:none;user-select:none;-webkit-user-select:none}.analysis-image{display:block;width:100%;height:auto;border-radius:20px;box-shadow:0 18px 40px #06171729;pointer-events:none}.selection-square{position:absolute;border:3px solid rgba(243,148,31,.95);background:#f3941f2e;border-radius:14px;cursor:grab;touch-action:none}.anchor-point{position:absolute;width:20px;height:20px;margin-left:-10px;margin-top:-10px;border:3px solid #fff;border-radius:999px;background:#008685e0;box-shadow:0 10px 20px #051a1a33;cursor:grab;touch-action:none}.measure-line{position:absolute;height:4px;margin-top:-2px;transform-origin:left center;background:linear-gradient(90deg,#008685f2,#f3941ff2)}.empty-state{display:grid;place-items:center;height:100%;text-align:center;color:var(--muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;background:#0a1414b3}.modal-card{width:min(92vw,900px);border-radius:24px;background:#0c1717f0;padding:18px}.modal-stage{position:relative;overflow:hidden;border-radius:18px}.disclaimer-icon{position:absolute;top:14px;right:14px;z-index:3;display:inline-flex;align-items:center;gap:8px;min-height:46px;border:0;border-radius:999px;padding:0 14px;background:#0c1717b8;box-shadow:0 10px 24px #0514143d}.disclaimer-icon-mark{color:#f3c11f;font-size:1.9rem;line-height:1}.disclaimer-icon-label{color:#fff;font-size:.92rem;font-weight:700;letter-spacing:.01em}.disclaimer-panel{position:absolute;right:14px;bottom:14px;z-index:2;width:min(420px,calc(100% - 28px));padding:16px 18px;border-radius:18px;background:#fffdf9f5;color:var(--ink);box-shadow:0 18px 40px #05141447}.disclaimer-panel h3{margin:0 0 10px;font-size:1rem}.disclaimer-panel p{margin:0;font-size:.92rem;line-height:1.45}.disclaimer-panel p+p{margin-top:10px}.camera-stage{overflow:hidden;border-radius:18px;background:#000}.camera-video{display:block;width:100%;max-height:70vh;object-fit:cover}.modal-image{display:block;width:100%;max-height:70vh;object-fit:contain;margin:0 auto}.scan-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#05141452}.scan-bar{position:absolute;left:10%;right:10%;height:3px;background:linear-gradient(90deg,transparent,#7dffec,transparent);box-shadow:0 0 30px #7dffec;animation:scan 1.8s linear infinite}.scan-copy{padding:10px 14px;border-radius:999px;color:#efffff;background:#00868573;text-transform:uppercase;font-size:.78rem}.modal-actions{display:flex;justify-content:flex-end;padding-top:14px}@keyframes scan{0%{top:10%}50%{top:88%}to{top:10%}}@media (max-width: 1024px){.onepage-grid{grid-template-columns:1fr}.workspace-card{min-height:560px}}@media (max-width: 720px){.page{padding:16px}.hero{flex-direction:column}.hero-brand{align-items:flex-start}}
