/* AnalyticalFire — AI Shopping Assistant | arbitrage.css v5.0 */

/* ── TOKENS ──────────────────────────────────────────────────────────────── */
:root {
  --bg:#eef1f8; --bg2:#ffffff; --bg3:#f4f6fb; --bg4:#e8ecf4;
  --border:#dde1ea; --border2:#c8cdd8;
  --fg:#1c1f26; --fg2:#44484f; --fg3:#7a7f8a;
  --accent:#4F8EF7; --accent2:#3b72d9;
  --green:#1a7f37; --green-bg:rgba(26,127,55,.1);
  --red:#e53e3e;
  --shadow:0 1px 4px rgba(0,0,0,.07);
  --shadow-md:0 8px 32px rgba(0,0,0,.12);
  --shadow-lg:0 16px 64px rgba(0,0,0,.16);
  --font:'Inter',system-ui,-apple-system,sans-serif;
  --radius:14px; --rail-w:56px; --disc-w:300px;
}
[data-theme="dark"] {
  --bg:#1a1d24; --bg2:#22262f; --bg3:#2a2f3a; --bg4:#313744;
  --border:#363c4a; --border2:#454c5e;
  --fg:#e8eaf0; --fg2:#9098a8; --fg3:#636b7a;
  --accent:#6ba3f8; --accent2:#4F8EF7;
  --green:#3fb950; --green-bg:rgba(63,185,80,.12);
  --red:#f87171;
  --shadow:0 1px 4px rgba(0,0,0,.3);
  --shadow-md:0 8px 32px rgba(0,0,0,.5);
  --shadow-lg:0 16px 64px rgba(0,0,0,.6);
}

/* ── RESET + APP SHELL ────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden}
body{font-family:var(--font);background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;transition:background .2s,color .2s}
.app-shell{display:flex;height:100vh;overflow:hidden}

/* ── SLIM LEFT RAIL ──────────────────────────────────────────────────────── */
.left-rail{width:var(--rail-w);flex-shrink:0;background:var(--bg);border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;padding:.75rem 0;gap:.25rem;z-index:100;transition:width .2s ease}
.left-rail.expanded{width:260px;align-items:stretch}
.rail-top{display:flex;flex-direction:column;align-items:center;gap:.25rem;width:100%;padding:0 .5rem}
.left-rail.expanded .rail-top{padding:0 .75rem}
.rail-icon-btn{width:40px;height:40px;border:none;background:transparent;color:var(--fg3);cursor:pointer;border-radius:10px;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;flex-shrink:0;text-decoration:none}
.rail-icon-btn:hover{background:var(--bg3);color:var(--fg)}
.rail-history{display:none;flex:1;overflow-y:auto;width:100%;padding:.5rem .75rem}
.left-rail.expanded .rail-history{display:flex;flex-direction:column;gap:.125rem}
.rail-history-label{font-size:.6875rem;font-weight:700;color:var(--fg3);text-transform:uppercase;letter-spacing:.06em;padding:.5rem .25rem .375rem}
.rail-empty p{font-size:.8125rem;color:var(--fg3);padding:.75rem .25rem;line-height:1.5}
.rail-item{padding:.5rem .625rem;border-radius:8px;cursor:pointer;transition:background .1s}
.rail-item:hover{background:var(--bg3)}
.rail-item.active{background:var(--bg4)}
.rail-item-query{font-size:.8125rem;font-weight:500;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rail-item-time{font-size:.6875rem;color:var(--fg3);margin-top:.1rem}
.rail-bottom{margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:0 .5rem}
.left-rail.expanded .rail-bottom{align-items:flex-start;padding:0 .75rem}

/* ── MAIN AREA ───────────────────────────────────────────────────────────── */
.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}
.main-header{height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 1.25rem;flex-shrink:0}
.main-logo{font-size:.9375rem;font-weight:700;color:var(--fg2);text-decoration:none;display:flex;align-items:center;gap:.375rem}
.main-logo:hover{color:var(--fg)}
.main-header-right{display:flex;align-items:center;gap:.75rem}
.disc-toggle-btn{position:relative;width:38px;height:38px;border:1px solid var(--border);border-radius:10px;background:var(--bg2);color:var(--fg2);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}
.disc-toggle-btn:hover{border-color:var(--accent);color:var(--accent)}
.header-new-btn{display:flex;align-items:center;gap:.375rem;padding:.375rem .875rem;border:1px solid var(--border);border-radius:20px;background:var(--bg2);color:var(--fg2);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}
.header-new-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--bg3)}
.disc-toggle-btn.active{border-color:var(--accent);background:rgba(79,142,247,.08);color:var(--accent)}
.disc-toggle-count{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;background:var(--accent);color:#fff;border-radius:9px;font-size:.625rem;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 4px;pointer-events:none}
.header-link{font-size:.8125rem;color:var(--fg3);text-decoration:none;transition:color .15s}
.header-link:hover{color:var(--accent)}

/* ── CHAT AREA ───────────────────────────────────────────────────────────── */
.chat-area{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}

/* Messages — visible in chat-active state */
.chat-messages{flex:1;overflow-y:auto;padding:1.5rem 1.5rem;display:flex;flex-direction:column;gap:1rem;scroll-behavior:smooth;max-width:780px;width:100%;margin:0 auto}

/* Welcome / empty state — centered, full width */
.chat-welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding-bottom:6rem;transition:opacity .2s}
.welcome-logo{margin-bottom:1.25rem}
.welcome-title{font-size:1.875rem;font-weight:700;color:var(--fg);letter-spacing:-.03em;line-height:1.2;margin-bottom:.625rem}
.welcome-sub{font-size:.9375rem;color:var(--fg3);max-width:440px;line-height:1.65}

