/* ipp-picker-v1.10.css */
/* ============================================================
   ipp-picker-v1.10.css — Picker view
   CHANGELOG
     v1.10 (from v1.9, first live look at WLN-998 on a wide screen):
       - Tiles keep a working size on wide screens. Article tiles were
         stretching to a sixth of the canvas (about 300px wide and very
         tall); banner tiles to a quarter (over 400px wide, with a tiny
         image frame in the middle). All board grids now fill the row
         with tiles of a set size range instead of a fixed column count:
           Articles      150 to 190px
           Banner Ads    170 to 220px
           Events / RE / The Find  170 to 240px
       - Banner tile rows grow from 84px to 96px, so the name line under
         the image is no longer cut off.
       - Nothing else changed. ipp-picker-v1.9.js still pairs.
     v1.9 (from v1.8, IPP Build S2 slice 1 · READ). Pairs
       ipp-picker-v1.9.js + ipp-picker-markup-v1.7.js. Everything above
       the v1.9 block at the end of this file is v1.8, unchanged.
       - Picker grid: the right rail widens to 320px on the Picker view
         only, to hold the Allocations list. Layout and Publish keep the
         shell's 248px.
       - Board tiles: .ipp-slot--ok (filled and saved: green edge and a
         ✓ in the corner), .ipp-slot--bad (salmon: the record it names
         is gone), ghost (empty). Position tag on every tile. Article
         thumbnails as background images. Real banner images in the
         banner frame. The banner grid grows with the plan's real slot
         count instead of a fixed 3-row box.
       - .ipp-list-tile for Events, Real Estate and The Find: one tile
         per row, with its item count.
       - .ipp-at-line: an Around Town opener as a thin header line across
         the Articles grid, with its teaser.
       - .ipp-focus-on: the quiet outline on the section in focus.
       - .ipp-board-msg: the line at the top of the canvas (reading,
         notes from the plan data, or a salmon error with Try again).
       - Rows with no asset type: salmon list.
       - Allocations card: heading with the ix-info badge and Reload,
         ix-btn pill chips, the lines (green / plain / salmon), the page
         link, available assets with search.
       - Colours are platform tokens only: --ix-ok, --ix-salmon,
         --ix-salmon-ink, --ix-gold (HC-P-IA-11), with fallbacks.
       v1.8 (from v1.7): DROPDOWN PANEL styling for ipp-dropdown-v1.0.js —
         .ipp-dd-panel (floating searchable list), .ipp-dd-search/.ipp-dd-input,
         .ipp-dd-list, .ipp-dd-opt (+ --clear), .ipp-dd-opt-label/-sub, .ipp-dd-empty.
         Uses existing IPP tokens (cream surface, gold accent, teal text). Pairs
         ipp-picker-v1.6.js tile-dropdown wiring. No change to edit-state rules.
       v1.7 (from v1.6): CANONICAL EDIT-STATE STYLING (pairs ipp-picker-v1.5.js).
         Introduces ONE dirty/selected treatment used by every editable control
         — text inputs, customer dropdowns, and tiles — so "this will be written
         on Save" reads identically across the whole picker.
           · --ipp-edit-dirty-border  (HARDCODE: resolves to var(--ipp-gold);
             single source of truth for the dirty border — Tracker-logged)
           · .ipp-dirty  — canonical class. On greeting inputs it co-applies with
             the legacy .ix-picker-input--changed (kept as compat alias). On
             dropdown buttons (.ipp-splash-customer/.ipp-banner-customer/
             .ipp-lbp-customer/.txa-customer/.ipp-re-address/.event-name) and on
             tiles it paints the same gold 2px border + gold-glow surface.
           · .ipp-cancel-link — canonical small text revert link injected by
             editState.ensureCancel into any [data-ipp-cancel-host] scope. Same
             look + behavior everywhere. (Greeting keeps its existing in-head
             Cancel button, which delegates to editState.revert — unchanged look.)
         Distinct from char-limit .near/.at (those style the COUNT, not the field).
       v1.6 (from v1.5): char-counter color states on .ipp-char-count,
         matching ASF logic. .near (>=85% of cap) = gold warn; .at (exact cap,
         hard-block ceiling) = teal emphasis. No .over rule — hard maxlength
         makes over unreachable. Replaces the old .warn/.over pair.
       v1.5 (from v1.4): greeting row rebuilt for THREE fields (Title /
         Paragraph / Super-short) to match the GR-block-row contract. Grid
         1fr 2fr → 1fr 1.6fr 1.4fr. .ipp-greeting-msg rule generalized to
         .ipp-greeting-para + .ipp-greeting-ss. Edit-state styling unchanged.
       v1.4 (from v1.3): greeting edit-state, conforming to ix-form-controls
         canon. Adopts the canonical "changed" treatment (--ix-changed-border
         gold + gold-glow surface) on dirty greeting inputs via the canonical
         .ix-picker-input--changed class, mapped onto IPP's .ipp-greeting-input
         base (consumer-adoption path, not a fork). Adds greeting action row
         (.ipp-gr-actions) with Save (.ipp-gr-save) + Cancel (.ix-revert, styled
         by ix-form-controls). Savebar dirty-state hook (.ipp-savebar.ipp-dirty).
         ix-form-controls-v1.0.0.css MUST be loaded on the page (provides
         --ix-* tokens + .ix-revert). Fallback gold values inlined so the
         changed border still reads if a token is missing.
       v1.3 (from v1.2):
         - FIX (pair w/ ipp-picker-v1.1.js): CC state classes renamed
           on→ipp-on, locked→ipp-locked to avoid Webflow global .locked
           (50x50 red box) collision. Selectors updated to match.
       v1.2: !important-hardened .ipp-cc-box against host CSS bleed.
       v1.1: collapsed conflicting cc-box defs; appearance:none.
       v1.0: initial Scope A — v33 content port, namespaced, CC live.
   ============================================================ */
100%{border-color:transparent;background:transparent}}

