:root{color:#17231a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--green-900:#163f2b;--green-700:#1f6f49;--green-600:#1f8f5f;--green-100:#dceee0;--green-050:#eef7ed;--red-600:#d14343;--gray-900:#202326;--gray-700:#4b5357;--gray-500:#7a858b;--gray-200:#e3e9e2;--gray-100:#f1f5ef;--shadow:0 16px 36px #183c261a;background:#f8fbf7;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html{background:#f8fbf7;min-height:100%}#root{width:100%;min-height:100%}body{min-width:320px;min-height:100%;color:var(--gray-900);background:linear-gradient(#fffffff0,#f8fbf7f5),url("data:image/svg+xml,%3Csvg width='140' height='140' viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%239cc89f' stroke-opacity='.25' stroke-width='4'%3E%3Cellipse cx='70' cy='70' rx='46' ry='58'/%3E%3Cpath d='M44 20c20 20 31 74 13 101M72 12c-12 26-10 80 4 116M96 22c-18 28-22 69-8 98'/%3E%3C/g%3E%3C/svg%3E");margin:0}button,input,select,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}.app-shell{width:100%;max-width:980px;padding:max(18px, env(safe-area-inset-top)) 16px max(26px, env(safe-area-inset-bottom));grid-template-columns:minmax(0,1fr);gap:18px;margin:0 auto;display:grid;overflow-x:hidden}.measure-panel,.result-panel{min-width:0;max-width:100%;box-shadow:var(--shadow);background:#ffffffeb;border:1px solid #1f6f491f;border-radius:8px;padding:20px}.eyebrow,.step{min-height:24px;color:var(--green-700);align-items:center;font-size:12px;font-weight:800;display:inline-flex}h1,h2,h3,p{margin:0}h1{letter-spacing:0;margin-top:4px;font-size:34px;line-height:1.14}h2{letter-spacing:0;font-size:21px;line-height:1.25}h3{font-size:15px;line-height:1.35}.lead{color:var(--gray-700);margin-top:10px;font-size:15px;line-height:1.55}.record-section,.optional-grid,.result-panel{margin-top:18px}.section-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-head.compact{margin-bottom:10px}.state-pill{background:var(--gray-100);color:var(--gray-700);border-radius:999px;flex:none;padding:7px 10px;font-size:12px;font-weight:750}.state-pill.live{color:#b82b2b;background:#fee7e7}.state-pill.done{background:var(--green-100);color:var(--green-700)}.record-button{aspect-ratio:1;color:#fff;touch-action:none;cursor:pointer;background:linear-gradient(145deg,#2fb268,#176943);border:0;border-radius:50%;place-items:center;width:188px;margin:20px auto 14px;display:grid;position:relative;box-shadow:0 18px 40px #1f8f5f42}.record-button:disabled{opacity:.55;cursor:not-allowed}.record-button.recording{background:linear-gradient(145deg,#e14d4d,#aa2424);box-shadow:0 18px 42px #d143434d}.record-ring{aspect-ratio:1;background:#ffffff42;border:9px solid #ffffffb3;border-radius:50%;width:76px}.record-button.recording .record-ring{border-radius:18px;width:64px;animation:1s ease-in-out infinite pulse}.record-text{font-size:14px;font-weight:800;position:absolute;bottom:30px}.record-meter{justify-content:center;align-items:center;gap:4px;height:64px;padding:0 6px;display:flex;overflow:hidden}.record-meter span{background:linear-gradient(#2fb268,#1f6f49);border-radius:999px;width:5px;min-height:8px;transition:height 80ms linear}.record-meta{color:var(--gray-700);flex-wrap:wrap;justify-content:center;gap:8px;font-size:13px;display:flex}.record-meta strong,.record-meta span{background:var(--gray-100);border-radius:999px;align-items:center;min-height:28px;padding:5px 10px;display:inline-flex}.helper-text{color:var(--gray-700);text-align:center;margin-top:10px;font-size:13px;line-height:1.5}.inline-actions{justify-content:center;align-items:center;gap:8px;margin-top:8px;display:flex}.text-button,.slot-actions button{color:var(--green-700);cursor:pointer;background:0 0;border:0;padding:8px;font-size:13px;font-weight:750}.text-button.danger{color:var(--red-600)}.hidden-input{display:none}.image-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;min-width:0;display:grid}.image-slot{min-width:0}.image-button{aspect-ratio:1;background:var(--green-050);cursor:pointer;border:1px solid #1f6f4929;border-radius:8px;width:100%;min-width:0;padding:0;overflow:hidden}.image-button img{object-fit:cover;width:100%;height:100%;display:block}.image-empty{height:100%;color:var(--green-700);display:block;position:relative}.photo-guide{width:100%;height:100%;display:block}.image-empty-copy{text-align:left;background:#ffffffe6;border-radius:6px;gap:2px;max-width:calc(100% - 16px);padding:5px 7px;display:grid;position:absolute;top:8px;left:8px}.image-empty-copy strong{color:var(--green-900);font-size:12px;line-height:1.1}.image-empty-copy small{color:var(--gray-700);font-size:10px;line-height:1.2}.slot-actions{min-width:0;min-height:32px;color:var(--gray-500);justify-content:space-between;align-items:center;gap:4px;font-size:11px;display:flex}.slot-actions span{overflow-wrap:anywhere;min-width:0;line-height:1.25}.weight-field{background:var(--gray-100);border-radius:8px;grid-template-columns:minmax(0,1fr) 120px auto;align-items:center;gap:10px;margin-top:14px;padding:14px;display:grid}.weight-field span{gap:2px;min-width:0;display:grid}.weight-field small{color:var(--gray-500);font-size:12px}.weight-field input,.feedback-form input,.feedback-form select,.feedback-form textarea{border:1px solid var(--gray-200);width:100%;color:var(--gray-900);background:#fff;border-radius:8px;outline:none;padding:11px 12px}.weight-field input:focus,.feedback-form input:focus,.feedback-form select:focus,.feedback-form textarea:focus{border-color:var(--green-600);box-shadow:0 0 0 3px #1f8f5f24}.weight-field em{color:var(--gray-700);font-style:normal}.error-box{color:#a62323;background:#fff1f1;border-radius:8px;margin-top:12px;padding:12px 14px;font-size:14px;line-height:1.45}.analyze-button,.feedback-form button{background:var(--green-600);color:#fff;cursor:pointer;border:0;border-radius:8px;width:100%;min-height:54px;margin-top:14px;font-size:16px;font-weight:850;box-shadow:0 12px 24px #1f8f5f33}.analyze-button:disabled,.feedback-form button:disabled{box-shadow:none;cursor:not-allowed;background:#b9c8b7}.result-panel{gap:12px;scroll-margin-top:14px;display:grid}.result-visual{aspect-ratio:4/3;width:100%;min-width:0;max-width:360px;margin:0 auto}.watermelon-gauge{aspect-ratio:4/3;width:100%;height:100%;display:block}.analysis-wait-page{z-index:40;min-width:320px;padding:max(24px, env(safe-area-inset-top)) 22px max(28px, env(safe-area-inset-bottom));background:linear-gradient(#f9fdf7,#eef7ed),url("data:image/svg+xml,%3Csvg width='140' height='140' viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%239cc89f' stroke-opacity='.18' stroke-width='4'%3E%3Cellipse cx='70' cy='70' rx='46' ry='58'/%3E%3Cpath d='M44 20c20 20 31 74 13 101M72 12c-12 26-10 80 4 116M96 22c-18 28-22 69-8 98'/%3E%3C/g%3E%3C/svg%3E");place-items:center;display:grid;position:fixed;inset:0}.wait-contents{text-align:center;justify-items:center;gap:24px;width:min(100%,420px);display:grid}.wait-watermelon{aspect-ratio:1.22;background:repeating-linear-gradient(92deg,#14542fd1 0 11px,#2fb268f2 11px 26px,#b1de80b8 26px 34px);border:9px solid #174a32;border-radius:50%;width:min(56vw,210px);animation:1.4s ease-in-out infinite wait-melon-breathe;position:relative;overflow:hidden;box-shadow:0 24px 46px #1f6f492e}.wait-watermelon:before{content:"";background:#eeffe575;border:8px solid #ffffff9e;border-radius:50%;position:absolute;inset:18%}.wait-watermelon:after{content:"";background:#ffffff57;border-radius:50%;width:20%;height:12%;position:absolute;top:14%;right:22%;transform:rotate(-22deg)}.wait-watermelon span{aspect-ratio:1;background:#ffffffe0;border-radius:50%;width:7px;animation:1.4s ease-in-out infinite wait-dot;position:absolute;bottom:18px}.wait-watermelon span:first-child{left:calc(50% - 22px)}.wait-watermelon span:nth-child(2){animation-delay:.16s;left:calc(50% - 4px)}.wait-watermelon span:nth-child(3){animation-delay:.32s;left:calc(50% + 14px)}.wait-watermelon.still,.wait-watermelon.still span{animation:none}.wait-copy{gap:7px;display:grid}.wait-copy h2{min-height:58px;color:var(--green-900);word-break:keep-all;place-items:center;font-size:clamp(19px,5.1vw,24px);line-height:1.32;display:grid}.wait-copy p{color:var(--gray-700);font-size:14px}.result-copy{text-align:center}.result-copy h2{min-height:54px;color:var(--green-900);justify-content:center;align-items:baseline;gap:4px;margin-top:2px;font-size:42px;display:flex}.result-score-number{font-size:48px;font-weight:900;line-height:1.05}.result-score-unit{font-size:27px;font-weight:850;line-height:1.1}.result-copy p{color:var(--gray-700);word-break:keep-all;margin-top:6px;line-height:1.5}.photo-correction-strip{background:var(--gray-100);border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:10px;display:grid}.photo-correction-label{color:var(--gray-700);white-space:nowrap;font-size:12px;font-weight:800}.photo-status-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;min-width:0;display:grid}.photo-status-chip{border:1px solid var(--gray-200);min-width:0;min-height:34px;color:var(--gray-900);white-space:nowrap;background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:5px;font-size:12px;font-weight:850;display:inline-flex}.photo-status-chip span{border-radius:50%;place-items:center;width:18px;height:18px;font-size:12px;line-height:1;display:grid}.photo-status-chip.check span{background:var(--green-100);color:var(--green-700)}.photo-status-chip.warn span{color:#9b6717;background:#fbf0d9}.affiliate-cta{gap:8px;display:grid}.affiliate-button{color:#fff;cursor:pointer;word-break:keep-all;background:#2563eb;border:0;border-radius:8px;width:100%;min-height:52px;font-size:15px;font-weight:850;line-height:1.25;box-shadow:0 12px 24px #2563eb2e}.affiliate-button:active{transform:translateY(1px)}.affiliate-disclosure{color:var(--gray-500);text-align:center;word-break:keep-all;font-size:11px;line-height:1.45}.feedback-form{background:var(--gray-100);border-radius:8px;gap:10px;padding:12px;display:grid}.feedback-fields{grid-template-columns:1fr 1fr;gap:10px;display:grid}.feedback-form label{color:var(--gray-700);gap:6px;font-size:13px;font-weight:700;display:grid}.feedback-form textarea{resize:vertical;min-height:84px}@keyframes pulse{0%,to{transform:scale(.95)}50%{transform:scale(1.04)}}@keyframes wait-melon-breathe{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-5px)scale(1.025)}}@keyframes wait-dot{0%,to{opacity:.35;transform:translateY(0)}50%{opacity:1;transform:translateY(-7px)}}@media (width>=840px){.app-shell{grid-template-columns:minmax(0,1fr) 390px;align-items:start;padding-top:34px}.result-panel{margin-top:0;position:sticky;top:24px}}@media (width<=360px){.measure-panel,.result-panel{padding:16px}h1{font-size:30px}.record-button{width:168px}.image-grid{gap:8px}.weight-field{grid-template-columns:minmax(0,1fr) 96px auto}.feedback-fields{grid-template-columns:1fr}}@media (width<=420px){.image-empty-copy{max-width:calc(100% - 12px);padding:4px 6px;top:6px;left:6px}.image-empty-copy small{display:none}}@media (width<=839px){.app-shell{max-width:none;padding-left:clamp(12px,4vw,20px);padding-right:clamp(12px,4vw,20px)}.measure-panel,.result-panel{width:auto;max-width:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.admin-shell{width:min(1180px,100%);padding:max(24px, env(safe-area-inset-top)) 18px max(28px, env(safe-area-inset-bottom));color:#1d2327;margin:0 auto}.admin-header,.admin-login-panel{background:#fffffff0;border:1px solid #dfe6e1;border-radius:8px;box-shadow:0 16px 36px #1e2f2714}.admin-header{justify-content:space-between;align-items:flex-start;gap:16px;padding:20px;display:flex}.admin-login-panel{max-width:520px;margin:10vh auto 0;padding:24px}.admin-kicker{color:#2563eb;text-transform:uppercase;font-size:12px;font-weight:850}.admin-header h1,.admin-login-panel h1{margin-top:4px;font-size:28px}.admin-header p,.admin-login-panel p,.admin-muted{color:#59636a;margin-top:8px;font-size:14px;line-height:1.5}.admin-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.admin-actions button,.admin-login-form button,.admin-tabs button{color:#fff;cursor:pointer;background:#1f6f49;border:0;border-radius:8px;min-height:38px;padding:0 14px;font-size:14px;font-weight:800}.admin-actions button:disabled,.admin-login-form button:disabled{cursor:not-allowed;background:#a9b6ad}.admin-actions .secondary{color:#28323a;background:#eef2f6}.admin-login-form{gap:12px;margin-top:18px;display:grid}.admin-login-form label{color:#3d474e;gap:7px;font-size:13px;font-weight:750;display:grid}.admin-login-form input{color:#1d2327;background:#fff;border:1px solid #d9e2dc;border-radius:8px;width:100%;padding:12px}.admin-login-form input:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb24}.admin-error,.admin-success,.admin-empty{border-radius:8px;margin-top:14px;padding:12px 14px;font-size:14px;line-height:1.45}.admin-error{color:#a62323;background:#fff1f1}.admin-success{color:#17613d;background:#edf9f0}.admin-empty{color:#59636a;background:#ffffffeb;border:1px solid #dfe6e1}.admin-tabs{background:#eef2f6;border:1px solid #dfe6e1;border-radius:8px;gap:4px;margin-top:16px;padding:4px;display:inline-flex}.admin-tabs button{color:#3d474e;min-width:92px;box-shadow:none;background:0 0}.admin-tabs button.active{color:#1f6f49;background:#fff;box-shadow:0 4px 12px #1e2f2714}.admin-overview{margin-top:16px}.admin-metrics{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;display:grid}.admin-metric,.admin-panel{background:#fffffff0;border:1px solid #dfe6e1;border-radius:8px}.admin-metric{align-content:center;gap:6px;min-height:92px;padding:14px;display:grid}.admin-metric span{color:#59636a;font-size:12px;font-weight:750}.admin-metric strong{color:#17231a;font-size:26px;line-height:1.05}.admin-split{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:12px;display:grid}.admin-panel{padding:16px}.admin-panel h2{margin-bottom:10px;font-size:16px}.admin-count-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.admin-count-list li,.admin-definition-list div{color:#3d474e;justify-content:space-between;align-items:center;gap:10px;min-height:30px;font-size:13px;display:flex}.admin-count-list strong,.admin-definition-list dd{color:#17231a;margin:0;font-weight:850}.admin-definition-list{gap:8px;margin:0;display:grid}.admin-definition-list dt{color:#59636a}.admin-table-wrap{background:#fffffff0;border:1px solid #dfe6e1;border-radius:8px;margin-top:16px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;min-width:920px}.admin-table th,.admin-table td{text-align:left;vertical-align:top;border-bottom:1px solid #e7ece8;padding:11px 12px;font-size:13px;line-height:1.45}.admin-table th{color:#59636a;background:#f4f7f5;font-size:12px;font-weight:850}.admin-table tr:last-child td{border-bottom:0}.admin-table code{color:#2563eb;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.admin-table strong{color:#17231a}.admin-table span{color:#59636a}@media (width<=960px){.admin-header{display:grid}.admin-actions{justify-content:flex-start}.admin-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-split{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.admin-metrics,.admin-split{grid-template-columns:1fr}.admin-tabs{width:100%}.admin-tabs button{flex:1;min-width:0}}
