
/* ── FORM BUILDER (Wave 3z) ── */
.fb-paper{background:#fff;max-width:816px;margin:0 auto;box-shadow:0 2px 14px rgba(0,0,0,.13);border-radius:3px;padding:44px 52px;min-height:600px}
@media(max-width:700px){.fb-paper{padding:20px 16px;border-radius:0;box-shadow:none}}
.fb-fld{border:1.5px dashed transparent;border-radius:8px;padding:8px 10px;margin-bottom:4px;cursor:pointer;position:relative}
.fb-fld:hover{border-color:#c9d6e4}
.fb-fld.sel{border-color:var(--blue);background:#f4f9ff}
.fb-fld .fb-grip{position:absolute;left:-6px;top:50%;transform:translateY(-50%);color:#c3cad2;cursor:grab;font-size:15px}
.fb-lbl{font-size:12.5px;font-weight:700;margin-bottom:3px}
.fb-lbl .req{color:#c0392b}
.fb-help{font-size:11px;color:var(--muted);margin-top:2px}
.fb-in, .fb-paper input[type=text], .fb-paper input[type=number], .fb-paper input[type=date], .fb-paper input[type=time], .fb-paper select, .fb-paper textarea{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #cfd6de;border-radius:8px;font-size:14px;font-family:inherit;background:#fff;min-height:44px}
.fb-paper textarea{min-height:88px;resize:vertical}
.fb-sec{font-size:15px;font-weight:800;border-bottom:2px solid var(--blue);padding:14px 0 5px;margin:6px 0 6px;font-family:'Barlow Condensed',sans-serif;letter-spacing:.3px;text-transform:uppercase}
.fb-instr{font-size:12.5px;color:#444;background:#f6f8fa;border-left:3px solid #c9d6e4;padding:8px 12px;border-radius:0 7px 7px 0}
.fb-yn{display:flex;gap:8px}
.fb-yn button{flex:1;min-height:48px;border:1.5px solid #cfd6de;background:#fff;border-radius:9px;font-size:14.5px;font-weight:700;cursor:pointer}
.fb-yn button.on-yes{background:#e7f3e9;border-color:#2c7a39;color:#2c7a39}
.fb-yn button.on-no{background:#fdecea;border-color:#c0392b;color:#c0392b}
.fb-opt{display:flex;gap:9px;align-items:center;padding:9px 10px;border:1.5px solid #e2e6ea;border-radius:8px;margin-bottom:5px;cursor:pointer;font-size:14px;min-height:26px}
.fb-opt.on{border-color:var(--blue);background:#f0f7ff}
.fb-sig{border:1.5px solid #cfd6de;border-radius:8px;background:#fff;touch-action:none;width:100%;height:120px}
.fb-half{display:inline-block;width:calc(50% - 8px);vertical-align:top}
.fb-half + .fb-half{margin-left:12px}
@media(max-width:520px){.fb-half{width:100%}.fb-half + .fb-half{margin-left:0}}
.fb-pal{display:flex;flex-wrap:wrap;gap:6px}
.fb-pal button{display:flex;gap:6px;align-items:center;padding:7px 10px;border:1px solid var(--gray-m);background:#fff;border-radius:8px;font-size:11.5px;font-weight:600;cursor:pointer}
.fb-pal button:hover{border-color:var(--blue);color:var(--blue)}
/* Wave 3z.7: FULL-SCREEN fill/preview (CSS overlay — works on tablets & phones) */
.fb-fs-on{position:fixed;inset:0;z-index:5800;background:#e8ebef;overflow:auto;padding:8px 10px 40px}
.fb-fs-on .fb-paper{margin-top:4px}
/* Wave 3z.7: PHONES — the sheet REFORMATS, not shrinks */
@media(max-width:700px){
  /* every component takes the full row; side-by-side layouts stack */
  #fbFillFlds [data-fbf]{display:block!important;width:100%!important;margin-right:0!important}
  .fb-grprow{display:block!important}
  .fb-grprow>div{width:100%!important;margin-bottom:10px}
  /* 16px+ inputs stop iOS auto-zoom; bigger touch targets everywhere */
  .fb-paper input,.fb-paper select,.fb-paper textarea{font-size:16px!important;min-height:46px}
  .fb-opt{min-height:34px}
  .fb-yn button{min-height:52px}
}
/* Wave 3z.10: GROUPED palette — desktop shows every group with a label
   column; phones get category tabs + one swipeable row per group */
.fb-pal-tabs{display:none}
.fb-palgrp{display:flex;gap:8px;align-items:flex-start;margin-bottom:5px}
.fb-palgrp-lbl{flex:0 0 86px;font-size:9.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);padding-top:9px;text-align:right}
.fb-palgrp-btns{flex:1;min-width:0}
/* Wave 3z.18b (D): on desktop the palette rides a VERTICAL LEFT COLUMN
   between the main nav and the sheet — category groups stacked, one
   component per row. Phones keep the category tabs + swipeable row. */
@media(min-width:761px){
  .fb-pal-left{position:sticky;top:8px;align-self:start;max-height:86vh;overflow-y:auto;overflow-x:hidden;background:#fff;border:1px solid var(--gray-m);border-radius:10px;padding:10px 9px;margin-bottom:0!important}
  .fb-pal-left .fb-palgrp{display:block;margin:0 0 11px}
  .fb-pal-left .fb-palgrp-lbl{display:block;flex:none;text-align:left;padding:0 0 4px;font-size:9.5px}
  .fb-pal-left .fb-palgrp-btns{display:flex;flex-direction:column;gap:3px}
  .fb-pal-left .fb-palgrp-btns button{width:100%;text-align:left;justify-content:flex-start;display:flex;gap:7px;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
/* Wave 3z.7/3z.10: PHONE BUILDER — reformatted, not shrunk: category tabs,
   swipeable component row, full-width name, zero sideways page scroll, and
   the properties panel rides up as a bottom sheet while a component is
   selected */
@media(max-width:760px){
  .fb-pal-tabs{display:flex;gap:5px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:6px}
  .fb-pal-tabs button{flex:0 0 auto;padding:8px 13px;border:1px solid var(--gray-m);background:#fff;border-radius:16px;font-size:11.5px;font-weight:700;cursor:pointer;white-space:nowrap}
  .fb-pal-tabs button.on{background:var(--blue);color:#fff;border-color:var(--blue)}
  .fb-palgrp{display:none;margin:0}
  .fb-palgrp.on{display:block}
  .fb-palgrp-lbl{display:none}
  .fb-palgrp-btns{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:6px}
  .fb-palgrp-btns button{flex:0 0 auto;white-space:nowrap;min-height:42px}
  #fbBody{max-width:100%;overflow-x:clip}
  #fbBody .locdet-grid>div{min-width:0}
  .fb-toolbar #fbName{flex:1 1 100%!important;order:-1;max-width:none!important;min-width:0!important}
  .fb-paper{padding:16px 12px}
  #fbProps{position:static!important;max-height:none!important}
  #fbProps.fb-props-sheet{position:fixed!important;left:0;right:0;bottom:0;top:auto!important;z-index:2600;max-height:62vh!important;overflow:auto;border-radius:14px 14px 0 0;box-shadow:0 -8px 30px rgba(0,0,0,.28);border:1px solid var(--gray-m);border-bottom:none}
  #fbProps.fb-props-sheet .fb-props-done{display:flex!important}
  .fb-fld .fb-grip{display:none}
}
/* Wave 3z.4/3z.5: labeled action buttons — compact enough that EVERY action
   fits on screen at once, still plain-English */
.fb-act{display:inline-flex;gap:4px;align-items:center;justify-content:center;padding:4px 8px;min-height:28px;border-radius:7px;border:1.5px solid var(--gray-m);background:#fff;font-size:10.5px;font-weight:700;font-family:inherit;cursor:pointer;color:var(--text);white-space:nowrap;transition:filter .1s;margin:1px 0}
.fb-act i{font-size:13px}
.fb-act.fb-act-pub{border-color:#bfe0c6;color:#2c7a39;background:#f2faf3}
.fb-act:hover{filter:brightness(.96)}
.fb-act.fb-act-fill{background:var(--blue);border-color:var(--blue);color:#fff}
.fb-act.fb-act-rec{border-color:#bcd4ea;color:#2f6db3;background:#f4f9ff}
.fb-act.fb-act-hist{border-color:#d4d9e0;color:#5b6672;background:#f7f8fa}
.fb-act.fb-act-des{border-color:#d9c9f2;color:#6c4bb6;background:#f9f6ff}
.fb-act.fb-act-arch{border-color:#ecd9b0;color:#8a6d1a;background:#fffaf0}
.fb-act.fb-act-del{border-color:#eec5c0;color:#c0392b;background:#fff5f4}
@media(max-width:700px){.fb-act{min-height:44px;font-size:13px}}
@media print{
  body *{visibility:hidden}
  #fbPrintRoot, #fbPrintRoot *{visibility:visible}
  #fbPrintRoot{position:absolute;left:0;top:0;width:100%;box-shadow:none!important;padding:0!important}
}