/* ── Content Controller (single clean block) ── */
[data-ipp-root] .ipp-cc-card{flex:0 0 auto}
[data-ipp-root] .ipp-cc-card h4{font:700 10px var(--ipp-font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--ipp-text-light);margin:0 0 12px}
[data-ipp-root] .ipp-cc-list{display:flex;flex-direction:column;gap:1px}
[data-ipp-root] .ipp-cc-item{display:flex;align-items:center;gap:10px;padding:7px 6px;border-radius:6px;cursor:pointer;transition:.13s;position:relative;border:1.5px solid transparent;user-select:none}
[data-ipp-root] .ipp-cc-item:hover{background:var(--ipp-cream)}
[data-ipp-root] .ipp-cc-item.ipp-locked{cursor:not-allowed}
[data-ipp-root] .ipp-cc-item.ipp-locked:hover{background:transparent}
[data-ipp-root] .ipp-cc-box{box-sizing:border-box!important;width:16px!important;height:16px!important;min-width:16px!important;max-width:16px!important;border:1.5px solid var(--ipp-border-input)!important;border-radius:3px!important;flex:0 0 16px!important;position:relative!important;transition:.13s!important;background:#fff!important;padding:0!important;margin:0!important;appearance:none!important;-webkit-appearance:none!important;accent-color:auto!important;box-shadow:none!important}
[data-ipp-root] .ipp-cc-item.ipp-on .ipp-cc-box{background:var(--ipp-blue)!important;border-color:var(--ipp-blue)!important}
[data-ipp-root] .ipp-cc-item.ipp-on .ipp-cc-box::after{content:"";position:absolute;left:4.5px;top:1.5px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
[data-ipp-root] .ipp-cc-item.ipp-locked.ipp-on .ipp-cc-box{background:var(--ipp-text-light)!important;border-color:var(--ipp-text-light)!important}
[data-ipp-root] .ipp-cc-label{font:600 12.5px var(--ipp-font-body);color:var(--ipp-text-dark);flex:1;line-height:1.2}
[data-ipp-root] .ipp-cc-item.ipp-locked .ipp-cc-label{color:var(--ipp-text-mid)}
[data-ipp-root] .ipp-cc-count{font:600 10.5px var(--ipp-font-body);color:var(--ipp-text-light);background:var(--ipp-cream-warm);border-radius:999px;padding:2px 8px;flex:none}
@keyframes ippCcSaved{0%{border-color:var(--ipp-gold);background:var(--ipp-gold-glow)}100%{border-color:transparent;background:transparent}}
[data-ipp-root] .ipp-cc-item.just-saved{animation:ippCcSaved 1.1s ease-out}
[data-ipp-root] .ipp-cc-item.saving{opacity:.55;pointer-events:none}
[data-ipp-root] .ipp-cat-section[hidden]{display:none}
[data-ipp-root] .ipp-cat-section{display:flex;flex-direction:column;gap:8px;min-height:0}
[data-ipp-root] .ipp-cat-head{display:flex;align-items:center;gap:10px;padding:0 2px}
[data-ipp-root] .ipp-cat-head h5{margin:0;font:700 11px var(--ipp-font-body);text-transform:uppercase;letter-spacing:.09em;color:var(--ipp-text-mid)}
[data-ipp-root] .ipp-cat-head .ct{font-size:11.5px;color:var(--ipp-text-light)}
[data-ipp-root] .ipp-cat-head .ct b{color:var(--ipp-text-dark);font-weight:700}
[data-ipp-root] .ipp-cat-articles{flex:0 0 auto;display:flex;flex-direction:column;gap:8px}
[data-ipp-root] .ipp-cat-articles .ipp-cat-tiles{display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:10px}
[data-ipp-root] .ipp-cat-articles .ipp-ctile{aspect-ratio:210/235;
  padding:10px 11px;
  display:flex;
  flex-direction:column;
  gap:6px;
  min-height:0;
  overflow:hidden}
[data-ipp-root] .ipp-cat-articles .ipp-ctile .ipp-ghost-img{flex:1;min-height:50px;height:auto}
[data-ipp-root] .ipp-cat-articles .ipp-ctile .ipp-ttitle{flex:0 0 auto;font:600 13px var(--ipp-font-display);line-height:1.22;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
[data-ipp-root] .ipp-cat-articles .ipp-ctile .ipp-tmeta{flex:0 0 auto;margin-top:auto}
[data-ipp-root] .ipp-cat-articles .ipp-ctile.ghost .ipp-ghost-line{flex:0 0 auto}
[data-ipp-root] .ipp-cat-articles .ipp-ctile:not(.add) .ipp-del-btn{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:50%;
  border:1px solid var(--ipp-border);background:rgba(255,255,255,.95);
  color:var(--ipp-text-mid);font:700 17px/1 var(--ipp-font-body);
  cursor:pointer;display:grid;place-items:center;padding:0 0 2px 0;
  opacity:.65;transition:.15s;z-index:3}
[data-ipp-root] .ipp-cat-articles .ipp-ctile:not(.add):hover .ipp-del-btn{opacity:1}
[data-ipp-root] .ipp-cat-articles .ipp-ctile:not(.add) .ipp-del-btn:hover{background:rgba(193,69,47,.10);border-color:var(--ipp-err);color:var(--ipp-err);transform:scale(1.08)}
[data-ipp-root] .ipp-cat-articles .ipp-ctile.add{aspect-ratio:210/235;
  border:2.5px dotted var(--ipp-blue);
  background:transparent;
  border-radius:10px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:12px;cursor:pointer;transition:.18s;
  padding:10px 11px;color:var(--ipp-blue-deep);font:inherit;outline:none;
  min-height:0;overflow:hidden;box-shadow:none}
[data-ipp-root] .ipp-cat-articles .ipp-ctile.add:hover{border-color:var(--ipp-blue-deep);
  background:var(--ipp-blue-ghost);
  transform:translateY(-3px);
  box-shadow:0 8px 22px -10px var(--ipp-blue-shadow)}
[data-ipp-root] .ipp-cat-articles .ipp-ctile.add .ipp-add-circle{width:50px;height:50px;border-radius:50%;
  background:var(--ipp-blue);
  border:none;
  display:grid;place-items:center;
  font:400 30px var(--ipp-font-display);line-height:1;color:#fff;
  box-shadow:0 4px 12px -3px var(--ipp-blue-shadow);
  transition:.15s}
[data-ipp-root] .ipp-cat-articles .ipp-ctile.add:hover .ipp-add-circle{background:var(--ipp-blue-deep);
  transform:scale(1.08)}
[data-ipp-root] .ipp-cat-articles .ipp-ctile.add .ipp-add-lbl{font:700 11px var(--ipp-font-body);text-transform:uppercase;letter-spacing:.10em;
  text-align:center;color:var(--ipp-blue-deep)}
[data-ipp-root] .ipp-ctile{background:var(--ipp-cream);border:1px solid var(--ipp-border);border-radius:10px;
  padding:9px 10px;display:flex;flex-direction:column;gap:5px;cursor:pointer;transition:.15s;
  min-height:0;overflow:hidden;position:relative}
[data-ipp-root] .ipp-ctile:hover{transform:translateY(-1px);border-color:var(--ipp-blue-light);background:#fff;
  box-shadow:0 6px 18px -10px rgba(30,42,58,.25)}
[data-ipp-root] .ipp-ctile.filled{background:#fff}
[data-ipp-root] .ipp-ctile.ghost{background:repeating-linear-gradient(135deg,#fff,#fff 8px,var(--ipp-cream) 8px,var(--ipp-cream) 16px);
  border:1.5px dashed var(--ipp-border-input)}
[data-ipp-root] .ipp-ctile.sponsored::after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(180deg,var(--ipp-gold),var(--ipp-gold-warm))}
[data-ipp-root] .ipp-ctile .pos-tag{font:700 9px var(--ipp-font-body);color:var(--ipp-text-light);letter-spacing:.07em;text-transform:uppercase}
[data-ipp-root] .ipp-ctile .ipp-ttitle{font:600 13px var(--ipp-font-display);line-height:1.25;letter-spacing:-.005em;color:var(--ipp-text-dark);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
[data-ipp-root] .ipp-ctile.ghost .ipp-ttitle{color:var(--ipp-text-light);font-style:italic;font-weight:500}
[data-ipp-root] .ipp-ctile .ipp-tmeta{font-size:10.5px;color:var(--ipp-text-light);display:flex;align-items:center;gap:5px;margin-top:auto;flex-wrap:wrap}
[data-ipp-root] .ipp-ctile .tspon{font:700 8.5px var(--ipp-font-body);color:#9c7e3a;background:var(--ipp-gold-glow);
  padding:1.5px 4px;border-radius:3px;letter-spacing:.06em;text-transform:uppercase}
[data-ipp-root] .ipp-ghost-img{height:30px;background:linear-gradient(135deg,var(--ipp-cream-deep),var(--ipp-cream-warm));
  border-radius:5px;position:relative;overflow:hidden;flex:none}
[data-ipp-root] .ipp-ghost-img::after{content:"";position:absolute;inset:0;
  background-image:repeating-linear-gradient(45deg,transparent 0 6px,rgba(0,0,0,.05) 6px 7px)}
[data-ipp-root] .ipp-ghost-img.banner{height:18px}
[data-ipp-root] .ipp-ghost-img.tall{height:42px}
[data-ipp-root] .ipp-ghost-line{height:5px;background:var(--ipp-border-input);border-radius:2.5px;flex:none}
[data-ipp-root] .ipp-ghost-line.short{width:62%}
[data-ipp-root] .ipp-ghost-line.x-short{width:38%}
[data-ipp-root] .ipp-ghost-line.long{width:88%}
[data-ipp-root] .ipp-cat-ads{margin-top:14px;flex:0 0 auto}
[data-ipp-root] .ipp-cat-ads .ipp-ad-row{display:flex;gap:10px;align-items:stretch;margin-top:6px}
[data-ipp-root] .ipp-cat-ads .ipp-splash-col{display:flex;flex-direction:column;gap:5px;flex-shrink:0}
[data-ipp-root] .ipp-cat-ads .ipp-banner-col{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}
[data-ipp-root] .ipp-cat-ads .ipp-ad-label{font:700 10px var(--ipp-font-body);letter-spacing:.12em;text-transform:uppercase;
  color:var(--ipp-text-mid);padding-left:2px;flex:0 0 auto}
[data-ipp-root] .ipp-cat-ads .ipp-splash-wrap{aspect-ratio:1080/1280;flex-shrink:0;height:240px;position:relative}
[data-ipp-root] .ipp-cat-ads .ipp-splash-tile{width:100%;height:100%;
  background:#fff;border:1px solid var(--ipp-border);border-radius:10px;
  padding:9px 10px;
  display:flex;flex-direction:column;gap:6px;
  cursor:pointer;transition:.15s;
  position:relative;overflow:hidden}
[data-ipp-root] .ipp-cat-ads .ipp-splash-tile:hover{transform:translateY(-1px);border-color:var(--ipp-blue-light);
  box-shadow:0 8px 22px -10px rgba(30,42,58,.25)}
[data-ipp-root] .ipp-cat-ads .ipp-splash-tile.ghost{background:repeating-linear-gradient(135deg,#fff,#fff 8px,var(--ipp-cream) 8px,var(--ipp-cream) 16px);
  border:1.5px dashed var(--ipp-border-input)}
[data-ipp-root] .ipp-cat-ads .ipp-splash-img{flex:1;min-height:0;
  background:linear-gradient(135deg,var(--ipp-cream-deep),var(--ipp-cream-warm));
  border-radius:6px;border:1px solid var(--ipp-border);position:relative;overflow:hidden}
[data-ipp-root] .ipp-cat-ads .ipp-splash-img::after{content:"";position:absolute;inset:0;
  background-image:repeating-linear-gradient(45deg,transparent 0 7px,rgba(0,0,0,.05) 7px 8px)}
[data-ipp-root] .ipp-cat-ads .ipp-splash-customer{align-self:center;max-width:calc(100% - 8px);min-height:22px;
  background:var(--ipp-cream);border:1px solid var(--ipp-border);cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:6px;
  padding:4px 10px;border-radius:6px;
  font:600 12px var(--ipp-font-display);color:var(--ipp-text-dark);
  letter-spacing:-.005em;line-height:1.2;
  flex:0 0 auto;transition:.15s;
  white-space:nowrap;overflow:hidden}
[data-ipp-root] .ipp-cat-ads .ipp-splash-customer .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  min-width:0;flex:1 1 auto}
[data-ipp-root] .ipp-cat-ads .ipp-splash-customer .chev{font:700 9px var(--ipp-font-body);color:var(--ipp-text-light);
  flex:0 0 auto;line-height:1;transition:.15s;
  display:inline-block;transform:translateY(1px)}
[data-ipp-root] .ipp-cat-ads .ipp-splash-customer:hover{background:var(--ipp-blue-ghost);border-color:var(--ipp-blue);color:var(--ipp-blue-deep)}
[data-ipp-root] .ipp-cat-ads .ipp-splash-customer:hover .chev{color:var(--ipp-blue-deep)}
[data-ipp-root] .ipp-cat-ads .ipp-splash-tile.ghost .ipp-splash-customer{color:var(--ipp-text-light);font-style:italic;font-weight:500}
[data-ipp-root] .ipp-cat-ads .ipp-banner-tile.lead{border-color:var(--ipp-gold);box-shadow:0 0 0 1.5px var(--ipp-gold-glow),0 2px 6px -2px rgba(196,163,90,.25)}
[data-ipp-root] .ipp-cat-ads .ipp-banner-tile.lead:hover{border-color:var(--ipp-gold-deep)}
[data-ipp-root] .ipp-cat-ads .ipp-banner-tile .ipp-lead-badge{position:absolute;top:5px;left:5px;z-index:3;
  font:700 9.5px var(--ipp-font-body);letter-spacing:.14em;color:#fff;
  background:var(--ipp-gold);
  border:1px solid var(--ipp-gold-deep);
  padding:2px 7px;border-radius:3px;
  box-shadow:0 1px 4px -1px rgba(0,0,0,.25);pointer-events:none}
[data-ipp-root] .ipp-cat-ads .ipp-banner-grid{height:240px;
  display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(3,1fr);gap:6px;min-width:0}
[data-ipp-root] .ipp-cat-ads .ipp-banner-tile{background:#fff;border:1px solid var(--ipp-border);border-radius:8px;
  padding:5px 6px 5px;
  display:flex;flex-direction:column;gap:4px;justify-content:flex-start;
  cursor:pointer;transition:.15s;
  position:relative;overflow:hidden;min-width:0;min-height:0}
[data-ipp-root] .ipp-cat-ads .ipp-banner-tile:hover{transform:translateY(-1px);border-color:var(--ipp-blue-light);
  box-shadow:0 6px 16px -10px rgba(30,42,58,.22)}
[data-ipp-root] .ipp-cat-ads .ipp-banner-tile.ghost{background:repeating-linear-gradient(135deg,#fff,#fff 7px,var(--ipp-cream) 7px,var(--ipp-cream) 14px);
  border:1.5px dashed var(--ipp-border-input)}
[data-ipp-root] .ipp-cat-ads .ipp-banner-img-frame{width:100%;height:40px;
  display:grid;place-items:center;
  background:rgba(30,42,58,.035);border-radius:3px;
  flex-shrink:0;overflow:hidden}
[data-ipp-root] .ipp-cat-ads .ipp-banner-img{height:100%;width:auto;
  aspect-ratio:700/235;
  max-width:100%;
  background:linear-gradient(135deg,var(--ipp-cream-deep),var(--ipp-cream-warm));
  border:1px solid var(--ipp-border);border-radius:3px;
  position:relative;overflow:hidden}
[data-ipp-root] .ipp-cat-ads .ipp-banner-img::after{content:"";position:absolute;inset:0;
  background-image:repeating-linear-gradient(45deg,transparent 0 5px,rgba(0,0,0,.05) 5px 6px)}
[data-ipp-root] .ipp-cat-ads .ipp-banner-img.ar-700x300{aspect-ratio:700/300}
[data-ipp-root] .ipp-cat-ads .ipp-banner-img.ar-700x400{aspect-ratio:700/400}
[data-ipp-root] .ipp-cat-ads .ipp-banner-customer{align-self:center;max-width:calc(100% - 6px);min-height:20px;
  background:var(--ipp-cream);border:1px solid var(--ipp-border);cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:5px;
  padding:3px 8px;border-radius:5px;
  font:600 10.5px var(--ipp-font-body);color:var(--ipp-text-dark);
  letter-spacing:-.005em;line-height:1.2;
  flex:0 0 auto;margin-top:auto;transition:.15s;
  white-space:nowrap;overflow:hidden}
[data-ipp-root] .ipp-cat-ads .ipp-banner-customer .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  min-width:0;flex:1 1 auto}
[data-ipp-root] .ipp-cat-ads .ipp-banner-customer .chev{font:700 8px var(--ipp-font-body);color:var(--ipp-text-light);
  flex:0 0 auto;line-height:1;transition:.15s;
  display:inline-block;transform:translateY(1px)}
[data-ipp-root] .ipp-cat-ads .ipp-banner-customer:hover{background:var(--ipp-blue-ghost);border-color:var(--ipp-blue);color:var(--ipp-blue-deep)}
[data-ipp-root] .ipp-cat-ads .ipp-banner-customer:hover .chev{color:var(--ipp-blue-deep)}
[data-ipp-root] .ipp-cat-ads .ipp-banner-tile.ghost .ipp-banner-customer{color:var(--ipp-text-light);font-style:italic;font-weight:500}
[data-ipp-root] .ipp-cat-ads .ipp-splash-tile .ipp-del-btn, [data-ipp-root] .ipp-cat-ads .ipp-banner-tile .ipp-del-btn{position:absolute;top:5px;right:5px;width:20px;height:20px;border-radius:50%;
  border:1px solid var(--ipp-border);background:rgba(255,255,255,.95);
  color:var(--ipp-text-mid);font:700 14px/1 var(--ipp-font-body);
  cursor:pointer;display:grid;place-items:center;padding:0 0 2px 0;
  opacity:.65;transition:.15s;z-index:3}
[data-ipp-root] .ipp-cat-ads .ipp-splash-tile:hover .ipp-del-btn, [data-ipp-root] .ipp-cat-ads .ipp-banner-tile:hover .ipp-del-btn{opacity:1}
[data-ipp-root] .ipp-cat-ads .ipp-splash-tile .ipp-del-btn:hover, [data-ipp-root] .ipp-cat-ads .ipp-banner-tile .ipp-del-btn:hover{background:rgba(193,69,47,.10);border-color:var(--ipp-err);color:var(--ipp-err);transform:scale(1.08)}
[data-ipp-root] .ipp-banner-add-bar{width:100%;margin-top:10px;padding:11px 16px;
  border:2.5px dotted var(--ipp-blue);border-radius:10px;
  background:transparent;
  display:flex;align-items:center;justify-content:center;gap:11px;
  cursor:pointer;transition:.18s;
  color:var(--ipp-blue-deep);
  font:700 11px var(--ipp-font-body);text-transform:uppercase;letter-spacing:.10em}
[data-ipp-root] .ipp-banner-add-bar:hover{background:var(--ipp-blue-ghost);border-color:var(--ipp-blue-deep);
  box-shadow:0 6px 18px -10px var(--ipp-blue-shadow)}
[data-ipp-root] .ipp-banner-add-bar .ipp-add-circle{width:26px;height:26px;border-radius:50%;
  background:var(--ipp-blue);color:#fff;display:grid;place-items:center;
  font:400 18px var(--ipp-font-display);line-height:1;flex-shrink:0;
  box-shadow:0 3px 9px -3px var(--ipp-blue-shadow);transition:.15s}
[data-ipp-root] .ipp-banner-add-bar:hover .ipp-add-circle{background:var(--ipp-blue-deep);transform:scale(1.06)}
[data-ipp-root] .ipp-cat-stub{margin-top:14px;flex:0 0 auto}
[data-ipp-root] .ipp-cat-stub .ipp-cat-placeholder{padding:36px 24px;margin-top:6px;
  background:var(--ipp-cream);
  border:1.5px dashed var(--ipp-border-input);
  border-radius:10px;text-align:center;
  color:var(--ipp-text-light);
  font:500 13px var(--ipp-font-body);font-style:italic}
[data-ipp-root] .ipp-cat-re{margin-top:14px;flex:0 0 auto}
[data-ipp-root] .ipp-cat-re .re-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:6px}
[data-ipp-root] .ipp-cat-re .ipp-re-tile{background:#fff;border:1px solid var(--ipp-border);border-radius:10px;
  padding:5px 5px 7px;display:flex;flex-direction:column;gap:5px;
  cursor:pointer;transition:.15s;position:relative;overflow:hidden;min-width:0}
[data-ipp-root] .ipp-cat-re .ipp-re-tile:hover{transform:translateY(-1px);border-color:var(--ipp-blue-light);
  box-shadow:0 6px 18px -10px rgba(30,42,58,.22)}
[data-ipp-root] .ipp-cat-re .ipp-re-tile.ghost{background:repeating-linear-gradient(135deg,#fff,#fff 8px,var(--ipp-cream) 8px,var(--ipp-cream) 16px);
  border:1.5px dashed var(--ipp-border-input)}
[data-ipp-root] .ipp-cat-re .ipp-re-img{width:100%;aspect-ratio:4/3;
  background:linear-gradient(135deg,var(--ipp-cream-deep),var(--ipp-cream-warm));
  border-radius:6px;border:1px solid var(--ipp-border);
  position:relative;overflow:hidden;flex-shrink:0}
[data-ipp-root] .ipp-cat-re .ipp-re-img::after{content:"";position:absolute;inset:0;
  background-image:repeating-linear-gradient(45deg,transparent 0 6px,rgba(0,0,0,.05) 6px 7px)}
[data-ipp-root] .ipp-cat-re .ipp-re-address{align-self:center;max-width:calc(100% - 4px);min-height:20px;
  background:var(--ipp-cream);border:1px solid var(--ipp-border);cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:5px;
  padding:3px 8px;border-radius:5px;
  font:600 10.5px var(--ipp-font-body);color:var(--ipp-text-dark);
  letter-spacing:-.005em;line-height:1.2;flex:0 0 auto;margin-top:auto;
  transition:.15s;white-space:nowrap;overflow:hidden}
[data-ipp-root] .ipp-cat-re .ipp-re-address .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1 1 auto}
[data-ipp-root] .ipp-cat-re .ipp-re-address .chev{font:700 8px var(--ipp-font-body);color:var(--ipp-text-light);
  flex:0 0 auto;line-height:1;transition:.15s;display:inline-block;transform:translateY(1px)}
[data-ipp-root] .ipp-cat-re .ipp-re-address:hover{background:var(--ipp-blue-ghost);border-color:var(--ipp-blue);color:var(--ipp-blue-deep)}
[data-ipp-root] .ipp-cat-re .ipp-re-address:hover .chev{color:var(--ipp-blue-deep)}
[data-ipp-root] .ipp-cat-re .ipp-re-tile.ghost .ipp-re-address{color:var(--ipp-text-light);font-style:italic;font-weight:500}
[data-ipp-root] .ipp-cat-re .ipp-re-tile .ipp-del-btn, [data-ipp-root] .ipp-cat-events .ipp-event-tile .ipp-del-btn{position:absolute;top:5px;right:5px;width:20px;height:20px;border-radius:50%;
  border:1px solid var(--ipp-border);background:rgba(255,255,255,.95);
  color:var(--ipp-text-mid);font:700 14px/1 var(--ipp-font-body);
  cursor:pointer;display:grid;place-items:center;padding:0 0 2px 0;
  opacity:.65;transition:.15s;z-index:3}
[data-ipp-root] .ipp-cat-re .ipp-re-tile:hover .ipp-del-btn, [data-ipp-root] .ipp-cat-events .ipp-event-tile:hover .ipp-del-btn{opacity:1}
[data-ipp-root] .ipp-cat-re .ipp-re-tile .ipp-del-btn:hover, [data-ipp-root] .ipp-cat-events .ipp-event-tile .ipp-del-btn:hover{background:rgba(193,69,47,.10);border-color:var(--ipp-err);color:var(--ipp-err);transform:scale(1.08)}
[data-ipp-root] .ipp-cat-re .ipp-re-add, [data-ipp-root] .ipp-cat-events .ipp-event-add{aspect-ratio:auto;height:100%;min-height:100%;
  border:2.5px dotted var(--ipp-blue);background:transparent;
  border-radius:10px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:10px;cursor:pointer;transition:.18s;
  padding:10px 11px;color:var(--ipp-blue-deep);font:inherit;outline:none;
  min-height:0;overflow:hidden}
[data-ipp-root] .ipp-cat-re .ipp-re-add:hover, [data-ipp-root] .ipp-cat-events .ipp-event-add:hover{border-color:var(--ipp-blue-deep);background:var(--ipp-blue-ghost);
  transform:translateY(-2px);
  box-shadow:0 8px 22px -10px var(--ipp-blue-shadow)}
[data-ipp-root] .ipp-cat-re .ipp-re-add .ipp-add-circle, [data-ipp-root] .ipp-cat-events .ipp-event-add .ipp-add-circle{width:44px;height:44px;border-radius:50%;background:var(--ipp-blue);
  border:none;display:grid;place-items:center;
  font:400 26px var(--ipp-font-display);line-height:1;color:#fff;
  box-shadow:0 4px 12px -3px var(--ipp-blue-shadow);transition:.15s}
[data-ipp-root] .ipp-cat-re .ipp-re-add:hover .ipp-add-circle, [data-ipp-root] .ipp-cat-events .ipp-event-add:hover .ipp-add-circle{background:var(--ipp-blue-deep);transform:scale(1.06)}
[data-ipp-root] .ipp-cat-re .ipp-re-add .ipp-add-lbl, [data-ipp-root] .ipp-cat-events .ipp-event-add .ipp-add-lbl{font:700 10.5px var(--ipp-font-body);text-transform:uppercase;letter-spacing:.10em;
  text-align:center;color:var(--ipp-blue-deep)}
[data-ipp-root] .ipp-cat-events{margin-top:14px;flex:0 0 auto}
[data-ipp-root] .ipp-cat-events .event-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:6px}
[data-ipp-root] .ipp-cat-events .ipp-event-tile{background:#fff;border:1px solid var(--ipp-border);border-radius:10px;
  padding:5px 5px 7px;display:flex;flex-direction:column;gap:4px;
  cursor:pointer;transition:.15s;position:relative;overflow:hidden;min-width:0}
[data-ipp-root] .ipp-cat-events .ipp-event-tile:hover{transform:translateY(-1px);border-color:var(--ipp-blue-light);
  box-shadow:0 6px 18px -10px rgba(30,42,58,.22)}
[data-ipp-root] .ipp-cat-events .ipp-event-tile.ghost{background:repeating-linear-gradient(135deg,#fff,#fff 8px,var(--ipp-cream) 8px,var(--ipp-cream) 16px);
  border:1.5px dashed var(--ipp-border-input)}
[data-ipp-root] .ipp-cat-events .event-img-frame{width:100%;height:88px;flex-shrink:0;
  display:grid;place-items:center;
  background:rgba(30,42,58,.035);border-radius:6px;overflow:hidden}
[data-ipp-root] .ipp-cat-events .event-img{height:100%;width:auto;aspect-ratio:16/9;max-width:100%;
  background:linear-gradient(135deg,var(--ipp-cream-deep),var(--ipp-cream-warm));
  border:1px solid var(--ipp-border);border-radius:5px;
  position:relative;overflow:hidden}
[data-ipp-root] .ipp-cat-events .event-img::after{content:"";position:absolute;inset:0;
  background-image:repeating-linear-gradient(45deg,transparent 0 6px,rgba(0,0,0,.05) 6px 7px)}
[data-ipp-root] .ipp-cat-events .event-img.ar-4-3{aspect-ratio:4/3}
[data-ipp-root] .ipp-cat-events .event-img.ar-3-2{aspect-ratio:3/2}
[data-ipp-root] .ipp-cat-events .event-img.ar-1-1{aspect-ratio:1/1}
[data-ipp-root] .ipp-cat-events .event-img.ar-4-5{aspect-ratio:4/5}
[data-ipp-root] .ipp-cat-events .event-img.ar-3-4{aspect-ratio:3/4}
[data-ipp-root] .ipp-cat-events .event-name{align-self:center;max-width:calc(100% - 4px);min-height:20px;
  background:var(--ipp-cream);border:1px solid var(--ipp-border);cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:5px;
  padding:3px 8px;border-radius:5px;
  font:600 10.5px var(--ipp-font-body);color:var(--ipp-text-dark);
  letter-spacing:-.005em;line-height:1.2;flex:0 0 auto;margin-top:6px;
  transition:.15s;white-space:nowrap;overflow:hidden}
[data-ipp-root] .ipp-cat-events .event-name .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1 1 auto}
[data-ipp-root] .ipp-cat-events .event-name .chev{font:700 8px var(--ipp-font-body);color:var(--ipp-text-light);
  flex:0 0 auto;line-height:1;transition:.15s;display:inline-block;transform:translateY(1px)}
[data-ipp-root] .ipp-cat-events .event-name:hover{background:var(--ipp-blue-ghost);border-color:var(--ipp-blue);color:var(--ipp-blue-deep)}
[data-ipp-root] .ipp-cat-events .event-name:hover .chev{color:var(--ipp-blue-deep)}
[data-ipp-root] .ipp-cat-events .ipp-event-tile.ghost .event-name{color:var(--ipp-text-light);font-style:italic;font-weight:500}
[data-ipp-root] .ipp-cat-events .event-meta{font:500 9.5px var(--ipp-font-body);color:var(--ipp-text-light);
  text-align:center;letter-spacing:.01em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  flex:0 0 auto;margin-top:auto}
[data-ipp-root] .ipp-cat-lbp{margin-top:14px;flex:0 0 auto}
[data-ipp-root] .ipp-cat-lbp .ipp-lbp-row{display:flex;gap:10px;margin-top:6px;height:240px;flex-wrap:wrap}
[data-ipp-root] .ipp-cat-lbp .ipp-lbp-wrap{height:100%;aspect-ratio:1080/1280;flex-shrink:0;position:relative}
[data-ipp-root] .ipp-cat-lbp .ipp-lbp-tile{width:100%;height:100%;
  background:#fff;border:1px solid var(--ipp-border);border-radius:10px;
  padding:9px 10px;
  display:flex;flex-direction:column;gap:8px;
  cursor:pointer;transition:.15s;
  position:relative;overflow:hidden}
[data-ipp-root] .ipp-cat-lbp .ipp-lbp-tile:hover{transform:translateY(-1px);border-color:var(--ipp-blue-light);
  box-shadow:0 8px 22px -10px rgba(30,42,58,.25)}
[data-ipp-root] .ipp-cat-lbp .ipp-lbp-tile.ghost{background:repeating-linear-gradient(135deg,#fff,#fff 8px,var(--ipp-cream) 8px,var(--ipp-cream) 16px);
  border:1.5px dashed var(--ipp-border-input)}
[data-ipp-root] .ipp-cat-lbp .lbp-profile-img{flex:1;min-height:0;
  background:linear-gradient(135deg,var(--ipp-cream-deep),var(--ipp-cream-warm));
  border-radius:6px;border:1px solid var(--ipp-border);
  position:relative;overflow:hidden}
[data-ipp-root] .ipp-cat-lbp .lbp-profile-img::after{content:"";position:absolute;inset:0;
  background-image:repeating-linear-gradient(45deg,transparent 0 7px,rgba(0,0,0,.05) 7px 8px)}
[data-ipp-root] .ipp-cat-lbp .lbp-foot{display:flex;align-items:center;gap:7px;flex:0 0 auto;min-width:0}
[data-ipp-root] .ipp-cat-lbp .lbp-logo{width:32px;height:32px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,#fff,var(--ipp-cream-deep));
  border:1.5px solid var(--ipp-border);
  position:relative;overflow:hidden;
  box-shadow:0 2px 6px -2px rgba(30,42,58,.18)}
[data-ipp-root] .ipp-cat-lbp .lbp-logo::after{content:"";position:absolute;inset:2px;border-radius:50%;
  background-image:repeating-linear-gradient(45deg,transparent 0 4px,rgba(0,0,0,.06) 4px 5px)}
[data-ipp-root] .ipp-cat-lbp .ipp-lbp-customer{flex:1;min-width:0;min-height:22px;
  background:var(--ipp-cream);border:1px solid var(--ipp-border);cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:5px;
  padding:4px 8px;border-radius:6px;
  font:600 11.5px var(--ipp-font-display);color:var(--ipp-text-dark);
  letter-spacing:-.005em;line-height:1.2;
  transition:.15s;white-space:nowrap;overflow:hidden}
[data-ipp-root] .ipp-cat-lbp .ipp-lbp-customer .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  min-width:0;flex:1 1 auto}
[data-ipp-root] .ipp-cat-lbp .ipp-lbp-customer .chev{font:700 9px var(--ipp-font-body);color:var(--ipp-text-light);
  flex:0 0 auto;line-height:1;transition:.15s;display:inline-block;transform:translateY(1px)}
[data-ipp-root] .ipp-cat-lbp .ipp-lbp-customer:hover{background:var(--ipp-blue-ghost);border-color:var(--ipp-blue);color:var(--ipp-blue-deep)}
[data-ipp-root] .ipp-cat-lbp .ipp-lbp-customer:hover .chev{color:var(--ipp-blue-deep)}
[data-ipp-root] .ipp-cat-lbp .ipp-lbp-tile.ghost .ipp-lbp-customer{color:var(--ipp-text-light);font-style:italic;font-weight:500}
[data-ipp-root] .ipp-cat-lbp .ipp-lbp-tile .ipp-del-btn, [data-ipp-root] .ipp-cat-txa .ipp-txa-tile .ipp-del-btn{position:absolute;top:5px;right:5px;width:20px;height:20px;border-radius:50%;
  border:1px solid var(--ipp-border);background:rgba(255,255,255,.95);
  color:var(--ipp-text-mid);font:700 14px/1 var(--ipp-font-body);
  cursor:pointer;display:grid;place-items:center;padding:0 0 2px 0;
  opacity:.65;transition:.15s;z-index:3}
[data-ipp-root] .ipp-cat-lbp .ipp-lbp-tile:hover .ipp-del-btn, [data-ipp-root] .ipp-cat-txa .ipp-txa-tile:hover .ipp-del-btn{opacity:1}
[data-ipp-root] .ipp-cat-lbp .ipp-lbp-tile .ipp-del-btn:hover, [data-ipp-root] .ipp-cat-txa .ipp-txa-tile .ipp-del-btn:hover{background:rgba(193,69,47,.10);border-color:var(--ipp-err);color:var(--ipp-err);transform:scale(1.08)}
[data-ipp-root] .ipp-cat-lbp .ipp-lbp-add{height:100%;aspect-ratio:1080/1280;flex-shrink:0;
  border:2.5px dotted var(--ipp-blue);background:transparent;border-radius:10px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:10px;cursor:pointer;transition:.18s;
  padding:10px 11px;color:var(--ipp-blue-deep);font:inherit;outline:none}
[data-ipp-root] .ipp-cat-lbp .ipp-lbp-add:hover{border-color:var(--ipp-blue-deep);background:var(--ipp-blue-ghost);
  transform:translateY(-2px);box-shadow:0 8px 22px -10px var(--ipp-blue-shadow)}
[data-ipp-root] .ipp-cat-lbp .ipp-lbp-add .ipp-add-circle{width:44px;height:44px;border-radius:50%;
  background:var(--ipp-blue);border:none;display:grid;place-items:center;
  font:400 26px var(--ipp-font-display);line-height:1;color:#fff;
  box-shadow:0 4px 12px -3px var(--ipp-blue-shadow);transition:.15s}
[data-ipp-root] .ipp-cat-lbp .ipp-lbp-add:hover .ipp-add-circle{background:var(--ipp-blue-deep);transform:scale(1.06)}
[data-ipp-root] .ipp-cat-lbp .ipp-lbp-add .ipp-add-lbl{font:700 10.5px var(--ipp-font-body);text-transform:uppercase;
  letter-spacing:.10em;text-align:center;color:var(--ipp-blue-deep)}
[data-ipp-root] .ipp-cat-txa{margin-top:14px;flex:0 0 auto}
[data-ipp-root] .ipp-cat-txa .ipp-cat-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}
[data-ipp-root] .ipp-cat-txa .ipp-cat-head h5{flex:0 0 auto}
[data-ipp-root] .ipp-cat-txa .ipp-cat-head .ct{margin-left:auto}
[data-ipp-root] .txa-category .ipp-cat-prefix{color:var(--ipp-text-light);font-weight:600;letter-spacing:.02em}
[data-ipp-root] .txa-category .ipp-cat-value{color:var(--ipp-blue-deep);font-weight:700}
[data-ipp-root] .txa-category .ipp-cat-value.custom{color:var(--ipp-gold-warm);font-style:italic}
[data-ipp-root] .ipp-cat-txa .txa-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:6px}
[data-ipp-root] .ipp-cat-txa .ipp-txa-tile{background:#fff;border:1px solid var(--ipp-border);border-radius:10px;
  padding:10px 8px 8px;
  display:flex;flex-direction:column;align-items:center;gap:7px;
  cursor:pointer;transition:.15s;position:relative;overflow:hidden;min-width:0}
[data-ipp-root] .ipp-cat-txa .ipp-txa-tile:hover{transform:translateY(-1px);border-color:var(--ipp-blue-light);
  box-shadow:0 6px 18px -10px rgba(30,42,58,.22)}
[data-ipp-root] .ipp-cat-txa .ipp-txa-tile.ghost{background:repeating-linear-gradient(135deg,#fff,#fff 8px,var(--ipp-cream) 8px,var(--ipp-cream) 16px);
  border:1.5px dashed var(--ipp-border-input)}
[data-ipp-root] .ipp-cat-txa .txa-logo{width:48px;height:48px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,#fff,var(--ipp-cream-deep));
  border:1.5px solid var(--ipp-border);
  position:relative;overflow:hidden;
  box-shadow:0 3px 10px -3px rgba(30,42,58,.18)}
[data-ipp-root] .ipp-cat-txa .txa-logo::after{content:"";position:absolute;inset:3px;border-radius:50%;
  background-image:repeating-linear-gradient(45deg,transparent 0 5px,rgba(0,0,0,.06) 5px 6px)}
[data-ipp-root] .ipp-cat-txa .txa-customer{align-self:center;max-width:calc(100% - 4px);min-height:22px;
  background:var(--ipp-cream);border:1px solid var(--ipp-border);cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:5px;
  padding:3px 8px;border-radius:5px;
  font:600 10.5px var(--ipp-font-body);color:var(--ipp-text-dark);
  letter-spacing:-.005em;line-height:1.2;
  transition:.15s;white-space:nowrap;overflow:hidden;flex:0 0 auto;margin-top:auto}
[data-ipp-root] .ipp-cat-txa .txa-customer .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  min-width:0;flex:1 1 auto}
[data-ipp-root] .ipp-cat-txa .txa-customer .chev{font:700 8px var(--ipp-font-body);color:var(--ipp-text-light);
  flex:0 0 auto;line-height:1;transition:.15s;display:inline-block;transform:translateY(1px)}
[data-ipp-root] .ipp-cat-txa .txa-customer:hover{background:var(--ipp-blue-ghost);border-color:var(--ipp-blue);color:var(--ipp-blue-deep)}
[data-ipp-root] .ipp-cat-txa .txa-customer:hover .chev{color:var(--ipp-blue-deep)}
[data-ipp-root] .ipp-cat-txa .ipp-txa-tile.ghost .txa-customer{color:var(--ipp-text-light);font-style:italic;font-weight:500}
[data-ipp-root] .ipp-cat-txa .txa-add{border:2.5px dotted var(--ipp-blue);background:transparent;border-radius:10px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:8px;cursor:pointer;transition:.18s;
  padding:10px 8px 8px;color:var(--ipp-blue-deep);font:inherit;outline:none;min-height:0}
[data-ipp-root] .ipp-cat-txa .txa-add:hover{border-color:var(--ipp-blue-deep);background:var(--ipp-blue-ghost);
  transform:translateY(-2px);box-shadow:0 8px 22px -10px var(--ipp-blue-shadow)}
[data-ipp-root] .ipp-cat-txa .txa-add .ipp-add-circle{width:40px;height:40px;border-radius:50%;
  background:var(--ipp-blue);border:none;display:grid;place-items:center;
  font:400 24px var(--ipp-font-display);line-height:1;color:#fff;
  box-shadow:0 4px 12px -3px var(--ipp-blue-shadow);transition:.15s}
[data-ipp-root] .ipp-cat-txa .txa-add:hover .ipp-add-circle{background:var(--ipp-blue-deep);transform:scale(1.06)}
[data-ipp-root] .ipp-cat-txa .txa-add .ipp-add-lbl{font:700 10px var(--ipp-font-body);text-transform:uppercase;
  letter-spacing:.10em;text-align:center;color:var(--ipp-blue-deep)}
[data-ipp-root] .ipp-cat-greeting{margin-top:0;flex:0 0 auto}
[data-ipp-root] .ipp-cat-greeting .ipp-cat-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}
[data-ipp-root] .ipp-cat-greeting .ipp-cat-head h5{flex:0 0 auto}
[data-ipp-root] .ipp-cat-greeting .ipp-cat-head .ct{margin-left:auto}
[data-ipp-root] .ipp-ai-generate-btn{display:inline-flex;align-items:center;gap:6px;
  background:linear-gradient(135deg,#fdf6dc,#f4e8b8);
  border:1px solid #d4b54a;
  cursor:pointer;
  padding:5px 12px;border-radius:7px;
  font:700 10.5px var(--ipp-font-body);color:#7a5e15;
  letter-spacing:.02em;
  transition:.15s;flex:0 0 auto;
  box-shadow:0 2px 6px -2px rgba(196,163,90,.25)}
[data-ipp-root] .ipp-ai-generate-btn:hover:not(.loading){background:linear-gradient(135deg,#f4e8b8,#e9d894);
  border-color:#b8943f;
  transform:translateY(-1px);
  box-shadow:0 6px 14px -4px rgba(196,163,90,.45)}
[data-ipp-root] .ipp-ai-generate-btn .ipp-ai-icon{width:14px;height:14px;flex-shrink:0;color:#a47d1f}
[data-ipp-root] .ipp-ai-generate-btn .ipp-btn-label{white-space:nowrap}
[data-ipp-root] .ipp-ai-generate-btn.loading{background:linear-gradient(135deg,#f4e8b8,#e9d894);
  cursor:wait;opacity:.85}
[data-ipp-root] .ipp-ai-generate-btn.loading .ipp-ai-icon{animation:ai-spin 1s linear infinite}
[data-ipp-root] .ipp-ai-generate-btn.again{background:linear-gradient(135deg,#fff,#fdf6dc)}
[data-ipp-root] .ipp-ai-undo-btn{display:inline-flex;align-items:center;gap:5px;
  background:transparent;border:1px solid transparent;cursor:pointer;
  padding:5px 10px;border-radius:6px;
  font:600 10.5px var(--ipp-font-body);color:var(--ipp-text-mid);
  letter-spacing:.01em;transition:.15s;flex:0 0 auto}
[data-ipp-root] .ipp-ai-undo-btn:hover{background:var(--ipp-cream);border-color:var(--ipp-border);color:var(--ipp-text-dark)}
[data-ipp-root] .ipp-ai-undo-btn .ipp-undo-icon{width:12px;height:12px;flex-shrink:0}
[data-ipp-root] .ipp-ai-undo-btn[hidden]{display:none}
[data-ipp-root] .ipp-ai-badge{display:inline-flex;align-items:center;gap:3px;
  background:linear-gradient(135deg,#fdf6dc,#f4e8b8);
  color:#7a5e15;border:1px solid #d4b54a;
  padding:1px 6px 1px 5px;border-radius:999px;
  font:700 8.5px var(--ipp-font-body);letter-spacing:.06em;text-transform:uppercase;
  margin-left:auto}
[data-ipp-root] .ipp-ai-badge svg{width:8px;height:8px;flex-shrink:0;color:#a47d1f}
[data-ipp-root] .ipp-ai-badge[hidden]{display:none}
[data-ipp-root] .ipp-greeting-field[data-ai="true"] .ipp-greeting-input{border-color:rgba(196,163,90,.6);
  background:linear-gradient(135deg,#fff,#fdfaf0)}
[data-ipp-root] .ipp-greeting-field[data-ai="true"] .ipp-greeting-input:focus{border-color:var(--ipp-blue);
  background:#fff;
  box-shadow:0 0 0 3px var(--ipp-blue-glow)}
[data-ipp-root] .ipp-cat-greeting .ipp-greeting-row{display:grid;grid-template-columns:1fr 1.6fr 1.4fr;gap:10px;margin-top:6px}
[data-ipp-root] .ipp-cat-greeting .ipp-greeting-field{display:flex;flex-direction:column;gap:4px;min-width:0}
[data-ipp-root] .ipp-cat-greeting .ipp-greeting-label{font:700 10px var(--ipp-font-body);letter-spacing:.12em;text-transform:uppercase;
  color:var(--ipp-text-mid);
  display:flex;align-items:center;gap:6px;width:100%}
[data-ipp-root] .ipp-cat-greeting .ipp-char-limit{font:600 9px var(--ipp-font-body);color:var(--ipp-text-light);
  letter-spacing:.02em;text-transform:none}
[data-ipp-root] .ipp-cat-greeting .ipp-greeting-input{border:1px solid var(--ipp-border);border-radius:8px;
  padding:9px 13px;
  font:500 13px var(--ipp-font-body);color:var(--ipp-text-dark);
  background:#fff;resize:none;outline:none;width:100%;
  transition:.15s;font-family:inherit;line-height:1.4;letter-spacing:-.005em}
[data-ipp-root] .ipp-cat-greeting .ipp-greeting-input::placeholder{color:var(--ipp-text-light);font-style:italic}
[data-ipp-root] .ipp-cat-greeting .ipp-greeting-input:focus{border-color:var(--ipp-blue);background:#fff;
  box-shadow:0 0 0 3px var(--ipp-blue-glow)}
[data-ipp-root] .ipp-cat-greeting .ipp-greeting-para{min-height:66px}
[data-ipp-root] .ipp-cat-greeting .ipp-greeting-ss{min-height:52px}
[data-ipp-root] .ipp-cat-greeting .ipp-char-count{font:500 10px var(--ipp-font-body);color:var(--ipp-text-light);
  text-align:right;letter-spacing:.02em;font-feature-settings:"tnum"}
[data-ipp-root] .ipp-cat-greeting .ipp-char-count.near{color:var(--ipp-gold-deep);font-weight:600}
[data-ipp-root] .ipp-cat-greeting .ipp-char-count.at{color:var(--ipp-text-dark);font-weight:700}


/* ════════════════════════════════════════════════════════════
   GREETING EDIT-STATE  (v1.4) — conforms to ix-form-controls canon
   ════════════════════════════════════════════════════════════ */

/* Dirty field: canonical "changed" treatment mapped onto the IPP
   greeting input base. Same gold border + gold-glow surface as
   .ix-picker-input--changed in ix-form-controls-v1.0.0.css. */
[data-ipp-root] .ipp-cat-greeting .ipp-greeting-input.ix-picker-input--changed{
  background-color:var(--ix-gold-glow,var(--ipp-gold-glow,rgba(196,163,90,.12)))!important;
  background-image:none!important;
  border:2px solid var(--ix-changed-border,var(--ipp-gold,#C4A35A))!important;
  color:var(--ipp-text-dark)!important;
  font-weight:600!important;
}
[data-ipp-root] .ipp-cat-greeting .ipp-greeting-input.ix-picker-input--changed:focus{
  outline:none!important;
  box-shadow:var(--ix-shadow-gold,0 0 0 3px var(--ipp-gold-shadow,rgba(196,163,90,.20)))!important;
  border-color:var(--ix-changed-border,var(--ipp-gold,#C4A35A))!important;
}

/* Greeting action row in the cat-head: pushes Save/Cancel to the right. */
[data-ipp-root] .ipp-cat-greeting .ipp-gr-actions{
  display:inline-flex;align-items:center;gap:12px;margin-left:auto;flex:none}

/* Save button — IPP blue primary, compact. */
[data-ipp-root] .ipp-cat-greeting .ipp-gr-save{
  font-family:var(--ipp-font-body);font-weight:600;font-size:11.5px;letter-spacing:.02em;
  cursor:pointer;border:none;border-radius:var(--ipp-rs);padding:7px 16px;line-height:1;
  color:#fff;background:linear-gradient(135deg,var(--ipp-blue),var(--ipp-blue-deep));
  box-shadow:0 2px 8px var(--ipp-blue-shadow);transition:.15s}
[data-ipp-root] .ipp-cat-greeting .ipp-gr-save:hover:not(:disabled){
  transform:translateY(-1px);box-shadow:0 6px 16px -6px var(--ipp-blue-shadow)}
[data-ipp-root] .ipp-cat-greeting .ipp-gr-save:disabled{
  opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}

/* Savebar dirty hook — gold dot + emphasis when greeting has edits. */
[data-ipp-root] .ipp-savebar.ipp-dirty .dot{background:var(--ipp-gold);box-shadow:0 0 0 4px var(--ipp-gold-shadow)}
[data-ipp-root] .ipp-savebar.ipp-dirty .stat{color:var(--ipp-text-dark);font-weight:600}


/* ════════════════════════════════════════════════════════════
   CANONICAL EDIT-STATE  (v1.7) — pairs ipp-picker-v1.5.js
   One dirty/selected treatment for EVERY editable control so the
   "will be written on Save" signal is identical picker-wide.
   ════════════════════════════════════════════════════════════ */

/* Single source of truth for the dirty border. HARDCODE (Tracker-logged):
   resolves to the existing gold accent. Change here = change everywhere. */
[data-ipp-root]{
  --ipp-edit-dirty-border: var(--ipp-gold, #C4A35A);
  --ipp-edit-dirty-glow:   var(--ipp-gold-glow, rgba(196,163,90,.12));
  --ipp-edit-dirty-shadow: var(--ipp-gold-shadow, rgba(196,163,90,.20));
}

/* ── Dirty DROPDOWN buttons (customer/asset pickers) ──────────
   Every picker button shares the same selected/dirty border so the
   operator sees at a glance which assignments are pending a Save.
   The chevron + label colors are left to each tile's own hover rule;
   we only override the resting border + surface when .ipp-dirty. */
[data-ipp-root] .ipp-splash-customer.ipp-dirty,
[data-ipp-root] .ipp-banner-customer.ipp-dirty,
[data-ipp-root] .ipp-lbp-customer.ipp-dirty,
[data-ipp-root] .txa-customer.ipp-dirty,
[data-ipp-root] .ipp-re-address.ipp-dirty,
[data-ipp-root] .event-name.ipp-dirty{
  border:2px solid var(--ipp-edit-dirty-border)!important;
  background:var(--ipp-edit-dirty-glow)!important;
  color:var(--ipp-text-dark)!important;
  box-shadow:0 0 0 1px var(--ipp-edit-dirty-glow)!important;
}
[data-ipp-root] .ipp-splash-customer.ipp-dirty .ipp-chev,
[data-ipp-root] .ipp-banner-customer.ipp-dirty .ipp-chev,
[data-ipp-root] .ipp-lbp-customer.ipp-dirty .ipp-chev,
[data-ipp-root] .txa-customer.ipp-dirty .ipp-chev,
[data-ipp-root] .ipp-re-address.ipp-dirty .ipp-chev,
[data-ipp-root] .event-name.ipp-dirty .ipp-chev{ color:var(--ipp-gold-deep)!important; }

/* ── Dirty TILES (when a whole tile is the changed unit) ──────
   Optional: if a tile itself is registered (e.g. a slot reassigned
   or cleared), the tile frame carries the same gold edge. */
[data-ipp-root] .ipp-banner-tile.ipp-dirty,
[data-ipp-root] .ipp-splash-tile.ipp-dirty,
[data-ipp-root] .ipp-lbp-tile.ipp-dirty,
[data-ipp-root] .ipp-txa-tile.ipp-dirty,
[data-ipp-root] .ipp-re-tile.ipp-dirty,
[data-ipp-root] .event-tile.ipp-dirty,
[data-ipp-root] .ipp-ctile.ipp-dirty{
  border-color:var(--ipp-edit-dirty-border)!important;
  box-shadow:0 0 0 1.5px var(--ipp-edit-dirty-glow),0 2px 6px -2px var(--ipp-edit-dirty-shadow)!important;
}

/* ── Dirty CC toggle (Content Controller checklist) ───────────
   A pending include-* change gets the same gold edge as everything
   else. (Under per-click optimistic save it commits immediately, so
   this is normally transient — present for batched-save parity.) */
[data-ipp-root] .ipp-cc-item.ipp-dirty{
  border-color:var(--ipp-edit-dirty-border)!important;
  background:var(--ipp-edit-dirty-glow)!important;
}

/* ── Dirty TEXT INPUTS (greeting + any future text control) ───
   Canonical .ipp-dirty for inputs. Mirrors the greeting's existing
   .ix-picker-input--changed (which still applies via compat alias),
   so this is the same look whether a field uses the new class, the
   legacy class, or both. */
[data-ipp-root] .ipp-greeting-input.ipp-dirty,
[data-ipp-root] input.ipp-dirty,
[data-ipp-root] textarea.ipp-dirty{
  background-color:var(--ipp-edit-dirty-glow)!important;
  background-image:none!important;
  border:2px solid var(--ipp-edit-dirty-border)!important;
  color:var(--ipp-text-dark)!important;
  font-weight:600!important;
}
[data-ipp-root] .ipp-greeting-input.ipp-dirty:focus,
[data-ipp-root] input.ipp-dirty:focus,
[data-ipp-root] textarea.ipp-dirty:focus{
  outline:none!important;
  box-shadow:0 0 0 3px var(--ipp-edit-dirty-shadow)!important;
  border-color:var(--ipp-edit-dirty-border)!important;
}

/* ── Canonical CANCEL link ───────────────────────────────────
   Small text revert link. One look, every scope. Injected by
   editState into [data-ipp-cancel-host] scopes; greeting's own
   in-head Cancel button keeps its existing .ix-revert styling. */
[data-ipp-root] .ipp-cancel-link{
  appearance:none;-webkit-appearance:none;
  background:none;border:none;padding:0;margin:0 0 0 4px;
  font:600 11px var(--ipp-font-body);letter-spacing:.01em;
  color:var(--ipp-text-light);text-decoration:underline;text-underline-offset:2px;
  cursor:pointer;transition:.13s;flex:0 0 auto}
[data-ipp-root] .ipp-cancel-link:hover{color:var(--ipp-err)}
[data-ipp-root] .ipp-cancel-link[hidden]{display:none}


/* ════════════════════════════════════════════════════════════
   TILE DROPDOWN PANEL  (v1.8) — pairs ipp-dropdown-v1.0.js
   Floating searchable list opened from any tile picker button.
   ════════════════════════════════════════════════════════════ */
.ipp-dd-panel{
  position:absolute;z-index:99999;
  max-height:340px;display:flex;flex-direction:column;
  background:var(--ipp-cream,#FAF9F5);
  border:1px solid var(--ipp-border,#e4ddcf);
  border-radius:10px;
  box-shadow:0 12px 40px -8px rgba(26,58,58,.28),0 2px 8px -2px rgba(26,58,58,.18);
  overflow:hidden;font-family:var(--ipp-font-body)}
.ipp-dd-panel[hidden]{display:none}
.ipp-dd-search{padding:8px;border-bottom:1px solid var(--ipp-border,#e4ddcf);background:var(--ipp-cream-warm,#FDFCF8)}
.ipp-dd-input{
  width:100%;box-sizing:border-box;padding:7px 10px;
  border:1px solid var(--ipp-border-input,#d8cfbc);border-radius:7px;
  font:400 13px var(--ipp-font-body);color:var(--ipp-text-dark,#1A3A3A);
  background:#fff;outline:none}
.ipp-dd-input:focus{border-color:var(--ipp-gold,#C4A35A);box-shadow:0 0 0 3px var(--ipp-gold-glow,rgba(196,163,90,.12))}
.ipp-dd-list{overflow-y:auto;padding:4px}
.ipp-dd-opt{
  display:block;width:100%;text-align:left;box-sizing:border-box;
  padding:8px 10px;border:none;background:none;border-radius:7px;cursor:pointer;
  font:400 13px var(--ipp-font-body);color:var(--ipp-text-dark,#1A3A3A);
  transition:.1s}
.ipp-dd-opt:hover{background:var(--ipp-gold-glow,rgba(196,163,90,.12))}
.ipp-dd-opt--clear{color:var(--ipp-text-light,#8a8577);font-style:italic;border-bottom:1px solid var(--ipp-border,#e4ddcf);border-radius:0;margin-bottom:2px}
.ipp-dd-opt-label{display:block;font-weight:500}
.ipp-dd-opt-sub{display:block;font-size:11px;color:var(--ipp-text-light,#8a8577);margin-top:1px}
.ipp-dd-empty{padding:14px 10px;text-align:center;color:var(--ipp-text-light,#8a8577);font-size:12px;font-style:italic}


/* ════════════════════════════════════════════════════════════
   v1.9 · PLAN BOARD (slice 1, read-only)
   ════════════════════════════════════════════════════════════ */
[data-ipp-root] .ipp-view[data-view="picker"] .ipp-nl{grid-template-columns:300px 1fr 320px}
[data-ipp-root] .ipp-view[data-view="picker"] .ipp-rail-right{display:flex;flex-direction:column;gap:12px}
[data-ipp-root] .ipp-view[data-view="picker"] .ipp-rail-right .ipp-card.readiness{flex:0 0 auto}

/* board message */
[data-ipp-root] .ipp-board-msg{font:500 12.5px var(--ipp-font-body);color:var(--ix-text-mid,#5A6478);
  padding:8px 12px;border-radius:8px;background:var(--ipp-cream);margin:0 0 4px}
[data-ipp-root] .ipp-board-msg{flex:0 0 auto}
[data-ipp-root] .ipp-board-msg[hidden]{display:none}
[data-ipp-root] .ipp-cat-untyped{flex:0 0 auto;margin-bottom:14px}
[data-ipp-root] .ipp-board-msg--note{background:transparent;padding:0 2px}
[data-ipp-root] .ipp-board-msg--bad{background:var(--ix-salmon-ghost,rgba(236,114,89,.07));
  border:1px solid var(--ix-salmon,#EC7259);color:var(--ix-salmon-ink,#C0432B)}
[data-ipp-root] .ipp-board-notes summary{cursor:pointer;font:600 11.5px var(--ipp-font-body);color:var(--ix-text-mid,#5A6478)}
[data-ipp-root] .ipp-board-notes ul{margin:6px 0 0 18px;padding:0;font-size:11.5px;line-height:1.5}
[data-ipp-root] .ipp-board-retry{appearance:none;background:none;border:none;padding:0;margin-left:6px;cursor:pointer;
  font:600 12px var(--ipp-font-body);color:inherit;text-decoration:underline;text-underline-offset:2px}

/* focus outline */
[data-ipp-root] .ipp-cat-section{border-radius:12px;outline:2px solid transparent;outline-offset:6px;transition:outline-color .15s}
[data-ipp-root] .ipp-cat-section.ipp-focus-on{outline-color:var(--ix-teal-soft,rgba(26,58,58,.10))}
[data-ipp-root] .ipp-cat-section.ipp-focus-on .ipp-cat-head h5{color:var(--ix-teal,#1A3A3A)}
[data-ipp-root] .ipp-sec-empty{grid-column:1/-1;font:500 12px var(--ipp-font-body);color:var(--ipp-text-light);padding:10px 2px}

/* tiles: shared states */
[data-ipp-root] .ipp-slot{position:relative}
[data-ipp-root] .ipp-slot .pos-tag{position:absolute;top:6px;left:8px;z-index:2;font:700 9px var(--ipp-font-body);
  letter-spacing:.07em;text-transform:uppercase;color:var(--ipp-text-light);background:rgba(255,255,255,.9);
  padding:1px 5px;border-radius:4px}
[data-ipp-root] .ipp-slot-check{position:absolute;top:5px;right:6px;z-index:2;width:18px;height:18px;border-radius:50%;
  display:grid;place-items:center;font:700 11px/1 var(--ipp-font-body);color:#fff;background:var(--ix-ok,#1F7A5C)}
[data-ipp-root] .ipp-slot.ipp-slot--ok{border-color:var(--ix-ok,#1F7A5C)!important;
  box-shadow:0 0 0 1px rgba(31,122,92,.18)}
[data-ipp-root] .ipp-slot.ipp-slot--bad{border:1.5px solid var(--ix-salmon,#EC7259)!important;
  background:var(--ix-salmon-ghost,rgba(236,114,89,.07))!important}
[data-ipp-root] .ipp-slot.ipp-slot--bad .ipp-ttitle,
[data-ipp-root] .ipp-slot.ipp-slot--bad .ipp-slot-name{color:var(--ix-salmon-ink,#C0432B)}
[data-ipp-root] .ipp-slot{cursor:default}
[data-ipp-root] .ipp-slot:hover{transform:none}

/* article tiles */
[data-ipp-root] .ipp-cat-articles .ipp-ctile.ipp-slot{padding-top:24px}
[data-ipp-root] .ipp-cat-articles .ipp-ctile .ipp-art-thumb{flex:1;min-height:50px;border-radius:6px}
[data-ipp-root] .ipp-slot-thumb{background-size:cover;background-position:center;background-color:var(--ipp-cream-deep)}

/* Around Town opener line */
[data-ipp-root] .ipp-at-line{grid-column:1/-1;display:flex;align-items:center;gap:10px;position:relative;
  padding:6px 10px;border-left:3px solid var(--ix-teal,#1A3A3A);background:var(--ix-teal-ghost,rgba(26,58,58,.05));
  border-radius:0 8px 8px 0;cursor:default}
[data-ipp-root] .ipp-at-line .ipp-at-tag{font:700 10px var(--ipp-font-body);letter-spacing:.1em;text-transform:uppercase;
  color:var(--ix-teal,#1A3A3A);flex:0 0 auto}
[data-ipp-root] .ipp-at-line .ipp-at-teaser{font:500 12px var(--ipp-font-body);color:var(--ipp-text-mid);flex:1;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
[data-ipp-root] .ipp-at-line .pos-tag{position:static;background:none;padding:0;font:700 9px var(--ipp-font-body);
  letter-spacing:.07em;text-transform:uppercase;color:var(--ipp-text-light);flex:0 0 auto}

/* banner tiles: grid follows the real slot count */
[data-ipp-root] .ipp-cat-ads .ipp-banner-grid--board{height:auto;grid-template-rows:none;grid-auto-rows:84px}
[data-ipp-root] .ipp-cat-ads .ipp-banner-tile.ipp-slot{padding-top:22px}
[data-ipp-root] .ipp-cat-ads .ipp-banner-photo{max-width:100%;max-height:100%;object-fit:contain;display:block}
[data-ipp-root] .ipp-cat-ads .ipp-slot-name{font:600 11px var(--ipp-font-body);color:var(--ipp-text-dark);text-align:center;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
[data-ipp-root] .ipp-cat-ads .ipp-banner-tile.ghost .ipp-slot-name{color:var(--ipp-text-light);font-style:italic;font-weight:500}
[data-ipp-root] .ipp-cat-ads .ipp-splash-notyet{cursor:default}
[data-ipp-root] .ipp-cat-ads .ipp-splash-note{font:500 11px var(--ipp-font-body);color:var(--ipp-text-light);text-align:center;font-style:italic}

/* list tiles: Events, Real Estate, The Find */
[data-ipp-root] .ipp-list-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:6px}
[data-ipp-root] .ipp-list-tile{background:#fff;border:1px solid var(--ipp-border);border-radius:10px;min-height:76px;
  display:flex;align-items:flex-end;padding:24px 10px 10px}
[data-ipp-root] .ipp-list-tile.ghost{background:repeating-linear-gradient(135deg,#fff,#fff 8px,var(--ipp-cream) 8px,var(--ipp-cream) 16px);
  border:1.5px dashed var(--ipp-border-input)}
[data-ipp-root] .ipp-list-count{font:600 13px var(--ipp-font-display);color:var(--ipp-text-dark)}
[data-ipp-root] .ipp-list-tile.ghost .ipp-list-count{font:500 12px var(--ipp-font-body);font-style:italic;color:var(--ipp-text-light)}

/* rows with no asset type */
[data-ipp-root] .ipp-untyped-list{display:flex;flex-wrap:wrap;gap:6px}
[data-ipp-root] .ipp-untyped-row{font:600 11.5px var(--ipp-font-body);color:var(--ix-salmon-ink,#C0432B);
  background:var(--ix-salmon-ghost,rgba(236,114,89,.07));border:1px solid var(--ix-salmon,#EC7259);
  border-radius:6px;padding:4px 8px;white-space:nowrap}

/* ── Allocations card ─────────────────────────────────────── */
[data-ipp-root] .ipp-rail-right .ipp-card.ipp-al-card{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:10px}
[data-ipp-root] .ipp-al-head{display:flex;align-items:center;gap:6px}
[data-ipp-root] .ipp-al-head h4{margin:0!important}
[data-ipp-root] .ipp-al-info{display:inline-flex;align-items:center}
[data-ipp-root] .ipp-al-reload{appearance:none;background:none;border:none;padding:0;margin-left:auto;cursor:pointer;
  font:600 11px var(--ipp-font-body);color:var(--ipp-text-light);text-decoration:underline;text-underline-offset:2px}
[data-ipp-root] .ipp-al-reload:hover{color:var(--ix-teal,#1A3A3A)}
[data-ipp-root] .ipp-al-chips{display:flex;flex-wrap:wrap;gap:5px}
[data-ipp-root] .ipp-al-chips .ix-btn{font-size:11px;padding:4px 10px;min-height:0}
[data-ipp-root] .ipp-al-list{flex:1 1 auto;min-height:60px;overflow-y:auto;display:flex;flex-direction:column;gap:5px;margin:0 -4px;padding:0 4px}
[data-ipp-root] .ipp-al-it{border:1px solid var(--ipp-border);border-radius:8px;padding:7px 9px;background:#fff}
[data-ipp-root] .ipp-al-it--green{border-color:rgba(31,122,92,.35);background:rgba(31,122,92,.04)}
[data-ipp-root] .ipp-al-it--salmon{border-left:4px solid var(--ix-salmon,#EC7259);padding-left:7px}
[data-ipp-root] .ipp-al-t{font:600 12.5px var(--ipp-font-body);color:var(--ipp-text-dark);line-height:1.3;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
[data-ipp-root] .ipp-al-ok{color:var(--ix-ok,#1F7A5C);font-weight:700;margin-right:5px}
[data-ipp-root] .ipp-al-asset{font:500 11px var(--ipp-font-body);color:var(--ipp-text-mid);margin-top:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
[data-ipp-root] .ipp-al-sub{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin-top:3px;
  font:500 11px var(--ipp-font-body);color:var(--ipp-text-light)}
[data-ipp-root] .ipp-al-dot{opacity:.6}
[data-ipp-root] .ipp-al-cust{color:var(--ipp-text-mid);font-weight:600}
[data-ipp-root] .ipp-al-src{font:600 11px var(--ipp-font-body);color:var(--ipp-text-mid)}
[data-ipp-root] button.ipp-al-pdf{appearance:none;background:none;border:none;padding:0;cursor:pointer;
  color:var(--ix-teal,#1A3A3A);text-decoration:underline;text-underline-offset:2px}
[data-ipp-root] .ipp-al-word--salmon{color:var(--ix-salmon-ink,#C0432B);font-weight:700}
[data-ipp-root] .ipp-al-word--match{color:var(--ix-gold-ink,#8A6E2E);font-weight:600}
[data-ipp-root] .ipp-al-empty{font:500 12px var(--ipp-font-body);color:var(--ipp-text-light);padding:8px 2px;line-height:1.45}
[data-ipp-root] .ipp-al-empty--bad{color:var(--ix-salmon-ink,#C0432B)}
[data-ipp-root] .ipp-al-avail{flex:0 0 auto;display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--ipp-border);padding-top:8px}
[data-ipp-root] .ipp-al-avail[hidden]{display:none}
[data-ipp-root] .ipp-al-availlink{appearance:none;background:none;border:none;padding:0;cursor:pointer;align-self:flex-start;
  font:600 11.5px var(--ipp-font-body);color:var(--ix-teal,#1A3A3A);text-decoration:underline;text-underline-offset:2px}
[data-ipp-root] .ipp-al-availbox{display:flex;flex-direction:column;gap:6px}
[data-ipp-root] .ipp-al-availbox[hidden]{display:none}
[data-ipp-root] .ipp-al-search{width:100%;box-sizing:border-box;padding:6px 9px;border:1px solid var(--ipp-border-input);
  border-radius:7px;font:400 12px var(--ipp-font-body);background:#fff}
[data-ipp-root] .ipp-al-availlist{max-height:260px;flex:0 0 auto}

/* ════════════════════════════════════════════════════════════
   v1.10 · tile sizes on wide screens
   ════════════════════════════════════════════════════════════ */
[data-ipp-root] .ipp-cat-articles .ipp-cat-tiles{grid-template-columns:repeat(auto-fill,minmax(150px,190px))}
[data-ipp-root] .ipp-cat-ads .ipp-banner-grid--board{grid-template-columns:repeat(auto-fill,minmax(170px,220px));grid-auto-rows:96px}
[data-ipp-root] .ipp-list-tiles{grid-template-columns:repeat(auto-fill,minmax(170px,240px))}
