/* ── Ask Scott fullscreen chat — WinePerson (Direction 2 skin) ──────────────
   Structure faithful to WineTutorial's /ask-scott surface (same element ids and
   class contract so the shared JS driver pattern holds); tokens re-skinned to
   the WinePerson Direction 2 system (garnet/vine/ivory, Playfair + Inter).
   Body is the viewport (100svh, overflow hidden); chat-scroll is the only
   scrolling element; composer pins to the bottom by flex layout. */

.ask-fullscreen-body{margin:0;background:var(--bg-page);font-family:var(--font-body);color:var(--ink);height:100svh;overflow:hidden;display:flex;flex-direction:column;overscroll-behavior:none;}
.ask-fullscreen-body.ask-fs-modal-open{overflow:hidden;}

/* Topbar */
.ask-fs-topbar{flex:0 0 auto;background:rgba(250,248,244,0.94);border-bottom:1px solid var(--c-border);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px;padding-top:max(10px,env(safe-area-inset-top));min-height:56px;}
.ask-fs-brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0;}
.ask-fs-brand:hover{text-decoration:none;}
.ask-fs-controls{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;min-width:0;}
.ask-fs-counter{flex-shrink:1;min-width:0;}
.ask-fs-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--c-border);background:var(--bg-surface);color:var(--accent);border-radius:10px;cursor:pointer;padding:0;flex-shrink:0;transition:border-color .15s,background .15s;}
.ask-fs-icon-btn:hover{border-color:var(--accent);background:var(--accent-quiet);}
.ask-fs-icon-btn svg{width:20px;height:20px;}

/* Main fill */
.ask-fs-main{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;width:100%;overflow:hidden;}
.ask-shell{display:grid;grid-template-columns:1fr;gap:24px;}
.ask-shell.ask-shell-fs,
.ask-shell.ask-shell-fs > .ask-main,
.ask-shell.ask-shell-fs .chat-card{flex:1 1 auto;display:flex;flex-direction:column;width:100%;max-width:none;min-width:0;min-height:0;margin:0;padding:0;gap:0;grid-template-columns:none;}
.ask-main{display:flex;flex-direction:column;gap:18px;min-width:0;}
.ask-shell-fs .chat-card{background:transparent;border:none;border-radius:0;box-shadow:none;height:auto;max-height:none;overflow:hidden;}
.ask-shell-fs .chat-scroll{flex:1 1 auto;min-height:0;width:100%;overflow-y:auto;padding:32px max(20px,calc((100% - 760px) / 2));}
.ask-shell-fs .compose-wrap{flex:0 0 auto;width:100%;background:var(--bg-page);border-top:1px solid var(--c-border);padding:14px max(20px,calc((100% - 760px) / 2));padding-bottom:max(14px,env(safe-area-inset-bottom));}
.ask-shell-fs .compose-row{max-width:none;margin:0;}

/* Footer */
.ask-fs-footer{flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:8px;padding:6px 16px;padding-bottom:max(6px,env(safe-area-inset-bottom));font-size:11px;color:var(--ink-muted);background:var(--bg-page);border-top:1px solid var(--c-border);}
.ask-fs-footer a{color:var(--ink-muted);text-decoration:none;}
.ask-fs-footer a:hover{color:var(--accent);text-decoration:underline;}
.ask-fs-footer-sep{opacity:.45;}
.ask-fs-footer-copy{opacity:.7;}

