:root{font-family:Segoe UI,Inter,system-ui,sans-serif;color:#17253b;background:#f2f5fa;line-height:1.5;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #174caa;background:#174caa;color:#fff;border-radius:9px;padding:.68rem 1rem;font-weight:650;min-height:44px;touch-action:manipulation}button:hover:not(:disabled){background:#123f8e}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:#fff;color:#174caa}button.selected{background:#dbe9ff;color:#123f8e}button:focus-visible,input:focus-visible,select:focus-visible,canvas:focus-visible{outline:3px solid #ffac2c;outline-offset:3px}a{color:#174caa}.app{max-width:1100px;margin:auto;padding:2rem max(1.25rem,env(safe-area-inset-right)) max(3rem,env(safe-area-inset-bottom)) max(1.25rem,env(safe-area-inset-left));overflow-wrap:anywhere}.hero{margin-bottom:1.4rem}.hero h1{font-size:clamp(2rem,4vw,3rem);letter-spacing:-.035em;line-height:1.12;margin:.5rem 0}.hero p{font-size:1.08rem;max-width:690px;color:#44536a;margin:.5rem 0}.eyebrow{font-size:.75rem;letter-spacing:.16em;font-weight:750;color:#1550a6}.notice{background:#fff6df;color:#543d0b;border:1px solid #ead298;padding:1rem 1.15rem;border-radius:12px;margin-bottom:1.25rem}.workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,1fr);gap:1.25rem;align-items:start}.panel{min-width:0;background:#fff;border:1px solid #dce4ed;border-radius:15px;padding:1.35rem;box-shadow:0 3px 15px #243d5b0a}h2{font-size:1.13rem;margin:.1rem 0 1rem}.framing{text-align:left;border-top:1px solid #e5ebf1;padding-top:1rem;margin-top:1rem}.field{display:block;font-weight:650;margin:1.15rem 0 .38rem}input[type=file],select{min-width:0;max-width:100%;width:100%;min-height:44px;font-size:1rem;padding:.65rem;border:1px solid #9cacc1;border-radius:8px;background:#fff;color:#17253b}input[type=range]{width:100%;height:44px;margin:0;accent-color:#174caa}.helper{color:#46566d;font-size:.91rem;margin:.8rem 0}.marker-buttons,.actions{display:flex;flex-wrap:wrap;gap:.65rem}.measurement{background:#edf3fc;padding:.8rem 1rem;border-radius:9px}.measurement strong{font-size:1.15rem}.measurement small{display:block;color:#40506a;margin-top:.25rem}.preview-panel{text-align:center}.preview-header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem 1rem;align-items:baseline;text-align:left;margin-bottom:1rem}.preview-header h2{margin-bottom:0}.preview-header span{font-size:.82rem;color:#58667b}.photo-preview{display:block;width:min(100%,350px);height:auto;margin:0 auto;background:#e1e7ec;border:1px solid #8697ab;cursor:grab;touch-action:none}.photo-preview:active{cursor:grabbing}.photo-preview.marking{cursor:crosshair}.empty-preview{width:min(100%,350px);aspect-ratio:7 / 9;background:#e8eef6;border:2px dashed #aebcd0;border-radius:8px;display:grid;place-items:center;padding:2rem;color:#566981;margin:auto}.preview-us .empty-preview{aspect-ratio:1}.review{margin-top:1.25rem}.alert{border-radius:9px;padding:.85rem 1rem;background:#fff0eb;border:1px solid #e8aa91;color:#783116}.alert ul{padding-left:1.35rem;margin:.5rem 0 0}.alert li+li{margin-top:.3rem}.next-steps{background:#edf3fc;border:1px solid #cbdcf5;border-radius:9px;padding:.8rem 1rem;margin:1rem 0}.next-steps ul{margin:.4rem 0 0;padding-left:1.35rem}.next-steps li+li{margin-top:.2rem}.check{display:flex;align-items:flex-start;gap:.7rem;min-height:44px;margin:1rem 0;padding:.5rem 0;max-width:850px;cursor:pointer}.check input{flex:none;width:24px;height:24px;margin:0;accent-color:#174caa}.actions{margin:1.15rem 0}footer{margin-top:1.5rem;font-size:.85rem;color:#566981}@media(max-width:780px),(max-width:950px)and (max-height:500px){.app{padding:max(1.25rem,env(safe-area-inset-top)) max(.8rem,env(safe-area-inset-right)) max(2rem,env(safe-area-inset-bottom)) max(.8rem,env(safe-area-inset-left))}.workspace{grid-template-columns:1fr}.panel{padding:1rem}.photo-preview,.empty-preview{width:min(100%,350px,46svh)}.preview-us .photo-preview,.preview-us .empty-preview{width:min(100%,350px,60svh)}.marker-buttons button{flex:1 1 130px}.actions button{flex:1 1 100%}}