/* Input area */
.input-area{flex-shrink:0;padding:.75rem 1.5rem 1rem;max-width:780px;width:100%;margin:0 auto}
/* In welcome state: entire chat-area acts as a centered flex column */
.chat-area.is-welcome{justify-content:center}
.chat-area.is-welcome .input-area{max-width:640px}
.input-box{display:flex;align-items:center;background:var(--bg2);border:1px solid var(--border);border-radius:16px;padding:.625rem .625rem .625rem 1.125rem;gap:.5rem;box-shadow:var(--shadow-md);transition:border-color .15s,box-shadow .15s}
.input-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(79,142,247,.12),var(--shadow-md)}
.input-box input{flex:1;border:none;outline:none;background:transparent;font-size:1rem;font-family:var(--font);color:var(--fg);min-width:0;line-height:1.5}
.input-box input::placeholder{color:var(--fg3)}
.send-btn{width:38px;height:38px;background:var(--accent);border:none;border-radius:10px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity .15s,background .15s}
.send-btn:hover:not(:disabled){background:var(--accent2)}
.send-btn:disabled{background:var(--bg4);color:var(--fg3);cursor:not-allowed}
.action-chips{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.625rem;padding:0 .25rem}
.action-chip{display:inline-flex;align-items:center;gap:.375rem;padding:.4375rem .875rem;border:1px solid var(--border);border-radius:24px;font-size:.8125rem;font-weight:500;color:var(--fg2);background:var(--bg2);cursor:pointer;transition:all .15s;font-family:var(--font);box-shadow:var(--shadow)}
.action-chip:hover{border-color:var(--accent);color:var(--accent);background:var(--bg3)}
.action-chip svg{opacity:.7}
.input-disclaimer{font-size:.6875rem;color:var(--fg3);margin-top:.625rem;text-align:center}
.input-disclaimer a{color:var(--fg3);text-decoration:underline}

/* ── DISCOVERIES PANEL ───────────────────────────────────────────────────── */
/* Default: hidden (welcome state) */
.disc-panel{width:0;overflow:hidden;background:var(--bg2);border-left:none;display:flex;flex-direction:column;flex-shrink:0;transition:width .28s cubic-bezier(.4,0,.2,1),border-color .28s}
/* Active chat state: disc panel becomes a real column */
.app-shell.chat-active .disc-panel{width:var(--disc-w);border-left:1px solid var(--border);overflow:visible}
.disc-panel-header{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem;border-bottom:1px solid var(--border);flex-shrink:0}
.disc-panel-title{font-size:.9375rem;font-weight:700;color:var(--fg)}
.disc-panel-close{width:30px;height:30px;border:none;background:transparent;color:var(--fg3);cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .15s}
.disc-panel-close:hover{background:var(--bg3);color:var(--fg)}
.disc-tabs{display:flex;border-bottom:1px solid var(--border);flex-shrink:0}
.dtab{flex:1;padding:.5625rem .25rem;font-size:.8125rem;font-weight:500;color:var(--fg3);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all .15s;font-family:var(--font)}
.dtab:hover{color:var(--fg)}
.dtab.active{color:var(--accent);border-bottom-color:var(--accent)}
.disc-body{flex:1;overflow-y:auto;padding:.5rem}
.disc-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2.5rem 1.25rem;gap:.75rem;color:var(--fg3)}
.disc-empty p{font-size:.8125rem;line-height:1.5}