/* Chat elements */
.counter-pill{display:inline-flex;align-items:center;gap:7px;background:var(--accent-quiet);color:var(--accent);padding:8px 14px;border-radius:999px;font-size:13px;font-weight:700;border:1px solid #e8d6d9;white-space:nowrap;}
.counter-pill .icon{font-size:12px;line-height:1;}
.counter-pill.warn{background:#fdf0ee;color:#a13c2e;border-color:#dca69c;}
.counter-pill.is-signed{background:var(--success-quiet);color:var(--success);border-color:var(--success);}
.chat-scroll{display:flex;flex-direction:column;gap:24px;scroll-behavior:smooth;}
.welcome{display:flex;gap:20px;align-items:flex-start;}
.avatar{flex-shrink:0;border-radius:50%;background:var(--accent-quiet);border:2px solid var(--accent);display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-weight:700;color:var(--accent);overflow:hidden;}
.avatar.lg{width:64px;height:64px;font-size:24px;}
.avatar.sm{width:36px;height:36px;font-size:14px;}
.avatar.has-photo{padding:0;overflow:hidden;}
.avatar.has-photo img{width:100%;height:100%;object-fit:contain;border-radius:50%;display:block;}
.welcome .body{flex:1;}
.welcome-name{font-family:var(--font-heading);font-size:22px;color:var(--accent);font-weight:600;margin-bottom:8px;}
.welcome .body p{font-size:15px;color:var(--ink);margin-bottom:10px;line-height:1.55;}
.welcome .body p.subtle{font-size:14px;color:var(--ink-muted);margin-bottom:18px;}
.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;}
.chip-row .chip{background:var(--bg-surface);border:1px solid var(--c-border);border-radius:999px;padding:8px 14px;font-size:13px;color:var(--accent);font-family:var(--font-body);cursor:pointer;transition:all .15s;font-weight:500;}
.chip-row .chip:hover{background:var(--accent-quiet);border-color:var(--accent);color:var(--accent);}
.msg{display:flex;gap:14px;align-items:flex-start;animation:ask-fade .2s ease-out;}
@keyframes ask-fade{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:translateY(0);}}
.msg.user{flex-direction:row-reverse;}
.msg.user .bubble{background:var(--accent);color:#fff;border-bottom-right-radius:4px;}
.msg.assistant .bubble{background:var(--bg-surface);color:var(--ink);border:1px solid var(--c-border);border-bottom-left-radius:4px;}
.bubble{padding:14px 18px;border-radius:14px;max-width:78%;font-size:15px;line-height:1.55;white-space:pre-wrap;}
.bubble .sources{margin-top:12px;padding-top:12px;border-top:1px solid var(--c-border);font-size:12px;color:var(--ink-muted);}
.bubble .sources strong{color:var(--accent);font-weight:700;margin-right:6px;}
.bubble .sources .src-link{color:var(--accent);text-decoration:none;display:inline-block;margin:2px 6px 2px 0;padding:2px 8px;border-radius:6px;background:var(--c-soft-gray);font-size:11px;font-weight:600;}
.bubble .sources .src-link:hover{background:var(--accent-quiet);}
.msg.assistant .chip-row{margin-top:14px;margin-left:50px;}
.msg.assistant .chip-row .chip{background:var(--bg-page);border:1px dashed var(--c-stone);}
.bubble.loading{background:var(--bg-surface);border:1px solid var(--c-border);min-width:64px;display:inline-flex;align-items:center;gap:5px;}
.bubble.loading .dot-anim{width:6px;height:6px;border-radius:50%;background:var(--ink-muted);animation:ask-bounce 1.4s infinite;}
.bubble.loading .dot-anim:nth-child(2){animation-delay:.2s;}
.bubble.loading .dot-anim:nth-child(3){animation-delay:.4s;}
@keyframes ask-bounce{0%,80%,100%{transform:translateY(0);opacity:.4;}40%{transform:translateY(-6px);opacity:1;}}
.compose-wrap{border-top:1px solid var(--c-border);background:var(--bg-page);padding:18px 24px;}
.compose-row{display:flex;align-items:flex-end;gap:12px;background:var(--bg-surface);border:1px solid var(--c-border);border-radius:14px;padding:8px 8px 8px 16px;transition:border-color .15s;}
.compose-row:focus-within{border-color:var(--accent);}
.compose-row textarea{flex:1;border:none;outline:none;resize:none;font-family:var(--font-body);font-size:15px;background:transparent;padding:8px 0;line-height:1.5;color:var(--ink);max-height:140px;}
.send-btn{flex-shrink:0;width:40px;height:40px;border-radius:10px;background:var(--accent);color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s;}
.send-btn:hover:not(:disabled){background:var(--c-garnet-dk);}
.send-btn:disabled{background:var(--c-stone);cursor:not-allowed;opacity:.7;}
.send-btn svg{width:18px;height:18px;}

/* Gate panel (sign-up / sign-in) */
.gate-panel{display:none;background:linear-gradient(180deg,#faf6f0 0%,var(--bg-surface) 100%);border:1px solid var(--c-border);border-radius:16px;padding:34px 36px 36px;}
.gate-panel.is-active{display:block;animation:ask-fade .3s ease-out;}
.gate-panel .gate-head{display:flex;gap:18px;align-items:center;margin-bottom:24px;}
.gate-panel .gate-head .avatar{flex:none;margin:0;}
.gate-panel h2{font-family:var(--font-heading);font-size:26px;color:var(--accent);font-weight:600;margin-bottom:4px;line-height:1.2;}
.gate-panel .gate-sub{font-size:15px;color:var(--ink-muted);line-height:1.55;}
.gate-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:start;}
.gate-form{display:flex;flex-direction:column;gap:10px;}
.gate-form label{font-size:12px;font-weight:600;color:var(--accent);letter-spacing:.02em;margin-top:6px;text-transform:uppercase;}
.gate-form input{padding:12px 14px;border:1px solid var(--c-border);border-radius:10px;font-family:var(--font-body);font-size:15px;background:var(--bg-surface);}
.gate-form input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent);}
.gate-form button[type=submit]{margin-top:14px;padding:13px 18px;background:var(--accent);color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:background .15s;}
.gate-form button[type=submit]:hover{background:var(--c-garnet-dk);}
.gate-form button[type=submit]:disabled{background:var(--c-stone);cursor:not-allowed;opacity:.7;}
.gate-form .gate-error{padding:10px 14px;border-radius:8px;background:#fdf0ee;border:1px solid #dca69c;color:#a13c2e;font-size:13px;display:none;}
.gate-form .gate-error.is-visible{display:block;animation:ask-fade .2s ease-out;}
.gate-toggle-note{font-size:12px;color:var(--ink-muted);margin-top:14px;text-align:center;}
.gate-toggle-note a{color:var(--accent);font-weight:600;text-decoration:none;cursor:pointer;}
.gate-toggle-note a:hover{text-decoration:underline;}
.gate-benefits{background:var(--bg-surface);border:1px solid var(--c-border);border-radius:12px;padding:20px 22px;}
.gate-benefits h3{font-family:var(--font-heading);font-size:16px;color:var(--accent);font-weight:600;margin-bottom:14px;letter-spacing:.01em;}
.gate-benefits ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px;}
.gate-benefits li{display:flex;gap:12px;align-items:flex-start;}
.gate-benefits li svg{flex:none;width:18px;height:18px;color:var(--success);margin-top:2px;}
.gate-benefits li strong{display:block;font-size:14px;color:var(--ink);font-weight:600;margin-bottom:2px;}
.gate-benefits li span{display:block;font-size:13px;color:var(--ink-muted);line-height:1.45;}
.gate-reassurance{margin-top:18px;padding-top:14px;border-top:1px solid var(--c-border);font-size:12px;color:var(--ink-muted);font-style:italic;line-height:1.5;}
.gate-panel.is-login .gate-grid{grid-template-columns:1fr;max-width:420px;margin:0 auto;}
.gate-panel.is-login .gate-benefits{display:none;}

