:root{color:#1f1f1f;background:#f6f6f6;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}button,input{font:inherit}.page{min-height:100vh;max-width:520px;margin:0 auto;padding:14px 14px max(18px,env(safe-area-inset-bottom))}.topbar{display:grid;grid-template-columns:72px 1fr 72px;align-items:center;min-height:52px}.topbar div{text-align:center}.topbar h1{margin:0;font-size:18px;line-height:24px}.topbar p{margin:2px 0 0;color:#777;font-size:12px}.ghost-button{border:0;background:transparent;color:#555;padding:8px 0}.ghost-button:disabled{visibility:hidden}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:12px 0 14px}.step{display:grid;justify-items:center;gap:6px;color:#9a9a9a;font-size:11px}.step span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#e8e8e8;color:#777;font-size:12px}.step strong{font-weight:500}.step.active,.step.done{color:#ff5000}.step.active span,.step.done span{background:#ff5000;color:#ffffffd9}.panel{background:#fff;border-radius:8px;padding:16px;box-shadow:0 1px 8px #0000000a}.upload-box{position:relative}.upload-box input{position:absolute;opacity:0;pointer-events:none}.upload-box label{display:grid;place-items:center;min-height:320px;border:1px dashed #d8d8d8;border-radius:8px;background:#fafafa;text-align:center;padding:20px}.upload-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;margin-bottom:12px;background:#fff0e8;color:#ff5000;font-size:34px;line-height:1}.upload-box strong{font-size:18px}.upload-box small{display:block;margin-top:8px;color:#777;font-size:13px}.notice{margin:14px 0 0;color:#777;font-size:13px;line-height:1.6}.fit-panel{display:grid;gap:12px}.hint{display:grid;gap:4px;font-size:14px}.hint span{color:#777;font-size:12px}.photo-stage{position:relative;width:100%;aspect-ratio:1 / 1;min-height:0;max-height:none;overflow:auto;border-radius:8px;background:#111;touch-action:none;-webkit-overflow-scrolling:touch}.photo-content{position:relative;min-width:100%;margin:0 auto}.photo-stage img{display:block;width:100%;height:auto;-webkit-user-select:none;user-select:none;pointer-events:none}.pupil-point{position:absolute;display:grid;place-items:center;width:48px;height:48px;padding:0;border:2px solid white;border-radius:50%;background:#ff50004d;color:#ffffffdb;box-shadow:0 2px 10px #00000052;touch-action:none;font-size:15px;font-weight:700}.pupil-point:before{content:"";position:absolute;left:50%;top:-28px;width:42px;height:42px;border:1px solid rgba(255,255,255,.92);border-radius:50%;background:linear-gradient(#ff5000f2,#ff5000f2) center / 2px 42px no-repeat,linear-gradient(90deg,#ff5000f2,#ff5000f2) center / 42px 2px no-repeat;box-shadow:0 1px 8px #00000059;transform:translate(-50%,-50%);pointer-events:none}.pupil-point:after{content:"";position:absolute;left:50%;top:-28px;width:7px;height:7px;border-radius:50%;background:#ff5000f2;transform:translate(-50%,-50%);pointer-events:none}.field{display:grid;gap:10px}.field span{font-weight:600}.field input{width:100%;height:52px;border:1px solid #ddd;border-radius:8px;padding:0 14px;font-size:20px}.measure-help{margin-top:14px;border-radius:8px;background:#fafafa;padding:12px;color:#555;font-size:13px;line-height:1.6}.measure-help summary{color:#ff5000;font-weight:600}.primary-button{width:100%;min-height:48px;border:0;border-radius:8px;background:#ff5000;color:#fff;font-weight:700}.primary-button:disabled{background:#d7d7d7}.secondary-button{width:100%;min-height:44px;border:1px solid #ff5000;border-radius:8px;background:#fff7f2;color:#ff5000;font-weight:700}.secondary-button:disabled{border-color:#ddd;background:#f7f7f7;color:#999}.ghost-link{min-height:36px;border:0;background:transparent;color:#666}.result-actions{display:grid;gap:8px}.ai-box{border-radius:8px;background:#fff7f2;color:#8a3a00;padding:12px;font-size:13px;line-height:1.6}.ai-box.loading{color:#666;background:#f7f7f7}.ai-result{display:grid;gap:10px}.ai-result h2{margin:0;font-size:15px}.result-panel{display:grid;gap:14px}.result-frame{display:grid;place-items:center;overflow:hidden;border-radius:8px;background:#eee}.result-frame img{display:block;width:100%}.specs{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:0}.specs div{border-radius:8px;background:#fafafa;padding:12px}.specs dt{margin-bottom:4px;color:#777;font-size:12px}.specs dd{margin:0;font-weight:700}
