:root{color-scheme:light;--ink:#122e40;--muted:#5c6b76;--paper:#f5f7f8;--line:#dce3e8;--amber:#f4b45c;--blue:#65c8ff;--radius:22px;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;color:var(--ink);background:var(--paper);font-size:16px}*{box-sizing:border-box}body{margin:0}button,input,summary{font:inherit}button,a,input,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);background:white;color:var(--ink);border-radius:11px;min-height:44px;padding:10px 14px;font-weight:650}button:hover{filter:brightness(.96)}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #2b85bf;outline-offset:4px}header{max-width:1160px;margin:auto;padding:26px 30px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-weight:750;font-size:1.05rem}.brand-mark{display:grid;place-items:center;width:36px;height:36px;background:var(--ink);border-radius:11px;color:var(--amber);font-size:1.4rem}.local-badge{font-size:.8rem;color:#376754;border:1px solid #c5d9ce;border-radius:30px;padding:6px 10px;white-space:nowrap}main{max-width:1100px;margin:auto;padding:10px 30px 30px}.intro{margin:20px 0 28px}.eyebrow{font-size:.85rem;font-weight:700;letter-spacing:.08em;margin:0 0 12px}h1{font-size:2.35rem;letter-spacing:-.045em;margin:0 0 12px;line-height:1.4}.intro>p:last-child{color:var(--muted);line-height:1.8;margin:0}.mobile-break{display:none}.workspace{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:26px;align-items:start}.photo-panel{background:#e7edf0;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line)}.stage{position:relative;min-height:510px;display:flex;align-items:center;justify-content:center;background:#172c3a;overflow:hidden}.stage.loaded{min-height:0;display:block}.empty{text-align:center;color:white;padding:42px 20px;width:100%}.scan-symbol{display:grid;place-items:center;border:1px dashed #73909e;border-radius:22px;width:100px;height:120px;margin:0 auto 30px;font-size:3rem;color:var(--amber)}.empty h2{font-size:1.15rem}.empty p{font-size:.95rem;line-height:1.9;color:#c8d5dc}.primary{background:var(--amber);color:#2a2319;border-color:var(--amber);min-height:50px}.empty .primary{display:block;width:85%;max-width:290px;margin:28px auto 8px}.text-button{background:none;color:#e2ebef;border:0}.empty small{display:block;font-size:.8rem;color:#b4c6cf;margin-top:25px}#photo{display:block;width:100%;height:auto}#photo[hidden],[hidden]{display:none!important}#overlay{position:absolute;inset:0;pointer-events:none}.marker{pointer-events:auto;position:absolute;left:0;width:100%;height:44px;min-height:44px;transform:translateY(-50%);border:0;border-radius:0;background:none;padding:0;touch-action:none;color:white;display:flex;align-items:center;z-index:2;filter:none!important}.marker::after{content:"";height:2px;background:currentColor;position:absolute;left:0;right:0;box-shadow:0 1px 3px #0008}.marker span{position:relative;z-index:1;background:var(--ink);border:1px solid currentColor;border-radius:0 8px 8px 0;padding:6px 12px;font-size:.8rem}.marker i{position:absolute;right:12px;width:26px;height:26px;border:2px solid currentColor;border-radius:50%;background:var(--ink);z-index:1}.marker.top,.marker.bottom{color:#c9e4f4}.marker.liquid{color:var(--amber);z-index:3}.marker.selected i{background:currentColor;box-shadow:0 0 0 5px #ffffff25}.marker.selected::after{height:3px}#roi{position:absolute;border-left:1px dashed #fff8;border-right:1px dashed #fff8;background:#ffffff06}.photo-toolbar{display:flex;flex-wrap:wrap;gap:7px;padding:12px}.photo-toolbar button{flex:1;font-size:.8rem;padding:8px;white-space:nowrap}.controls{min-width:0}.result{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:25px 28px}.result .eyebrow{color:var(--muted)}.amount{display:flex;gap:12px;align-items:baseline;margin-top:-8px}.amount #amount{font-size:5rem;font-weight:600;line-height:1.2;letter-spacing:-.055em;font-variant-numeric:tabular-nums}.unit{font-size:1.4rem;font-weight:650}#equivalent{margin:10px 0 22px;font-size:.9rem;color:var(--muted)}.meter{height:8px;border-radius:8px;background:#edf0f2;overflow:hidden}#meter-fill{background:var(--amber);width:0;height:100%;transition:width .15s}.meter-label{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted);margin-top:8px}.result-note{font-size:.8rem;line-height:1.7;margin:16px 0 0;color:var(--muted)}.status{font-size:.875rem;line-height:1.7;background:#e8eef2;border-radius:12px;padding:12px 15px;margin:16px 0}.status.warning{background:#fff0d9;color:#705020}fieldset{padding:0;border:0;margin:22px 0 0;min-width:0}legend{font-weight:750;font-size:1rem}.hint{font-size:.85rem;color:var(--muted);line-height:1.7;margin:8px 0 14px}.line-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.line-tabs button{font-size:.85rem;padding:9px 5px}.line-tabs .active{background:var(--ink);color:white;border-color:var(--ink)}.nudge{display:flex;justify-content:space-between;align-items:center;gap:5px;margin:12px 0}.nudge button{font-size:.85rem}.nudge span{font-size:.8rem;color:var(--muted)}.range-label{font-size:.85rem;display:flex;justify-content:space-between;gap:10px;margin:18px 0 3px}.range-label span{font-size:.75rem;color:var(--muted)}input[type=range]{width:100%;min-height:38px;accent-color:var(--ink);margin:0 0 10px;cursor:pointer}.detect-button{width:100%;display:flex;justify-content:space-between;align-items:center;margin:6px 0 10px}.detect-button span{font-size:.75rem;background:#e8eef2;border-radius:6px;padding:3px 7px}.confirm{width:100%;margin:8px 0 16px}.candidates{display:flex;gap:6px;flex-wrap:wrap}.candidates button{font-size:.8rem;flex:1;padding:8px}.candidates button.active{border-color:#9c6b23;background:#fff0d9}details{border-top:1px solid var(--line);padding-top:15px}summary{font-size:.875rem;cursor:pointer;min-height:40px}.detail-content{font-size:.85rem;line-height:1.8}.detail-content p{color:var(--muted);font-size:.8rem}.detail-content label{display:block}.height-input{display:flex;align-items:center;gap:10px;margin:8px 0}.height-input input{width:110px;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:white}.guide{margin:40px 0 20px;padding-top:26px;border-top:1px solid var(--line)}.guide h2{font-size:1rem;margin:0 0 20px}.guide>div{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.guide p{margin:0;font-size:.85rem;line-height:1.8}.guide b,.guide span{display:block}.guide span{color:var(--muted);margin-top:5px}footer{font-size:.75rem;line-height:1.9;color:var(--muted);padding:20px 0}dialog{width:min(94vw,500px);padding:20px;border:0;border-radius:20px;color:var(--ink)}dialog::backdrop{background:#071725cc}.camera-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.camera-heading h2{font-size:1rem}.viewfinder{position:relative;margin-top:15px;background:#102533;border-radius:12px;overflow:hidden;aspect-ratio:3/4}video{width:100%;height:100%;object-fit:cover}.camera-guide{position:absolute;top:6%;bottom:6%;left:27%;right:27%;border:2px dashed #ffcf8b;border-radius:12px;pointer-events:none}dialog p{font-size:.8rem;line-height:1.7}#shutter{width:100%}@media(max-width:700px){header{padding:18px 16px}.brand{font-size:.9rem;gap:8px}.brand-mark{width:30px;height:30px}.local-badge{font-size:.7rem;padding:5px 7px}main{padding:0 16px 20px}.intro{margin:16px 0 22px}.intro .eyebrow{font-size:.75rem}h1{font-size:1.85rem}.intro>p:last-child{font-size:.875rem}.workspace{grid-template-columns:1fr;gap:16px}.stage{min-height:390px}.stage.loaded{max-width:100%}.empty{padding:28px 15px}.scan-symbol{width:70px;height:85px;font-size:2rem;margin-bottom:20px}.empty h2{font-size:1rem}.empty p{font-size:.85rem}.empty small{margin-top:14px}.result{padding:20px 22px}.amount #amount{font-size:4rem}.controls .result{position:relative}.result .eyebrow{margin-bottom:8px}#equivalent{margin:6px 0 16px}.guide{margin-top:28px}.guide>div{grid-template-columns:1fr;gap:18px}.mobile-break{display:block}.nudge{gap:8px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