/* Saved-conversations rail (renders inside the conversations modal) */
.saved-rail{background:var(--bg-page);border:1px solid var(--c-border);border-radius:14px;padding:16px;}
.saved-rail .saved-item{padding:9px 11px;border-radius:8px;cursor:pointer;margin-bottom:3px;}
.saved-rail .saved-item:hover{background:var(--accent-quiet);}
.saved-rail .saved-item.is-current{background:var(--accent);color:#fff;}
.saved-rail .saved-item .title{font-size:13px;font-weight:600;color:inherit;display:block;margin-bottom:2px;line-height:1.3;}
.saved-rail .saved-item.is-current .title{color:#fff;}
.saved-rail .saved-item .meta{font-size:11px;color:var(--ink-muted);}
.saved-rail .saved-item.is-current .meta{color:rgba(255,255,255,0.7);}
.saved-rail .saved-empty{font-size:12px;color:var(--ink-muted);padding:6px 11px;font-style:italic;}
.saved-rail .new-btn{margin-top:12px;width:100%;padding:9px;background:var(--accent);border:none;border-radius:8px;font-family:inherit;font-weight:600;font-size:13px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;}
.saved-rail .new-btn:hover{background:var(--c-garnet-dk);}

/* Welcome variant: signed in */
.welcome.is-signed-in .anon-only{display:none;}
.welcome .signed-in-only{display:none;}
.welcome.is-signed-in .signed-in-only{display:block;}

/* Modals */
.ask-fs-modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(42,20,24,.42);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:ask-fs-modal-in .15s ease-out;}
.ask-fs-modal[hidden]{display:none;}
@keyframes ask-fs-modal-in{from{opacity:0;}to{opacity:1;}}
.ask-fs-modal-sheet{background:var(--bg-surface);border-radius:16px;box-shadow:0 18px 60px rgba(42,20,24,.18);max-width:480px;width:100%;max-height:88svh;display:flex;flex-direction:column;overflow:hidden;}
.ask-fs-modal-sheet-wide{max-width:880px;}
.ask-fs-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px 12px;border-bottom:1px solid var(--c-border);}
.ask-fs-modal-head-naked{border-bottom:none;padding:12px 12px 0;justify-content:flex-end;}
.ask-fs-modal-head h2{font-family:var(--font-heading);font-size:20px;font-weight:600;color:var(--accent);margin:0;}
.ask-fs-modal-close{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;color:var(--ink-muted);cursor:pointer;border-radius:8px;padding:0;flex-shrink:0;}
.ask-fs-modal-close:hover{background:var(--accent-quiet);color:var(--accent);}
.ask-fs-modal-close svg{width:20px;height:20px;}
.ask-fs-modal-body{padding:16px 20px 20px;overflow-y:auto;min-height:0;}
.saved-rail-in-modal{background:transparent;border:none;border-radius:0;padding:0;position:static;}
.gate-panel-in-modal{display:block;background:transparent;border:none;border-radius:0;padding:0;}
.gate-panel-in-modal.is-active{display:block;}

