:root{ --blue:#2c6e94; --shadow:0 10px 24px rgba(0,0,0,0.06); }
    .visually-hidden{
      position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
      clip:rect(0,0,0,0);white-space:nowrap;border:0;
    }
    
    
     

    /* Title sponsor / seeking-sponsor strip (under blue header) */
    .ozzi-sponsor-strip{
      background:linear-gradient(90deg, #f4f7fa 0%, #eef3f7 50%, #f4f7fa 100%);
      border-bottom:1px solid #d5e0e8;
      color:#1a3344;
    }
    .ozzi-sponsor-strip[hidden]{ display:none !important; }
    .ozzi-sponsor-strip-inner{
      max-width:1100px;
      margin:0 auto;
      padding:10px 24px;
      display:flex;
      align-items:center;
      gap:14px 20px;
      flex-wrap:wrap;
    }
    .ozzi-sponsor-logo-wrap{
      flex:0 0 auto;
      display:flex;
      align-items:center;
      justify-content:center;
      min-width:72px;
    }
    .ozzi-sponsor-logo{
      display:block;
      height:40px;
      width:auto;
      max-width:140px;
      object-fit:contain;
    }
    .ozzi-sponsor-logo-ph{
      display:flex;
      align-items:center;
      justify-content:center;
      width:72px;
      height:48px;
      border:1.5px dashed #9aafbd;
      border-radius:8px;
      background:rgba(255,255,255,.65);
      color:#5a7384;
      font-size:.62rem;
      font-weight:700;
      letter-spacing:.04em;
      text-transform:uppercase;
      text-align:center;
      line-height:1.2;
      padding:4px;
    }
    .ozzi-sponsor-copy{ min-width:0; flex:1 1 240px; }
    .ozzi-sponsor-eyebrow{
      margin:0 0 2px;
      font-size:.7rem;
      font-weight:700;
      letter-spacing:.06em;
      text-transform:uppercase;
      color:#5a7384;
    }
    .ozzi-sponsor-headline{
      margin:0;
      font-size:.98rem;
      font-weight:700;
      line-height:1.35;
      color:#17384d;
    }
    .ozzi-sponsor-sub{
      margin:4px 0 0;
      font-size:.86rem;
      line-height:1.4;
      color:#4a6270;
      max-width:52rem;
    }
    .ozzi-sponsor-cta{
      flex:0 0 auto;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      padding:10px 16px;
      border-radius:8px;
      background:#33658a;
      color:#fff !important;
      text-decoration:none !important;
      font-weight:700;
      font-size:.9rem;
      white-space:nowrap;
    }
    .ozzi-sponsor-cta:hover{ background:#2a5573; }
    @media (max-width:700px){
      .ozzi-sponsor-strip-inner{ padding:10px 16px; }
      .ozzi-sponsor-cta{ width:100%; }
      .ozzi-sponsor-sub{ display:none; }
    }
    

    
    
    #chat-area{ margin-top:12px; display:none; }
    #chat-log{ max-height:260px; overflow-y:auto; padding:10px; border:1px solid #ccc; margin-bottom:10px; border-radius:5px; background:#f9f9f9; }
    #ozzy-chat-log{ max-height:260px; overflow-y:auto; padding:10px; border:1px solid #ccc; margin-bottom:10px; border-radius:5px; background:#f9f9f9; }
    
    .user-msg,.ai-msg{
      margin:0;
      max-width:100%;
      overflow-wrap:anywhere;
    }
    .user-msg{
      align-self:flex-end;
      width:fit-content;
      max-width:min(88%, 36rem);
      padding:0.45rem 0.75rem 0.55rem;
      background:#2f4858;
      color:#fff;
      border-radius:14px 14px 4px 14px;
      box-shadow:0 1px 0 rgba(26,44,54,.12);
    }
    .ai-msg{
      align-self:stretch;
      padding:0.5rem 0.75rem 0.6rem;
      background:var(--antique-cream, #f4e6c8);
      color:#1a2c36;
      border:1px solid rgba(47,72,88,.12);
      border-left:3px solid #4f8a5b;
      border-radius:4px 12px 12px 12px;
    }
    .ozzi-msg-label,
    .user-msg > strong,
    .ai-msg > strong{
      display:block;
      margin:0 0 0.2rem;
      font-size:0.72rem;
      font-weight:700;
      letter-spacing:0.06em;
      text-transform:uppercase;
    }
    .user-msg .ozzi-msg-label,
    .user-msg > strong{ color:#f1b71b; }
    .ai-msg .ozzi-msg-label,
    .ai-msg > strong{ color:#2f4858; }
    .ozzi-msg-body{ font-weight:600; line-height:1.4; }
    .ai-msg.resume-card{
      border-left-width:4px;
      border-left-color:var(--blue);
    }
    .ozzy-formatted p{ margin:0.5em 0; line-height:1.5; }
    .ozzy-formatted p:first-child{ margin-top:0; }
    .ozzy-formatted ul,.ozzy-formatted ol{ margin:0.5em 0; padding-left:1.4em; }
    .ozzy-formatted ol{ list-style:decimal; }
    .ozzy-formatted ul{ list-style:disc; }
    .ozzy-formatted li{ margin:0.25em 0; }
    .ozzy-formatted a{ color:var(--blue); text-decoration:underline; overflow-wrap:anywhere; }
    .ozzy-formatted a:hover{ text-decoration:none; }
    
    

    /* Oz Search / Ozzi Chat tabs */
    .oz-tab-bar{ display:flex; gap:0; margin:0 auto 0; max-width:900px; padding:0 20px; border-bottom:2px solid #e0e0e0; background:#fff; }
    .oz-tab-bar .oz-tab{ padding:12px 24px; border:none; background:transparent; color:#666; cursor:pointer; font-weight:600; font-size:1rem; border-bottom:3px solid transparent; margin-bottom:-2px; border-radius:8px 8px 0 0; }
    .oz-tab-bar .oz-tab:hover{ color:var(--blue); }
    .oz-tab-bar .oz-tab.active{ color:var(--blue); background:#f0f8fc; border-bottom-color:var(--blue); }
    .oz-tab-bar .oz-tab.inactive{ opacity:.55; cursor:not-allowed; }
    .oz-tab-bar .oz-tab.inactive:hover{ color:#666; }
    .oz-tab-bar .oz-tab:not(.inactive){ cursor:pointer; }
    .oz-panel{ display:none; }
    .oz-panel.active{ display:block; }
    .oz-events-frame-wrap{
      max-width:900px;margin:0 auto;padding:0;background:#fff;
      border:1px solid #e0e0e0;border-top:none;border-radius:0 0 10px 10px;
      box-shadow:0 2px 8px rgba(0,0,0,.06);overflow:hidden;
    }
    .oz-events-frame{
      display:block;width:100%;min-height:78vh;border:0;background:#fff;
    }

    /* Docking */
    .container.floating{ position:fixed; bottom:16px; left:50%; transform:translateX(-50%); width:min(900px,94vw); margin:0; box-shadow:0 16px 40px rgba(0,0,0,.2); }
    .container.collapsed h1{ display:none; } .container.collapsed #chat-area{ display:none!important; }
    .dock-btn{ position:absolute; right:10px; top:10px; background:var(--blue); color:#fff; border:none; border-radius:6px; padding:6px 10px; cursor:pointer; font-size:13px; }

    .results-wrap{ max-width:980px; margin:16px auto 60px; padding:0 8px; }
    .section-block{ max-width:900px; margin:22px auto; }
    .results-title{ margin:0 0 12px; font-size:1.25rem; font-weight:800; }
    .result-card,.post-card,.bot-card{ max-width:900px; margin:14px auto; background:#fff; border:1px solid #dcdcdc; border-radius:12px; box-shadow:var(--shadow);
      padding:16px; display:flex; gap:20px; align-items:flex-start; }
    .taxonomy-bar{ margin-top:8px; display:flex; flex-wrap:wrap; gap:6px; }
    .taxonomy-pill{ background:#eef6fb; color:var(--blue); }
    .info-banner{ background:#f8f4e8; border-left:4px solid #c68a00; }
    .clarification-msg{ background:#f8fafc; border-radius:12px; padding:10px 12px; }
    .clarification-suggestions{ margin:8px 0 0 18px; padding:0; list-style:disc; color:#475569; font-size:0.95rem; }
    .clarification-suggestions li{ margin-bottom:4px; }
    .resume-card{ background:#f0f4fa; border-left:4px solid var(--blue); border-radius:12px; padding:12px 14px; margin:10px 0; }
    .resume-card strong{ display:block; margin-bottom:4px; }
    .resume-actions{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
    .resume-actions button{ padding:8px 16px; font-size:14px; border:none; border-radius:999px; cursor:pointer; }
    .resume-actions button.resume-primary{ background:var(--blue); color:#fff; }
    .resume-actions button.resume-secondary{ background:#e5e7eb; color:#1f2937; }
    
    /* Searching animation */
    .searching-animation {
      animation: pulse 1.5s ease-in-out infinite;
    }
    
    @keyframes pulse {
      0%, 100% { opacity: 1; }
      50% { opacity: 0.6; }
    }
    .ozzy-thinking-indicator{
      display:inline-flex;
      align-items:center;
      gap:6px;
      color:#666;
      font-weight:600;
    }
    .ozzy-thinking-label{
      color:#666;
    }
    .ozzy-thinking-dots{
      display:inline-flex;
      align-items:center;
      min-width:22px;
    }
    .ozzy-thinking-dots span{
      width:4px;
      height:4px;
      margin-right:3px;
      border-radius:50%;
      background:#666;
      display:inline-block;
      animation:ozzyThinkingDot 1.2s infinite ease-in-out;
    }
    .ozzy-thinking-dots span:last-child{ margin-right:0; }
    .ozzy-thinking-dots span:nth-child(2){ animation-delay:.15s; }
    .ozzy-thinking-dots span:nth-child(3){ animation-delay:.3s; }
    @keyframes ozzyThinkingDot {
      0%, 80%, 100% { opacity:.25; transform:translateY(0); }
      40% { opacity:1; transform:translateY(-2px); }
    }
    .ozzy-typewriter-plain,
    .ozzy-typewriter-surface{
      white-space:pre-wrap;
      word-break:break-word;
    }
    .ozzy-typewriter-cursor{
      display:inline-block;
      width:2px;
      height:1.05em;
      margin-left:2px;
      vertical-align:text-bottom;
      background:currentColor;
      opacity:.85;
      animation:ozzyTypeCursor 1s step-end infinite;
    }
    @keyframes ozzyTypeCursor{
      0%, 49%{ opacity:.85; }
      50%, 100%{ opacity:0; }
    }
    @media (prefers-reduced-motion: reduce){
      .ozzy-typewriter-cursor{ animation:none; opacity:1; }
    }
    .thumb{ flex-shrink:0; width:200px; height:200px; border-radius:10px; overflow:hidden; background:#f2f2f2; }
    .thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
    .result-card h4,.post-card h4,.bot-card h4{ margin:0 0 6px 0; }
    .result-card p,.post-card p,.bot-card p{ margin:6px 0; }
    .muted{ color:#666; } .pill{ display:inline-block; font-size:12px; background:#eef6fb; color:var(--blue); padding:4px 8px; border-radius:999px; margin-bottom:8px; }
    .listing-badge-row{ display:flex; flex-wrap:wrap; gap:6px; margin:0 0 8px; }
    .listing-badge{ display:inline-block; font-size:11px; font-weight:700; letter-spacing:.02em; padding:3px 8px; border-radius:6px; border:1px solid; }
    .listing-badge-featured{ background:#fff7e6; color:#92400e; border-color:#fde68a; }
    .listing-badge-verified{ background:#e8f5e9; color:#1b5e20; border-color:#c8e6c9; }
    .listing-badge-claimed{ background:#eef2ff; color:#3730a3; border-color:#e0e7ff; }
    .result-card.result-card--featured{
      background:linear-gradient(135deg,#fffdf8 0%,#fff 55%);
      border-color:#f0d78c;
      box-shadow:0 0 0 1px rgba(217,119,6,.12), var(--shadow);
      border-left:4px solid #d97706;
    }
    .actions a{ display:inline-block; margin-right:12px; text-decoration:none; font-weight:600; }

    /* Emergency banner */
    .emergency-banner{ border-left:6px solid #c62828; background:#fff8f8; }
    .pill.emergency{ background:#ffebee; color:#c62828; }

    .map-overlay{ position:fixed; inset:0; background:rgba(0,0,0,0.55); display:none; align-items:center; justify-content:center; z-index:9999; padding:20px; }
    .map-modal{ width:min(100%,900px); height:min(90vh,700px); background:#fff; border-radius:12px; overflow:hidden; box-shadow:0 20px 60px rgba(0,0,0,0.35); display:flex; flex-direction:column; }
    .map-modal-header{ display:flex; align-items:center; justify-content:space-between; padding:10px 14px; background:var(--blue); color:#fff; }
    .map-modal-header .title{ font-weight:700; margin-right:12px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
    .map-modal-header .controls a,.map-modal-header button{ color:#fff; text-decoration:none; font-weight:600; border:none; background:transparent; cursor:pointer; margin-left:12px; }
    .map-frame{ border:0; width:100%; height:100%; }
    /* Local Results live in an Ozzi tab (recoverable after returning to chat). */
    .oz-results-panel{
      max-width:1100px; margin:0 auto; padding:0 0 28px;
      background:linear-gradient(180deg,#f9fbfd 0%, #f3f6fb 100%);
      border-radius:0 0 16px 16px;
    }
    .search-modal-header{ display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:18px 22px; border-bottom:1px solid #e5e7eb; background:#f8fbfd; }
    .search-modal-header h2{ margin:0 0 4px; font-size:1.35rem; color:#17384d; }
    .search-modal-header p{ margin:0; color:#5b6b74; font-size:.95rem; }
    .search-modal-actions{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
    .search-modal-back{ padding:10px 14px; border:1px solid #c8d7e1; border-radius:999px; background:#fff; color:#17384d; cursor:pointer; font-weight:600; }
    .search-modal-close{ padding:10px 14px; border:none; border-radius:999px; background:var(--blue); color:#fff; cursor:pointer; font-weight:600; }
    .search-modal-body{ padding:18px 18px 24px; }
    .oz-tab-bar .oz-tab[data-oz-panel="results"][hidden]{ display:none !important; }
    .results-drawer-meta{ max-width:900px; margin:0 auto 10px; background:#fff; border:1px solid #dbe4ea; border-radius:14px; box-shadow:var(--shadow); padding:16px 18px; }
    .results-chip-row{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
    .results-chip{ display:inline-flex; align-items:center; gap:6px; padding:8px 12px; border-radius:999px; background:#eef6fb; color:#17435e; font-size:.93rem; font-weight:600; }
    .results-chip-label{ color:#5c6f7b; font-weight:700; text-transform:uppercase; font-size:.72rem; letter-spacing:.04em; }
    .results-summary-row{ display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
    .results-summary-copy{ margin:0; color:#24495f; font-weight:600; }
    .results-summary-hint{ margin:0; color:#667884; font-size:.92rem; }
    .results-note{ margin-top:12px; padding:12px 14px; border-radius:12px; background:#f4f8fb; border-left:4px solid #2c6e94; color:#24495f; }
    .results-note.warning{ background:#fff8e6; border-left-color:#d89a00; }
    .results-note.error{ background:#fff3f2; border-left-color:#c94b41; }
    .results-note ul{ margin:8px 0 0 18px; padding:0; }
    .results-note li{ margin:4px 0; }
    .legacy-search-runtime{ display:none; }
    .section-block.compact-section{ margin-top:14px; }
    .section-block.compact-section .results-title{ margin-bottom:10px; color:#17384d; }
    .results-subsection{ margin:0 0 18px; }
    .results-subsection-title{ margin:10px 0 12px; font-size:1.02rem; font-weight:800; color:#24506a; }

    
    @media (max-width:860px){
      .to-footer-grid{ grid-template-columns:1fr; }
      .to-footer-logo-col{ order:-1; text-align:center; }
      .to-footer-logo-col img{ margin:0 auto; }
    }

    @media (max-width:700px){
      .result-card,.post-card,.bot-card{ flex-direction:column; }
      .thumb{ width:100%; height:180px; }
      .search-modal-header{ flex-direction:column; }
      .search-modal-actions{ width:100%; justify-content:flex-end; }
    }

    /* Ozzi chat log — starts compact, grows with content up to max (no JS height — avoids jerk during typewriter) */
    #ozzy-chat-log{
      display:flex;
      flex-direction:column;
      gap:0.55rem;
      min-height:100px;
      max-height:400px;
      overflow-x:hidden;
      overflow-y:auto;
      padding:12px;
      border:1px solid #ddd;
      border-radius:8px;
      background:#f9f9f9;
      margin-bottom:12px;
      box-sizing:border-box;
      transition:max-height .25s ease, opacity .2s ease, padding .2s ease, margin .2s ease, border-color .2s ease;
    }
    #ozzy-chat-log.ozzy-chat-log-collapsed{
      max-height:0 !important;
      min-height:0 !important;
      padding:0 !important;
      margin:0 !important;
      border-color:transparent !important;
      opacity:0;
      overflow:hidden;
      pointer-events:none;
    }

    @media (prefers-reduced-motion: reduce){
      #ozzy-chat-log{ transition:none; }
    }

    /* Category browse links below chat */
    .ozzy-category-nav{
      margin-top:18px;
      padding-top:16px;
      border-top:1px solid #e5e9ec;
    }
    .ozzy-category-nav > p{
      margin:0 0 12px;
      font-size:.9rem;
      color:#5b6b74;
      text-align:center;
    }
    .ozzy-category-group{
      margin-bottom:12px;
    }
    .ozzy-category-group:last-child{
      margin-bottom:0;
    }
    .ozzy-category-group h3{
      margin:0 0 8px;
      font-size:.72rem;
      font-weight:700;
      letter-spacing:.05em;
      text-transform:uppercase;
      color:#6b7b85;
    }
    .ozzy-category-grid{
      display:flex;
      flex-wrap:wrap;
      gap:10px 8px;
    }
    .ozzy-category-link{
      display:flex;
      flex-direction:column;
      align-items:center;
      width:7.125rem;
      text-decoration:none;
      color:#2a3a44;
      font-size:.68rem;
      line-height:1.25;
      text-align:center;
    }
    .ozzy-category-link:hover,
    .ozzy-category-link:focus-visible{
      color:var(--blue);
    }
    .ozzy-category-link img{
      width:78px;
      height:78px;
      border-radius:50%;
      object-fit:cover;
      border:2px solid var(--blue);
      margin-bottom:4px;
      background:#eef3f6;
    }
    .ozzy-category-link span{
      display:block;
      max-width:100%;
    }
    .ozzy-latest-articles .ozzy-category-link{
      width:8.25rem;
    }
    .ozzy-latest-articles .ozzy-category-link span{
      display:-webkit-box;
      -webkit-line-clamp:3;
      -webkit-box-orient:vertical;
      overflow:hidden;
    }
    .ozzy-category-contact-note{
      margin-top:16px;
      padding:12px 14px;
      background:#f0f8fc;
      border-radius:8px;
      font-size:.875rem;
      line-height:1.5;
      color:#475569;
      text-align:center;
    }
    .ozzy-category-contact-note a{
      color:var(--blue);
      font-weight:600;
      text-decoration:underline;
      text-underline-offset:2px;
    }
    .ozzy-category-contact-note a:hover{
      text-decoration:none;
    }

    .ozzy-local-weather{
      margin:14px 0 0;
      padding:10px 14px;
      background:#f0f7fb;
      border:1px solid #d4e8f2;
      border-radius:8px;
      font-size:0.9rem;
      text-align:center;
    }
    .ozzy-local-weather-link{
      background:none;
      border:none;
      color:var(--blue);
      font-weight:600;
      cursor:pointer;
      text-decoration:underline;
      text-underline-offset:3px;
      font-size:inherit;
      font-family:inherit;
      padding:0;
    }
    .ozzy-local-weather-link:hover{ color:#1a5270; }
    .ozzy-local-weather-link:disabled{
      opacity:0.7;
      cursor:wait;
      text-decoration:none;
    }
    .ozzy-personal-links{
      display:flex;
      flex-wrap:wrap;
      justify-content:center;
      align-items:center;
      gap:4px;
    }
    .ozzy-personal-sep{
      color:#7a9eb5;
      user-select:none;
    }
    .ozzy-local-weather-result{
      margin-top:8px;
      text-align:left;
      color:#444;
      line-height:1.45;
      font-size:0.875rem;
    }
    .ozzy-events-list{
      margin:0;
      padding-left:1.1rem;
    }
    .ozzy-events-list li{ margin:0.35rem 0; }

    /* Ozzi chat composer: input + Send on one row (desktop + mobile) */
    .ozzy-chat-compose{
      display:flex;
      flex-wrap:nowrap;
      gap:8px;
      align-items:stretch;
      position:relative;
      z-index:5;
      background:#fff;
      padding:0;
      margin:0 0 10px;
      transition:box-shadow .2s ease, padding .2s ease;
    }
    .ozzy-chat-input-wrap{
      flex:1 1 auto;
      min-width:0;
    }
    #ozzy-chat-input{
      width:100%;
      box-sizing:border-box;
      padding:12px;
      font-size:16px; /* keeps iOS from zooming on focus */
      border:1px solid #ccc;
      border-radius:8px;
      margin-bottom:0;
    }
    .ozzy-chat-actions{
      display:flex;
      flex:0 0 auto;
      gap:8px;
      justify-content:flex-end;
      align-items:stretch;
    }
    .ozzy-chat-actions button{
      flex:0 0 auto;
      min-height:44px;
      min-width:72px;
      padding:12px 16px;
      border:none;
      border-radius:8px;
      cursor:pointer;
      font-weight:600;
      font-size:15px;
    }
    #ozzy-chat-send{ background:var(--blue); color:#fff; }

    /* Mobile composing: hide secondary chrome; dock composer above keyboard */
    html.ozzi-composing #ozzy-chat-headline{
      font-size:1rem !important;
      margin:0 0 8px !important;
      line-height:1.3 !important;
    }
    html.ozzi-composing #ozzy-local-weather,
    html.ozzi-composing #ozzy-category-nav,
    html.ozzi-composing .ozzy-chat-secondary,
    html.ozzi-composing #ozzy-chat-subtitle{
      display:none !important;
    }
    html.ozzi-composing #ozzy-chat-log:not(.ozzy-chat-log-collapsed){
      max-height:min(52dvh, 420px);
    }
    html.ozzi-composing .ozzy-chat-compose{
      position:sticky;
      bottom:max(0px, var(--ozzi-keyboard-inset, 0px));
      z-index:40;
      margin-bottom:0;
      padding:8px 0 max(8px, env(safe-area-inset-bottom));
      box-shadow:0 -6px 16px rgba(0,0,0,.06);
    }
    @media (max-width:768px){
      html.ozzi-composing .oz-tab-bar{
        display:none;
      }
      html.ozzi-composing header,
      html.ozzi-composing .ozzi-sponsor-strip{
        display:none;
      }
      html.ozzi-composing #ozzy-chat-log:not(.ozzy-chat-log-collapsed){
        max-height:min(48dvh, 380px);
      }
    }
    .ozzy-chat-secondary{
      margin-top:10px;
      text-align:center;
    }
    .ozzy-text-link{
      background:none;
      border:none;
      padding:8px 4px;
      min-height:44px;
      color:#5a6578;
      font-size:0.875rem;
      text-decoration:underline;
      text-underline-offset:3px;
      cursor:pointer;
      font-weight:500;
    }
    .ozzy-text-link:hover{ color:var(--blue); }
    .ozzy-start-fresh-confirm{
      margin-top:12px;
      padding:12px 14px;
      border:1px solid #e0e4ea;
      border-radius:8px;
      background:#f7f9fc;
      text-align:left;
    }
    .ozzy-start-fresh-confirm p{
      margin:0 0 12px;
      font-size:0.875rem;
      line-height:1.45;
      color:#444;
    }
    .ozzy-start-fresh-confirm-actions{
      display:flex;
      gap:16px;
      justify-content:flex-end;
      align-items:center;
      flex-wrap:wrap;
    }
    .ozzy-link-btn{
      background:none;
      border:none;
      padding:8px 4px;
      min-height:44px;
      color:var(--blue);
      font-size:0.875rem;
      font-weight:600;
      text-decoration:underline;
      text-underline-offset:3px;
      cursor:pointer;
    }
    .ozzy-undo-toast{
      position:fixed;
      left:50%;
      bottom:max(16px, env(safe-area-inset-bottom));
      transform:translateX(-50%);
      z-index:10050;
      display:flex;
      align-items:center;
      gap:12px;
      max-width:min(92vw, 420px);
      padding:12px 14px;
      border-radius:10px;
      background:#1f2937;
      color:#fff;
      font-size:0.875rem;
      box-shadow:0 8px 24px rgba(0,0,0,.22);
    }
    .ozzy-undo-toast[hidden]{
      display:none !important;
    }
    .ozzy-undo-toast .ozzy-text-link{
      color:#93c5fd;
      min-height:auto;
      padding:4px;
      flex-shrink:0;
    }

    /* First-visit welcome modal — retired (keep hidden even if stale CDN JS runs init) */
    #ozzi-welcome-overlay{
      display:none !important;
      visibility:hidden !important;
      pointer-events:none !important;
    }
    .ozzi-welcome-overlay{
      position:fixed;
      inset:0;
      z-index:10040;
      display:flex;
      align-items:center;
      justify-content:center;
      padding:20px 16px;
      background:rgba(15, 23, 42, 0.55);
      backdrop-filter:blur(2px);
    }
    .ozzi-welcome-overlay[hidden]{
      display:none !important;
    }
    .ozzi-welcome-panel{
      position:relative;
      width:min(560px, 100%);
      max-height:min(88vh, 720px);
      overflow:auto;
      background:#fff;
      border-radius:14px;
      padding:24px 22px 20px;
      box-shadow:0 20px 50px rgba(15, 23, 42, 0.25);
      border:1px solid #e4e7ec;
    }
    .ozzi-welcome-close{
      position:absolute;
      top:10px;
      right:12px;
      width:40px;
      height:40px;
      border:none;
      border-radius:8px;
      background:transparent;
      color:#667085;
      font-size:1.5rem;
      line-height:1;
      cursor:pointer;
    }
    .ozzi-welcome-close:hover{ background:#f3f4f6; color:#1f2933; }
    .ozzi-welcome-panel h2{
      margin:0 32px 12px 0;
      font-size:1.45rem;
      line-height:1.25;
      color:#1f2933;
    }
    .ozzi-welcome-lead{
      margin:0 0 14px;
      color:#475569;
      line-height:1.55;
      font-size:1rem;
    }
    .ozzi-welcome-list{
      margin:0 0 20px;
      padding-left:1.2em;
      color:#334155;
      line-height:1.5;
    }
    .ozzi-welcome-list li{ margin-bottom:8px; }
    .ozzi-welcome-actions{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
    }
    .ozzi-welcome-actions button{
      flex:1 1 140px;
      min-height:44px;
      padding:11px 16px;
      border-radius:8px;
      font-size:0.95rem;
      font-weight:600;
      cursor:pointer;
      border:1px solid transparent;
    }
    #ozzi-welcome-primary{
      background:var(--blue);
      color:#fff;
      border-color:var(--blue);
    }
    #ozzi-welcome-events{
      background:#fff7e6;
      color:#b45309;
      border-color:#fcd34d;
    }
    #ozzi-welcome-dismiss{
      background:#f3f4f6;
      color:#374151;
      border-color:#e5e7eb;
    }

    @media (max-width:768px){
      main{ padding:16px 12px 32px; }
      header{
        flex-wrap:wrap;
        align-items:flex-start;
        padding:12px 14px;
        gap:10px;
      }
      header img{ height:36px; }
      header nav{
        width:100%;
        display:flex;
        flex-wrap:wrap;
        gap:8px 14px;
        justify-content:flex-start;
        align-items:center;
      }
      header nav a{
        margin-left:0;
        font-size:0.875rem;
        white-space:nowrap;
      }

      .oz-tab-bar{
        max-width:100%;
        margin:0;
        padding:0 8px;
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
        overscroll-behavior-x:contain;
        flex-wrap:nowrap;
        justify-content:flex-start;
        gap:4px;
        border-bottom-width:1px;
        scrollbar-width:thin;
      }
      .oz-tab-bar .oz-tab{
        flex:0 0 auto;
        padding:10px 12px;
        font-size:0.8rem;
        white-space:nowrap;
      }

      .ozzy-chat-compose{
        flex-direction:row;
        flex-wrap:nowrap;
        align-items:stretch;
      }
      .ozzy-chat-input-wrap{
        flex:1 1 auto;
        width:auto;
      }
      .ozzy-chat-actions{
        flex:0 0 auto;
        width:auto;
      }
      .ozzy-chat-actions button{
        flex:0 0 auto;
        min-height:48px;
        min-width:72px;
        padding:12px 14px;
      }

      /* Force 2-up category / article tiles (fixed rem widths were collapsing to 1-up). */
      .ozzy-category-grid{
        display:grid;
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:14px 12px;
        justify-items:center;
      }
      .ozzy-category-link,
      .ozzy-latest-articles .ozzy-category-link{
        width:100%;
        max-width:10rem;
      }
      .ozzy-category-link img{
        width:92px;
        height:92px;
      }

      /* Active chat: declutter — browse/weather compete with the thread. */
      html.ozzi-has-chat #ozzy-category-nav,
      html.ozzi-has-chat #ozzy-local-weather{
        display:none !important;
      }
      html.ozzi-has-chat #ozzy-chat-headline{
        font-size:1.05rem !important;
        margin:0 0 10px !important;
        line-height:1.3 !important;
      }
      html.ozzi-has-chat #ozzy-chat-log:not(.ozzy-chat-log-collapsed){
        max-height:min(52dvh, 22rem);
        min-height:0;
        overflow-x:hidden;
        overflow-y:auto;
        -webkit-overflow-scrolling:touch;
        overscroll-behavior:auto;
      }

      /* Results tab: reclaim vertical space for listings. */
      html.ozzi-results-active .search-modal-header{
        padding:12px 14px;
        gap:10px;
      }
      html.ozzi-results-active .search-modal-header h2{
        font-size:1.15rem;
      }
      html.ozzi-results-active .search-modal-header p{
        display:none;
      }
      html.ozzi-results-active .search-modal-actions{
        width:100%;
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:8px;
      }
      html.ozzi-results-active .search-modal-back,
      html.ozzi-results-active .search-modal-close{
        min-height:44px;
        width:100%;
        border-radius:10px;
        font-size:0.95rem;
      }
      html.ozzi-results-active .results-drawer-meta{
        padding:12px 14px;
        margin-bottom:8px;
      }
      html.ozzi-results-active .results-summary-hint{
        display:none;
      }
      html.ozzi-results-active .result-card .thumb{
        width:100%;
        height:160px;
      }
    }
