.ifp-b2dp-planner-app {
  --bg: #eef2f7;
  --surface: #ffffff;
  --surface-2: #f7f9fc;
  --line: #d7deea;
  --text: #1a2331;
  --muted: #66758c;
  --brand: #2457ff;
  --brand-dark: #1b43c2;
  --danger: #b92c2c;
  --ok: #0d8f53;
  --shadow: 0 18px 50px rgba(22, 37, 66, 0.09);
  --radius: 18px;
  --workspace-h: 760px;
  color: var(--text);
}
.ifp-b2dp-planner-app *, .ifp-b2dp-planner-app *::before, .ifp-b2dp-planner-app *::after { box-sizing: border-box; }
.ifp-b2dp-planner-app button, .ifp-b2dp-planner-app input, .ifp-b2dp-planner-app select, .ifp-b2dp-planner-app textarea { font: inherit; }
.ifp-b2dp-planner-app .ifp-p-app { max-width: 100%; }
.ifp-b2dp-planner-app .ifp-p-hero { background: linear-gradient(135deg, #0f2250 0%, #285cff 100%); border-radius: 28px; color: #fff; padding: 26px 28px; box-shadow: var(--shadow); margin-bottom: 18px; }
.ifp-b2dp-planner-app .ifp-p-hero h2 { margin: 0 0 8px; font-size: clamp(1.7rem, 2.2vw, 2.3rem); color:#fff; }
.ifp-b2dp-planner-app .ifp-p-hero p { margin:0; max-width:1050px; line-height:1.55; color:rgba(255,255,255,.88); }
.ifp-b2dp-planner-app .ifp-p-topbar { display:grid; grid-template-columns:1fr auto; gap:16px; margin-bottom:18px; }
.ifp-b2dp-planner-app .ifp-p-project-card, .ifp-b2dp-planner-app .ifp-p-actions-card, .ifp-b2dp-planner-app .ifp-p-panel, .ifp-b2dp-planner-app .ifp-p-workspace-card { background: var(--surface); border:1px solid rgba(215,222,234,.95); border-radius: var(--radius); box-shadow: var(--shadow); }
.ifp-b2dp-planner-app .ifp-p-project-card, .ifp-b2dp-planner-app .ifp-p-actions-card { padding:16px; }
.ifp-b2dp-planner-app .ifp-p-project-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.ifp-b2dp-planner-app .ifp-p-accordion { display:grid; gap:12px; }
.ifp-b2dp-planner-app .ifp-p-accordion + .ifp-p-accordion { margin-top:14px; }
.ifp-b2dp-planner-app .ifp-p-accordion-toggle { width:100%; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:0; border:0; background:transparent; text-align:left; cursor:pointer; }
.ifp-b2dp-planner-app .ifp-p-accordion-title-wrap { display:flex; align-items:center; gap:10px; min-width:0; }
.ifp-b2dp-planner-app .ifp-p-accordion-toggle-meta { display:inline-flex; align-items:center; gap:8px; flex:0 0 auto; color:var(--muted); font-size:.76rem; font-weight:800; letter-spacing:.02em; }
.ifp-b2dp-planner-app .ifp-p-accordion-toggle-text { white-space:nowrap; }
.ifp-b2dp-planner-app .ifp-p-accordion-toggle-icon { position:relative; width:12px; height:12px; color:var(--muted); }
.ifp-b2dp-planner-app .ifp-p-accordion-toggle-icon::before { content:''; position:absolute; inset:2px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(225deg); transition:transform .18s ease; }
.ifp-b2dp-planner-app .ifp-p-accordion.is-collapsed .ifp-p-accordion-toggle-icon::before { transform:rotate(45deg); }
.ifp-b2dp-planner-app .ifp-p-accordion-body[hidden] { display:none !important; }
.ifp-b2dp-planner-app .ifp-p-accordion--partial { gap:10px; }
.ifp-b2dp-planner-app .ifp-p-accordion--partial .ifp-p-accordion-static { display:grid; gap:10px; }
.ifp-b2dp-planner-app .ifp-p-accordion--partial .ifp-p-accordion-body { display:grid; gap:0; }
.ifp-b2dp-planner-app .ifp-p-accordion-toggle:hover .ifp-p-section-kicker,
.ifp-b2dp-planner-app .ifp-p-accordion-toggle:hover .ifp-p-accordion-toggle-meta { color:var(--brand-dark); }
.ifp-b2dp-planner-app .ifp-p-field { display:flex; flex-direction:column; gap:6px; }
.ifp-b2dp-planner-app .ifp-p-field label { font-size:.85rem; color:var(--muted); font-weight:700; }
.ifp-b2dp-planner-app .ifp-p-field input, .ifp-b2dp-planner-app .ifp-p-field select, .ifp-b2dp-planner-app .ifp-p-field textarea { width:100%; min-height:42px; border-radius:12px; border:1px solid var(--line); padding:10px 12px; background:#fff; color:var(--text); }
.ifp-b2dp-planner-app .ifp-p-field textarea { min-height:88px; resize:vertical; }
.ifp-b2dp-planner-app .ifp-p-actions-card { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }

.ifp-b2dp-planner-app--admin .ifp-p-topbar {
  grid-template-columns: minmax(0, 1.65fr) 280px;
  align-items: start;
}
.ifp-b2dp-planner-app--admin .ifp-p-project-card {
  min-width: 0;
}
.ifp-b2dp-planner-app--admin .ifp-p-actions-card {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  align-content: start;
}
.ifp-b2dp-planner-app--admin .ifp-p-actions-card > * {
  width: 100%;
}
.ifp-b2dp-planner-app--admin .ifp-p-actions-card .ifp-p-btn,
.ifp-b2dp-planner-app--admin .ifp-p-actions-card .ifp-p-status-badge {
  justify-content: center;
}

.ifp-b2dp-planner-app .ifp-p-template-card { margin-top:16px; padding-top:14px; border-top:1px dashed var(--line); display:grid; gap:12px; }
.ifp-b2dp-planner-app .ifp-p-accordion--template { padding:14px 16px; border:1px solid #dbe4f1; border-radius:16px; background:linear-gradient(180deg,#fbfdff 0%,#ffffff 100%); }
.ifp-b2dp-planner-app .ifp-p-template-chip { display:inline-flex; align-items:center; padding:4px 10px; border-radius:999px; background:#eef4ff; border:1px solid #d7e3ff; color:#2448a6; font-size:.72rem; font-weight:800; white-space:nowrap; }
.ifp-b2dp-planner-app .ifp-p-template-meta { font-size:.79rem; color:var(--muted); line-height:1.5; padding:10px 12px; border:1px dashed #dbe4f1; border-radius:12px; background:#f8fbff; }
.ifp-b2dp-planner-app .ifp-p-project-grid--templates { align-items:end; }
.ifp-b2dp-planner-app .ifp-p-template-actions { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.ifp-b2dp-planner-app .ifp-p-template-actions--compact { grid-template-columns:repeat(2,minmax(0,1fr)); }
.ifp-b2dp-planner-app .ifp-p-project-grid--imports { align-items:end; }
.ifp-b2dp-planner-app .ifp-p-field--action { justify-content:flex-end; }
.ifp-b2dp-planner-app .ifp-p-field--action .ifp-p-field-spacer { display:block; min-height:18px; }
.ifp-b2dp-planner-app .ifp-p-field--action .ifp-p-btn { width:100%; }
@media (max-width: 1100px) {
  .ifp-b2dp-planner-app .ifp-p-template-actions { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 782px) {
  .ifp-b2dp-planner-app .ifp-p-template-actions,
  .ifp-b2dp-planner-app .ifp-p-template-actions--compact { grid-template-columns:1fr; }
  .ifp-b2dp-planner-app .ifp-p-project-grid--imports > .ifp-p-field { grid-column:span 5 !important; }
  .ifp-b2dp-planner-app .ifp-p-field--action .ifp-p-field-spacer { display:none; }
}
@media (max-width: 1320px) {
  .ifp-b2dp-planner-app--admin .ifp-p-topbar {
    grid-template-columns: 1fr;
  }
}
.ifp-b2dp-planner-app .ifp-p-btn { appearance:none; border:0; border-radius:12px; min-height:42px; padding:10px 14px; cursor:pointer; font-weight:800; transition:.2s ease; display:inline-flex; align-items:center; justify-content:center; }
.ifp-b2dp-planner-app .ifp-p-btn-primary { background:var(--brand); color:#fff; }
.ifp-b2dp-planner-app .ifp-p-btn-primary:hover { background:var(--brand-dark); }
.ifp-b2dp-planner-app .ifp-p-btn-secondary { background:var(--surface-2); color:var(--text); border:1px solid var(--line); }
.ifp-b2dp-planner-app .ifp-p-btn-danger { background:#fff3f3; color:var(--danger); border:1px solid #f2c8c8; }
.ifp-b2dp-planner-app .ifp-p-btn.is-loading { position:relative; pointer-events:none; }
.ifp-b2dp-planner-app .ifp-p-btn .ifp-p-btn-spinner { width:16px; height:16px; border-radius:999px; border:2px solid rgba(255,255,255,.35); border-top-color:currentColor; animation:ifpPBtnSpin .7s linear infinite; margin-right:8px; flex:0 0 auto; }
.ifp-b2dp-planner-app .ifp-p-btn-secondary .ifp-p-btn-spinner { border-color:rgba(26,35,49,.18); border-top-color:currentColor; }
@keyframes ifpPBtnSpin { to { transform:rotate(360deg); } }
.ifp-b2dp-planner-app .ifp-p-layout { display:grid; grid-template-columns:330px minmax(720px,1fr) 360px; gap:18px; align-items:start; }
.ifp-b2dp-planner-app .ifp-p-panel { overflow:hidden; }
.ifp-b2dp-planner-app .ifp-p-panel-header { padding:16px 18px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; gap:10px; }
.ifp-b2dp-planner-app .ifp-p-panel-header h3, .ifp-b2dp-planner-app .ifp-p-panel-header h4 { margin:0; font-size:1rem; }
.ifp-b2dp-planner-app .ifp-p-panel-body { padding:16px; }
.ifp-b2dp-planner-app .ifp-p-subtle { color:var(--muted); font-size:.9rem; line-height:1.5; }
.ifp-b2dp-planner-app .ifp-p-catalog { display:grid; gap:14px; max-height:calc(var(--workspace-h) + 80px); overflow:auto; padding-right:4px; }
.ifp-b2dp-planner-app .ifp-p-catalog-group { display:grid; gap:12px; }
.ifp-b2dp-planner-app .ifp-p-group-title { font-size:.85rem; font-weight:800; letter-spacing:.08em; color:var(--muted); }
.ifp-b2dp-planner-app .ifp-p-catalog-card { border:1px solid var(--line); border-radius:14px; background:linear-gradient(180deg,#fff 0%,#fafcff 100%); padding:12px; display:grid; grid-template-columns:92px 1fr; gap:12px; align-items:center; cursor:pointer; }
.ifp-b2dp-planner-app .ifp-p-catalog-card:hover { border-color:#a7b8df; transform:translateY(-1px); }
.ifp-b2dp-planner-app .ifp-p-thumb { width:92px; height:116px; border-radius:10px; border:1px solid var(--line); background:#fff; display:grid; place-items:center; overflow:hidden; }
.ifp-b2dp-planner-app .ifp-p-catalog-meta { display:grid; gap:6px; }
.ifp-b2dp-planner-app .ifp-p-catalog-meta strong { font-size:.96rem; }
.ifp-b2dp-planner-app .ifp-p-catalog-meta small { color:var(--muted); line-height:1.35; }
.ifp-b2dp-planner-app .ifp-p-catalog-price { display:grid; gap:4px; padding:8px 10px; border:1px solid var(--line); border-radius:12px; background:#f8fbff; }
.ifp-b2dp-planner-app .ifp-p-catalog-price strong { font-size:.84rem; line-height:1.3; }
.ifp-b2dp-planner-app .ifp-p-catalog-price span { font-size:.75rem; color:var(--muted); line-height:1.35; }
.ifp-b2dp-planner-app .ifp-p-catalog-price.is-muted { background:#fcfdff; border-style:dashed; }
.ifp-b2dp-planner-app .ifp-p-catalog-price.has-error { background:#fff6f6; border-color:#f0c8c8; }
.ifp-b2dp-planner-app .ifp-p-badge-row { display:flex; gap:6px; flex-wrap:wrap; }
.ifp-b2dp-planner-app .ifp-p-badge { font-size:.72rem; border-radius:999px; padding:4px 8px; background:var(--surface-2); border:1px solid var(--line); color:var(--muted); font-weight:700; }
.ifp-b2dp-planner-app .ifp-p-color-swatch { display:inline-flex; width:18px; height:18px; border-radius:999px; border:1px solid #c6d0df; vertical-align:middle; margin-right:6px; }
.ifp-b2dp-planner-app .ifp-p-workspace-card { overflow:hidden; }
.ifp-b2dp-planner-app .ifp-p-workspace-head { padding:16px 18px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; gap:12px; align-items:center; flex-wrap:wrap; }
.ifp-b2dp-planner-app .ifp-p-workspace-tools { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.ifp-b2dp-planner-app .ifp-p-mini { width:90px; }
.ifp-b2dp-planner-app .ifp-p-workspace-wrap { padding:16px; }
.ifp-b2dp-planner-app .ifp-p-workspace { position:relative; height:var(--workspace-h); border:1px solid var(--line); border-radius:18px; overflow:auto; background:linear-gradient(to right,rgba(145,165,212,.12) 1px,transparent 1px),linear-gradient(to bottom,rgba(145,165,212,.12) 1px,transparent 1px),#fbfcff; background-size:40px 40px,40px 40px,auto; }
.ifp-b2dp-planner-app .ifp-p-workspace-inner { position:relative; width:2400px; height:calc(var(--workspace-h) - 2px); transform-origin:top left; }
.ifp-b2dp-planner-app .ifp-p-floor-line, .ifp-b2dp-planner-app .ifp-p-ceiling-line { position:absolute; left:0; right:0; height:0; border-top:2px dashed #c4cfdf; pointer-events:none; }
.ifp-b2dp-planner-app .ifp-p-floor-line::after, .ifp-b2dp-planner-app .ifp-p-ceiling-line::after { position:absolute; right:12px; top:-18px; font-size:.72rem; font-weight:800; color:var(--muted); letter-spacing:.04em; background:rgba(255,255,255,.85); padding:0 6px; }
.ifp-b2dp-planner-app .ifp-p-floor-line::after { content:'BODENLINIE'; }
.ifp-b2dp-planner-app .ifp-p-ceiling-line::after { content:'OBERKANTE'; }
.ifp-b2dp-planner-app .ifp-p-placed-item { position:absolute; cursor:grab; border-radius:12px; user-select:none; touch-action:none; }
.ifp-b2dp-planner-app .ifp-p-placed-item:active { cursor:grabbing; }
.ifp-b2dp-planner-app .ifp-p-placed-item.ifp-p-selected { outline:3px solid rgba(36,87,255,.25); outline-offset:4px; z-index:30!important; }
.ifp-b2dp-planner-app .ifp-p-item-label, .ifp-b2dp-planner-app .ifp-p-item-dim { position:absolute; left:50%; transform:translateX(-50%); background:rgba(255,255,255,.96); border:1px solid var(--line); border-radius:999px; padding:2px 8px; white-space:nowrap; pointer-events:none; }
.ifp-b2dp-planner-app .ifp-p-item-label { bottom:-24px; font-size:.75rem; font-weight:800; color:var(--text); }
.ifp-b2dp-planner-app .ifp-p-item-dim { top:-24px; font-size:.72rem; color:var(--muted); }
.ifp-b2dp-planner-app .ifp-p-item-price { position:absolute; top:8px; right:8px; max-width:calc(100% - 16px); padding:4px 8px; border-radius:999px; background:rgba(255,255,255,.97); border:1px solid rgba(214,222,239,.95); color:var(--text); font-size:.74rem; font-weight:800; line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; pointer-events:none; box-shadow:0 6px 18px rgba(28,39,56,.10); }
.ifp-b2dp-planner-app .ifp-p-item-price.is-muted { color:var(--muted); border-style:dashed; background:rgba(255,255,255,.92); }
.ifp-b2dp-planner-app .ifp-p-item-price.has-error { color:#b44a4a; border-color:#efc0c0; background:rgba(255,245,245,.96); }
.ifp-b2dp-planner-app .ifp-p-block { border:1px solid var(--line); border-radius:14px; padding:14px; background:linear-gradient(180deg,#fff 0%,#fbfcff 100%); }
.ifp-b2dp-planner-app .ifp-p-block h5 { margin:0 0 10px; font-size:.95rem; }
.ifp-b2dp-planner-app .ifp-p-summary-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.ifp-b2dp-planner-app .ifp-p-stat { border:1px solid var(--line); border-radius:14px; padding:12px; background:#fff; }
.ifp-b2dp-planner-app .ifp-p-stat .ifp-p-label { font-size:.74rem; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); margin-bottom:6px; font-weight:700; }
.ifp-b2dp-planner-app .ifp-p-stat .ifp-p-value { font-size:1.35rem; font-weight:900; }
.ifp-b2dp-planner-app table { width:100%; border-collapse:collapse; font-size:.9rem; }
.ifp-b2dp-planner-app th, .ifp-b2dp-planner-app td { text-align:left; padding:10px 8px; border-bottom:1px solid #edf1f7; vertical-align:top; }
.ifp-b2dp-planner-app th { color:var(--muted); font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; font-weight:800; background:#f8faff; position:sticky; top:0; }
.ifp-b2dp-planner-app .ifp-p-table-wrap { max-height:310px; overflow:auto; border:1px solid var(--line); border-radius:14px; background:#fff; }
.ifp-b2dp-planner-app .ifp-p-mini-list { display:grid; gap:8px; }
.ifp-b2dp-planner-app .ifp-p-mini-item { display:flex; justify-content:space-between; gap:12px; border:1px solid var(--line); border-radius:12px; padding:8px 10px; background:#fff; font-size:.88rem; }
.ifp-b2dp-planner-app .ifp-p-empty { border:1px dashed var(--line); border-radius:14px; padding:16px; color:var(--muted); background:#fcfdff; text-align:center; }
.ifp-b2dp-planner-app .ifp-p-hint { font-size:.82rem; color:var(--muted); line-height:1.45; }
.ifp-b2dp-planner-app .ifp-p-row-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:10px; }
.ifp-b2dp-planner-app .ifp-p-stack-small { display:grid; gap:10px; }
.ifp-b2dp-planner-app .ifp-p-price-panel { display:grid; gap:10px; padding:12px 14px; border:1px solid var(--line); border-radius:14px; background:linear-gradient(180deg,#ffffff 0%,#f7fbff 100%); }
.ifp-b2dp-planner-app .ifp-p-price-panel__title { font-size:.76rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.ifp-b2dp-planner-app .ifp-p-price-panel__rows { display:grid; gap:8px; }
.ifp-b2dp-planner-app .ifp-p-price-panel__row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 10px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.ifp-b2dp-planner-app .ifp-p-price-panel__row span { color:var(--muted); font-size:.82rem; }
.ifp-b2dp-planner-app .ifp-p-price-panel__row strong { font-size:.92rem; }
.ifp-b2dp-planner-app .ifp-p-price-panel__row.is-total { background:#eef4ff; border-color:#c7d7fb; }
.ifp-b2dp-planner-app .ifp-p-price-panel__row.is-total strong { font-size:1rem; }
.ifp-b2dp-planner-app .ifp-p-price-panel__hint { font-size:.78rem; line-height:1.5; color:var(--muted); }
.ifp-b2dp-planner-app .ifp-p-toggle { display:flex; align-items:center; gap:10px; min-height:42px; padding:10px 12px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.ifp-b2dp-planner-app .ifp-p-meta-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:16px; }
@media (max-width:1450px){ .ifp-b2dp-planner-app .ifp-p-layout{grid-template-columns:1fr;} .ifp-b2dp-planner-app .ifp-p-catalog{max-height:none;} }
@media (max-width:1100px){ .ifp-b2dp-planner-app .ifp-p-topbar, .ifp-b2dp-planner-app .ifp-p-project-grid, .ifp-b2dp-planner-app .ifp-p-summary-grid, .ifp-b2dp-planner-app .ifp-p-meta-grid { grid-template-columns:1fr; } }
.ifp-b2dp-frontend-wrap { margin: 24px 0; }
.ifp-b2dp-front-intro { margin-bottom: 16px; }
.ifp-b2dp-front-intro h2 { margin: 0 0 8px; }
.ifp-b2dp-front-intro p { margin: 0; color: #66758c; }
.ifp-b2dp-planner-app .ifp-p-status-badge { display:inline-flex; align-items:center; min-height:42px; padding:8px 12px; border-radius:12px; background:#f3f6fb; border:1px solid var(--line); font-weight:700; color:var(--muted); }
.ifp-b2dp-planner-app .ifp-p-status-badge.is-success { background:#eefaf3; border-color:#b9e2ca; color:#0d8f53; }
.ifp-b2dp-planner-app .ifp-p-status-badge.is-error { background:#fff3f3; border-color:#f2c8c8; color:#b92c2c; }
.ifp-b2dp-planner-app .ifp-p-status-badge.is-info { background:#f3f6fb; border-color:#d7deea; color:#2457ff; }
.ifp-b2dp-planner-app .ifp-p-schema-preview { margin:0; white-space:pre-wrap; word-break:break-word; font-size:12px; line-height:1.5; color:var(--muted); }

.ifp-b2dp-planner-app .ifp-p-toggle input { width:auto; min-height:0; }

.ifp-b2dp-planner-app .ifp-p-field--accessory-select { gap:8px; }
.ifp-b2dp-planner-app .ifp-p-accessory-select-preview { display:flex; align-items:center; gap:12px; min-height:74px; padding:10px 12px; border:1px solid var(--line); border-radius:14px; background:linear-gradient(180deg,#fff 0%,#f8fbff 100%); }
.ifp-b2dp-planner-app .ifp-p-accessory-select-preview.is-empty { border-style:dashed; }
.ifp-b2dp-planner-app .ifp-p-accessory-select-preview__meta { display:grid; gap:4px; min-width:0; }
.ifp-b2dp-planner-app .ifp-p-accessory-select-preview__meta strong { font-size:.94rem; }
.ifp-b2dp-planner-app .ifp-p-accessory-select-preview__meta span { font-size:.78rem; color:var(--muted); line-height:1.4; }
.ifp-b2dp-planner-app .ifp-p-accessory-thumb { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; width:44px; height:44px; overflow:hidden; border-radius:12px; border:1px solid var(--line); background:linear-gradient(180deg,#fff 0%,#f3f7ff 100%); }
.ifp-b2dp-planner-app .ifp-p-accessory-thumb img { display:block; width:100%; height:100%; object-fit:cover; }
.ifp-b2dp-planner-app .ifp-p-accessory-thumb__placeholder { display:inline-flex; align-items:center; justify-content:center; width:100%; height:100%; font-size:.82rem; font-weight:800; color:var(--muted); }
.ifp-b2dp-planner-app .ifp-p-accessory-thumb--medium { width:56px; height:56px; border-radius:14px; }
.ifp-b2dp-planner-app .ifp-p-accessory-thumb--small { width:48px; height:48px; border-radius:14px; }
.ifp-b2dp-planner-app .ifp-p-accessory-thumb--tiny { width:28px; height:28px; border-radius:9px; }
.ifp-b2dp-planner-app .ifp-p-toggle--accessory { align-items:flex-start; }
.ifp-b2dp-planner-app .ifp-p-accessory-option__body { display:flex; align-items:center; gap:12px; min-width:0; }
.ifp-b2dp-planner-app .ifp-p-accessory-option__meta { display:grid; gap:3px; min-width:0; }
.ifp-b2dp-planner-app .ifp-p-accessory-option__meta strong { font-size:.92rem; }
.ifp-b2dp-planner-app .ifp-p-accessory-option__meta em { font-style:normal; font-size:.78rem; }
.ifp-b2dp-planner-app .ifp-p-accessory-inline-list { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.ifp-b2dp-planner-app .ifp-p-accessory-chip { display:inline-flex; align-items:center; gap:6px; padding:4px 8px 4px 4px; border:1px solid var(--line); border-radius:999px; background:#f8fbff; font-size:.78rem; line-height:1.2; }
.ifp-b2dp-planner-app .ifp-p-mini-item--accessory { align-items:center; }
.ifp-b2dp-planner-app .ifp-p-mini-item__label { display:flex; align-items:center; gap:10px; min-width:0; }


.ifp-b2dp-frontend-wrap { display:grid; gap:18px; }
.ifp-b2dp-front-intro { margin-bottom:4px; }
.ifp-b2dp-front-intro h2 { margin:0 0 8px; }
.ifp-b2dp-front-intro p { margin:0; color:#4e5f78; line-height:1.6; }

@media (max-width: 1320px) {
  .ifp-b2dp-planner-app .ifp-p-layout { grid-template-columns:1fr; }
  .ifp-b2dp-planner-app .ifp-p-topbar { grid-template-columns:1fr; }
}

@media (max-width: 860px) {
  .ifp-b2dp-planner-app .ifp-p-project-grid { grid-template-columns:1fr; }
  .ifp-b2dp-planner-app .ifp-p-workspace-tools { flex-wrap:wrap; }
  .ifp-b2dp-planner-app { --workspace-h: 560px; }
}


.ifp-b2dp-frontend-wrap .ifp-b2dp-front-intro {
  margin: 0 0 18px;
}
.ifp-b2dp-frontend-wrap .ifp-b2dp-front-intro h2 {
  margin: 0 0 8px;
}
.ifp-b2dp-frontend-wrap .ifp-b2dp-front-intro p {
  margin: 0;
  color: #516173;
  line-height: 1.55;
}
.ifp-b2dp-front-cta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  margin: 0 0 18px;
  padding: 16px 18px;
  border: 1px solid #d7deea;
  border-radius: 16px;
  background: linear-gradient(180deg, #f8fbff 0%, #f3f7fc 100%);
}
.ifp-b2dp-front-cta__content h3 {
  margin: 0 0 6px;
  font-size: 18px;
}
.ifp-b2dp-front-cta__content p {
  margin: 0;
  color: #516173;
  line-height: 1.55;
}
.ifp-b2dp-front-cta__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 16px;
  border-radius: 12px;
  background: #2457ff;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
}
.ifp-b2dp-front-cta__button:hover {
  background: #1b43c2;
  color: #fff;
}
@media (max-width: 900px) {
  .ifp-b2dp-front-cta {
    grid-template-columns: 1fr;
  }
}


.ifp-b2dp-planner-app .ifp-p-file-meta { margin-top:6px; font-size:.82rem; color:var(--muted); word-break:break-word; }


.ifp-b2dp-front-loader { background:#fff; border:1px dashed #cfd8e6; border-radius:16px; padding:18px 20px; color:#516079; font-weight:600; }
.ifp-b2dp-success-panel[hidden] { display:none !important; }
.ifp-b2dp-success-panel { margin-top:18px; }
.ifp-b2dp-success-panel__card { background:linear-gradient(135deg, #f2f8ff 0%, #ffffff 100%); border:1px solid #d7e3f6; border-radius:24px; padding:28px; box-shadow:var(--shadow); }
.ifp-b2dp-success-panel__eyebrow { display:inline-flex; margin-bottom:10px; padding:6px 10px; border-radius:999px; background:#e6f8ee; color:#0d8f53; font-weight:700; font-size:.85rem; }
.ifp-b2dp-success-panel__card h3 { margin:0 0 10px; font-size:clamp(1.5rem, 2vw, 2rem); }
.ifp-b2dp-success-panel__card p { margin:0; max-width:780px; line-height:1.65; color:#5b677b; }
.ifp-b2dp-success-panel__request { margin-top:14px; font-weight:700; color:#1a2331; }
.ifp-b2dp-success-panel__actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:18px; }
.ifp-b2dp-success-panel__button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:10px 16px; border-radius:12px; text-decoration:none; border:0; cursor:pointer; background:#2457ff; color:#fff; font-weight:700; }
.ifp-b2dp-success-panel__button:hover { color:#fff; background:#1b43c2; }
.ifp-b2dp-success-panel__button--secondary { background:#eef2f7; color:#1a2331; border:1px solid #d7deea; }
.ifp-b2dp-success-panel__button--secondary:hover { color:#1a2331; background:#e4eaf3; }



.ifp-b2dp-front-intro__eyebrow {
  display:inline-flex;
  margin:0 0 10px;
  padding:6px 10px;
  border-radius:999px;
  background:#eaf1ff;
  color:#2457ff;
  font-weight:800;
  font-size:.8rem;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.ifp-b2dp-front-badges {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:14px;
}
.ifp-b2dp-front-badge {
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:6px 10px;
  border-radius:999px;
  background:#fff;
  border:1px solid #d7deea;
  color:#42526a;
  font-weight:700;
  font-size:.84rem;
}
.ifp-b2dp-front-helper {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-top:-4px;
}
.ifp-b2dp-front-helper__item {
  display:grid;
  gap:6px;
  padding:14px 16px;
  border:1px solid #d7deea;
  border-radius:16px;
  background:#fff;
}
.ifp-b2dp-front-helper__item strong { font-size:.95rem; }
.ifp-b2dp-front-helper__item span { color:#516173; line-height:1.55; font-size:.92rem; }

.ifp-b2dp-planner-app--frontend .ifp-p-hero {
  margin-bottom:14px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-summary {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-bottom:16px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-summary__item {
  display:grid;
  gap:6px;
  padding:14px 16px;
  border:1px solid rgba(215,222,234,.95);
  border-radius:16px;
  background:linear-gradient(180deg,#ffffff 0%, #f8fbff 100%);
  box-shadow:0 12px 30px rgba(22, 37, 66, 0.06);
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-summary__item strong {
  font-size:.95rem;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-summary__item span {
  color:var(--muted);
  line-height:1.5;
  font-size:.9rem;
}
.ifp-b2dp-planner-app .ifp-p-section-kicker {
  margin-bottom:10px;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--brand);
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-note {
  margin-top:12px;
  padding:10px 12px;
  border-radius:12px;
  background:#f6f9ff;
  border:1px solid #dbe6ff;
  color:#506079;
  font-size:.88rem;
  line-height:1.5;
}
.ifp-b2dp-planner-app--frontend .ifp-p-project-card,
.ifp-b2dp-planner-app--frontend .ifp-p-actions-card,
.ifp-b2dp-planner-app--frontend .ifp-p-panel,
.ifp-b2dp-planner-app--frontend .ifp-p-workspace-card {
  box-shadow:0 16px 38px rgba(22, 37, 66, 0.08);
}
.ifp-b2dp-planner-app--frontend .ifp-p-panel-header h3,
.ifp-b2dp-planner-app--frontend .ifp-p-panel-header h4 {
  font-size:1.02rem;
}
@media (max-width: 960px) {
  .ifp-b2dp-front-helper,
  .ifp-b2dp-planner-app--frontend .ifp-p-front-summary {
    grid-template-columns:1fr;
  }
}

.ifp-p-btn.is-active{box-shadow:0 0 0 2px rgba(37,87,255,.18) inset;border-color:#2457ff;color:#163bb7;font-weight:700}

.ifp-p-btn.is-disabled,
.ifp-p-btn:disabled{opacity:.55;cursor:not-allowed;}


.ifp-b2dp-planner-app .ifp-p-field-help { font-size:.75rem; color:var(--muted); line-height:1.4; }
.ifp-b2dp-planner-app .ifp-p-help-tip { display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; margin-left:6px; border-radius:999px; background:#eef3ff; border:1px solid #cfd8f0; color:#2457ff; font-size:.72rem; font-weight:800; cursor:help; vertical-align:middle; }
.ifp-b2dp-planner-app .ifp-p-help-tip:focus { outline:2px solid rgba(36,87,255,.25); outline-offset:2px; }
.ifp-b2dp-planner-app .ifp-p-inline-notice { display:inline-block; margin-left:6px; color:#c62828; font-size:inherit; font-weight:700; vertical-align:middle; }


.ifp-p-placed-item {
  touch-action: none;
}

.ifp-p-item-resize-handle {
  position: absolute;
  right: -9px;
  bottom: -9px;
  width: 18px;
  height: 18px;
  border: 2px solid #fff;
  border-radius: 999px;
  background: #2457ff;
  box-shadow: 0 3px 12px rgba(15, 23, 42, 0.28);
  cursor: nwse-resize;
  z-index: 4;
}

.ifp-p-item-resize-handle::before,
.ifp-p-item-resize-handle::after {
  content: '';
  position: absolute;
  background: #fff;
  border-radius: 2px;
}

.ifp-p-item-resize-handle::before {
  width: 10px;
  height: 2px;
  left: 2px;
  top: 7px;
  transform: rotate(45deg);
}

.ifp-p-item-resize-handle::after {
  width: 2px;
  height: 10px;
  left: 7px;
  top: 2px;
  transform: rotate(45deg);
}

.ifp-p-selected .ifp-p-item-resize-handle {
  opacity: 1;
}

.ifp-p-placed-item:not(.ifp-p-selected) .ifp-p-item-resize-handle {
  opacity: 0;
  pointer-events: none;
}


.ifp-p-is-dragging,
.ifp-p-is-dragging * {
  cursor: grabbing !important;
}

.ifp-p-placed-item.ifp-p-dragging {
  opacity: .98;
}


.ifp-p-placed-item svg,
.ifp-p-placed-item svg * {
  pointer-events: none;
}

.ifp-p-is-resizing,
.ifp-p-is-resizing * {
  cursor: nwse-resize !important;
}


.ifp-b2dp-planner-app:fullscreen,
.ifp-b2dp-planner-app.ifp-p-app-fullscreen-fallback {
  background: var(--bg);
  padding: 18px;
  width: 100vw;
  height: 100vh;
  overflow: auto;
  z-index: 999999;
}

.ifp-b2dp-planner-app:fullscreen .ifp-p-app,
.ifp-b2dp-planner-app.ifp-p-app-fullscreen-fallback .ifp-p-app {
  max-width: none;
}

.ifp-b2dp-planner-app:fullscreen,
.ifp-b2dp-planner-app.ifp-p-app-fullscreen-fallback {
  --workspace-h: calc(100vh - 320px);
}

.ifp-b2dp-planner-app:fullscreen .ifp-p-main,
.ifp-b2dp-planner-app.ifp-p-app-fullscreen-fallback .ifp-p-main {
  min-height: calc(100vh - 260px);
}

.ifp-b2dp-planner-app:fullscreen .ifp-p-workspace,
.ifp-b2dp-planner-app.ifp-p-app-fullscreen-fallback .ifp-p-workspace {
  min-height: max(620px, calc(100vh - 360px));
}

@media (max-width: 980px) {
  .ifp-b2dp-planner-app:fullscreen,
  .ifp-b2dp-planner-app.ifp-p-app-fullscreen-fallback {
    --workspace-h: calc(100vh - 380px);
  }
}


.ifp-b2dp-planner-app .ifp-p-workspace-card,
.ifp-b2dp-planner-app .ifp-p-workspace-head,
.ifp-b2dp-planner-app .ifp-p-workspace-tools {
  position: relative;
}

.ifp-b2dp-planner-app .ifp-p-workspace-head,
.ifp-b2dp-planner-app .ifp-p-workspace-tools,
.ifp-b2dp-planner-app .ifp-p-workspace-tools .ifp-p-btn,
.ifp-b2dp-planner-app .ifp-p-workspace-tools .ifp-p-field {
  z-index: 8;
  pointer-events: auto;
}

.ifp-b2dp-planner-app .ifp-p-workspace-wrap,
.ifp-b2dp-planner-app .ifp-p-workspace {
  position: relative;
  z-index: 1;
}


.ifp-b2dp-planner-app .ifp-p-workspace-wrap {
  position: relative;
  padding-top: 82px;
}

.ifp-b2dp-planner-app .ifp-p-workspace-tools-dock {
  position: sticky;
  top: 0;
  z-index: 60;
  margin: 0 0 12px;
  pointer-events: none;
}

.ifp-b2dp-planner-app .ifp-p-workspace-tools-dock .ifp-p-workspace-tools {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 10px 24px rgba(15,23,42,.08);
  backdrop-filter: blur(8px);
  pointer-events: auto;
}

.ifp-b2dp-planner-app .ifp-p-workspace-head {
  align-items: flex-start;
}

.ifp-b2dp-planner-app .ifp-p-workspace-head > .ifp-p-workspace-tools {
  display: none;
}

.ifp-b2dp-planner-app .ifp-p-workspace-tools-dock .ifp-p-mini {
  width: 140px;
}

.ifp-b2dp-planner-app .ifp-p-workspace-tools-dock input[type="range"] {
  width: 100%;
  cursor: pointer;
}

.ifp-b2dp-planner-app .ifp-p-workspace {
  z-index: 1;
}


/* v0.1.33 toolbar restore: keep the original full toolbar visible and usable */
.ifp-b2dp-planner-app .ifp-p-workspace-wrap {
  padding-top: 16px;
}

.ifp-b2dp-planner-app .ifp-p-workspace-head {
  align-items: center;
}

.ifp-b2dp-planner-app .ifp-p-workspace-head > .ifp-p-workspace-tools {
  display: flex;
}

.ifp-b2dp-planner-app .ifp-p-workspace-tools-dock {
  display: none !important;
}

.ifp-b2dp-planner-app .ifp-p-workspace-head,
.ifp-b2dp-planner-app .ifp-p-workspace-tools,
.ifp-b2dp-planner-app .ifp-p-workspace-tools .ifp-p-btn,
.ifp-b2dp-planner-app .ifp-p-workspace-tools .ifp-p-field {
  z-index: auto;
  pointer-events: auto;
}

.ifp-b2dp-planner-app .ifp-p-workspace-tools {
  justify-content: flex-end;
}

.ifp-b2dp-planner-app .ifp-p-workspace-tools .ifp-p-btn.is-active {
  background: var(--brand);
  color: #fff;
  border-color: var(--brand);
}


.ifp-b2dp-planner-app .ifp-p-fullscreen-close[hidden] { display:none !important; }
.ifp-b2dp-planner-app .ifp-p-fullscreen-close {
  min-width: 44px;
  padding-inline: 12px;
  font-size: 20px;
  line-height: 1;
}
.ifp-b2dp-planner-app:fullscreen .ifp-p-workspace-head,
.ifp-b2dp-planner-app.ifp-p-app-fullscreen-fallback .ifp-p-workspace-head {
  position: sticky;
  top: 0;
  z-index: 20;
  background: var(--panel);
}

.ifp-b2dp-planner-app .ifp-p-project-grid--frontend-minimal {
  grid-template-columns: repeat(2, minmax(160px, 220px));
  align-items: end;
}
.ifp-b2dp-planner-app--frontend .ifp-p-actions-card {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
}


.ifp-b2dp-planner-app .ifp-p-step-switcher { display:flex; gap:10px; margin-bottom:14px; }
.ifp-b2dp-planner-app .ifp-p-step-btn { appearance:none; border:1px solid var(--line); background:var(--surface-2); color:var(--text); min-height:42px; padding:10px 14px; border-radius:12px; cursor:pointer; font-weight:800; }
.ifp-b2dp-planner-app .ifp-p-step-btn.is-active { background:var(--brand); border-color:var(--brand); color:#fff; }
.ifp-b2dp-planner-app .ifp-p-step-panel { display:none; }
.ifp-b2dp-planner-app .ifp-p-step-panel.is-active { display:block; }
.ifp-b2dp-planner-app .ifp-p-step-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; }



/* Phase 39 fix: compact 2-step frontend layout without function loss */
.ifp-b2dp-planner-root[data-current-step],
.ifp-b2dp-planner[data-current-step] {
  --ifp-right-col: 360px;
  --ifp-gap: 18px;
}

.ifp-b2dp-planner-root .ifp-b2dp-right-sidebar,
.ifp-b2dp-planner .ifp-b2dp-right-sidebar,
.ifp-b2dp-planner-root .ifp-b2dp-sidebar-right,
.ifp-b2dp-planner .ifp-b2dp-sidebar-right {
  position: sticky;
  top: 24px;
  align-self: start;
  max-height: calc(100vh - 40px);
  overflow: auto;
}

.ifp-b2dp-planner-root [data-step-tabs],
.ifp-b2dp-planner [data-step-tabs] {
  display: flex;
  gap: 10px;
  margin-bottom: 12px;
}

.ifp-b2dp-planner-root [data-step-nav],
.ifp-b2dp-planner [data-step-nav] {
  appearance: none;
  border: 1px solid #d8dfeb;
  background: #fff;
  border-radius: 999px;
  padding: 10px 14px;
  font-weight: 600;
  cursor: pointer;
}

.ifp-b2dp-planner-root [data-step-nav].is-active,
.ifp-b2dp-planner [data-step-nav].is-active {
  background: #2f5bff;
  color: #fff;
  border-color: #2f5bff;
}

.ifp-b2dp-planner-root [data-step-panel="customer"],
.ifp-b2dp-planner [data-step-panel="customer"] {
  display: none;
}

.ifp-b2dp-planner-root[data-current-step="customer"] [data-step-panel="customer"],
.ifp-b2dp-planner[data-current-step="customer"] [data-step-panel="customer"] {
  display: block;
}

.ifp-b2dp-planner-root[data-current-step="customer"] [data-step-panel="planning"],
.ifp-b2dp-planner[data-current-step="customer"] [data-step-panel="planning"] {
  display: none;
}

.ifp-b2dp-planner-root .ifp-b2dp-customer-step-card,
.ifp-b2dp-planner .ifp-b2dp-customer-step-card {
  background: #fff;
  border: 1px solid #dde4ef;
  border-radius: 16px;
  padding: 14px;
}

.ifp-b2dp-planner-root .ifp-b2dp-step-actions,
.ifp-b2dp-planner .ifp-b2dp-step-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 12px;
}

.ifp-b2dp-planner-root .ifp-b2dp-contact-grid,
.ifp-b2dp-planner .ifp-b2dp-contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 12px;
}

.ifp-b2dp-planner-root .ifp-b2dp-contact-grid .ifp-b2dp-field--full,
.ifp-b2dp-planner .ifp-b2dp-contact-grid .ifp-b2dp-field--full {
  grid-column: 1 / -1;
}

@media (max-width: 1100px) {
  .ifp-b2dp-planner-root .ifp-b2dp-right-sidebar,
  .ifp-b2dp-planner .ifp-b2dp-right-sidebar,
  .ifp-b2dp-planner-root .ifp-b2dp-sidebar-right,
  .ifp-b2dp-planner .ifp-b2dp-sidebar-right {
    position: static;
    max-height: none;
    overflow: visible;
  }
}

@media (max-width: 767px) {
  .ifp-b2dp-planner-root .ifp-b2dp-contact-grid,
  .ifp-b2dp-planner .ifp-b2dp-contact-grid {
    grid-template-columns: 1fr;
  }
}


/* v0.1.41 frontend request overview */
.ifp-p-request-summary {
  background: linear-gradient(180deg, #f7faff 0%, #ffffff 100%);
  border: 1px solid #d9e3ff;
}
.ifp-p-request-summary .ifp-p-mini-list {
  max-height: 220px;
  overflow: auto;
}
.ifp-p-step-panel[hidden] {
  display: none !important;
}



/* v0.1.42 frontend simplification */
body:not(.wp-admin) .ifp-b2dp-planner-root .ifp-b2dp-field--element-color,
body:not(.wp-admin) .ifp-b2dp-planner-root [data-field="element-color"],
body:not(.wp-admin) .ifp-b2dp-planner-root .ifp-b2dp-project-color,
body:not(.wp-admin) .ifp-b2dp-planner-root [name="elementColor"],
body:not(.wp-admin) .ifp-b2dp-planner-root input[type="color"] {
  display: none !important;
}

/* v0.1.44 frontend 3-step flow + live summary */
.ifp-b2dp-planner-app .ifp-p-catalog-card:focus-visible {
  outline: 3px solid rgba(36,87,255,.22);
  outline-offset: 2px;
}

.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary {
  display: grid;
  gap: 16px;
  margin: 0 0 18px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__head h3 {
  margin: 0 0 6px;
  font-size: clamp(1.2rem, 1.7vw, 1.55rem);
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__head p {
  margin: 0;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__grid > .ifp-p-block {
  margin-top: 0 !important;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__wide {
  grid-column: 1 / -1;
}
.ifp-b2dp-planner-app--frontend .ifp-p-global-step-switcher {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 0 0 18px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-stage-panel {
  display: none;
  margin-top: 18px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-stage-panel.is-active {
  display: block;
}
.ifp-b2dp-planner-app--frontend .ifp-p-stage-card {
  display: grid;
  gap: 16px;
  padding: 20px;
  border: 1px solid #d7deea;
  border-radius: 22px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  box-shadow: 0 18px 42px rgba(22, 37, 66, 0.08);
}
.ifp-b2dp-planner-app--frontend .ifp-p-stage-heading h3 {
  margin: 0 0 6px;
  font-size: clamp(1.3rem, 1.9vw, 1.7rem);
}
.ifp-b2dp-planner-app--frontend .ifp-p-stage-heading p {
  margin: 0;
}
.ifp-b2dp-planner-app--frontend .ifp-p-stage-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-stage-grid__wide {
  grid-column: 1 / -1;
}
.ifp-b2dp-planner-app--frontend #ifpPStepPlanningPanel > .ifp-p-block + .ifp-p-block {
  margin-top: 14px;
}

@media (max-width: 980px) {
  .ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__grid,
  .ifp-b2dp-planner-app--frontend .ifp-p-stage-grid {
    grid-template-columns: 1fr;
  }
}


/* v0.1.45 compact live summary + separate customer stage */
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary {
  gap: 10px;
  margin: 0 0 14px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__head .ifp-p-section-kicker {
  margin-bottom: 6px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__head h3 {
  margin: 0 0 2px;
  font-size: clamp(1.05rem, 1.45vw, 1.28rem);
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__head p {
  font-size: .88rem;
  line-height: 1.45;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__grid > .ifp-p-block {
  padding: 10px 12px;
  border-radius: 12px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__grid > .ifp-p-block h5 {
  margin: 0 0 8px;
  font-size: .86rem;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__grid .ifp-p-summary-grid {
  gap: 8px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__grid .ifp-p-stat {
  padding: 8px 9px;
  border-radius: 10px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__grid .ifp-p-stat .ifp-p-label {
  margin-bottom: 4px;
  font-size: .66rem;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__grid .ifp-p-stat .ifp-p-value {
  font-size: 1rem;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__grid .ifp-p-table-wrap {
  max-height: 180px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__grid th,
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__grid td {
  padding: 6px 6px;
  font-size: .82rem;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__grid .ifp-p-mini-list {
  gap: 6px;
  max-height: 168px;
  overflow: auto;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__grid .ifp-p-mini-item {
  padding: 6px 8px;
  border-radius: 10px;
  font-size: .82rem;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__grid .ifp-p-hint {
  font-size: .78rem;
  margin-bottom: 6px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__wide {
  grid-column: span 2;
}
.ifp-b2dp-planner-app--frontend .ifp-p-global-step-switcher {
  margin: 0 0 14px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-stage-panel--contact {
  margin-top: 0;
}
.ifp-b2dp-planner-app--frontend .ifp-p-stage-card--contact {
  gap: 18px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-contact-block {
  padding: 16px 18px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-contact-block > h5 {
  margin: 0 0 12px;
  font-size: 1rem;
}
.ifp-b2dp-planner-app--frontend .ifp-p-contact-stack {
  gap: 14px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-contact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 16px;
  align-items: start;
}
.ifp-b2dp-planner-app--frontend .ifp-p-contact-grid > .ifp-p-field {
  margin: 0;
}
.ifp-b2dp-planner-app--frontend .ifp-p-contact-grid > .ifp-p-field label {
  margin-bottom: 6px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-contact-grid__full {
  grid-column: 1 / -1;
}
.ifp-b2dp-planner-app--frontend .ifp-p-contact-grid textarea {
  min-height: 140px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-contact-privacy {
  padding: 12px 14px;
  border: 1px solid #d7deea;
  border-radius: 14px;
  background: #f9fbff;
}
.ifp-b2dp-planner-app--frontend .ifp-p-step-actions--contact {
  justify-content: space-between;
  align-items: center;
}

@media (max-width: 1180px) {
  .ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .ifp-b2dp-planner-app--frontend .ifp-p-contact-grid {
    grid-template-columns: 1fr;
  }
  .ifp-b2dp-planner-app--frontend .ifp-p-step-actions--contact {
    justify-content: flex-start;
  }
}

@media (max-width: 760px) {
  .ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__grid {
    grid-template-columns: 1fr;
  }
  .ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__wide {
    grid-column: auto;
  }
}

/* v0.1.46 compact accordion summary on step 1 */
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary {
  display: grid;
  gap: 10px;
  margin: 0 0 12px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 14px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__primary {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__step-actions {
  margin: 0;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__step-actions .ifp-p-btn {
  min-height: 42px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__compact {
  display: grid;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__compact > .ifp-p-block {
  margin: 0;
  padding: 12px 14px;
  border-radius: 16px;
  box-shadow: 0 10px 24px rgba(22, 37, 66, 0.06);
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__compact > .ifp-p-block h5 {
  margin: 0 0 8px;
  font-size: .9rem;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__compact .ifp-p-summary-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__compact .ifp-p-stat {
  padding: 10px 12px;
  border-radius: 12px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__compact .ifp-p-label {
  font-size: .68rem;
  margin-bottom: 4px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__compact .ifp-p-value {
  font-size: 1rem;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__details {
  padding: 14px;
  border: 1px solid #d7deea;
  border-radius: 18px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  box-shadow: 0 16px 36px rgba(22, 37, 66, 0.07);
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__details[hidden] {
  display: none;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__grid > .ifp-p-block {
  margin: 0;
  padding: 12px 14px;
  border-radius: 14px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__grid > .ifp-p-block h5 {
  margin: 0 0 8px;
  font-size: .9rem;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__wide {
  grid-column: 1 / -1;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__grid .ifp-p-table-wrap {
  max-height: 220px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__grid .ifp-p-mini-list {
  max-height: 200px;
  overflow: auto;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__toggle {
  white-space: nowrap;
}

@media (max-width: 980px) {
  .ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__head {
    align-items: stretch;
    flex-direction: column;
  }
  .ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__actions,
  .ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__primary {
    justify-content: flex-start;
  }
  .ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__compact .ifp-p-summary-grid,
  .ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__actions,
  .ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__primary,
  .ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__step-actions {
    width: 100%;
  }
  .ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__toggle,
  .ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__step-actions .ifp-p-btn {
    width: 100%;
  }
}


/* v0.1.47 responsive contact grid + required markers */
.ifp-b2dp-planner-app .ifp-p-contact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.ifp-b2dp-planner-app .ifp-p-contact-grid__wide {
  grid-column: 1 / -1;
}
.ifp-b2dp-planner-app .ifp-p-required {
  display: inline-block;
  margin-left: 4px;
  color: #c62828;
  font-weight: 800;
}
.ifp-b2dp-planner-app .ifp-p-field.is-required label {
  color: #1a2331;
}
.ifp-b2dp-planner-app .ifp-p-contact-grid .ifp-p-toggle {
  height: 100%;
}
@media (max-width: 860px) {
  .ifp-b2dp-planner-app .ifp-p-contact-grid {
    grid-template-columns: 1fr;
  }
  .ifp-b2dp-planner-app .ifp-p-contact-grid__wide {
    grid-column: auto;
  }
}

.ifp-b2dp-planner-app .ifp-p-project-grid--frontend-extended {
  grid-template-columns: repeat(4, minmax(180px, 1fr));
}
.ifp-b2dp-planner-app .ifp-p-project-grid--frontend-notes {
  grid-template-columns: 1fr;
}

.ifp-b2dp-planner-app .ifp-p-project-section--defaults {
  display: grid;
  gap: 10px;
}
.ifp-b2dp-planner-app .ifp-p-project-section--separated {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px dashed rgba(180, 193, 216, 0.9);
}
.ifp-b2dp-planner-app .ifp-p-section-kicker--sub {
  margin-bottom: 0;
}
.ifp-b2dp-planner-app .ifp-p-hint--project-section {
  margin: 0;
}
.ifp-b2dp-planner-app .ifp-p-project-grid--frontend-defaults {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}
.ifp-b2dp-planner-app .ifp-p-field--full {
  grid-column: 1 / -1;
}
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__compact.is-disabled,
.ifp-b2dp-planner-app--frontend .ifp-p-front-live-summary__compact[hidden] {
  display: none !important;
}
@media (max-width: 1180px) {
  .ifp-b2dp-planner-app .ifp-p-project-grid--frontend-extended {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 720px) {
  .ifp-b2dp-planner-app .ifp-p-project-grid--frontend-minimal,
  .ifp-b2dp-planner-app .ifp-p-project-grid--frontend-extended,
  .ifp-b2dp-planner-app .ifp-p-project-grid--frontend-defaults {
    grid-template-columns: 1fr;
  }
}


/* v0.1.49 bottom next action under workspace */
.ifp-b2dp-planner-app--frontend .ifp-p-workspace-step-next {
  padding: 14px 18px 18px;
  border-top: 1px solid rgba(215, 222, 234, 0.92);
  background: linear-gradient(180deg, rgba(248, 251, 255, 0) 0%, rgba(248, 251, 255, 0.92) 100%);
}
.ifp-b2dp-planner-app--frontend .ifp-p-workspace-step-next[hidden] {
  display: none;
}
.ifp-b2dp-planner-app--frontend .ifp-p-workspace-step-next__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 16px;
  border: 1px solid rgba(36, 87, 255, 0.12);
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(36, 87, 255, 0.05) 0%, rgba(245, 248, 255, 0.96) 100%);
}
.ifp-b2dp-planner-app--frontend .ifp-p-workspace-step-next__text {
  display: grid;
  gap: 2px;
}
.ifp-b2dp-planner-app--frontend .ifp-p-workspace-step-next__text strong {
  color: #14233f;
  font-size: .98rem;
}
.ifp-b2dp-planner-app--frontend .ifp-p-workspace-step-next__text span {
  color: #53637d;
  font-size: .88rem;
}
.ifp-b2dp-planner-app--frontend .ifp-p-workspace-step-next .ifp-p-btn {
  min-width: 220px;
}
@media (max-width: 780px) {
  .ifp-b2dp-planner-app--frontend .ifp-p-workspace-step-next__inner {
    flex-direction: column;
    align-items: stretch;
  }
  .ifp-b2dp-planner-app--frontend .ifp-p-workspace-step-next .ifp-p-btn {
    width: 100%;
    min-width: 0;
  }
}


.ifp-p-btn.is-disabled,
.ifp-p-btn[aria-disabled="true"] {
  opacity: .62;
  cursor: not-allowed;
  filter: grayscale(.05);
}

.ifp-p-catalog-card[data-card-preview-id] {
  cursor: default;
}


.ifp-b2dp-planner-app .ifp-p-project-grid--admin-meta {
  grid-template-columns: repeat(3, minmax(180px, 1fr));
}
.ifp-b2dp-planner-app .ifp-p-project-section--admin-defaults {
  margin-top: 14px;
}
.ifp-b2dp-planner-app .ifp-p-project-grid--admin-defaults {
  grid-template-columns: repeat(4, minmax(180px, 1fr));
}
@media (max-width: 1180px) {
  .ifp-b2dp-planner-app .ifp-p-project-grid--admin-defaults {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 860px) {
  .ifp-b2dp-planner-app .ifp-p-project-grid--admin-meta,
  .ifp-b2dp-planner-app .ifp-p-project-grid--admin-defaults {
    grid-template-columns: 1fr;
  }
}

@media (max-width:640px){ .ifp-b2dp-planner-app .ifp-p-accessory-select-preview{align-items:flex-start;} .ifp-b2dp-planner-app .ifp-p-accessory-chip{max-width:100%;} }
