.public-menu-body{min-height:100vh;background:linear-gradient(160deg,#f4f9ff 0%,#f8fbf5 45%,#fff8e8 100%)}
[hidden]{display:none!important}
.public-menu-brand{color:inherit;text-decoration:none}
.public-scan-allowance{padding:9px 14px;border:1px solid #b9d7ff;border-radius:999px;background:#edf6ff;color:#0f4f91;font-size:13px;font-weight:800}
.public-menu-shell{width:min(1120px,calc(100% - 28px));margin:24px auto 50px}
.public-menu-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(270px,.65fr);gap:22px;align-items:end;padding:30px;border-radius:26px;background:linear-gradient(135deg,#082f62,#0a5689 58%,#0d776e);color:#fff;box-shadow:0 20px 50px rgba(8,47,98,.16)}
.public-menu-hero h1{max-width:720px;margin:7px 0 9px;font-size:clamp(30px,5vw,52px);line-height:1.02;letter-spacing:-.035em}
.public-menu-hero p{max-width:760px;margin:0;color:#dbeeff;font-size:17px;line-height:1.65}
.public-menu-hero .eyebrow{color:#ffd788}
.public-menu-trust{display:grid;gap:8px;padding:18px;border:1px solid rgba(255,255,255,.2);border-radius:18px;background:rgba(255,255,255,.1);backdrop-filter:blur(10px)}
.public-menu-trust span{color:#dcecff;font-size:13px;line-height:1.55}
.public-menu-stepper{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:18px 0}
.public-menu-stepper button{display:flex;gap:9px;align-items:center;justify-content:center;padding:11px 8px;border:1px solid #d5dfeb;border-radius:13px;background:#fff;color:#617087;font-weight:800}
.public-menu-stepper button span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#e9eef5}
.public-menu-stepper button.active{border-color:#1978c9;background:#eaf5ff;color:#0b5494}
.public-menu-stepper button.active span,.public-menu-stepper button.complete span{background:#0f70b7;color:#fff}
.public-menu-stepper button.complete{color:#166846;border-color:#bfe4cf;background:#effaf4}
.public-menu-card{position:relative;min-height:480px;padding:28px;border:1px solid #dce4ec;border-radius:24px;background:#fff;box-shadow:0 16px 45px rgba(22,55,86,.09)}
.public-menu-step{display:none}.public-menu-step.active{display:block}
.public-step-heading{display:flex;gap:14px;align-items:flex-start;margin-bottom:22px}
.public-step-heading>span{display:grid;place-items:center;flex:0 0 40px;height:40px;border-radius:13px;background:#0f70b7;color:#fff;font-size:18px;font-weight:900}
.public-step-heading h2{margin:0;color:#082f62;font-size:26px}.public-step-heading p{margin:5px 0 0;color:#66778c}
.public-consent{display:flex;gap:12px;align-items:flex-start;margin:20px 0 8px;padding:16px;border:1px solid #bcdcc8;border-radius:15px;background:#f1faf4;color:#234e35;line-height:1.55}
.public-consent input{width:19px;height:19px;margin-top:2px;accent-color:#137749}
.public-privacy-note{margin:0 0 20px;color:#6a7788;font-size:12px}
.private-link-card{display:grid;gap:10px;margin-bottom:22px;padding:17px;border:1px solid #bad8f5;border-radius:16px;background:#eef7ff}
.private-link-card p{margin:3px 0 0;color:#5b718b;font-size:13px}.private-link-row{display:flex;gap:8px}.private-link-row input{flex:1;min-width:0}
.public-upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.public-upload-choice{position:relative;display:grid;place-items:center;min-height:155px;padding:20px;border:2px dashed #9fc3e6;border-radius:18px;background:#f5faff;color:#0c4f88;cursor:pointer;text-align:center}
.public-upload-choice:hover{border-color:#0f70b7;background:#ebf6ff}.public-upload-choice input{position:absolute;width:1px;height:1px;opacity:0}
.public-upload-choice small{margin-top:4px;color:#687d91}.public-upload-icon{font-size:34px;line-height:1}
.selected-menu-file{margin:12px 0;padding:10px 13px;border-radius:11px;background:#f4f6f8;color:#66778c;font-size:13px}
.public-analysis-box{display:flex;gap:18px;align-items:center;padding:24px;border:1px solid #c6def3;border-radius:20px;background:linear-gradient(135deg,#eef8ff,#f5fbf7)}
.public-analysis-box h3{margin:0 0 5px;color:#0c4f88}.public-analysis-box p{margin:0;color:#60758d;line-height:1.55}
.analysis-orbit{display:grid;place-items:center;flex:0 0 64px;height:64px;border:3px solid #a9d0f0;border-top-color:#0f70b7;border-radius:50%}.analysis-orbit span{width:25px;height:25px;border-radius:50%;background:#0f70b7}
.public-analysis-box.running .analysis-orbit{animation:public-spin 1s linear infinite}@keyframes public-spin{to{transform:rotate(360deg)}}
.public-ai-warning{margin:16px 0;padding:13px 15px;border-radius:13px;background:#fff7df;color:#70510b;font-size:13px;font-weight:700}
.public-menu-items{display:grid;gap:15px}
.public-menu-item{overflow:hidden;border:1px solid #d8e2ec;border-radius:18px;background:#fbfdff}
.public-menu-item.needs-attention{border-color:#e8c768}
.public-menu-item-head{display:grid;grid-template-columns:minmax(180px,1fr) minmax(130px,180px) 130px;gap:12px;align-items:end;padding:16px}
.public-menu-item-head label,.public-ingredient-row label{display:grid;gap:5px;color:#4e6177;font-size:12px;font-weight:800}
.public-menu-item-head input,.public-menu-item-head select,.public-ingredient-row input,.public-ingredient-row select{width:100%}
.attention-field{border-color:#d99a00!important;background:#fffaf0!important;box-shadow:0 0 0 2px rgba(217,154,0,.08)}
.public-review-warning{grid-column:1/-1;padding:8px 10px;border-radius:10px;background:#fff4d8;color:#7a5200;font-size:12px;font-weight:800;line-height:1.4}
.public-ingredient-details{border-top:1px solid #e1e8ef}.public-ingredient-details summary{padding:12px 16px;color:#0c5b93;cursor:pointer;font-weight:800}
.public-ingredient-list{display:grid;gap:9px;padding:0 16px 16px}
.public-ingredient-row{display:grid;grid-template-columns:minmax(140px,1.3fr) 100px 90px 100px;gap:10px;padding:12px;border-radius:13px;background:#fff}
.public-ingredient-row.needs-attention{border:1px solid #e8c768;background:#fffdf8}
.public-ingredient-meta{grid-column:1/-1;color:#64768a;font-size:12px}
.public-review-actions{position:sticky;bottom:10px;justify-content:flex-end;margin-top:18px;padding:13px;border:1px solid #dce6ef;border-radius:15px;background:rgba(255,255,255,.94);box-shadow:0 10px 30px rgba(19,55,89,.12);backdrop-filter:blur(10px)}
.public-demand-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:20px}
.public-demand-row{display:grid;grid-template-columns:1fr auto;gap:6px;padding:16px;border:1px solid #cfe3d7;border-radius:15px;background:#f2faf5}
.public-demand-row strong{color:#145a36}.public-demand-row span{color:#66778c;font-size:13px}.public-demand-row b{grid-row:1/3;grid-column:2;align-self:center;color:#0d4c7d}
.public-finish-choice{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.public-finish-card{display:grid;gap:7px;padding:18px;border:1px solid #d6e1eb;border-radius:16px;background:#fff;color:#173b5d;cursor:pointer;text-align:left}
.public-finish-card span{color:#65758a;font-size:13px;line-height:1.45}.public-finish-card:hover{border-color:#65a8da;transform:translateY(-1px)}
.public-finish-card.primary{border-color:#0f70b7;background:#0f70b7;color:#fff}.public-finish-card.primary span{color:#dff1ff}
.public-finish-card.danger{border-color:#ecc9c9;color:#8d2f2f;background:#fff8f8}
.public-submission-confirmation{margin-top:16px;padding:20px;border:1px solid #a8dabd;border-radius:17px;background:#edf9f2;color:#195d38}
.public-menu-notice{margin-bottom:18px;padding:14px 16px;border-radius:14px;background:#fff1d5;color:#6f4e09;font-weight:700}
.public-menu-notice.error{background:#fff0f0;color:#902f2f}
@media(max-width:760px){
  .public-menu-hero{grid-template-columns:1fr;padding:23px}
  .public-menu-stepper{display:flex;gap:6px;justify-content:space-between}
  .public-menu-stepper button{flex:0 0 44px;min-width:0;padding:8px 5px;gap:4px;white-space:nowrap;overflow:hidden}
  .public-menu-stepper button:not(.active){font-size:0}
  .public-menu-stepper button span{flex:0 0 25px;font-size:13px}
  .public-menu-stepper button.active{flex:1 1 82px;max-width:120px;font-size:11px}
  .public-menu-card{padding:20px 16px}
  .public-upload-grid,.public-demand-summary,.public-finish-choice{grid-template-columns:1fr}
  .public-menu-item-head{grid-template-columns:1fr 1fr}
  .public-menu-item-head label:first-child{grid-column:1/-1}
  .public-ingredient-row{grid-template-columns:1fr 1fr}
  .public-ingredient-row label:first-child{grid-column:1/-1}
  .private-link-row{align-items:stretch;flex-direction:column}
  .public-review-actions{position:static}
  .public-menu-shell{width:min(100% - 18px,1120px)}
}
@media(max-width:340px){
  .public-menu-stepper{gap:4px}
  .public-menu-stepper button{flex-basis:40px;padding-inline:4px}
  .public-menu-stepper button.active{flex-basis:74px}
}
