:root{--afob-ink:#2c1937;--afob-coral:#ff5f7f;--afob-aqua:#29c7b8;--afob-soft:#fff4df;--afob-line:#eadfe7;--afob-muted:#756c7b}
html.afob-lock{overflow:hidden!important}.afob-app{max-width:1480px;margin:0 auto;padding:26px clamp(14px,4vw,58px) 80px;color:var(--afob-ink);font-family:Manrope,Arial,sans-serif;box-sizing:border-box}.afob-app *{box-sizing:border-box}.afob-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;padding:clamp(30px,5vw,70px);border-radius:34px;background:linear-gradient(135deg,#fff0e9,#fff8dd 52%,#e8fffb);overflow:hidden}.afob-hero span,.afob-kicker,.afob-category-head span,.afob-result>span,.afob-error>span{display:block;color:var(--afob-coral);font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.afob-hero h1{margin:8px 0 10px;font:800 clamp(48px,8vw,98px)/.9 Fraunces,Georgia,serif}.afob-hero p{max-width:680px;margin:0;color:var(--afob-muted);font-size:14px;line-height:1.7}.afob-hero-badge{flex:0 0 auto;padding:13px 18px;border-radius:999px;background:#fff;box-shadow:0 12px 30px rgba(44,25,55,.09);font-size:11px;font-weight:850}.afob-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:28px;margin-top:34px}.afob-category{margin-bottom:45px}.afob-category-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:16px}.afob-category-head h2,.afob-tray h2{margin:4px 0 0;font:700 clamp(27px,3vw,39px)/1 Fraunces,Georgia,serif}.afob-category-head small{max-width:40%;color:var(--afob-aqua);font-size:10px;font-weight:850;text-align:right}.afob-products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.afob-product{position:relative;min-width:0;padding:0 0 14px;border:2px solid transparent;border-radius:22px;background:#fff;color:var(--afob-ink);overflow:hidden;text-align:left;cursor:pointer;box-shadow:0 11px 32px rgba(44,25,55,.07);transition:.2s}.afob-product:hover{transform:translateY(-3px)}.afob-product.is-selected{border-color:var(--afob-coral);box-shadow:0 14px 35px rgba(255,95,127,.18)}.afob-product img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;margin-bottom:12px}.afob-product strong,.afob-product>small{display:block;padding:0 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.afob-product strong{font:700 16px/1.2 Fraunces,Georgia,serif}.afob-product>small{margin-top:4px;color:var(--afob-muted);font-size:10px}.afob-check{position:absolute;z-index:2;right:9px;top:9px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--afob-coral);color:#fff;opacity:0;transform:scale(.7);transition:.2s}.afob-product.is-selected .afob-check{opacity:1;transform:none}.afob-tray{position:relative}.afob-tray-card{position:sticky;top:22px;padding:25px;border:1px solid var(--afob-line);border-radius:27px;background:#fff;box-shadow:0 18px 48px rgba(44,25,55,.09)}.afob-selected{display:grid;gap:9px;margin:20px 0}.afob-selected>p{padding:20px;border-radius:17px;background:#faf6f9;color:var(--afob-muted);font-size:11px;line-height:1.55}.afob-selected-item{display:grid;grid-template-columns:48px 1fr 26px;gap:10px;align-items:center;padding:8px;border-radius:15px;background:#faf6f9}.afob-selected-item img{width:48px;height:58px;border-radius:10px;object-fit:cover}.afob-selected-item small,.afob-selected-item strong{display:block}.afob-selected-item small{color:var(--afob-coral);font-size:8px;font-weight:900;text-transform:uppercase}.afob-selected-item strong{margin-top:2px;font-size:10px}.afob-selected-item button{border:0;background:transparent;color:#9a8796;font-size:20px;cursor:pointer}.afob-count{margin:14px 0;color:var(--afob-muted);font-size:10px;font-weight:800}.afob-count span{color:var(--afob-coral);font-size:15px}.afob-generate,.afob-clear,.afob-result button,.afob-result a,.afob-error button,.afob-gate a{display:flex;width:100%;min-height:48px;align-items:center;justify-content:center;border:0;border-radius:999px;font-weight:900;text-decoration:none;cursor:pointer}.afob-generate{gap:8px;background:linear-gradient(135deg,var(--afob-coral),#ff966f);color:#fff;box-shadow:0 12px 28px rgba(255,95,127,.24)}.afob-generate:disabled{opacity:.4;cursor:not-allowed}.afob-clear{margin-top:8px;background:#fff;color:var(--afob-ink);border:1px solid var(--afob-line)}.afob-note{margin:15px 0 0;color:var(--afob-muted);font-size:9px;line-height:1.5;text-align:center}.afob-overlay[hidden]{display:none!important}.afob-overlay{position:fixed;inset:0;z-index:2147483000;opacity:0;transition:.22s}.afob-overlay.is-open{opacity:1}.afob-backdrop{position:absolute;inset:0;background:rgba(31,14,39,.76);backdrop-filter:blur(10px)}.afob-modal{position:absolute;left:50%;top:50%;transform:translate(-50%,-47%);width:min(820px,calc(100vw - 28px));max-height:calc(100dvh - 28px);overflow:auto;padding:clamp(24px,4vw,45px);border-radius:30px;background:#fff;box-shadow:0 35px 100px rgba(0,0,0,.4);transition:.22s}.afob-overlay.is-open .afob-modal{transform:translate(-50%,-50%)}.afob-close{position:absolute;right:16px;top:16px;z-index:3;min-height:39px;padding:0 15px;border:1px solid var(--afob-line);border-radius:999px;background:#fff;color:var(--afob-ink);font-weight:900;cursor:pointer}.afob-loading,.afob-error{text-align:center;padding:60px 10px 35px}.afob-loading>span{display:block;width:55px;height:55px;margin:0 auto 20px;border:5px solid #f2dfe9;border-top-color:var(--afob-coral);border-radius:50%;animation:afobSpin .8s linear infinite}.afob-loading h2,.afob-error h2,.afob-result h2{font:700 clamp(32px,5vw,52px)/1 Fraunces,Georgia,serif}.afob-loading p{color:var(--afob-coral);font-weight:900}.afob-loading small,.afob-error p,.afob-result p{color:var(--afob-muted);line-height:1.6}.afob-result{text-align:center}.afob-result img{display:block;max-width:100%;max-height:65vh;margin:20px auto;border-radius:22px;object-fit:contain}.afob-result>div{display:flex;gap:10px}.afob-result button,.afob-result a,.afob-error button{background:var(--afob-coral);color:#fff}.afob-result a{background:var(--afob-ink)}.afob-gate{max-width:760px;margin:70px auto;padding:60px;border-radius:34px;background:linear-gradient(135deg,#fff0e9,#eafffb);color:var(--afob-ink);text-align:center}.afob-gate span{color:var(--afob-coral);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.14em}.afob-gate h1{font:700 clamp(40px,7vw,72px)/1 Fraunces,Georgia,serif}.afob-gate p{color:var(--afob-muted);line-height:1.7}.afob-gate a{max-width:260px;margin:25px auto 0;background:var(--afob-coral);color:#fff}@keyframes afobSpin{to{transform:rotate(360deg)}}
@media(max-width:1050px){.afob-layout{grid-template-columns:1fr}.afob-tray{position:sticky;z-index:10;bottom:8px;order:-1}.afob-tray-card{position:static;padding:16px}.afob-selected{display:flex;overflow:auto}.afob-selected-item{min-width:190px}.afob-products{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){.afob-app{padding:10px 10px 55px}.afob-hero{display:block;padding:34px 20px;border-radius:25px}.afob-hero-badge{display:inline-block;margin-top:18px}.afob-products{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.afob-product{border-radius:17px}.afob-product strong{font-size:14px}.afob-category-head{align-items:start}.afob-tray-card{border-radius:20px}.afob-selected{margin:10px 0}.afob-modal{inset:auto 0 0;left:0;top:auto;width:100%;max-height:92dvh;border-radius:26px 26px 0 0;transform:translateY(30px)}.afob-overlay.is-open .afob-modal{transform:none}.afob-result>div{display:grid}.afob-gate{margin:30px 10px;padding:45px 20px}}
.afob-result>.afob-result-actions{display:flex;gap:10px}.afob-result>.afob-bag-panel{display:block;max-width:650px;margin:22px auto;padding:18px;border:1px solid var(--afob-line);border-radius:20px;background:#faf6f9;text-align:left}.afob-bag-panel>span{display:block;color:var(--afob-coral);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.12em}.afob-bag-panel>h3{margin:5px 0 14px;font:700 24px/1.1 Fraunces,Georgia,serif}.afob-bag-products{display:grid;gap:9px}.afob-bag-product-options{display:grid!important;grid-template-columns:54px minmax(0,1fr);gap:11px;align-items:center;padding:9px;border-radius:14px;background:#fff}.afob-result .afob-bag-product-options>img{width:54px;height:66px;margin:0;border-radius:10px;object-fit:cover}.afob-bag-product-options strong{display:block;font-size:11px}.afob-bag-product-options small{display:block;margin-top:4px;color:var(--afob-muted);font-size:9px}.afob-bag-selects{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:7px}.afob-bag-selects label{display:grid;gap:4px}.afob-bag-selects label>span{font-size:8px;font-weight:900;text-transform:uppercase;color:var(--afob-muted)}.afob-bag-selects select{width:100%;min-height:36px;padding:0 8px;border:1px solid var(--afob-line);border-radius:9px;background:#fff;color:var(--afob-ink);font-size:10px}.afob-bag-panel>[data-afob-bag-message]{min-height:17px;margin:10px 0;color:#b42318;font-size:10px;font-weight:800}.afob-result button.afob-add-to-bag{background:linear-gradient(135deg,var(--afob-coral),#ff966f);color:#fff;box-shadow:0 12px 27px rgba(255,95,127,.23)}.afob-result button.afob-add-to-bag:disabled{opacity:.72;cursor:default}
@media(max-width:700px){.afob-result>.afob-result-actions{display:grid}.afob-bag-selects{grid-template-columns:1fr}.afob-result>.afob-bag-panel{padding:14px}}
.afob-result img{max-height:48vh}.afob-result>.afob-bag-panel{border:2px solid rgba(255,95,127,.35);background:#fffafc;box-shadow:0 18px 42px rgba(44,25,55,.1)}

/* v1.3.6: compact generated result card */
@media(max-width:700px){
  .afob-modal:has(.afob-result){padding:12px 12px 18px}
  .afob-result{
    box-sizing:border-box;
    width:100%;
    max-width:570px;
    margin:0 auto;
    padding:13px;
    border:1px solid rgba(44,25,55,.09);
    border-radius:22px;
    background:#fff;
    box-shadow:0 16px 42px rgba(44,25,55,.09);
  }
  .afob-result>span{font-size:8px;letter-spacing:.1em}
  .afob-result h2{margin:4px 0 8px;font-size:25px;line-height:1.05}
  .afob-result>img,.afob-result>video{max-height:36dvh;margin:9px auto;border-radius:13px}
  .afob-result>.afob-bag-panel{margin:9px 0;padding:9px;border-width:1px;border-radius:14px;box-shadow:none}
  .afob-bag-panel>span{font-size:7px}
  .afob-bag-panel>h3{margin:3px 0 8px;font-size:18px}
  .afob-bag-products{gap:6px}
  .afob-bag-product-options{grid-template-columns:42px minmax(0,1fr);gap:8px;padding:6px;border-radius:10px}
  .afob-result .afob-bag-product-options>img{width:42px;height:52px;border-radius:7px;object-fit:contain;background:#f7f0f5}
  .afob-bag-product-options strong{font-size:9px}
  .afob-bag-product-options small{margin-top:2px;font-size:7px}
  .afob-bag-selects{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:5px}
  .afob-bag-selects label{gap:2px}
  .afob-bag-selects label>span{font-size:7px}
  .afob-bag-selects select{min-height:32px;padding:0 6px;border-radius:8px;font-size:9px}
  .afob-bag-panel>[data-afob-bag-message]{min-height:0;margin:5px 0;font-size:8px}
  .afob-result button.afob-add-to-bag{min-height:40px;border-radius:12px;font-size:10px;box-shadow:0 7px 18px rgba(255,95,127,.2)}
  .afob-result>p{margin:8px 3px;font-size:9px;line-height:1.45}
  .afob-result>.afob-result-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:8px}
  .afob-result>.afob-result-actions button,
  .afob-result>.afob-result-actions a{min-height:36px;padding:0 8px;border-radius:11px;font-size:8.5px;line-height:1.15;text-align:center}
}

/* v1.3.7: customer credits and mobile label containment */
.afob-credit-badge,.afob-result-credit{display:flex!important;align-items:center;gap:9px;width:max-content;max-width:100%;margin:12px 0;padding:8px 11px;border:1px solid var(--afob-line);border-radius:13px;background:#fff;color:var(--afob-ink);text-align:left;box-shadow:0 8px 20px rgba(44,25,55,.06)}
.afob-credit-badge strong,.afob-result-credit strong{display:grid;place-items:center;flex:0 0 auto;min-width:27px;height:27px;padding:0 6px;border-radius:9px;background:var(--afob-ink);color:#fff;font-size:10px}
.afob-credit-badge span,.afob-result-credit span{min-width:0;color:var(--afob-muted);font-size:9px;font-weight:800;line-height:1.3}
.afob-result>.afob-result-credit{margin:7px auto}
@media(max-width:700px){
  .afob-credit-badge,.afob-result-credit{width:100%;box-sizing:border-box;margin:8px 0;padding:6px 8px;border-radius:10px}
  .afob-result>.afob-result-actions button,
  .afob-result>.afob-result-actions a,
  .afob-result button.afob-add-to-bag{
    height:auto;
    min-height:36px;
    max-width:100%;
    padding:7px 8px;
    white-space:normal;
    overflow-wrap:anywhere;
    word-break:normal;
    line-height:1.25;
    text-align:center;
  }
  .afob-result button.afob-add-to-bag{min-height:40px}
}