/* Mobile */
@media (max-width:720px){
  .ask-fs-topbar{padding:8px 14px;padding-top:max(8px,env(safe-area-inset-top));gap:8px;}
  .ask-fs-topbar .wm-tag{display:none;}
  .ask-fs-controls{gap:6px;}
  .ask-fs-counter .icon{display:none;}
  .ask-fs-counter #counter-text{font-size:12px;}
  .ask-fs-icon-btn{width:38px;height:38px;}
  .ask-shell-fs .chat-scroll{padding:18px max(14px,calc((100% - 760px) / 2)) 10px;}
  .ask-shell-fs .compose-wrap{padding:12px max(14px,calc((100% - 760px) / 2));padding-bottom:max(12px,env(safe-area-inset-bottom));}
  .ask-shell-fs .compose-row textarea{font-size:16px;} /* prevents iOS zoom-on-focus */
  .bubble{max-width:88%;}
  .welcome-name{font-size:18px;}
  .ask-fs-topbar .counter-pill.is-signed{display:none;}
  .ask-fs-modal{padding:0;align-items:stretch;justify-content:stretch;}
  .ask-fs-modal-sheet,.ask-fs-modal-sheet-wide{max-width:none;max-height:100svh;height:100svh;border-radius:0;}
  .ask-fs-modal-body{padding-bottom:max(20px,env(safe-area-inset-bottom));}
  .gate-panel-in-modal .gate-grid{grid-template-columns:1fr;}
  .gate-panel-in-modal .gate-benefits{display:none;}
  .ask-fs-footer{font-size:10px;padding:4px 12px;padding-bottom:max(4px,env(safe-area-inset-bottom));}
}

/* The hidden attribute must always win — .ask-fs-icon-btn's display:inline-flex
   (and any other display rule) would otherwise override the UA [hidden] style. */
[hidden]{display:none !important;}
