:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;--accent:#247b76;--accent2:#527449;--accent3:#5c72b8;--danger:#b94a48;--warn:#b88742;--info:#477b9d;--success:#4d7c62;--bg:#f3f6f7;--ink:#17324a;--text:#172532;--line:#dce4e6;--border:#cbd7da;--muted:#667783;--card:#fff;--surface-page:var(--bg);--surface-panel:#f6faf9;--surface-card:#fff;--panel:var(--surface-panel);--side:#102c42;--sideText:#cbd8df;--sideActive:#1d435b;--shadow:0 7px 24px rgba(31,59,74,.08);--space:20px}
*{box-sizing:border-box}body{margin:0;display:flex;min-height:100vh;background:var(--bg);color:var(--text);transition:background .2s,color .2s}body[data-theme="dark"]{--bg:#11181e;--ink:#e9f1f5;--text:#dce7ec;--line:#2a3944;--border:#344751;--muted:#91a3ae;--card:#18232b;--surface-page:var(--bg);--surface-panel:#202d36;--surface-card:#18232b;--panel:var(--surface-panel);--side:#0b1217;--sideText:#b9c7ce;--sideActive:#223741;--shadow:0 7px 24px rgba(0,0,0,.18)}body[data-theme="warm"]{--bg:#f7f3ec;--ink:#443628;--text:#352e27;--line:#e5dbce;--border:#d8cabb;--muted:#86786b;--card:#fffdf9;--surface-page:var(--bg);--surface-panel:#f9f1e6;--surface-card:#fffdf9;--panel:var(--surface-panel);--side:#443a32;--sideText:#e5dcd2;--sideActive:#625346}body[data-theme="soft"]{--bg:#eef4f3;--ink:#284642;--text:#29403e;--line:#d5e3e0;--border:#c5d9d5;--muted:#718985;--card:#fbfdfc;--surface-page:var(--bg);--surface-panel:#e9f3f1;--surface-card:#fbfdfc;--panel:var(--surface-panel);--side:#294743;--sideText:#d5e4e0;--sideActive:#3c625d}body[data-density="compact"]{--space:13px}.sidebar{width:245px;background:var(--side);color:#fff;padding:24px 16px;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;transition:width .2s}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 28px;white-space:nowrap}.brand .logo{width:42px;height:42px;border-radius:13px;background:var(--accent);display:grid;place-items:center;font-weight:800;flex:none}.brand strong,.brand small{display:block}.brand small{opacity:.65;margin-top:3px}.sidebar-workspace{display:block;margin:0 8px 16px;padding:10px 10px 11px;border:1px solid color-mix(in srgb,var(--sideText) 18%,transparent);border-radius:11px;background:color-mix(in srgb,var(--side) 78%,white 5%)}.sidebar-workspace span{display:block;color:var(--sideText);opacity:.72;font-size:10px;margin-bottom:5px}.sidebar-workspace select{width:100%;min-width:0;background:color-mix(in srgb,var(--side) 82%,white 8%);color:white;border-color:color-mix(in srgb,var(--sideText) 25%,transparent);padding:8px 9px}.sidebar-workspace select option{color:#172532;background:white}.nav{display:flex;align-items:center;gap:8px;width:100%;border:0;background:transparent;color:var(--sideText);text-align:left;padding:12px 14px;border-radius:10px;font-weight:650;cursor:pointer;margin:3px 0}.nav:hover,.nav.active{background:var(--sideActive);color:white}.nav[hidden]{display:none}.nav-separator{height:1px;background:color-mix(in srgb,var(--sideText) 16%, transparent);margin:8px 8px}.planned{margin-top:auto;padding:14px;border:1px solid color-mix(in srgb,var(--sideText) 20%, transparent);border-radius:12px;background:color-mix(in srgb,var(--side) 70%, white 6%)}.planned span,.planned small{display:block;color:var(--sideText);opacity:.75;font-size:12px}.planned strong{display:block;margin:5px 0;font-size:13px}body > main{margin-left:245px;width:calc(100% - 245px);padding:28px 34px 60px;transition:margin-left .2s,width .2s}body[data-sidebar="compact"] .sidebar{width:84px}body[data-sidebar="compact"] > main{margin-left:84px;width:calc(100% - 84px)}body[data-sidebar="compact"] .brand div,body[data-sidebar="compact"] .planned,body[data-sidebar="compact"] .nav span,body[data-sidebar="compact"] .sidebar-workspace{display:none}body[data-sidebar="compact"] .nav{justify-content:center;font-size:0}body[data-sidebar="compact"] #mainNav .nav:before{content:attr(data-view);font-size:10px;text-transform:uppercase}#pageHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;gap:20px}h1,h2,h3,p{margin-top:0}.eyebrow{color:var(--accent);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}#pageHeader h1{font-size:30px;margin-bottom:0;color:var(--ink)}.header-tools{display:flex;align-items:center;gap:12px}.workspace-switch span{display:block;font-size:10px;color:var(--muted);margin-bottom:3px}.workspace-switch select{min-width:180px}.status{background:color-mix(in srgb,var(--accent) 12%,var(--card));color:var(--accent);padding:8px 12px;border-radius:999px;font-size:13px;font-weight:700;white-space:nowrap}.status i{display:inline-block;width:8px;height:8px;background:var(--accent);border-radius:50%;margin-right:5px}.view{display:none}.view.active{display:block}.card{background:var(--surface-card);border:1px solid var(--border);border-radius:16px;padding:var(--space);box-shadow:var(--shadow)}.home-layout{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.span-all{grid-column:1/-1}.hero{display:flex;justify-content:space-between;gap:40px;align-items:center;padding:calc(var(--space) + 10px)}.hero h2{font-size:28px;max-width:650px;margin:10px 0;color:var(--ink)}.hero p{color:var(--muted);max-width:760px;line-height:1.6}.chip{font-size:11px;font-weight:800;background:color-mix(in srgb,var(--accent) 12%,var(--card));color:var(--accent);padding:6px 9px;border-radius:7px}.metric{text-align:center;min-width:150px}.metric b{display:block;font-size:52px;color:var(--ink)}.metric span{color:var(--muted)}.mini span,.mini small{display:block;color:var(--muted);font-size:12px}.mini b{display:block;font-size:20px;margin:8px 0;color:var(--ink)}.checkgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;color:var(--text)}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:16px}.toolbar h2{margin-bottom:4px;color:var(--ink)}.toolbar p{color:var(--muted);margin-bottom:0}.toolbar-actions{display:flex;gap:8px}.primary{background:var(--accent);border:0;color:#fff;font-weight:700;padding:10px 14px;border-radius:10px;cursor:pointer}.workspace{display:grid;grid-template-columns:340px 1fr;gap:16px}.list{padding:8px;min-height:500px}.listitem{padding:14px;border-radius:10px;cursor:pointer;border:1px solid transparent}.listitem:hover,.listitem.active{background:color-mix(in srgb,var(--accent) 8%,var(--card));border-color:color-mix(in srgb,var(--accent) 24%,var(--line))}.listitem strong{display:block}.listitem small{color:var(--muted)}.empty{color:var(--muted);text-align:center;padding:40px 15px}.empty.big{padding:150px 20px}.detail h2{margin-bottom:4px}.meta{color:var(--muted);font-size:13px}.settings{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.setting{background:color-mix(in srgb,var(--bg) 75%,var(--card));border-radius:10px;padding:12px}.setting span{display:block;color:var(--muted);font-size:11px}.setting b{font-size:13px}.members-head{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:18px}.member{display:grid;grid-template-columns:1fr 150px 90px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.member small{display:block;color:var(--muted)}select,input{width:100%;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text)}button.ghost{border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:8px;padding:9px 12px;cursor:pointer}.modulegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.module{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px}.module.active{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));box-shadow:inset 0 3px var(--accent)}.module .badge{font-size:10px;text-transform:uppercase;padding:4px 7px;border-radius:99px;background:color-mix(in srgb,var(--muted) 10%,var(--card));color:var(--muted)}.module.active .badge{background:color-mix(in srgb,var(--accent) 12%,var(--card));color:var(--accent)}.module h3{margin:12px 0 5px;color:var(--ink)}.module p{color:var(--muted);font-size:13px;min-height:38px}.deps{font-size:11px;color:var(--muted)}.customize-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.customize-grid.hidden,.hidden{display:none!important}.field{display:block;font-size:12px;font-weight:700;margin:16px 0}.field select,.field input{margin-top:6px}.color-row{display:grid;grid-template-columns:64px 1fr;gap:10px;align-items:center}.color-row input[type=color]{height:42px;padding:4px}.order-list{display:grid;gap:8px;margin-top:16px}.order-row{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:color-mix(in srgb,var(--bg) 55%,var(--card))}.drag-label{font-weight:650}.order-actions{display:flex;align-items:center;gap:6px}.iconbtn{width:32px;height:32px;border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:8px;cursor:pointer}.iconbtn:disabled{opacity:.3;cursor:not-allowed}.switch{position:relative;width:42px;height:24px;display:block}.switch input{opacity:0;width:0;height:0}.switch span{position:absolute;inset:0;background:var(--line);border-radius:999px;cursor:pointer}.switch span:before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:white;border-radius:50%;transition:.18s}.switch input:checked+span{background:var(--accent)}.switch input:checked+span:before{transform:translateX(18px)}.switch input:disabled+span{opacity:.45;cursor:not-allowed}.preview-note p{color:var(--muted);line-height:1.6}dialog{border:0;border-radius:16px;padding:0;box-shadow:0 25px 70px rgba(0,0,0,.25);width:min(470px,92vw);background:var(--card);color:var(--text)}dialog::backdrop{background:rgba(10,30,43,.55)}dialog form{padding:24px}dialog label{display:block;font-size:12px;font-weight:700;margin:12px 0}dialog input,dialog select{margin-top:6px}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.actions button{padding:10px 14px;border-radius:9px;border:1px solid var(--line);cursor:pointer;background:var(--card);color:var(--text)}.actions .primary{background:var(--accent);color:white;border-color:var(--accent)}body[data-density="compact"] .card{border-radius:12px}body[data-density="compact"] .nav{padding:9px 12px}body[data-density="compact"] > main{padding-top:20px}.card[hidden]{display:none!important}@media(max-width:1050px){.home-layout,.modulegrid{grid-template-columns:1fr 1fr}.customize-grid{grid-template-columns:1fr}.workspace{grid-template-columns:1fr}.settings{grid-template-columns:1fr 1fr}.header-tools{align-items:flex-end;flex-direction:column}}@media(max-width:720px){.sidebar{width:76px;padding:18px 10px}.brand div,.planned,.nav span{display:none}.brand{padding-left:6px}.nav{justify-content:center;font-size:0}.nav:before{content:attr(data-view);font-size:9px;text-transform:uppercase}body > main,body[data-sidebar="compact"] > main{margin-left:76px;width:calc(100% - 76px);padding:18px}.home-layout,.modulegrid,.checkgrid{grid-template-columns:1fr}.hero{align-items:flex-start;flex-direction:column}.member{grid-template-columns:1fr;gap:8px}.settings{grid-template-columns:1fr 1fr}#pageHeader{align-items:flex-start}.workspace-switch select{min-width:140px}.status{display:none}}

/* Finance Core */
textarea{width:100%;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text);font:inherit;resize:vertical}.month-input{width:auto;min-width:150px}.card-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.card-heading h3{margin-bottom:4px}.finance-home-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px}.finance-home-metrics>div{background:color-mix(in srgb,var(--bg) 70%,var(--card));border:1px solid var(--line);border-radius:12px;padding:14px}.finance-home-metrics span{display:block;color:var(--muted);font-size:11px}.finance-home-metrics b{display:block;margin-top:5px;color:var(--ink);font-size:20px}.finance-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.summary-tile span,.summary-tile small{display:block;color:var(--muted);font-size:12px}.summary-tile b{display:block;font-size:24px;color:var(--ink);margin:8px 0}.finance-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:16px}.finance-side{display:grid;gap:16px;align-content:start}.inline-filters{display:flex;gap:8px;min-width:360px}.inline-filters select{min-width:160px}.transaction-list{margin-top:14px}.transaction-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto 34px;gap:12px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.transaction-row:first-child{border-top:0}.tx-type{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-weight:800;font-size:12px}.tx-type.income{background:color-mix(in srgb,#15965d 13%,var(--card));color:#15965d}.tx-type.expense{background:color-mix(in srgb,#c14a45 12%,var(--card));color:#c14a45}.tx-main strong,.tx-main small{display:block}.tx-main small{color:var(--muted);margin-top:2px}.tx-amount{font-weight:800;white-space:nowrap}.tx-amount.income{color:#15965d}.tx-amount.expense{color:#c14a45}.iconbtn.danger{color:#c14a45}.category-list{margin-top:12px}.category-group{padding:12px 0;border-top:1px solid var(--line)}.category-group:first-child{border-top:0}.category-group>b{display:block;margin-bottom:8px}.category-pill{display:inline-block;padding:5px 8px;border-radius:999px;border:1px solid var(--line);font-size:11px;margin:3px 3px 3px 0;color:var(--text)}.category-pill.system{background:color-mix(in srgb,var(--bg) 60%,var(--card));color:var(--muted)}.category-pill.custom{border-color:color-mix(in srgb,var(--accent) 50%,var(--line));color:var(--accent)}.breakdown-list{margin-top:10px}.breakdown-row{padding:9px 0}.breakdown-row>div:first-child{display:flex;justify-content:space-between;gap:12px;font-size:12px}.breakdown-row span{color:var(--text)}.breakdown-row b{color:var(--ink)}.bar{height:6px;background:color-mix(in srgb,var(--line) 70%,transparent);border-radius:999px;margin-top:6px;overflow:hidden}.bar i{display:block;height:100%;background:var(--accent);border-radius:inherit}.small-empty{padding:18px 8px}.finance-home-card .ghost{white-space:nowrap}
@media(max-width:1150px){.finance-summary-grid{grid-template-columns:1fr 1fr}.finance-layout{grid-template-columns:1fr}.finance-home-metrics{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.finance-summary-grid,.finance-home-metrics{grid-template-columns:1fr}.toolbar-actions{flex-wrap:wrap}.month-input{width:100%}.card-heading{flex-direction:column}.inline-filters{min-width:0;width:100%;flex-direction:column}.transaction-row{grid-template-columns:34px minmax(0,1fr) 34px}.tx-amount{grid-column:2/3;grid-row:2}.transaction-row .danger{grid-column:3;grid-row:1/3}}

/* Editing, favorites and drag/drop */
.detail-title{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.member.member-editable{grid-template-columns:minmax(0,1fr) auto}.member-actions{display:flex;gap:8px;justify-content:flex-end}.danger-text{color:#c14a45!important}.dialog-note{font-size:12px;line-height:1.5;color:var(--muted);background:color-mix(in srgb,var(--accent) 6%,var(--card));border-radius:9px;padding:10px 12px}.favorite-check{display:flex!important;align-items:center;gap:9px}.favorite-check input{width:auto;margin:0}.favorite-wrap{margin:14px 0 4px;border:1px dashed color-mix(in srgb,var(--accent) 40%,var(--line));border-radius:11px;padding:10px;background:color-mix(in srgb,var(--accent) 4%,var(--card))}.favorite-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px}.favorite-head span{font-weight:750;font-size:12px}.favorite-head small{font-size:10px;color:var(--muted)}.favorite-categories{display:flex;flex-wrap:wrap;gap:7px;min-height:34px}.favorite-chip{border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));background:var(--card);color:var(--text);border-radius:999px;padding:7px 10px;cursor:grab;font-weight:650}.favorite-chip:active{cursor:grabbing}.favorite-chip.dragging{opacity:.45;outline:2px dashed var(--accent)}.favorite-chip .grip{color:var(--muted);margin-right:5px}.favorite-empty{font-size:11px;color:var(--muted);padding:5px 2px}.category-group-title{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:7px}.category-group-title small{font-size:9px;color:var(--muted)}.category-rows{display:grid;gap:5px}.category-row{display:grid;grid-template-columns:22px 32px minmax(0,1fr) 32px;align-items:center;gap:5px;border:1px solid var(--line);border-radius:9px;padding:6px 7px;background:color-mix(in srgb,var(--bg) 35%,var(--card));cursor:grab}.category-row:active{cursor:grabbing}.category-row.dragging{opacity:.4;border-style:dashed;border-color:var(--accent)}.category-grip{color:var(--muted);font-size:14px;text-align:center}.starbtn{width:30px;height:30px;border:0;background:transparent;color:color-mix(in srgb,var(--muted) 60%,var(--line));font-size:18px;cursor:pointer;border-radius:7px}.starbtn:hover{background:color-mix(in srgb,var(--accent) 8%,var(--card))}.starbtn.on{color:#d6a400}.category-name{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:650;min-width:0}.category-name small{font-size:9px;color:var(--muted);font-weight:500;border:1px solid var(--line);padding:2px 5px;border-radius:999px}.transaction-row{grid-template-columns:36px minmax(0,1fr) auto auto}.tx-actions{display:flex;gap:5px}.tx-actions .iconbtn{flex:0 0 auto}
@media(max-width:720px){.detail-title{flex-direction:column}.member.member-editable{grid-template-columns:1fr}.member-actions{justify-content:flex-start}.transaction-row{grid-template-columns:34px minmax(0,1fr) auto}.tx-actions{grid-column:3;grid-row:1/3;flex-direction:column}.tx-amount{grid-column:2/3;grid-row:2}.favorite-head{align-items:flex-start;flex-direction:column}.category-row{grid-template-columns:18px 30px minmax(0,1fr) 30px}}

/* Modal escape routes, household deletion and category drop target */
.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.dialog-head h3{margin:0}.dialog-x{width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--text);font-size:22px;line-height:1;cursor:pointer}.dialog-x:hover{background:color-mix(in srgb,var(--accent) 8%,var(--card))}.detail-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.category-dropzone{margin-top:10px;min-height:84px;border:2px dashed color-mix(in srgb,var(--accent) 52%,var(--line));border-radius:12px;padding:12px 14px;display:grid;gap:3px;align-content:center;justify-items:center;text-align:center;background:color-mix(in srgb,var(--accent) 3%,var(--card));transition:.15s ease}.category-dropzone>span{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:800}.category-dropzone>strong{font-size:15px;color:var(--ink)}.category-dropzone>small{font-size:10px;line-height:1.4;color:var(--muted);max-width:360px}.category-dropzone.drag-over{border-style:solid;border-color:var(--accent);background:color-mix(in srgb,var(--accent) 11%,var(--card));transform:translateY(-1px)}.category-dropzone.has-value{border-style:solid}.favorite-chip{user-select:none}.favorite-chip[draggable="true"]{cursor:grab}.favorite-chip[draggable="true"]:active{cursor:grabbing}@media(max-width:720px){.detail-actions{justify-content:flex-start}.category-dropzone{min-height:96px}}

.language-settings-grid{margin-bottom:16px}.language-settings-grid code{display:block;margin-top:5px;white-space:normal;overflow-wrap:anywhere;font-size:11px;color:var(--text)}button:disabled{opacity:.45;cursor:not-allowed}

/* Portable user data & backup */
.backup-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.backup-section{margin-top:12px}.backup-list{display:grid;gap:7px}.backup-row{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:9px 10px;background:color-mix(in srgb,var(--bg) 30%,var(--card))}.backup-row strong,.backup-row small{display:block}.backup-row strong{font-size:12px;color:var(--ink)}.backup-row small{font-size:10px;color:var(--muted);margin-top:3px}.backup-row-actions{display:flex;gap:6px;align-items:center}.compact-empty{min-height:auto;padding:14px}.language-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:900px){.language-settings-grid{grid-template-columns:1fr}.backup-row{align-items:flex-start;flex-direction:column}.backup-row-actions{width:100%;justify-content:flex-end}}

/* Budget Engine */
.budget-home-body{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(220px,1.2fr);gap:10px;margin-top:18px;align-items:stretch}.budget-home-body>div{background:color-mix(in srgb,var(--bg) 70%,var(--card));border:1px solid var(--line);border-radius:12px;padding:14px}.budget-home-body span,.budget-home-body small{display:block;color:var(--muted);font-size:11px}.budget-home-body b{display:block;margin-top:5px;color:var(--ink);font-size:20px}.budget-home-progress{display:grid;align-content:center;gap:8px}.budget-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.budget-layout{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(280px,.8fr);gap:16px}.budget-plan-fields{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:12px;margin-top:16px}.percent-input{display:grid;grid-template-columns:1fr 38px;align-items:center}.percent-input span{border:1px solid var(--line);border-left:0;border-radius:0 8px 8px 0;background:color-mix(in srgb,var(--bg) 60%,var(--card));padding:10px;text-align:center;color:var(--muted)}.percent-input input{border-radius:8px 0 0 8px}.budget-progress{height:9px;background:color-mix(in srgb,var(--line) 72%,transparent);border-radius:999px;overflow:hidden}.budget-progress.large{height:12px}.budget-progress i{display:block;width:0;height:100%;background:var(--accent);border-radius:inherit;transition:width .2s ease}.budget-progress i.warning{background:#d6a400}.budget-progress i.exceeded{background:#c14a45}.budget-overall-progress{margin:16px 0 20px}.budget-progress-label{display:flex;justify-content:space-between;gap:12px;margin-top:7px;color:var(--muted);font-size:11px}.budget-category-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;padding-top:15px;border-top:1px solid var(--line)}.budget-category-head h3{margin:0}.budget-category-head b{color:var(--ink)}.budget-category-list{margin-top:10px;display:grid;gap:8px}.budget-category-row{display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(120px,.8fr) minmax(120px,.8fr) minmax(150px,1fr);gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}.budget-category-row:first-child{border-top:0}.budget-category-name strong,.budget-category-name small{display:block}.budget-category-name small{font-size:10px;color:var(--muted);margin-top:3px}.budget-category-money span,.budget-category-money b{display:block}.budget-category-money span{font-size:10px;color:var(--muted)}.budget-category-money b{font-size:12px;margin-top:2px}.budget-limit-input{display:flex;align-items:center;gap:6px}.budget-limit-input input{min-width:0}.budget-limit-input small{font-size:10px;color:var(--muted);white-space:nowrap}.budget-category-state{display:grid;gap:5px}.budget-category-state>div{display:flex;justify-content:space-between;gap:8px;font-size:10px;color:var(--muted)}.budget-status{padding:6px 9px;border-radius:999px;font-size:10px;font-weight:800;border:1px solid var(--line);white-space:nowrap}.budget-status.ok{color:#15965d;border-color:color-mix(in srgb,#15965d 45%,var(--line));background:color-mix(in srgb,#15965d 8%,var(--card))}.budget-status.warning{color:#a67f00;border-color:color-mix(in srgb,#d6a400 45%,var(--line));background:color-mix(in srgb,#d6a400 8%,var(--card))}.budget-status.exceeded,.budget-status.full{color:#c14a45;border-color:color-mix(in srgb,#c14a45 45%,var(--line));background:color-mix(in srgb,#c14a45 8%,var(--card))}.budget-status.not_set{color:var(--muted)}.budget-guidance{display:grid;gap:9px;margin-top:10px}.guidance-item{border:1px solid var(--line);border-radius:10px;padding:10px}.guidance-item span,.guidance-item b{display:block}.guidance-item span{font-size:10px;color:var(--muted)}.guidance-item b{margin-top:3px;color:var(--ink);font-size:13px}.budget-legend{display:grid;gap:9px;margin-top:10px}.budget-legend span{display:flex;align-items:center;gap:8px;font-size:11px}.budget-legend .dot{width:9px;height:9px;border-radius:50%;display:inline-block}.dot.ok{background:#15965d}.dot.warning{background:#d6a400}.dot.exceeded{background:#c14a45}.budget-save-actions{margin-top:16px}.danger-button{border:1px solid color-mix(in srgb,#c14a45 45%,var(--line));background:color-mix(in srgb,#c14a45 7%,var(--card));color:#c14a45;border-radius:9px;padding:9px 12px;cursor:pointer}.danger-button:hover{background:color-mix(in srgb,#c14a45 12%,var(--card))}@media(max-width:1150px){.budget-summary-grid{grid-template-columns:1fr 1fr}.budget-layout{grid-template-columns:1fr}.budget-home-body{grid-template-columns:1fr 1fr}}@media(max-width:760px){.budget-summary-grid,.budget-home-body{grid-template-columns:1fr}.budget-plan-fields{grid-template-columns:1fr}.budget-category-row{grid-template-columns:1fr 1fr}.budget-category-state{grid-column:1/-1}.budget-category-head{align-items:flex-start;flex-direction:column}}

/* Product & Price Registry */
.search-input{min-width:220px}
.compact-check{display:flex!important;align-items:center;gap:7px;white-space:nowrap;font-size:13px;color:var(--muted)}
.compact-check input{width:auto!important}
.product-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.85fr);gap:16px;align-items:start}
.product-side{display:grid;gap:16px;position:sticky;top:16px}
.product-list{display:grid;gap:8px}
.product-row{width:100%;display:grid;grid-template-columns:minmax(180px,1.3fr) minmax(150px,.8fr) minmax(130px,.7fr);gap:14px;align-items:center;text-align:left;border:1px solid var(--border);background:var(--surface-2);border-radius:14px;padding:13px 14px;color:var(--text);cursor:pointer}
.product-row:hover,.product-row.selected{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}
.product-row.inactive{opacity:.58}
.product-main,.product-price,.product-meta{display:flex;flex-direction:column;gap:3px;min-width:0}
.product-main strong,.product-price b{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.product-main span,.product-main small,.product-price small,.product-meta span,.product-meta small{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.product-price{text-align:right}.product-meta{text-align:right}
.product-detail-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.product-detail-head h3{margin:.1rem 0}.product-detail-head .meta{margin:0}
.product-note{padding:10px 12px;background:var(--surface-2);border-radius:10px;color:var(--muted);white-space:pre-wrap}
.product-current-price{display:grid;grid-template-columns:1fr auto;gap:4px 12px;margin:16px 0;padding:14px;border-radius:14px;background:var(--surface-2)}
.product-current-price span{font-size:12px;color:var(--muted)}.product-current-price b{font-size:22px;text-align:right}.product-current-price small{grid-column:1/-1;text-align:right;color:var(--muted)}
.product-history-head{margin-top:16px}.price-history{display:grid;gap:8px;margin-top:10px}
.price-history-row{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}
.price-history-row>div{display:flex;flex-direction:column;gap:2px}.price-history-row>div:nth-child(2){text-align:right}.price-history-row small{font-size:11px;color:var(--muted)}
.price-history-row .row-actions{flex-direction:row;align-items:center}
.product-danger-zone{padding-top:14px;margin-top:14px;border-top:1px solid var(--border)}
.product-home-card .finance-home-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1050px){.product-layout{grid-template-columns:1fr}.product-side{position:static}.product-home-card .finance-home-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.product-row{grid-template-columns:1fr}.product-price,.product-meta{text-align:left}.price-history-row{grid-template-columns:1fr}.price-history-row>div:nth-child(2){text-align:left}.toolbar-actions .search-input{min-width:0;width:100%}}

/* Pantry Inventory */
.pantry-home-card .finance-home-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
.pantry-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(340px,.75fr);gap:16px;align-items:start}
.pantry-side{display:grid;gap:16px;position:sticky;top:16px}
.pantry-list{display:grid;gap:8px}
.pantry-row{width:100%;display:grid;grid-template-columns:minmax(180px,1.25fr) minmax(130px,.7fr) minmax(150px,.8fr) minmax(120px,.6fr);gap:14px;align-items:center;text-align:left;border:1px solid var(--border);background:var(--surface-2);border-radius:14px;padding:13px 14px;color:var(--text);cursor:pointer}
.pantry-row:hover,.pantry-row.selected{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}
.pantry-product,.pantry-qty,.pantry-expiry,.pantry-value{display:flex;flex-direction:column;gap:3px;min-width:0}
.pantry-product strong,.pantry-qty b,.pantry-value b{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pantry-product span,.pantry-product small,.pantry-qty small,.pantry-expiry small,.pantry-value small{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pantry-qty,.pantry-value{text-align:right}.pantry-expiry{align-items:flex-end}
.pantry-status{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:999px;padding:4px 8px;font-size:10px;font-weight:800;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.pantry-status.warning{color:#a67f00;border-color:color-mix(in srgb,#d6a400 45%,var(--border));background:color-mix(in srgb,#d6a400 8%,var(--surface))}
.pantry-status.expired{color:#c14a45;border-color:color-mix(in srgb,#c14a45 45%,var(--border));background:color-mix(in srgb,#c14a45 8%,var(--surface))}
.pantry-status.low{color:#a15c00;border-color:color-mix(in srgb,#df8b22 45%,var(--border));background:color-mix(in srgb,#df8b22 8%,var(--surface))}
.pantry-location-list{display:grid;gap:7px;margin-top:10px}.pantry-location-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--border);padding:9px 0}.pantry-location-row:first-child{border-top:0}.pantry-location-row strong,.pantry-location-row small{display:block}.pantry-location-row small{font-size:10px;color:var(--muted);margin-top:2px}
.pantry-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.pantry-detail-grid>div{border:1px solid var(--border);border-radius:10px;padding:10px;background:var(--surface-2)}.pantry-detail-grid span,.pantry-detail-grid b{display:block}.pantry-detail-grid span{font-size:10px;color:var(--muted)}.pantry-detail-grid b{font-size:13px;margin-top:3px;color:var(--ink)}
#pantryLocationFilter,#pantryStatusFilter{min-width:150px}
@media(max-width:1100px){.pantry-layout{grid-template-columns:1fr}.pantry-side{position:static}.pantry-home-card .finance-home-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.pantry-row{grid-template-columns:1fr}.pantry-qty,.pantry-value{text-align:left}.pantry-expiry{align-items:flex-start}.pantry-detail-grid{grid-template-columns:1fr}.pantry-home-card .finance-home-metrics{grid-template-columns:1fr}#pantryLocationFilter,#pantryStatusFilter{min-width:0;width:100%}}

/* Recipe Engine */
.recipe-home-card .finance-home-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
.recipe-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(360px,.9fr);gap:16px;align-items:start}
.recipe-side{display:grid;gap:16px;position:sticky;top:16px}
.recipe-list{display:grid;gap:8px}
.recipe-row{width:100%;display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(120px,.55fr) minmax(150px,.7fr) minmax(130px,.6fr) 40px;gap:14px;align-items:center;text-align:left;border:1px solid var(--border);background:var(--surface-2);border-radius:14px;padding:13px 14px;color:var(--text);cursor:pointer}
.recipe-row:hover,.recipe-row.selected{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}
.recipe-row.inactive{opacity:.58}.recipe-main,.recipe-status-col,.recipe-cost-col,.recipe-time-col{display:flex;flex-direction:column;gap:3px;min-width:0}.recipe-cost-col,.recipe-time-col{text-align:right}.recipe-row-actions{display:flex;justify-content:flex-end;align-items:center}.recipe-row-open{width:34px;height:34px;font-size:17px;line-height:1;display:grid;place-items:center}.recipe-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.recipe-main strong,.recipe-cost-col b{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-main small,.recipe-status-col small,.recipe-cost-col small,.recipe-time-col small{font-size:11px;color:var(--muted)}
.recipe-badge{display:inline-flex;width:max-content;border:1px solid var(--border);border-radius:999px;padding:4px 8px;font-size:10px;font-weight:800}.recipe-badge.ready{color:#2d7a4a;background:color-mix(in srgb,#4aa36b 10%,var(--surface))}.recipe-badge.missing{color:#a15c00;background:color-mix(in srgb,#df8b22 9%,var(--surface))}.recipe-badge.empty{color:var(--muted)}
.recipe-detail-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.recipe-detail-head h3{margin:.1rem 0}.recipe-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0}.recipe-metrics>div{border:1px solid var(--border);border-radius:10px;padding:10px;background:var(--surface-2)}.recipe-metrics span,.recipe-metrics b{display:block}.recipe-metrics span{font-size:10px;color:var(--muted)}.recipe-metrics b{font-size:14px;margin-top:3px}
.ingredient-list{display:grid;gap:7px;margin-top:10px}.ingredient-row{display:grid;grid-template-columns:minmax(130px,1fr) auto auto auto;gap:10px;align-items:center;border-top:1px solid var(--border);padding:9px 0}.ingredient-row:first-child{border-top:0}.ingredient-row strong,.ingredient-row small{display:block}.ingredient-row small{font-size:10px;color:var(--muted)}.ingredient-missing{color:#a15c00}.ingredient-ok{color:#2d7a4a}.recipe-instructions{white-space:pre-wrap;padding:12px;border-radius:12px;background:var(--surface-2);line-height:1.5}.recipe-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px}.recipe-section-head h4{margin:0}
@media(max-width:1100px){.recipe-layout{grid-template-columns:1fr}.recipe-side{position:static}.recipe-home-card .finance-home-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.recipe-row{grid-template-columns:minmax(0,1fr) 40px}.recipe-main-wrap,.recipe-status-col,.recipe-cost-col,.recipe-time-col{grid-column:1}.recipe-row-actions{grid-column:2;grid-row:1/5;align-self:center}.recipe-cost-col,.recipe-time-col{text-align:left}.ingredient-row{grid-template-columns:1fr}.recipe-metrics{grid-template-columns:1fr}.recipe-home-card .finance-home-metrics{grid-template-columns:1fr}#recipeCategoryFilter,#recipeAvailabilityFilter{width:100%}}

/* Meal Planner */
.meal-home-card .finance-home-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
.meal-toolbar{align-items:center}.meal-toolbar input[type=date]{min-width:150px}
.meal-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(330px,.75fr);gap:16px;align-items:start}
.meal-side{display:grid;gap:16px;position:sticky;top:16px}
.meal-week-grid{display:grid;gap:8px;margin-top:8px}
.meal-day-row{display:grid;grid-template-columns:155px repeat(3,minmax(0,1fr));gap:8px;align-items:stretch}
.meal-day-label{display:flex;flex-direction:column;justify-content:center;padding:10px 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border)}
.meal-day-label strong,.meal-day-label small{display:block}.meal-day-label small{font-size:10px;color:var(--muted);margin-top:3px}
.meal-slot{min-height:80px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);color:var(--text);padding:10px 12px;text-align:left;cursor:pointer;display:flex;flex-direction:column;justify-content:center;gap:3px}
.meal-slot:hover{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent)}
.meal-slot>span{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:800}
.meal-slot strong{font-size:13px;color:var(--ink)}.meal-slot small{font-size:10px;color:var(--muted)}
.meal-slot.empty-slot{align-items:center;text-align:center;border-style:dashed}.meal-slot.empty-slot b{font-size:20px;color:var(--accent)}
.meal-missing-list,.meal-recipe-list{display:grid;gap:7px;margin-top:10px}
.meal-missing-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:9px 0;border-top:1px solid var(--border)}
.meal-missing-row:first-child{border-top:0}.meal-missing-row>div:last-child{text-align:right}.meal-missing-row strong,.meal-missing-row b,.meal-missing-row small{display:block}.meal-missing-row small{font-size:10px;color:var(--muted)}
.meal-recipe-ref{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;width:100%;text-align:left;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--text);padding:10px;cursor:pointer}
.meal-recipe-ref:hover{border-color:var(--accent)}.meal-recipe-ref strong,.meal-recipe-ref small{display:block}.meal-recipe-ref small{font-size:10px;color:var(--muted)}.meal-recipe-ref b{font-size:12px}
.meal-dialog-actions{display:flex;align-items:center}.action-spacer{flex:1}
@media(max-width:1100px){.meal-layout{grid-template-columns:1fr}.meal-side{position:static}.meal-day-row{grid-template-columns:130px repeat(3,minmax(0,1fr))}.meal-home-card .finance-home-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.meal-day-row{grid-template-columns:1fr}.meal-toolbar{flex-wrap:wrap}.meal-toolbar input[type=date]{min-width:0}.meal-home-card .finance-home-metrics{grid-template-columns:1fr}}

/* Shopping Engine */
.shopping-home-card{border-top:3px solid color-mix(in srgb,var(--accent) 70%,transparent)}
.shopping-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:16px}
.shopping-select-wrap{display:grid;gap:6px;min-width:min(440px,100%)}
.shopping-head-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.shopping-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.7fr);gap:16px;align-items:start}
.shopping-side{display:grid;gap:16px}
.shopping-item-list{display:grid;gap:8px;margin-top:12px}
.shopping-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.shopping-item.checked{opacity:.62}
.shopping-item.checked .shopping-item-main strong{text-decoration:line-through}
.shopping-check input{width:20px;height:20px;accent-color:var(--accent)}
.shopping-item-main{display:grid;gap:3px;min-width:0}.shopping-item-main small,.shopping-item-cost small{color:var(--muted)}
.shopping-item-cost{display:grid;text-align:right;gap:3px;white-space:nowrap}.shopping-item-actions{display:flex;gap:4px}
.shopping-source-legend{display:grid;gap:10px;margin-top:12px}.shopping-source-legend span{display:flex;align-items:center;gap:8px}.source-dot{width:10px;height:10px;border-radius:50%;background:var(--muted)}.source-dot.meal_plan{background:var(--accent)}.source-dot.low_stock{background:#d59a35}.source-dot.combined{background:#936ac7}.source-dot.manual{background:#7d8a92}
@media(max-width:900px){.shopping-layout{grid-template-columns:1fr}.shopping-head{align-items:stretch;flex-direction:column}.shopping-head-actions{justify-content:flex-start}.shopping-item{grid-template-columns:auto minmax(0,1fr) auto}.shopping-item-cost{grid-column:2}.shopping-item-actions{grid-column:3;grid-row:1/3}}

/* Purchase Settlement */
.purchase-home-card{border-top:3px solid color-mix(in srgb,var(--accent) 82%,#ffffff 18%)}
.purchase-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);gap:16px;align-items:start}
.purchase-history{display:grid;gap:8px;margin-top:12px}.purchase-history-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;text-align:left;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:12px;padding:12px;cursor:pointer}.purchase-history-row:hover,.purchase-history-row.selected{border-color:var(--accent)}.purchase-history-row strong,.purchase-history-row small,.purchase-history-row b{display:block}.purchase-history-row small{color:var(--muted);margin-top:3px}.purchase-history-row>div:last-child{text-align:right}.purchase-detail-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.purchase-detail-meta>div{padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.purchase-detail-meta span,.purchase-detail-meta b{display:block}.purchase-detail-meta span{font-size:10px;color:var(--muted);text-transform:uppercase}.purchase-detail-lines{display:grid;gap:8px;margin-top:12px}.purchase-detail-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:10px 0;border-top:1px solid var(--border)}.purchase-detail-line strong,.purchase-detail-line small{display:block}.purchase-detail-line small{color:var(--muted);font-size:10px}.wide-dialog{width:min(1050px,calc(100vw - 32px))}.purchase-settle-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:14px 0 8px}.purchase-settle-head span{font-weight:800;color:var(--accent)}.purchase-settle-lines{display:grid;gap:10px;max-height:48vh;overflow:auto;padding-right:4px}.purchase-settle-line{display:grid;grid-template-columns:minmax(150px,1.25fr) minmax(170px,.9fr) minmax(150px,.75fr) minmax(160px,.8fr) minmax(150px,.8fr);gap:10px;align-items:end;border:1px solid var(--border);border-radius:12px;padding:10px;background:var(--surface-2)}.purchase-line-name{align-self:center}.purchase-line-name strong,.purchase-line-name small{display:block}.purchase-line-name small{color:var(--muted);margin-top:3px}.inline-quantity{display:grid;grid-template-columns:1fr 86px;gap:6px}.purchase-custom-note{grid-column:4/6;align-self:center;color:var(--muted);font-size:11px;padding:10px}
@media(max-width:1000px){.purchase-layout{grid-template-columns:1fr}.purchase-settle-line{grid-template-columns:1fr 1fr}.purchase-line-name{grid-column:1/3}.purchase-custom-note{grid-column:1/3}}
@media(max-width:650px){.purchase-settle-line,.purchase-detail-meta{grid-template-columns:1fr}.purchase-line-name,.purchase-custom-note{grid-column:1}.purchase-history-row{grid-template-columns:1fr}.purchase-history-row>div:last-child{text-align:left}}

/* Unified Family Dashboard */
.dashboard-overview-card,.dashboard-attention-card{position:relative}.dashboard-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:18px}.dashboard-kpis>div{background:color-mix(in srgb,var(--bg) 70%,var(--card));border:1px solid var(--line);border-radius:12px;padding:14px}.dashboard-kpis span{display:block;color:var(--muted);font-size:11px}.dashboard-kpis b{display:block;margin-top:5px;color:var(--ink);font-size:19px}.dashboard-attention-badge{min-width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 13%,var(--card));color:var(--accent);font-weight:900;font-size:18px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line))}.dashboard-attention-badge.warning{color:#a56a00;background:color-mix(in srgb,#e9a21a 14%,var(--card));border-color:color-mix(in srgb,#e9a21a 38%,var(--line))}.dashboard-attention-badge.danger{color:#b53d38;background:color-mix(in srgb,#d64d46 12%,var(--card));border-color:color-mix(in srgb,#d64d46 38%,var(--line))}.dashboard-today{display:grid;grid-template-columns:auto repeat(3,minmax(0,1fr));gap:10px;align-items:stretch;margin-top:12px}.dashboard-today>strong{display:flex;align-items:center;padding:0 10px;color:var(--ink)}.dashboard-today>span{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:color-mix(in srgb,var(--bg) 58%,var(--card))}.dashboard-today small,.dashboard-today b{display:block}.dashboard-today small{color:var(--muted);font-size:10px}.dashboard-today b{margin-top:4px;color:var(--ink);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-quick-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.dashboard-quick-actions>span{font-size:11px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-right:4px}.dashboard-attention-list{display:grid;gap:8px;margin-top:14px}.dashboard-alert{width:100%;display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:12px;align-items:center;text-align:left;border:1px solid var(--line);background:color-mix(in srgb,var(--bg) 55%,var(--card));color:var(--text);border-radius:12px;padding:12px 14px;cursor:pointer}.dashboard-alert:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.dashboard-alert span:nth-child(2) strong,.dashboard-alert span:nth-child(2) small{display:block}.dashboard-alert span:nth-child(2) small{color:var(--muted);font-size:11px;margin-top:2px}.dashboard-alert-dot{width:9px;height:9px;border-radius:50%;background:var(--accent)}.dashboard-alert.warning .dashboard-alert-dot{background:#e9a21a}.dashboard-alert.danger .dashboard-alert-dot{background:#d64d46}.dashboard-alert>b{font-size:22px;color:var(--muted)}.dashboard-all-good{display:flex;align-items:center;gap:12px;border:1px solid color-mix(in srgb,#15965d 28%,var(--line));background:color-mix(in srgb,#15965d 8%,var(--card));border-radius:12px;padding:14px}.dashboard-all-good>b{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,#15965d 14%,var(--card));color:#15965d}.dashboard-all-good span strong,.dashboard-all-good span small{display:block}.dashboard-all-good span small{color:var(--muted);font-size:11px;margin-top:2px}.home-layout [data-card-id]:not([data-card-id="hero"]){cursor:grab}.home-layout [data-card-id]:not([data-card-id="hero"]):active{cursor:grabbing}.dashboard-dragging{opacity:.45;outline:2px dashed var(--accent);outline-offset:2px}.appearance-drag-note{color:var(--muted);font-size:11px}
@media(max-width:1150px){.dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-today{grid-template-columns:1fr 1fr}.dashboard-today>strong{grid-column:1/-1}}
@media(max-width:720px){.dashboard-kpis{grid-template-columns:1fr}.dashboard-today{grid-template-columns:1fr}.dashboard-today>strong{grid-column:auto}.dashboard-quick-actions .ghost{flex:1 1 45%}}

/* Category-aware quick shopping basket */
.shopping-basket-builder{margin:0 0 18px;padding:14px;border:1px dashed var(--line);border-radius:14px;background:color-mix(in srgb,var(--card) 92%,var(--accent) 8%)}
.shopping-product-shelf-head{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:6px}.shopping-quick-help{margin-bottom:10px}
.shopping-product-shelf{display:flex;gap:8px;overflow-x:auto;padding:8px 2px 10px;min-height:58px}.shopping-product-chip{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:150px;padding:9px 11px;border:1px solid var(--line);border-radius:12px;background:var(--card);cursor:grab;text-align:left}.shopping-product-chip:active{cursor:grabbing}.shopping-product-chip small{opacity:.72;font-size:.78rem}
.shopping-basket-drop{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:12px 14px;border:2px dashed var(--accent);border-radius:12px;transition:.15s ease;background:color-mix(in srgb,var(--card) 94%,var(--accent) 6%)}.shopping-basket-drop.dragover{transform:scale(1.01);background:color-mix(in srgb,var(--card) 80%,var(--accent) 20%)}.shopping-basket-drop small{opacity:.7}.settled-lock{opacity:.6;font-size:.9rem}
@media(max-width:760px){.shopping-product-shelf-head{align-items:stretch;flex-direction:column}.shopping-basket-drop{align-items:flex-start;flex-direction:column}.shopping-shelf-filters{align-items:stretch;flex-direction:column}.shopping-shelf-filters select,.shopping-shelf-filters input{max-width:none;width:100%}}

/* Product categories and starter catalog */
.product-category-badge{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:3px 7px;border-radius:999px;background:color-mix(in srgb,var(--accent) 10%,var(--card));border:1px solid color-mix(in srgb,var(--accent) 26%,var(--line));color:var(--accent);font-size:10px;font-weight:700;margin-top:5px}
.product-detail-category{display:inline-flex;margin-top:7px;padding:4px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 10%,var(--card));color:var(--accent);font-size:11px;font-weight:700}
.starter-catalog-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0}.starter-catalog-toolbar .meta{margin-left:auto}.starter-category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;max-height:430px;overflow:auto;padding:3px;margin-bottom:14px}.starter-category-option{display:flex;gap:9px;align-items:flex-start;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--card)}.starter-category-option input{margin-top:3px}.starter-category-option strong,.starter-category-option small{display:block}.starter-category-option small{color:var(--muted);margin-top:2px}.shopping-shelf-filters{display:flex;gap:8px;align-items:center;margin:0 0 6px}.shopping-shelf-filters select{max-width:220px}.shopping-shelf-filters input{max-width:320px;flex:1}.shopping-category-chip{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;background:color-mix(in srgb,var(--accent) 10%,var(--card));color:var(--accent);font-size:10px;font-weight:700;margin-right:5px}.shopping-product-chip .shopping-category-chip{margin:1px 0 0}.shopping-category-heading{flex:0 0 100%;font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:5px 0 0}.finance-summary-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
@media(max-width:900px){.starter-category-grid{grid-template-columns:1fr 1fr}.shopping-shelf-filters{width:100%}.shopping-shelf-filters select,.shopping-shelf-filters input{flex:1;max-width:none}}
@media(max-width:620px){.starter-category-grid{grid-template-columns:1fr}.shopping-shelf-filters{flex-direction:column;align-items:stretch}}
.shopping-product-shelf{flex-wrap:wrap;overflow:auto;max-height:360px;align-content:flex-start}.shopping-product-chip{min-width:160px;max-width:220px}.shopping-category-heading{min-width:100%}
.shopping-item-group{border-top:1px solid var(--line);padding-top:8px;margin-top:8px}.shopping-item-group:first-child{border-top:0;margin-top:0;padding-top:0}.shopping-item-group-title{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:7px 4px;color:var(--muted)}.shopping-item-group-title strong{color:var(--ink);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.shopping-item-group-title small{font-size:11px}

/* Single-title application shell */
#pageEyebrow[hidden],#homeHeaderTools[hidden]{display:none!important}
body:not([data-view="home"]) #pageHeader{margin-bottom:10px}
body:not([data-view="home"]) #pageHeader h1{font-size:30px}
body:not([data-view="home"]) .toolbar{margin-top:0}
.toolbar-copy{min-width:0}
.toolbar-copy p{max-width:760px}

/* Shared page header is authoritative; never show a duplicate toolbar page title. */
.view:not(#home) > .toolbar h2{display:none!important}

/* Local Product Database Builder */
.productdb-card{margin:0 0 16px}.productdb-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}.productdb-status-grid>div{padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--bg) 55%,var(--card))}.productdb-status-grid span,.productdb-status-grid b{display:block}.productdb-status-grid span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.productdb-status-grid b{margin-top:4px;color:var(--ink);font-size:16px}.productdb-builder{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:end}.productdb-builder label>span{display:block;font-size:10px;color:var(--muted);margin-bottom:4px}.productdb-builder .compact-check{align-self:center;margin-top:17px}.productdb-search{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.productdb-search summary{cursor:pointer;font-weight:800}.productdb-search-row{display:flex;gap:8px;margin:10px 0}.productdb-search-row input{flex:1}.catalog-search-results{display:grid;gap:7px;max-height:280px;overflow:auto}.catalog-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.catalog-search-row strong,.catalog-search-row small,.catalog-search-row code{display:block}.catalog-search-row small{color:var(--muted);margin-top:2px;font-size:10px}.catalog-search-row>div:last-child{text-align:right}
@media(max-width:1050px){.productdb-builder{grid-template-columns:1fr 1fr}.productdb-status-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.productdb-builder,.productdb-status-grid{grid-template-columns:1fr}.productdb-search-row{flex-direction:column}.catalog-search-row{grid-template-columns:1fr}.catalog-search-row>div:last-child{text-align:left}}

/* FN12 Finance quick-entry receiver */
.finance-quick-entry-drop{margin:0 0 16px;min-height:108px;border:2px dashed color-mix(in srgb,var(--accent) 55%,var(--line));border-radius:16px;background:color-mix(in srgb,var(--accent) 4%,var(--card));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;text-align:center;padding:18px;transition:transform .15s ease,border-color .15s ease,background .15s ease}.finance-quick-entry-drop .finance-quick-entry-kicker{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.finance-quick-entry-drop strong{font-size:16px;color:var(--ink)}.finance-quick-entry-drop small{max-width:620px;color:var(--muted);line-height:1.45}.finance-quick-entry-drop.drag-over{border-style:solid;border-color:var(--accent);background:color-mix(in srgb,var(--accent) 13%,var(--card));transform:translateY(-2px);box-shadow:0 10px 28px color-mix(in srgb,var(--accent) 14%,transparent)}.category-row[draggable="true"]{cursor:grab}.category-row[draggable="true"]:active{cursor:grabbing}

/* ==========================================================
   FN12 FamilyNexa Visual Foundation
   ========================================================== */
:root{
  --fn-sage:#edf3df;
  --fn-sage-strong:#dfe9cd;
  --fn-green:#3f6a35;
  --fn-green-deep:#203825;
  --fn-warm:#f7f6f0;
  --fn-cream:#fbfaf6;
  --fn-gold:#d9bd78;
  --fn-lilac:#d6c8de;
  --fn-blue:#cbd8e6;
  --bg:#f6f6f0;
  --ink:#263029;
  --text:#313b34;
  --muted:#7c847c;
  --line:#e5e7de;
  --card:#fffefb;
  --side:#fbfbf7;
  --sideText:#687168;
  --sideActive:#eaf0dc;
  --accent:#527449;
  --shadow:0 8px 28px rgba(62,76,57,.045);
}
body{background:var(--bg);color:var(--text)}
.fn-sidebar{width:244px;background:var(--side);color:var(--text);border-right:1px solid var(--line);padding:28px 16px 18px;box-shadow:none;overflow-y:auto}
.fn-brand{padding:0 8px 22px;color:var(--ink)}
.fn-brand .logo{width:36px;height:36px;background:var(--fn-green);color:white;border-radius:10px;font-size:17px}
.fn-brand strong{font-size:19px;letter-spacing:-.02em}.fn-brand small{color:var(--muted);font-size:10px;margin-top:2px}
.family-home-card{width:100%;display:grid;grid-template-columns:38px 1fr 18px;gap:10px;align-items:center;border:1px solid var(--line);background:var(--card);border-radius:13px;padding:11px;text-align:left;color:var(--text);cursor:pointer;box-shadow:none}
.family-home-card:hover{border-color:#cad2c4;background:#fffffc}.family-home-avatar{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#f2eedf;color:#8c805d;font-weight:750;font-size:12px}.family-home-copy{min-width:0}.family-home-copy strong,.family-home-copy small{display:block}.family-home-copy strong{font-size:12px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.family-home-copy small{font-size:10px;color:var(--muted);margin-top:3px}.family-home-chevron{color:#9aa197;text-align:right}
.sidebar-section-label{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:#a0a69d;font-weight:800;margin:28px 8px 8px}.daily-nav{display:grid;gap:2px}.nav{color:var(--sideText);padding:10px 11px;margin:0;border-radius:9px;font-size:12px;font-weight:600}.nav-icon{width:18px;text-align:center;color:#899286;font-size:15px}.nav:hover,.nav.active{background:var(--sideActive);color:var(--fn-green-deep)}.nav.active .nav-icon{color:var(--fn-green)}
.privacy-card{margin-top:20px;width:100%;display:grid;grid-template-columns:28px 1fr;gap:10px;text-align:left;border:0;border-radius:13px;background:#eef2e4;padding:14px 12px;color:var(--text);cursor:pointer}.privacy-card .privacy-icon{font-size:19px;color:var(--fn-green)}.privacy-card strong,.privacy-card small,.privacy-card b{display:block}.privacy-card strong{font-size:11px;color:var(--ink)}.privacy-card small{font-size:10px;color:var(--muted);line-height:1.45;margin:5px 0 10px}.privacy-card b{font-size:9px;color:var(--fn-green)}
.sidebar-bottom{margin-top:auto;padding-top:16px;border-top:1px solid var(--line)}
body > main{margin-left:244px;width:calc(100% - 244px);padding:0 0 56px;background:var(--bg)}
.fn-topbar{height:66px;margin:0;padding:0 34px;border-bottom:1px solid var(--line);background:#fbfbf8;display:flex;align-items:center;justify-content:space-between}.fn-breadcrumb{display:flex;align-items:center;gap:10px;font-size:10px;color:#92998f}.fn-breadcrumb b{font-size:12px;color:#c1c6be}.fn-breadcrumb #pageTitle{font-weight:600;color:#6b746b}.fn-topbar-meta{display:flex;align-items:center;gap:14px;color:#92998f;font-size:10px}.local-status{border:1px solid #e3e6d9;background:#f4f7eb;color:#708165;border-radius:999px;padding:7px 12px;font-size:10px;display:flex;align-items:center;gap:7px;cursor:pointer}.local-status i{width:6px;height:6px;background:#7b9a66;border-radius:50%}.profile-dot{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:#eef0e5;color:#7d876f;font-size:10px;font-weight:700}
.view{padding:30px 34px 0}.view#home{padding-top:28px}.overview-layout{display:block;max-width:1230px;margin:0 auto}.overview-intro{display:flex;justify-content:space-between;align-items:end;gap:24px;margin:0 0 22px}.overview-intro h2{font-size:31px;line-height:1.05;letter-spacing:-.035em;color:var(--fn-green-deep);margin:6px 0 8px}.overview-intro>div>p:last-child{font-size:12px;color:var(--muted);margin:0}.overview-kicker{text-transform:uppercase;letter-spacing:.17em;font-size:9px!important;font-weight:800;color:#8d9a83;margin-bottom:10px!important}.overview-primary-action{background:var(--fn-green);border-radius:8px;padding:10px 15px;font-size:11px}
.overview-hero{min-height:210px;border:1px solid #dfe6d5;border-radius:15px;background:linear-gradient(115deg,#edf3df 0%,#edf3df 56%,#e6efda 56%,#e6efda 100%);display:grid;grid-template-columns:1.1fr .9fr;overflow:hidden;margin-bottom:18px}.overview-hero-copy{padding:30px 28px;position:relative;z-index:2}.overview-hero-copy h3{font-size:24px;line-height:1.06;color:#2d4931;letter-spacing:-.035em;margin:8px 0 13px}.overview-hero-copy p{font-size:11px;line-height:1.6;color:#7a8673;max-width:400px}.text-link{border:0;background:transparent;padding:0;color:#55734a;font-weight:700;font-size:10px;cursor:pointer}.overview-hero-art{position:relative;overflow:hidden;background:radial-gradient(circle at 75% 48%,#f0c76e 0 11%,transparent 12%),radial-gradient(circle at 55% 42%,#83a365 0 14%,transparent 15%),radial-gradient(circle at 78% 72%,#b15c6c 0 10%,transparent 11%),radial-gradient(circle at 40% 70%,#d98759 0 13%,transparent 14%),linear-gradient(135deg,#dce8ce,#f2e6bc)}.food-shape{position:absolute;border-radius:55% 45% 60% 40%;filter:saturate(.9)}.food-a{width:120px;height:120px;background:#79a86c;right:95px;top:25px;transform:rotate(24deg)}.food-b{width:90px;height:90px;background:#f1c260;right:25px;top:70px}.food-c{width:75px;height:110px;background:#a84f62;right:155px;bottom:-20px;transform:rotate(-20deg)}.leaf-mark{position:absolute;right:20px;bottom:3px;font-size:95px;opacity:.12;color:white}
.overview-priority-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.overview-stat{min-height:145px;border:1px solid var(--line);border-radius:14px;background:var(--card);padding:17px;text-align:left;color:var(--text);cursor:pointer;box-shadow:var(--shadow);display:flex;flex-direction:column}.overview-stat span{font-size:10px;color:#858d83}.overview-stat b{font-size:23px;color:#2b362e;margin:16px 0 5px;letter-spacing:-.02em}.overview-stat small{font-size:9px;color:#a0a69e}.overview-stat em{margin-top:auto;border-top:1px solid #eef0e9;padding-top:10px;font-style:normal;font-size:9px;color:#7a8774}.overview-stat:hover{transform:translateY(-1px);border-color:#d2dbc9}
.overview-detail-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:16px}.overview-panel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow);min-width:0}.overview-panel-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:16px}.overview-panel-head h3{font-size:15px;color:#2f3932;margin-bottom:4px}.overview-panel-head p{font-size:9px;color:#a0a69e;margin:0}.finance-overview-panel{min-height:350px}.finance-visual{display:grid;grid-template-columns:170px 1fr;gap:22px;align-items:center;padding:10px 0 18px}.finance-donut{width:150px;height:150px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#7c9b5e 0 50%,#b7cf96 50% 75%,#e3c57f 75% 90%,#b8c4d2 90%);position:relative}.finance-donut:after{content:"";position:absolute;width:104px;height:104px;border-radius:50%;background:var(--card)}.finance-donut>div{position:relative;z-index:2;text-align:center}.finance-donut small,.finance-donut b,.finance-donut span{display:block}.finance-donut small,.finance-donut span{font-size:8px;color:#a0a69e}.finance-donut b{font-size:18px;margin:5px 0;color:#29352d}.finance-breakdown{display:grid;gap:12px}.finance-breakdown>div{display:flex;justify-content:space-between;gap:12px;font-size:10px}.finance-breakdown span{display:flex;align-items:center;gap:7px;color:#848b82}.finance-breakdown i{width:7px;height:7px;border-radius:50%}.finance-breakdown b{font-size:10px;color:#4d584f}.overview-note{background:#f5f6ef;border-radius:8px;padding:10px;font-size:9px;color:#899184}
.overview-shopping-items{display:grid}.overview-shopping-row{display:grid;grid-template-columns:24px 1fr auto;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid #eff0eb}.fake-check{width:20px;height:20px;border:1px solid #dfe2d9;border-radius:7px;display:grid;place-items:center;color:#6e8c5d;font-size:10px}.fake-check.checked{background:#edf3e4}.overview-shopping-row strong,.overview-shopping-row small{display:block}.overview-shopping-row strong{font-size:11px}.overview-shopping-row small{font-size:9px;color:#9ba198;margin-top:3px}.overview-shopping-row>b{font-size:10px}.overview-list-footer{width:100%;display:flex;justify-content:space-between;border:0;background:#f5f6ef;border-radius:8px;padding:10px 11px;margin-top:12px;color:#8b9487;font-size:9px;cursor:pointer}
.use-soon-panel{min-height:150px}.use-soon-items{display:grid;grid-template-columns:1fr 1fr;gap:10px}.use-soon-items button{border:1px solid #efe8d8;background:#fdfbf6;border-radius:10px;padding:10px;display:grid;grid-template-columns:28px 1fr;gap:9px;text-align:left;color:var(--text);cursor:pointer}.use-soon-items>button>span:first-child{width:27px;height:27px;border-radius:8px;background:#f4ecd6;display:grid;place-items:center;color:#aa925c}.use-soon-items strong,.use-soon-items small{display:block}.use-soon-items strong{font-size:10px}.use-soon-items small{font-size:8px;color:#b1a27e;margin-top:3px}.guidance-panel{position:relative;background:#edf3df;border-color:#dde7cf;overflow:hidden;min-height:150px}.guidance-panel h3{font-size:17px;color:#344a35;margin:7px 0}.guidance-panel>p:not(.overview-kicker){font-size:10px;color:#84907c;line-height:1.5;max-width:350px}.guidance-leaf{position:absolute;right:-8px;bottom:-36px;font-size:110px;color:#d8e4c8;transform:rotate(-15deg)}.overview-attention-strip{grid-column:1/-1;margin-top:16px}.overview-attention-strip:empty{display:none}
.prepared-module{max-width:760px}.prepared-module h3{font-size:28px;margin:18px 0 8px}.prepared-module p{color:var(--muted);line-height:1.65}.admin-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.admin-module-card{border:1px solid var(--line);background:var(--card);border-radius:14px;padding:18px;text-align:left;color:var(--text);cursor:pointer;min-height:110px}.admin-module-card:hover{border-color:#cad5c5;background:#fffffc}.admin-module-card b,.admin-module-card small{display:block}.admin-module-card b{font-size:14px;color:var(--ink)}.admin-module-card small{font-size:10px;color:var(--muted);line-height:1.5;margin-top:7px}
.family-home-dialog{width:min(500px,94vw)}.family-home-modal-body{padding:22px}.family-home-dialog .dialog-head{align-items:flex-start}.family-home-dialog .dialog-head h3{font-size:19px;margin-bottom:5px}.family-home-local-box{display:grid;grid-template-columns:34px 1fr;gap:12px;background:#eef4e5;border-radius:12px;padding:16px;margin:16px 0}.family-home-shield{font-size:24px;color:#668657}.family-home-local-box strong{font-size:12px;color:#314033}.family-home-local-box p{font-size:10px;line-height:1.6;color:#7f8b78;margin:7px 0 0}.family-home-explainer{font-size:10px;line-height:1.6;color:#777f77}.family-home-wide{width:100%;margin:6px 0;padding:11px}.family-home-links{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
body[data-view="home"] #pageHeader #pageTitle{color:#7b837a}body[data-view="home"] #pageEyebrow{display:none!important}.hidden{display:none!important}
/* Keep detailed/legacy modules visually untouched but align their page shell with FN12. */
body:not([data-view="home"]) .view.active{max-width:1230px;margin:0 auto}body:not([data-view="home"]) #pageHeader{margin-bottom:0}
@media(max-width:1100px){.overview-priority-grid{grid-template-columns:1fr 1fr}.overview-detail-grid{grid-template-columns:1fr}.admin-module-grid{grid-template-columns:1fr 1fr}}
@media(max-width:820px){.fn-sidebar{width:76px;padding:18px 10px}.fn-brand div,.family-home-copy,.family-home-chevron,.sidebar-section-label,.privacy-card span:last-child,.nav span:last-child{display:none}.family-home-card{display:grid;grid-template-columns:1fr;padding:8px}.family-home-avatar{margin:auto}.privacy-card{grid-template-columns:1fr}.privacy-icon{text-align:center}body > main{margin-left:76px;width:calc(100% - 76px)}.fn-topbar{padding:0 18px}.view{padding:22px 18px 0}.overview-intro{align-items:flex-start;flex-direction:column}.overview-hero{grid-template-columns:1fr}.overview-hero-art{min-height:120px}.finance-visual{grid-template-columns:1fr}.finance-donut{margin:auto}.admin-module-grid{grid-template-columns:1fr}}
@media(max-width:620px){body{display:block}.fn-sidebar{position:sticky;top:0;width:100%;height:auto;z-index:30;display:flex;flex-direction:row;align-items:center;gap:8px;padding:8px 10px;border-right:0;border-bottom:1px solid var(--line);overflow-x:auto}.fn-brand{padding:0}.fn-brand .logo{width:34px;height:34px}.family-home-card{width:42px;flex:0 0 42px}.daily-nav{display:flex;flex-direction:row;gap:4px}.daily-nav .nav{width:42px;height:42px;justify-content:center;padding:0}.daily-nav .nav span:last-child{display:none}.privacy-card,.sidebar-bottom{display:none}body > main{margin:0;width:100%}.fn-topbar{height:50px;padding:0 12px}.fn-topbar-meta #currentDateLabel{display:none}.view{padding:16px 12px 30px}.overview-intro h2{font-size:27px}.overview-priority-grid{grid-template-columns:1fr 1fr;gap:9px}.overview-stat{min-height:125px;padding:13px}.overview-stat b{font-size:19px}.overview-hero-copy{padding:22px 18px}.overview-hero-copy h3{font-size:21px}.overview-detail-grid{gap:10px}.use-soon-items{grid-template-columns:1fr}.family-home-links{grid-template-columns:1fr}.row{grid-template-columns:1fr}}
.overview-detail-grid [data-card-id]{cursor:grab}.overview-detail-grid [data-card-id]:active{cursor:grabbing}

.account-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;max-width:760px}.account-card h3{font-size:18px;color:var(--ink);margin-bottom:6px}.account-form{margin-top:6px}.account-form .field{margin:14px 0}.account-inline-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.account-action-row{margin-top:14px}.account-card .danger-button{min-width:220px}@media(max-width:700px){.account-inline-actions{flex-direction:column;align-items:flex-start}.account-card .danger-button,.account-card .ghost,.account-card .primary{width:100%}}

.overview-hero-art.has-cover{background-size:cover;background-position:center;background-repeat:no-repeat}.overview-hero-art.has-cover .food-shape,.overview-hero-art.has-cover .leaf-mark{display:none}.cover-manager-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 10px}.cover-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin-top:12px}.cover-thumb{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:color-mix(in srgb,var(--bg) 58%,var(--card))}.cover-thumb img{display:block;width:100%;height:84px;object-fit:cover}.cover-thumb footer{display:flex;justify-content:space-between;align-items:center;padding:8px}.cover-thumb small{color:var(--muted)}.cover-thumb.current{outline:2px solid var(--accent);outline-offset:1px}.cover-thumb .iconbtn{width:28px;height:28px}.cover-empty{padding:14px;border:1px dashed var(--line);border-radius:12px;color:var(--muted)}

.finance-category-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:14px 0 10px;padding:4px;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--bg) 68%,var(--card))}.finance-category-tab{border:0;background:transparent;color:var(--muted);border-radius:8px;padding:9px 10px;font-weight:750;cursor:pointer}.finance-category-tab.active{background:var(--card);color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.05)}.finance-category-drop{position:sticky;top:0;z-index:4;min-height:72px;margin:0 0 10px;padding:10px 12px;border-radius:11px;background:color-mix(in srgb,var(--accent) 7%,var(--card));box-shadow:0 4px 14px color-mix(in srgb,var(--bg) 70%,transparent)}.finance-category-drop strong{font-size:13px}.finance-category-drop small{font-size:10px}.finance-category-scroll{max-height:365px;overflow-y:auto;overscroll-behavior:contain;padding-right:4px;scrollbar-gutter:stable}.finance-category-scroll .category-group{border-top:0;padding-top:0}.category-row{grid-template-columns:22px 32px minmax(0,1fr) auto}.category-row-actions{display:flex;gap:5px;align-items:center}.category-quick-add{font-size:17px;font-weight:800;color:var(--accent)}@media(max-width:720px){.finance-category-scroll{max-height:330px}.finance-category-drop{position:sticky;top:0}.category-row{grid-template-columns:18px 30px minmax(0,1fr) auto}.category-row-actions{gap:3px}}

.recipe-thumb{width:64px;height:64px;border-radius:12px;border:1px solid var(--border);background:var(--surface);overflow:hidden;display:flex;align-items:center;justify-content:center;flex:0 0 64px}
.recipe-thumb img,.recipe-hero-image img,.recipe-image-preview img,.modal-large-image{width:100%;height:100%;object-fit:contain;background:color-mix(in srgb,var(--surface-2) 65%,white)}
.recipe-main-wrap{display:flex;align-items:center;gap:12px;min-width:0}.recipe-main-wrap .recipe-main{flex:1 1 auto}
.recipe-hero-image{margin:12px 0 2px;border:1px solid var(--border);border-radius:16px;background:var(--surface-2);padding:10px;display:flex;justify-content:center;align-items:center;min-height:220px;max-height:340px;overflow:hidden;cursor:zoom-in}
.recipe-hero-image img{max-width:100%;max-height:320px}
.recipe-image-form{display:grid;grid-template-columns:minmax(0,1fr) 160px;gap:14px;align-items:start;margin:6px 0 10px}.recipe-image-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.recipe-image-preview{width:160px;height:160px;border:1px dashed var(--border);border-radius:14px;background:var(--surface-2);padding:8px;display:flex;align-items:center;justify-content:center;cursor:pointer}.recipe-image-preview img{max-width:100%;max-height:100%}
.modal-image-shell{min-width:min(92vw,780px)}.modal-large-image{max-width:min(88vw,720px);max-height:70vh;display:block;margin:0 auto;border-radius:12px;border:1px solid var(--border);padding:8px;background:var(--surface-2)}
#recipeImageModal::backdrop,#familyRoleDialog::backdrop{background:rgba(0,0,0,.45)}
.role-tools{display:flex;flex-direction:column;gap:8px;justify-content:flex-end}.role-tool-actions{display:flex;gap:8px;flex-wrap:wrap}.role-list{display:grid;gap:8px;margin-top:14px}.role-list-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:var(--surface-2)}.role-list-row small{color:var(--muted)}
@media(max-width:760px){.recipe-image-form{grid-template-columns:1fr}.recipe-image-preview{width:100%;height:180px}.recipe-main-wrap{align-items:flex-start}.recipe-thumb{width:52px;height:52px;flex-basis:52px}}

/* ==========================================================
   FN13 Recipe Knowledge & Gallery
   ========================================================== */
.recipe-card-dialog{width:min(1180px,96vw);max-width:1180px;max-height:94vh;padding:0;border:0;border-radius:18px;overflow:auto;background:var(--card)}
.recipe-card-dialog::backdrop,.recipe-gallery-lightbox::backdrop,.technique-info-shell::backdrop{background:rgba(24,31,26,.62)}
.recipe-card-content{padding:24px;display:grid;gap:20px}.recipe-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.recipe-card-head h2{font-size:30px;line-height:1.05;color:var(--fn-green-deep);margin:5px 0}.recipe-card-gallery{display:grid;gap:10px}.recipe-card-main-image{width:100%;height:min(52vh,520px);border:1px solid var(--line);border-radius:16px;background:#f7f7f1;padding:10px;display:flex;align-items:center;justify-content:center;cursor:zoom-in}.recipe-card-main-image img{width:100%;height:100%;object-fit:contain}.recipe-card-thumbs{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.recipe-card-thumbs button{width:78px;height:78px;flex:0 0 78px;border:1px solid var(--line);border-radius:10px;background:#fafaf5;padding:5px;cursor:zoom-in}.recipe-card-thumbs img{width:100%;height:100%;object-fit:contain}.recipe-card-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.recipe-card-metrics>div{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fbfbf7}.recipe-card-metrics span,.recipe-card-metrics b{display:block}.recipe-card-metrics span{font-size:9px;color:var(--muted)}.recipe-card-metrics b{font-size:17px;margin-top:5px}.recipe-card-content section{border-top:1px solid var(--line);padding-top:16px}.recipe-card-content section h3{font-size:15px;margin-bottom:10px}.recipe-card-ingredients{display:grid;gap:8px}.recipe-card-ingredient{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid #eff0eb}.recipe-card-ingredient strong,.recipe-card-ingredient small{display:block}.recipe-card-ingredient small{font-size:9px;color:var(--muted)}.recipe-card-instructions{line-height:1.75;white-space:normal}.recipe-card-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.recipe-gallery-lightbox{width:calc(100vw - 20px);max-width:none;height:calc(100vh - 20px);max-height:none;padding:0;border:0;border-radius:18px;background:#111;color:#fff;overflow:hidden}.gallery-lightbox-shell{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;padding:12px}.gallery-lightbox-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:3px 4px 10px}.gallery-lightbox-head .dialog-x{color:#fff}.gallery-lightbox-stage{min-height:0;display:grid;grid-template-columns:54px minmax(0,1fr) 54px;align-items:center;justify-items:center;gap:8px}.gallery-lightbox-stage>img{display:block;width:auto;height:auto;max-width:min(1012px,calc(100vw - 150px));max-height:min(1012px,calc(100vh - 190px));object-fit:contain;background:#0b0b0b}.gallery-nav{width:48px;height:58px;border:0;border-radius:12px;background:rgba(255,255,255,.1);color:#fff;font-size:38px;cursor:pointer}.gallery-nav:hover{background:rgba(255,255,255,.18)}.gallery-lightbox-thumbs{display:flex;justify-content:center;gap:8px;overflow-x:auto;padding:8px}.gallery-thumb{width:62px;height:62px;flex:0 0 62px;border:2px solid transparent;border-radius:9px;background:#222;padding:3px}.gallery-thumb.active{border-color:#dfe9cd}.gallery-thumb img{width:100%;height:100%;object-fit:contain}.recipe-gallery-lightbox .actions{padding:4px 0 0}.recipe-gallery-lightbox .actions button{background:#fff;color:#222}
.recipe-technique-editor{border:1px solid var(--line);border-radius:13px;padding:13px;background:#fbfbf7}.recipe-technique-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;max-height:230px;overflow:auto;padding:4px 2px}.recipe-technique-option{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;border:1px solid var(--line);border-radius:11px;background:var(--card);padding:10px 12px;cursor:pointer;color:var(--text)}.recipe-technique-option small{color:var(--muted);font-size:9px}.recipe-technique-option:hover{border-color:#aabd9d;background:#f6f9f1}.recipe-technique-option.selected{border-color:var(--accent);background:#edf4e8;box-shadow:inset 0 0 0 1px var(--accent)}.technique-chip-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.technique-chip{border:1px solid #dbe4d1;border-radius:999px;background:#f0f5e8;color:#45623e;padding:7px 10px;font-size:10px;font-weight:700;cursor:pointer}.technique-chip:hover{background:#e5eed8}.technique-selection-chip{display:inline-flex;align-items:center;border:1px solid #dbe4d1;border-radius:999px;background:#f0f5e8;overflow:hidden}.technique-selection-chip .technique-chip{border:0;border-radius:0;background:transparent}.technique-chip-remove{border:0;border-left:1px solid #dbe4d1;background:transparent;color:#6d3c3c;min-width:30px;align-self:stretch;cursor:pointer;font-size:15px;font-weight:800}.technique-chip-remove:hover{background:#f6dfdf}.technique-info-dialog{width:min(760px,calc(100vw - 32px));max-width:760px;max-height:min(84vh,760px);overflow:auto;border-radius:18px}.technique-info-dialog::backdrop,#techniqueInfoDialog::backdrop{background:rgba(18,28,22,.68);backdrop-filter:blur(3px) saturate(.78)}.technique-info-shell{padding:28px;min-width:0}.technique-info-shell .dialog-head{margin-bottom:16px}.technique-info-shell .actions{padding-top:8px;border-top:1px solid var(--line)}#techniqueInfoTitle{font-size:22px;line-height:1.2;color:var(--ink)}#techniqueInfoSummary{font-size:14px;line-height:1.75;color:var(--text);margin:0 0 18px}#techniqueInfoSteps{font-size:14px;display:grid;gap:12px;padding-left:26px;line-height:1.7;margin:0 0 8px}#techniqueInfoSteps li{padding-left:4px}.technique-library-list{display:grid;gap:10px;margin-top:14px;max-height:60vh;overflow:auto}.technique-library-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;border:1px solid var(--line);border-radius:13px;padding:14px;background:var(--card)}.technique-library-card h4{font-size:14px;margin:7px 0 4px}.technique-library-card p{font-size:10px;color:var(--muted);line-height:1.5;margin:0}.technique-library-card.inactive{opacity:.62}.technique-library-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.recipe-gallery-edit-preview{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.recipe-edit-thumb{width:92px;border:1px solid var(--line);border-radius:10px;background:#fafaf5;padding:5px}.recipe-edit-thumb img{width:80px;height:72px;object-fit:contain;display:block;margin:auto}.recipe-edit-thumb>div{display:flex;justify-content:center;gap:4px;margin-top:5px}.recipe-edit-thumb.pending{outline:1px dashed var(--accent)}.recipe-gallery-upload{margin-top:10px}
@media(max-width:760px){.recipe-card-dialog{width:98vw;max-height:96vh}.recipe-card-content{padding:14px}.recipe-card-head h2{font-size:24px}.recipe-card-main-image{height:40vh}.recipe-card-metrics{grid-template-columns:1fr}.recipe-card-ingredient{grid-template-columns:1fr auto}.recipe-card-ingredient>small{grid-column:1/-1}.recipe-gallery-lightbox{width:100vw;height:100vh;border-radius:0}.gallery-lightbox-stage{grid-template-columns:38px minmax(0,1fr) 38px}.gallery-nav{width:36px;height:48px;font-size:30px}.gallery-lightbox-stage>img{max-width:calc(100vw - 92px);max-height:calc(100vh - 190px)}.technique-library-card{grid-template-columns:1fr}.technique-library-actions{justify-content:flex-start}}

/* FN13 Community */
.community-toolbar .toolbar-actions{align-items:center}.community-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;max-width:1120px}.community-plan-card{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 8%,var(--card)),var(--card))}.community-plan-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.community-plan-head h3{font-size:28px;margin:3px 0 6px}.community-plan-head h3 small{font-size:13px;color:var(--muted);font-weight:600}.community-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:18px 0}.community-plan-grid>div{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--line);border-radius:11px;padding:11px 12px;background:var(--card)}.community-plan-grid b{font-size:11px}.feature-status{font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;padding:5px 7px;border-radius:999px}.feature-status.available{background:#edf4e7;color:#557649}.feature-status.prepared{background:#f5f1e5;color:#8b7950}.community-auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}.community-form-panel{border:1px solid var(--line);border-radius:12px;padding:14px;background:color-mix(in srgb,var(--bg) 40%,var(--card))}.community-form-panel h4{margin:0 0 8px}.community-form-panel label{display:block;margin:9px 0}.community-inline-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin-top:12px}.community-inline-form .field{margin:0}.community-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.community-status-grid>div{border:1px solid var(--line);border-radius:10px;padding:11px}.community-status-grid span,.community-status-grid b{display:block}.community-status-grid span{font-size:9px;color:var(--muted);margin-bottom:5px}.community-dev-box,.community-invite-box{margin-top:13px;border-top:1px solid var(--line);padding-top:13px}.community-dev-box p{font-size:9px;color:var(--muted);line-height:1.55}.community-invite-result{margin-top:10px;padding:11px;border-radius:9px;background:#eef4e7;color:#4f6f46;font-size:10px;word-break:break-all}.community-publish-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.community-publish-grid .field{border:1px solid var(--line);border-radius:12px;padding:13px;margin:0}.community-publish-grid .field button{margin-top:9px;width:100%}.community-feed-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.community-feed-filters{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:10px;margin:14px 0}.community-feed-list{display:grid;gap:10px}.community-post{border:1px solid var(--line);border-radius:13px;padding:14px;background:var(--card);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px}.community-post h4{margin:3px 0 5px;font-size:15px}.community-post .meta{line-height:1.5}.community-post-kicker{font-size:8px;letter-spacing:.09em;text-transform:uppercase;color:var(--accent);font-weight:800}.community-post-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.community-post-rating{font-size:9px;color:var(--muted)}.community-post-source{font-size:9px;color:var(--muted);margin-top:7px}.community-local-state{border-left:3px solid var(--accent)}
@media(max-width:760px){.community-plan-grid,.community-auth-grid,.community-publish-grid,.community-status-grid{grid-template-columns:1fr}.community-plan-grid>div{align-items:flex-start;flex-direction:column}.community-inline-form{grid-template-columns:1fr}.community-feed-filters{grid-template-columns:1fr}.community-post{grid-template-columns:1fr}.community-post-actions{justify-content:flex-start}.community-plan-head{flex-direction:column}}
.community-feed-card{min-height:180px}.community-role-legend{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:9px;color:var(--muted)}.community-role-legend code{padding:4px 6px;border-radius:7px;background:var(--bg);color:var(--ink)}.community-post-main{display:flex;gap:12px;min-width:0}.community-post-thumb{width:76px;height:76px;flex:0 0 76px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--bg)}.community-post-thumb img{width:100%;height:100%;object-fit:contain}

/* FN14B unified user app entry gate */
.entry-locked > .sidebar,.entry-locked > main{display:none!important}
.fn-entry-gate{position:fixed;inset:0;z-index:10000;overflow:auto;background:radial-gradient(circle at 15% 15%,color-mix(in srgb,var(--accent) 18%,#f5f3e9),#f7f5ed 46%,#eef3e9);padding:28px 34px;color:var(--ink)}
.fn-entry-brand{display:flex;align-items:center;gap:11px;max-width:1180px;margin:0 auto 42px}.fn-entry-brand .logo{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--fn-green-deep,#294b3d);color:white;font-size:23px}.fn-entry-brand strong,.fn-entry-brand small{display:block}.fn-entry-brand strong{font-size:20px}.fn-entry-brand small{font-size:10px;color:var(--muted)}
.fn-entry-layout{max-width:1180px;margin:auto;display:grid;grid-template-columns:minmax(0,.9fr) minmax(560px,1.1fr);gap:56px;align-items:center}.fn-entry-intro h1{font-size:clamp(46px,6vw,76px);line-height:.95;margin:10px 0 20px;color:var(--fn-green-deep,#294b3d)}.fn-entry-intro>p:not(.overview-kicker){max-width:570px;font-size:16px;line-height:1.7;color:var(--muted)}.fn-entry-plan{display:grid;gap:6px;margin:28px 0;padding:18px 20px;border-radius:16px;background:#ffffffa8;border:1px solid var(--line);box-shadow:0 12px 38px #24402f12}.fn-entry-plan strong{font-size:14px}.fn-entry-plan span{font-size:10px;color:var(--muted)}.fn-entry-local{margin-right:10px}.fn-entry-intro>small{display:block;margin-top:10px;color:var(--muted)}
.fn-entry-auth{display:grid;grid-template-columns:1fr 1fr;gap:14px}.fn-entry-card{background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:0 18px 60px #18332614}.fn-entry-card h2{font-size:24px;margin:5px 0 18px}.fn-entry-card label{display:block;margin:12px 0}.fn-entry-card label span{display:block;font-size:9px;font-weight:800;color:var(--muted);margin-bottom:5px}.fn-entry-card input{width:100%}.fn-entry-card button{width:100%;margin-top:8px}.fn-entry-message{font-size:10px;line-height:1.5;color:#a33b35;background:#fff0ed;border-radius:9px;padding:9px;margin:10px 0 0}
@media(max-width:900px){.fn-entry-gate{padding:22px 18px}.fn-entry-brand{margin-bottom:24px}.fn-entry-layout{grid-template-columns:1fr;gap:28px}.fn-entry-auth{grid-template-columns:1fr}.fn-entry-intro h1{font-size:48px}}


/* FN14B non-blocking notifications */
.toast-region{position:fixed;top:22px;right:22px;z-index:12000;display:grid;gap:10px;width:min(390px,calc(100vw - 28px));pointer-events:none}
.toast{display:grid;grid-template-columns:34px minmax(0,1fr) 26px;align-items:center;gap:10px;padding:12px 12px 12px 13px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.97);box-shadow:0 18px 46px rgba(28,46,31,.18);opacity:0;transform:translateY(-8px) scale(.98);transition:opacity .18s ease,transform .18s ease;pointer-events:auto;backdrop-filter:blur(12px)}
.toast.visible{opacity:1;transform:translateY(0) scale(1)}
.toast.leaving{opacity:0;transform:translateY(-5px) scale(.98)}
.toast-icon{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:17px}
.toast-message{font-size:12px;font-weight:750;line-height:1.4;color:var(--ink)}
.toast-close{border:0;background:transparent;color:var(--muted);font-size:20px;line-height:1;cursor:pointer;padding:0;width:26px;height:26px;border-radius:8px}
.toast-close:hover{background:var(--bg)}
.toast.success{border-color:#cfe3ca}.toast.success .toast-icon{background:#e4f2df;color:#3f7637}
.toast.error{border-color:#eccdca}.toast.error .toast-icon{background:#f8e5e2;color:#a4443c}
.toast.info{border-color:#d8dfd2}.toast.info .toast-icon{background:#eef3e9;color:#5d7457}
@media(max-width:600px){.toast-region{top:12px;right:14px;left:14px;width:auto}.toast{grid-template-columns:32px minmax(0,1fr) 24px}}

/* FN14D sidebar sign-out */
.nav-icon-img{display:block;width:18px;height:18px;object-fit:contain;flex:0 0 18px}
.sidebar-logout-separator{margin:8px 8px 6px}
.sidebar-logout{color:var(--sideText)}
.sidebar-logout:hover{background:color-mix(in srgb,var(--fn-green) 10%,var(--sideActive));color:var(--fn-green-deep)}
.sidebar-logout:hover .nav-icon-img{filter:saturate(1.08) brightness(.92)}
@media(max-width:820px){.sidebar-logout .nav-icon-img{width:20px;height:20px}.sidebar-logout-separator{margin:8px 4px 6px}}

/* FN15 community value layer */
.community-plan-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.community-plan-choice{position:relative;border:1px solid var(--line);border-radius:14px;padding:15px;background:var(--card);display:flex;flex-direction:column;gap:10px;min-height:250px}.community-plan-choice.recommended{border:2px solid var(--accent);box-shadow:0 8px 24px color-mix(in srgb,var(--accent) 12%,transparent)}.community-plan-choice.active-plan{outline:3px solid color-mix(in srgb,var(--accent) 24%,transparent)}.community-plan-choice .recommended-badge{position:absolute;right:10px;top:9px;font-size:8px;font-weight:900;letter-spacing:.08em;background:var(--accent);color:white;padding:5px 7px;border-radius:999px}.community-plan-choice .plan-name{display:block;font-size:12px;font-weight:800;margin-bottom:5px}.community-plan-choice strong{display:block;font-size:25px}.community-plan-choice strong small{font-size:9px;color:var(--muted);font-weight:600}.community-plan-choice p{font-size:10px;color:var(--muted);line-height:1.5;min-height:45px}.community-plan-choice ul{padding-left:17px;margin:0;display:grid;gap:5px;font-size:9px;line-height:1.4;flex:1}.community-plan-choice .community-plan-activate{width:100%;margin-top:auto}.community-plan-choice .community-plan-activate.current{opacity:.72}.community-profile-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.community-profile-form label{display:grid;gap:6px;font-size:9px;color:var(--muted)}.community-profile-form .community-profile-bio{grid-column:1/-1}.community-profile-form button{justify-self:start}.community-tip-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;border-top:1px solid var(--line);padding-top:14px}.community-tip-form h4{grid-column:1/-1;margin:0}.community-tip-form textarea,.community-tip-form input[name="tags"]{grid-column:1/-1}.community-feed-filters{grid-template-columns:minmax(180px,1.5fr) minmax(150px,.8fr) minmax(120px,.6fr) minmax(150px,.7fr);align-items:center}.community-check{display:flex;align-items:center;gap:7px;font-size:9px;color:var(--muted);grid-column:1/-1}.community-check input{width:auto}.community-post-tags{display:flex;gap:5px;flex-wrap:wrap;margin:7px 0}.community-tag{border:0;background:color-mix(in srgb,var(--accent) 10%,var(--bg));color:var(--accent);border-radius:999px;padding:3px 7px;font-size:8px;cursor:pointer}.community-author-badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 6px;font-size:8px;font-weight:800;margin-right:4px}.community-author-badge.official{background:color-mix(in srgb,var(--accent) 15%,var(--card));color:var(--accent)}.community-author-badge.verified{background:var(--bg);color:var(--accent)}.community-rating-control{display:flex;gap:1px;margin-top:5px}.community-star{border:0;background:transparent;color:#b8b2a4;padding:0 2px;font-size:15px;cursor:pointer}.community-star.selected{color:#b0842a}.danger-soft{color:#9a4d49}.community-load-more{text-align:center;margin-top:13px}
@media(max-width:900px){.community-plan-options{grid-template-columns:1fr}.community-feed-filters{grid-template-columns:1fr 1fr}.community-check{grid-column:1/-1}}
@media(max-width:620px){.community-profile-form,.community-tip-form,.community-feed-filters{grid-template-columns:1fr}.community-profile-form .community-profile-bio,.community-tip-form h4,.community-tip-form textarea,.community-tip-form input[name="tags"],.community-check{grid-column:1}}
.community-author-link{display:inline-flex;align-items:center;gap:2px;border:0;background:transparent;padding:0;color:inherit;cursor:pointer}.community-author-link:hover{text-decoration:underline}.community-profile-dialog{max-width:520px;width:min(92vw,520px)}.community-profile-stats{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.community-profile-stats span{font-size:9px;padding:6px 8px;border-radius:999px;background:var(--bg);color:var(--muted)}
.community-avatar-field{grid-row:span 2;display:flex;align-items:center;gap:12px}.community-avatar-preview,.community-public-avatar{width:72px;height:72px;border-radius:50%;object-fit:cover;border:1px solid var(--line);background:var(--bg)}.community-public-avatar{width:92px;height:92px;float:right;margin:0 0 12px 16px}

/* FN17 pricing + Community Hub */
.fn-entry-offers{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:26px 0 18px}.fn-entry-offer{position:relative;display:grid;gap:7px;padding:15px 16px;border:1px solid var(--line);border-radius:15px;background:#ffffffb8;box-shadow:0 8px 24px #24402f0b}.fn-entry-offer.recommended{border:2px solid var(--accent);background:color-mix(in srgb,var(--accent) 5%,white)}.fn-entry-offer .offer-kicker{font-size:8px;font-weight:900;letter-spacing:.08em;color:var(--accent)}.fn-entry-offer strong{font-size:21px;color:var(--fn-green-deep,#294b3d)}.fn-entry-offer strong small{font-size:8px;color:var(--muted);font-weight:700}.fn-entry-offer p{margin:0!important;font-size:9px!important;line-height:1.45!important;color:var(--muted)!important}.fn-entry-offer.local{background:linear-gradient(135deg,#ffffffd9,#f1f5eb)}
.community-hub-tabs{position:sticky;top:0;z-index:4;display:flex;gap:7px;flex-wrap:wrap;padding:10px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--card) 94%,transparent);backdrop-filter:blur(10px);box-shadow:0 5px 22px #1b33220c}.community-hub-tabs button{border:1px solid transparent;background:transparent;color:var(--muted);padding:9px 12px;border-radius:10px;font-size:9px;font-weight:800;cursor:pointer}.community-hub-tabs button:hover{background:var(--bg);color:var(--ink)}.community-hub-tabs button.active{background:var(--accent);color:#fff}.community-hub-panel{min-width:0}.community-discovery-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:24px;border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 14%,var(--card)),var(--card));border:1px solid var(--line)}.community-discovery-hero h2{font-size:30px;line-height:1.08;margin:6px 0 9px;max-width:650px}.community-discovery-hero p:not(.eyebrow){max-width:720px;color:var(--muted);line-height:1.55}.community-discovery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}.community-discovery-grid button{display:grid;gap:7px;text-align:left;border:1px solid var(--line);border-radius:14px;padding:15px;background:var(--card);cursor:pointer;color:var(--ink)}.community-discovery-grid button:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));transform:translateY(-1px)}.community-discovery-grid b{font-size:11px}.community-discovery-grid span{font-size:9px;line-height:1.45;color:var(--muted)}.community-discovery-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.community-discovery-summary>div{border:1px solid var(--line);border-radius:12px;background:var(--card);padding:13px}.community-discovery-summary span,.community-discovery-summary b{display:block}.community-discovery-summary span{font-size:8px;color:var(--muted);margin-bottom:5px}.community-discovery-summary b{font-size:18px}.community-creators-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.community-creator-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:11px;border:1px solid var(--line);border-radius:13px;padding:13px;background:var(--card);cursor:pointer;text-align:left;color:var(--ink)}.community-creator-card:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.community-creator-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;background:var(--bg);border:1px solid var(--line);display:grid;place-items:center;font-weight:800}.community-creator-card b{display:block;font-size:11px;margin-bottom:3px}.community-creator-card small{display:block;color:var(--muted);font-size:8px;line-height:1.4}.community-creator-stats{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap}.community-creator-stats span{font-size:8px;border-radius:999px;background:var(--bg);padding:4px 6px;color:var(--muted)}.community-plan-options{grid-template-columns:repeat(4,minmax(0,1fr))}.local-license-choice{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 4%,var(--card)),var(--card))}
@media(max-width:1050px){.community-discovery-grid{grid-template-columns:1fr 1fr}.community-creators-grid{grid-template-columns:1fr 1fr}.community-plan-options{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.fn-entry-offers{grid-template-columns:1fr 1fr}.community-hub-tabs{position:static}.community-discovery-hero{flex-direction:column}.community-discovery-summary{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:620px){.fn-entry-offers,.community-discovery-grid,.community-creators-grid,.community-discovery-summary,.community-plan-options{grid-template-columns:1fr}.community-hub-tabs{display:grid;grid-template-columns:1fr 1fr}.community-discovery-hero h2{font-size:24px}}

/* FN17 recipe media entitlements */
.recipe-video-editor{border:1px solid var(--line);border-radius:13px;padding:13px;background:#fbfbf7;display:grid;gap:10px}.recipe-video-editor .card-heading{margin:0}.recipe-video-preview:empty{display:none}.recipe-video-frame{position:relative;width:100%;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#111;border:1px solid var(--line);margin:10px 0}.recipe-video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.recipe-edit-thumb{width:170px}.recipe-edit-thumb img{width:100%;height:96px}.recipe-edit-thumb input{width:100%;margin-top:6px;font-size:10px;padding:7px 8px}.recipe-edit-thumb>button.iconbtn{display:block;margin:5px auto 0}.gallery-lightbox-caption{min-height:1.4em;text-align:center;margin:7px 0 2px}.community-post>.recipe-video-frame{margin:12px 0 0}.recipe-gallery-upload input:disabled{opacity:.55;cursor:not-allowed}

@media(max-width:760px){.technique-info-dialog{width:calc(100vw - 20px);max-width:none;max-height:90vh}.technique-info-shell{padding:20px}#techniqueInfoTitle{font-size:20px}#techniqueInfoSummary,#techniqueInfoSteps{font-size:13px}}

/* FN17 Business & Ads Foundation */
.business-layout{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:14px;align-items:start}.business-layout>*{min-width:0}.business-side,.business-main{display:grid;gap:14px;min-width:0}.business-side>*{min-width:0}.business-main>*{min-width:0}.business-stack{display:grid;gap:9px;margin-top:10px;min-width:0}.business-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.business-plan-card{border:1px solid var(--line);border-radius:13px;padding:13px;background:var(--bg);display:grid;gap:8px;min-width:0}.business-plan-card.current{outline:3px solid color-mix(in srgb,var(--accent) 24%,transparent)}.business-plan-card strong{font-size:20px}.business-plan-card small,.business-plan-card p{font-size:9px;color:var(--muted);line-height:1.45;overflow-wrap:anywhere}.business-analytics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.business-builder-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.business-builder-grid>*{min-width:0}.business-campaign-list,.business-member-list,.community-promotion-list{display:grid;gap:8px;margin-top:10px;min-width:0}.business-campaign-card,.business-member-row,.community-promotion-row{border:1px solid var(--line);border-radius:12px;padding:11px;background:var(--bg);min-width:0}.business-campaign-card header{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;min-width:0}.business-campaign-card .business-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.business-ad-row{margin-top:8px;padding-top:8px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;align-items:center;min-width:0}.business-member-row,.community-promotion-row{display:flex;justify-content:space-between;gap:10px;align-items:center}.business-member-row>*{min-width:0}.business-member-row span:first-child,.business-campaign-card header span:first-child,.business-ad-row span:first-child{min-width:0;overflow-wrap:anywhere;word-break:break-word}.business-member-row small,.business-campaign-card small,.business-ad-row small{display:block;overflow-wrap:anywhere}.community-promotion-list:empty{display:none}
.recipe-card-body-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start}.recipe-card-primary{min-width:0}.recipe-card-primary .recipe-card-ingredients{max-width:680px}.recipe-card-ingredient{grid-template-columns:minmax(140px,1fr) max-content minmax(110px,max-content) auto;gap:10px}.recipe-card-ingredient>b,.recipe-card-ingredient>small{white-space:nowrap}.recipe-sponsored-rail{position:sticky;top:12px;display:grid;gap:10px}.recipe-sponsored-placeholder,.recipe-sponsored-card{border:1px solid var(--line);border-radius:14px;padding:14px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 5%,var(--card)),var(--card));display:grid;gap:8px}.recipe-sponsored-placeholder span{font-size:8px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-weight:900}.sponsored-label{display:inline-flex;align-items:center;width:max-content;font-size:10px;line-height:1;letter-spacing:.07em;text-transform:uppercase;color:#fff;background:var(--accent);font-weight:900;padding:5px 8px;border-radius:999px;box-shadow:0 1px 0 color-mix(in srgb,var(--accent) 45%,#000)}.sponsored-trust-note{display:block;font-size:9px!important;line-height:1.45!important;color:var(--muted)!important;font-style:normal!important;border-top:1px solid var(--line);padding-top:8px;margin-top:8px}.recipe-sponsored-placeholder small,.recipe-sponsored-card p,.recipe-sponsored-card em{font-size:9px;line-height:1.5;color:var(--muted)}.recipe-sponsored-card img{width:100%;max-height:180px;object-fit:contain;border-radius:10px;background:#fafaf5}.recipe-sponsored-card h4{font-size:15px;margin:0}.recipe-sponsored-card strong{font-size:18px;color:var(--fn-green-deep)}.recipe-sponsored-card em{font-style:normal;border-top:1px solid var(--line);padding-top:8px}
@media(max-width:1280px){.business-layout{grid-template-columns:1fr}.business-side{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.business-main{min-width:0}}
@media(max-width:980px){.business-analytics-grid{grid-template-columns:1fr 1fr}.recipe-card-body-grid{grid-template-columns:1fr}.recipe-sponsored-rail{position:static}.recipe-card-primary .recipe-card-ingredients{max-width:none}}
@media(max-width:680px){.business-side,.business-builder-grid,.business-plan-grid,.business-analytics-grid{grid-template-columns:1fr}.recipe-card-ingredient{grid-template-columns:minmax(0,1fr) max-content}.recipe-card-ingredient>small{grid-column:1/2;white-space:normal}.recipe-note-btn{grid-column:2;grid-row:2}}
.community-creator-analytics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0 14px}.community-creator-analytics>div{border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--bg)}.community-creator-analytics span,.community-creator-analytics b{display:block}.community-creator-analytics span{font-size:8px;color:var(--muted)}.community-creator-analytics b{font-size:15px;margin-top:4px}@media(max-width:680px){.community-creator-analytics{grid-template-columns:1fr 1fr}}
.fn-entry-business-note{margin-top:12px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--accent) 5%,var(--card));display:grid;gap:4px}.fn-entry-business-note b{font-size:10px}.fn-entry-business-note span{font-size:9px;line-height:1.45;color:var(--muted)}


/* FN17 creator promotion markers */
.community-post-label-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.community-promoted-badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:800;background:color-mix(in srgb,var(--accent,#527449) 14%,transparent);border:1px solid color-mix(in srgb,var(--accent,#527449) 35%,transparent)}
.community-post.is-promoted{outline:1px solid color-mix(in srgb,var(--accent,#527449) 28%,transparent);outline-offset:-1px}

/* FN17E Business Analytics Hub */
.business-subnav{padding-left:30px!important;font-size:9px}.business-subnav .nav-icon{font-size:10px;opacity:.7}.business-analytics-cta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:-2px}.business-analytics-hub{display:grid;gap:14px;min-width:0}.analytics-filter-card{display:flex;justify-content:space-between;gap:20px;align-items:flex-end}.analytics-filter-card h3{margin:4px 0 3px}.analytics-filter-controls{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.analytics-filter-controls label{display:grid;gap:5px;font-size:8px;color:var(--muted);min-width:150px}.analytics-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.analytics-hub-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:14px;min-width:0}.analytics-hub-grid>*{min-width:0}.analytics-panel{min-width:0}.analytics-bar-chart{min-height:240px;display:flex;align-items:flex-end;gap:5px;padding:22px 8px 6px;border-top:1px solid var(--line);overflow-x:auto}.analytics-bar-column{flex:1 0 24px;min-width:24px;max-width:52px;display:grid;align-items:end;gap:4px;height:195px;text-align:center}.analytics-bar-stack{height:160px;display:flex;align-items:flex-end;justify-content:center;gap:2px}.analytics-bar{width:42%;min-height:2px;border-radius:4px 4px 1px 1px;background:var(--accent)}.analytics-bar.clicks{background:color-mix(in srgb,var(--accent) 45%,#d7a742)}.analytics-bar-column small{font-size:7px;color:var(--muted);white-space:nowrap}.analytics-chart-empty{margin:auto;color:var(--muted);font-size:10px}.analytics-funnel{display:grid;gap:11px;margin-top:10px}.analytics-funnel-row{display:grid;grid-template-columns:minmax(120px,1fr) 2fr max-content;gap:9px;align-items:center}.analytics-funnel-row span{font-size:9px;color:var(--muted)}.analytics-funnel-track{height:12px;border-radius:999px;background:var(--bg);overflow:hidden}.analytics-funnel-fill{height:100%;border-radius:999px;background:var(--accent);min-width:2px}.analytics-funnel-row b{font-size:10px}.analytics-table-wrap{overflow:auto;margin-top:10px}.analytics-table{width:100%;border-collapse:collapse;min-width:610px}.analytics-table th,.analytics-table td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--line);font-size:8px;white-space:nowrap}.analytics-table th{color:var(--muted);font-weight:800;background:var(--bg)}.analytics-table td:first-child{white-space:normal;font-weight:700;min-width:130px}.analytics-locked{padding:18px;border:1px dashed var(--line);border-radius:12px;background:var(--bg);color:var(--muted);font-size:9px;line-height:1.5}.analytics-plan-note{display:inline-flex;align-items:center;gap:5px;font-size:8px;color:var(--muted)}
@media(max-width:1280px){.analytics-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:920px){.analytics-filter-card{align-items:stretch;flex-direction:column}.analytics-hub-grid{grid-template-columns:1fr}.analytics-filter-controls label{flex:1}.analytics-kpi-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.analytics-filter-controls{display:grid;grid-template-columns:1fr;width:100%}.analytics-kpi-grid{grid-template-columns:1fr}.business-subnav{padding-left:18px!important}}

/* FN17E demo showcase and campaign CRUD */
.fn-entry-demo-profiles{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:9px}.fn-entry-demo-profiles article{border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--card);display:grid;gap:5px;min-width:0}.fn-entry-demo-profiles b{font-size:10px}.fn-entry-demo-profiles span,.fn-entry-demo-profiles small{font-size:9px;color:var(--muted);line-height:1.4}.fn-entry-demo-profiles code{font-size:9px;overflow-wrap:anywhere}.fn-entry-demo-profiles>small{grid-column:1/-1}.danger-button.compact{padding:6px 9px;font-size:10px}.business-ad-thumb{width:54px;height:40px;object-fit:cover;border-radius:8px;border:1px solid var(--line);float:left;margin-right:8px}.business-ad-row>.business-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.business-ad-row>span{display:block;min-width:0}.business-ad-row b{display:block}.business-campaign-card header small+small{margin-top:3px}.business-stack .business-actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:780px){.fn-entry-demo-profiles{grid-template-columns:1fr}.fn-entry-demo-profiles>small{grid-column:auto}.business-ad-row{align-items:flex-start;flex-direction:column}.business-ad-row>.business-actions{justify-content:flex-start}}
.community-sponsored-showcase{margin-top:14px}.community-sponsored-card{border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));background:color-mix(in srgb,var(--accent) 4%,var(--card));border-radius:14px;padding:12px;display:grid;grid-template-columns:minmax(150px,230px) minmax(0,1fr);gap:14px;align-items:center;position:relative}.community-sponsored-card>img{width:100%;max-height:140px;object-fit:cover;border-radius:11px}.community-sponsored-card h3{margin:2px 0 5px}.community-sponsored-card b,.community-sponsored-card strong,.community-sponsored-card small,.community-sponsored-card em{display:block}.community-sponsored-card strong{font-size:17px;margin:4px 0}.community-sponsored-card p{margin:7px 0;color:var(--muted)}.community-sponsored-card em{font-size:9px;color:var(--muted);margin-top:8px}.community-sponsored-card .sponsored-label{position:absolute;top:8px;right:8px}.community-sponsored-card .primary{margin-top:6px}@media(max-width:720px){.community-sponsored-card{grid-template-columns:1fr}.community-sponsored-card>img{max-height:190px}}

/* FN17E ad preview */
.business-ad-live-preview{margin-top:8px;padding-top:12px;border-top:1px solid var(--line);display:grid;gap:10px}.business-ad-preview-controls{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--bg) 72%,var(--card));margin:14px 0 18px}.business-ad-preview-controls>div{display:flex;gap:7px;flex-wrap:wrap;min-width:0}.business-ad-preview-controls button.active{outline:2px solid color-mix(in srgb,var(--accent) 42%,transparent);background:color-mix(in srgb,var(--accent) 10%,var(--card))}.business-ad-preview-dialog{width:min(980px,94vw);max-width:980px;padding:26px;overflow:hidden}.business-ad-preview-dialog>.dialog-head{margin-bottom:0;padding-bottom:14px;border-bottom:1px solid var(--line);align-items:flex-start}.business-ad-preview-dialog>.actions{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.business-ad-preview-stage{width:100%;max-width:760px;margin:0 auto;padding:24px;border:1px dashed var(--line);border-radius:16px;background:var(--bg);transition:max-width .18s ease;box-sizing:border-box;overflow:hidden}.business-ad-preview-stage.mobile{max-width:390px}.business-ad-preview-stage .business-preview-creative{margin:0;max-width:100%;min-width:0}.business-ad-preview-stage .business-preview-creative *{min-width:0}.business-ad-preview-stage .business-preview-creative img{max-width:100%}.business-ad-preview-stage .business-preview-creative h3,.business-ad-preview-stage .business-preview-creative h4,.business-ad-preview-stage .business-preview-creative p,.business-ad-preview-stage .business-preview-creative b,.business-ad-preview-stage .business-preview-creative strong,.business-ad-preview-stage .business-preview-creative small{overflow-wrap:anywhere}.business-ad-preview-card.product{border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--card);display:grid;grid-template-columns:110px minmax(0,1fr);gap:14px;align-items:center;position:relative}.business-ad-preview-card.product>img{width:110px;height:94px;object-fit:cover;border-radius:10px;background:var(--bg)}.business-ad-preview-card.product h4{margin:2px 0 5px}.business-ad-preview-card.product p{color:var(--muted);font-size:9px;line-height:1.5}.business-ad-preview-card.product strong{display:block;font-size:16px;color:var(--fn-green-deep);margin:4px 0}.business-ad-preview-card.product .sponsored-label{position:absolute;right:12px;top:12px}.business-ad-preview-stage.mobile .community-sponsored-card,.business-ad-preview-stage.mobile .business-ad-preview-card.product{grid-template-columns:1fr}.business-ad-preview-stage.mobile .community-sponsored-card>img,.business-ad-preview-stage.mobile .business-ad-preview-card.product>img{width:100%;height:auto;max-height:180px}.business-ad-preview-stage button[disabled]{opacity:.85;cursor:default}
@media(max-width:680px){.business-ad-preview-controls{display:grid;padding:10px;margin:12px 0 14px}.business-ad-preview-dialog{width:96vw;padding:16px}.business-ad-preview-stage{padding:14px}.business-ad-preview-dialog>.dialog-head{padding-bottom:12px}.business-ad-preview-dialog>.actions{margin-top:14px;padding-top:12px}}

/* FN18 multi-media business ads */
.business-ad-media-editor{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--bg) 65%,var(--card))}.business-ad-upload{display:grid;gap:6px}.business-ad-url-row{align-items:end}.business-ad-url-row button{white-space:nowrap}.business-ad-media-list{display:grid;gap:8px}.business-ad-media-item{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--card);min-width:0}.business-ad-media-item img{width:72px;height:52px;object-fit:cover;border-radius:8px;background:var(--bg)}.business-ad-media-item>span{font-size:10px;font-weight:800;min-width:0;overflow-wrap:anywhere}.business-ad-media-item>div{display:flex;gap:4px}.business-ad-media-item .compact{padding:5px 7px;min-width:30px}
.business-ad-media-single,.business-ad-carousel{width:100%;min-width:0;position:relative;overflow:hidden;border-radius:11px;background:var(--bg)}.business-ad-media-single .business-ad-slide{display:block}.business-ad-slides{position:relative;width:100%;min-height:120px}.business-ad-slide{display:none;width:100%;height:100%;align-items:center;justify-content:center}.business-ad-slide.active{display:flex}.business-ad-slide>img{display:block;width:100%;max-height:220px;object-fit:cover;border-radius:11px}.recipe-sponsored-card .business-ad-slide>img{object-fit:contain;max-height:180px;background:#fafaf5}.business-ad-video{background:#111;aspect-ratio:16/9}.business-ad-video .recipe-video-frame{width:100%;height:100%;margin:0}.business-ad-video iframe{width:100%;height:100%;min-height:180px;border:0}.business-carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;border:0;background:rgba(0,0,0,.58);color:#fff;width:30px;height:38px;border-radius:9px;display:grid;place-items:center;font-size:22px;cursor:pointer}.business-carousel-arrow.prev{left:8px}.business-carousel-arrow.next{right:8px}.business-carousel-dots{position:absolute;left:50%;bottom:7px;transform:translateX(-50%);z-index:3;display:flex;gap:5px;padding:4px 7px;border-radius:999px;background:rgba(0,0,0,.38)}.business-carousel-dots button{width:7px;height:7px;border:0;border-radius:50%;padding:0;background:rgba(255,255,255,.55);cursor:pointer}.business-carousel-dots button.active{background:#fff;transform:scale(1.2)}
.community-sponsored-card>.business-ad-media-single,.community-sponsored-card>.business-ad-carousel{width:100%;align-self:stretch}.business-ad-preview-card.product>.business-ad-media-single,.business-ad-preview-card.product>.business-ad-carousel{width:110px;min-height:94px}.business-ad-preview-card.product .business-ad-slide>img{width:110px;height:94px;object-fit:cover}.business-ad-preview-card.product .business-ad-video iframe{min-height:94px}.business-ad-preview-stage.mobile .business-ad-preview-card.product>.business-ad-media-single,.business-ad-preview-stage.mobile .business-ad-preview-card.product>.business-ad-carousel{width:100%}.business-ad-preview-stage.mobile .business-ad-preview-card.product .business-ad-slide>img{width:100%;height:auto;max-height:180px}
@media(max-width:720px){.business-ad-media-item{grid-template-columns:60px minmax(0,1fr)}.business-ad-media-item img{width:60px;height:46px}.business-ad-media-item>div{grid-column:1/-1;justify-content:flex-end}.business-ad-url-row{grid-template-columns:1fr}.community-sponsored-card>.business-ad-media-single,.community-sponsored-card>.business-ad-carousel{grid-column:1/-1}}

/* FN18 Business catalog / regional market foundation */
.business-catalog-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}.business-catalog-layout>*{min-width:0}.business-catalog-side,.business-catalog-main{display:grid;gap:14px;min-width:0}.business-catalog-store-list,.business-catalog-product-list{display:grid;gap:8px;margin-top:10px}.business-catalog-store-row,.business-catalog-product-row{border:1px solid var(--line);border-radius:12px;padding:11px;background:var(--bg);display:flex;gap:12px;justify-content:space-between;align-items:center;min-width:0}.business-catalog-store-row span:first-child,.business-catalog-product-row span:nth-child(2){min-width:0}.business-catalog-store-row small,.business-catalog-product-row small{display:block;color:var(--muted);overflow-wrap:anywhere}.business-catalog-product-row img{width:72px;height:72px;border-radius:10px;object-fit:cover;background:var(--card);flex:0 0 auto}.business-catalog-price{font-weight:700;text-align:right;white-space:nowrap}.business-catalog-price small{font-weight:400}.business-catalog-main textarea{width:100%;box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;line-height:1.45}.business-catalog-layout select[multiple]{min-height:150px}
@media(max-width:1280px){.business-catalog-layout{grid-template-columns:1fr}.business-catalog-side{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media(max-width:760px){.business-catalog-side{grid-template-columns:1fr}.business-catalog-product-row{align-items:flex-start;flex-wrap:wrap}.business-catalog-price{width:100%;text-align:left;padding-left:84px}}

/* FN18P adaptive ad image placement */
.business-ad-media-single,.business-ad-carousel{width:100%;min-width:0;position:relative;overflow:hidden;border-radius:12px;background:var(--bg)}
.business-ad-media-single .business-ad-slide,.business-ad-carousel .business-ad-slide{width:100%;height:100%}
.business-ad-media-frame{position:relative;width:100%;height:100%;overflow:hidden;border-radius:inherit;background:var(--bg)}
.business-ad-media-image,.business-ad-media-frame>img{display:block;width:100%;height:100%;object-fit:cover;object-position:center center}
.business-ad-media-single[data-placement="recipe"] .business-ad-media-frame,.business-ad-carousel[data-placement="recipe"] .business-ad-media-frame{aspect-ratio:5/3}
.business-ad-media-single[data-placement="community"] .business-ad-media-frame,.business-ad-carousel[data-placement="community"] .business-ad-media-frame{aspect-ratio:16/10}
.business-ad-media-single[data-placement="product"] .business-ad-media-frame,.business-ad-carousel[data-placement="product"] .business-ad-media-frame{aspect-ratio:6/5}
.business-ad-media-single.device-mobile[data-placement="recipe"] .business-ad-media-frame,.business-ad-carousel.device-mobile[data-placement="recipe"] .business-ad-media-frame{aspect-ratio:4/3}
.business-ad-media-single.device-mobile[data-placement="community"] .business-ad-media-frame,.business-ad-carousel.device-mobile[data-placement="community"] .business-ad-media-frame{aspect-ratio:4/3}
.business-ad-media-single.device-mobile[data-placement="product"] .business-ad-media-frame,.business-ad-carousel.device-mobile[data-placement="product"] .business-ad-media-frame{aspect-ratio:1/1}
.recipe-sponsored-card .business-ad-media-single,.recipe-sponsored-card .business-ad-carousel{margin-bottom:2px}
.recipe-sponsored-card .business-ad-media-image,.recipe-sponsored-card .business-ad-media-frame>img,.recipe-sponsored-card .business-ad-slide>img{object-fit:cover!important;background:var(--bg);height:100%}
.community-sponsored-card>.business-ad-media-single,.community-sponsored-card>.business-ad-carousel{height:100%}
.business-ad-preview-card.product>.business-ad-media-single,.business-ad-preview-card.product>.business-ad-carousel{width:110px;max-width:100%}
.business-ad-preview-stage.mobile .business-ad-preview-card.product>.business-ad-media-single,.business-ad-preview-stage.mobile .business-ad-preview-card.product>.business-ad-carousel{width:100%}
.business-ad-preview-stage.mobile .business-ad-preview-card.product .business-ad-media-frame{aspect-ratio:4/3}
.business-ad-preview-stage.mobile .recipe-sponsored-card .business-ad-media-frame{aspect-ratio:4/3}
.business-ad-preview-stage.mobile .community-sponsored-card .business-ad-media-frame{aspect-ratio:4/3}

/* FN18A Coupon Engine */
.business-coupon-layout{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:16px;align-items:start}.business-coupon-editor{position:sticky;top:12px}.business-coupon-main{display:grid;gap:16px;min-width:0}.business-coupon-analytics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.business-coupon-analytics article{display:grid;gap:6px}.business-coupon-analytics span{font-size:11px;color:var(--muted)}.business-coupon-analytics b{font-size:24px;color:var(--ink)}.business-coupon-list{display:grid;gap:10px}.business-coupon-card{border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;justify-content:space-between;gap:16px;align-items:center;background:var(--card);min-width:0}.business-coupon-card>div:first-child{min-width:0}.business-coupon-card h4{margin:4px 0}.business-coupon-card strong{display:block;color:var(--fn-green-deep);font-size:18px;margin:4px 0}.business-coupon-card p,.business-coupon-card small{color:var(--muted);overflow-wrap:anywhere}.coupon-badge{display:inline-flex;font-size:9px;font-weight:900;letter-spacing:.08em;padding:4px 7px;border-radius:999px;background:color-mix(in srgb,var(--accent) 13%,var(--card));color:var(--accent)}.community-coupon-showcase{margin-top:14px}.community-coupon-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.community-coupon-head h3{margin:3px 0}.community-coupon-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.community-coupon-card{border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));border-radius:14px;padding:14px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 5%,var(--card)),var(--card));display:grid;gap:7px;min-width:0}.community-coupon-card small,.community-coupon-card p,.coupon-meta{color:var(--muted);font-size:11px}.community-coupon-card h4{margin:0}.community-coupon-card strong{font-size:20px;color:var(--fn-green-deep)}.coupon-meta{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}.coupon-meta code{padding:4px 7px;border-radius:7px;background:var(--bg);border:1px dashed var(--line)}@media(max-width:1180px){.business-coupon-layout{grid-template-columns:1fr}.business-coupon-editor{position:static}.community-coupon-grid{grid-template-columns:1fr 1fr}}@media(max-width:720px){.business-coupon-analytics,.community-coupon-grid{grid-template-columns:1fr}.business-coupon-card{align-items:flex-start;flex-direction:column}}

.business-coupon-grid{display:grid;gap:12px}

/* FN19 Savings Integration */
.savings-card{display:grid;gap:10px;min-width:0}.savings-card h3{margin:0}.savings-card>.field{margin:4px 0}.savings-results{display:grid;gap:10px;min-width:0}.savings-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.savings-summary-grid>div{padding:9px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--accent) 4%,var(--card));min-width:0}.savings-summary-grid span,.savings-summary-grid b{display:block}.savings-summary-grid span{font-size:9px;color:var(--muted);margin-bottom:3px}.savings-summary-grid b{font-size:13px;overflow-wrap:anywhere}.savings-result-list{display:grid;gap:8px}.savings-result-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:11px;padding:10px;background:var(--card);min-width:0}.savings-result-row strong,.savings-result-row small{display:block}.savings-result-row small{font-size:9px;color:var(--muted);margin-top:3px;overflow-wrap:anywhere}.savings-result-price{text-align:right;white-space:nowrap}.savings-result-price b{display:block;color:var(--fn-green-deep);font-size:14px}.savings-coupon-chip{display:inline-block;margin-top:5px;padding:4px 7px;border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,var(--card));color:var(--accent);font-size:8px;font-weight:800}.savings-basket-coupons{display:grid;gap:4px;padding:9px;border:1px dashed color-mix(in srgb,var(--accent) 45%,var(--line));border-radius:10px}.savings-basket-coupons strong{font-size:10px}.savings-basket-coupons span{font-size:9px;color:var(--muted)}.recipe-savings-organic{border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:14px;padding:12px;background:color-mix(in srgb,var(--accent) 4%,var(--card))}.recipe-savings-organic>b,.recipe-savings-organic>small{display:block}.recipe-savings-organic>small{font-size:9px;line-height:1.45;color:var(--muted)}.savings-organic-label{font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-weight:900}.recipe-sponsored-placement{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:10px}
@media(max-width:720px){.savings-summary-grid{grid-template-columns:1fr}.savings-result-row{grid-template-columns:1fr}.savings-result-price{text-align:left;white-space:normal}}


/* FN19 coupon layout repair */
.business-coupon-layout{display:grid;grid-template-columns:minmax(460px,560px) minmax(0,1fr);gap:18px;align-items:start;min-width:0}
.business-coupon-layout>*{min-width:0}.business-coupon-editor{position:sticky;top:12px;min-width:0}.business-coupon-form{min-width:0}.business-coupon-form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.business-coupon-form-row>label{min-width:0}.business-coupon-form input,.business-coupon-form select,.business-coupon-form textarea{min-width:0;max-width:100%}.business-coupon-analytics{grid-template-columns:repeat(4,minmax(0,1fr))}.business-coupon-analytics>*{min-width:0}.business-coupon-card .business-actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:1280px){.business-coupon-layout{grid-template-columns:1fr}.business-coupon-editor{position:static}.business-coupon-main{grid-template-columns:1fr}}
@media(max-width:980px){.business-coupon-analytics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.business-coupon-form-row,.business-coupon-analytics{grid-template-columns:1fr}.business-coupon-card{align-items:flex-start;flex-direction:column}}

/* FN19 Social Identity & Profile Foundation */
.community-profile-shell{padding:0;overflow:hidden}.community-profile-hero{position:relative}.community-profile-cover{height:170px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 75%,#1f3428),color-mix(in srgb,var(--accent) 24%,var(--card)));background-size:cover;background-position:center}.community-profile-cover.has-image{min-height:170px}.community-profile-identity{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:start;padding:0 22px 20px;margin-top:0;background:var(--card);border-top:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-bottom:1px solid var(--line);box-shadow:0 -8px 20px rgba(20,35,28,.04)}.community-profile-avatar-wrap{width:112px;height:112px;margin-top:-56px;position:relative;z-index:2;border-radius:50%;border:6px solid var(--profile-avatar-border,var(--card));background:var(--card);box-shadow:var(--shadow);overflow:hidden;display:grid;place-items:center}.community-profile-avatar-wrap .community-avatar-preview{width:100%;height:100%;object-fit:cover;border-radius:50%}.community-profile-avatar-fallback{width:100%;height:100%;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 18%,var(--card));color:var(--accent);font-size:28px;font-weight:850}.community-profile-title{padding-top:16px;min-width:0}.community-profile-title h2{margin:2px 0 4px}.community-profile-hero-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.community-profile-counts{display:flex;gap:8px;padding-top:16px}.community-profile-counts>div{min-width:82px;text-align:center;border:1px solid var(--line);border-radius:12px;padding:9px;background:var(--card)}.community-profile-counts b,.community-profile-counts span{display:block}.community-profile-counts b{font-size:20px}.community-profile-counts span{font-size:9px;color:var(--muted)}.community-profile-nav{display:flex;gap:4px;overflow:auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px 18px;background:color-mix(in srgb,var(--bg) 55%,var(--card))}.community-profile-nav button{border:0;background:transparent;color:var(--muted);padding:9px 12px;border-radius:9px;cursor:pointer;white-space:nowrap;font-weight:750}.community-profile-nav button.active{background:color-mix(in srgb,var(--accent) 12%,var(--card));color:var(--accent)}.community-profile-pane{padding:22px}.community-profile-overview-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(240px,.7fr);gap:18px}.community-profile-identity-card{border:1px solid var(--line);border-radius:14px;padding:14px;display:grid;gap:7px;background:color-mix(in srgb,var(--bg) 60%,var(--card));min-width:0}.community-profile-identity-card span,.community-profile-identity-card small{color:var(--muted);font-size:10px}.community-profile-identity-card code{overflow-wrap:anywhere}.community-profile-interest-chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.community-profile-interest-chips>span{padding:6px 9px;border-radius:999px;background:color-mix(in srgb,var(--accent) 11%,var(--card));color:var(--accent);font-size:10px;font-weight:750}.community-profile-activity-list{display:grid;gap:10px}.community-profile-activity-item{display:grid;grid-template-columns:12px minmax(0,1fr);gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.community-profile-activity-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);margin-top:5px}.community-profile-activity-item b,.community-profile-activity-item span,.community-profile-activity-item small{display:block}.community-profile-activity-item span,.community-profile-activity-item small{color:var(--muted);font-size:10px;margin-top:3px}.community-profile-content-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-top:14px}.community-profile-content-summary>div{border:1px solid var(--line);border-radius:12px;padding:14px}.community-profile-content-summary b,.community-profile-content-summary span{display:block}.community-profile-content-summary b{font-size:24px}.community-profile-content-summary span{color:var(--muted);font-size:10px}.community-profile-about{display:grid;grid-template-columns:1fr 1fr;gap:10px}.community-profile-about>div{border:1px solid var(--line);border-radius:10px;padding:11px}.community-profile-about dt{font-size:9px;color:var(--muted);text-transform:uppercase}.community-profile-about dd{margin:5px 0 0;overflow-wrap:anywhere}.community-profile-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.community-profile-form .community-profile-bio,.community-profile-form button,.community-profile-form .community-avatar-field{grid-column:1/-1}.community-profile-form label{min-width:0}.community-profile-form textarea{width:100%;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text);resize:vertical}
@media(max-width:900px){.community-profile-identity{grid-template-columns:auto minmax(0,1fr)}.community-profile-counts{grid-column:1/-1;padding-top:0;margin-left:130px}.community-profile-overview-grid{grid-template-columns:1fr}}
@media(max-width:680px){.community-profile-cover{height:125px}.community-profile-identity{display:block;text-align:center;margin-top:0;padding:0 14px 16px}.community-profile-avatar-wrap{margin:-46px auto 0;width:92px;height:92px}.community-profile-title{padding-top:8px}.community-profile-hero-meta,.community-profile-counts{justify-content:center}.community-profile-counts{margin:12px 0 0;padding:0}.community-profile-counts>div{min-width:72px;flex:1}.community-profile-pane{padding:16px}.community-profile-form,.community-profile-about,.community-profile-content-summary{grid-template-columns:1fr}.community-profile-nav{padding-inline:10px}}

/* FN19 profile-first Community shell */
body[data-view="community"] .community-layout{max-width:1280px;width:100%}
.community-profile-sticky-bar{position:sticky;top:0;z-index:24;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:14px;padding:10px 14px;margin-bottom:14px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--card) 94%,transparent);backdrop-filter:blur(14px);box-shadow:0 8px 26px rgba(20,35,28,.08)}
.community-sticky-left{display:flex;align-items:center;gap:10px;min-width:0}.community-sticky-left>div{min-width:0}.community-sticky-left b,.community-sticky-left small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.community-sticky-left small{font-size:9px;color:var(--muted);margin-top:2px}.community-sticky-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex:none;background:color-mix(in srgb,var(--accent) 14%,var(--card));color:var(--accent);font-size:11px;font-weight:850;background-size:cover;background-position:center}.community-sticky-avatar.has-image{font-size:0}.community-sticky-actions{justify-self:end}.community-create-wrap{position:relative;justify-self:center}.community-create-button{width:48px;height:48px;border:0;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:white;font-size:30px;font-weight:300;line-height:1;cursor:pointer;box-shadow:0 7px 22px color-mix(in srgb,var(--accent) 28%,transparent);transition:transform .16s,box-shadow .16s}.community-create-button:hover{transform:translateY(-1px) scale(1.03);box-shadow:0 9px 26px color-mix(in srgb,var(--accent) 36%,transparent)}.community-create-menu{position:absolute;top:58px;left:50%;transform:translateX(-50%);width:240px;padding:8px;display:grid;gap:4px;border:1px solid var(--line);border-radius:13px;background:var(--card);box-shadow:0 18px 50px rgba(20,35,28,.18);z-index:30}.community-create-menu button{border:0;background:transparent;color:var(--text);padding:10px 11px;border-radius:9px;text-align:left;cursor:pointer;font-weight:700}.community-create-menu button:hover{background:color-mix(in srgb,var(--accent) 9%,var(--card))}.community-create-menu button span{display:inline-grid;width:24px;text-align:center;color:var(--accent)}
.community-profile-dashboard{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:18px;align-items:start}.community-profile-main{min-width:0}.community-profile-side-menu{display:grid;gap:10px;padding:18px 18px 20px 0;position:sticky;top:76px}.community-profile-side-card{border:1px solid var(--line);border-radius:13px;padding:10px;background:color-mix(in srgb,var(--bg) 45%,var(--card));display:grid;gap:4px}.community-profile-side-card h4{margin:3px 7px 6px;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.community-profile-side-card button{display:flex;justify-content:space-between;gap:8px;align-items:center;border:0;background:transparent;color:var(--text);padding:9px 10px;border-radius:9px;text-align:left;cursor:pointer}.community-profile-side-card button:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 10%,var(--card));color:var(--accent)}.community-profile-side-card button:disabled{opacity:.48;cursor:default}.community-profile-side-card button span{font-size:8px;color:var(--muted)}.community-profile-pane-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.community-profile-context-note{border:1px dashed color-mix(in srgb,var(--accent) 38%,var(--line));border-radius:12px;padding:13px 14px;background:color-mix(in srgb,var(--accent) 6%,var(--card));color:var(--muted);font-size:11px;line-height:1.5;margin-top:12px}.community-profile-main .community-feed-card,.community-profile-main #communityPublishCard,.community-profile-main #communityPromotionCard{box-shadow:none;margin-top:14px}.community-profile-main .community-feed-card{border-radius:13px}.community-profile-main #communityPublishCard,.community-profile-main #communityPromotionCard{margin-bottom:12px}.subscriptions-layout{display:grid;gap:16px;max-width:1280px}.subscriptions-layout .community-plan-card,.subscriptions-layout #communityHouseholdCard{display:block}.subscriptions-layout #communityHouseholdCard.hidden{display:none}
@media(max-width:980px){.community-profile-dashboard{grid-template-columns:1fr}.community-profile-side-menu{position:static;padding:0 18px 20px;grid-template-columns:repeat(3,minmax(0,1fr))}.community-profile-side-card{min-width:0}}
@media(max-width:680px){.community-profile-sticky-bar{grid-template-columns:1fr auto;padding:9px 10px}.community-create-wrap{grid-column:2;grid-row:1}.community-sticky-actions{display:none}.community-create-button{width:44px;height:44px}.community-create-menu{left:auto;right:0;transform:none;width:min(250px,82vw)}.community-profile-side-menu{grid-template-columns:1fr;padding:0 12px 16px}.community-profile-dashboard{gap:8px}.community-profile-main .community-profile-pane{padding:15px}.community-profile-nav{scrollbar-width:none}}
body[data-view="community"] .community-toolbar{display:none}
.community-create-button:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}

/* FN19B follow graph & audience */
.community-audience-field{max-width:320px;margin:12px 0}.community-audience-field small{display:block;color:var(--muted);font-size:9px;margin-top:6px}.community-connection-list{display:grid;gap:9px}.community-connection-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--card)}.community-connection-profile{border:0;background:transparent;color:inherit;display:flex;align-items:center;gap:10px;min-width:0;text-align:left;cursor:pointer}.community-connection-profile>img,.community-connection-profile>span:first-child{width:42px;height:42px;flex:0 0 42px;border-radius:50%;object-fit:cover;background:var(--bg);display:grid;place-items:center;font-size:10px;font-weight:800}.community-connection-profile>span:last-child{min-width:0}.community-connection-profile b,.community-connection-profile small{display:block;overflow-wrap:anywhere}.community-connection-profile small{color:var(--muted);font-size:9px;margin-top:3px}.community-audience-badge{display:inline-flex;font-size:8px;font-weight:800;border-radius:999px;padding:4px 7px;background:var(--bg);color:var(--muted);margin-left:6px}@media(max-width:620px){.community-connection-row{align-items:flex-start;flex-direction:column}.community-connection-row>.ghost{align-self:flex-start}}

/* FN19B personal feed seen state */
.community-new-badge{display:inline-flex;align-items:center;justify-content:center;font-size:8px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:4px 8px;background:color-mix(in srgb,var(--accent) 16%,var(--card));color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 34%,var(--line))}

/* FN19C reactions, comments and saves */
.community-reaction-strip{display:flex;gap:6px;flex-wrap:wrap;padding:10px 0 4px;border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent)}
.community-reaction-button{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);background:color-mix(in srgb,var(--bg) 72%,var(--card));color:var(--text);border-radius:999px;padding:6px 9px;cursor:pointer;font-size:11px;min-width:0}
.community-reaction-button>b{font-size:10px;font-weight:750}.community-reaction-button>small{font-size:9px;color:var(--muted)}
.community-reaction-button.selected{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 12%,var(--card));color:var(--accent)}
.community-social-actions{align-items:center;flex-wrap:wrap}.community-social-actions .selected{border-color:color-mix(in srgb,var(--accent) 50%,var(--line));color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--card))}
.community-comment-panel{margin-top:10px;padding:12px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--bg) 48%,var(--card));border-radius:12px;display:grid;gap:10px}
.community-comment-list{display:grid;gap:8px}.community-comment-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:9px;align-items:start;padding:9px;border:1px solid color-mix(in srgb,var(--line) 78%,transparent);border-radius:11px;background:var(--card)}
.community-comment-avatar{width:34px;height:34px;border-radius:50%;overflow:hidden;background:color-mix(in srgb,var(--accent) 15%,var(--card));display:grid;place-items:center;font-size:10px;font-weight:800;color:var(--accent)}.community-comment-avatar img{width:100%;height:100%;object-fit:cover}
.community-comment-body{min-width:0}.community-comment-body>div{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.community-comment-body b{font-size:11px}.community-comment-body small{font-size:9px;color:var(--muted)}.community-comment-body p{margin:5px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.45}.community-comment-delete{padding:4px 7px;min-width:28px}
.community-comment-empty{font-size:11px;color:var(--muted);padding:8px}.community-comment-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.community-comment-form textarea{width:100%;resize:vertical;min-height:54px;max-height:160px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--text);font:inherit}.community-comment-form .primary{height:40px}
@media(max-width:680px){.community-reaction-button>b{display:none}.community-reaction-button{padding:7px 9px}.community-comment-form{grid-template-columns:1fr}.community-comment-form .primary{width:100%}.community-comment-row{grid-template-columns:30px minmax(0,1fr) auto}.community-comment-avatar{width:30px;height:30px}}

/* FN19D notifications, privacy, blocking and reporting */
.community-notification-badge{display:inline-grid!important;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--accent);color:white!important;font-size:9px!important;font-weight:850}.community-notification-tabs{display:flex;gap:7px;margin:12px 0}.community-notification-tabs button{border:1px solid var(--line);border-radius:999px;padding:7px 11px;background:var(--card);color:var(--text);cursor:pointer;font-weight:700;font-size:10px}.community-notification-tabs button.active{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 10%,var(--card));color:var(--accent)}
.community-notification-list{display:grid;gap:9px}.community-notification-card{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:12px;padding:11px 12px;background:var(--card)}.community-notification-card>div{display:flex;gap:9px;min-width:0}.community-notification-card>div>div{display:grid;gap:2px;min-width:0}.community-notification-card b,.community-notification-card span,.community-notification-card small{overflow-wrap:anywhere}.community-notification-card span{font-size:11px}.community-notification-card small{font-size:9px;color:var(--muted)}.community-notification-card.unread{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:color-mix(in srgb,var(--accent) 6%,var(--card))}.community-notification-card.system{border-style:dashed}.community-notification-dot{width:9px;height:9px;margin-top:4px;border-radius:50%;background:var(--line);flex:0 0 9px}.community-notification-card.unread .community-notification-dot{background:var(--accent)}
.community-notification-preferences{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);display:grid;gap:10px}.community-notification-preferences h4{margin:0}.community-notification-preferences label{display:flex;align-items:center;gap:9px;font-size:11px}.community-notification-preferences input[type=checkbox]{width:auto}
.community-privacy-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.community-privacy-form label{margin:0}.community-privacy-form>.primary{justify-self:start}.community-privacy-toggle{grid-column:1/-1;display:flex!important;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--bg) 50%,var(--card))}.community-privacy-toggle input{width:auto;margin-top:2px}.community-privacy-toggle b,.community-privacy-toggle small{display:block}.community-privacy-toggle small{font-size:9px;color:var(--muted);margin-top:3px}.community-blocked-section{margin-top:20px;padding-top:15px;border-top:1px solid var(--line)}.community-blocked-profiles{display:grid;gap:8px}.community-blocked-profile-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:11px;padding:10px 11px}.community-blocked-profile-row b,.community-blocked-profile-row small{display:block}.community-blocked-profile-row small{font-size:9px;color:var(--muted);margin-top:2px}.community-public-profile-actions{flex-wrap:wrap}.ghost.danger-soft,.community-comment-row .danger-soft{color:color-mix(in srgb,#a23b3b 82%,var(--text));border-color:color-mix(in srgb,#a23b3b 28%,var(--line))}
@media(max-width:680px){.community-privacy-form{grid-template-columns:1fr}.community-notification-card{flex-direction:column}.community-blocked-profile-row{align-items:flex-start;flex-direction:column}}

/* FN19E account context shell */
.account-context-switcher{display:flex;align-items:center;gap:.45rem;padding:.25rem .45rem;border:1px solid var(--border,#d8ded5);border-radius:10px;background:var(--surface,#fff)}
.account-context-switcher label{font-size:.72rem;font-weight:700;opacity:.72;text-transform:uppercase;letter-spacing:.04em}
.account-context-switcher select{min-width:190px;border:0;background:transparent;font-weight:700;outline:none}
.account-context-switcher.offline{border-color:#c99b3c;background:#fff9e9}.account-context-status{display:inline-flex;align-items:center;padding:.18rem .45rem;border-radius:999px;background:#fff0c7;color:#76510a;font-size:.68rem;font-weight:800;letter-spacing:.03em}.account-context-status.hidden{display:none}
.entry-registration-mode{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;border:0;padding:0;margin:0}
.entry-registration-mode legend{grid-column:1/-1;font-weight:700;margin-bottom:.2rem}
.entry-registration-mode label{display:flex;align-items:center;gap:.45rem;padding:.65rem;border:1px solid var(--border,#d8ded5);border-radius:10px;cursor:pointer}
.account-business-upgrade{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border,#e0e5dd)}
@media (max-width:720px){.account-context-switcher label{display:none}.account-context-switcher select{min-width:130px}.entry-registration-mode{grid-template-columns:1fr}}

/* FN19E public-recipe quota */
.community-publication-quota{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;margin:0 0 1rem;padding:.7rem .85rem;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft)}
.community-publication-quota strong{white-space:nowrap}
.community-publication-quota .quota-over{color:var(--danger,#b42318)}
.community-publication-quota #communityPublicationQuotaMessage{flex-basis:100%}
.community-owner-recipe-controls{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.65rem}
.community-owner-recipe-controls select{min-width:9rem}

/* FN20A – Business ad media order + FamilyNexa logo update */
.fn-brand-logo-only,.fn-brand[data-logo-only="1"]{display:flex;align-items:center;justify-content:flex-start;padding-bottom:20px}
.fn-entry-brand.fn-brand-logo-only{padding-bottom:0;margin-bottom:18px}
.brand-logo-image{display:block;width:min(220px,100%);height:auto;object-fit:contain}
body[data-sidebar="compact"] .fn-brand-logo-only .brand-logo-image,body[data-sidebar="compact"] .fn-brand[data-logo-only="1"] .brand-logo-image{width:52px}
.business-ad-options-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.business-ad-options-grid .field{margin:0}
.business-ad-options-grid small{display:block;margin-top:6px}
.business-ad-media-list{display:grid;gap:8px}
 .business-ad-media-item{cursor:grab}
.business-ad-media-item.dragging{opacity:.55;border-style:dashed}
.business-ad-media-item.drop-target{border-color:color-mix(in srgb,var(--accent) 38%,var(--line));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 12%,transparent)}
.business-ad-media-item .business-ad-media-meta{display:grid;gap:3px;min-width:0}
.business-ad-media-item .business-ad-media-meta strong,.business-ad-media-item .business-ad-media-meta small,.business-ad-media-item .business-ad-media-meta span{overflow-wrap:anywhere}
.business-ad-media-item .business-ad-media-badges{display:flex;gap:6px;flex-wrap:wrap}
.business-ad-media-item .business-ad-media-actions{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.business-ad-media-item .compact.active-first{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:color-mix(in srgb,var(--accent) 10%,var(--card));color:var(--accent);font-weight:700}
.business-ad-media-item .drag-handle{font-size:18px;line-height:1;opacity:.7;cursor:grab;padding:0 2px}
.business-ad-media-item[data-media-type="video"] img{background:#101721}
.business-ad-media-item[data-media-first="1"]{border-color:color-mix(in srgb,var(--accent) 35%,var(--line));background:color-mix(in srgb,var(--accent) 6%,var(--card))}
.business-ad-playback-note{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--bg) 72%,var(--card));font-size:12px;color:var(--muted)}
.business-ad-carousel[data-playback="manual"] .business-carousel-dots,.business-ad-carousel[data-playback="manual"] .business-carousel-arrow{opacity:1}
.business-ad-carousel[data-playback="auto"] .business-carousel-dots,.business-ad-carousel[data-playback="auto"] .business-carousel-arrow{opacity:.92}
.recipe-sponsored-card .business-ad-media-image,.recipe-sponsored-card .business-ad-media-frame>img,.recipe-sponsored-card .business-ad-slide>img{object-fit:contain!important;background:#fff;height:100%;image-rendering:auto}
.recipe-sponsored-card .business-ad-media-frame{background:#fff}
.business-ad-media-single[data-placement="recipe"] .business-ad-media-frame,.business-ad-carousel[data-placement="recipe"] .business-ad-media-frame{aspect-ratio:1/1;max-height:min(340px,70vw)}
.business-ad-preview-stage.mobile .recipe-sponsored-card .business-ad-media-frame{aspect-ratio:1/1}
@media(max-width:780px){.business-ad-options-grid{grid-template-columns:1fr}.brand-logo-image{width:min(200px,100%)}}

/* FN19E hotfix – context-aware subscription management */
.family-subscription-resolution{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}
.family-subscription-resolution>div,.business-subscription-status>div{padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--bg) 72%,var(--card))}
.family-subscription-resolution span,.business-subscription-status span{display:block;color:var(--muted);font-size:11px;margin-bottom:4px}
.family-subscription-resolution b,.business-subscription-status b{font-size:13px;color:var(--ink)}
.business-subscription-summary-card{margin-bottom:14px}
.business-plan-summary-grid{grid-template-columns:minmax(0,1fr)}
@media(max-width:780px){.family-subscription-resolution{grid-template-columns:1fr}}

/* FN20C – Business workspace information architecture */
.business-context-nav{display:grid;gap:3px;margin:0 0 14px}.business-context-nav .nav{margin:0}.business-context-nav[hidden],#businessNavLabel[hidden]{display:none!important}
.business-home-dashboard{display:grid;gap:16px}.business-home-identity{display:flex;align-items:center;justify-content:space-between;gap:18px}.business-home-identity h2{margin:4px 0 6px}.business-home-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.business-home-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.business-home-list{display:grid;gap:8px}.business-home-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.business-home-row:last-child{border-bottom:0}.business-home-row b,.business-home-row small{display:block}.business-home-row small{color:var(--muted);margin-top:3px}.business-home-metric{display:flex;align-items:baseline;gap:8px}.business-home-metric b{font-size:34px;color:var(--ink)}.business-home-metric span{color:var(--muted)}
.business-ads-page,.business-team-page,.business-profile-page{display:grid;gap:16px}.business-profile-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(320px,1.2fr);gap:16px}.business-team-summary{display:flex;justify-content:space-between;align-items:center;gap:16px}.business-team-summary h3{font-size:28px;margin:4px 0}.business-ads-page>.card{margin-top:0}
@media(max-width:1050px){.business-home-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.business-home-detail-grid,.business-profile-grid{grid-template-columns:1fr}}
@media(max-width:720px){.business-home-kpi-grid{grid-template-columns:1fr}.business-home-identity,.business-team-summary{align-items:flex-start;flex-direction:column}}

/* FN20C – Business Ads campaign workspace */
.business-ads-page{display:grid;gap:14px}.business-ads-stickybar{position:sticky;top:0;z-index:18;display:grid;grid-template-columns:auto minmax(220px,1fr) auto minmax(160px,220px);gap:10px;align-items:end;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--card) 94%,transparent);backdrop-filter:blur(12px);box-shadow:var(--shadow)}.business-ads-sticky-actions{display:flex;gap:8px;flex-wrap:wrap}.business-status-filters{display:flex;gap:8px;flex-wrap:wrap}.status-filter{display:flex;align-items:center;gap:6px;padding:7px 9px;border:1px solid var(--line);border-radius:999px;font-size:11px;font-weight:800;background:var(--card);white-space:nowrap}.status-filter input{width:auto;margin:0}.status-filter.active{color:#25743a;background:color-mix(in srgb,#38a853 10%,var(--card));border-color:color-mix(in srgb,#38a853 35%,var(--line))}.status-filter.draft{color:#8a6700;background:color-mix(in srgb,#e8b42a 12%,var(--card));border-color:color-mix(in srgb,#e8b42a 38%,var(--line))}.status-filter.inactive{color:#a33434;background:color-mix(in srgb,#dc5151 10%,var(--card));border-color:color-mix(in srgb,#dc5151 34%,var(--line))}.business-ads-sort span{display:block;font-size:10px;color:var(--muted);margin-bottom:4px}.business-ads-list-card{padding:10px}.business-campaign-card{padding:0;overflow:hidden;background:var(--card)}.business-campaign-summary{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(4,minmax(90px,.55fr)) auto;gap:12px;align-items:center;padding:12px 14px;cursor:default}.business-campaign-summary:hover{background:color-mix(in srgb,var(--accent) 4%,var(--card))}.business-campaign-main b{display:block;font-size:14px}.business-campaign-main small{display:block;color:var(--muted);margin-top:3px}.business-campaign-metric span{display:block;font-size:9px;color:var(--muted);text-transform:uppercase}.business-campaign-metric b{font-size:12px}.business-status-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:800}.business-status-pill:before{content:"";width:7px;height:7px;border-radius:50%}.business-status-pill.active{color:#25743a;background:color-mix(in srgb,#38a853 12%,var(--card))}.business-status-pill.active:before{background:#38a853}.business-status-pill.draft{color:#8a6700;background:color-mix(in srgb,#e8b42a 14%,var(--card))}.business-status-pill.draft:before{background:#e8b42a}.business-status-pill.inactive{color:#a33434;background:color-mix(in srgb,#dc5151 12%,var(--card))}.business-status-pill.inactive:before{background:#dc5151}.business-campaign-toggle{width:36px;height:36px;border:1px solid var(--line);background:var(--card);border-radius:9px;cursor:pointer;font-size:18px;transition:transform .16s}.business-campaign-card.open .business-campaign-toggle{transform:rotate(180deg)}.business-campaign-body{display:none;border-top:1px solid var(--line);padding:8px 12px 12px;background:color-mix(in srgb,var(--bg) 58%,var(--card))}.business-campaign-card.open .business-campaign-body{display:block}.business-campaign-card.drop-target{outline:3px solid color-mix(in srgb,var(--accent) 30%,transparent);background:color-mix(in srgb,var(--accent) 7%,var(--card))}.business-ad-list-head,.business-ad-row.compact{display:grid;grid-template-columns:minmax(210px,1.4fr) 110px 95px 95px 95px minmax(190px,auto);gap:10px;align-items:center}.business-ad-list-head{padding:7px 8px;font-size:9px;color:var(--muted);font-weight:800;text-transform:uppercase}.business-ad-row.compact{margin-top:5px;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--card)}.business-ad-row.compact.dragging{opacity:.5}.business-ad-name{display:flex;gap:9px;align-items:center;min-width:0}.business-ad-name .business-ad-thumb{float:none;margin:0;flex:none}.business-ad-name b,.business-ad-name small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.business-ad-quick{font-size:11px}.business-ad-actions{display:flex;gap:5px;justify-content:flex-end;flex-wrap:wrap}.business-ad-actions button{padding:6px 8px}.business-editor-dialog{width:min(620px,94vw);padding:0}.business-editor-dialog form,.business-ad-editor-dialog form{padding:24px}.business-ad-editor-dialog{width:min(1050px,96vw);max-width:1050px}.business-ad-stats-dialog{width:min(820px,94vw);padding:24px}.business-ad-stats-content{display:grid;gap:14px}.business-ad-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.business-ad-stat{padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--bg)}.business-ad-stat span{display:block;font-size:9px;color:var(--muted)}.business-ad-stat b{font-size:18px}.business-ad-history{padding-top:12px;border-top:1px solid var(--line)}
@media(max-width:1000px){.business-ads-stickybar{grid-template-columns:1fr 1fr}.business-campaign-summary{grid-template-columns:minmax(180px,1fr) repeat(2,minmax(80px,.5fr)) auto}.business-campaign-summary .business-campaign-metric:nth-of-type(3),.business-campaign-summary .business-campaign-metric:nth-of-type(4){display:none}.business-ad-list-head{display:none}.business-ad-row.compact{grid-template-columns:1fr 1fr}.business-ad-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:680px){.business-ads-stickybar{grid-template-columns:1fr}.business-campaign-summary{grid-template-columns:1fr auto}.business-campaign-metric{display:none!important}.business-ad-row.compact{grid-template-columns:1fr}.business-ad-actions{grid-column:auto}}

/* FN20D – campaign card contrast and drag/drop reliability polish */
.business-campaign-card{
  border-color:color-mix(in srgb,var(--accent) 24%,var(--line));
  background:color-mix(in srgb,var(--accent) 2.5%,var(--card));
  box-shadow:0 2px 9px color-mix(in srgb,var(--ink) 8%,transparent);
}
.business-campaign-card+.business-campaign-card{margin-top:3px}
.business-campaign-summary{
  background:color-mix(in srgb,var(--accent) 4.5%,var(--card));
  border-left:4px solid color-mix(in srgb,var(--accent) 52%,var(--line));
}
.business-campaign-summary:hover{background:color-mix(in srgb,var(--accent) 9%,var(--card))}
.business-campaign-card.open{
  border-color:color-mix(in srgb,var(--accent) 48%,var(--line));
  box-shadow:0 5px 16px color-mix(in srgb,var(--ink) 12%,transparent);
}
.business-campaign-card.open .business-campaign-summary{
  background:color-mix(in srgb,var(--accent) 8%,var(--card));
  border-left-color:var(--accent);
}
.business-campaign-card.open .business-campaign-body{
  border-top-color:color-mix(in srgb,var(--accent) 24%,var(--line));
  background:color-mix(in srgb,var(--accent) 2%,var(--bg));
}
.business-campaign-card.drop-target{
  outline:3px solid color-mix(in srgb,var(--accent) 58%,transparent);
  border-color:var(--accent);
  background:color-mix(in srgb,var(--accent) 13%,var(--card));
}

/* FN20A campaign placement scope */
.business-placement-fieldset{margin:0;padding:9px 10px 10px;border:1px solid var(--line);border-radius:11px;min-width:0;background:color-mix(in srgb,var(--card) 94%,var(--bg))}.business-placement-fieldset legend{padding:0 5px;font-size:10px;font-weight:800;color:var(--text)}.business-placement-fieldset>small{display:block;margin-top:7px;font-size:9px;line-height:1.4;color:var(--muted)}.business-placement-options{display:flex;gap:7px;flex-wrap:wrap}.business-placement-options label{display:flex;align-items:center;gap:6px;padding:7px 9px;border:1px solid var(--line);border-radius:999px;background:var(--card);font-size:10px;font-weight:800;cursor:pointer}.business-placement-options input{width:auto;margin:0}.business-placement-options label:has(input:checked){border-color:color-mix(in srgb,var(--accent) 48%,var(--line));background:color-mix(in srgb,var(--accent) 9%,var(--card));color:var(--accent)}.business-ad-preview-controls [data-ad-preview-placement]:disabled{opacity:.36;cursor:not-allowed;filter:grayscale(.6)}.business-ad-placement-note{display:block;margin:6px 0 9px;font-size:9px;color:var(--muted)}

/* FN20C Business Analytics + Audience Targeting */
.business-analytics-hub{gap:18px}
.business-analytics-panel{border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));background:color-mix(in srgb,var(--card) 96%,var(--accent) 4%);box-shadow:0 8px 22px #173b3910;border-radius:14px}
.business-analytics-panel>.card-heading{padding-bottom:8px;border-bottom:1px solid color-mix(in srgb,var(--accent) 16%,var(--line))}
.business-analytics-panel h3{font-size:18px;line-height:1.25}
.business-analytics-panel .metric-value{font-size:26px;line-height:1.15}
.business-analytics-panel .metric-label,.business-analytics-panel th,.business-analytics-panel td,.business-analytics-chart-label{font-size:13px}
.business-analytics-panel .meta,.business-analytics-panel small,.analytics-plan-note{font-size:12px;line-height:1.45}
.business-analytics-panel .analytics-table th,.business-analytics-panel .analytics-table td{font-size:12px;padding:10px 9px}
.analytics-filter-controls label{font-size:12px}
.analytics-bar-column small{font-size:11px}
.analytics-chart-empty,.analytics-locked{font-size:12px}
.business-analytics-legend{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:10px 0 0;font-size:12px;font-weight:750;color:var(--ink)}
.business-analytics-legend span{display:inline-flex;align-items:center;gap:7px}
.trend-swatch{display:inline-block;width:12px;height:12px;border-radius:3px;background:var(--accent)}
.trend-swatch.clicks{background:#d7a742}.trend-swatch.impressions{background:var(--accent)}
.analytics-bar.impressions{background:var(--accent)}.analytics-bar.clicks{background:#d7a742}
.analytics-funnel{gap:12px}.business-funnel-stage{display:grid;gap:6px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--card)}
.funnel-stage-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.funnel-stage-head span{font-size:13px;font-weight:750}.funnel-stage-head b{font-size:16px}.business-funnel-stage small{font-size:11px;color:var(--muted)}
.business-funnel-stage[data-stage="impression"]{border-left:4px solid #2a8c86}.business-funnel-stage[data-stage="impression"] .analytics-funnel-fill{background:#2a8c86}
.business-funnel-stage[data-stage="click"]{border-left:4px solid #d7a742}.business-funnel-stage[data-stage="click"] .analytics-funnel-fill{background:#d7a742}
.business-funnel-stage[data-stage="intent"]{border-left:4px solid #7b6fc2}.business-funnel-stage[data-stage="intent"] .analytics-funnel-fill{background:#7b6fc2}
.business-funnel-stage[data-stage="conversion"]{border-left:4px solid #4d9b5f}.business-funnel-stage[data-stage="conversion"] .analytics-funnel-fill{background:#4d9b5f}
.business-placement-analytics-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}.business-placement-analytics-card{padding:14px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));border-radius:12px;background:var(--card);box-shadow:0 5px 14px #173b390b}.business-placement-analytics-card>div:first-child{display:flex;justify-content:space-between;gap:10px;align-items:baseline;margin-bottom:12px}.business-placement-analytics-card>div:first-child b{font-size:14px}.business-placement-analytics-card dl{margin:0;display:grid;gap:7px}.business-placement-analytics-card dl div{display:flex;justify-content:space-between;gap:8px;padding-top:6px;border-top:1px solid var(--line)}.business-placement-analytics-card dt{font-size:11px;color:var(--muted)}.business-placement-analytics-card dd{font-size:12px;font-weight:800;margin:0}
.business-analytics-audience{display:grid;gap:14px;margin-top:12px}.audience-summary-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.audience-summary-grid>div{padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}.audience-summary-grid span{display:block;font-size:11px;color:var(--muted)}.audience-summary-grid b{display:block;font-size:18px;margin-top:4px}.audience-dimensions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.audience-breakdown,.audience-combined{padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--card)}.audience-breakdown h4,.audience-combined h4{margin:0 0 9px;font-size:14px}.audience-breakdown-grid{display:grid;gap:6px}.audience-breakdown-row{display:grid;grid-template-columns:minmax(120px,1.2fr) repeat(3,minmax(80px,.6fr));gap:8px;align-items:center;padding:7px 8px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.audience-breakdown-row b{font-size:12px}.audience-breakdown-row span{font-size:11px;color:var(--muted)}
.business-audience-fieldset{border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));border-radius:12px;padding:14px;display:grid;gap:12px;background:color-mix(in srgb,var(--card) 96%,var(--accent) 4%)}.business-audience-fieldset legend{font-size:13px;font-weight:800;padding:0 6px}.business-audience-master{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:750}.business-audience-master input{width:auto}.business-audience-custom{display:grid;gap:12px}.business-audience-custom.disabled{opacity:.48}.field-caption{display:block;font-size:11px;font-weight:800;color:var(--muted);margin-bottom:6px}.business-audience-age-options,.business-audience-interest-options{display:flex;gap:7px;flex-wrap:wrap}.business-audience-age-options label,.business-audience-interest-options label{display:flex;align-items:center;gap:5px;padding:7px 9px;border:1px solid var(--line);border-radius:999px;background:var(--card);font-size:11px}.business-audience-age-options input,.business-audience-interest-options input{width:auto}.business-audience-estimate{margin:0;padding:10px 12px;border-radius:9px;background:var(--bg);font-size:12px;font-weight:700;color:var(--ink)}
@media(max-width:1050px){.business-placement-analytics-cards{grid-template-columns:1fr}.audience-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.audience-dimensions{grid-template-columns:1fr}}
@media(max-width:680px){.audience-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.audience-breakdown-row{grid-template-columns:1fr 1fr}.business-analytics-panel h3{font-size:17px}}
/* Preserve FN20D campaign separation after the FN20C analytics layer. */
.business-campaign-card.open{border-color:color-mix(in srgb,var(--accent) 48%,var(--line));box-shadow:0 5px 16px color-mix(in srgb,var(--ink) 12%,transparent)}

/* FN20D – Business Analytics navigation, semantic metric colors and wide placement rows */
.business-analytics-hub{
  --analytics-impression:#2a8c86;
  --analytics-click:#d7a742;
  --analytics-intent:#7b6fc2;
  --analytics-conversion:#4f73c8;
}
.business-analytics-quicknav{position:sticky;top:0;z-index:22;display:flex;align-items:center;gap:8px;overflow-x:auto;padding:10px 12px;margin-bottom:2px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--card) 93%,transparent);backdrop-filter:blur(14px);box-shadow:0 8px 24px rgba(20,35,28,.10);scrollbar-width:thin}
.business-analytics-quicknav button{flex:none;border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:999px;padding:8px 11px;font-size:12px;font-weight:800;cursor:pointer;white-space:nowrap}
.business-analytics-quicknav button:hover,.business-analytics-quicknav button.active{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 11%,var(--card));color:var(--accent)}
.analytics-anchor-section{scroll-margin-top:86px}
.trend-swatch.impressions{background:var(--analytics-impression)}
.trend-swatch.clicks{background:var(--analytics-click)}
.analytics-bar.impressions{background:var(--analytics-impression)}
.analytics-bar.clicks{background:var(--analytics-click)}
.business-funnel-stage[data-stage="impression"]{border-left-color:var(--analytics-impression)}
.business-funnel-stage[data-stage="impression"] .analytics-funnel-fill{background:var(--analytics-impression)}
.business-funnel-stage[data-stage="click"]{border-left-color:var(--analytics-click)}
.business-funnel-stage[data-stage="click"] .analytics-funnel-fill{background:var(--analytics-click)}
.business-funnel-stage[data-stage="intent"]{border-left-color:var(--analytics-intent)}
.business-funnel-stage[data-stage="intent"] .analytics-funnel-fill{background:var(--analytics-intent)}
.business-funnel-stage[data-stage="conversion"]{border-left-color:var(--analytics-conversion)}
.business-funnel-stage[data-stage="conversion"] .analytics-funnel-fill{background:var(--analytics-conversion)}
.business-analytics-placement-panel{overflow:hidden}
.business-placement-analytics-cards{display:grid;grid-template-columns:1fr;gap:10px;margin-top:12px}
.business-placement-analytics-card{display:grid;grid-template-columns:minmax(200px,1.05fr) minmax(0,3fr);gap:18px;align-items:center;padding:15px 18px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-left:4px solid color-mix(in srgb,var(--accent) 62%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--accent) 3%,var(--card));box-shadow:0 5px 14px rgba(23,59,57,.07);min-width:0}
.business-placement-analytics-card>div:first-child{display:grid;gap:5px;align-content:center;margin:0;min-width:0}
.business-placement-analytics-card>div:first-child b{font-size:15px;color:var(--ink)}
.business-placement-analytics-card dl{margin:0;display:grid;grid-template-columns:repeat(6,minmax(90px,1fr));gap:8px;min-width:0}
.business-placement-analytics-card dl div{display:grid;gap:4px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:var(--bg);min-width:0}
.business-placement-analytics-card dt{font-size:11px;color:var(--muted);white-space:nowrap}
.business-placement-analytics-card dd{font-size:13px;font-weight:850;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:980px){.business-placement-analytics-card{grid-template-columns:1fr}.business-placement-analytics-card dl{grid-template-columns:repeat(3,minmax(90px,1fr))}}
@media(max-width:680px){.business-analytics-quicknav{top:0;margin-left:-2px;margin-right:-2px}.business-placement-analytics-card dl{grid-template-columns:repeat(2,minmax(90px,1fr))}}

/* FN20E — public Business profile */
.business-public-profile-editor{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.8fr);gap:18px;align-items:start;margin-top:18px}
.business-public-profile-form-card,.business-public-profile-preview,.business-profile-stores-card{border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));box-shadow:0 10px 28px rgba(15,45,52,.08)}
.business-public-profile-preview{position:sticky;top:92px;max-height:calc(100vh - 118px);overflow:auto}
.business-profile-visibility{display:flex;flex-wrap:wrap;gap:10px 18px;padding:14px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--accent) 5%,var(--panel))}
.business-profile-visibility label{display:flex;align-items:center;gap:8px;font-size:13px}
.business-profile-store-list{display:grid;gap:10px;margin-top:16px}
.business-profile-store-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--border));border-left:4px solid color-mix(in srgb,var(--accent) 72%,transparent);border-radius:14px;background:color-mix(in srgb,var(--accent) 4%,var(--panel))}
.business-profile-store-row>.business-store-card-copy{min-width:0}.business-profile-store-row>.business-store-actions{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:nowrap;flex:0 0 auto}.business-profile-store-row small{color:var(--muted);overflow-wrap:anywhere}
.business-public-profile-preview-stage,.business-public-profile-viewer{min-width:0}
.business-public-profile-viewer{max-width:1120px;margin:0 auto;padding:8px 0 36px}
.business-public-profile-card{overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--border));border-radius:20px;background:var(--panel);box-shadow:0 14px 36px rgba(15,45,52,.10)}
.business-public-profile-hero{position:relative;min-height:210px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 18%,var(--panel)),color-mix(in srgb,var(--accent) 5%,var(--panel)))}
.business-public-cover{width:100%;height:180px;object-fit:cover;display:block}.business-public-cover.placeholder{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 30%,var(--panel)),color-mix(in srgb,var(--accent) 8%,var(--panel)))}
.business-public-profile-identity{display:flex;gap:16px;align-items:flex-end;padding:0 22px 18px;margin-top:-42px;position:relative}.business-public-profile-identity>div:last-child{min-width:0}.business-public-profile-identity h2{margin:2px 0 6px;font-size:clamp(22px,3vw,34px)}
.business-public-logo{width:88px;height:88px;border-radius:22px;object-fit:cover;border:4px solid var(--panel);box-shadow:0 8px 20px rgba(0,0,0,.14);background:var(--panel);flex:0 0 auto}.business-public-logo.placeholder{display:grid;place-items:center;font-size:34px;font-weight:800;color:var(--accent)}
.business-public-profile-body{display:grid;gap:18px;padding:22px}.business-public-profile-body section{padding:16px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--accent) 2.5%,var(--panel))}.business-public-profile-body h3{margin:0 0 10px}
.business-public-actions{display:flex;flex-wrap:wrap;gap:8px}.business-public-social{font-size:13px}.business-public-stores{display:grid;gap:9px}.business-public-store{display:grid;gap:3px;padding:11px 12px;border-radius:12px;background:color-mix(in srgb,var(--accent) 6%,var(--panel));border:1px solid color-mix(in srgb,var(--accent) 18%,var(--border))}
.business-public-mini-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px}.business-public-mini-card{text-align:left;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--panel);color:inherit}.business-public-mini-card b,.business-public-mini-card small{display:block}
.business-sponsor-link{border:0;padding:0;background:transparent;color:var(--accent);font:inherit;font-weight:700;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.business-sponsor-link:hover{filter:brightness(.85)}
.business-audience-profile-defaults{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 14px}.business-audience-profile-defaults small{color:var(--muted);flex:1 1 260px}
@media(max-width:980px){.business-public-profile-editor{grid-template-columns:1fr}.business-public-profile-preview{position:static;max-height:none}}
@media(max-width:640px){.business-public-profile-identity{align-items:flex-start;padding:0 14px 14px}.business-public-logo{width:72px;height:72px;border-radius:18px}.business-public-profile-body{padding:14px}.business-profile-store-row{align-items:flex-start;flex-direction:column}.business-profile-store-row .business-store-actions{width:100%}.business-profile-store-row .business-store-actions button{flex:0 1 auto}.business-profile-store-row .business-store-delete-action{margin-left:auto}}

/* FN20F: owner preview and sticky business-profile actions */
.business-profile-owner-actions{position:sticky;top:12px;z-index:24;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--accent) 38%,var(--border));border-left:5px solid var(--accent);border-radius:15px;background:color-mix(in srgb,var(--panel) 94%,var(--accent) 6%);box-shadow:0 12px 28px rgba(15,45,52,.14);backdrop-filter:blur(12px)}
.business-profile-owner-actions-copy{display:grid;grid-template-columns:auto auto;align-items:center;justify-content:start;gap:3px 10px}.business-profile-owner-actions-copy b{font-size:14px}.business-profile-owner-actions-copy>span:last-child{grid-column:1/-1;font-size:12px;color:var(--muted)}
.business-profile-publication-status{display:inline-flex;align-items:center;gap:7px;width:max-content;padding:5px 10px;border:1px solid var(--border);border-radius:999px;font-size:12px;font-weight:800;line-height:1;background:var(--panel)}
.business-profile-publication-status-dot{width:9px;height:9px;border-radius:50%;display:inline-block;box-shadow:0 0 0 3px rgba(120,130,140,.12)}
.business-profile-publication-status.published{border-color:color-mix(in srgb,#22a06b 55%,var(--border));background:color-mix(in srgb,#22a06b 12%,var(--panel));color:#147a50}.business-profile-publication-status.published .business-profile-publication-status-dot{background:#22a06b;box-shadow:0 0 0 3px rgba(34,160,107,.16)}
.business-profile-publication-status.unpublished{border-color:color-mix(in srgb,#7b8794 50%,var(--border));background:color-mix(in srgb,#7b8794 9%,var(--panel));color:var(--muted)}.business-profile-publication-status.unpublished .business-profile-publication-status-dot{background:#8b96a3}
.business-profile-owner-actions-buttons{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.business-public-preview-banner{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 0 14px;padding:10px 14px;border:1px solid color-mix(in srgb,#d49a19 54%,var(--border));border-radius:14px;background:color-mix(in srgb,#f5c451 17%,var(--panel));font-weight:800;letter-spacing:.035em;font-size:12px}
.business-public-preview-banner.published{border-color:color-mix(in srgb,var(--accent) 48%,var(--border));background:color-mix(in srgb,var(--accent) 10%,var(--panel))}
#businessPublicProfilePreviewBadge.preview{border-color:color-mix(in srgb,#d49a19 60%,var(--border));background:color-mix(in srgb,#f5c451 20%,var(--panel));color:var(--text)}
@media(max-width:720px){.business-profile-owner-actions{top:8px;align-items:flex-start;flex-direction:column}.business-profile-owner-actions-buttons{width:100%;display:grid;grid-template-columns:1fr 1fr}.business-profile-owner-actions-buttons #businessProfilePublishToggle{grid-column:1/-1}.business-profile-owner-actions-buttons button{width:100%}}

/* FN20H — unified personal & Business profile system */
.unified-profile-shell{overflow:visible;min-width:0}
.unified-profile-hero{position:relative;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 34%,var(--border));border-radius:20px 20px 0 0;background:var(--panel)}
.unified-profile-cover{height:190px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 30%,var(--panel)),color-mix(in srgb,var(--accent) 7%,var(--panel)));background-image:linear-gradient(90deg,rgba(18,35,31,.18),rgba(18,35,31,.03)),var(--profile-cover);background-position:center;background-size:cover}
.unified-profile-identity{display:flex;align-items:flex-end;gap:18px;padding:0 24px 20px;margin-top:-48px;position:relative;min-width:0}
.unified-profile-identity>div{min-width:0}.unified-profile-identity h2{font-size:clamp(24px,3.2vw,36px);margin:3px 0 5px}.unified-profile-identity p{margin:0 0 4px;overflow-wrap:anywhere}
.unified-profile-avatar{width:96px;height:96px;border-radius:24px;object-fit:cover;flex:0 0 auto;border:5px solid var(--panel);background:var(--panel);box-shadow:0 10px 24px rgba(20,35,28,.16)}
.unified-profile-avatar.fallback{display:grid;place-items:center;font-weight:900;font-size:32px;color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--panel))}
.unified-profile-local-nav{position:sticky;top:0;z-index:23;display:flex;gap:8px;overflow-x:auto;padding:10px 12px;border:1px solid color-mix(in srgb,var(--accent) 34%,var(--border));border-top:0;background:color-mix(in srgb,var(--panel) 94%,var(--accent) 6%);backdrop-filter:blur(12px);box-shadow:0 8px 20px rgba(20,35,28,.09);scrollbar-width:thin}
.unified-profile-local-nav button{flex:none;border:1px solid var(--border);border-radius:999px;background:var(--panel);padding:8px 12px;color:var(--text);font-weight:800;white-space:nowrap;cursor:pointer}
.unified-profile-local-nav button.active,.unified-profile-local-nav button:hover{border-color:color-mix(in srgb,var(--accent) 62%,var(--border));background:color-mix(in srgb,var(--accent) 12%,var(--panel));color:var(--accent)}
.unified-profile-body{display:grid;gap:18px;padding:20px 0 4px;min-width:0}
.profile-panel{min-width:0;padding:20px 22px;border:1px solid color-mix(in srgb,var(--accent) 34%,var(--border));border-left:5px solid color-mix(in srgb,var(--accent) 74%,var(--border));border-radius:16px;background:var(--surface-panel);box-shadow:0 9px 24px rgba(20,35,28,.11);overflow-wrap:anywhere}
.profile-panel>h3,.profile-panel>h4{margin:0 0 10px;font-size:17px}.profile-panel p{font-size:14px;line-height:1.55}.profile-panel.unified-profile-wide{grid-column:1/-1}
.unified-profile-home-grid,.business-profile-home-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.unified-profile-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(90px,1fr));gap:9px;margin:10px 0}.unified-profile-stat-grid>div{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--border);border-radius:11px;background:var(--panel);min-width:0}.unified-profile-stat-grid b{font-size:19px}.unified-profile-stat-grid span{font-size:12px;color:var(--muted)}
.community-profile-pane.profile-panel{margin-bottom:14px}.community-profile-nav.unified-profile-local-nav{border-radius:0 0 14px 14px;margin-bottom:16px}
.unified-business-profile-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:18px;align-items:start}.unified-business-profile-layout>main{min-width:0}.business-profile-owner-menu{position:sticky;top:62px;display:grid;gap:8px}.business-profile-owner-menu button{width:100%;text-align:left;border:1px solid var(--border);border-radius:10px;background:var(--panel);padding:9px 11px;font-weight:750;cursor:pointer}.business-profile-owner-menu button:hover{border-color:var(--accent);color:var(--accent)}
.business-profile-feed-grid,.business-profile-offers-grid,.business-profile-recipes-grid,.business-profile-ads-grid,.business-profile-products-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.business-profile-content-card{display:grid;gap:6px;padding:14px;border:1px solid color-mix(in srgb,var(--accent) 26%,var(--border));border-radius:13px;background:var(--panel);min-width:0}.business-profile-content-card b{font-size:15px}.business-profile-content-card p{margin:0;color:var(--muted)}
.business-profile-gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.business-profile-gallery-grid figure{margin:0;border:1px solid color-mix(in srgb,var(--accent) 25%,var(--border));border-radius:13px;overflow:hidden;background:var(--panel)}.business-profile-gallery-grid img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.business-profile-gallery-grid figcaption{padding:9px 11px;font-size:13px;overflow-wrap:anywhere}.business-profile-empty-state{display:grid;gap:4px;padding:20px;border:1px dashed color-mix(in srgb,var(--accent) 42%,var(--border));border-radius:12px;background:color-mix(in srgb,var(--accent) 3%,var(--panel));color:var(--muted)}.business-profile-empty-state b{color:var(--text)}
@media(max-width:900px){.unified-business-profile-layout{grid-template-columns:1fr}.business-profile-owner-menu{position:static}.unified-profile-home-grid,.business-profile-home-grid{grid-template-columns:1fr}}
@media(max-width:640px){.unified-profile-cover{height:145px}.unified-profile-identity{align-items:flex-start;padding:0 14px 15px;margin-top:-36px}.unified-profile-avatar{width:74px;height:74px;border-radius:19px}.unified-profile-body{padding-top:14px}.profile-panel{padding:16px 15px}.unified-profile-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.unified-profile-local-nav{top:0;margin-left:-2px;margin-right:-2px}.business-profile-feed-grid,.business-profile-offers-grid,.business-profile-recipes-grid,.business-profile-ads-grid,.business-profile-products-grid,.business-profile-gallery-grid{grid-template-columns:1fr}}

/* FN20H — personal Community profile readability and navigation refinement */
.community-profile-dashboard{display:block;min-width:0}
.community-profile-main{width:100%;max-width:none;min-width:0}
.community-profile-main .community-profile-pane{width:100%;max-width:none}
.personal-profile-sticky-nav{top:0;z-index:42;display:flex;align-items:center;justify-content:space-between;gap:12px;overflow:visible;padding:10px 14px;border-radius:0 0 16px 16px;background:color-mix(in srgb,var(--panel) 96%,var(--accent) 4%);box-shadow:0 10px 28px rgba(20,35,28,.14)}
.community-profile-primary-tabs{display:flex;gap:8px;overflow-x:auto;min-width:0;flex:1;scrollbar-width:thin}
.community-profile-settings-menu{position:relative;flex:0 0 auto}
.community-profile-settings-menu summary{list-style:none;cursor:pointer;border:1px solid color-mix(in srgb,var(--accent) 38%,var(--border));border-radius:999px;padding:8px 12px;background:var(--panel);font-weight:800;white-space:nowrap;color:var(--text)}
.community-profile-settings-menu summary::-webkit-details-marker{display:none}
.community-profile-settings-popover{position:absolute;right:0;top:calc(100% + 8px);z-index:60;display:grid;gap:5px;min-width:210px;padding:9px;border:1px solid var(--line);border-radius:13px;background:var(--card);box-shadow:0 18px 44px rgba(20,35,28,.20)}
.community-profile-settings-popover button{width:100%;text-align:left;border:0;border-radius:9px;background:transparent;color:var(--text);padding:9px 10px;font-weight:750;cursor:pointer}
.community-profile-settings-popover button:hover{background:color-mix(in srgb,var(--accent) 10%,var(--panel));color:var(--accent)}
.community-profile-counts{align-items:stretch}
.community-profile-count-button{min-width:88px;text-align:center;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));border-radius:12px;padding:9px 11px;background:var(--card);color:var(--text);cursor:pointer;box-shadow:0 4px 12px rgba(20,35,28,.06)}
.community-profile-count-button:hover,.community-profile-count-button:focus-visible{border-color:color-mix(in srgb,var(--accent) 65%,var(--line));background:color-mix(in srgb,var(--accent) 10%,var(--card));outline:none}
.community-profile-count-button b,.community-profile-count-button span{display:block}.community-profile-count-button b{font-size:20px}.community-profile-count-button span{font-size:10px;color:var(--muted);margin-top:2px}
.community-profile-pane.profile-panel{padding:24px 26px;border-color:color-mix(in srgb,var(--accent) 42%,var(--border));border-left-width:6px;background:var(--surface-panel);box-shadow:0 11px 28px rgba(20,35,28,.13)}
.community-profile-main .community-feed-card{width:100%;max-width:none;border:1px solid color-mix(in srgb,var(--accent) 34%,var(--line));background:color-mix(in srgb,var(--accent) 2%,var(--card));box-shadow:0 7px 18px rgba(20,35,28,.07)}
.community-feed-list{width:100%}
.community-post{grid-template-columns:minmax(0,1fr);width:100%;gap:14px;padding:18px;border-color:color-mix(in srgb,var(--accent) 30%,var(--line));box-shadow:0 5px 16px rgba(20,35,28,.06)}
.community-reaction-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:12px 0 4px;border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent)}
.community-reaction-grid .community-reaction-button{width:100%;justify-content:center;border-radius:11px;padding:9px 10px;font-size:12px;background:color-mix(in srgb,var(--bg) 58%,var(--card))}
.community-reaction-button>b{display:inline;font-size:11px;font-weight:800}.community-reaction-button>small{font-size:10px}
.community-post-secondary-actions{justify-content:flex-start;padding-top:10px;margin-top:2px;border-top:1px dashed color-mix(in srgb,var(--line) 78%,transparent)}
.community-post-secondary-actions button{min-height:38px}
@media(max-width:680px){.personal-profile-sticky-nav{align-items:stretch;gap:8px;padding:8px}.community-profile-primary-tabs{padding-bottom:2px}.community-profile-settings-menu summary{padding:8px 10px}.community-profile-settings-popover{right:0;min-width:min(230px,85vw)}.community-profile-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:7px}.community-profile-count-button{min-width:0;padding:8px 6px}.community-profile-pane.profile-panel{padding:17px 15px}.community-post{padding:14px}.community-reaction-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.community-reaction-grid .community-reaction-button{justify-content:flex-start}.community-reaction-button>b{display:inline}.community-post-secondary-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.community-post-secondary-actions button{width:100%}}

/* FN20I — single sticky profile nav, centered content and compact profile panes */
body[data-view="community"] .community-layout{margin-inline:auto;max-width:1320px;width:100%}
.community-profile-main{margin-inline:auto;width:100%;max-width:1240px;min-width:0}
.community-profile-feed-pane{width:100%;max-width:none;padding:0;border:0;background:transparent;box-shadow:none;margin:0 auto 14px}
.community-profile-nav-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.personal-profile-sticky-nav .profile-create-wrap{justify-self:auto;flex:0 0 auto}
.personal-profile-sticky-nav .community-create-button{width:38px;height:38px;font-size:24px;box-shadow:0 5px 16px color-mix(in srgb,var(--accent) 24%,transparent)}
.personal-profile-sticky-nav .community-create-menu{left:auto;right:0;transform:none;top:48px}
.community-profile-pane-tools{display:flex;justify-content:flex-end;gap:8px;margin-bottom:10px}
.community-profile-stat-quota{margin-top:16px;padding-top:14px;border-top:1px solid color-mix(in srgb,var(--accent) 22%,var(--border))}
#communityProfileAbout{margin-inline:auto}
@media(max-width:680px){.community-profile-nav-actions{gap:6px}.personal-profile-sticky-nav .community-create-button{width:36px;height:36px}.personal-profile-sticky-nav .community-create-menu{right:0}.community-profile-main{max-width:100%}}

/* FN20J — opaque sticky profile navigation, conditional counters and field-level profile privacy */
.personal-profile-sticky-nav{background:var(--card);backdrop-filter:none;-webkit-backdrop-filter:none;border-color:var(--line);box-shadow:0 10px 26px rgba(20,35,28,.12);transition:padding .18s ease,box-shadow .18s ease}
.community-sticky-profile-avatar{display:grid;width:38px;height:38px;min-width:38px;padding:0;border:2px solid color-mix(in srgb,var(--accent) 42%,var(--border));border-radius:50%;place-items:center;background:var(--panel);background-size:cover;background-position:center;color:var(--accent);font-weight:850;box-shadow:0 4px 12px rgba(20,35,28,.10);transition:opacity .18s ease,transform .18s ease,width .18s ease,min-width .18s ease}
.community-sticky-profile-avatar.has-image{color:transparent}.community-sticky-profile-avatar.hidden{display:none}.personal-profile-sticky-nav.cover-out .community-sticky-profile-avatar{animation:communityStickyAvatarIn .18s ease-out both}@keyframes communityStickyAvatarIn{from{opacity:0;transform:translateY(-5px) scale(.9)}to{opacity:1;transform:none}}
.community-sticky-connection-counts{display:flex;align-items:center;gap:5px}.community-sticky-connection-counts.hidden{display:none}.community-sticky-connection-counts button{display:grid;gap:0;min-width:66px;padding:6px 9px;border:1px solid color-mix(in srgb,var(--accent) 26%,var(--line));border-radius:12px;background:var(--card);color:var(--text);cursor:pointer;box-shadow:0 5px 15px rgba(20,35,28,.10)}.community-sticky-connection-counts b{font-size:13px;line-height:1.1}.community-sticky-connection-counts span{font-size:9px;color:var(--muted)}.personal-profile-sticky-nav.connections-out .community-sticky-connection-counts{animation:communityStickyCountsIn .18s ease-out both}@keyframes communityStickyCountsIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.personal-profile-sticky-nav .community-create-menu,.community-profile-settings-popover{background:var(--card);backdrop-filter:none;-webkit-backdrop-filter:none;border:1px solid var(--line);box-shadow:0 18px 44px rgba(20,35,28,.20);opacity:1;z-index:90}
.community-profile-menu-button{border:1px solid color-mix(in srgb,var(--accent) 38%,var(--border));border-radius:999px;padding:8px 12px;background:var(--panel);color:var(--text);font-weight:800;white-space:nowrap;cursor:pointer}.community-profile-menu-button[aria-expanded="true"]{border-color:var(--accent);color:var(--accent)}
.community-profile-field-editor{display:grid;grid-template-columns:1fr;gap:16px}.community-profile-editor-heading{display:flex;justify-content:space-between;gap:16px;align-items:center}.community-profile-editor-heading h3{margin:0 0 4px}.community-profile-field-editor fieldset{margin:0;min-width:0}.community-profile-field-editor legend{padding:0 7px;font-weight:850;color:var(--text)}.community-profile-media-grid,.community-profile-field-grid{display:grid;gap:12px}.community-profile-media-grid{grid-template-columns:1fr 1fr}.community-profile-field-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(150px,.55fr) minmax(250px,1fr);gap:10px;align-items:end;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--panel);min-width:0}.community-profile-field-row>label{min-width:0}.community-profile-field-row>label>span{display:block;margin-bottom:5px;font-size:11px;font-weight:750;color:var(--muted)}.community-profile-field-row input:not([type="checkbox"]),.community-profile-field-row select,.community-profile-field-row textarea{width:100%;min-width:0}.community-profile-field-wide{align-items:start}.community-ad-consent{display:flex!important;align-items:flex-start;gap:8px;padding:9px 10px;border:1px dashed color-mix(in srgb,var(--accent) 32%,var(--border));border-radius:10px;background:color-mix(in srgb,var(--accent) 4%,var(--panel))}.community-ad-consent>span{margin:0!important;font-size:10px!important;line-height:1.4;color:var(--text)!important}.community-ad-consent input{margin-top:2px}.community-profile-visible-fields{margin:8px 0 14px}.community-profile-visible-fields dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin:0}.community-profile-visible-fields dl>div{padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--panel)}.community-profile-visible-fields dt{font-size:9px;text-transform:uppercase;color:var(--muted)}.community-profile-visible-fields dd{margin:4px 0 0;overflow-wrap:anywhere}
@media(max-width:960px){.community-profile-field-row{grid-template-columns:1fr 170px}.community-ad-consent{grid-column:1/-1}.community-profile-media-grid{grid-template-columns:1fr}}
@media(max-width:720px){.personal-profile-sticky-nav{gap:6px}.community-sticky-profile-avatar{width:34px;height:34px;min-width:34px}.community-sticky-connection-counts button{min-width:54px;padding:5px 6px}.community-sticky-connection-counts span{font-size:8px}.community-profile-field-row{grid-template-columns:1fr}.community-ad-consent{grid-column:auto}.community-profile-editor-heading{align-items:flex-start;flex-direction:column}.community-profile-editor-heading button{width:100%}}

/* FN20L — solid profile chrome and interactive profile media positioning */
.personal-profile-sticky-nav{background:var(--card);backdrop-filter:none;-webkit-backdrop-filter:none;border-color:var(--line);box-shadow:0 10px 26px rgba(20,35,28,.12)}
.personal-profile-sticky-nav .community-create-menu,.community-profile-settings-popover{background:var(--card);backdrop-filter:none;-webkit-backdrop-filter:none;border:1px solid var(--line);box-shadow:0 18px 44px rgba(20,35,28,.20);opacity:1}
.community-profile-identity{background:var(--card);border-top:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-bottom:1px solid var(--line);box-shadow:0 -8px 20px rgba(20,35,28,.04)}
.community-profile-count-button{background:var(--card);border-radius:12px;box-shadow:0 5px 15px rgba(20,35,28,.09)}
.community-sticky-connection-counts button{background:var(--card);border:1px solid color-mix(in srgb,var(--accent) 26%,var(--line));border-radius:12px;box-shadow:0 5px 15px rgba(20,35,28,.10)}
.community-sticky-connection-counts button:hover,.community-sticky-connection-counts button:focus-visible{border-color:color-mix(in srgb,var(--accent) 62%,var(--line));background:color-mix(in srgb,var(--accent) 7%,var(--card));outline:none}
.community-profile-media-editor-dialog{width:min(920px,94vw);max-width:920px;background:var(--card);color:var(--text)}
.community-profile-media-editor-body{padding:22px;display:grid;gap:16px;background:var(--card)}
.community-profile-media-viewport{position:relative;margin-inline:auto;width:min(820px,100%);overflow:hidden;background:#10181d;border:1px solid var(--line);box-shadow:inset 0 0 0 1px rgba(255,255,255,.05),0 12px 30px rgba(20,35,28,.12);cursor:grab;touch-action:none;user-select:none}
.community-profile-media-viewport:active{cursor:grabbing}
.community-profile-media-viewport.avatar{width:min(520px,82vw);aspect-ratio:1/1;border:6px solid var(--media-avatar-border,#ffffff);border-radius:50%}
.community-profile-media-viewport.cover{width:min(820px,90vw);aspect-ratio:6/1;border-radius:14px}
.community-profile-media-viewport img{position:absolute;left:50%;top:50%;max-width:none;max-height:none;transform-origin:center center;pointer-events:none;-webkit-user-drag:none}
.community-profile-media-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}.community-profile-media-controls label{margin:0}.community-profile-media-controls label>span{display:block;margin-bottom:6px;font-size:12px;font-weight:800}.community-profile-media-controls input[type="range"]{width:100%;padding:0;border:0;background:transparent}.community-profile-media-controls output{min-width:58px;text-align:right;font-weight:800;color:var(--accent)}
.community-profile-media-tip{text-align:center;margin:0}
@media(max-width:720px){.community-profile-media-editor-body{padding:15px}.community-profile-media-viewport.cover{aspect-ratio:3.4/1}.community-profile-media-controls{grid-template-columns:1fr 54px}}

/* FN20L — cover overlap restoration + editable avatar frame */
.community-profile-frame-color{align-self:stretch}.community-profile-frame-color input[type="color"],.community-profile-media-border-color input[type="color"]{width:64px;height:38px;padding:3px;border:1px solid var(--line);border-radius:10px;background:var(--card);cursor:pointer}.community-profile-frame-color small{display:block;margin-top:5px;color:var(--muted);font-size:9px}.community-profile-media-border-color{grid-column:1/-1;display:flex;align-items:center;gap:10px}.community-profile-media-border-color span{margin:0!important}.community-profile-avatar-wrap{transition:border-color .18s ease,box-shadow .18s ease}


/* FN20M — surface hierarchy, re-editable profile media and exact sticky-avatar parity */
body{background:var(--surface-page)}
.profile-panel{background:var(--surface-panel);border-color:var(--border);box-shadow:0 10px 28px rgba(20,35,28,.12)}
.community-profile-field-row{background:var(--surface-card);border-color:var(--border);box-shadow:0 3px 12px rgba(20,35,28,.045)}
.business-profile-page>.card,.business-ads-page>.card,.business-team-page>.card,.business-analytics-panel{border-color:var(--border)}
.personal-profile-sticky-nav,.personal-profile-sticky-nav .community-create-menu,.community-profile-settings-popover{background:var(--surface-card);opacity:1;backdrop-filter:none;-webkit-backdrop-filter:none}
.community-sticky-profile-avatar{overflow:hidden;background:var(--surface-card);background-image:none!important}
.community-sticky-profile-avatar img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}.community-sticky-profile-avatar img.hidden{display:none}.community-sticky-profile-avatar.has-image #communityStickyProfileAvatarFallback{display:none}
.community-profile-media-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.community-profile-media-card{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--surface-card);box-shadow:0 5px 18px rgba(20,35,28,.06);min-width:0}
.community-profile-media-card-preview{position:relative;overflow:hidden;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 8%,var(--surface-panel));border:1px solid var(--border);color:var(--muted);font-size:11px;font-weight:800}
.community-profile-media-card-preview.avatar{width:132px;height:132px;border-radius:50%;border:5px solid var(--profile-avatar-border,#fff);box-shadow:0 7px 18px rgba(20,35,28,.12)}
.community-profile-media-card-preview.cover{width:100%;height:118px;border-radius:13px;align-self:center}.community-profile-media-card-preview img{width:100%;height:100%;object-fit:cover;display:block}.community-profile-media-card-preview img.hidden{display:none}
.community-profile-media-card-body{display:grid;gap:9px;align-content:start;min-width:0}.community-profile-media-card-body h4{margin:0}.community-profile-media-card-body p{margin:0}.community-profile-media-card-body>label>span{display:block;margin-bottom:5px;font-size:11px;font-weight:750;color:var(--muted)}
.community-profile-media-card-actions{display:flex;gap:7px;flex-wrap:wrap}.community-profile-media-card-actions button{min-width:0}.community-profile-media-card-actions .danger{color:#b33f3f}
.community-profile-media-card .community-profile-frame-color{margin:0}.community-profile-media-card .community-profile-frame-color input[type="color"]{width:64px}
@media(max-width:1100px){.community-profile-media-grid{grid-template-columns:1fr}}
@media(max-width:680px){.community-profile-media-card{grid-template-columns:1fr}.community-profile-media-card-preview.avatar{margin-inline:auto}.community-profile-media-card-preview.cover{height:100px}.community-profile-media-card-actions{display:grid;grid-template-columns:1fr 1fr}.community-profile-media-card-actions button:last-child{grid-column:1/-1}}
/* FN20N business profile media editor */
.business-profile-media-editor{border:1px solid var(--border);border-radius:16px;padding:14px;background:var(--surface-card,var(--card))}
.business-profile-media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.business-profile-media-card{display:grid;grid-template-columns:140px minmax(0,1fr);gap:14px;align-items:center;padding:14px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));border-radius:16px;background:var(--surface-card,var(--card));box-shadow:0 8px 22px rgba(15,45,52,.08)}
.business-profile-media-preview{display:grid;place-items:center;overflow:hidden;background:var(--panel);border:1px solid var(--border);color:var(--muted);font-weight:800}
.business-profile-media-preview.logo{width:128px;aspect-ratio:1;border-radius:24px}.business-profile-media-preview.cover{width:100%;aspect-ratio:16/7;border-radius:14px}
.business-profile-media-preview img{width:100%;height:100%;object-fit:cover;display:block}.business-profile-media-body{display:grid;gap:8px}.business-profile-media-body h4{margin:0}.business-profile-media-actions{display:flex;gap:8px;flex-wrap:wrap}
.community-profile-media-viewport.business-logo{width:min(520px,82vw);aspect-ratio:1/1;border-radius:24px;border:6px solid var(--media-avatar-border,#fff)}
@media(max-width:780px){.business-profile-media-grid{grid-template-columns:1fr}.business-profile-media-card{grid-template-columns:1fr}.business-profile-media-preview.logo{width:112px}}
/* FN20N unified Business public profile interaction shell */
.unified-business-profile-shell .business-profile-hero{display:block;width:100%;margin:0;overflow:visible;background:var(--surface-card,var(--card))}
.unified-business-profile-shell .business-profile-identity{margin-top:0;align-items:flex-start;padding:0 24px 20px;background:var(--surface-card,var(--card));border-top:1px solid var(--border)}
.business-profile-logo-wrap{flex:0 0 auto;margin-top:-56px;position:relative;z-index:2}
.business-profile-logo{display:grid;place-items:center;width:112px;height:112px;object-fit:cover;border-radius:24px;border:6px solid var(--business-logo-border,#fff);background:var(--surface-card,var(--card));box-shadow:0 10px 26px rgba(20,35,28,.18);font-size:30px;font-weight:900;color:var(--accent)}
.business-profile-identity-copy{padding-top:14px;min-width:0;flex:1}.business-profile-hero-actions{margin-left:auto;padding-top:14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.business-profile-public-nav{overflow:visible;background:var(--surface-card,var(--card));backdrop-filter:none;align-items:center;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;border-radius:0 0 14px 14px;box-shadow:0 10px 24px rgba(20,35,28,.13)}
.business-profile-tab-strip{display:flex;gap:8px;overflow-x:auto;scrollbar-width:thin;min-width:0}.business-profile-sticky-right{display:flex;align-items:center;gap:8px;position:relative}
.business-profile-sticky-logo{width:42px;height:42px;object-fit:cover;border-radius:11px;border:3px solid var(--business-logo-border,#fff);background:var(--surface-card,var(--card));box-shadow:0 5px 14px rgba(20,35,28,.18);flex:none}.business-profile-sticky-logo.fallback{display:grid;place-items:center;font-weight:900;color:var(--accent)}
.business-profile-follower-card{display:grid;grid-template-columns:auto auto;gap:5px;align-items:center;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--border));border-radius:13px;background:var(--surface-card,var(--card));padding:8px 11px;box-shadow:0 5px 14px rgba(20,35,28,.09);cursor:pointer}.business-profile-follower-card b{font-size:15px}.business-profile-follower-card span{font-size:12px;color:var(--muted)}
.business-profile-context-actions{display:flex;align-items:center;gap:8px}.business-profile-menu-wrap{position:relative}.business-profile-create-toggle{width:42px;height:42px;padding:0!important;border-radius:50%!important;font-size:23px;line-height:1;background:var(--surface-card,var(--card))!important;box-shadow:0 5px 14px rgba(20,35,28,.13)}.business-profile-owner-toggle{background:var(--surface-card,var(--card))!important;box-shadow:0 5px 14px rgba(20,35,28,.09)}
.business-profile-dropdown{position:absolute;right:0;top:calc(100% + 8px);z-index:80;width:max-content;min-width:230px;max-width:min(320px,85vw);display:grid;gap:5px;padding:9px;border:1px solid var(--border);border-radius:14px;background:var(--surface-card,var(--card));box-shadow:0 18px 42px rgba(15,35,31,.22)}.business-profile-dropdown button{width:100%;text-align:left;border:0;border-radius:9px;background:var(--surface-card,var(--card));padding:9px 11px;font-weight:750;cursor:pointer}.business-profile-dropdown button:hover{background:var(--surface-panel,var(--panel));color:var(--accent)}
.business-profile-main{width:100%;margin:0;padding:0;min-width:0}.business-profile-about{display:grid;gap:14px}
@media(max-width:760px){.unified-business-profile-shell .business-profile-identity{padding:0 14px 16px;flex-wrap:wrap}.business-profile-logo-wrap{margin-top:-46px}.business-profile-logo{width:92px;height:92px;border-radius:20px}.business-profile-identity-copy{padding-top:10px}.business-profile-hero-actions{width:100%;padding-top:0;justify-content:flex-start}.business-profile-public-nav{grid-template-columns:auto minmax(0,1fr) auto;padding:8px}.business-profile-sticky-followers span{display:none}.business-profile-owner-toggle{max-width:92px;overflow:hidden;text-overflow:ellipsis}}

.business-profile-compact-preview{overflow:hidden;border:1px solid var(--border-strong,var(--border));border-radius:18px;background:var(--card);box-shadow:0 10px 28px rgba(15,45,52,.08)}
.business-profile-compact-cover{height:118px;background:linear-gradient(135deg,var(--panel),var(--card));background-size:cover;background-position:center}
.business-profile-compact-identity{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:end;padding:0 14px 12px}
.business-profile-compact-logo{width:72px;height:72px;object-fit:cover;border-radius:16px;border:4px solid var(--business-logo-border,#fff);box-shadow:0 6px 18px rgba(15,45,52,.16);margin-top:-32px;background:var(--card)}
.business-profile-compact-logo.fallback{display:grid;place-items:center;font-weight:900}
.business-profile-compact-identity h4,.business-profile-compact-identity p{margin:0}.business-profile-compact-identity p{color:var(--muted);font-size:.9rem}
.business-profile-compact-followers{display:grid;text-align:center;padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}
.business-profile-compact-content{padding:12px 14px 16px}.business-profile-compact-content .business-profile-content-card{padding:10px 12px}

/* FN20U — Store Manager Horizontal Actions */
.business-store-manager{display:grid;gap:14px}.business-store-manager .card-heading{align-items:flex-end}.business-store-manager .compact-select{min-width:150px}.business-store-manager .business-stack{padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--surface-panel,var(--panel))}
.business-catalog-store-list,.business-profile-store-list{display:grid;gap:10px}.business-store-card{align-items:flex-start!important;border-left:5px solid color-mix(in srgb,var(--accent) 76%,transparent)!important;background:var(--surface-card,var(--card))!important;box-shadow:0 6px 18px rgba(20,35,28,.06)}.business-store-card.inactive{border-left-color:#c58a26!important}.business-store-card.archived{border-left-color:#8b9398!important;opacity:.88}
.business-store-card-copy{display:flex;align-items:center;gap:10px;min-width:0;flex:1;flex-wrap:nowrap}.business-store-title-row{display:flex!important;align-items:center;gap:8px;flex-wrap:nowrap;min-width:0}.business-store-meta-row{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:nowrap;color:var(--muted);font-size:12px}.business-store-meta-item{display:inline-flex;align-items:center;white-space:nowrap;min-width:0}.business-store-meta-item+.business-store-meta-item:before{content:"·";margin-right:8px;color:var(--border-strong,var(--border))}.business-store-blocker{color:#9a5a28}.business-store-status,.business-store-visibility{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;border:1px solid var(--border);font-size:11px;font-weight:800;line-height:1}.business-store-status.active{background:#e9f7ee;color:#276a3b;border-color:#b9dec4}.business-store-status.inactive{background:#fff5df;color:#845b16;border-color:#ead19a}.business-store-status.archived{background:#eef1f2;color:#59666c;border-color:#ccd4d7}.business-store-visibility{background:var(--surface-panel,var(--panel));color:var(--muted)}
.business-store-actions{display:flex;align-items:center;gap:7px;flex-wrap:nowrap;justify-content:flex-end;max-width:none;flex:0 0 auto}.business-store-actions button{white-space:nowrap;flex:0 0 auto}.business-store-actions button[disabled]{opacity:.38;cursor:not-allowed;filter:saturate(.45)}.business-store-delete-action{margin-left:18px}.business-store-actions .business-store-delete-action:not([disabled]){box-shadow:0 4px 12px rgba(163,50,50,.14)}.business-store-card{align-items:center!important}.business-store-card small{display:block;color:var(--muted);overflow-wrap:anywhere}
@media(max-width:560px){.business-store-manager .card-heading{align-items:flex-start;flex-direction:column}.business-store-manager .compact-select{width:100%}.business-store-card{flex-direction:column;align-items:flex-start!important}.business-store-card-copy{display:grid;gap:4px;width:100%}.business-store-title-row{flex-wrap:wrap}.business-store-meta-row{flex-wrap:wrap;gap:5px 8px}.business-store-actions{width:100%;max-width:none;justify-content:flex-start;flex-wrap:wrap}.business-store-actions button{flex:0 1 auto}.business-store-delete-action{margin-left:auto}}
.sync-center-card .card-heading{align-items:flex-start}.sync-center-metrics{display:grid;grid-template-columns:minmax(0,2fr) repeat(4,minmax(110px,1fr));gap:10px;margin:12px 0}.sync-center-metrics>div{display:grid;gap:4px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}.sync-center-metrics span{font-size:.76rem;color:var(--muted)}.sync-center-metrics b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sync-center-metrics #syncConflictCount:not(:empty){font-variant-numeric:tabular-nums}.sync-conflict-section{display:grid;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.sync-conflict-heading>div{display:grid;gap:3px}.sync-conflict-heading small,.sync-conflict-copy small{color:var(--muted)}.sync-conflict-list{display:grid;gap:8px}.sync-conflict-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}.sync-conflict-copy{display:grid;gap:3px;min-width:0}.sync-conflict-copy b,.sync-conflict-copy small{overflow:hidden;text-overflow:ellipsis}.sync-conflict-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}@media(max-width:900px){.sync-center-metrics{grid-template-columns:1fr 1fr}.sync-conflict-row{align-items:stretch;flex-direction:column}.sync-conflict-actions{justify-content:flex-end}}@media(max-width:480px){.sync-center-metrics{grid-template-columns:1fr}.sync-conflict-actions{display:grid;grid-template-columns:1fr 1fr}}

/* FN21B – Data Ownership, Backup & Portability */
.portability-card .backup-section{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border,#dfe5e1)}
.portability-card .buttonlike{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.portability-card .portability-action-field{justify-content:flex-end;min-width:150px}
.portability-card input[type="file"]{max-width:100%}
.portability-card .backup-row-actions{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}
@media (max-width:760px){.portability-card .backup-row{align-items:flex-start}.portability-card .backup-row-actions{justify-content:flex-start}}

/* FN21C — Privacy & Permission Fabric 2.0 */
.privacy-fabric-card{grid-column:1/-1}.privacy-fabric-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}.privacy-fabric-summary span{display:flex;flex-direction:column;gap:3px;border:1px solid var(--line);border-radius:11px;padding:10px 12px;background:color-mix(in srgb,var(--bg) 46%,var(--card));font-size:9px;color:var(--muted)}.privacy-fabric-summary b{font-size:18px;color:var(--text)}.privacy-policy-picker{margin:12px 0}.privacy-policy-form{border-top:1px solid var(--line);padding-top:14px}.privacy-rights-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;margin:14px 0 8px}.privacy-rights-head small{max-width:640px;color:var(--muted);font-size:9px;line-height:1.45}.privacy-grant-list{display:grid;gap:7px}.privacy-grant-row{display:grid;grid-template-columns:minmax(180px,1fr) repeat(3,minmax(105px,auto));gap:10px;align-items:center;border:1px solid var(--line);border-radius:11px;padding:10px 12px}.privacy-grant-row.is-owner{background:color-mix(in srgb,var(--accent) 7%,var(--card))}.privacy-grant-member b,.privacy-grant-member small{display:block}.privacy-grant-member small{font-size:9px;color:var(--muted);margin-top:2px}.privacy-grant-row label{display:flex;align-items:center;gap:6px;font-size:10px}.privacy-grant-row input{width:auto}.privacy-actions{justify-content:flex-end;margin-top:12px}@media(max-width:760px){.privacy-fabric-summary{grid-template-columns:1fr 1fr}.privacy-rights-head{align-items:flex-start;flex-direction:column}.privacy-grant-row{grid-template-columns:1fr;gap:7px}.privacy-actions{justify-content:stretch}.privacy-actions button{flex:1}}
/* FN21E – canonical product units and pantry intelligence */
.unit-profile-list{display:flex;flex-direction:column;gap:0;margin-bottom:14px;border:1px solid var(--border);border-radius:12px;padding:0 12px;background:var(--surface-2)}
.unit-profile-row{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}
.unit-profile-row:last-child{border-bottom:0}.unit-profile-row>div{display:flex;flex-direction:column;gap:2px}.unit-profile-row small{font-size:11px;color:var(--muted)}.unit-profile-row>div:nth-child(2){text-align:right}.unit-profile-row .row-actions{flex-direction:row}
@media(max-width:720px){.unit-profile-row{grid-template-columns:1fr}.unit-profile-row>div:nth-child(2){text-align:left}}

/* FN21F – planned vs actual meal tracking */
.meal-slot-cell{display:grid;grid-template-rows:minmax(80px,auto) auto;gap:5px;min-width:0}.meal-slot-cell .meal-slot{width:100%;min-height:80px}.meal-actual-action{width:100%;min-height:28px;padding:5px 8px;border:1px dashed var(--border);border-radius:9px;background:color-mix(in srgb,var(--surface-2) 82%,transparent);color:var(--muted);font-size:10px;font-weight:700;text-align:left;cursor:pointer;white-space:normal}.meal-actual-action:hover{border-color:var(--accent);color:var(--accent)}.meal-slot-cell.has-actual .meal-actual-action{border-style:solid;background:color-mix(in srgb,var(--accent) 7%,var(--surface-2));color:var(--ink)}.meal-slot-cell.actual-matched .meal-actual-action{border-color:color-mix(in srgb,#15965d 45%,var(--border))}.meal-slot-cell.actual-leftover .meal-actual-action{border-color:color-mix(in srgb,#d1902f 50%,var(--border))}.meal-slot-cell.actual-skipped .meal-actual-action,.meal-slot-cell.actual-changed .meal-actual-action,.meal-slot-cell.actual-custom .meal-actual-action{border-color:color-mix(in srgb,#c14a45 38%,var(--border))}.actual-plan-context{display:grid;gap:3px;margin:8px 0 2px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.actual-plan-context span{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:800}.actual-plan-context b{font-size:12px}.meal-insight-portions{border-top:1px solid var(--border);margin-top:10px;padding-top:9px;display:grid;gap:5px}.meal-insight-portions>small{color:var(--muted);font-weight:700}.meal-insight-portions>div{display:flex;justify-content:space-between;gap:10px;font-size:11px}.meal-insight-portions b{white-space:nowrap}

/* FN21G Store & Price Intelligence */
.store-intel-card{display:grid;gap:12px}.store-intel-settings{display:grid;gap:10px}.store-search-line{display:flex;gap:8px}.store-search-line input{min-width:0;flex:1}.store-intel-list,.store-intel-results,.store-intel-baskets{display:grid;gap:8px}.store-intel-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border:1px solid var(--line);border-radius:12px}.store-intel-row>div{display:grid;gap:2px;min-width:0}.store-intel-row small{color:var(--muted)}.store-intel-actions{display:flex!important;align-items:center;gap:8px;grid-auto-flow:column}.store-intel-actions label{font-size:.78rem;color:var(--muted)}.store-intel-actions select{width:54px}.store-intel-leaders{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.store-intel-leaders>div{display:grid;gap:3px;padding:10px;border:1px solid var(--line);border-radius:12px}.store-intel-leaders span,.store-intel-leaders small{font-size:.78rem;color:var(--muted)}@media(max-width:900px){.store-intel-leaders{grid-template-columns:1fr}.store-search-line{flex-direction:column}}

/* FN21H Household Operations */
.operations-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.75fr);gap:16px;align-items:start}
.operations-side{display:grid;gap:16px}
.operations-schedule,.operations-list{display:grid;gap:10px}
.operation-occurrence-row,.operation-def-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.operation-def-row{grid-template-columns:minmax(0,1fr) auto}
.operation-occurrence-row:last-child,.operation-def-row:last-child{border-bottom:0}
.operation-date{min-width:94px;display:grid;gap:2px}.operation-date small,.operation-occurrence-main small,.operation-def-row small{display:block;color:var(--muted);margin-top:3px}
.operation-occurrence-main{min-width:0}.operation-status{font-size:.78rem;font-weight:700;padding:5px 8px;border-radius:999px;background:var(--soft)}
.operation-occurrence-row.status-done .operation-status{background:color-mix(in srgb,var(--accent) 18%,transparent)}
.operation-occurrence-row.status-skipped{opacity:.72}.operation-row-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.operation-weekdays{display:flex;gap:10px;flex-wrap:wrap;border:1px solid var(--line);border-radius:12px;padding:10px 12px}.operation-weekdays legend{padding:0 6px}.operation-weekdays label{display:flex;align-items:center;gap:4px}
#operationAssignees{min-height:118px}.muted{opacity:.62}
@media(max-width:980px){.operations-layout{grid-template-columns:1fr}.operation-occurrence-row{grid-template-columns:auto minmax(0,1fr)}.operation-status,.operation-row-actions{grid-column:2}.operation-row-actions{justify-content:flex-start}}

/* FN21I Grounded Family Assistant */
.assistant-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);gap:16px;align-items:start}.assistant-main,.assistant-side{display:grid;gap:16px}.assistant-badges,.assistant-prompts,.assistant-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.assistant-badges span{font-size:10px;font-weight:800;padding:5px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,var(--card));color:var(--accent)}.assistant-controls select{min-width:120px}.assistant-answer{font-size:16px;line-height:1.65;margin:8px 0}.assistant-recommendations,.assistant-claims,.assistant-sources,.assistant-context{display:grid;gap:9px}.assistant-recommendation,.assistant-claim,.assistant-source,.assistant-context>div{border:1px solid var(--line);border-radius:11px;padding:10px 12px;background:color-mix(in srgb,var(--card) 92%,var(--bg));display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.assistant-recommendation>div,.assistant-claim,.assistant-source{display:grid}.assistant-recommendation small,.assistant-claim small,.assistant-source small,.assistant-context span{color:var(--muted);font-size:10px}.assistant-source-kind{text-transform:uppercase;letter-spacing:.08em;font-size:9px;color:var(--accent);font-weight:800}.assistant-source.stale{border-style:dashed}.assistant-source.stale .assistant-source-kind{color:#9a6b2f}.assistant-limitations{font-size:11px;color:var(--muted)}.assistant-limitations ul{margin:6px 0 0 18px;padding:0}@media(max-width:980px){.assistant-layout{grid-template-columns:1fr}}

/* FN21J UX Stability & Visual Quality Gate */
:root{--density-gap:16px;--density-control-y:10px;--density-control-x:12px;--density-row-y:14px;--density-main-top:28px;--density-radius:16px}
body[data-density="normal"]{--space:16px;--density-gap:13px;--density-control-y:9px;--density-control-x:11px;--density-row-y:11px;--density-main-top:24px;--density-radius:14px}
body[data-density="compact"]{--space:12px;--density-gap:10px;--density-control-y:7px;--density-control-x:10px;--density-row-y:8px;--density-main-top:20px;--density-radius:12px}
body[data-density="comfortable"]{--space:20px;--density-gap:16px;--density-control-y:10px;--density-control-x:12px;--density-row-y:14px;--density-main-top:28px;--density-radius:16px}
body[data-density] > main{padding-top:var(--density-main-top)}
body[data-density] .card{border-radius:var(--density-radius)}
body[data-density] select,body[data-density] input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),body[data-density] textarea{padding:var(--density-control-y) var(--density-control-x)}
body[data-density] button.ghost,body[data-density] .primary{padding:var(--density-control-y) var(--density-control-x)}
body[data-density] .nav{padding:var(--density-control-y) 14px}
body[data-density] .listitem{padding:var(--density-row-y)}
body[data-density] .toolbar,body[data-density] .view-toolbar{gap:var(--density-gap)}
body[data-density] .home-layout,body[data-density] .modulegrid,body[data-density] .customize-grid,body[data-density] .workspace{gap:var(--density-gap)}
body[data-density="compact"] .meta{line-height:1.35}
body[data-density="compact"] .field{margin:11px 0}
body[data-density="compact"] #pageHeader{margin-bottom:20px}
body[data-density="normal"] #pageHeader{margin-bottom:24px}
body[data-density="comfortable"] #pageHeader{margin-bottom:28px}
.visual-quality-card{align-self:start}.quality-gate-badge{display:inline-flex;align-items:center;white-space:nowrap;padding:6px 9px;border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,var(--card));color:var(--accent);font-size:11px;font-weight:850}.quality-viewport-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0}.quality-viewport-grid>span{display:grid;gap:2px;padding:10px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--bg) 62%,var(--card));font-size:12px;font-weight:800}.quality-viewport-grid small{font-size:10px;font-weight:600;color:var(--muted)}
@media(max-width:900px){.quality-viewport-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.quality-viewport-grid{grid-template-columns:1fr 1fr}.visual-quality-card .card-heading{align-items:flex-start}}
/* FN21J mobile-nav regression fix: the legacy data-view pseudo label must not
   leak into the modern icon-only horizontal navigation. */
@media(max-width:620px){.daily-nav .nav:before{content:none!important}.daily-nav .nav{font-size:12px}.daily-nav .nav-icon{display:inline-block!important}}

/* FN22A · Family Calendar & Unified Notification foundation */
.calendar-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);gap:var(--space-lg,18px);align-items:start}
.calendar-side{display:grid;gap:var(--space-md,14px);position:sticky;top:16px}
.calendar-timeline{display:grid;gap:18px}
.calendar-day{display:grid;gap:8px}
.calendar-day-head{display:flex;align-items:center;justify-content:space-between;padding:4px 2px 8px;border-bottom:1px solid var(--line,#dfe5df)}
.calendar-day-head span{min-width:26px;text-align:center;border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,transparent);padding:2px 8px;font-size:.78rem}
.calendar-entry{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:12px;align-items:start;padding:12px;border:1px solid var(--line,#dfe5df);border-radius:14px;background:var(--card,#fff)}
.calendar-entry time{font-variant-numeric:tabular-nums;font-weight:700;color:var(--muted,#627066)}
.calendar-entry-top{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.calendar-entry p{margin:5px 0 0}.calendar-entry small{display:block;margin-top:3px}
.calendar-source-badge{font-size:.72rem;font-weight:700;letter-spacing:.02em;border-radius:999px;padding:3px 8px;background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent)}
.calendar-entry.source-meal{border-inline-start:4px solid #79915a}.calendar-entry.source-operation{border-inline-start:4px solid #b88742}.calendar-entry.source-manual{border-inline-start:4px solid var(--accent)}
.calendar-notification-status{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.calendar-notification-status>span{display:inline-grid;place-items:center;min-width:32px;height:32px;border-radius:999px;background:var(--accent);color:#fff;font-weight:800}
.calendar-notification-list{display:grid;gap:8px;max-height:360px;overflow:auto}.calendar-notification{display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:9px;align-items:start;padding:9px;border:1px solid var(--line,#dfe5df);border-radius:12px}.calendar-notification.read{opacity:.68}.calendar-notification-dot{width:7px;height:7px;border-radius:999px;background:var(--accent);margin-top:7px}.calendar-notification p{margin:4px 0 0}.calendar-notification small{display:block;margin-top:3px}
.calendar-notification-prefs{display:grid;gap:10px}.calendar-notification-prefs>label:first-of-type,.calendar-notification-prefs>label:nth-of-type(2){display:flex;gap:8px;align-items:center}
.calendar-attendee-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.calendar-attendee-list label{display:flex;gap:8px;align-items:center;padding:8px;border:1px solid var(--line,#dfe5df);border-radius:10px}
@media(max-width:920px){.calendar-layout{grid-template-columns:1fr}.calendar-side{position:static}.calendar-toolbar{width:100%}.calendar-entry{grid-template-columns:54px minmax(0,1fr) auto}}
@media(max-width:620px){.calendar-toolbar{display:grid;grid-template-columns:auto 1fr;gap:8px}.calendar-toolbar input{min-width:0}.calendar-toolbar #calendarNewEvent{grid-column:1/-1}.calendar-entry{grid-template-columns:48px minmax(0,1fr)}.calendar-entry>button{grid-column:2}.calendar-attendee-list{grid-template-columns:1fr}.calendar-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* FN22B · Calendar Provider Bridge */
.calendar-entry.source-provider{border-inline-start:4px solid #5c72b8;background:color-mix(in srgb,var(--card,#fff) 94%,#5c72b8 6%)}
.calendar-provider-card{margin-top:var(--space-lg,18px)}
.provider-semantics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 16px}
.provider-semantics>span{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--line,#dfe5df);border-radius:12px;background:color-mix(in srgb,var(--card,#fff) 96%,var(--accent) 4%)}
.provider-semantics b{font-size:.8rem;letter-spacing:.04em}.provider-semantics small{line-height:1.35;color:var(--muted,#627066)}
.calendar-provider-list{display:grid;gap:9px}.calendar-provider-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px;border:1px solid var(--line,#dfe5df);border-radius:14px}
.calendar-provider-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:color-mix(in srgb,var(--accent) 11%,transparent);font-weight:800;font-size:.75rem}
.calendar-provider-main{min-width:0}.calendar-provider-title{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.calendar-provider-main>small{display:block;margin-top:3px;color:var(--muted,#627066)}
.provider-mode{display:inline-flex;align-items:center;border-radius:999px;padding:3px 7px;font-size:.68rem;font-weight:800;letter-spacing:.04em;background:#eef1f6;color:#455064}.provider-mode.mode-read_only{background:#edf4ff;color:#355a8a}.provider-mode.mode-import_copy{background:#eef7ec;color:#456944}.provider-mode.mode-two_way{background:#f5eefb;color:#6a4482}
.provider-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:5px;font-size:.76rem;color:var(--muted,#627066)}.provider-meta .warn{color:#9a6400;font-weight:700}.provider-error{margin-top:7px;padding:6px 8px;border-radius:9px;background:#fff3f0;color:#8e3e2e;font-size:.76rem;overflow-wrap:anywhere}
.calendar-provider-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.compact-actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.provider-auth-notice{display:grid;gap:4px;margin-top:8px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--accent) 8%,transparent);font-size:.82rem}.provider-auth-notice span{color:var(--muted,#627066)}
.calendar-provider-conflicts:not(:empty){margin-top:14px;border-top:1px solid var(--line,#dfe5df);padding-top:12px}.provider-conflict-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.provider-conflict{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:9px 10px;border:1px solid color-mix(in srgb,#b88742 48%,var(--line,#dfe5df));border-radius:11px;background:color-mix(in srgb,#b88742 5%,var(--card,#fff))}.provider-conflict small{display:block;margin-top:2px;color:var(--muted,#627066)}
@media(max-width:820px){.provider-semantics{grid-template-columns:1fr}.calendar-provider-row{grid-template-columns:40px minmax(0,1fr)}.calendar-provider-actions{grid-column:2;justify-content:flex-start}.provider-conflict{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.calendar-provider-row{grid-template-columns:1fr}.calendar-provider-icon{width:36px;height:36px}.calendar-provider-actions{grid-column:1}.calendar-provider-title{align-items:flex-start}.calendar-provider-card .card-heading{align-items:flex-start}.calendar-provider-card .card-heading>.actions{width:100%}.calendar-provider-card .card-heading>.actions button{flex:1}.provider-conflict .actions{width:100%}.provider-conflict .actions button{flex:1}}

/* FN22B mobile quality fixes: neutralize the legacy fixed-sidebar inset and
   give Calendar range controls their own full-width layout. */
@media(max-width:620px){
  .fn-sidebar{inset:auto;top:0;left:0;right:auto;bottom:auto;min-height:0}
  #calendar>.toolbar{flex-direction:column;align-items:stretch}
  #calendar .toolbar-copy{max-width:none}
  .calendar-toolbar{grid-template-columns:40px minmax(0,1fr) minmax(0,1fr) 40px;width:100%}
  .calendar-toolbar input[type="date"]{width:100%;min-width:0;font-size:12px}
  .calendar-toolbar #calendarNewEvent{grid-column:1/-1;width:100%}
}
@media(max-width:620px){
  .business-context-nav{display:flex;flex-direction:row;gap:4px;margin:0;min-width:max-content}
  .business-context-nav .nav{width:42px;height:42px;justify-content:center;padding:0!important}
  .business-context-nav .business-subnav{padding-left:0!important}
}

/* FN22C – Inventory Reality Loop */
.pantry-reality-card{margin:16px 0}.reality-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}.reality-summary-grid>div{border:1px solid var(--border);border-radius:10px;padding:10px;background:var(--surface-2)}.reality-summary-grid span,.reality-summary-grid b,.reality-summary-grid small{display:block}.reality-summary-grid span,.reality-summary-grid small{font-size:10px;color:var(--muted)}.reality-summary-grid b{font-size:20px;margin:3px 0}.reality-columns{display:grid;grid-template-columns:1.2fr 1fr;gap:16px}.reality-columns h4{margin:0 0 8px}.reality-suggestion-row,.reality-movement-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--border);padding:10px 0}.reality-suggestion-row:first-of-type,.reality-movement-row:first-of-type{border-top:0}.reality-suggestion-row strong,.reality-suggestion-row small,.reality-movement-row strong,.reality-movement-row small{display:block}.reality-suggestion-row small,.reality-movement-row small{font-size:10px;color:var(--muted);margin-top:2px}.reality-movement-row>div:last-child{text-align:right}.reality-preview-list{display:grid;gap:10px;margin:10px 0 14px}.reality-preview-product{display:grid;grid-template-columns:1fr auto;gap:6px 12px;border:1px solid var(--border);border-radius:12px;padding:12px;background:var(--surface-2)}.reality-preview-product strong,.reality-preview-product small,.reality-preview-product b{display:block}.reality-preview-product>div:nth-child(2){text-align:right}.reality-allocation-list{grid-column:1/-1;display:grid;gap:3px;border-top:1px dashed var(--border);padding-top:8px}.pantry-reality-actions{margin-top:12px;flex-wrap:wrap}.chip.warning{border-color:#c9972d;color:#8b6412;background:rgba(201,151,45,.10)}
@media(max-width:900px){.reality-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.reality-columns{grid-template-columns:1fr}}
@media(max-width:620px){.reality-summary-grid{grid-template-columns:1fr 1fr}.reality-suggestion-row,.reality-movement-row{align-items:flex-start;flex-direction:column}.reality-suggestion-row .row-actions{width:100%;justify-content:space-between}.reality-movement-row>div:last-child{text-align:left}.reality-preview-product{grid-template-columns:1fr}.reality-preview-product>div:nth-child(2){text-align:left}}
/* FN22D unified notifications */
.notification-source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 10px}.notification-source-grid label,.notification-channel-grid label{display:flex;gap:8px;align-items:center;font-size:11px}.notification-channel-grid{display:grid;gap:6px;padding:8px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.notification-channel-grid .muted-option{color:var(--muted)}.notification-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.notification-priority{font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--line);border-radius:999px;padding:2px 6px}.calendar-notification.priority-high,.calendar-notification.priority-urgent{border-color:color-mix(in srgb,var(--accent) 48%,var(--line))}.calendar-notification.safety{border-style:solid;box-shadow:inset 3px 0 0 var(--accent)}.notification-actions{display:flex;gap:4px;align-items:flex-start}.notification-price-watch-form{display:grid;gap:9px}.notification-price-watch-list{display:grid;gap:7px;margin-top:10px}.notification-price-watch-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:10px;padding:8px 9px}.notification-price-watch-row>div{display:grid;gap:2px}.notification-price-watch-row small{color:var(--muted)}
@media(max-width:680px){.notification-source-grid{grid-template-columns:1fr}.notification-title-row{align-items:flex-start;flex-direction:column}.notification-actions{grid-column:2}}
/* FN22E Global Search & Quick Capture */
.global-search-trigger{display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);padding:8px 11px;color:var(--muted);cursor:pointer}.global-search-trigger kbd{font-size:9px;border:1px solid var(--line);padding:2px 5px;border-radius:5px}.global-command-dialog{width:min(820px,calc(100vw - 24px));max-height:calc(100vh - 24px);border:1px solid var(--line);border-radius:18px;padding:0}.global-command-shell{padding:18px;display:grid;gap:12px}.global-command-tabs{display:flex;gap:6px}.global-command-tabs button.active{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent)}#globalSearchInput{width:100%;font-size:14px;padding:12px}.global-search-results{display:grid;gap:5px;max-height:500px;overflow:auto;margin-top:10px}.global-search-result{display:flex;justify-content:space-between;gap:12px;text-align:left;border:1px solid var(--line);background:var(--card);border-radius:10px;padding:10px;cursor:pointer}.global-search-result small{display:block;color:var(--muted)}.quick-capture-preview{margin-top:10px;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface-2)}@media(max-width:760px){.global-search-trigger span,.global-search-trigger kbd{display:none}.global-search-trigger{width:38px;justify-content:center;padding:8px}.global-command-dialog{width:calc(100vw - 12px)}}

/* FN22F Household Operations 2.0 */
.operations-main-toolbar{align-items:flex-end}.operations-filterbar{display:grid;grid-template-columns:minmax(220px,1.6fr) minmax(150px,.65fr) minmax(180px,.85fr) auto;gap:12px;align-items:end;margin-bottom:16px}.operations-filterbar label{display:grid;gap:6px;min-width:0}.operations-filterbar label>span{font-size:.76rem;font-weight:750;color:var(--muted)}.operations-filterbar input,.operations-filterbar select{width:100%;min-width:0}.operations-search-field{min-width:0}.operation-title-line{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.operation-weight,.absence-conflict{display:inline-flex;align-items:center;white-space:nowrap;border-radius:999px;padding:3px 7px;font-size:.7rem;font-weight:750;background:color-mix(in srgb,var(--accent) 9%,var(--card));color:var(--muted)}.absence-conflict{background:color-mix(in srgb,#cf7b26 16%,var(--card));color:#9a5b1d}.operation-occurrence-row.has-absence-conflict{border-inline-start:3px solid #cf7b26;padding-inline-start:10px}.operations-fairness,.operations-absences,.operations-rewards{display:grid;gap:10px}.operation-fairness-row,.operation-absence-row,.operation-reward-row{padding:10px 0;border-bottom:1px solid var(--line)}.operation-fairness-row:last-child,.operation-absence-row:last-child,.operation-reward-row:last-child{border-bottom:0}.operation-fairness-head,.operation-absence-row,.operation-reward-row{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.operation-fairness-head>span{font-variant-numeric:tabular-nums;font-size:.76rem;font-weight:800;padding:3px 7px;border-radius:999px;background:var(--soft)}.operation-fairness-head .load-over{color:#a35b24;background:color-mix(in srgb,#cf7b26 13%,var(--card))}.operation-fairness-head .load-under{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--card))}.operation-fairness-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:9px}.operation-fairness-metrics>span{display:grid;gap:2px;padding:7px 8px;border-radius:9px;background:color-mix(in srgb,var(--bg) 65%,var(--card));min-width:0}.operation-fairness-metrics small{font-size:.64rem;color:var(--muted);white-space:normal}.operation-fairness-metrics b{font-size:.82rem;font-variant-numeric:tabular-nums}.operation-absence-row>div:first-child{min-width:0}.operation-absence-row small{display:block;color:var(--muted);margin-top:3px}.operation-reward-form{display:grid;gap:10px;margin-bottom:10px}.operation-reward-form .row{display:grid;grid-template-columns:1fr 1fr;gap:9px}.operation-reward-form label{display:grid;gap:5px}.operation-reward-form .compact-check{display:flex;align-items:center;gap:8px}.operation-reward-row{align-items:center}.operation-reward-row strong{white-space:nowrap}.operations-toolbar{max-width:100%}.operations-toolbar input[type="date"]{min-width:145px}
@media(max-width:1080px){.operations-filterbar{grid-template-columns:minmax(200px,1.25fr) minmax(140px,.7fr) minmax(170px,.8fr)}.operations-filterbar #operationClearFilters{grid-column:3}.operation-fairness-metrics{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.operations-main-toolbar{align-items:stretch}.operations-toolbar{display:grid;grid-template-columns:1fr 1fr;width:100%}.operations-toolbar button{min-width:0}.operations-filterbar{grid-template-columns:1fr 1fr}.operations-filterbar .operations-search-field{grid-column:1/-1}.operations-filterbar #operationClearFilters{grid-column:auto}.operation-reward-form .row{grid-template-columns:1fr}.operation-absence-row{align-items:flex-start}.operation-absence-row .operation-row-actions{justify-content:flex-end}}
@media(max-width:520px){.operations-toolbar{grid-template-columns:1fr}.operations-toolbar input[type="date"]{width:100%}.operations-filterbar{grid-template-columns:1fr}.operations-filterbar .operations-search-field,.operations-filterbar #operationClearFilters{grid-column:auto}.operation-fairness-metrics{grid-template-columns:1fr 1fr}.operation-fairness-head{align-items:center}}

/* FN22H · Recycle Bin & destructive-action safety */
.recycle-shell{display:grid;gap:14px}.recycle-summary-card{display:flex;align-items:center;justify-content:space-between;gap:18px}.recycle-summary-card h3{margin:4px 0 6px}.recycle-summary-metrics{display:grid;grid-template-columns:repeat(2,minmax(110px,1fr));gap:10px;min-width:min(340px,100%)}.recycle-summary-metrics span{display:grid;gap:4px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}.recycle-summary-metrics small{color:var(--muted);font-size:8px}.recycle-summary-metrics b{font-size:16px}.recycle-audit-card .card-heading{align-items:flex-end}.recycle-audit-card select{max-width:210px}.recycle-list{display:grid;gap:10px;margin-top:12px}.recycle-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--card)}.recycle-row.restored,.recycle-row.purged{opacity:.72}.recycle-row.expired{border-style:dashed}.recycle-row-main{min-width:0;display:grid;gap:8px}.recycle-row-title{display:flex;align-items:center;gap:9px;min-width:0}.recycle-row-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recycle-audit-line{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:8px}.recycle-audit-line b{color:var(--text)}.recycle-state-note{color:var(--muted)}.recycle-row-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.danger-button{background:color-mix(in srgb,#b43b36 10%,var(--card));color:#9b302c;border:1px solid color-mix(in srgb,#b43b36 35%,var(--line));border-radius:9px;padding:9px 12px;cursor:pointer;font-weight:750}.danger-button:hover{background:color-mix(in srgb,#b43b36 16%,var(--card))}@media(max-width:720px){.recycle-summary-card{align-items:stretch;flex-direction:column}.recycle-summary-metrics{min-width:0;width:100%}.recycle-row{grid-template-columns:1fr}.recycle-row-actions{justify-content:stretch}.recycle-row-actions button{flex:1}.recycle-audit-card .card-heading{align-items:stretch;flex-direction:column}.recycle-audit-card select{max-width:none;width:100%}}

/* FN23B Quality Gate 2.1: a keyboard user must never lose the active control. */
:where(button,a[href],input,select,textarea,summary,[tabindex]:not([tabindex="-1"])):focus-visible{outline:3px solid #0b66c3!important;outline-offset:2px!important;box-shadow:0 0 0 1px #fff!important}


/* FN23B Identity & Account Security 2.0 */
.identity-security-card{grid-column:1/-1}.identity-security-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0 18px}.identity-security-metrics>div{border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;gap:4px}.identity-security-metrics span,.identity-session-row small,.identity-event-row small{color:var(--muted);font-size:.82rem}.identity-subsection{border-top:1px solid var(--line);padding-top:16px;margin-top:18px}.identity-session-list,.identity-event-list{display:grid;gap:8px}.identity-session-row,.identity-event-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:12px;padding:11px 12px}.identity-session-row>div,.identity-event-row>div{display:grid;gap:3px}.identity-session-row.current{border-width:2px}.identity-password-panel{margin:12px 0}.identity-password-panel summary{cursor:pointer;font-weight:700}.compact-form{margin-top:12px;max-width:620px}.entry-recovery-panel{display:grid;gap:9px;margin-top:8px;padding-top:10px;border-top:1px solid var(--line)}
@media(max-width:720px){.identity-security-metrics{grid-template-columns:1fr 1fr}.identity-session-row,.identity-event-row{align-items:flex-start;flex-direction:column}.identity-session-row button{width:100%}}
/* FN23E – Backup, Recovery & Disaster Safety 2.0 */
.cloud-recovery-section{border-top:1px solid var(--line);padding-top:1rem}
.cloud-recovery-section .backup-row small{max-width:760px}

/* FN23F · Real Notification Delivery */
.notification-delivery-status{display:flex;gap:.5rem;flex-wrap:wrap;margin:.65rem 0 .25rem}
.notification-delivery-chip{display:inline-flex;flex-direction:column;gap:.1rem;padding:.45rem .65rem;border:1px solid var(--border,#d8d8d2);border-radius:12px;background:var(--surface-2,#f7f5ef);min-width:120px}
.notification-delivery-chip b{font-size:.82rem}.notification-delivery-chip small{font-size:.72rem;opacity:.78}
.notification-delivery-chip.available{border-color:color-mix(in srgb,var(--accent,#2a8c86) 42%,transparent)}
.notification-delivery-chip.unavailable{opacity:.62}

/* FN23I · Desktop Distribution & Update System */
.desktop-update-card{grid-column:1/-1}
.desktop-update-metrics{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;margin:14px 0}
.desktop-update-metrics>div{display:flex;flex-direction:column;gap:4px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft)}
.desktop-update-metrics span{font-size:.78rem;color:var(--muted)}
.desktop-update-metrics b{font-size:.9rem;overflow-wrap:anywhere}
.desktop-update-settings{margin:12px 0}
.desktop-update-actions{flex-wrap:wrap;margin-top:12px}
.desktop-update-security{margin-top:12px}
@media(max-width:1050px){.desktop-update-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.desktop-update-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.desktop-update-actions button{width:100%}}

/* FN23K · Operations, Diagnostics & Observability */
.observability-card details{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.observability-card summary{cursor:pointer;font-weight:750}
.observability-metrics b{text-transform:uppercase}

/* FN24J · Consumption & Stock Prediction */
.pantry-prediction-card{margin-top:14px}
.pantry-prediction-card details{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.pantry-prediction-card summary{cursor:pointer;font-weight:750}

/* FN24J · Household Preference Learning */
.assistant-feedback-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:8px;border-top:1px solid var(--line)}
.assistant-rec-main{display:grid;gap:8px}
.assistant-cuisine-preferences{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.assistant-preference-card .assistant-context{margin-top:10px}

/* FN24J · Family Assistant Recommendation Engine 2.0 */
.assistant-rec-title{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap}.assistant-score-breakdown{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.assistant-score-chip{font-size:9px;font-weight:750;padding:4px 6px;border-radius:999px;background:color-mix(in srgb,var(--accent) 9%,var(--card));border:1px solid color-mix(in srgb,var(--accent) 20%,var(--line))}.assistant-score-chip.negative{background:color-mix(in srgb,#a54848 8%,var(--card));border-color:color-mix(in srgb,#a54848 25%,var(--line))}.assistant-tradeoffs{display:block;margin-top:6px}.assistant-recommendation{display:grid}.assistant-rec-main{display:flex!important;justify-content:space-between;gap:12px}.assistant-rec-main>div:first-child{min-width:0;flex:1}.assistant-rec-main>div:last-child{display:grid;justify-items:end;gap:4px;white-space:nowrap}@media(max-width:720px){.assistant-rec-main{display:grid!important}.assistant-rec-main>div:last-child{justify-items:start}.assistant-rec-title{align-items:flex-start}}

/* FN24J · keep proactive alert controls compact inside the calendar side column. */
.proactive-alert-card{min-width:0;overflow:hidden}
.proactive-alert-card .card-heading{align-items:flex-start;flex-wrap:wrap}
.proactive-alert-card .card-heading>div{min-width:0}
.proactive-alert-card .card-heading>button{max-width:100%}
.proactive-alert-card .desktop-update-metrics{grid-template-columns:1fr}
.proactive-alert-card .row{grid-template-columns:1fr}
.proactive-alert-card select,.proactive-alert-card input{min-width:0;max-width:100%}
.proactive-alert-card .chip-row{min-width:0;overflow-wrap:anywhere}

/* FN24J · Explainability & User Control */
.assistant-control-card form{display:grid;gap:10px}.assistant-constraint-list{display:grid;gap:6px;margin-top:10px}.assistant-constraint-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px;border:1px solid var(--line);border-radius:10px}.assistant-constraint-row span{display:grid}.assistant-explanation-detail{margin-top:10px;padding:10px;border-top:1px solid var(--line);display:grid;gap:7px}.assistant-explanation-detail>div{display:flex;flex-wrap:wrap;gap:5px}.assistant-explanation-detail .negative{opacity:.85}

/* FN24J · Recipe card sticky action toolbar */
.recipe-card-dialog{padding:0;overflow:auto}
.recipe-card-content{position:relative;padding:0 22px 22px}
.recipe-card-sticky-toolbar{position:sticky;top:0;z-index:45;display:flex;justify-content:flex-end;align-items:center;min-height:58px;margin:0 -22px 14px;padding:10px 22px;border-bottom:1px solid var(--line);background:var(--card);box-shadow:0 8px 20px rgba(20,35,28,.10)}
.recipe-card-sticky-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap}
.recipe-card-sticky-actions button{white-space:nowrap}
@media(max-width:680px){.recipe-card-content{padding:0 14px 18px}.recipe-card-sticky-toolbar{margin:0 -14px 12px;padding:8px 14px;min-height:52px}.recipe-card-sticky-actions{width:100%;display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}.recipe-card-sticky-actions button{min-width:0;padding-inline:8px}}

/* FN24J · Recipe editor save/cancel stay available while the long form scrolls. */
.recipe-editor-dialog{padding:0;overflow:auto}
.recipe-editor-dialog #recipeForm{padding:0 22px 22px}
.recipe-editor-sticky-toolbar{position:sticky;top:0;z-index:46;margin:0 -22px 14px;padding:10px 22px;background:var(--card);border-bottom:1px solid var(--line);box-shadow:0 8px 20px rgba(20,35,28,.10)}
.recipe-editor-sticky-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
@media(max-width:680px){.recipe-editor-dialog #recipeForm{padding:0 14px 18px}.recipe-editor-sticky-toolbar{margin:0 -14px 12px;padding:8px 14px;gap:8px}.recipe-editor-sticky-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.recipe-editor-sticky-actions button{min-width:0}}

/* FN24J · Recipe catalog row containment after adding the explicit open action. */
.recipe-layout>article.card,.recipe-list{min-width:0;max-width:100%}
.recipe-row{max-width:100%;min-width:0;grid-template-columns:minmax(0,1.45fr) minmax(96px,.55fr) minmax(112px,.65fr) minmax(92px,.55fr) 76px;gap:10px;padding-inline:12px;overflow:hidden}
.recipe-row>*{min-width:0}
.recipe-row-actions{width:76px;min-width:76px;display:flex;align-items:center;justify-content:flex-end;gap:6px}
.recipe-row-open{width:32px;height:32px}
@media(max-width:1240px) and (min-width:1101px){.recipe-layout{grid-template-columns:minmax(0,1fr) minmax(320px,.82fr)}.recipe-row{grid-template-columns:minmax(0,1.35fr) minmax(88px,.5fr) minmax(100px,.6fr) minmax(82px,.5fr) 70px;gap:8px;padding-inline:10px}.recipe-row-actions{width:70px;min-width:70px;gap:4px}.recipe-row-open{width:30px;height:30px}}

/* FN24J · Shopping Intelligence Bridge */
.assistant-shopping-bridge-dialog{max-width:min(820px,94vw)}.assistant-shopping-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.assistant-shopping-summary>div{display:grid;gap:3px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--card)}.assistant-shopping-summary span{font-size:11px;color:var(--muted)}.assistant-shopping-items{display:grid;gap:7px;max-height:42vh;overflow:auto}.assistant-shopping-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:10px}.assistant-shopping-row>div{display:grid;gap:2px;min-width:0}.assistant-shopping-row small{color:var(--muted)}.assistant-shopping-row.covered{opacity:.72}.assistant-shopping-row strong{white-space:nowrap}@media(max-width:700px){.assistant-shopping-summary{grid-template-columns:1fr}.assistant-shopping-row{align-items:flex-start;flex-direction:column}.assistant-shopping-row strong{white-space:normal}}

/* FN25J: RTL-ready shell primitives. Individual RTL language packs may opt in via meta.direction. */
html[dir="rtl"] .sidebar{inset:0 0 0 auto}
html[dir="rtl"] body > main{margin-left:0;margin-right:245px}
html[dir="rtl"] body[data-sidebar="compact"] > main{margin-left:0;margin-right:84px}
html[dir="rtl"] .nav,html[dir="rtl"] .community-create-menu button,html[dir="rtl"] .community-connection-profile{text-align:right}
html[dir="rtl"] .status i{margin-right:0;margin-left:5px}
html[dir="rtl"] .community-audience-badge{margin-left:0;margin-right:6px}
html[dir="rtl"] .business-profile-store-row,html[dir="rtl"] .business-profile-owner-actions,html[dir="rtl"] .business-placement-analytics-card,html[dir="rtl"] .business-funnel-stage{border-left-width:1px;border-right:4px solid color-mix(in srgb,var(--accent) 62%,var(--line))}
@media(max-width:900px){html[dir="rtl"] body > main,html[dir="rtl"] body[data-sidebar="compact"] > main{margin-right:0}}

/* FN26A Shopping Note Handoff & Fulfillment */
.shopping-item-state-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:5px}.shopping-fulfillment{font-size:9px}.shopping-fulfillment.purchased{font-weight:800}.shopping-fulfillment.unavailable{border-style:dashed}.shopping-item.unavailable{background:color-mix(in srgb,var(--warning,#d99b2b) 5%,transparent)}.recipe-note-btn{min-width:32px}.shopping-head-actions{flex-wrap:wrap}

.shopping-cart-draft-dialog{max-width:min(920px,94vw)}.cart-draft-card{display:grid;gap:10px}.cart-draft-list{display:grid;gap:8px}.cart-draft-history-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--text);padding:9px 10px;cursor:pointer}.cart-draft-history-row>div{display:grid;gap:2px;min-width:0}.cart-draft-history-row small{color:var(--muted)}.cart-draft-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}.cart-draft-summary>div{display:grid;gap:3px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--card)}.cart-draft-summary span{font-size:11px;color:var(--muted)}.cart-draft-lines{display:grid;gap:8px;max-height:42vh;overflow:auto;padding-right:3px}.cart-draft-line{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(190px,.8fr);gap:14px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:12px}.cart-draft-line>div{display:grid;gap:3px}.cart-draft-line>div:last-child{text-align:right}.cart-draft-line small{color:var(--muted)}.cart-draft-line.unmatched{border-style:dashed}.cart-draft-line.unmatched b{color:var(--warning,#a56a00)}@media(max-width:760px){.cart-draft-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.cart-draft-line{grid-template-columns:1fr}.cart-draft-line>div:last-child{text-align:left}}

/* FN26C · Collaborative Shopping Refinement */
.shopping-collaboration-card{display:grid;gap:10px}.shopping-collab-participants,.shopping-collab-stores{display:grid;gap:7px}.shopping-collab-title{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.shopping-collab-chiprow{display:flex;flex-wrap:wrap;gap:6px}.shopping-collab-chiprow .chip.active{font-weight:800;border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 10%,var(--card))}.shopping-store-group{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 9px;border:1px solid var(--line);border-radius:10px}.shopping-store-group>div{display:grid;gap:2px;min-width:0}.shopping-store-group small{color:var(--muted)}.shopping-route-chip,.shopping-claim-chip{font-size:9px}.shopping-item.claimed-other{opacity:.72}.shopping-item.carried-over{opacity:.66}.shopping-fulfillment.carried{border-style:dashed}.shopping-item-state-line .small{padding:5px 7px}@media(max-width:700px){.shopping-collaboration-card .row{grid-template-columns:1fr}.shopping-store-group{align-items:flex-start}}

/* FN27B · Help, Onboarding & Page Guide Library */
.fn-topbar-actions{display:flex;align-items:center;gap:8px;flex:1;justify-content:center;min-width:0}
.help-trigger{display:flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:12px;padding:8px 11px;cursor:pointer;white-space:nowrap}
.help-trigger:hover,.help-trigger[aria-expanded="true"]{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--card))}
.help-trigger b{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 12%,var(--surface-2));font-size:12px}
.help-scrim{position:fixed;inset:0;background:rgba(29,36,29,.22);z-index:79;backdrop-filter:blur(1px)}
.help-drawer{position:fixed;top:0;right:0;width:min(430px,94vw);height:100vh;background:var(--card);border-left:1px solid var(--line);box-shadow:-18px 0 42px rgba(20,28,20,.12);z-index:80;transform:translateX(104%);transition:transform .22s ease;display:flex;flex-direction:column;padding:0;overflow:hidden}
.help-drawer.open{transform:translateX(0)}
.help-drawer-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:22px 22px 16px;border-bottom:1px solid var(--line)}
.help-drawer-head h2{font-size:21px;margin:3px 0 5px;color:var(--text)}
.help-tabs{display:flex;gap:5px;padding:12px 16px 0}
.help-tabs button{flex:1;border:0;border-bottom:2px solid transparent;background:transparent;padding:10px 8px;color:var(--muted);cursor:pointer;font-weight:600}
.help-tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}
.help-pane{padding:16px 18px 24px;overflow:auto;min-height:0}
.help-topic-list{display:grid;gap:10px}
.help-topic{border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--surface-1,var(--card))}
.help-topic h3{font-size:14px;margin:0 0 5px;color:var(--text)}
.help-topic p{font-size:11px;line-height:1.55;color:var(--muted);margin:0 0 11px}
.help-topic-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}
.help-topic-actions small{color:var(--muted);font-size:10px}
.help-topic button{padding:7px 10px}
.help-start-summary{border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));background:color-mix(in srgb,var(--accent) 5%,var(--card));border-radius:14px;padding:14px;margin-bottom:12px}
.help-start-summary h3{margin:0 0 5px;font-size:15px}.help-start-summary p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}
.help-checklist{display:grid;gap:7px}
.help-check-step{display:grid;grid-template-columns:25px 1fr auto;align-items:center;gap:9px;border:1px solid var(--line);border-radius:11px;padding:10px;background:var(--card)}
.help-check-step i{width:22px;height:22px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:10px;color:var(--muted)}
.help-check-step.done i{background:color-mix(in srgb,var(--accent) 15%,white);border-color:color-mix(in srgb,var(--accent) 40%,var(--line));color:var(--accent)}
.help-check-step b{font-size:11px}.help-check-step small{font-size:9px;color:var(--muted)}
.help-pane-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.onboarding-card{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:14px;border:1px solid color-mix(in srgb,var(--accent) 25%,var(--line));border-radius:16px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 7%,var(--card)),var(--card));padding:15px 17px}
.onboarding-card-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 13%,white);color:var(--accent);font-size:20px;font-weight:800}
.onboarding-card-copy h3{margin:2px 0 4px;font-size:15px}.onboarding-card-copy p{margin:0;color:var(--muted);font-size:10px;line-height:1.5}
.onboarding-card-actions{display:flex;gap:7px;align-items:center}
.onboarding-progress{display:flex;align-items:center;gap:9px;margin-top:9px}.onboarding-progress>span{display:block;width:min(230px,36vw);height:6px;background:var(--surface-2);border-radius:99px;overflow:hidden}.onboarding-progress i{display:block;height:100%;width:0;background:var(--accent);border-radius:inherit;transition:width .2s}.onboarding-progress b{font-size:9px;color:var(--muted)}
.tutorial-layer{position:fixed;inset:0;z-index:120;pointer-events:none}
.tutorial-focus{position:fixed;border:2px solid var(--accent);border-radius:12px;box-shadow:0 0 0 9999px rgba(21,28,21,.66),0 0 0 5px color-mix(in srgb,var(--accent) 20%,transparent);transition:all .18s ease;pointer-events:none}
.tutorial-card{position:fixed;width:min(360px,calc(100vw - 24px));background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 48px rgba(14,20,14,.22);padding:16px;pointer-events:auto}
.tutorial-card-head{display:flex;justify-content:space-between;align-items:center}.tutorial-card h3{margin:8px 0 7px;font-size:17px}.tutorial-card p{margin:0;color:var(--muted);font-size:11px;line-height:1.6}.tutorial-actions{display:flex;justify-content:space-between;gap:8px;margin-top:14px}.tutorial-dont-show{display:flex;gap:7px;align-items:center;margin-top:12px;color:var(--muted);font-size:10px}.tutorial-target{position:relative;z-index:121!important}
body.help-open{overflow:hidden}
@media(max-width:980px){.fn-topbar-actions{justify-content:flex-end}.help-trigger span{display:none}.help-trigger{width:38px;justify-content:center;padding:8px}.help-trigger b{background:transparent}}
@media(max-width:760px){.fn-topbar{gap:6px}.fn-breadcrumb{min-width:0}.fn-breadcrumb span:first-child,.fn-breadcrumb b{display:none}.fn-breadcrumb #pageTitle{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}.fn-topbar-actions{flex:0 0 auto}.onboarding-card{grid-template-columns:38px 1fr}.onboarding-card-actions{grid-column:1/-1;justify-content:flex-end}.help-drawer{width:100vw}.tutorial-card{left:12px!important;right:12px!important;width:auto}.tutorial-focus{border-radius:9px}}

/* FN27B · Task-oriented page guide library */
.help-topic-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:10px}.help-topic-toolbar input{flex:1;min-width:0;border:1px solid var(--line);border-radius:11px;background:var(--card);color:var(--text);padding:9px 11px}.help-topic-toolbar .chip{min-width:28px;text-align:center}.help-topic-kicker{font-size:8px;font-weight:800;letter-spacing:.08em;color:var(--accent);margin-bottom:5px}.help-topic.task-guide{border-color:color-mix(in srgb,var(--accent) 20%,var(--line))}.help-topic.page-guide .help-topic-kicker{color:var(--muted)}.help-topic-safety{background:color-mix(in srgb,var(--accent) 3%,var(--card));border-style:dashed}.help-topic-empty{text-align:center;padding:22px 14px}.help-topic-empty p{margin-bottom:0}

/* FN27D · Community Messaging Privacy, Safety & Notifications */
.community-message-nav-badge{display:inline-grid;min-width:18px;height:18px;padding:0 5px;place-items:center;border-radius:99px;background:var(--accent);color:white;font-size:9px;font-weight:800;vertical-align:middle;margin-left:4px}
.community-message-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}.community-message-head h3{margin:2px 0 4px}.community-messaging-layout{display:grid;grid-template-columns:minmax(220px,32%) minmax(0,1fr);min-height:520px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card)}.community-conversation-pane{border-right:1px solid var(--line);background:var(--surface-1,var(--card));min-width:0}.community-conversation-list{display:grid;align-content:start;max-height:620px;overflow:auto}.community-conversation-row{width:100%;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:9px;align-items:center;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);padding:11px;cursor:pointer}.community-conversation-row:hover,.community-conversation-row.active{background:color-mix(in srgb,var(--accent) 6%,var(--card))}.community-conversation-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;background:var(--surface-2);display:grid;place-items:center;font-size:11px;font-weight:800}.community-conversation-copy{min-width:0;display:grid;gap:2px}.community-conversation-copy b,.community-conversation-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.community-conversation-copy small{color:var(--muted);font-size:9px}.community-conversation-meta{display:grid;justify-items:end;gap:4px}.community-thread-pane{min-width:0;display:flex;flex-direction:column;background:var(--card)}.community-thread-pane>.empty{margin:auto;padding:28px;max-width:520px}.community-thread-header {display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line);min-height:64px}.community-thread-person{display:flex;align-items:center;gap:9px;min-width:0}.community-thread-person img,.community-thread-person .community-conversation-avatar{width:38px;height:38px}.community-thread-person>div{display:grid;gap:2px;min-width:0}.community-thread-person small{color:var(--muted)}.community-thread-messages{display:flex;flex-direction:column;gap:9px;padding:16px;overflow:auto;min-height:340px;max-height:500px}.community-message-bubble{max-width:min(76%,560px);display:grid;gap:3px}.community-message-bubble>div{border:1px solid var(--line);border-radius:14px;padding:9px 11px;background:var(--surface-1,var(--card));overflow-wrap:anywhere}.community-message-bubble.mine{align-self:flex-end}.community-message-bubble.mine>div{background:color-mix(in srgb,var(--accent) 9%,var(--card));border-color:color-mix(in srgb,var(--accent) 25%,var(--line))}.community-message-bubble.theirs{align-self:flex-start}.community-message-bubble p{margin:0;line-height:1.5}.community-message-bubble>small{font-size:8px;color:var(--muted)}.community-message-bubble.mine>small{text-align:right}.community-message-compose{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;border-top:1px solid var(--line);padding:11px 12px;margin-top:auto}.community-message-compose textarea{resize:vertical;min-height:44px;max-height:140px}.community-message-attachment-preview{grid-column:1/-1}.community-message-attachment-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:9px;border:1px solid var(--line);border-radius:11px;padding:8px;background:var(--card)}.community-message-attachment-card img{width:40px;height:40px;object-fit:cover;border-radius:9px;background:var(--surface-2)}.community-message-attachment-card>div{display:grid;gap:2px;min-width:0}.community-message-attachment-card b,.community-message-attachment-card small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.community-message-attachment-card small{color:var(--muted)}.community-message-compose-dialog{width:min(620px,94vw)}.community-message-recipient{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:11px;padding:9px;background:var(--surface-1,var(--card))}.community-message-recipient:empty{display:none}.danger-soft{border-color:color-mix(in srgb,var(--danger,#b84a4a) 32%,var(--line));color:var(--danger,#a53b3b)}
@media(max-width:820px){.community-message-head{align-items:stretch;flex-direction:column}.community-messaging-layout{grid-template-columns:1fr;min-height:0}.community-conversation-pane{border-right:0;border-bottom:1px solid var(--line)}.community-conversation-list{max-height:230px}.community-thread-messages{max-height:48vh}.community-message-bubble{max-width:88%}}
@media(max-width:560px){.community-thread-header{align-items:flex-start;flex-direction:column}.community-message-compose{grid-template-columns:1fr}.community-message-compose button{justify-self:end}.community-message-bubble{max-width:94%}.community-message-attachment-card{grid-template-columns:36px minmax(0,1fr)}.community-message-attachment-card img{width:34px;height:34px}.community-message-attachment-card button{grid-column:1/-1;justify-self:end}}
.community-message-status{display:inline-flex;width:max-content;margin-top:3px;border:1px solid var(--line);border-radius:99px;padding:2px 6px;font-size:8px;color:var(--muted)}.community-message-status.request{font-weight:800;color:var(--accent);border-color:color-mix(in srgb,var(--accent) 30%,var(--line))}.community-conversation-unread{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:99px;background:var(--accent);color:#fff;font-size:9px;font-weight:800}

/* FN27D · messaging safety controls */
.community-thread-action-stack{display:flex;flex-direction:column;gap:8px;align-items:flex-end}.community-message-status-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.community-message-status.muted,.community-message-status.archived{opacity:.78}.community-message-bubble footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px}.community-message-inline-action{border:0;background:transparent;text-decoration:underline;cursor:pointer;font:inherit;font-size:.78rem;padding:0}.community-message-privacy-form{margin-top:18px;padding-top:18px;border-top:1px solid var(--line,#d8ded7)}.community-message-protected-note{padding:10px 12px;border-radius:10px;background:var(--surface-soft,#f3f6f2);font-size:.88rem;line-height:1.45}.community-message-protected-note.hidden{display:none}@media(max-width:760px){.community-thread-action-stack{align-items:stretch;width:100%}.community-thread-action-stack .actions{justify-content:flex-start;flex-wrap:wrap}.community-message-bubble footer{align-items:flex-start;flex-direction:column}}


/* FN27F · Business Inbox & Contact Requests */
.nav-badge{margin-left:auto;min-width:1.35rem;height:1.35rem;padding:0 .35rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:800;background:var(--accent);color:#fff}
.business-inbox-layout{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:16px;align-items:start}
.business-inbox-sidebar,.business-inbox-thread-card{min-height:540px}
.business-inbox-counts{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.business-inbox-counts .chip{cursor:pointer}.business-inbox-counts .chip.active{outline:2px solid var(--accent);outline-offset:1px}
.business-inbox-list{display:grid;gap:8px}.business-inbox-item{width:100%;display:flex;justify-content:space-between;gap:12px;text-align:left;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--card);color:inherit}.business-inbox-item.active{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}.business-inbox-item span{display:grid;gap:3px}.business-inbox-item em{font-style:normal;font-size:.75rem;color:var(--muted)}
.business-contact-timeline{display:grid;gap:10px;max-height:430px;overflow:auto;padding:6px 2px 12px}.business-contact-message{max-width:min(82%,720px);padding:10px 12px;border-radius:14px;background:var(--surface-2);border:1px solid var(--border)}.business-contact-message.business{margin-left:auto;background:color-mix(in srgb,var(--accent) 10%,var(--card))}.business-contact-message>div{display:flex;gap:10px;align-items:baseline;justify-content:space-between}.business-contact-message p{margin:.35rem 0 0;white-space:pre-wrap}.business-contact-message small{color:var(--muted)}
.business-contact-dialog form{display:grid;gap:14px}.business-inbox-status-actions{align-items:end}.inline-toggle{display:flex;gap:8px;align-items:center;white-space:nowrap}
@media (max-width:900px){.business-inbox-layout{grid-template-columns:1fr}.business-inbox-sidebar,.business-inbox-thread-card{min-height:auto}.business-contact-message{max-width:94%}}

/* FN27G · Recipe ingredient catalog editor */
.recipe-ingredient-editor{border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--surface-1,#fbfbf7);display:grid;gap:12px}
.recipe-ingredient-editor-head{margin:0}.recipe-ingredient-editor-head .chip{min-width:34px;text-align:center}
.recipe-ingredient-catalog{display:grid;gap:10px}.ingredient-search-results{display:grid;gap:6px;max-height:240px;overflow:auto}
.ingredient-search-result{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left;border:1px solid var(--line);border-radius:11px;background:var(--card);padding:10px 12px;cursor:pointer;color:var(--text)}
.ingredient-search-result:hover{border-color:#aabd9d;background:#f6f9f1}.ingredient-search-result.already-added{opacity:.58;cursor:default}.ingredient-search-result span,.ingredient-search-result strong,.ingredient-search-result small{display:block}.ingredient-search-result small,.ingredient-result-meta{font-size:9px;color:var(--muted)}
.ingredient-search-hint{border:1px dashed var(--line);border-radius:10px;padding:10px 12px;color:var(--muted);font-size:10px;display:grid;gap:3px}
.ingredient-composer{border:1px solid #cfdcc5;border-radius:12px;padding:12px;background:#f3f7ef;display:grid;gap:10px}.ingredient-composer-product span,.ingredient-composer-product strong,.ingredient-composer-product small{display:block}.ingredient-composer-product span,.ingredient-composer-product small{font-size:9px;color:var(--muted)}
.ingredient-composer-fields{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(120px,.7fr) auto auto;gap:8px;align-items:end}.ingredient-composer-fields label span{font-size:9px;color:var(--muted)}
.recipe-ingredient-create-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.recipe-ingredient-create-row small{flex:1;min-width:240px}
.recipe-editor-ingredient-list{display:grid;gap:7px;border-top:1px solid var(--line);padding-top:10px}.recipe-editor-ingredient-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(110px,.45fr) minmax(110px,.45fr) 36px;gap:9px;align-items:end;border-bottom:1px solid #e8ebe4;padding:8px 0}.recipe-editor-ingredient-row:last-child{border-bottom:0}.recipe-editor-ingredient-name{align-self:center}.recipe-editor-ingredient-name strong,.recipe-editor-ingredient-name small{display:block}.recipe-editor-ingredient-name small,.recipe-editor-ingredient-row label span{font-size:9px;color:var(--muted)}
@media(max-width:760px){.ingredient-composer-fields,.recipe-editor-ingredient-row{grid-template-columns:1fr 1fr}.ingredient-composer-product,.recipe-editor-ingredient-name{grid-column:1/-1}.ingredient-composer-fields button{width:100%}.recipe-editor-ingredient-row>button{align-self:end}.recipe-ingredient-create-row{align-items:stretch}.recipe-ingredient-create-row small{min-width:0;width:100%}}
@media(max-width:760px){.recipe-ingredient-editor-head{display:flex;flex-direction:row;align-items:flex-start;flex-wrap:nowrap}.recipe-ingredient-editor-head>div{min-width:0;flex:1}.recipe-ingredient-editor-head .chip{flex:0 0 auto}.recipe-ingredient-create-row{display:grid;grid-template-columns:1fr;align-items:stretch}.recipe-ingredient-create-row button{width:100%}.recipe-ingredient-create-row small{width:auto;min-width:0}.ingredient-search-result{align-items:flex-start;flex-direction:column;gap:4px}.ingredient-result-meta{text-align:left}}

/* FN27H · Reference -> SKU -> store mapping */
.market-sku-list{display:grid;gap:.65rem;margin:0 0 1rem}.market-sku-row{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:.75rem;border:1px solid var(--border);border-radius:14px;background:var(--panel-soft,#f8fbfa)}.market-sku-row>div{min-width:0}.market-sku-row small{display:block;margin-top:.2rem;color:var(--muted)}@media(max-width:760px){.market-sku-row{grid-template-columns:1fr}.market-sku-row>div:last-child{text-align:left}}

/* FN27H · Product reference, SKU & store mapping fabric */

/* FN27I — clean own feed, sticky feed tools, richer recipe cards and external sharing */
.personal-profile-sticky-nav{flex-wrap:wrap}
.community-profile-feed-tools{flex:1 0 100%;display:grid;grid-template-columns:minmax(220px,1.6fr) minmax(150px,.75fr) minmax(120px,.55fr) minmax(150px,.7fr) auto;gap:8px;align-items:center;padding-top:8px;border-top:1px solid color-mix(in srgb,var(--line) 82%,transparent)}
.community-profile-feed-tools.hidden{display:none}
.community-profile-feed-tools input,.community-profile-feed-tools select{min-width:0;height:36px;padding:7px 9px;font-size:11px;background:var(--panel)}
.community-profile-feed-tools .community-check{grid-column:auto;white-space:nowrap;margin:0;padding:0 2px;font-size:9px}
.community-feed-card{padding-top:14px}
.community-post-main{align-items:flex-start}
.community-post-thumb{width:96px;height:96px;flex:0 0 96px}
.community-post-media{margin:0;width:100%;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 26%,var(--line));border-radius:14px;background:var(--bg);aspect-ratio:16/7;max-height:390px}
.community-post-media img{display:block;width:100%;height:100%;object-fit:cover}
.community-post.is-recipe h4{font-size:21px;line-height:1.2;margin:5px 0 7px}
.community-post.is-recipe .community-post-main{padding-inline:2px}
.community-external-share{position:relative;display:inline-flex}
.community-external-share-menu{position:absolute;left:0;bottom:calc(100% + 7px);z-index:75;min-width:190px;padding:7px;display:grid;gap:3px;border:1px solid var(--line);border-radius:12px;background:var(--card);box-shadow:0 16px 38px rgba(20,35,28,.18)}
.community-external-share-menu.hidden{display:none}
.community-external-share-menu button{border:0;background:transparent;color:var(--text);padding:8px 9px;border-radius:8px;text-align:left;cursor:pointer;font-size:11px;font-weight:700}
.community-external-share-menu button:hover{background:color-mix(in srgb,var(--accent) 10%,var(--card));color:var(--accent)}
.community-create-dialog{width:min(760px,94vw);max-height:min(86vh,900px)}
.community-create-dialog .dialog-body{display:grid;gap:12px}
.community-create-dialog-heading h3{margin:2px 0 0}
.community-create-dialog #communityPublishCard{margin:0;box-shadow:none}
.community-create-dialog #communityPublishCard>h3,.community-create-dialog #communityPublishCard>p.meta{display:none}
.community-create-dialog .community-publish-grid{grid-template-columns:1fr;margin-top:8px}
.community-create-dialog [data-publish-kind].hidden{display:none!important}
#communityProfileStatistics #communityPromotionCard{margin-top:18px;box-shadow:none}
@media(max-width:980px){.community-profile-feed-tools{grid-template-columns:minmax(180px,1.4fr) minmax(130px,.7fr) minmax(130px,.7fr)}.community-profile-feed-tools .community-check{grid-column:auto}.community-post-media{aspect-ratio:16/8}}
@media(max-width:680px){.personal-profile-sticky-nav{align-items:center}.community-profile-feed-tools{grid-template-columns:1fr 1fr;gap:6px;padding-top:7px}.community-profile-feed-tools input:first-child{grid-column:1/-1}.community-profile-feed-tools .community-check{grid-column:1/-1}.community-post-media{aspect-ratio:4/3;max-height:320px}.community-post.is-recipe h4{font-size:19px}.community-post-thumb{width:82px;height:82px;flex-basis:82px}.community-external-share{width:100%}.community-external-share>button{width:100%}.community-external-share-menu{left:0;right:0;min-width:0}.community-create-dialog{width:96vw}}
@media(max-width:680px){
  .community-profile-feed-tools{display:flex;overflow-x:auto;align-items:center;gap:6px;padding:7px 0 1px;scrollbar-width:none}
  .community-profile-feed-tools::-webkit-scrollbar{display:none}
  .community-profile-feed-tools input,.community-profile-feed-tools select{flex:0 0 145px;width:145px}
  .community-profile-feed-tools input:first-child{flex-basis:190px;width:190px}
  .community-profile-feed-tools .community-check{flex:0 0 auto;white-space:nowrap;padding-right:8px}
}

/* FN27J — Community post card, modal reading/comments, visibility menu and send UX */
.community-post{position:relative;display:block;overflow:visible}
.community-post-open-zone{display:block;border-radius:12px;cursor:pointer;outline:none;transition:background .16s ease,box-shadow .16s ease}
.community-post-open-zone:hover,.community-post-open-zone:focus-visible{background:color-mix(in srgb,var(--accent) 4%,transparent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 12%,transparent)}
.community-post.is-recipe .community-post-open-zone{padding:2px 0 4px}
.community-post.is-recipe .community-post-media{width:min(72%,680px);aspect-ratio:16/9;max-height:380px;margin:10px auto 12px;border-radius:13px}
.community-post.is-recipe .community-post-main{max-width:860px;margin:0 auto;width:100%}
.community-post.is-recipe h4{font-size:22px;line-height:1.18;margin:6px 0 7px}
.community-post-rating-block{margin-top:9px;padding-top:3px;display:grid;gap:3px}
.community-post-menu-wrap{position:absolute;top:10px;right:10px;z-index:42}
.community-post-more{width:38px;height:34px;border:1px solid color-mix(in srgb,var(--line) 88%,transparent);border-radius:999px;background:color-mix(in srgb,var(--card) 92%,transparent);color:var(--text);font-weight:900;letter-spacing:1px;cursor:pointer;box-shadow:0 5px 16px rgba(20,35,28,.09)}
.community-post-more:hover{background:var(--card);border-color:color-mix(in srgb,var(--accent) 35%,var(--line));color:var(--accent)}
.community-post-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:90;width:240px;padding:7px;border:1px solid var(--line);border-radius:13px;background:var(--card);box-shadow:0 18px 44px rgba(20,35,28,.2);display:grid;gap:3px}
.community-post-menu.hidden{display:none}
.community-post-menu>button,.community-post-menu-section>button{width:100%;border:0;background:transparent;color:var(--text);padding:9px 10px;border-radius:9px;text-align:left;cursor:pointer;font-size:11px;font-weight:700}
.community-post-menu>button:hover,.community-post-menu-section>button:hover{background:color-mix(in srgb,var(--accent) 9%,var(--card));color:var(--accent)}
.community-post-menu-section{display:grid;gap:2px;padding:2px 0 6px;margin-bottom:3px;border-bottom:1px solid var(--line)}
.community-post-menu-section>span{padding:4px 10px 3px;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.community-post-menu-section>button.selected{background:color-mix(in srgb,var(--accent) 9%,var(--card));color:var(--accent)}
.community-audience-badge.community-audience-icon{margin-left:4px;gap:4px;align-items:center;background:color-mix(in srgb,var(--bg) 68%,var(--card));font-size:12px;line-height:1;padding:4px 6px}
.community-audience-badge.community-audience-icon b{font-size:9px;line-height:1.2;color:var(--muted)}

.community-post-dialog{width:min(1040px,95vw);max-height:92vh;margin:3vh auto auto;padding:0;overflow:hidden;border-radius:18px}
.community-post-dialog>.dialog-close,.community-post-dialog>form .dialog-close{z-index:120}
.community-post-dialog-shell{max-height:92vh;overflow:auto;padding:20px 22px 24px}
.community-post-dialog-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:2px 42px 12px 0;border-bottom:1px solid var(--line)}
.community-post-dialog-head h3{font-size:25px;margin:3px 0 0;line-height:1.2}
.community-post-dialog-content{display:grid;gap:14px;padding:14px 0}
.community-post-dialog-author{display:flex;justify-content:space-between;gap:12px;align-items:center}.community-post-dialog-author small{color:var(--muted);font-size:9px}
.community-recipe-dialog-layout{display:grid;gap:18px}
.community-recipe-dialog-media{width:min(76%,720px);margin:0 auto;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:var(--bg);aspect-ratio:16/9}
.community-recipe-dialog-media img{width:100%;height:100%;display:block;object-fit:cover}
.community-recipe-dialog-copy{display:grid;gap:15px}.community-recipe-dialog-copy section{border-top:1px solid color-mix(in srgb,var(--line) 82%,transparent);padding-top:12px}.community-recipe-dialog-copy h4{margin:0 0 9px;font-size:14px}.community-recipe-dialog-summary{font-size:13px;line-height:1.6;margin:0;color:var(--muted)}
.community-recipe-dialog-meta{display:flex;gap:8px;flex-wrap:wrap}.community-recipe-dialog-meta span{border:1px solid var(--line);border-radius:999px;padding:5px 8px;font-size:9px;background:var(--card)}
.community-recipe-dialog-ingredients{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.community-recipe-dialog-ingredients li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--bg) 48%,var(--card));font-size:11px}.community-recipe-dialog-ingredients li small{grid-column:1/-1;color:var(--muted)}
.community-recipe-dialog-instructions{line-height:1.68;font-size:12px}.community-post-dialog-techniques{display:flex;gap:6px;flex-wrap:wrap}
.community-post-dialog-rating{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:12px;color:var(--muted);font-size:10px}
.community-post-dialog-actions{display:flex;gap:7px;flex-wrap:wrap;padding-top:2px}
.community-post-dialog-comments{margin-top:4px;padding-top:14px;border-top:1px solid var(--line);display:grid;gap:10px}
.community-post-dialog-comments.hidden{display:none}
.community-comment-dialog-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:flex-end}.community-comment-dialog-toolbar>div{display:grid;gap:2px}.community-comment-dialog-toolbar small{font-size:9px;color:var(--muted)}.community-comment-dialog-toolbar label{display:grid;gap:3px;font-size:8px;color:var(--muted)}.community-comment-dialog-toolbar select{height:34px;padding:5px 8px}
.community-comment-dialog-list{display:grid;gap:8px;max-height:520px;overflow:auto;padding:2px 4px 4px 0;overscroll-behavior:contain}
.community-generic-dialog-content{display:grid;gap:12px}.community-generic-dialog-content p{font-size:13px;line-height:1.65}

.community-message-compose-dialog{width:min(700px,94vw);border-radius:18px}.community-message-compose-dialog .dialog-body{display:grid;gap:12px}.community-message-compose-dialog h3{font-size:23px;margin:2px 0}.community-message-compose-recipient{display:flex;align-items:center;gap:10px;padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--accent) 4%,var(--card))}.community-message-compose-recipient img,.community-message-compose-avatar{width:42px;height:42px;flex:0 0 42px;border-radius:50%;object-fit:cover;background:color-mix(in srgb,var(--accent) 12%,var(--card));display:grid;place-items:center;font-weight:800;color:var(--accent)}.community-message-compose-recipient>span:last-child{display:grid;gap:2px}.community-message-compose-recipient small{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.community-message-compose-recipient b{font-size:12px}
.community-message-compose-dialog .community-message-attachment-preview{padding:10px;border:1px solid color-mix(in srgb,var(--accent) 20%,var(--line));border-radius:13px;background:color-mix(in srgb,var(--accent) 4%,var(--card))}.community-message-compose-dialog .community-message-attachment-card{grid-template-columns:92px minmax(0,1fr);padding:0;border:0;background:transparent}.community-message-compose-dialog .community-message-attachment-card img{width:92px;height:72px;border-radius:10px}.community-message-compose-dialog .community-message-attachment-card b{font-size:13px}.community-message-compose-dialog .community-message-attachment-card small{white-space:normal;line-height:1.4}.community-message-compose-dialog textarea{min-height:92px;resize:vertical}

@media(max-width:760px){
  .community-post.is-recipe .community-post-media{width:100%;aspect-ratio:4/3;max-height:320px;margin-top:6px}.community-post-more{width:34px;height:32px}.community-post-menu{width:min(240px,82vw)}
  .community-post-dialog{width:97vw;max-height:96vh;margin:2vh auto auto}.community-post-dialog-shell{max-height:96vh;padding:16px 14px 20px}.community-post-dialog-head h3{font-size:20px}.community-recipe-dialog-media{width:100%;aspect-ratio:4/3}.community-recipe-dialog-ingredients{grid-template-columns:1fr}.community-comment-dialog-toolbar{align-items:flex-start;flex-direction:column}.community-comment-dialog-list{max-height:55vh}.community-post-dialog-actions>*{flex:1 1 auto}
  .community-message-compose-dialog .community-message-attachment-card{grid-template-columns:72px minmax(0,1fr)}.community-message-compose-dialog .community-message-attachment-card img{width:72px;height:62px}
}

/* FN27K — Recipe catalog provenance navigation */
.recipe-catalog-card{overflow:hidden}
.recipe-source-filter{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px;padding:10px 12px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--surface-2) 92%,var(--accent) 8%)}
.recipe-source-filter-label{width:100%;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.recipe-source-chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0;flex:1 1 auto}
.recipe-source-chip{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:6px 9px;display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}
.recipe-source-chip:hover{border-color:color-mix(in srgb,var(--accent) 60%,var(--border))}
.recipe-source-chip.active{border-color:color-mix(in srgb,var(--accent) 70%,var(--border));background:color-mix(in srgb,var(--accent) 12%,var(--surface));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 16%,transparent)}
.recipe-source-chip b{min-width:20px;height:20px;padding:0 6px;display:inline-grid;place-items:center;border-radius:999px;background:var(--surface-2);font-size:10px;color:var(--muted)}
.recipe-source-chip.active b{background:color-mix(in srgb,var(--accent) 18%,var(--surface));color:var(--text)}
.recipe-source-visible-count{display:none}
.recipe-origin-line{display:flex;align-items:center;gap:5px;min-width:0;margin-top:1px}
.recipe-origin-badge{display:inline-flex;align-items:center;gap:4px;max-width:100%;font-size:10px;font-weight:800;line-height:1.2;border-radius:999px;padding:3px 7px;background:var(--surface);border:1px solid var(--border);color:var(--muted);white-space:nowrap}
.recipe-origin-badge.own{background:color-mix(in srgb,var(--surface) 94%,#6b8e6b 6%)}
.recipe-origin-badge.community{background:color-mix(in srgb,var(--surface) 90%,#5b7fc7 10%)}
.recipe-origin-badge.familynexa{background:color-mix(in srgb,var(--surface) 88%,var(--accent) 12%)}
.recipe-origin-badge.imported{background:color-mix(in srgb,var(--surface) 91%,#b58a49 9%)}
.recipe-origin-badge.business{background:color-mix(in srgb,var(--surface) 91%,#8b6bb3 9%)}
.recipe-origin-detail{font-size:10px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:760px){.recipe-source-filter{align-items:flex-start;gap:7px;padding:9px 10px}.recipe-source-filter-label{width:100%}.recipe-source-chips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}.recipe-source-visible-count{display:none}.recipe-origin-line{flex-wrap:wrap}.recipe-origin-detail{max-width:100%}}
.recipe-detail-origin{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:7px}.recipe-source-detail{font-size:11px;color:var(--muted)}

/* FN27L — Recipe templates + Kitchen Operations learning library */
.recipe-favorite-filter.active,.recipe-favorite-btn.active{color:#a33b52;border-color:#d9aeba;background:#fff4f6}.template-notice{display:flex;gap:8px;align-items:flex-start;margin:10px 0;padding:10px 12px;border:1px solid #dbe4d1;border-radius:12px;background:#f4f8ee;color:#4a5d43;font-size:11px;line-height:1.5}.template-notice strong{display:block}.template-notice span{display:block;color:var(--muted)}
.technique-library-dialog{width:min(1120px,calc(100vw - 30px));max-width:1120px}.technique-source-filter{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0 4px;padding:9px 10px;border:1px solid var(--line);border-radius:13px;background:#fafbf7}.technique-source-filter .recipe-source-chips{flex:1}.technique-library-list{grid-template-columns:repeat(auto-fit,minmax(330px,1fr));align-items:stretch}.technique-library-card{grid-template-columns:112px minmax(0,1fr);grid-template-areas:"media body" "actions actions";align-items:stretch;gap:12px;padding:12px}.technique-library-card-media{grid-area:media;border:0;border-radius:12px;overflow:hidden;background:#edf2e8;min-height:106px;cursor:pointer;padding:0}.technique-library-card-media img{width:100%;height:100%;min-height:106px;object-fit:cover;display:block}.technique-library-card-media.placeholder{display:grid;place-items:center;font-size:34px;color:#708069}.technique-library-card-body{grid-area:body;min-width:0}.technique-library-card-body .recipe-origin-badge{margin-bottom:6px}.technique-library-card-body h4{font-size:16px;margin:5px 0}.technique-library-card-body p{font-size:11px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.technique-card-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.technique-card-meta span{padding:4px 7px;border-radius:999px;background:#f2f4ef;color:var(--muted);font-size:9px;font-weight:700}.technique-library-actions{grid-area:actions;border-top:1px solid var(--line);padding-top:9px}
.technique-info-dialog{width:min(980px,calc(100vw - 28px));max-width:980px;max-height:92vh}.technique-info-shell{padding:22px}.technique-info-hero{display:grid;grid-template-columns:minmax(240px,38%) minmax(0,1fr);gap:22px;align-items:start}.technique-info-media{border-radius:16px;overflow:hidden;background:#eef2e9;aspect-ratio:4/3}.technique-info-media img{width:100%;height:100%;object-fit:cover;display:block}.technique-info-heading h2{font-size:28px;line-height:1.16;margin:10px 0 7px;color:var(--ink)}.technique-info-heading>p{font-size:13px;line-height:1.65;color:var(--text)}.technique-meta-row{display:flex;gap:7px;flex-wrap:wrap}.technique-meta-row span{padding:5px 8px;background:#f2f5ee;border-radius:999px;font-size:9px;color:var(--muted);font-weight:700}.technique-info-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}.technique-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.technique-info-section{margin-top:14px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#fff}.technique-info-section h3{font-size:14px;margin:0 0 10px}.technique-info-section ul,.technique-step-list{margin:0;padding-left:21px;display:grid;gap:7px;font-size:12px;line-height:1.55}.technique-info-section.attention{background:#f8fbf2}.technique-info-section.mistakes{background:#fff9f4}.technique-ingredient-list{display:grid;gap:7px}.technique-ingredient-list>div{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px dashed var(--line);font-size:11px}.technique-ingredient-list>div:last-child{border-bottom:0}.technique-ingredient-list span{color:var(--muted)}.technique-video-link-row{display:flex;justify-content:flex-end;margin-top:8px}.button-link{display:inline-flex;align-items:center;text-decoration:none}.technique-info-dialog .recipe-video-frame{max-width:760px;margin-inline:auto}
.technique-edit-dialog{width:min(1040px,calc(100vw - 30px));max-width:1040px}.technique-edit-grid{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:18px}.technique-edit-main{display:grid;gap:11px}.technique-edit-media{display:grid;align-content:start;gap:12px;border-left:1px solid var(--line);padding-left:18px}.technique-image-preview{aspect-ratio:4/3;border:1px dashed #bdc9b4;border-radius:14px;background:#f3f6ef;display:grid;place-items:center;overflow:hidden;font-size:42px}.technique-image-preview img{width:100%;height:100%;object-fit:cover}.technique-edit-dialog small{font-size:9px;color:var(--muted)}
@media(max-width:760px){.technique-source-filter{display:block;overflow:hidden}.technique-source-filter .recipe-source-filter-label{display:block;margin-bottom:6px}.technique-source-filter .recipe-source-chips{display:flex;flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.technique-library-list{grid-template-columns:1fr}.technique-library-card{grid-template-columns:86px minmax(0,1fr)}.technique-library-card-media,.technique-library-card-media img{min-height:82px}.technique-info-hero{grid-template-columns:1fr}.technique-info-media{aspect-ratio:16/9}.technique-info-grid{grid-template-columns:1fr}.technique-info-heading h2{font-size:22px}.technique-edit-grid{grid-template-columns:1fr}.technique-edit-media{border-left:0;border-top:1px solid var(--line);padding-left:0;padding-top:14px}.technique-edit-dialog{width:calc(100vw - 14px)} }


/* FN27M — Structured recipe feed, unified detail/comments modal and user-selectable feed views */
.community-profile-feed-tools{grid-template-columns:minmax(220px,1.5fr) minmax(145px,.72fr) minmax(115px,.52fr) minmax(145px,.68fr) auto auto}
.community-feed-view-switch{display:inline-flex;align-items:center;gap:3px;padding:3px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--bg) 55%,var(--card));white-space:nowrap}
.community-feed-view-switch button{display:inline-flex;align-items:center;gap:4px;border:0;background:transparent;color:var(--muted);border-radius:7px;padding:6px 7px;font-size:9px;font-weight:800;cursor:pointer}
.community-feed-view-switch button:hover,.community-feed-view-switch button.active{background:var(--card);color:var(--accent);box-shadow:0 1px 5px rgba(20,35,28,.08)}
.community-post-summary{font-size:12px;line-height:1.55;margin:0 0 8px;color:var(--muted)}
.community-summary-toggle{border:0;background:transparent;color:var(--accent);padding:0;font:inherit;font-weight:800;cursor:pointer;white-space:nowrap}
.community-summary-toggle:hover{text-decoration:underline}
.community-author-rich{gap:7px;text-decoration:none!important;align-items:center}.community-author-avatar{width:30px;height:30px;flex:0 0 30px;border-radius:50%;object-fit:cover;background:color-mix(in srgb,var(--accent) 10%,var(--card));border:1px solid color-mix(in srgb,var(--accent) 18%,var(--line));display:grid;place-items:center;font-size:9px;font-weight:850;color:var(--accent)}.community-author-name{display:flex;align-items:center;gap:3px;min-width:0;font-size:10px;font-weight:750}.community-post-source{margin-top:7px}
.community-post-rating-block{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:9px;padding:9px 0 0;border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent)}
.community-rating-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.community-rating-summary .community-rating-control{margin:0}
.community-reaction-picker{position:relative;display:inline-flex;flex:0 0 auto}.community-reaction-trigger{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:999px;padding:6px 9px;cursor:pointer;font-size:10px;font-weight:800}.community-reaction-trigger.selected{border-color:color-mix(in srgb,var(--accent) 48%,var(--line));color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--card))}.community-reaction-trigger small{color:var(--muted);font-size:8px}
.community-reaction-popover{position:absolute;right:0;bottom:calc(100% + 7px);z-index:95;display:flex;gap:4px;padding:6px;border:1px solid var(--line);border-radius:14px;background:var(--card);box-shadow:0 16px 38px rgba(20,35,28,.19);opacity:0;visibility:hidden;transform:translateY(4px);pointer-events:none;transition:.14s ease;white-space:nowrap}
.community-reaction-picker:hover .community-reaction-popover,.community-reaction-picker:focus-within .community-reaction-popover{opacity:1;visibility:visible;transform:none;pointer-events:auto}.community-reaction-choice{display:grid;justify-items:center;gap:2px;min-width:60px;border:0;background:transparent;color:var(--text);border-radius:9px;padding:6px;cursor:pointer}.community-reaction-choice:hover,.community-reaction-choice.selected{background:color-mix(in srgb,var(--accent) 10%,var(--card));color:var(--accent)}.community-reaction-choice span{font-size:20px}.community-reaction-choice b{font-size:8px}.community-reaction-choice small{font-size:8px;color:var(--muted)}
.community-recipe-feed-core{display:grid;min-width:0}.community-post-media{background:color-mix(in srgb,var(--bg) 80%,var(--card))}.community-post-media img{object-fit:contain}
.community-feed-view-normal{gap:12px}.community-feed-view-normal .community-post.is-recipe{padding:14px 16px}.community-feed-view-normal .community-post.is-recipe .community-recipe-feed-core{grid-template-columns:minmax(210px,270px) minmax(0,1fr);gap:16px;align-items:center;max-width:900px;margin:0 auto}.community-feed-view-normal .community-post.is-recipe .community-post-media{width:100%;height:190px;aspect-ratio:auto;max-height:none;margin:0;border-radius:12px}.community-feed-view-normal .community-post.is-recipe h4{font-size:20px;margin-top:5px}
.community-feed-view-cover .community-post.is-recipe .community-recipe-feed-core{display:grid}.community-feed-view-cover .community-post.is-recipe .community-post-media{width:min(78%,760px);height:min(330px,42vw);min-height:210px;aspect-ratio:auto;max-height:330px;margin:8px auto 13px}.community-feed-view-cover .community-post.is-recipe .community-post-main{max-width:860px;margin:0 auto;width:100%}
.community-feed-view-grid{grid-template-columns:repeat(auto-fill,minmax(275px,1fr));align-items:start;gap:13px}.community-feed-view-grid .community-post{min-width:0;padding:11px}.community-feed-view-grid .community-post.is-recipe .community-recipe-feed-core{display:grid;gap:9px}.community-feed-view-grid .community-post.is-recipe .community-post-media{width:100%;height:210px;aspect-ratio:auto;max-height:none;margin:0}.community-feed-view-grid .community-post.is-recipe .community-post-main{max-width:none}.community-feed-view-grid .community-post.is-recipe h4{font-size:17px;margin:4px 0 5px}.community-feed-view-grid .community-post-summary{font-size:10px}.community-feed-view-grid .community-post-tags{max-height:26px;overflow:hidden}.community-feed-view-grid .community-post-rating-block{gap:6px}.community-feed-view-grid .community-rating-summary{gap:5px}.community-feed-view-grid .community-post-secondary-actions{display:grid;grid-template-columns:1fr 1fr}.community-feed-view-grid .community-post-secondary-actions .community-external-share{width:100%}.community-feed-view-grid .community-post-secondary-actions .community-external-share>button{width:100%}.community-feed-view-grid .community-author-avatar{width:26px;height:26px;flex-basis:26px}
.community-post-dialog-shell{height:min(92vh,920px);max-height:92vh;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;padding:0 22px}.community-post-dialog-head{padding:20px 42px 12px 0}.community-post-dialog-body{min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 0 22px}.community-post-dialog-content{padding:14px 0 10px}.community-post-dialog-comments{margin:6px 0 0;padding:14px 0 0;max-height:min(58vh,600px);grid-template-rows:auto minmax(0,1fr) auto auto;overflow:hidden}.community-comment-dialog-list{max-height:none;min-height:140px;overflow:auto;padding:2px 5px 6px 0}.community-post-dialog-comments .community-comment-form{position:sticky;bottom:0;background:var(--card);padding-top:9px;border-top:1px solid color-mix(in srgb,var(--line) 65%,transparent)}
.community-recipe-dialog-media{width:min(86%,820px);height:min(52vh,520px);aspect-ratio:auto}.community-recipe-dialog-media img{object-fit:contain;background:color-mix(in srgb,var(--bg) 75%,var(--card))}
.community-post-dialog .community-post-rating-block{margin-top:5px}.community-post-dialog .community-post-dialog-actions{border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent);padding-top:10px}.community-post-dialog .community-author-avatar{width:34px;height:34px;flex-basis:34px}
@media(max-width:980px){.community-profile-feed-tools{grid-template-columns:minmax(180px,1.25fr) minmax(130px,.7fr) minmax(120px,.65fr);}.community-feed-view-switch{grid-column:auto}.community-feed-view-normal .community-post.is-recipe .community-recipe-feed-core{grid-template-columns:220px minmax(0,1fr)}}
@media(max-width:760px){.community-feed-view-switch{flex:0 0 auto}.community-feed-view-switch button span{display:none}.community-feed-view-switch button{font-size:14px;padding:5px 7px}.community-feed-view-normal .community-post.is-recipe .community-recipe-feed-core{grid-template-columns:1fr;gap:9px}.community-feed-view-normal .community-post.is-recipe .community-post-media{height:min(250px,62vw)}.community-feed-view-cover .community-post.is-recipe .community-post-media{width:100%;height:min(290px,72vw);min-height:180px}.community-feed-view-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.community-feed-view-grid .community-post{padding:9px}.community-feed-view-grid .community-post.is-recipe .community-post-media{height:145px}.community-feed-view-grid .community-post.is-recipe h4{font-size:15px}.community-feed-view-grid .community-post-summary{display:none}.community-feed-view-grid .community-author-name{font-size:9px}.community-feed-view-grid .community-post-secondary-actions{grid-template-columns:1fr}.community-feed-view-grid .community-post-secondary-actions button{font-size:0;padding:8px}.community-feed-view-grid .community-post-secondary-actions button::first-letter{font-size:13px}.community-feed-view-grid .community-external-share>button{font-size:0}.community-post-rating-block{align-items:flex-start}.community-reaction-trigger span{display:none}.community-reaction-choice{min-width:48px}.community-reaction-choice b{display:none}.community-post-dialog{width:97vw;max-height:96vh;margin:2vh auto auto}.community-post-dialog-shell{height:96vh;max-height:96vh;padding:0 14px}.community-post-dialog-head{padding-top:15px}.community-post-dialog-body{padding-bottom:16px}.community-post-dialog-comments{max-height:62vh}.community-recipe-dialog-media{width:100%;height:min(46vh,360px)}}
@media(max-width:480px){.community-feed-view-grid{grid-template-columns:1fr 1fr}.community-feed-view-grid .community-post.is-recipe .community-post-media{height:125px}.community-feed-view-grid .community-post-menu-wrap{top:5px;right:5px}.community-reaction-popover{right:-18px}.community-post-dialog-actions{display:grid;grid-template-columns:1fr 1fr}.community-post-dialog-actions>*{width:100%}}
/* FN27M modal containment hardening */
.community-post-dialog>form[method="dialog"]{position:absolute;top:10px;right:10px;z-index:120;padding:0;margin:0}
.community-post-dialog>form[method="dialog"] .dialog-close{width:34px;height:34px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--card) 94%,transparent);color:var(--text);font-size:20px;line-height:1;cursor:pointer;box-shadow:0 5px 16px rgba(20,35,28,.09)}
.community-post-dialog>form[method="dialog"] .dialog-close:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}
.community-post-dialog-comments .community-comment-form{padding:9px 0 0;margin:0}
/* FN27M normal view final composition: compact vertical recipe card */
.community-feed-view-normal .community-post.is-recipe .community-recipe-feed-core{display:block;max-width:900px;margin:0 auto}
.community-feed-view-normal .community-post.is-recipe .community-post-media{width:min(60%,560px);height:250px;aspect-ratio:auto;max-height:250px;margin:0 auto 11px}
.community-feed-view-normal .community-post.is-recipe .community-post-main{max-width:800px;margin:0 auto;width:100%}
.community-post-dialog-comments .community-comment-row{padding:7px 8px;gap:7px}.community-post-dialog-comments .community-comment-body p{margin-top:3px;line-height:1.35}
@media(max-width:760px){.community-feed-view-normal .community-post.is-recipe .community-recipe-feed-core{display:block}.community-feed-view-normal .community-post.is-recipe .community-post-media{width:100%;height:min(245px,62vw);max-height:245px;margin-bottom:9px}}

/* FN27N — Community/Recipe performance and layout polish */
/* The profile feed already has a card per post; remove the redundant outer card frame. */
.community-profile-main .community-feed-card{
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  border-radius:0!important;
  padding:0!important;
  margin-top:10px!important;
}
.community-profile-main .community-feed-card .community-load-more{padding:8px 0 0}

/* Cover = genuinely full-width visual presentation. */
.community-feed-view-cover{width:100%;max-width:none;margin:0}
.community-feed-view-cover .community-post{width:100%;max-width:none}
.community-feed-view-cover .community-post.is-recipe .community-recipe-feed-core{width:100%;max-width:none}
.community-feed-view-cover .community-post.is-recipe .community-post-media{
  width:100%;
  height:clamp(280px,38vw,460px);
  max-height:460px;
  margin:0 0 14px;
  border-radius:12px;
}
.community-feed-view-cover .community-post.is-recipe .community-post-media img{object-fit:cover}
.community-feed-view-cover .community-post.is-recipe .community-post-main{max-width:900px;margin:0 auto}

/* Normal = one calm centered column, posts stacked vertically. */
.community-feed-view-normal{width:min(100%,800px);max-width:800px;margin:0 auto;grid-template-columns:1fr;gap:12px}
.community-feed-view-normal .community-post{width:100%;max-width:800px;margin:0 auto}
.community-feed-view-normal .community-post.is-recipe .community-recipe-feed-core{display:block;max-width:760px;margin:0 auto}
.community-feed-view-normal .community-post.is-recipe .community-post-media{
  width:min(70%,560px);
  height:240px;
  max-height:240px;
  margin:0 auto 11px;
}
.community-feed-view-normal .community-post.is-recipe .community-post-media img{object-fit:contain}
.community-feed-view-normal .community-post.is-recipe .community-post-main{max-width:730px;margin:0 auto;width:100%}

/* Grid = a deliberately compact three-column desktop catalog. */
.community-feed-view-grid{width:100%;max-width:none;margin:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;align-items:start}
.community-feed-view-grid .community-post{min-width:0;padding:10px}
.community-feed-view-grid .community-post.is-recipe .community-post-media{height:175px;margin:0 0 7px}
.community-feed-view-grid .community-post.is-recipe .community-post-media img{object-fit:cover}
.community-feed-view-grid .community-post.is-recipe h4{font-size:16px}
.community-feed-view-grid .community-post-summary{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.community-feed-view-grid .community-post-rating-block{align-items:flex-start;gap:5px}
.community-feed-view-grid .community-rating-summary{gap:4px}

/* Make comment scrolling deterministic even inside the scrollable recipe modal. */
.community-post-dialog-comments{overscroll-behavior:contain;touch-action:pan-y}
.community-comment-dialog-list{scrollbar-gutter:stable;overscroll-behavior:contain;touch-action:pan-y;min-height:180px}
.community-post-dialog.comments-open .community-comment-dialog-list{max-height:min(46vh,480px)}

@media(max-width:1050px){
  .community-feed-view-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .community-feed-view-normal{max-width:none}
  .community-feed-view-normal .community-post.is-recipe .community-post-media{width:100%;height:min(245px,62vw);max-height:245px}
  .community-feed-view-cover .community-post.is-recipe .community-post-media{height:min(300px,74vw)}
  .community-feed-view-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .community-feed-view-grid .community-post.is-recipe .community-post-media{height:140px}
}
@media(max-width:430px){
  .community-feed-view-grid{grid-template-columns:1fr 1fr}
  .community-feed-view-grid .community-post{padding:8px}
  .community-feed-view-grid .community-post.is-recipe .community-post-media{height:118px}
}


/* FN27X3 — help responsiveness + Community comment/reaction interaction hotfix */
/* Keep the reaction picker hover path continuous between the trigger and the floating choices. */
.community-reaction-popover{bottom:calc(100% + 4px)}
.community-reaction-popover::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:10px;background:transparent}
/* A short comment list must never trap wheel/touch scrolling; long lists scroll internally while the composer stays reachable. */
.community-post-dialog-comments{max-height:none;overflow:visible;overscroll-behavior:auto;min-height:0;grid-template-rows:auto auto auto auto}
.community-comment-dialog-list{min-height:0;max-height:min(38vh,420px);overflow:auto;overscroll-behavior:auto;scrollbar-gutter:stable}
.community-post-dialog-comments .community-comment-form{position:sticky;bottom:0;z-index:3;background:var(--card);padding:9px 0 2px;margin:0;border-top:1px solid color-mix(in srgb,var(--line) 65%,transparent)}
@media(max-width:760px){.community-comment-dialog-list{max-height:min(42vh,360px)}}

/* FN27X4 — instant onboarding + threaded comments + share/send polish */
/* Comment area: clearer visual hierarchy and safe inner spacing. */
.community-post-dialog-comments{
  margin:10px 6px 4px;
  padding:12px;
  border:1px solid color-mix(in srgb,var(--line) 88%,transparent);
  border-radius:15px;
  background:color-mix(in srgb,var(--bg) 70%,var(--card));
  gap:10px;
}
.community-comment-dialog-toolbar{
  padding:9px 10px;
  border:1px solid color-mix(in srgb,var(--line) 72%,transparent);
  border-radius:11px;
  background:color-mix(in srgb,var(--card) 88%,var(--bg));
}
.community-comment-dialog-toolbar label{margin:0}
.community-comment-dialog-list{
  padding:5px;
  border:1px solid color-mix(in srgb,var(--line) 62%,transparent);
  border-radius:12px;
  background:color-mix(in srgb,var(--bg) 84%,var(--card));
}
.community-comment-thread{display:grid;gap:6px;min-width:0}
.community-comment-thread.depth-1,.community-comment-thread.depth-2,.community-comment-thread.depth-3{
  margin-left:28px;
  padding-left:9px;
  border-left:2px solid color-mix(in srgb,var(--accent) 20%,var(--line));
}
.community-comment-row{
  grid-template-columns:34px minmax(0,1fr);
  gap:9px;
  min-width:0;
  padding:10px;
  background:color-mix(in srgb,var(--card) 92%,var(--bg));
  border-color:color-mix(in srgb,var(--line) 82%,transparent);
}
.community-comment-row.is-reply{
  background:color-mix(in srgb,var(--accent) 3%,var(--card));
  border-color:color-mix(in srgb,var(--accent) 15%,var(--line));
}
.community-comment-body{min-width:0}
.community-comment-author-line{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.community-comment-reply-cue{display:block;margin-bottom:3px;font-size:9px;color:var(--accent);font-weight:750}
.community-comment-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:6px}
.community-comment-action{border:0;background:transparent;color:var(--muted);font:inherit;font-size:9px;font-weight:750;padding:2px 0;cursor:pointer}
.community-comment-action:hover{color:var(--accent)}
.community-comment-action.danger-soft{color:color-mix(in srgb,#a23b3b 78%,var(--muted))}
.community-comment-reply-context{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin:0 8px -2px;padding:7px 9px;
  border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));
  border-radius:10px;background:color-mix(in srgb,var(--accent) 6%,var(--card));
  color:var(--muted);font-size:10px;
}
.community-comment-reply-context b{color:var(--accent);margin-right:4px}
.community-comment-reply-context .ghost{padding:3px 7px;line-height:1}
.community-post-dialog-comments .community-comment-form{
  position:sticky;bottom:0;z-index:4;
  width:auto;min-width:0;
  margin:0 8px 2px;
  padding:10px;
  border:1px solid color-mix(in srgb,var(--accent) 15%,var(--line));
  border-radius:12px;
  background:color-mix(in srgb,var(--card) 96%,var(--bg));
  box-shadow:0 -5px 16px color-mix(in srgb,var(--bg) 58%,transparent);
}
.community-post-dialog-comments .community-comment-form textarea{
  min-width:0;width:100%;box-sizing:border-box;margin:0;
  background:color-mix(in srgb,var(--bg) 38%,var(--card));
}
.community-post-dialog-comments .community-comment-form .primary{margin:0;align-self:stretch;min-width:78px}

/* External share uses the same compact floating-choice language as reactions. */
.community-external-share{position:relative;display:inline-flex;min-width:0}
.community-share-trigger{display:inline-flex!important;align-items:center;gap:5px}
.community-external-share-menu{
  position:absolute;right:0;left:auto;bottom:calc(100% + 4px);z-index:110;
  width:min(430px,82vw);min-width:290px;
  display:flex;flex-wrap:wrap;gap:5px;
  padding:7px;
  border:1px solid var(--line);border-radius:15px;
  background:var(--card);box-shadow:0 16px 38px rgba(20,35,28,.19);
  opacity:0;visibility:hidden;pointer-events:none;transform:translateY(4px);
  transition:.14s ease;
}
.community-external-share-menu::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:10px;background:transparent}
.community-external-share:hover .community-external-share-menu,
.community-external-share:focus-within .community-external-share-menu,
.community-external-share-menu.is-open{
  opacity:1;visibility:visible;pointer-events:auto;transform:none;
}
.community-share-choice{
  flex:1 1 72px;min-width:72px;
  display:grid!important;place-items:center;gap:2px;
  border:0!important;background:transparent!important;color:var(--text)!important;
  padding:7px 6px!important;border-radius:10px!important;text-align:center!important;cursor:pointer;
}
.community-share-choice span{font-size:18px;line-height:1.1}
.community-share-choice b{font-size:9px;font-weight:800;white-space:nowrap}
.community-share-choice:hover{background:color-mix(in srgb,var(--accent) 9%,var(--card))!important;color:var(--accent)!important}

/* Message composer: contained sections, explicit margins, no generic dialog-form padding leaks. */
.community-message-compose-dialog{width:min(680px,94vw);max-width:94vw;overflow:hidden}
.community-message-compose-dialog>form[method="dialog"]{position:absolute;top:11px;right:11px;z-index:30;padding:0;margin:0}
.community-message-compose-dialog>form[method="dialog"] .dialog-close{
  width:34px;height:34px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--text);cursor:pointer
}
.community-message-compose-dialog .dialog-body{
  display:grid;gap:11px;padding:22px;min-width:0;overflow:hidden;
  background:color-mix(in srgb,var(--bg) 32%,var(--card));
}
.community-message-compose-dialog .eyebrow,.community-message-compose-dialog h3{padding-right:44px}
.community-message-compose-dialog .field{margin:0;min-width:0}
.community-message-compose-dialog .community-message-compose-recipient,
.community-message-compose-dialog .community-message-attachment-preview{min-width:0;margin:0;background:var(--card)}
.community-message-compose-dialog #communityMessageComposeForm{
  display:grid;gap:10px;min-width:0;
  margin:0;padding:12px;
  border:1px solid var(--line);border-radius:13px;
  background:var(--card);
}
.community-message-compose-dialog #communityMessageComposeForm textarea{width:100%;min-width:0;box-sizing:border-box;margin:0;background:color-mix(in srgb,var(--bg) 35%,var(--card))}
.community-message-compose-dialog #communityMessageComposeForm .actions{margin:0;padding:0;display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.community-message-compose-dialog #communityMessageComposeForm .actions button{min-width:92px}
.community-message-compose-dialog>.dialog-body>.meta{margin:0;padding:9px 10px;border-radius:10px;background:color-mix(in srgb,var(--accent) 4%,var(--card));line-height:1.45}

@media(max-width:760px){
  .community-post-dialog-comments{margin-inline:2px;padding:9px}
  .community-comment-thread.depth-1,.community-comment-thread.depth-2,.community-comment-thread.depth-3{margin-left:15px;padding-left:7px}
  .community-post-dialog-comments .community-comment-form{grid-template-columns:1fr;margin-inline:3px;padding:9px}
  .community-post-dialog-comments .community-comment-form .primary{width:100%;height:38px}
  .community-comment-reply-context{margin-inline:3px}
  .community-external-share-menu{right:-8px;left:auto;width:min(360px,88vw);min-width:250px}
  .community-share-choice{flex-basis:68px;min-width:68px}
  .community-message-compose-dialog .dialog-body{padding:18px 14px 14px}
  .community-message-compose-dialog #communityMessageComposeForm .actions{display:grid;grid-template-columns:1fr 1fr}
  .community-message-compose-dialog #communityMessageComposeForm .actions button{width:100%;min-width:0}
}

/* FN27X5 — Community recipe knowledge links, layering and engagement metrics */
/* Profile chrome must stay above card-local menus/popovers. */
.personal-profile-sticky-nav{z-index:300}
.personal-profile-sticky-nav .community-profile-settings-popover,
.personal-profile-sticky-nav .community-create-menu{z-index:330}
.community-post-menu-wrap{z-index:24}
.community-post-menu{z-index:28}

/* Published recipe techniques behave like the recipe-catalogue technique chips. */
.community-post-dialog-techniques{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 4px}
.community-post-dialog-techniques .community-technique-chip{
  appearance:none;-webkit-appearance:none;cursor:pointer;
  border:1px solid #dbe4d1;border-radius:999px;
  background:#f0f5e8;color:#45623e;padding:7px 10px;
  font:inherit;font-size:10px;font-weight:800;line-height:1.2;
  transition:background .14s ease,border-color .14s ease,transform .14s ease;
}
.community-post-dialog-techniques .community-technique-chip:hover,
.community-post-dialog-techniques .community-technique-chip:focus-visible{
  background:#e5eed8;border-color:color-mix(in srgb,var(--accent) 48%,#dbe4d1);outline:none;transform:translateY(-1px)
}

/* Compact engagement statistics: unique detail viewers and saves. */
.community-post-stats{display:inline-flex;align-items:center;gap:6px;min-height:38px;align-self:center}
.community-post-stats>span{
  display:inline-flex;align-items:center;gap:4px;min-height:32px;padding:5px 9px;
  border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:999px;
  background:color-mix(in srgb,var(--bg) 58%,var(--card));color:var(--muted);font-size:10px;white-space:nowrap
}
.community-post-stats>span b{color:var(--text);font-size:11px}
.community-post-stats.compact>span{min-height:30px;padding:4px 8px}
.community-share-trigger .community-share-count{
  display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;margin-left:1px;
  border-radius:999px;background:color-mix(in srgb,var(--accent) 10%,var(--card));color:var(--accent);font-size:9px;font-weight:850
}

@media(max-width:680px){
  .community-post-stats{width:100%;justify-content:flex-start}
  .community-post-stats>span{flex:0 0 auto}
}

/* FN27X6 — household recipients in Community send composer */
.community-conversation-group-label{padding:8px 11px 6px;font-size:9px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:color-mix(in srgb,var(--accent) 3%,var(--card));border-bottom:1px solid var(--line)}
.community-conversation-row.household-share{background:color-mix(in srgb,var(--accent) 2%,var(--card))}.community-conversation-row.household-share:hover,.community-conversation-row.household-share.active{background:color-mix(in srgb,var(--accent) 8%,var(--card))}.community-message-status.local{background:color-mix(in srgb,var(--accent) 9%,var(--card));border-color:color-mix(in srgb,var(--accent) 20%,var(--line));color:var(--accent)}
.community-message-compose-dialog optgroup{font-weight:800;color:var(--text)}.community-message-compose-dialog option{font-weight:500;color:var(--text)}
.community-message-compose-recipient small{line-height:1.25}.household-share-bubble .community-message-attachment-card{min-width:min(440px,70vw)}

/* FN27X7 — explicit recipe save affordance */
.community-save-action{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:700;border-color:color-mix(in srgb,var(--accent) 28%,var(--line));background:color-mix(in srgb,var(--surface) 88%,var(--accent) 12%)}
.community-save-action:hover,.community-save-action:focus-visible{border-color:color-mix(in srgb,var(--accent) 58%,var(--line));background:color-mix(in srgb,var(--surface) 78%,var(--accent) 22%)}
.community-save-action.selected{border-color:color-mix(in srgb,var(--accent) 68%,var(--line));background:color-mix(in srgb,var(--accent) 18%,var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent)}
.community-own-recipe-save-note{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:7px 10px;border:1px dashed color-mix(in srgb,var(--line) 82%,transparent);border-radius:10px;background:color-mix(in srgb,var(--surface) 92%,var(--muted) 8%);color:var(--muted);font-size:12px;font-weight:700;cursor:help}
.community-own-recipe-save-note.compact{min-height:34px;padding:6px 9px}
@media(max-width:760px){.community-save-action span,.community-own-recipe-save-note span{display:inline}.community-save-action{min-width:0}}

/* FN28C · FamilyNexa reference product catalog browser */
.reference-catalog-card{margin-bottom:16px;overflow:hidden;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 3%,var(--panel)),var(--panel) 190px)}
.reference-catalog-heading{align-items:flex-start}.reference-catalog-heading .eyebrow{margin-bottom:3px}
.reference-catalog-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:14px 0}
.reference-catalog-summary>div{display:flex;flex-direction:column;gap:3px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.reference-catalog-summary span{font-size:11px;color:var(--muted)}.reference-catalog-summary b{font-size:18px}
.reference-catalog-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 0 12px;border-bottom:1px solid var(--line)}
.reference-catalog-controls .search-input{flex:1;min-width:240px}.reference-catalog-controls .meta{margin-left:auto}
.reference-catalog-layout{display:grid;grid-template-columns:minmax(210px,260px) minmax(0,1fr);gap:14px;padding-top:14px;align-items:start}
.reference-catalog-categories{display:grid;gap:4px;max-height:610px;overflow:auto;padding:3px 6px 3px 2px;position:sticky;top:12px}
.reference-category-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;width:100%;text-align:left;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--text);padding:8px 9px 8px calc(9px + (var(--reference-depth,0) * 14px));cursor:pointer}
.reference-category-row:hover{background:var(--surface-2)}.reference-category-row.selected{background:color-mix(in srgb,var(--accent) 11%,var(--card));border-color:color-mix(in srgb,var(--accent) 30%,var(--line));color:var(--accent)}
.reference-category-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reference-category-row b{font-size:11px;min-width:28px;text-align:right}
.reference-catalog-main{min-width:0}.reference-product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.reference-product-grid>.empty{grid-column:1/-1}
.reference-product-card{display:grid;gap:10px;min-width:0;padding:12px;border:1px solid var(--line);border-radius:13px;background:var(--card)}
.reference-product-card:hover{border-color:color-mix(in srgb,var(--accent) 34%,var(--line));box-shadow:0 5px 18px color-mix(in srgb,var(--text) 7%,transparent)}
.reference-product-card.adopted{background:color-mix(in srgb,var(--accent) 4%,var(--card))}
.reference-product-card-head{display:grid;grid-template-columns:36px minmax(0,1fr);gap:9px;align-items:center}.reference-product-card-head>div{min-width:0;display:grid;gap:2px}
.reference-product-card-head strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reference-product-card-head small{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.reference-product-mark{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 14%,var(--card));color:var(--accent);font-size:11px;font-weight:900;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line))}
.reference-product-info{display:grid;gap:5px}.reference-product-info span{display:grid;grid-template-columns:minmax(80px,.8fr) minmax(0,1.2fr);gap:7px;font-size:11px;color:var(--muted)}.reference-product-info b{font-weight:650;color:var(--text)}
.reference-product-card-foot{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin-top:auto;padding-top:8px;border-top:1px solid var(--line)}
.reference-product-card-foot code{font-size:9px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reference-adopt-btn{white-space:nowrap;padding:7px 9px}.reference-adopt-btn.adopted{opacity:.8}
.reference-catalog-more{display:block;margin:14px auto 2px}
@media(max-width:1180px){.reference-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.reference-catalog-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.reference-catalog-layout{grid-template-columns:1fr}.reference-catalog-categories{position:static;max-height:230px}.reference-product-grid{grid-template-columns:1fr}.reference-catalog-summary{grid-template-columns:1fr 1fr}.reference-catalog-controls{align-items:stretch;flex-direction:column}.reference-catalog-controls .search-input{min-width:0;width:100%}.reference-catalog-controls .meta{margin-left:0}.reference-product-card-foot{grid-template-columns:1fr}.reference-adopt-btn{width:100%}}
.d2-review-card{margin-bottom:18px}.d2-review-list{display:grid;gap:10px;margin-top:14px}.d2-review-row{border:1px solid var(--border);border-radius:14px;padding:12px;display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(180px,1fr) auto;gap:12px;align-items:start}.d2-review-row small{display:block}.d2-review-main strong{display:block}.d2-review-candidates select,.d2-review-candidates input{width:100%;margin-top:6px}.d2-review-actions{display:flex;gap:6px;flex-wrap:wrap}.d2-review-export{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px}.d2-confidence{font-weight:700;text-transform:uppercase}.d2-confidence.high{color:var(--success,#24864b)}.d2-confidence.medium{color:var(--warning,#a86c00)}.d2-confidence.low,.d2-confidence.none{color:var(--danger,#b43b3b)}@media(max-width:900px){.d2-review-row{grid-template-columns:1fr}}

.d2-review-bulkbar,.d2-review-pager{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}.d2-review-pager{justify-content:flex-end}.d2-review-history{margin-top:12px;border-top:1px solid var(--border);padding-top:10px}.d2-history-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--border)}.d2-review-row{grid-template-columns:auto minmax(220px,1.4fr) minmax(180px,1fr) auto}
/* FN28L · D2 quarantine workbench */
#d2JobPanel{max-height:460px;overflow:auto}.d2-job-event{display:grid;grid-template-columns:120px 210px minmax(0,1fr);gap:8px;padding:7px 0;border-bottom:1px solid var(--border);align-items:start}.d2-job-event code{white-space:pre-wrap;overflow-wrap:anywhere;font-size:10px}.d2-history-row small{display:block;color:var(--muted);margin-top:3px}@media(max-width:760px){.d2-job-event{grid-template-columns:1fr}.d2-review-bulkbar button{flex:1 1 150px}}
/* FN28M · D2 operations dashboard */
#d2JobPanel .reference-catalog-summary{margin:12px 0}.d2-history-row small{display:block;margin-top:4px}

/* FN28N Family Calendar 2.0 */
.family-year-card{margin-bottom:var(--space-lg,18px)}.calendar-layer-bar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:10px 0 14px;border-bottom:1px solid var(--line)}.calendar-layer-bar label{display:flex;gap:7px;align-items:center}.calendar-year-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}.year-month{border:1px solid var(--line);border-radius:14px;padding:10px;background:var(--card)}.year-month h4{margin:0 0 8px}.year-week,.year-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.year-week span{font-size:.68rem;text-align:center;color:var(--muted);font-weight:700}.year-week span:nth-child(6),.year-week span:nth-child(7){color:var(--accent);font-weight:900}.year-day{position:relative;min-height:46px;border:0;border-radius:8px;background:transparent;padding:4px;text-align:center;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .14s ease,box-shadow .14s ease,transform .14s ease}.year-day:hover{background:color-mix(in srgb,var(--accent) 22%,var(--card));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent);transform:translateY(-1px)}.year-day.weekend{background:color-mix(in srgb,var(--accent) 7%,transparent);font-weight:800}.year-day.weekend:hover{background:color-mix(in srgb,var(--accent) 25%,var(--card))}.year-day>span:first-child{display:block;line-height:1;text-align:center}.year-day.has-event{font-weight:850}.year-day .event-peek{position:absolute;left:4px;right:4px;top:24px;font-size:.57rem;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);opacity:.88}.calendar-day-dialog{width:min(620px,calc(100vw - 28px))}.calendar-day-list{display:grid;gap:8px;margin:12px 0}.calendar-day-item{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--card)}.calendar-day-item button{white-space:nowrap}.calendar-day-kind{font-size:.72rem;color:var(--muted);font-weight:700}.calendar-day-empty{padding:18px;text-align:center;color:var(--muted)}.year-day.today{outline:2px solid var(--accent)}.year-day.has-holiday{box-shadow:inset 0 -3px 0 #b88742}.year-day.has-birthday{box-shadow:inset 0 -3px 0 #b85c83}.year-day .dots{display:flex;gap:2px;position:absolute;bottom:3px;left:4px}.year-day .dot{width:5px;height:5px;border-radius:50%;background:var(--accent)}.year-day .dot.birthday{background:#b85c83}.year-day .dot.holiday{background:#b88742}.year-day .dot.nameday{background:#5c72b8}@media(max-width:1100px){.calendar-year-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.calendar-year-grid{grid-template-columns:1fr}}

/* FN28N2 · Calendar day surface and reminder UX */
.calendar-day-dialog{width:min(760px,calc(100vw - 32px));max-height:min(82vh,820px);padding:0;border:1px solid var(--line);border-radius:18px;background:var(--card);box-shadow:0 24px 70px rgba(0,0,0,.24);overflow:hidden}
.calendar-day-dialog::backdrop{background:rgba(15,23,42,.38);backdrop-filter:blur(2px)}
.calendar-day-dialog>.dialog-head{padding:20px 22px 15px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--card) 92%,var(--accent) 8%)}
.calendar-day-dialog .calendar-day-list{max-height:52vh;overflow:auto;padding:18px 22px;margin:0;display:grid;gap:10px}
.calendar-day-dialog>.actions{margin:0;padding:15px 22px 18px;border-top:1px solid var(--line);background:var(--card);display:flex;justify-content:flex-end;gap:10px}
.calendar-day-dialog .calendar-day-item{padding:13px 14px;border-radius:14px;background:color-mix(in srgb,var(--card) 96%,var(--accent) 4%)}
.calendar-day-dialog .calendar-day-empty{padding:30px 18px;border:1px dashed var(--line);border-radius:14px;background:color-mix(in srgb,var(--card) 97%,var(--accent) 3%)}
.calendar-reminder-custom{margin:-2px 0 12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--card) 96%,var(--accent) 4%)}
.reminder-custom-row{display:grid;grid-template-columns:minmax(90px,1fr) minmax(120px,1fr);gap:10px;margin-top:6px}
@media(max-width:650px){.calendar-day-dialog{width:calc(100vw - 18px);max-height:90vh}.calendar-day-dialog>.dialog-head,.calendar-day-dialog .calendar-day-list,.calendar-day-dialog>.actions{padding-left:14px;padding-right:14px}.calendar-day-dialog>.actions{flex-wrap:wrap}.reminder-custom-row{grid-template-columns:1fr}}

/* FN28O · Unified context/navigation foundation (adapted from NB03D interaction model) */
.unified-context-switcher{display:grid;grid-template-columns:auto minmax(92px,auto) auto minmax(170px,1fr);align-items:center;gap:7px;padding:6px 8px;border:1px solid var(--line);border-radius:12px;background:var(--card);box-shadow:0 5px 16px rgba(31,59,74,.06)}
.unified-context-switcher label{font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.unified-context-switcher select{min-width:0;padding:7px 28px 7px 9px;border-radius:9px;background:var(--surface-panel);font-weight:700}
.nav{position:relative;transition:background .16s ease,color .16s ease,transform .16s ease}.nav:hover{transform:translateX(2px)}.nav.active:before{content:"";position:absolute;left:3px;top:9px;bottom:9px;width:3px;border-radius:5px;background:var(--accent)}
@media(max-width:900px){.unified-context-switcher{grid-template-columns:auto 90px auto minmax(130px,1fr)}}
@media(max-width:650px){.unified-context-switcher{grid-template-columns:auto 1fr}.unified-context-switcher select{width:100%}}


/* FN28O1 — NB-inspired stable Day Manager */
.calendar-day-manager{width:min(860px,calc(100vw - 32px));height:min(760px,88vh);display:none;grid-template-rows:auto auto minmax(0,1fr) auto}
.calendar-day-manager[open]{display:grid}.calendar-day-tools{padding:14px 22px 10px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--card) 97%,var(--accent2) 3%)}
.calendar-day-tools input[type="search"]{width:100%;margin:0 0 10px}.calendar-day-filters{display:flex;gap:7px;flex-wrap:wrap}.calendar-day-filters .active{background:color-mix(in srgb,var(--accent) 14%,var(--card));border-color:color-mix(in srgb,var(--accent) 45%,var(--line));color:var(--accent)}
.calendar-day-manager .calendar-day-list{max-height:none;min-height:0;margin:0;overflow:auto;align-content:start}.calendar-day-item{border-left:4px solid var(--info)}.calendar-day-item.calendar-day-task{border-left-color:var(--warn)}.calendar-day-item.calendar-day-life{border-left-color:var(--accent3)}.calendar-day-item.calendar-day-other{border-left-color:var(--muted)}
.calendar-day-item-main{min-width:0}.calendar-day-item-actions{display:flex;gap:6px;align-items:center}.calendar-day-manager>.actions{flex-wrap:wrap}.year-day .dot.task{background:var(--warn)}
@media(max-width:650px){.calendar-day-manager{height:92vh}.calendar-day-filters{display:grid;grid-template-columns:1fr 1fr}.calendar-day-manager>.actions button{flex:1 1 auto}.calendar-day-item{grid-template-columns:1fr}.calendar-day-item-actions{justify-content:flex-end}}


/* FN28O2 · unified navigation/context card */
.active-context-card{width:100%;display:grid;grid-template-columns:42px minmax(0,1fr) 20px;align-items:center;gap:10px;margin:14px 0 8px;padding:10px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--card) 92%,var(--accent) 8%);color:var(--text);text-align:left;cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease}
.active-context-card:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 45%,var(--line));box-shadow:0 8px 22px rgba(20,44,30,.08)}
.active-context-avatar{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 14%,var(--card));color:var(--accent);font-weight:900}
.active-context-copy{min-width:0;display:grid;gap:1px}.active-context-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.active-context-copy>span{font-size:10px;color:var(--muted)}
.active-context-mode{width:max-content;font-size:8px;letter-spacing:.13em;font-weight:900;color:var(--accent)}.active-context-chevron{color:var(--muted);font-size:16px}
.active-context-card[data-mode="business"]{background:color-mix(in srgb,var(--card) 90%,var(--accent2) 10%)}.active-context-card[data-mode="business"] .active-context-avatar{background:color-mix(in srgb,var(--accent2) 15%,var(--card));color:var(--accent2)}.active-context-card[data-mode="business"] .active-context-mode{color:var(--accent2)}
.unified-context-switcher{box-shadow:0 4px 14px rgba(20,44,30,.04)}.unified-context-switcher select{cursor:pointer}.unified-context-switcher #accountModeSelect{min-width:100px}.unified-context-switcher #accountContextSelect{min-width:180px}
.fn-sidebar .nav{position:relative;transition:transform .14s ease,background .14s ease,color .14s ease}.fn-sidebar .nav:hover{transform:translateX(2px)}.fn-sidebar .nav.active:before{content:"";position:absolute;left:-6px;top:8px;bottom:8px;width:3px;border-radius:4px;background:var(--accent)}
@media(max-width:820px){.active-context-card{grid-template-columns:1fr;padding:8px}.active-context-copy,.active-context-chevron{display:none}.active-context-avatar{margin:auto}.unified-context-switcher #accountModeSelect{min-width:88px}.unified-context-switcher #accountContextSelect{min-width:130px}}
@media(max-width:620px){.active-context-card{width:42px;flex:0 0 42px;margin:0}.active-context-avatar{width:34px;height:34px}.account-context-switcher{max-width:min(70vw,360px);overflow:hidden}}

/* FN28O3 · NexaBusiness-inspired FamilyNexa navigation shell
   Visual reference: NB03D-R12 sidebar. Menu content remains FamilyNexa-owned. */
.fn-sidebar{
  width:252px;
  padding:16px 14px 14px;
  background:#0d1d24;
  color:#d8e4e8;
  border-right:1px solid #18313b;
  box-shadow:none;
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:#87969b #13262e;
}
.fn-sidebar::-webkit-scrollbar{width:8px}.fn-sidebar::-webkit-scrollbar-track{background:#13262e}.fn-sidebar::-webkit-scrollbar-thumb{background:#87969b;border-radius:8px;border:2px solid #13262e}
.fn-brand{min-height:54px;padding:2px 5px 12px;color:#fff;display:flex;align-items:center}
.fn-brand .brand-logo-image{display:block;max-width:174px;max-height:42px;width:auto;height:auto;object-fit:contain;object-position:left center;filter:brightness(0) invert(1);opacity:.96}
.active-context-card{
  grid-template-columns:minmax(0,1fr) 18px;
  gap:8px;
  margin:2px 0 14px;
  padding:10px 11px;
  min-height:62px;
  border:1px solid #2a414a;
  border-radius:12px;
  background:#14272f;
  color:#eef6f8;
  box-shadow:none;
}
.active-context-card:hover{transform:none;background:#19313a;border-color:#3a5964;box-shadow:none}
.active-context-avatar{display:none}
.active-context-copy{display:grid;gap:2px}.active-context-copy strong{font-size:13px;color:#fff;line-height:1.25}.active-context-copy>span{font-size:10px;color:#a8bcc3}.active-context-mode{order:-1;font-size:8px;letter-spacing:.12em;color:#7895a0!important}.active-context-chevron{font-size:14px;color:#9bb0b7;text-align:center}
.active-context-card[data-mode="business"]{background:#14272f}.active-context-card[data-mode="business"] .active-context-mode{color:#7895a0!important}
.sidebar-section-label{margin:14px 7px 6px;font-size:8px;line-height:1.2;letter-spacing:.13em;text-transform:uppercase;color:#6f929f;font-weight:800}
.daily-nav,.business-context-nav,#secondaryNav{display:grid;gap:1px}
.fn-sidebar .nav{
  min-height:36px;
  margin:0;
  padding:8px 10px;
  gap:8px;
  border-radius:9px;
  color:#b9cdd4;
  font-size:11px;
  font-weight:500;
  transform:none;
  transition:background .13s ease,color .13s ease,border-color .13s ease;
}
.fn-sidebar .nav-icon{width:16px;font-size:12px;color:#89a5ae;opacity:.9}
.fn-sidebar .nav:hover{transform:none;background:#172d35;color:#fff}
.fn-sidebar .nav.active{background:#203b43;color:#fff;font-weight:650}
.fn-sidebar .nav.active:before{left:0;top:5px;bottom:5px;width:3px;border-radius:0 4px 4px 0;background:#d9efea}
.fn-sidebar .nav.active .nav-icon{color:#e5f4f1}
.fn-sidebar .nav-badge{margin-left:auto}
.fn-sidebar .privacy-card{margin-top:14px;border:1px solid #29404a;background:#13272f;color:#c6d7dc;padding:11px;border-radius:10px}
.fn-sidebar .privacy-card .privacy-icon{color:#88aaa3}.fn-sidebar .privacy-card strong{color:#e9f2f4}.fn-sidebar .privacy-card small{color:#8fa7ae}.fn-sidebar .privacy-card b{color:#a9c9c1}
.fn-sidebar .sidebar-bottom{margin-top:auto;padding-top:10px;border-top:1px solid #203740}
.fn-sidebar .nav-separator{background:#203740}
body>main{margin-left:252px;width:calc(100% - 252px)}
/* Keep the selector logic in the top bar, but visually match the restrained NB shell. */
.unified-context-switcher{padding:4px 6px;border-radius:9px;box-shadow:none;background:#fbfcfa}
.unified-context-switcher select{padding-top:6px;padding-bottom:6px;border-radius:7px;font-size:10px}
@media(max-width:820px){
  .fn-sidebar{width:78px;padding:14px 9px}.fn-brand{padding:0 4px 10px}.fn-brand .brand-logo-image{width:42px;height:42px;object-fit:cover;object-position:left}
  .active-context-card{grid-template-columns:1fr;width:100%;min-height:42px;padding:8px}.active-context-copy,.active-context-chevron{display:none}.active-context-card:after{content:attr(data-mode);font-size:8px;text-transform:uppercase;text-align:center;color:#9db2b9}
  .sidebar-section-label{display:none}.fn-sidebar .nav{justify-content:center;padding:9px}.fn-sidebar .nav span:last-child{display:none}.fn-sidebar .nav-icon{width:auto;font-size:14px}
  .fn-sidebar .privacy-card{display:none}body>main{margin-left:78px;width:calc(100% - 78px)}
}
@media(max-width:620px){
  .fn-sidebar{position:sticky;top:0;width:100%;height:auto;min-height:0;display:flex;flex-direction:row;align-items:center;gap:5px;padding:7px 9px;overflow-x:auto;overflow-y:hidden;border-right:0;border-bottom:1px solid #203740}
  .fn-brand{min-height:0;padding:0;flex:0 0 38px}.fn-brand .brand-logo-image{width:36px;height:36px}.active-context-card{width:40px;min-width:40px;margin:0;padding:5px}.active-context-card:after{font-size:0}.active-context-card:before{content:"⌂";font-size:16px;text-align:center;color:#d7e8e5}
  .daily-nav,.business-context-nav{display:flex;grid-auto-flow:column;gap:2px}.fn-sidebar .nav{width:38px;height:38px;min-height:38px;padding:0}.fn-sidebar .sidebar-bottom,.fn-sidebar .privacy-card{display:none}
  body>main{margin:0;width:100%}
}
/* FN28O4 · NexaBusiness NB03D-R12 calendar interaction/media adaptation */
.calendar-day-manager{width:min(920px,calc(100vw - 40px));height:min(720px,calc(100vh - 40px));max-height:none}.calendar-day-manager .calendar-day-list{scrollbar-gutter:stable;overscroll-behavior:contain}.calendar-day-item{position:relative;grid-template-columns:auto 4px minmax(0,1fr) auto;gap:11px;padding:10px 12px;border-left:1px solid var(--line)}.calendar-day-mark{align-self:stretch;width:4px;border-radius:999px;background:var(--info)}.calendar-day-task .calendar-day-mark{background:var(--warn)}.calendar-day-life .calendar-day-mark{background:var(--accent3)}.calendar-day-other .calendar-day-mark{background:var(--muted)}.calendar-day-thumb{width:55px;height:55px;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:var(--panel-soft,var(--card));display:grid;place-items:center}.calendar-day-thumb img{width:100%;height:100%;display:block;background:white;padding:3px}.calendar-day-item-main{border:0;background:transparent;color:inherit;text-align:left;padding:0;cursor:pointer}.calendar-day-item-main:hover b{text-decoration:underline}.calendar-day-item-actions{position:relative}.calendar-day-more{width:34px;height:32px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer}.calendar-day-more:hover{background:var(--panel-soft,var(--surface));border-color:var(--line)}.calendar-day-popover{display:none;position:absolute;right:0;top:36px;min-width:185px;padding:5px;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 34px rgba(0,0,0,.18);z-index:20}.calendar-day-popover.open{display:grid}.calendar-day-popover button{border:0;background:transparent;text-align:left;padding:8px 9px;border-radius:7px;color:var(--text);cursor:pointer}.calendar-day-popover button:hover{background:var(--surface)}
.calendar-media-editor{display:grid;gap:10px;margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--card) 96%,var(--accent2) 4%)}.calendar-media-preview{width:250px;height:250px;max-width:100%;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;color:var(--muted)}.calendar-media-preview img{width:100%;height:100%;display:block;background:white;padding:8px}.calendar-item-detail-dialog{width:min(720px,calc(100vw - 32px));max-height:88vh;padding:0;border:1px solid var(--line);border-radius:18px;background:var(--card);overflow:hidden;box-shadow:0 24px 70px rgba(0,0,0,.24)}.calendar-item-detail-dialog::backdrop,.calendar-image-viewer::backdrop{background:rgba(8,12,18,.72);backdrop-filter:blur(2px)}.calendar-item-detail-dialog>.dialog-head{padding:16px 20px;border-bottom:1px solid var(--line)}.calendar-detail-head-actions{margin-left:auto;display:flex;align-items:center;gap:7px}.calendar-item-detail-body{padding:18px 22px 24px;overflow:auto;max-height:calc(88vh - 75px)}.calendar-detail-image{width:min(100%,620px);max-height:520px;border:1px solid var(--line);border-radius:18px;background:var(--surface);padding:12px;margin:0 auto 18px;display:flex;align-items:center;justify-content:center;cursor:zoom-in}.calendar-detail-image img{width:auto;height:auto;max-width:100%;max-height:490px;border-radius:12px;background:white}.calendar-detail-info{display:grid;gap:14px}.calendar-detail-info>div{border-bottom:1px solid var(--line);padding-bottom:12px}.calendar-detail-info>div:last-child{border-bottom:0}.calendar-detail-info span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:800;margin-bottom:5px}.calendar-detail-info p{margin:0;white-space:pre-wrap;line-height:1.55}.calendar-image-viewer{width:min(96vw,1400px);max-width:none;max-height:94vh;padding:0;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:#0f141b;color:#f5f7f8;box-shadow:0 24px 70px rgba(0,0,0,.45)}.calendar-image-viewer>.dialog-head{padding:14px 18px 6px;border:0;background:transparent}.calendar-image-viewer .dialog-x{color:#fff}.calendar-image-viewer-body{padding:10px 18px 18px;display:flex;align-items:center;justify-content:center;min-height:200px}.calendar-image-viewer-body img{max-width:min(92vw,1280px);max-height:min(80vh,960px);width:auto;height:auto;border-radius:16px;background:white;box-shadow:0 8px 30px rgba(0,0,0,.25)}
@media(max-width:720px){.calendar-day-manager{width:calc(100vw - 16px);height:calc(100vh - 16px)}.calendar-day-item{grid-template-columns:auto 4px minmax(0,1fr) auto}.calendar-day-thumb{width:46px;height:46px}.calendar-media-preview{width:100%;height:220px}.calendar-item-detail-dialog{width:calc(100vw - 16px)}}

/* FN28O5 · stable calendar card actions + personal occasion selector */
.calendar-day-item .calendar-day-mark{grid-column:1}.calendar-day-item .calendar-day-thumb{grid-column:2}.calendar-day-item .calendar-day-item-main{grid-column:3}.calendar-day-item .calendar-day-item-actions{grid-column:4;justify-self:end;margin-left:auto}.calendar-day-item:not(:has(.calendar-day-thumb)){grid-template-columns:4px minmax(0,1fr) auto}.calendar-day-item:not(:has(.calendar-day-thumb)) .calendar-day-mark{grid-column:1}.calendar-day-item:not(:has(.calendar-day-thumb)) .calendar-day-item-main{grid-column:2}.calendar-day-item:not(:has(.calendar-day-thumb)) .calendar-day-item-actions{grid-column:3}.calendar-day-more{display:grid;place-items:center;flex:0 0 34px}.calendar-day-popover{right:0}
#calendarLifePersonForm [data-life-occasion]{font-weight:750}.calendar-day-item.calendar-day-life .calendar-day-kind{color:var(--accent3)}
@media(max-width:720px){.calendar-day-item:not(:has(.calendar-day-thumb)){grid-template-columns:4px minmax(0,1fr) auto}.calendar-day-item .calendar-day-item-actions{justify-self:end}}
/* FN28O6 monthly-first calendar, adapted from NexaBusiness monthly calendar proportions. */
.family-month-card{position:relative;margin-bottom:var(--space-lg,18px);padding:0;overflow:hidden}.calendar-month-nav{display:grid;grid-template-columns:1fr minmax(240px,1.3fr) 1fr;align-items:center;gap:12px;padding:18px 20px 8px}.calendar-month-nav button{border:0;background:transparent;cursor:pointer}.calendar-current-month{font-size:1.35rem;font-weight:900;color:var(--text);text-transform:capitalize;text-align:center}.calendar-adjacent-month{font-size:.86rem;font-weight:700;color:var(--muted);text-transform:capitalize}.calendar-adjacent-month:first-child{text-align:left}.calendar-adjacent-month:last-child{text-align:right}.calendar-adjacent-month:hover{color:var(--accent)}.calendar-month-actions{display:flex;justify-content:flex-end;gap:8px;padding:0 20px 12px}.calendar-month-week,.calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-month-week{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--card) 92%,var(--accent) 8%)}.calendar-month-week span{padding:8px;text-align:center;font-size:.72rem;font-weight:850;color:var(--muted)}.calendar-month-week span:nth-child(6),.calendar-month-week span:nth-child(7){color:var(--accent)}.calendar-month-grid{background:var(--line);gap:1px}.calendar-month-day{position:relative;min-height:118px;border:0;background:var(--card);padding:9px;text-align:left;cursor:pointer;overflow:hidden;transition:background .14s ease,box-shadow .14s ease}.calendar-month-day:hover{z-index:1;background:color-mix(in srgb,var(--accent) 8%,var(--card));box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 30%,transparent)}.calendar-month-day.weekend{background:color-mix(in srgb,var(--accent) 5%,var(--card))}.calendar-month-day.outside{opacity:.42}.calendar-month-day.today{box-shadow:inset 0 0 0 2px var(--accent)}.calendar-month-daynum{display:block;font-size:.82rem;font-weight:900;margin-bottom:7px}.calendar-month-dayitems{display:grid;gap:4px}.month-entry{display:block;padding:3px 5px;border-radius:5px;font-size:.66rem;line-height:1.15;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:color-mix(in srgb,var(--info) 14%,transparent)}.month-entry.task{background:color-mix(in srgb,var(--success) 15%,transparent)}.month-more{font-size:.63rem;color:var(--muted);font-style:normal}.calendar-month-day .dots{position:absolute;left:9px;bottom:7px;display:flex;gap:3px}.calendar-month-day .dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}.calendar-month-day .dot.birthday{background:#b85c83}.calendar-month-day .dot.holiday{background:#b88742}.calendar-month-day .dot.nameday,.calendar-month-day .dot.person_nameday{background:#5c72b8}.year-month-title{width:100%;border:0;background:transparent;text-align:left;padding:0;margin:0 0 8px;font:inherit;font-weight:850;color:var(--text);cursor:pointer}.year-month-title:hover{color:var(--accent);text-decoration:underline}.calendar-toolbar .active{box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent)}
@media(max-width:800px){.calendar-month-nav{grid-template-columns:1fr 1.35fr 1fr;padding-inline:12px}.calendar-current-month{font-size:1.05rem}.calendar-adjacent-month{font-size:.7rem}.calendar-month-day{min-height:86px;padding:6px}.month-entry{font-size:.58rem}.calendar-month-actions{padding-inline:12px}}
\n/* FN28O7 Calendar UX Consolidation */
.calendar-editor-dialog{width:min(920px,calc(100vw - 32px));max-width:920px}.calendar-editor-dialog form{display:grid;gap:14px}.calendar-editor-dialog .row{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.calendar-life-editor-dialog{width:min(880px,calc(100vw - 32px))}.calendar-life-editor-dialog .calendar-media-editor,.calendar-event-editor-dialog .calendar-media-editor{padding:14px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--bg) 65%,var(--card))}.calendar-life-editor-dialog textarea,.calendar-event-editor-dialog textarea{min-height:84px}.calendar-toolbar{flex-wrap:wrap}.calendar-layout{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}.calendar-layout>.card,.calendar-side{min-width:0}.calendar-side{display:contents}.calendar-dashboard-card{position:relative;max-height:310px;overflow:auto}.calendar-dashboard-card.expanded{grid-column:1/-1;max-height:none;overflow:visible}.calendar-card-expand{margin-left:auto;white-space:nowrap}.calendar-notification-prefs{gap:14px}.notification-source-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.notification-source-grid label,.notification-channel-grid label{min-height:38px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--bg) 55%,var(--card));font-size:.78rem}.notification-channel-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px 0}.calendar-notification-prefs>.row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.calendar-notification-prefs>label{display:grid;gap:6px}.calendar-notification-prefs button[type="submit"]{justify-self:start}@media(max-width:1050px){.calendar-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-dashboard-card.expanded{grid-column:1/-1}}@media(max-width:720px){.calendar-layout{grid-template-columns:1fr}.calendar-dashboard-card{max-height:none}.calendar-dashboard-card.expanded{grid-column:auto}.calendar-editor-dialog .row,.calendar-notification-prefs>.row,.notification-channel-grid,.notification-source-grid{grid-template-columns:1fr}.calendar-toolbar #calendarNewEvent,.calendar-toolbar #calendarNewTask{grid-column:auto;width:auto}}\n
/* FN28O8 Calendar consistency + workbench */
.calendar-event-editor-dialog,.calendar-life-editor-dialog{width:min(880px,calc(100vw - 32px))!important;max-width:880px!important;max-height:min(88vh,920px);overflow:auto}
.calendar-event-editor-dialog form,.calendar-life-editor-dialog form{padding:24px 26px}
.calendar-workbench{margin-top:14px;padding:14px 16px;border:1px solid var(--border);border-radius:16px;background:var(--surface-card);box-shadow:var(--shadow)}
.calendar-workbench-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.calendar-workbench-head h3{margin:0 0 3px}.calendar-workbench-head .meta{margin:0}.calendar-workbench-tabs{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.calendar-workbench-tabs button{padding:8px 10px}.calendar-workbench-tabs button.active{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--card))}
.calendar-layout{display:block;margin-top:10px}.calendar-side{display:contents}.calendar-layout [data-calendar-workbench-panel],#calendarContent>.calendar-provider-card[data-calendar-workbench-panel]{display:none}.calendar-layout [data-calendar-workbench-panel].calendar-workbench-active,#calendarContent>.calendar-provider-card[data-calendar-workbench-panel].calendar-workbench-active{display:block;max-height:none;overflow:visible;margin:0}.calendar-layout [data-calendar-workbench-panel]{min-height:180px}.calendar-provider-card.calendar-workbench-active{margin-top:10px!important}
@media(max-width:900px){.calendar-workbench-head{align-items:flex-start;flex-direction:column}.calendar-workbench-tabs{justify-content:flex-start}.calendar-event-editor-dialog,.calendar-life-editor-dialog{width:calc(100vw - 20px)!important}.calendar-event-editor-dialog form,.calendar-life-editor-dialog form{padding:18px}.calendar-editor-dialog .row{grid-template-columns:1fr}}
/* FN28O12 Calendar & Context Release Gate */
.calendar-annual-progress{display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--card) 88%,var(--accent) 12%);font-size:.72rem;font-weight:800;color:var(--muted);white-space:nowrap}.year-month-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.year-month-load-state{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:.68rem;text-decoration:none;background:color-mix(in srgb,var(--line) 72%,transparent);color:var(--muted)}.year-month.hydrated .year-month-load-state{background:color-mix(in srgb,var(--success) 18%,var(--card));color:var(--success)}.year-month.loading{opacity:.82}.year-month.load-error{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--warn) 55%,transparent)}.year-month.load-error .year-month-load-state{background:color-mix(in srgb,var(--warn) 18%,var(--card));color:var(--warn)}
/* FN28P1 – Household UX & recipe-loading stabilization */
#calendar .notification-source-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px 14px}
#calendar .notification-source-grid label{min-height:0;padding:4px 2px;border:0;border-radius:0;background:transparent;font-size:.76rem;line-height:1.25;align-items:flex-start}
#calendar .notification-source-grid input[type="checkbox"],#calendar .notification-source-grid input[type="radio"]{width:auto;min-width:15px;margin:1px 0 0;flex:0 0 auto}
#calendar .notification-channel-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px 14px;padding:9px 0}
#calendar .notification-channel-grid label{min-height:0;padding:4px 2px;border:0;background:transparent;font-size:.76rem}
.calendar-event-editor-dialog,.calendar-life-editor-dialog{width:min(920px,calc(100vw - 32px))!important;max-width:920px!important;min-width:min(720px,calc(100vw - 32px))}
.calendar-event-editor-dialog form,.calendar-life-editor-dialog form{width:100%}
.shopping-tool-tabs{position:sticky;top:0;z-index:12;display:flex;gap:6px;align-items:center;overflow-x:auto;margin:0 0 12px;padding:9px 10px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--surface-card) 94%,transparent);backdrop-filter:blur(10px);box-shadow:0 5px 18px rgba(20,35,28,.07);scrollbar-width:thin}
.shopping-tool-tabs button{white-space:nowrap;flex:0 0 auto;padding:7px 10px}.shopping-tool-tabs button.active{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--card))}
#shopping .shopping-side>article.card{display:none;margin:0}#shopping .shopping-side>article.card.shopping-tool-active{display:block}.shopping-side{position:sticky;top:58px;align-self:start}
#pantryContent>.finance-summary-grid{margin-bottom:16px}#pantryContent>.card{margin-top:16px!important;margin-bottom:0!important}#pantryContent>.pantry-layout{margin-top:16px}.pantry-side{gap:16px}.pantry-layout>.card,.pantry-side>.card{margin:0!important}
@media(max-width:1050px){#calendar .notification-source-grid,#calendar .notification-channel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shopping-side{position:static}}
@media(max-width:720px){#calendar .notification-source-grid,#calendar .notification-channel-grid{grid-template-columns:1fr}.calendar-event-editor-dialog,.calendar-life-editor-dialog{width:calc(100vw - 20px)!important;min-width:0}.shopping-tool-tabs{top:0;border-radius:11px}}
\n/* FN28P2 – Settings navigation, loading feedback and compact notification controls */
#calendar .calendar-notification-prefs .notification-channel-grid{display:grid;grid-template-columns:repeat(3,max-content);justify-content:start;column-gap:28px;row-gap:6px;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
#calendar .calendar-notification-prefs .notification-channel-grid label{display:grid;grid-template-columns:18px auto;align-items:center;gap:7px;width:auto;min-width:0;padding:3px 0;margin:0;border:0;background:transparent;white-space:nowrap}
#calendar .calendar-notification-prefs .notification-channel-grid input{width:15px;height:15px;margin:0}
#calendar .calendar-notification-prefs .notification-source-grid,#calendar #proactiveAlertSettings .notification-source-grid{display:grid;grid-template-columns:repeat(3,minmax(170px,1fr));gap:7px 18px;align-items:start}
#calendar .calendar-notification-prefs .notification-source-grid label,#calendar #proactiveAlertSettings .notification-source-grid label{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:7px;min-height:0;padding:4px 0;margin:0;border:0;background:transparent;line-height:1.3}
#calendar #proactiveAlertSettings .notification-source-grid{margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid var(--line)}
#calendar #proactiveAlertSettings>.row{margin-top:4px;gap:16px}
#calendar #proactiveAlertSettings>.row label{margin-top:0}

.settings-sticky-nav{position:sticky;top:0;z-index:24;display:flex;align-items:center;gap:7px;overflow-x:auto;margin:0 0 16px;padding:9px 10px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--surface-card) 95%,transparent);backdrop-filter:blur(12px);box-shadow:0 6px 20px rgba(20,35,28,.08);scrollbar-width:thin}
.settings-sticky-nav button{flex:0 0 auto;white-space:nowrap;padding:8px 11px}.settings-sticky-nav button.active{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--card))}
#settings [data-settings-panel]{display:none!important}#settings [data-settings-panel].settings-panel-visible{display:block!important}
#settings[data-settings-tab="appearance"] #appearanceEditor{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
#settings[data-settings-tab="appearance"] #appearanceEditor [data-settings-order="1"]{order:1}#settings[data-settings-tab="appearance"] #appearanceEditor [data-settings-order="2"]{order:2}#settings[data-settings-tab="appearance"] #appearanceEditor [data-settings-order="3"]{order:3}#settings[data-settings-tab="appearance"] #appearanceEditor [data-settings-order="4"]{order:4}
#settings .language-settings-grid,#settings #appearanceEditor{align-items:start}
.observability-card,.portability-card,.desktop-update-card{min-width:0;overflow:hidden}.observability-card .desktop-update-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.observability-card .backup-actions,.desktop-update-card .backup-actions{display:flex;flex-wrap:wrap;gap:8px}.observability-card .backup-list,.observability-card details,.observability-card code,.portability-card code{min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.observability-card button,.desktop-update-card button{max-width:100%;white-space:normal}

.module-loading-state{display:flex;align-items:center;justify-content:center;gap:10px;min-height:54px;margin:0 0 10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--card) 93%,var(--accent) 7%);color:var(--muted);font-size:.82rem;font-weight:700}.fn-spinner{width:18px;height:18px;border:2px solid color-mix(in srgb,var(--accent) 22%,var(--line));border-top-color:var(--accent);border-radius:50%;animation:fnSpin .72s linear infinite;flex:0 0 auto}@keyframes fnSpin{to{transform:rotate(360deg)}}
.active-context-card.loading .active-context-chevron{width:16px;height:16px;border:2px solid rgba(255,255,255,.25);border-top-color:#d7e8e5;border-radius:50%;font-size:0;animation:fnSpin .72s linear infinite}.household-switch-busy #mainContent{cursor:progress}
.recipe-thumb{position:relative;overflow:hidden;background:linear-gradient(90deg,color-mix(in srgb,var(--card) 86%,var(--line)) 25%,color-mix(in srgb,var(--card) 65%,var(--line)) 50%,color-mix(in srgb,var(--card) 86%,var(--line)) 75%);background-size:200% 100%;animation:recipeThumbShimmer 1.15s linear infinite}.recipe-thumb:has(.recipe-thumb-image.loaded),.recipe-thumb:not(:has(img)){animation:none}.recipe-thumb-image{opacity:0;transition:opacity .22s ease}.recipe-thumb-image.loaded{opacity:1}@keyframes recipeThumbShimmer{to{background-position:-200% 0}}
.shopping-product-shelf:empty:before{content:"Termékek betöltése…";display:block;color:var(--muted);font-size:.8rem;padding:9px}

@media(max-width:1050px){#calendar .calendar-notification-prefs .notification-source-grid,#calendar #proactiveAlertSettings .notification-source-grid{grid-template-columns:repeat(2,minmax(170px,1fr))}.observability-card .desktop-update-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){#calendar .calendar-notification-prefs .notification-channel-grid{grid-template-columns:1fr;row-gap:4px}#calendar .calendar-notification-prefs .notification-source-grid,#calendar #proactiveAlertSettings .notification-source-grid{grid-template-columns:1fr}#settings[data-settings-tab="appearance"] #appearanceEditor{grid-template-columns:1fr}.settings-sticky-nav{top:0;border-radius:11px}.observability-card .desktop-update-metrics{grid-template-columns:1fr}}

/* FN28P3 – sticky settings actions + configurable home-cover edge blend */
.settings-page-intro{margin-bottom:8px}
.settings-sticky-nav{display:flex;align-items:center;gap:12px;overflow-x:auto}
.settings-sticky-tabs{display:flex;align-items:center;gap:7px;flex:0 0 auto}
.settings-sticky-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto;margin-left:auto;padding-left:12px;border-left:1px solid var(--border)}
.settings-sticky-actions button{white-space:nowrap}
.cover-blend-control{margin-top:12px}
.cover-blend-label{display:flex;justify-content:space-between;align-items:center;gap:12px}
.cover-blend-label output{min-width:42px;text-align:right;font-weight:800;color:var(--accent)}
.cover-blend-control input[type="range"]{width:100%;accent-color:var(--accent)}
.overview-hero-art.has-cover.has-cover-blend{-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 var(--cover-edge-blend),#000 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 var(--cover-edge-blend),#000 100%)}
.cover-blend-preview{display:grid;grid-template-columns:minmax(160px,.75fr) minmax(220px,1.25fr);min-height:112px;margin:12px 0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:linear-gradient(115deg,#edf3df 0%,#edf3df 56%,#e6efda 56%,#e6efda 100%)}
.cover-blend-preview-copy{display:flex;flex-direction:column;justify-content:center;gap:5px;padding:18px;color:#2d4931}
.cover-blend-preview-copy small{color:#7a8673}
.cover-blend-preview-image{min-height:112px;background-position:center;background-size:cover;background-repeat:no-repeat}
.cover-blend-preview-image:not(.has-image){background:radial-gradient(circle at 68% 50%,#f0c76e 0 12%,transparent 13%),linear-gradient(135deg,#dce8ce,#f2e6bc)}
.cover-blend-preview-image.has-cover-blend{-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 var(--cover-edge-blend),#000 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 var(--cover-edge-blend),#000 100%)}
@media(max-width:760px){.settings-sticky-nav{gap:8px}.settings-sticky-actions{margin-left:6px;padding-left:8px}.cover-blend-preview{grid-template-columns:1fr}.cover-blend-preview-copy{min-height:76px}.cover-blend-preview-image{min-height:120px}}

/* FN28P5 – home-cover background, eyedropper and reset */
.overview-hero{--home-cover-bg:#edf3df;--home-cover-blend-color:#e6efda;background:linear-gradient(115deg,var(--home-cover-bg) 0%,var(--home-cover-bg) 56%,var(--home-cover-blend-color) 56%,var(--home-cover-blend-color) 100%)}
.cover-color-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
.cover-color-field{display:grid;gap:7px;padding:12px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--bg) 52%,var(--card))}
.cover-color-field>span:first-child{font-weight:750;font-size:12px;color:var(--text)}
.cover-color-input-wrap{display:grid;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:9px}
.cover-color-input-wrap input[type="color"]{width:54px;height:36px;padding:2px;border:1px solid var(--line);border-radius:9px;background:var(--card);cursor:pointer}
.cover-color-input-wrap output{font:700 11px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--muted);text-transform:uppercase}
.cover-blend-control input[type="range"]{accent-color:var(--cover-range-color,var(--accent))}
.cover-blend-preview{--home-cover-bg:#edf3df;--home-cover-blend-color:#e6efda;background:linear-gradient(115deg,var(--home-cover-bg) 0%,var(--home-cover-bg) 56%,var(--home-cover-blend-color) 56%,var(--home-cover-blend-color) 100%)}
@media(max-width:760px){.cover-color-controls{grid-template-columns:1fr}}

/* FN28P5 – single cover color, eyedropper and reset */
.cover-color-controls-single{grid-template-columns:minmax(0,1fr)}
.cover-color-controls-single .cover-color-field{grid-template-columns:minmax(0,1fr);max-width:620px}
.cover-color-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}
#coverEyedropperStatus:empty{display:none}

/* FN28P6 scoped cover-image eyedropper */
.cover-blend-preview-image{position:relative}
.cover-blend-preview-image.eyedropper-active{cursor:crosshair;outline:2px solid color-mix(in srgb,var(--accent) 70%,white);outline-offset:-2px;user-select:none}
.cover-eyedropper-hover{position:absolute;z-index:4;width:28px;height:28px;border-radius:50%;border:3px solid #fff;background:var(--eyedropper-color,#fff);box-shadow:0 2px 10px rgba(0,0,0,.28);transform:translate(-50%,-50%);pointer-events:none}
.cover-eyedropper-hover::after{content:'';position:absolute;inset:-7px;border:1px solid rgba(0,0,0,.28);border-radius:50%}
.cover-eyedropper-preview{display:inline-flex;align-items:center;gap:7px;width:max-content;max-width:100%;padding:6px 9px;border:1px solid var(--line);border-radius:999px;background:var(--card);font-size:10px;color:var(--muted)}
.cover-eyedropper-preview.hidden{display:none}.cover-eyedropper-preview i{width:18px;height:18px;border-radius:50%;border:1px solid var(--line);box-shadow:inset 0 0 0 1px rgba(255,255,255,.55)}.cover-eyedropper-preview b{font:800 10px/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--text)}.cover-eyedropper-preview small{font-size:9px}.cover-color-actions #coverColorEyedropper.active{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--card))}

/* FN28P7 – stable armed/active cover eyedropper */
.cover-blend-preview-image.eyedropper-armed{outline:2px dashed color-mix(in srgb,var(--accent) 48%,white);outline-offset:-3px;box-shadow:inset 0 0 0 9999px color-mix(in srgb,var(--accent) 3%,transparent)}
.cover-blend-preview-image.eyedropper-armed::after{content:'Pipetta célterület';position:absolute;right:8px;top:8px;z-index:3;padding:4px 7px;border-radius:999px;background:color-mix(in srgb,var(--card) 90%,transparent);border:1px solid var(--line);font-size:9px;font-weight:750;color:var(--muted);pointer-events:none}
.cover-blend-preview-image.eyedropper-active::after{display:none}

/* FN28P8B Processing Gallery */
.media-processing-toolbar{align-items:center}.media-processing-shell{padding:18px}.media-processing-filters{display:flex;gap:12px;align-items:center;margin-bottom:16px}.media-processing-filters input{flex:1;min-width:220px}.media-processing-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.media-processing-card{appearance:none;border:1px solid var(--line,#d9ded8);background:var(--surface,#fff);border-radius:16px;padding:0;overflow:hidden;text-align:left;cursor:pointer;min-width:0}.media-processing-card:hover,.media-processing-card.selected{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent,#527449) 28%,transparent);border-color:var(--accent,#527449)}.media-processing-card img{display:block;width:100%;height:260px;object-fit:cover;background:#eef1ed}.media-processing-card span{display:grid;gap:4px;padding:12px}.media-processing-card b,.media-processing-card small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-processing-card small{opacity:.65}.media-processing-card em{font-style:normal;font-size:.78rem;font-weight:700;color:var(--accent,#527449)}.media-processing-dialog{width:min(1180px,calc(100vw - 32px));max-width:none}/* FN28P11M · Media assignment dialog spacing */
.media-processing-dialog-body{padding:0;display:flex;flex-direction:column;min-height:0}
.media-processing-dialog-body>.dialog-head{margin:0;padding:18px 20px 14px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--card) 96%,var(--accent) 4%)}
.media-processing-dialog-body>.media-processing-match-layout{padding:18px 20px 20px}
.media-processing-preview-pane,.media-processing-target-pane{border:1px solid color-mix(in srgb,var(--line) 86%,transparent);border-radius:14px;background:color-mix(in srgb,var(--card) 97%,var(--bg) 3%);padding:14px}
.media-processing-assignment-bar{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
@media(max-width:900px){.media-processing-dialog-body>.media-processing-match-layout{padding:14px}.media-processing-dialog-body>.dialog-head{padding:14px}.media-processing-preview-pane,.media-processing-target-pane{padding:12px}}.media-processing-match-layout{display:grid;grid-template-columns:minmax(380px,1.05fr) minmax(420px,1fr);gap:18px;min-height:620px}.media-processing-preview-pane,.media-processing-target-pane{min-width:0}.media-processing-preview-stage{height:550px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line,#d9ded8);border-radius:16px;background:#eef1ed;overflow:hidden}.media-processing-preview-stage img{max-width:100%;max-height:100%;object-fit:contain}.media-processing-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}.media-processing-target-pane{display:flex;flex-direction:column;min-height:0}.media-processing-target-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px}.media-processing-target-search{display:flex;gap:12px;align-items:center;margin:12px 0}.media-processing-target-search input{flex:1}.media-processing-target-list{flex:1;min-height:360px;max-height:470px;overflow:auto;border:1px solid var(--line,#d9ded8);border-radius:14px;padding:8px}.media-processing-target-row{width:100%;display:flex;justify-content:space-between;gap:12px;align-items:center;text-align:left;border:0;background:transparent;padding:10px 12px;border-radius:10px;cursor:pointer}.media-processing-target-row:hover,.media-processing-target-row.selected{background:color-mix(in srgb,var(--accent,#527449) 12%,transparent)}.media-processing-target-row span{display:grid;gap:2px;min-width:0}.media-processing-target-row b,.media-processing-target-row small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-processing-target-row em{font-style:normal;min-width:28px;text-align:center}.media-processing-assignment-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px}.media-processing-assignment-bar .meta{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:900px){.media-processing-match-layout{grid-template-columns:1fr}.media-processing-preview-stage{height:360px}.media-processing-target-list{max-height:330px}.media-processing-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.media-processing-card img{height:220px}}
/* FN28P8C Smart Matching Assistance */
.media-processing-suggestions{border:1px solid var(--line,#d9ded8);border-radius:14px;padding:10px 12px;margin-bottom:12px;background:color-mix(in srgb,var(--surface,#fff) 92%,var(--accent,#527449) 8%)}.media-processing-suggestions-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}.media-processing-suggestions-head small{opacity:.65;text-align:right}.media-processing-suggestion-list{display:grid;gap:6px}.media-match-suggestion{appearance:none;width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid transparent;border-radius:10px;background:var(--surface,#fff);padding:8px 10px;text-align:left;cursor:pointer}.media-match-suggestion:hover{border-color:var(--accent,#527449)}.media-match-suggestion span{display:grid;min-width:0}.media-match-suggestion b,.media-match-suggestion small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-match-suggestion strong{font-size:.82rem;color:var(--accent,#527449);min-width:42px;text-align:right}
/* FN28P8D Batch Review & Assisted Assignment */
.media-processing-batch-dialog{width:min(980px,calc(100vw - 32px));max-width:none}.media-processing-batch-list{display:grid;gap:8px;max-height:62vh;overflow:auto;padding:4px}.media-batch-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;border:1px solid var(--line,#d9ded8);border-radius:12px;padding:10px 12px;background:var(--surface,#fff)}.media-batch-row.high{border-color:color-mix(in srgb,var(--accent,#527449) 55%,var(--line,#d9ded8))}.media-batch-row.review{border-style:dashed}.media-batch-row.manual{opacity:.72}.media-batch-row span{display:grid;min-width:0}.media-batch-row b,.media-batch-row small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-batch-row strong{min-width:48px;text-align:right}.media-batch-row input{width:18px;height:18px}


/* FN28P8E Media Intake & Pack Workbench */
.media-intake-dialog{width:min(1180px,96vw)}
.media-intake-dialog .dialog-card{max-height:92vh;overflow:hidden;display:flex;flex-direction:column}
.media-intake-layout{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:14px;min-height:560px;overflow:hidden}
.media-intake-sessions,.media-intake-workbench{border:1px solid var(--line);border-radius:16px;background:var(--card);min-height:0}
.media-intake-sessions{display:flex;flex-direction:column;padding:12px}.media-intake-side-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.media-intake-session-list{display:flex;flex-direction:column;gap:7px;overflow:auto}.media-intake-session{display:flex;flex-direction:column;text-align:left;gap:3px;padding:10px;border:1px solid var(--line);border-radius:12px;background:transparent;color:var(--text)}.media-intake-session.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--card))}.media-intake-session small{color:var(--muted)}
.media-intake-workbench{display:flex;flex-direction:column;overflow:hidden;padding:12px}.media-intake-summary{display:grid;grid-template-columns:repeat(5,minmax(90px,1fr));gap:8px;margin-bottom:10px}.media-intake-summary>div{padding:10px;border:1px solid var(--line);border-radius:12px}.media-intake-summary span{display:block;font-size:11px;color:var(--muted)}.media-intake-summary b{font-size:20px}
.media-intake-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.media-intake-actions .spacer{flex:1}
.media-intake-items{overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:9px;padding-right:3px}.media-intake-item{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:9px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--card)}.media-intake-item img{width:54px;height:54px;object-fit:cover;border-radius:9px;background:var(--surface)}.media-intake-item .media-intake-placeholder{display:grid;place-items:center;width:54px;height:54px;border-radius:9px;background:var(--surface);font-size:20px}.media-intake-item b,.media-intake-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-intake-item small{color:var(--muted);font-size:10px}.media-intake-item-status{font-size:10px;font-weight:700;padding:4px 6px;border-radius:999px;background:var(--surface)}.media-intake-item.ready .media-intake-item-status{color:var(--accent)}.media-intake-item.invalid .media-intake-item-status{color:#b42318}.media-intake-item.duplicate .media-intake-item-status{color:#9a6700}.media-intake-item.ignored{opacity:.7}
@media(max-width:780px){.media-intake-layout{grid-template-columns:1fr;min-height:70vh}.media-intake-sessions{max-height:180px}.media-intake-summary{grid-template-columns:repeat(2,1fr)}}
/* FN28P8F Intake Recovery, History & Pack Operations */
.media-intake-session.discarded{opacity:.68;border-style:dashed}.media-intake-audit{margin:0 0 10px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);max-height:190px;overflow:auto}.media-intake-audit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:7px;margin-bottom:8px}.media-intake-audit-grid>div{background:var(--card);border:1px solid var(--line);border-radius:9px;padding:7px}.media-intake-audit-grid small{display:block;color:var(--muted)}.media-intake-event{display:flex;justify-content:space-between;gap:12px;padding:5px 0;border-top:1px solid var(--line);font-size:11px}.media-intake-event span:last-child{color:var(--muted)}


/* FN28P8H Safe Media Consolidation / Quality Review */
.media-quality-dialog{width:min(1180px,95vw)}
.media-quality-toolbar{display:flex;align-items:center;gap:12px;justify-content:flex-end;margin-bottom:12px}
.media-quality-body{display:grid;grid-template-columns:1fr;gap:18px;max-height:68vh;overflow:auto;padding-right:4px}
.media-quality-section{display:grid;gap:10px}.media-quality-section h4{margin:0}
.media-quality-group{border:1px solid var(--border);border-radius:14px;padding:12px;display:grid;gap:10px}
.media-quality-group-head{display:flex;align-items:center;gap:10px}.media-quality-group-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.media-quality-item{display:grid;grid-template-columns:auto 72px 1fr;gap:9px;align-items:center;border:1px solid var(--border);border-radius:12px;padding:8px;cursor:pointer}.media-quality-item img,.media-quality-warning img{width:72px;height:58px;object-fit:cover;border-radius:8px;background:var(--surface-2)}
.media-quality-item span,.media-quality-warning span{min-width:0}.media-quality-item b,.media-quality-warning b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-quality-item small,.media-quality-warning small{display:block;color:var(--muted)}
.media-quality-warning{display:grid;grid-template-columns:72px minmax(180px,1fr) minmax(180px,auto);gap:10px;align-items:center;border-bottom:1px solid var(--border);padding:8px 0}.media-quality-warning em{font-style:normal;color:var(--warning,#9a6700)}
/* FN28P9F · Production Gap Resolution Workbench */
.media-gap-dialog{width:min(1120px,96vw)}.media-gap-toolbar{display:flex;gap:10px;align-items:center;margin-bottom:12px}.media-gap-toolbar select{min-width:180px}.media-gap-toolbar #mediaGapRerun{margin-left:auto}.media-gap-items{display:grid;gap:9px;max-height:62vh;overflow:auto;padding-right:3px}.media-gap-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:13px;padding:11px 12px;background:var(--card)}.media-gap-row.resolved{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 5%,var(--card))}.media-gap-row>div:first-child{display:grid;gap:3px;min-width:0}.media-gap-row b,.media-gap-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-gap-row small{color:var(--muted)}.media-gap-row em{font-style:normal;font-size:11px;font-weight:700;color:var(--accent)}.media-gap-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.file-button{display:inline-flex;align-items:center;cursor:pointer}@media(max-width:800px){.media-gap-row{grid-template-columns:1fr}.media-gap-actions{justify-content:flex-start}.media-gap-toolbar{flex-wrap:wrap}.media-gap-toolbar #mediaGapRerun{margin-left:0}}

/* FN28P9G · Production Wave 001 Run Control */
.media-wave-dialog .dialog-card{width:min(980px,94vw)}
.media-wave-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:14px 0}
.media-wave-actions{display:flex;justify-content:flex-end;margin:8px 0}
.media-wave-history{max-height:260px;overflow:auto;margin-top:14px}
.media-wave-history-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;padding:9px 4px;border-bottom:1px solid var(--line,#ddd);font-size:.9rem}

/* FN28P11D · unified kitchen catalog UI */
.kitchen-catalog-dialog{width:min(1420px,calc(100vw - 24px));max-width:1420px;max-height:94vh;overflow:auto}
.kitchen-catalog-dialog .kitchen-catalog-toolbar{margin:2px 0 12px;padding:0;background:transparent;border:0}
.kitchen-catalog-summary{margin-bottom:12px}
.kitchen-catalog-layout{grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr);align-items:start}
.kitchen-catalog-list{max-height:58vh;overflow:auto;padding-right:3px}
.kitchen-catalog-row{grid-template-columns:minmax(0,1.45fr) minmax(96px,.55fr) minmax(100px,.55fr) minmax(92px,.5fr) 76px}
.kitchen-catalog-row .recipe-row-actions{width:76px;min-width:76px;gap:4px}
.kitchen-catalog-preview-card{position:sticky;top:8px;min-height:390px;overflow:hidden}
.kitchen-catalog-preview{display:grid;gap:12px}
.kitchen-catalog-preview h3{font-size:22px;line-height:1.15;color:var(--fn-green-deep);margin:0}
.kitchen-catalog-preview>p{font-size:11px;line-height:1.6;color:var(--muted);margin:0}
.kitchen-catalog-preview-media{height:220px;border:1px solid var(--line);border-radius:14px;background:#f7f7f1;display:grid;place-items:center;overflow:hidden}
.kitchen-catalog-preview-media img{width:100%;height:100%;object-fit:contain}
.kitchen-catalog-preview-media.placeholder{font-size:54px;color:#708069}
.kitchen-preview-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.kitchen-preview-metrics>div{border:1px solid var(--line);border-radius:10px;padding:9px;background:#fbfbf7;min-width:0}
.kitchen-preview-metrics span,.kitchen-preview-metrics b{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis}
.kitchen-preview-metrics span{font-size:9px;color:var(--muted)}
.kitchen-preview-metrics b{font-size:13px;margin-top:4px}
.kitchen-preview-tags{display:flex;gap:6px;flex-wrap:wrap}
@media(max-width:980px){.kitchen-catalog-layout{grid-template-columns:1fr}.kitchen-catalog-preview-card{position:static;min-height:0}.kitchen-catalog-list{max-height:48vh}}
@media(max-width:760px){.kitchen-catalog-dialog{width:98vw}.kitchen-catalog-row{grid-template-columns:minmax(0,1fr) 42px}.kitchen-catalog-row .recipe-main-wrap,.kitchen-catalog-row .recipe-status-col,.kitchen-catalog-row .recipe-cost-col,.kitchen-catalog-row .recipe-time-col{grid-column:1}.kitchen-catalog-row .recipe-row-actions{grid-column:2;grid-row:1/5;width:42px;min-width:42px}.kitchen-preview-metrics{grid-template-columns:1fr 1fr}}

/* FN28P11F · Unified Kitchen Knowledge tabs */
.kitchen-catalog-tabs{position:sticky;top:0;z-index:14;display:flex;gap:7px;align-items:center;overflow-x:auto;margin:0 0 14px;padding:9px 10px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--card) 95%,transparent);backdrop-filter:blur(10px);box-shadow:0 5px 18px rgba(20,35,28,.07);scrollbar-width:thin}
.kitchen-catalog-tabs button{white-space:nowrap;flex:0 0 auto;border:1px solid transparent;background:transparent;color:var(--muted);padding:9px 12px;border-radius:10px;font-weight:800;cursor:pointer}
.kitchen-catalog-tabs button:hover{background:var(--bg);color:var(--ink)}
.kitchen-catalog-tabs button.active{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:color-mix(in srgb,var(--accent) 10%,var(--card));color:var(--accent)}
.kitchen-catalog-pane{min-width:0}
#recipes[data-kitchen-catalog-tab="techniques"] #kitchenCatalogPaneTechniques,
#recipes[data-kitchen-catalog-tab="tools"] #kitchenCatalogPaneTools{animation:kitchenPaneIn .15s ease-out}
@keyframes kitchenPaneIn{from{opacity:.55;transform:translateY(2px)}to{opacity:1;transform:none}}
@media(max-width:720px){.kitchen-catalog-tabs{top:0;border-radius:11px}.kitchen-catalog-tabs button{padding:8px 10px}.kitchen-catalog-pane .toolbar{align-items:stretch}.kitchen-catalog-pane .toolbar-actions{width:100%}}

/* FN28P11H · Processing Gallery UX refresh */
.media-processing-mainbar{display:flex;gap:12px;align-items:center;margin:14px 0}.media-processing-mainbar .media-processing-filters{flex:1;margin:0}
.media-processing-dropzone{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;border:2px dashed color-mix(in srgb,var(--accent,#527449) 45%,var(--line));border-radius:18px;padding:18px;background:color-mix(in srgb,var(--accent,#527449) 4%,var(--card));cursor:pointer;transition:.15s ease}.media-processing-dropzone:hover,.media-processing-dropzone.dragover{border-color:var(--accent,#527449);background:color-mix(in srgb,var(--accent,#527449) 9%,var(--card));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent,#527449) 10%,transparent)}.media-processing-dropzone>span:nth-child(2){display:grid;gap:3px}.media-processing-dropzone small{color:var(--muted);font-size:11px}.media-processing-drop-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent,#527449) 13%,var(--card));color:var(--accent,#527449);font-size:26px;font-weight:800}.media-processing-advanced{margin-top:18px;border-top:1px solid var(--line);padding-top:12px}.media-processing-advanced summary{cursor:pointer;font-size:12px;font-weight:800;color:var(--muted);margin-bottom:10px}.media-processing-card{position:relative}.media-processing-card img{object-fit:contain;padding:6px}.media-processing-card.selected:after{content:'✓';position:absolute;right:10px;top:10px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--accent,#527449);color:#fff;font-weight:900;box-shadow:0 2px 8px rgba(0,0,0,.18)}.media-processing-target-row.selected{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent,#527449) 48%,transparent)}
@media(max-width:760px){.media-processing-dropzone{grid-template-columns:auto 1fr}.media-processing-dropzone button{grid-column:1/-1;width:100%}.media-processing-mainbar{align-items:stretch;flex-direction:column}.media-processing-mainbar>button{width:100%}}

/* FN28P11I · Processing matcher target cards and fast assign-next */
.media-processing-target-list{display:grid;gap:8px;max-height:44vh;overflow:auto;padding-right:3px}
.media-processing-target-row{display:grid;grid-template-columns:68px minmax(0,1fr) 28px;gap:10px;align-items:center;width:100%;text-align:left;border:1px solid var(--line);border-radius:13px;padding:8px;background:var(--card);cursor:pointer;transition:.14s ease}
.media-processing-target-row:hover{border-color:color-mix(in srgb,var(--accent,#527449) 45%,var(--line));background:color-mix(in srgb,var(--accent,#527449) 4%,var(--card))}
.media-processing-target-row.selected{border-color:var(--accent,#527449);background:color-mix(in srgb,var(--accent,#527449) 8%,var(--card));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent,#527449) 35%,transparent)}
.media-processing-target-thumb{width:68px;height:58px;border:1px solid var(--line);border-radius:10px;display:grid;place-items:center;overflow:hidden;background:var(--bg)}
.media-processing-target-thumb img{width:100%;height:100%;object-fit:contain;padding:3px}.media-processing-target-placeholder{font-size:28px;color:var(--muted)}
.media-processing-target-copy{display:grid;gap:4px;min-width:0}.media-processing-target-copy b,.media-processing-target-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-processing-target-copy small{color:var(--muted);font-size:10px}
.media-processing-target-chips{display:flex;gap:5px;flex-wrap:wrap}.media-processing-target-chips .chip{font-size:9px;padding:3px 6px;font-style:normal}.media-processing-target-chips .chip.muted{opacity:.72}
.media-processing-target-pick{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);color:transparent;font-weight:900}.media-processing-target-row.selected .media-processing-target-pick{background:var(--accent,#527449);border-color:var(--accent,#527449);color:#fff}
.media-processing-assignment-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}.media-processing-assignment-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.media-processing-selected-target{display:grid;grid-template-columns:52px minmax(0,1fr);gap:9px;align-items:center;min-height:52px}.media-processing-selected-target>img,.media-processing-selected-placeholder{width:52px;height:46px;border-radius:9px;border:1px solid var(--line);object-fit:contain;background:var(--bg);display:grid;place-items:center}.media-processing-selected-target>span:last-child{display:grid;gap:2px;min-width:0}.media-processing-selected-target b,.media-processing-selected-target small,.media-processing-selected-target em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-processing-selected-target small{font-size:10px;color:var(--muted)}.media-processing-selected-target em{font-size:10px;font-style:normal;color:var(--accent,#527449);font-weight:700}
@media(max-width:760px){.media-processing-assignment-bar{grid-template-columns:1fr}.media-processing-assignment-actions{justify-content:stretch}.media-processing-assignment-actions button{flex:1}.media-processing-target-row{grid-template-columns:58px minmax(0,1fr) 26px}.media-processing-target-thumb{width:58px;height:52px}}


/* FN28P11J · Matcher quick search and keyboard flow */
.media-processing-quicksearch-wrap{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.media-processing-quicksearch-wrap input{min-width:220px;flex:1}.media-processing-keyboard-hint{font-size:.78rem;opacity:.72;margin:-2px 0 8px}.media-processing-target-row.keyboard-active{outline:2px solid color-mix(in srgb,var(--accent,#5d7cff) 68%,transparent);outline-offset:-2px}.media-processing-target-copy mark{background:color-mix(in srgb,var(--accent,#5d7cff) 22%,transparent);color:inherit;border-radius:3px;padding:0 1px}

/* FN28P11K · Media Intake layout/runtime clarity */
.media-intake-dialog .dialog-card{padding:0;overflow:hidden}
.media-intake-dialog .dialog-head{padding:18px 20px 14px;margin:0;border-bottom:1px solid var(--line)}
.media-intake-layout{padding:16px 18px 18px;gap:16px}
.media-intake-sessions,.media-intake-workbench{padding:14px}
.media-intake-side-head{margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.media-intake-summary{margin:2px 0 14px;gap:10px}
.media-intake-actions{margin:0 0 14px;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:10px}
.media-intake-items{padding:2px 6px 10px 2px;gap:10px}
.media-intake-item{padding:10px;gap:10px}
.media-intake-runtime-notice{display:grid;gap:4px;margin:0 0 14px;padding:12px 14px;border:1px solid #e7b65a;border-radius:12px;background:#fff8e6;color:#664d03}
.media-intake-runtime-notice.hidden{display:none}.media-intake-runtime-notice b{font-size:13px}.media-intake-runtime-notice span{font-size:11px;line-height:1.45}
.media-intake-item.runtime-blocked{border-color:#e7b65a;background:#fffaf0}.media-intake-item.runtime-blocked .media-intake-item-status{color:#8a5a00;white-space:nowrap}
@media(max-width:780px){.media-intake-dialog .dialog-head{padding:14px}.media-intake-layout{padding:12px;gap:12px}.media-intake-sessions,.media-intake-workbench{padding:12px}.media-intake-actions{align-items:stretch}.media-intake-actions .spacer{display:none}.media-intake-actions button{flex:1 1 160px}}


/* FN28P11O · unified media admin dialog spacing + intake bulk workbench */
.media-admin-dialog-card{padding:0;overflow:hidden;display:flex;flex-direction:column;max-height:92vh}
.media-admin-dialog-card>.dialog-head{margin:0;padding:18px 20px 14px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--card) 96%,var(--accent) 4%)}
.media-admin-dialog-card>.media-quality-toolbar,.media-admin-dialog-card>.media-gap-toolbar,.media-admin-dialog-card>.media-wave-actions{margin:0;padding:14px 18px;border-bottom:1px solid var(--line)}
.media-admin-dialog-card>.media-quality-toolbar,.media-admin-dialog-card>.media-gap-toolbar{gap:10px;flex-wrap:wrap}
.media-admin-dialog-card>#mediaQualityMetrics,.media-admin-dialog-card>#mediaGapMetrics,.media-admin-dialog-card>#mediaWaveMetrics{margin:14px 18px 0}
.media-admin-dialog-card>#mediaQualityBody,.media-admin-dialog-card>#mediaGapItems,.media-admin-dialog-card>#mediaWaveHistory{margin:14px 18px 18px;padding-right:4px}
.media-admin-dialog-card>#mediaWaveNext{margin:14px 18px 0}
.media-intake-items{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px}
.media-intake-item{grid-template-columns:120px minmax(0,1fr) auto;gap:12px;align-items:center;min-height:116px;padding:10px 12px}
.media-intake-preview-button{width:120px;height:96px;border:1px solid var(--line);border-radius:11px;background:var(--surface);padding:4px;overflow:hidden;cursor:zoom-in;display:grid;place-items:center}
.media-intake-preview-button img{width:100%;height:100%;object-fit:contain;border-radius:7px;background:var(--card)}
.media-intake-item .media-intake-placeholder{width:120px;height:96px;font-size:28px;border:1px solid var(--line)}
.media-intake-item-copy{display:grid;gap:5px;min-width:0}.media-intake-item-copy small{line-height:1.35;white-space:normal}
.media-intake-item-controls{display:grid;gap:8px;justify-items:end;align-content:center}.media-intake-item-controls .compact-check{font-size:10px;white-space:nowrap}
.media-intake-preview-dialog{width:min(1000px,94vw);max-width:none;max-height:92vh;padding:0;border:0;border-radius:18px;background:#101418;box-shadow:0 24px 70px rgba(0,0,0,.4)}
.media-intake-preview-dialog::backdrop{background:rgba(5,8,12,.76);backdrop-filter:blur(2px)}
.media-intake-preview-shell{position:relative;display:grid;place-items:center;min-height:240px;padding:48px 22px 22px}.media-intake-preview-shell img{max-width:100%;max-height:82vh;width:auto;height:auto;object-fit:contain;border-radius:12px;background:#fff}.media-intake-preview-close{position:absolute;right:14px;top:14px;color:#fff;background:#20262c;border-color:#3a434b}
@media(max-width:780px){.media-admin-dialog-card>.dialog-head{padding:14px}.media-admin-dialog-card>.media-quality-toolbar,.media-admin-dialog-card>.media-gap-toolbar,.media-admin-dialog-card>.media-wave-actions{padding:12px 14px}.media-admin-dialog-card>#mediaQualityMetrics,.media-admin-dialog-card>#mediaGapMetrics,.media-admin-dialog-card>#mediaWaveMetrics,.media-admin-dialog-card>#mediaQualityBody,.media-admin-dialog-card>#mediaGapItems,.media-admin-dialog-card>#mediaWaveHistory,.media-admin-dialog-card>#mediaWaveNext{margin-left:14px;margin-right:14px}.media-intake-items{grid-template-columns:1fr}.media-intake-item{grid-template-columns:96px minmax(0,1fr)}.media-intake-preview-button,.media-intake-item .media-intake-placeholder{width:96px;height:82px}.media-intake-item-controls{grid-column:1/-1;display:flex;justify-content:flex-start;flex-wrap:wrap}.media-intake-actions{gap:8px}}

/* FN28P11O - Intake session selection and useful central preview */
.media-intake-session-toolbar{display:flex;align-items:center;gap:8px;padding:8px 0 10px;border-bottom:1px solid var(--line);margin-bottom:10px}.media-intake-session-toolbar .compact{margin-left:auto}.media-intake-session-row{display:grid;grid-template-columns:28px minmax(0,1fr);gap:7px;align-items:stretch;border:1px solid transparent;border-radius:12px}.media-intake-session-row.active{background:color-mix(in srgb,var(--accent) 6%,transparent)}.media-intake-session-check{display:grid;place-items:center;cursor:pointer}.media-intake-session-row .media-intake-session{width:100%;border:0;background:transparent}.media-intake-selected-preview{min-height:280px;display:grid;place-items:center;margin:12px 0 14px;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.media-intake-selected-preview-button{width:100%;min-height:250px;max-height:430px;border:0;background:transparent;padding:0;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:8px;place-items:center;cursor:zoom-in}.media-intake-selected-preview-button img{display:block;max-width:100%;max-height:380px;width:auto;height:auto;object-fit:contain;border-radius:12px;background:var(--card);box-shadow:0 0 0 1px var(--line)}.media-intake-selected-preview-button span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px}.media-intake-selected-preview-empty{color:var(--muted);text-align:center;padding:30px}.media-intake-side-head{align-items:flex-start}.icon-btn{min-width:36px;min-height:34px;padding:6px 9px}
@media(max-width:780px){.media-intake-selected-preview{min-height:220px;padding:10px}.media-intake-selected-preview-button{min-height:190px;max-height:320px}.media-intake-selected-preview-button img{max-height:280px}}


/* FN28P11P - simplified intake workbench: one useful image surface, no duplicate item grid */
.media-intake-workbench{min-height:0}
.media-intake-selected-preview{min-height:430px;flex:1;margin:14px 0;padding:18px;overflow:hidden}
.media-intake-hero-shell{width:100%;height:100%;min-height:390px;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:12px}
.media-intake-selected-preview-button{min-height:320px;max-height:none;height:100%;display:grid;place-items:center}
.media-intake-selected-preview-button img{max-width:100%;max-height:540px;width:auto;height:auto;object-fit:contain;border-radius:12px;background:var(--card);box-shadow:0 0 0 1px var(--line)}
.media-intake-hero-footer{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px 4px 0;border-top:1px solid var(--line)}
.media-intake-hero-info{min-width:0;display:grid;gap:2px;text-align:center}.media-intake-hero-info b,.media-intake-hero-info span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-intake-hero-info span,.media-intake-hero-info small{color:var(--muted);font-size:11px}
.media-intake-actions-compact{margin-top:0;padding-top:12px;border-top:1px solid var(--line);border-bottom:0}
@media(max-width:780px){.media-intake-selected-preview{min-height:300px;padding:10px}.media-intake-hero-shell{min-height:270px}.media-intake-selected-preview-button{min-height:220px}.media-intake-selected-preview-button img{max-height:360px}.media-intake-hero-footer{grid-template-columns:auto minmax(0,1fr) auto}.media-intake-hero-footer [data-intake-remove-current]{grid-row:2;grid-column:2;justify-self:center}.media-intake-hero-info{text-align:left}}

/* FN28P11Q - missing media planning/export list */
.media-missing-report-dialog .dialog-card{padding:0;overflow:hidden}
.media-missing-report-dialog .dialog-head{padding:18px 20px 14px;border-bottom:1px solid var(--border)}
.media-missing-report-toolbar{display:grid;grid-template-columns:minmax(180px,240px) minmax(220px,1fr) auto auto;gap:12px;align-items:end;padding:16px 20px;border-bottom:1px solid var(--border)}
.media-missing-report-toolbar label{display:grid;gap:6px}
.media-missing-report-summary{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;padding:14px 20px;background:var(--surface-2,rgba(127,127,127,.06));border-bottom:1px solid var(--border)}
.media-missing-report-summary b{font-size:1.25rem}.media-missing-report-summary small{margin-left:auto;color:var(--muted)}
.media-missing-report-list{padding:14px 20px 20px;display:grid;gap:8px;max-height:min(62vh,680px);overflow:auto}
.media-missing-report-row{display:grid;grid-template-columns:34px minmax(0,1fr) minmax(180px,280px);gap:12px;align-items:center;padding:11px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.media-missing-report-index{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:var(--surface-2,rgba(127,127,127,.08));font-size:.82rem;color:var(--muted)}
.media-missing-report-main{min-width:0;display:grid;gap:3px}.media-missing-report-main b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-missing-report-main small{color:var(--muted)}
.media-missing-report-row code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 8px;border-radius:8px;background:var(--surface-2,rgba(127,127,127,.08));font-size:.8rem}
@media(max-width:900px){.media-missing-report-toolbar{grid-template-columns:1fr 1fr}.media-missing-report-summary small{width:100%;margin-left:0}.media-missing-report-row{grid-template-columns:30px minmax(0,1fr)}.media-missing-report-row code{grid-column:2}}
@media(max-width:620px){.media-missing-report-toolbar{grid-template-columns:1fr;padding:14px}.media-missing-report-list{padding:12px 14px 16px}.media-missing-report-dialog .dialog-head{padding:14px}.media-missing-report-row{grid-template-columns:1fr}.media-missing-report-index{display:none}.media-missing-report-row code{grid-column:auto}}
.media-upload-progress{display:grid;gap:8px;margin:12px 0 14px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--card);box-shadow:0 1px 0 rgba(0,0,0,.02)}
.media-upload-progress.hidden{display:none}.media-upload-progress.complete{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.media-upload-progress-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.media-upload-progress-head>div{display:grid;gap:2px;min-width:0}.media-upload-progress-head b{font-size:13px}.media-upload-progress-head span{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-upload-progress-head strong{font-size:18px;min-width:48px;text-align:right}
.media-upload-progress-track{height:10px;border-radius:999px;background:var(--surface);overflow:hidden;border:1px solid var(--line)}.media-upload-progress-track>span{display:block;height:100%;width:0;border-radius:inherit;background:var(--accent);transition:width .18s ease}
.media-upload-progress-meta{display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-size:11px;color:var(--muted)}.media-upload-progress-meta span:first-child{font-weight:700;color:var(--text)}
.media-upload-progress-intake{margin:0 0 14px}
@media(max-width:780px){.media-upload-progress{padding:10px 12px}.media-upload-progress-head{align-items:center}.media-upload-progress-meta{gap:8px 12px}.media-upload-progress-meta span{flex:1 1 42%}}

/* FN28D0A production D0+D1 loader */
.production-data-card{margin-bottom:16px}
.production-data-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0}
.production-data-summary>div{padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--panel-soft,rgba(127,127,127,.05));display:flex;flex-direction:column;gap:4px}
.production-data-summary span{font-size:.82rem;color:var(--muted)}
.production-data-summary b{font-size:1.05rem}
.production-data-waves{display:grid;gap:8px}
.production-wave{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:10px}
.production-wave>div{display:flex;flex-direction:column;gap:2px}.production-wave small{color:var(--muted)}.production-wave.done{border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}
@media(max-width:800px){.production-data-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.production-wave{align-items:flex-start;flex-direction:column;gap:6px}}
/* FN28D1A Ingredient Master recipe mapping */
.production-mapping-list{display:grid;gap:8px;margin-top:14px;max-height:360px;overflow:auto;padding-right:4px}
.production-mapping-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel,#fff)}
.production-mapping-row>div{display:grid;gap:3px;min-width:0}.production-mapping-row>div:last-child{text-align:right;justify-items:end}.production-mapping-row strong,.production-mapping-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:520px}
@media (max-width:760px){.production-mapping-row{align-items:flex-start;flex-direction:column}.production-mapping-row>div:last-child{text-align:left;justify-items:start}}

/* FN28D1B – Ingredient review & canonical cleanup */
.production-review-dialog{width:min(1180px,96vw);max-width:1180px}
.production-review-dialog::backdrop,.production-redirect-dialog::backdrop{background:rgba(15,23,42,.48)}
.production-review-body{padding:18px;display:grid;gap:14px}
.production-review-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 180px auto;gap:10px;align-items:center}
.production-review-bulk{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel,#fff)}
.production-review-summary{display:flex;flex-wrap:wrap;gap:8px}
.production-review-summary .chip{padding:6px 9px}
.production-review-list{display:grid;gap:9px;max-height:58vh;overflow:auto;padding-right:4px}
.production-review-row{display:grid;grid-template-columns:auto minmax(180px,1.2fr) minmax(180px,1fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel,#fff)}
.production-review-row.is-selected{outline:2px solid color-mix(in srgb,var(--accent,#5f6fff) 38%,transparent);outline-offset:1px}
.production-review-row-main,.production-review-row-suggestion{display:grid;gap:3px;min-width:0}
.production-review-row-main strong,.production-review-row-main small,.production-review-row-suggestion strong,.production-review-row-suggestion small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.production-review-row-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.production-review-confidence{font-variant-numeric:tabular-nums}
.production-review-empty-suggestion{color:var(--muted)}
.production-redirect-dialog{width:min(680px,94vw)}
.production-redirect-results{display:grid;gap:8px;max-height:50vh;overflow:auto}
.production-redirect-result{display:flex;justify-content:space-between;gap:12px;align-items:center;width:100%;text-align:left;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel,#fff)}
.production-redirect-result:hover{border-color:var(--accent,#5f6fff)}
@media (max-width:850px){.production-review-toolbar{grid-template-columns:1fr}.production-review-row{grid-template-columns:auto 1fr}.production-review-row-suggestion,.production-review-row-actions{grid-column:2}.production-review-row-actions{justify-content:flex-start}.production-review-bulk{align-items:flex-start;flex-direction:column}}

/* FN28D1C – Ingredient alias intelligence */
.production-alias-panel{margin-top:14px;padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft,rgba(127,127,127,.045))}.production-alias-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:10px}.production-alias-heading>div{display:grid;gap:4px}.production-alias-heading small{color:var(--muted)}.production-alias-summary{margin-top:0}@media(max-width:760px){.production-alias-heading{flex-direction:column}.production-alias-heading button{width:100%}}

/* FN28D1D – Ingredient Data Quality & Coverage Workbench */
.production-quality-dialog{width:min(1180px,96vw);max-width:1180px}.production-quality-body{padding:18px;display:grid;gap:14px}.production-quality-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 170px 210px auto;gap:10px;align-items:center}.production-quality-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.production-quality-summary>div{padding:10px 12px;border:1px solid var(--line);border-radius:11px;display:grid;gap:3px;background:var(--panel,#fff)}.production-quality-summary span{font-size:.78rem;color:var(--muted)}.production-quality-list{display:grid;gap:8px;max-height:58vh;overflow:auto;padding-right:4px}.production-quality-row{display:grid;grid-template-columns:100px 160px minmax(180px,1fr) minmax(220px,1.2fr);gap:12px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel,#fff)}.production-quality-row.blocker{border-left:4px solid #b42318}.production-quality-row.warning{border-left:4px solid #b26a00}.production-quality-row.info{border-left:4px solid #3b82f6}.production-quality-row strong,.production-quality-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.production-quality-severity{font-weight:700;font-size:.78rem;text-transform:uppercase}.production-quality-type{font-size:.8rem;color:var(--muted)}@media(max-width:860px){.production-quality-toolbar{grid-template-columns:1fr}.production-quality-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.production-quality-row{grid-template-columns:1fr}.production-quality-row strong,.production-quality-row small{white-space:normal}}


/* FN28D2A – Recipe Production Content & Canonical Linking */
.recipe-production-card{margin:16px 0}.recipe-production-summary{margin-top:12px}.recipe-production-body{padding:18px;display:flex;flex-direction:column;gap:14px}.recipe-production-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) minmax(160px,220px) auto;gap:10px;align-items:center}.recipe-production-dialog{width:min(1180px,94vw)}.production-recipe-preview{max-height:280px;overflow:auto;white-space:pre-wrap;background:var(--surface-muted,#f6f7f8);border:1px solid var(--line,#dfe3e8);border-radius:10px;padding:12px;font-size:.82rem}.recipe-production-dialog .production-quality-row{grid-template-columns:42px minmax(0,1fr) minmax(220px,1fr);align-items:start}@media(max-width:760px){.recipe-production-toolbar{grid-template-columns:1fr}.recipe-production-body{padding:12px}.recipe-production-dialog .production-quality-row{grid-template-columns:36px 1fr}.recipe-production-dialog .production-quality-row>small:last-child{grid-column:2}}

/* FN28D2C – Recipe Production Review & Manual Resolution */
.recipe-production-manual-dialog{width:min(1120px,96vw);max-width:1120px}.recipe-production-manual-body{padding:18px;display:grid;gap:14px}.recipe-production-manual-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(360px,1.3fr);gap:16px}.recipe-production-manual-grid>aside,.recipe-production-manual-grid>section{min-width:0;display:grid;align-content:start;gap:10px}.recipe-production-manual-issues,.recipe-production-manual-options{display:grid;gap:8px;max-height:52vh;overflow:auto;padding-right:4px}.recipe-production-manual-issue,.recipe-production-manual-option{width:100%;display:grid;gap:4px;text-align:left;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel,#fff)}button.recipe-production-manual-issue,button.recipe-production-manual-option{cursor:pointer}.recipe-production-manual-issue:hover,.recipe-production-manual-option:hover,.recipe-production-manual-issue.active{border-color:var(--accent,#5f6fff)}.recipe-production-manual-option{grid-template-columns:minmax(0,1fr) auto;align-items:center}.recipe-production-manual-option img{width:64px;height:48px;object-fit:cover;border-radius:7px}.recipe-production-manual-issue small,.recipe-production-manual-option small{color:var(--muted);overflow:hidden;text-overflow:ellipsis}.recipe-production-audit{border-top:1px solid var(--line);padding-top:12px;display:grid;gap:6px}.recipe-production-row-resolution{display:grid;gap:8px;justify-items:start}.recipe-production-row-resolution button{white-space:nowrap}@media(max-width:820px){.recipe-production-manual-grid{grid-template-columns:1fr}.recipe-production-manual-issues,.recipe-production-manual-options{max-height:34vh}}
/* FN28D2D – Recipe Production Wave 001 */
.recipe-production-wave{margin-top:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--panel,#fff)}.recipe-production-wave>div:first-child{display:grid;gap:3px}.recipe-production-wave small{color:var(--muted)}@media(max-width:760px){.recipe-production-wave{align-items:flex-start;flex-direction:column}.recipe-production-wave .toolbar-actions{width:100%;justify-content:space-between}}

/* FN28D2E – multi-wave starter production library */
.recipe-production-wave-stack{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:14px;display:grid;gap:10px}.recipe-production-wave-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.recipe-production-wave-header>div{display:grid;gap:4px}.recipe-production-wave-list{display:grid;gap:8px}.recipe-production-wave-list .recipe-production-wave{margin:0}.recipe-production-wave-list .recipe-production-wave small{display:block;color:var(--muted);margin-top:3px}@media(max-width:760px){.recipe-production-wave-header{align-items:stretch;flex-direction:column}.recipe-production-wave-header button{width:100%}}

/* FN28D4A – Regional & Style Family Assistant */
.assistant-style-controls{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(170px,1fr) minmax(160px,.9fr) auto;gap:8px}.assistant-recommendation .assistant-region-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.assistant-recommendation .library-chip{font-size:.72rem}.assistant-recommendation[data-source-type="production_template"]{border-left:4px solid var(--accent,#5f6fff)}@media(max-width:800px){.assistant-style-controls{grid-template-columns:1fr}.assistant-style-controls button{width:100%}}

/* FN28D4C – Demo Household & Assistant Showcase */
.assistant-demo-showcase-card{margin:14px 0;border-color:color-mix(in srgb,var(--accent) 28%,var(--line));background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 4%,var(--card)),var(--card))}.assistant-demo-summary{margin-top:12px}.assistant-demo-showcase-card .actions{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}

/* FN28D5A — Community Production Stability & Release Gate */
.community-runtime-card{margin-top:14px;padding:14px 16px;border:1px solid var(--line,#dfe3e8);border-radius:14px;background:var(--surface-soft,rgba(127,127,127,.045));display:grid;gap:12px}.community-runtime-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.community-runtime-head>div{display:grid;gap:3px}.community-runtime-head small{color:var(--muted)}.community-runtime-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.community-runtime-grid>div{display:grid;gap:3px;padding:9px 10px;border:1px solid var(--line,#dfe3e8);border-radius:10px;background:var(--panel,#fff)}.community-runtime-grid span{font-size:.75rem;color:var(--muted)}.community-runtime-grid b.ok{color:var(--success,#16794b)}.community-runtime-grid b.bad{color:var(--danger,#b42318)}@media(max-width:900px){.community-runtime-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.community-runtime-head{flex-direction:column}.community-runtime-head button{width:100%}}

/* FN28D5B – Public Demo Sandbox & Multi-Profile Community */
.fn-entry-demo-profiles .fn-entry-live-demo{grid-column:1/-1;border-color:color-mix(in srgb,var(--accent) 34%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 6%,var(--card)),var(--card))}.fn-entry-live-demo .primary{width:max-content}.entry-demo-persona-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:6px}.entry-demo-persona{display:flex;gap:8px;align-items:center;text-align:left;border:1px solid var(--line);background:var(--card);border-radius:10px;padding:7px;cursor:pointer;color:inherit}.entry-demo-persona:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));transform:translateY(-1px)}.entry-demo-persona img{width:38px;height:38px;border-radius:10px;object-fit:cover}.entry-demo-persona span{display:grid;gap:2px;min-width:0}.entry-demo-persona b{font-size:9px}.entry-demo-persona small,.entry-demo-persona em{font-size:8px;color:var(--muted);font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.demo-persona-dialog{width:min(960px,94vw)}.demo-persona-dialog-body{padding:18px;display:grid;gap:14px}.demo-persona-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:64vh;overflow:auto}.demo-persona-card{display:grid;grid-template-columns:62px 1fr;gap:12px;align-items:center;text-align:left;border:1px solid var(--line);background:var(--card);color:inherit;border-radius:14px;padding:10px;cursor:pointer}.demo-persona-card:hover,.demo-persona-card.active{border-color:color-mix(in srgb,var(--accent) 50%,var(--line));box-shadow:0 6px 18px rgba(20,35,28,.08)}.demo-persona-card.active{background:color-mix(in srgb,var(--accent) 5%,var(--card))}.demo-persona-card img{width:62px;height:62px;border-radius:14px;object-fit:cover}.demo-persona-card span{display:grid;gap:4px;min-width:0}.demo-persona-card b{font-size:13px}.demo-persona-card small{color:var(--muted);line-height:1.35}.demo-persona-card em{font-style:normal;font-size:9px;color:var(--muted)}@media(max-width:720px){.entry-demo-persona-grid,.demo-persona-grid{grid-template-columns:1fr}.demo-persona-card{grid-template-columns:50px 1fr}.demo-persona-card img{width:50px;height:50px}}