/* ── MESSAGES ────────────────────────────────────────────────────────────── */
.msg{display:flex;flex-direction:column;gap:.5rem}
.msg-user{align-items:flex-end}
.msg-assistant{align-items:flex-start}
.msg-bubble{padding:.75rem 1rem;border-radius:12px;font-size:.9rem;line-height:1.5;max-width:85%}
.msg-user .msg-bubble{background:linear-gradient(135deg,#0550ae,#8250df);color:#fff;border-bottom-right-radius:4px}
.msg-assistant .msg-bubble{background:var(--bg3);border:1px solid var(--border);color:var(--fg);border-bottom-left-radius:4px}
.msg-thinking{display:flex;gap:.375rem;align-items:center;padding:.75rem 1rem;min-width:64px}
.dot{width:7px;height:7px;border-radius:50%;background:var(--fg3);animation:bounce .9s infinite ease-in-out}
.dot:nth-child(2){animation-delay:.15s}
.dot:nth-child(3){animation-delay:.3s}
@keyframes bounce{0%,80%,100%{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}

/* ── PRODUCT CARDS (in messages) ─────────────────────────────────────────── */
.msg-products{display:flex;flex-direction:column;gap:.5rem;width:100%}
.pcard{display:flex;align-items:center;gap:.75rem;padding:.625rem .875rem;background:var(--bg2);border:1px solid var(--border);border-radius:8px;text-decoration:none;color:var(--fg);transition:all .15s}
.pcard:hover{border-color:var(--accent);box-shadow:var(--shadow)}
.pcard-thumb{width:44px;height:44px;border-radius:6px;overflow:hidden;background:var(--bg3);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.pcard-img{width:100%;height:100%;object-fit:cover}
.pcard-img-ph{font-size:1.25rem}
.pcard-info{flex:1;min-width:0}
.pcard-title{font-size:.8125rem;font-weight:600;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcard-meta{font-size:.6875rem;color:var(--fg3);margin-top:.125rem}
.pcard-right{flex-shrink:0;text-align:right}
.pcard-price{font-size:.9375rem;font-weight:700;color:var(--green);font-variant-numeric:tabular-nums}
.pcard-cta{font-size:.6875rem;color:var(--accent);font-weight:600;margin-top:.125rem}

/* ── TRENDING MARKETPLACE MODAL ─────────────────────────────────────────── */
.mkt-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);backdrop-filter:blur(4px);z-index:400;display:flex;align-items:flex-start;justify-content:center;padding-top:4vh;opacity:0;pointer-events:none;transition:opacity .2s}
.mkt-overlay.open{opacity:1;pointer-events:all}
.mkt-modal{background:var(--bg2);border-radius:20px;width:min(96vw,1100px);max-height:88vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);overflow:hidden;transform:translateY(12px);transition:transform .2s}
.mkt-overlay.open .mkt-modal{transform:translateY(0)}
.mkt-header{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border);flex-shrink:0;flex-wrap:wrap}
.mkt-title{font-size:1.125rem;font-weight:700;color:var(--fg);margin-right:auto}
.mkt-controls{display:flex;align-items:center;gap:.625rem;flex-wrap:wrap}
.mkt-filters{display:flex;gap:.375rem;flex-wrap:wrap}
.mkt-filter{padding:.3125rem .75rem;border:1px solid var(--border);border-radius:20px;font-size:.8125rem;font-weight:500;color:var(--fg2);background:var(--bg3);cursor:pointer;transition:all .15s;font-family:var(--font)}
.mkt-filter:hover{border-color:var(--accent);color:var(--accent)}
.mkt-filter.active{background:var(--accent);border-color:var(--accent);color:#fff}
.mkt-sort{padding:.3125rem .75rem;border:1px solid var(--border);border-radius:8px;font-size:.8125rem;color:var(--fg);background:var(--bg3);cursor:pointer;font-family:var(--font);outline:none}
.mkt-close{width:34px;height:34px;border:1px solid var(--border);border-radius:8px;background:var(--bg3);color:var(--fg2);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}
.mkt-close:hover{border-color:var(--red);color:var(--red)}
.mkt-grid{flex:1;overflow-y:auto;padding:1rem 1.25rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.875rem;align-content:start}
.mkt-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;color:var(--fg3);font-size:.875rem;padding:3rem;grid-column:1/-1}
.mkt-spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}
.mkt-empty{text-align:center;color:var(--fg3);font-size:.875rem;padding:2rem;grid-column:1/-1}
.mkt-card{background:var(--bg3);border:1px solid var(--border);border-radius:12px;overflow:hidden;text-decoration:none;color:var(--fg);display:flex;flex-direction:column;transition:all .18s;cursor:pointer}
.mkt-card:hover{border-color:var(--accent);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.mkt-card-img{width:100%;aspect-ratio:1;overflow:hidden;background:var(--bg4);display:flex;align-items:center;justify-content:center}
.mkt-card-img img{width:100%;height:100%;object-fit:contain;padding:.5rem}
.mkt-card-icon{font-size:2rem}
.mkt-card-body{padding:.75rem;display:flex;flex-direction:column;gap:.25rem}
.mkt-card-cat{font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--fg3)}
.mkt-card-title{font-size:.8125rem;font-weight:600;color:var(--fg);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mkt-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.25rem}
.mkt-card-price{font-size:.9375rem;font-weight:700;color:var(--green)}
.mkt-card-shop{font-size:.6875rem;font-weight:600;color:var(--accent)}

/* ── DISCOVERY ITEMS ─────────────────────────────────────────────────────── */
.disc-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .375rem;border-radius:6px;transition:background .1s}
.disc-item:hover{background:var(--bg3)}
.disc-link{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--fg);flex:1;min-width:0}
.disc-img{width:36px;height:36px;border-radius:6px;object-fit:cover;flex-shrink:0;background:var(--bg3)}
.disc-img-ph{width:36px;height:36px;border-radius:6px;background:var(--bg3);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}
.disc-info{flex:1;min-width:0}
.disc-title{font-size:.8125rem;font-weight:600;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.disc-price{font-size:.75rem;color:var(--green);font-weight:700;margin-top:.125rem}
.disc-save{width:28px;height:28px;border:none;background:transparent;color:var(--fg3);font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .15s;flex-shrink:0}
.disc-save:hover{color:var(--red)}
.disc-save.saved{color:var(--red)}

/* ── ANIMATIONS ─────────────────────────────────────────────────────────── */
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes bounce{0%,80%,100%{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}

/* ── GAP BADGE (catalog cards) ───────────────────────────────────────────── */
.gap-badge{padding:.125rem .5rem;background:var(--green-bg);color:var(--green);border:1px solid rgba(26,127,55,.2);border-radius:20px;font-size:.6875rem;font-weight:700;white-space:nowrap}
[data-theme="dark"] .gap-badge{border-color:rgba(63,185,80,.25)}

/* ── ARBITRAGE PRICE LIST ────────────────────────────────────────────────── */
.arb-list{display:flex;flex-direction:column;gap:.75rem;width:100%}
.arb-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.arb-card-header{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;border-bottom:1px solid var(--border);background:var(--bg3)}
.arb-thumb{width:48px;height:48px;border-radius:6px;object-fit:contain;background:var(--bg2);flex-shrink:0}
.arb-thumb-ph{width:48px;height:48px;border-radius:6px;background:var(--bg4);display:flex;align-items:center;justify-content:center;font-size:1.375rem;flex-shrink:0}
.arb-card-info{flex:1;min-width:0}
.arb-name{font-size:.9375rem;font-weight:700;color:var(--fg);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.arb-meta{font-size:.75rem;color:var(--fg3);margin-top:.25rem;display:flex;align-items:center;gap:.375rem;flex-wrap:wrap}
.gap-badge-inline{padding:.125rem .5rem;border-radius:20px;font-size:.6875rem;font-weight:700;white-space:nowrap}
.gap-badge-inline.gap-high{background:var(--green-bg);color:var(--green);border:1px solid rgba(26,127,55,.2)}
.gap-badge-inline.gap-mid{background:rgba(154,103,0,.1);color:var(--yellow);border:1px solid rgba(154,103,0,.2)}
.gap-badge-inline.gap-low{background:var(--bg4);color:var(--fg3);border:1px solid var(--border)}
[data-theme="dark"] .gap-badge-inline.gap-high{border-color:rgba(63,185,80,.25)}
.arb-savings{flex-shrink:0;text-align:right;font-size:.75rem;color:var(--fg3);line-height:1.4}
.arb-savings strong{display:block;font-size:1rem;color:var(--green);font-weight:700}

/* ── Retailer rows ───────────────────────────────────────────────────────── */
.arb-retailers{display:flex;flex-direction:column}
.arb-retailer{display:flex;align-items:center;gap:.625rem;padding:.6875rem 1rem;text-decoration:none;color:var(--fg);border-bottom:1px solid var(--border);transition:background .1s}
.arb-retailer:last-child{border-bottom:none}
.arb-retailer:hover{background:var(--bg3)}
.arb-retailer-best{background:rgba(26,127,55,.04)}
[data-theme="dark"] .arb-retailer-best{background:rgba(63,185,80,.06)}
.arb-retailer-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.arb-retailer-name{font-size:.875rem;font-weight:600;color:var(--fg);min-width:80px}
.arb-best-badge{padding:.1rem .4375rem;background:var(--green-bg);color:var(--green);border:1px solid rgba(26,127,55,.2);border-radius:4px;font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}
[data-theme="dark"] .arb-best-badge{border-color:rgba(63,185,80,.25)}
.arb-vs{font-size:.75rem;color:var(--fg3);flex:1;text-align:left}
.arb-price{font-size:.9375rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--fg2);margin-left:auto;flex-shrink:0}
.arb-price-best{color:var(--green)}
.arb-shop{font-size:.75rem;font-weight:600;color:var(--accent);flex-shrink:0;margin-left:.75rem;opacity:0}
.arb-retailer:hover .arb-shop{opacity:1}

/* ── Product cards (web search results) ─────────────────────────────────── */
.msg-products{display:flex;flex-direction:column;gap:.5rem;width:100%}
.pcard{display:flex;align-items:center;gap:.75rem;padding:.625rem .875rem;background:var(--bg2);border:1px solid var(--border);border-radius:8px;text-decoration:none;color:var(--fg);transition:all .15s}
.pcard:hover{border-color:var(--accent);box-shadow:var(--shadow)}
.pcard-thumb{width:44px;height:44px;border-radius:6px;overflow:hidden;background:var(--bg3);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.pcard-img{width:100%;height:100%;object-fit:cover}
.pcard-img-ph{font-size:1.25rem}
.pcard-info{flex:1;min-width:0}
.pcard-title{font-size:.8125rem;font-weight:600;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcard-meta{font-size:.6875rem;color:var(--fg3);margin-top:.125rem}
.pcard-right{flex-shrink:0;text-align:right}
.pcard-price{font-size:.9375rem;font-weight:700;color:var(--green);font-variant-numeric:tabular-nums}
.pcard-cta{font-size:.6875rem;color:var(--accent);font-weight:600;margin-top:.125rem}

/* ── Email nudge ─────────────────────────────────────────────────────────── */
.email-nudge{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--bg2);border:1px solid var(--border);border-radius:10px;margin-top:.5rem;flex-wrap:wrap}
.nudge-text{font-size:.8125rem;font-weight:500;color:var(--fg2);flex-shrink:0}
.nudge-form{display:flex;gap:.375rem;flex:1;min-width:180px}
.nudge-input{flex:1;padding:.375rem .625rem;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--fg);font-size:.8125rem;outline:none;transition:border-color .15s}
.nudge-input:focus{border-color:var(--accent)}
.nudge-submit{padding:.375rem .75rem;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:.8125rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s}
.nudge-submit:hover{background:var(--accent2)}
.nudge-dismiss{padding:.375rem .625rem;background:transparent;border:none;color:var(--fg3);font-size:.75rem;cursor:pointer;flex-shrink:0;transition:color .15s}
.nudge-dismiss:hover{color:var(--fg)}

/* ── RESPONSIVE ──────────────────────────────────────────────────────────── */
@media(max-width:1024px){
  :root{--disc-w:260px}
}
@media(max-width:900px){
  :root{--rail-w:0px;--disc-w:0px}
  .left-rail{display:none}
  /* On mobile: disc panel becomes a fixed overlay instead of column */
  .app-shell.chat-active .disc-panel{width:min(300px,90vw);position:fixed;top:0;right:0;height:100vh;z-index:300;box-shadow:var(--shadow-lg)}
  /* Hidden override — when explicitly closed on mobile */
  .app-shell.chat-active .disc-panel.disc-panel-hidden{width:0;overflow:hidden;box-shadow:none}
  /* Mobile backdrop */
  .disc-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:299;backdrop-filter:blur(2px)}
  .disc-backdrop.open{display:block}
  .chat-messages{padding-left:1rem;padding-right:1rem}
  .input-area{padding-left:1rem;padding-right:1rem}
  .welcome-title{font-size:1.5rem}
}
@media(max-width:600px){
  .mkt-grid{grid-template-columns:repeat(2,1fr)}
  .mkt-filters{display:none}
}
/* Larger touch target for disc panel close on all sizes */
.disc-panel-close{width:44px;height:44px;min-width:44px;min-height:44px}
