/* =============================================================
   NETXUZ v4.1 — COMPLETE STYLESHEET
   ============================================================= */

/* ── 1. TOKENS ─────────────────────────────────────────────── */
:root {
  --bg:#050810; --bg-2:#080d1a; --bg-3:#0c1428;
  --surface:rgba(15,25,50,.7); --surface-2:rgba(20,35,65,.6); --surface-3:rgba(10,18,40,.85);
  --border:rgba(80,140,255,.12); --border-glow:rgba(80,140,255,.35);
  --accent:#4d8cff; --accent-2:#7b5cf0; --accent-glow:rgba(77,140,255,.25);
  --cyan:#00e5ff; --text:#e8edf8; --text-2:#8a9bc4; --text-3:#4a5a80;
  --error:#ff4d6a; --success:#00e5a0; --warning:#ffb830;
  --sidebar-w:220px; --topbar-h:52px;
  --mono:'JetBrains Mono','Courier New',monospace;
  --display:'Orbitron',sans-serif; --sans:'Inter',system-ui,sans-serif;
  --ease-out:cubic-bezier(.16,1,.3,1);
  --r-sm:4px; --r-md:10px; --r-lg:16px; --r-pill:999px;
}

/* ── 2. RESET ──────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{height:100%;-webkit-text-size-adjust:100%}
body{font-family:var(--sans);font-size:14px;line-height:1.6;color:var(--text);background:var(--bg);height:100vh;height:100dvh;overflow:hidden;-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
a{color:inherit;text-decoration:none;touch-action:manipulation}
textarea,input,select{font:inherit;color:inherit}
textarea{resize:none}
img,svg{display:block;max-width:100%}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}

/* ── 3. BG EFFECTS ─────────────────────────────────────────── */
.bg-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:.5}
.bg-grid{position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:linear-gradient(rgba(0,180,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(0,180,255,.04) 1px,transparent 1px);
  background-size:60px 60px;animation:gridScroll 20s linear infinite;
  mask-image:radial-gradient(ellipse 80% 70% at 50% 50%,black 30%,transparent 100%);
  -webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 50%,black 30%,transparent 100%)}
@keyframes gridScroll{to{background-position:60px 60px}}
.scan-line{position:fixed;left:0;right:0;height:2px;pointer-events:none;z-index:1;opacity:0;
  background:linear-gradient(90deg,transparent,rgba(0,220,255,.35),rgba(0,220,255,.7),rgba(0,220,255,.35),transparent);
  animation:scanMove 10s ease-in-out infinite}
@keyframes scanMove{0%{top:-2px;opacity:0}5%{opacity:1}95%{opacity:.3}100%{top:100vh;opacity:0}}
.corner-brackets{position:fixed;inset:0;pointer-events:none;z-index:1}
.corner-brackets::before,.corner-brackets::after,.corner-brackets .cb-br,.corner-brackets .cb-bl{content:"";position:absolute;width:36px;height:36px;opacity:.2;animation:bracketPulse 4s ease-in-out infinite}
.corner-brackets::before{top:12px;left:12px;border-top:1px solid var(--cyan);border-left:1px solid var(--cyan)}
.corner-brackets::after{top:12px;right:12px;border-top:1px solid var(--cyan);border-right:1px solid var(--cyan);animation-delay:1s}
.corner-brackets .cb-br{bottom:12px;right:12px;border-bottom:1px solid var(--accent);border-right:1px solid var(--accent);animation-delay:2s}
.corner-brackets .cb-bl{bottom:12px;left:12px;border-bottom:1px solid var(--accent);border-left:1px solid var(--accent);animation-delay:3s}
@keyframes bracketPulse{0%,100%{opacity:.15}50%{opacity:.45}}

/* ── 4. APP SHELL ──────────────────────────────────────────── */
.app{position:relative;z-index:10;display:flex;width:100vw;height:100vh;height:100dvh;overflow:hidden;opacity:0;transition:opacity .6s var(--ease-out)}
.app.visible{opacity:1}

/* ── 5. SIDEBAR ────────────────────────────────────────────── */
.sidebar{width:var(--sidebar-w);flex-shrink:0;height:100vh;background:var(--surface-3);border-right:1px solid var(--border);display:flex;flex-direction:column;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);z-index:50;position:relative;transition:transform .3s var(--ease-out)}
.sidebar-brand{display:flex;align-items:center;gap:.65rem;padding:1.1rem 1rem;border-bottom:1px solid var(--border)}
.sb-logo{width:32px;height:32px;object-fit:contain;filter:drop-shadow(0 0 8px rgba(0,200,255,.7));animation:logoGlow 3s ease-in-out infinite}
@keyframes logoGlow{0%,100%{filter:drop-shadow(0 0 6px rgba(0,200,255,.6))}50%{filter:drop-shadow(0 0 16px rgba(0,200,255,1))}}
.sb-brand-text{display:flex;flex-direction:column;line-height:1}
.sb-name{font-family:var(--display);font-size:.9rem;font-weight:700;letter-spacing:.1em;color:var(--text)}
.sb-ver{font-family:var(--mono);font-size:.55rem;color:var(--text-3);margin-top:2px}
.sb-nav{display:flex;flex-direction:column;gap:2px;padding:.75rem .6rem 0;overflow-y:auto;flex:1}
.sb-item{display:flex;align-items:center;gap:.7rem;padding:.6rem .8rem;border-radius:var(--r-md);font-size:.83rem;font-weight:500;color:var(--text-2);transition:background .15s,color .15s;position:relative;text-align:left;width:100%;min-height:44px}
.sb-item:hover{background:var(--surface-2);color:var(--text)}
.sb-item.active{background:rgba(77,140,255,.12);color:var(--accent)}
.sb-item.active::before{content:"";position:absolute;left:0;top:20%;bottom:20%;width:2px;background:var(--accent);border-radius:2px}
.sb-item svg{flex-shrink:0;opacity:.7}
.sb-item.active svg{opacity:1}
.sb-badge{margin-left:auto;background:var(--error);color:#fff;font-size:.6rem;padding:.1rem .35rem;border-radius:var(--r-pill);font-family:var(--mono)}
.sb-status{display:flex;align-items:center;gap:.6rem;padding:.75rem 1rem;margin:.5rem .6rem;background:var(--surface);border-radius:var(--r-md);border:1px solid var(--border)}
.sb-status-dot{width:7px;height:7px;border-radius:50%;background:var(--success);animation:statusPulse 2.5s ease-in-out infinite;flex-shrink:0}
.sb-status-info{display:flex;flex-direction:column}
.sb-status-label{font-size:.6rem;color:var(--text-3);font-family:var(--mono)}
.sb-status-val{font-size:.72rem;color:var(--success);font-family:var(--mono)}
.sb-settings{margin:.25rem .6rem;border-radius:var(--r-md)}
.sb-footer{padding:.6rem 1rem;font-size:.65rem;color:var(--text-3);font-family:var(--mono)}
.sb-footer a{color:var(--accent)}
@keyframes statusPulse{0%,100%{opacity:1}50%{opacity:.6}}
@keyframes orbSpin{to{transform:rotate(360deg)}}

/* ── 6. CONTENT ────────────────────────────────────────────── */
.content{flex:1;display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden;position:relative;min-width:0}

/* ── 7. TOPBAR ─────────────────────────────────────────────── */
.topbar{height:var(--topbar-h);flex-shrink:0;display:flex;align-items:center;gap:.75rem;padding:0 1.25rem;background:rgba(5,8,16,.8);border-bottom:1px solid var(--border);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.topbar-menu{display:none;color:var(--text-2);padding:.4rem;min-height:44px;align-items:center;justify-content:center}
.topbar-status{display:flex;align-items:center;gap:.4rem;flex:1}
.topbar-dot{width:7px;height:7px;border-radius:50%;background:var(--success);animation:statusPulse 2.5s ease-in-out infinite}
.topbar-dot.thinking{background:var(--warning)}
.topbar-dot.speaking{background:var(--cyan)}
.topbar-dot.error{background:var(--error);animation:none}
.topbar-text{font-family:var(--mono);font-size:.7rem;color:var(--text-2)}
.topbar-right{display:flex;align-items:center;gap:.6rem;margin-left:auto}
.worker-pill{display:flex;align-items:center;gap:.35rem;font-family:var(--mono);font-size:.65rem;color:var(--text-3);padding:.2rem .55rem;border:1px solid var(--border);border-radius:var(--r-pill)}
.worker-dot{width:6px;height:6px;border-radius:50%;background:var(--text-3);transition:background .3s}
.worker-dot.ok{background:var(--success)}
.worker-dot.error{background:var(--error)}
.worker-dot.checking{background:var(--warning);animation:blink .8s step-end infinite}
@keyframes blink{50%{opacity:0}}
.lang-toggle{font-family:var(--mono);font-size:.72rem;color:var(--text-2);padding:.3rem .5rem;border:1px solid var(--border);border-radius:var(--r-sm);transition:border-color .2s;min-height:36px}
.lang-toggle:hover{border-color:var(--border-glow)}
.lang-es,.lang-en{transition:color .2s}
.lang-es.active,.lang-en.active{color:var(--accent)}
.lang-sep{color:var(--text-3);margin:0 2px}

/* ── 8. SECTIONS ───────────────────────────────────────────── */
.section{display:none;flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:1.25rem;animation:sectionIn .3s var(--ease-out)}
.section.active{display:flex;flex-direction:column;gap:1rem}
@keyframes sectionIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.section-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.section-title{font-family:var(--display);font-size:1.1rem;font-weight:700;letter-spacing:.05em;color:var(--text)}

/* ── 9. HOME LAYOUT ────────────────────────────────────────── */
.home-layout{display:flex;gap:1rem;flex:1;min-height:0;overflow:hidden}
.chat-area{flex:1;display:flex;flex-direction:column;gap:.75rem;min-width:0;overflow:hidden}
.widgets{width:240px;flex-shrink:0;display:flex;flex-direction:column;gap:.75rem;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-right:2px}

/* ── 10. ORB ───────────────────────────────────────────────── */
.orb-container{position:relative;width:110px;height:110px;display:flex;align-items:center;justify-content:center;margin:0 auto;flex-shrink:0}
.orb-rings{position:absolute;inset:0}
.orb-ring{position:absolute;border-radius:50%;border:1px solid transparent}
.orb-ring--outer{inset:0;border-color:var(--border);animation:orbSpin 12s linear infinite}
.orb-ring--mid{inset:12%;border-color:rgba(123,92,240,.2);animation:orbSpin 8s linear infinite reverse}
.orb-ring--inner{inset:24%;border-color:rgba(0,229,255,.15);animation:orbSpin 5s linear infinite}
.holo-ring{position:absolute;border-radius:50%;border:1px solid transparent;pointer-events:none}
.holo-ring-1{width:130%;height:130%;border-color:rgba(0,220,255,.07);animation:orbSpin 15s linear infinite}
.holo-ring-2{width:160%;height:160%;border-color:rgba(77,140,255,.04);animation:orbSpin 22s linear infinite reverse}
.holo-ring-3{width:200%;height:200%;border-color:rgba(123,92,240,.03);animation:orbSpin 30s linear infinite}
.orb-core{position:relative;width:52%;height:52%;border-radius:50%;background:radial-gradient(circle at 35% 30%,rgba(77,140,255,.25),rgba(123,92,240,.15) 50%,transparent 70%);border:1px solid var(--border-glow);display:flex;align-items:center;justify-content:center;transition:transform .3s}
.orb-core.thinking{border-color:var(--warning);animation:thinkingCore 1.5s ease-in-out infinite}
.orb-core.speaking{border-color:var(--cyan);animation:speakingCore .4s ease-in-out infinite alternate}
@keyframes thinkingCore{0%,100%{box-shadow:0 0 15px rgba(255,184,48,.2)}50%{box-shadow:0 0 30px rgba(255,184,48,.4)}}
@keyframes speakingCore{from{box-shadow:0 0 20px rgba(0,229,255,.2)}to{box-shadow:0 0 40px rgba(0,229,255,.5)}}
.orb-pulse{position:absolute;inset:-20%;border-radius:50%;background:radial-gradient(circle,rgba(77,140,255,.08) 0%,transparent 65%);animation:orbGlowPulse 3s ease-in-out infinite}
@keyframes orbGlowPulse{0%,100%{transform:scale(1);opacity:.5}50%{transform:scale(1.15);opacity:1}}
.orb-glow{position:absolute;inset:-40%;border-radius:50%;background:radial-gradient(circle,rgba(77,140,255,.04) 0%,transparent 60%);pointer-events:none}
.orb-letter{font-family:var(--display);font-size:1rem;font-weight:900;color:var(--accent);letter-spacing:-1px;position:relative;z-index:1;text-shadow:0 0 20px var(--accent-glow)}
.orb-bars{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);display:flex;align-items:flex-end;gap:3px;height:18px;opacity:0;transition:opacity .3s;z-index:3;pointer-events:none}
.orb-bars.visible{opacity:1}
.orb-bar{width:3px;border-radius:2px;background:var(--cyan);animation:barBounce var(--d,.6s) var(--delay,0s) ease-in-out infinite alternate}
@keyframes barBounce{from{height:3px;opacity:.4}to{height:var(--max-h,18px);opacity:1}}

/* ── 11. GREETING ──────────────────────────────────────────── */
.home-greeting{text-align:center;flex-shrink:0}
.greeting-text{font-family:var(--display);font-size:clamp(1.3rem,3vw,1.9rem);font-weight:700;letter-spacing:.04em;background:linear-gradient(135deg,var(--text) 0%,var(--accent) 60%,var(--cyan) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;line-height:1.1}
.greeting-sub{font-size:.78rem;color:var(--text-2);font-family:var(--mono);margin-top:.3rem;letter-spacing:.05em}

/* ── 12. SUGGESTIONS ───────────────────────────────────────── */
.suggestions{flex-shrink:0}
.suggestions-label{font-size:.7rem;color:var(--text-3);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.5rem}
.suggestions-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}
.suggestion-card{display:flex;align-items:flex-start;gap:.6rem;padding:.65rem .75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);text-align:left;transition:border-color .2s,background .2s,transform .2s;cursor:pointer;touch-action:manipulation}
.suggestion-card:hover{border-color:var(--border-glow);background:var(--surface-2);transform:translateY(-1px)}
.suggestion-card svg{flex-shrink:0;color:var(--accent);margin-top:2px}
.suggestion-card div{display:flex;flex-direction:column;gap:2px}
.suggestion-card strong{font-size:.78rem;color:var(--text);font-weight:600}
.suggestion-card span{font-size:.68rem;color:var(--text-3)}

/* ── 13. CONVERSATION ──────────────────────────────────────── */
.conversation{flex:1;display:flex;flex-direction:column;gap:.75rem;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-right:4px;min-height:0}
.msg{display:flex;gap:.6rem;animation:msgIn .35s var(--ease-out)}
@keyframes msgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.msg--user{flex-direction:row-reverse}
.msg-avatar{width:28px;height:28px;flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-family:var(--display);font-weight:700;margin-top:2px}
.msg--nexus .msg-avatar{background:radial-gradient(circle at 35% 30%,rgba(77,140,255,.4),rgba(123,92,240,.2));border:1px solid var(--border-glow);color:var(--accent)}
.msg--user .msg-avatar{background:var(--surface-2);border:1px solid var(--border);color:var(--text-2)}
.msg-body{flex:1;min-width:0}
.msg--user .msg-body{text-align:right}
.msg-name{font-family:var(--mono);font-size:.58rem;letter-spacing:.08em;color:var(--text-3);margin-bottom:.25rem;text-transform:uppercase}
.msg-bubble{display:inline-block;max-width:90%;padding:.6rem .85rem;border-radius:var(--r-md);font-size:.85rem;line-height:1.65;text-align:left}
.msg--nexus .msg-bubble{background:var(--surface);border:1px solid var(--border);color:var(--text);border-bottom-left-radius:3px}
.msg--user .msg-bubble{background:linear-gradient(135deg,rgba(77,140,255,.16),rgba(123,92,240,.1));border:1px solid rgba(77,140,255,.22);color:var(--text);border-bottom-right-radius:3px}
.msg-actions{display:flex;gap:.35rem;margin-top:.35rem}
.msg--user .msg-actions{justify-content:flex-end}
.msg-action-btn{width:24px;height:24px;border:1px solid var(--border);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;color:var(--text-3);transition:border-color .2s,color .2s;font-size:.65rem;touch-action:manipulation}
.msg-action-btn:hover,.msg-action-btn:active{border-color:var(--border-glow);color:var(--accent)}
.msg-action-btn.speaking{color:var(--cyan);border-color:var(--cyan)}
.msg-typing .msg-bubble{display:flex;align-items:center;gap:5px;padding:.7rem .85rem}
.typing-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);opacity:.5;animation:typingBounce .8s ease-in-out infinite}
.typing-dot:nth-child(2){animation-delay:.15s}
.typing-dot:nth-child(3){animation-delay:.3s}
@keyframes typingBounce{0%,100%{transform:translateY(0);opacity:.4}50%{transform:translateY(-4px);opacity:1}}

/* ── 14. CHAT INPUT ────────────────────────────────────────── */
.chat-input-area{flex-shrink:0;padding-top:.5rem}
.chat-input-wrapper{display:flex;align-items:flex-end;gap:.4rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-pill);padding:.35rem .35rem .35rem .6rem;transition:border-color .2s,box-shadow .2s;backdrop-filter:blur(10px)}
.chat-input-wrapper:focus-within{border-color:var(--border-glow);box-shadow:0 0 0 3px var(--accent-glow)}
.user-input{flex:1;background:none;border:none;outline:none;padding:.45rem .3rem;font-size:16px;color:var(--text);min-height:36px;max-height:120px;overflow-y:auto;line-height:1.5;-webkit-overflow-scrolling:touch}
.user-input::placeholder{color:var(--text-3)}
.btn-mic{width:40px;height:40px;border-radius:50%;border:1px solid var(--border);color:var(--text-2);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:border-color .2s,color .2s;touch-action:manipulation}
.btn-mic:hover,.btn-mic:active{border-color:var(--border-glow);color:var(--accent)}
.btn-mic.recording{border-color:var(--error);color:var(--error);animation:micPulse 1s ease-in-out infinite}
@keyframes micPulse{0%,100%{box-shadow:0 0 0 0 rgba(255,77,106,.3)}50%{box-shadow:0 0 0 5px rgba(255,77,106,0)}}
.btn-send{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;transition:opacity .2s,transform .2s;box-shadow:0 2px 10px var(--accent-glow);touch-action:manipulation}
.btn-send:hover{opacity:.9;transform:scale(1.06)}
.btn-send:active{transform:scale(.96)}
.btn-send:disabled{opacity:.4;cursor:not-allowed;transform:none}

/* ── 15. WIDGETS ───────────────────────────────────────────── */
.widget{background:var(--surface-3);border:1px solid var(--border);border-radius:var(--r-lg);padding:.85rem;flex-shrink:0}
.widget-header{display:flex;align-items:center;gap:.4rem;font-family:var(--mono);font-size:.65rem;letter-spacing:.08em;color:var(--text-3);text-transform:uppercase;margin-bottom:.75rem}
.widget-header svg{flex-shrink:0;color:var(--accent)}
.widget-header span:first-of-type{flex:1}
.widget-refresh{margin-left:auto;color:var(--text-3);font-size:.8rem;transition:transform .3s,color .2s;cursor:pointer;border:none;background:none;touch-action:manipulation}
.widget-refresh:hover{transform:rotate(180deg);color:var(--accent)}
.widget-more{width:100%;padding:.4rem;font-family:var(--mono);font-size:.65rem;color:var(--accent);border:none;background:none;cursor:pointer;margin-top:.5rem;text-align:right;transition:opacity .2s}
.weather-main{display:flex;flex-direction:column;gap:.5rem}
.weather-loading,.news-loading{font-size:.75rem;color:var(--text-3);font-family:var(--mono);text-align:center;padding:.5rem}
.weather-top{display:flex;align-items:center;gap:.6rem}
.weather-icon{font-size:2rem;line-height:1}
.weather-temp{font-family:var(--display);font-size:1.8rem;font-weight:700;color:var(--text);line-height:1}
.weather-desc{font-size:.72rem;color:var(--text-2)}
.weather-city{font-size:.65rem;color:var(--text-3);font-family:var(--mono)}
.weather-details{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.35rem;margin-top:.25rem}
.weather-detail{display:flex;flex-direction:column;gap:1px}
.weather-detail-label{font-size:.58rem;color:var(--text-3);font-family:var(--mono)}
.weather-detail-val{font-size:.72rem;color:var(--text-2);font-weight:500}
.clock-display{text-align:center;padding:.25rem 0}
.clock-time{font-family:var(--display);font-size:1.5rem;font-weight:700;color:var(--cyan);letter-spacing:.05em;text-shadow:0 0 20px rgba(0,229,255,.3)}
.clock-date{font-size:.68rem;color:var(--text-2);font-family:var(--mono);margin-top:.25rem}
.news-list{display:flex;flex-direction:column;gap:.5rem}
.news-item{display:flex;flex-direction:column;gap:.15rem;padding:.5rem 0;border-bottom:1px solid var(--border);cursor:pointer;transition:color .2s;touch-action:manipulation}
.news-item:last-child{border-bottom:none}
.news-item:hover .news-headline,.news-item:active .news-headline{color:var(--accent)}
.news-headline{font-size:.75rem;color:var(--text);font-weight:500;line-height:1.4}
.news-meta{font-size:.62rem;color:var(--text-3);font-family:var(--mono)}

/* ── 16. FORMS ─────────────────────────────────────────────── */
.section-input{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:.6rem .85rem;font-size:16px;color:var(--text);outline:none;transition:border-color .2s,box-shadow .2s}
.section-input:focus{border-color:var(--border-glow);box-shadow:0 0 0 2px var(--accent-glow)}
.section-textarea{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:.7rem .85rem;font-size:16px;color:var(--text);outline:none;line-height:1.6;transition:border-color .2s;-webkit-overflow-scrolling:touch}
.section-textarea:focus{border-color:var(--border-glow)}
.section-btn{padding:.55rem 1.1rem;background:linear-gradient(135deg,var(--accent),var(--accent-2));border-radius:var(--r-md);color:#fff;font-size:.8rem;font-weight:600;letter-spacing:.04em;transition:opacity .2s,transform .2s;white-space:nowrap;touch-action:manipulation;min-height:40px}
.section-btn:hover{opacity:.9;transform:translateY(-1px)}
.section-btn:active{transform:scale(.97)}
.section-btn-ghost{padding:.5rem 1rem;border:1px solid var(--border);border-radius:var(--r-md);color:var(--text-2);font-size:.8rem;transition:border-color .2s,color .2s;touch-action:manipulation;min-height:40px}
.section-btn-ghost:hover,.section-btn-ghost:active{border-color:var(--border-glow);color:var(--text)}
.input-row{display:flex;gap:.5rem;align-items:center}
.btn-save-key{width:40px;height:40px;border:1px solid var(--border);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:border-color .2s;font-size:.85rem;touch-action:manipulation}
.btn-save-key:hover{border-color:var(--success)}
.btn-danger{padding:.55rem 1.1rem;border:1px solid rgba(255,77,106,.3);border-radius:var(--r-md);color:var(--error);font-size:.8rem;transition:border-color .2s,background .2s;touch-action:manipulation;min-height:40px}
.btn-danger:hover{border-color:var(--error);background:rgba(255,77,106,.07)}

/* ── 17. WEATHER SECTION ───────────────────────────────────── */
.weather-ask{display:flex;flex-direction:column;gap:.75rem;max-width:420px}
.weather-ask p{font-size:.85rem;color:var(--text-2)}
.weather-search{display:flex;gap:.5rem}
.weather-result{margin-top:.5rem}

/* ── 18. NEWS SECTION ──────────────────────────────────────── */
.news-categories{display:flex;gap:.5rem;flex-wrap:wrap}
.news-cat{padding:.4rem .85rem;border:1px solid var(--border);border-radius:var(--r-pill);font-size:.75rem;color:var(--text-2);transition:border-color .2s,color .2s,background .2s;touch-action:manipulation;min-height:36px}
.news-cat:hover,.news-cat:active{border-color:var(--border-glow);color:var(--text)}
.news-cat.active{border-color:var(--accent);color:var(--accent);background:rgba(77,140,255,.08)}
.news-full-list{display:flex;flex-direction:column;gap:.6rem}
.news-full-item{padding:.85rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;transition:border-color .2s,transform .2s;touch-action:manipulation}
.news-full-item:hover,.news-full-item:active{border-color:var(--border-glow);transform:translateX(3px)}
.news-full-item h4{font-size:.85rem;font-weight:600;color:var(--text);margin-bottom:.3rem;line-height:1.4}
.news-full-item p{font-size:.75rem;color:var(--text-2);line-height:1.5}

/* ── 19. CLOCK SECTION ─────────────────────────────────────── */
.clock-full{display:flex;flex-direction:column;align-items:center;gap:1.5rem}
.clock-big{font-family:var(--display);font-size:clamp(2.5rem,8vw,5rem);font-weight:900;color:var(--cyan);letter-spacing:.05em;text-shadow:0 0 40px rgba(0,229,255,.3)}
.clock-big-date{font-family:var(--mono);font-size:.85rem;color:var(--text-2)}
.clock-zones{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem;width:100%}
.tz-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:.65rem .85rem;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:border-color .2s,background .2s;touch-action:manipulation;min-height:44px}
.tz-card:hover,.tz-card:active{border-color:var(--border-glow);background:var(--surface-2)}
.tz-city{font-size:.78rem;color:var(--text-2)}
.tz-time{font-family:var(--mono);font-size:.85rem;color:var(--accent);font-weight:500}
@keyframes tzFlash{0%{opacity:.3;transform:scale(.97)}100%{opacity:1;transform:scale(1)}}

/* ── 20. APPS SECTION ──────────────────────────────────────── */
.apps-full-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.75rem}
.app-card{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem .5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);transition:border-color .2s,transform .2s,background .2s;touch-action:manipulation}
.app-card:hover,.app-card:active{border-color:var(--border-glow);transform:translateY(-3px);background:var(--surface-2)}
.app-card-icon{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;line-height:1;box-shadow:0 4px 12px rgba(0,0,0,.3);overflow:hidden}
.app-icon-img{padding:0!important}
.app-icon-img img{width:100%;height:100%;object-fit:cover;border-radius:10px}
.app-card span{font-size:.72rem;color:var(--text-2);text-align:center}

/* ── 21. NOTES ─────────────────────────────────────────────── */
.notes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}
.notes-empty{font-size:.8rem;color:var(--text-3);font-family:var(--mono);text-align:center;padding:2rem}
.note-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:1rem;display:flex;flex-direction:column;gap:.5rem;animation:msgIn .3s var(--ease-out)}
.note-card-title{font-size:.85rem;font-weight:600;color:var(--text)}
.note-card-body{font-size:.78rem;color:var(--text-2);line-height:1.5;flex:1}
.note-card-footer{display:flex;justify-content:space-between;align-items:center}
.note-card-date{font-size:.62rem;color:var(--text-3);font-family:var(--mono)}
.note-delete{color:var(--text-3);transition:color .2s;font-size:.75rem;padding:.2rem;touch-action:manipulation}
.note-delete:hover,.note-delete:active{color:var(--error)}
.mic-btn-inline{width:36px;height:36px;border:1px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-2);flex-shrink:0;transition:border-color .2s,color .2s;touch-action:manipulation}
.mic-btn-inline:hover,.mic-btn-inline:active{border-color:var(--accent);color:var(--accent)}
.mic-btn-inline.recording{border-color:var(--error);color:var(--error);animation:micPulse 1s ease-in-out infinite}

/* ── 22. REMINDERS ─────────────────────────────────────────── */
.reminders-add{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);margin-bottom:.5rem}
.reminders-list{display:flex;flex-direction:column;gap:.5rem}
.reminder-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);animation:msgIn .3s var(--ease-out)}
.reminder-check{width:18px;height:18px;border-radius:50%;border:1px solid var(--accent);flex-shrink:0;cursor:pointer;transition:background .2s;touch-action:manipulation}
.reminder-check.checked{background:var(--accent)}
.reminder-text{flex:1;font-size:.82rem;color:var(--text)}
.reminder-time{font-family:var(--mono);font-size:.65rem;color:var(--text-3)}
.reminder-delete{color:var(--text-3);transition:color .2s;padding:.2rem;touch-action:manipulation}
.reminder-delete:hover,.reminder-delete:active{color:var(--error)}

/* ── 23. SETTINGS PAGE ─────────────────────────────────────── */
.settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.75rem}
.settings-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:1rem;display:flex;flex-direction:column;gap:.6rem}
.settings-card-icon{font-size:1.5rem}
.settings-notice-text{font-size:.78rem;color:var(--success);line-height:1.5}
.settings-label{font-family:var(--mono);font-size:.65rem;letter-spacing:.08em;color:var(--text-3);text-transform:uppercase}
.settings-status{font-family:var(--mono);font-size:.7rem;min-height:1.2em}
.settings-status.ok{color:var(--success)}
.settings-status.err{color:var(--error)}
.settings-select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%234d8cff' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2.2rem;cursor:pointer}
.settings-select option{background:#0a1020}

/* ── 24. TRANSLATOR ─────────────────────────────────────────── */
.translator-layout{display:flex;gap:1rem;align-items:flex-start;flex:1}
.translator-box{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);display:flex;flex-direction:column;overflow:hidden;min-height:220px}
.translator-box--result{border-color:rgba(77,140,255,.2)}
.translator-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem .85rem;border-bottom:1px solid var(--border);background:var(--surface-3)}
.translator-lang-select{background:none;border:none;outline:none;font-family:var(--mono);font-size:.72rem;color:var(--accent);cursor:pointer;flex:1;letter-spacing:.04em}
.translator-lang-select option{background:#0a1020;color:var(--text)}
.translator-copy,.translator-btn-speak{background:none;border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-3);font-size:.7rem;padding:.3rem .6rem;display:flex;align-items:center;gap:.3rem;transition:border-color .2s,color .2s;cursor:pointer;white-space:nowrap;touch-action:manipulation}
.translator-copy:hover,.translator-btn-speak:hover{border-color:var(--border-glow);color:var(--accent)}
.translator-textarea{flex:1;background:none;border:none;outline:none;padding:.85rem;font-size:16px;color:var(--text);line-height:1.6;resize:none;min-height:140px;-webkit-overflow-scrolling:touch}
.translator-textarea::placeholder{color:var(--text-3)}
.translator-actions{display:flex;align-items:center;justify-content:space-between;padding:.5rem .85rem;border-top:1px solid var(--border);background:var(--surface-3)}
.translator-count{font-family:var(--mono);font-size:.65rem;color:var(--text-3)}
.translator-result{flex:1;padding:.85rem;min-height:140px;font-size:.88rem;line-height:1.6;color:var(--text);overflow-y:auto;-webkit-overflow-scrolling:touch}
.translator-text{display:block}
.translator-placeholder{color:var(--text-3);font-style:italic;font-size:.83rem}
.translator-loading{display:flex;gap:5px;align-items:center;padding:.5rem 0}
.translator-speak{padding:.4rem .85rem;border-top:1px solid var(--border);background:var(--surface-3)}
.translator-arrow{flex-shrink:0;color:var(--accent);opacity:.5;margin-top:80px}
.translator-quick{margin-top:.75rem}
.translator-quick-label{font-family:var(--mono);font-size:.65rem;letter-spacing:.1em;color:var(--text-3);text-transform:uppercase;margin-bottom:.5rem}
.translator-quick-grid{display:flex;flex-wrap:wrap;gap:.4rem}
.translator-quick-btn{padding:.4rem .75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-pill);font-size:.72rem;color:var(--text-2);transition:border-color .2s,color .2s;cursor:pointer;touch-action:manipulation}
.translator-quick-btn:hover,.translator-quick-btn:active{border-color:var(--border-glow);color:var(--accent)}

/* ── 25. MODAL ─────────────────────────────────────────────── */
.modal{position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity .3s}
.modal.open{opacity:1;pointer-events:auto}
.modal-overlay{position:fixed;inset:0;background:rgba(5,8,16,.7);backdrop-filter:blur(4px);z-index:499;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.modal-overlay.open{opacity:1;visibility:visible}
.modal-card{background:#0c1428;border:1px solid var(--border);border-radius:var(--r-lg);padding:1.5rem;width:min(460px,calc(100vw - 2rem));display:flex;flex-direction:column;gap:.75rem;z-index:501;transform:translateY(10px) scale(.97);transition:transform .3s var(--ease-out)}
.modal.open .modal-card{transform:translateY(0) scale(1)}
.modal-header{display:flex;align-items:center;justify-content:space-between}
.modal-title{font-family:var(--display);font-size:.9rem;font-weight:600;letter-spacing:.06em;color:var(--text)}
.modal-close{width:32px;height:32px;border-radius:50%;border:1px solid var(--border);color:var(--text-2);display:flex;align-items:center;justify-content:center;transition:border-color .2s,color .2s;touch-action:manipulation}
.modal-close:hover,.modal-close:active{border-color:var(--error);color:var(--error)}
.modal-actions{display:flex;gap:.5rem;justify-content:flex-end}
.note-modal-mic{display:flex;align-items:center;gap:.5rem}

/* ── 26. SIDEBAR OVERLAY ───────────────────────────────────── */
.sb-overlay{position:fixed;inset:0;background:rgba(5,8,16,.6);z-index:49;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.sb-overlay.open{opacity:1;visibility:visible}

/* ── 27. LOGIN SCREEN ──────────────────────────────────────── */
.login-screen{position:fixed;inset:0;background:var(--bg);z-index:900;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:opacity .8s,visibility .8s}
.login-screen.hidden{opacity:0;visibility:hidden;pointer-events:none}
.login-bg-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(0,180,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(0,180,255,.05) 1px,transparent 1px);background-size:60px 60px;animation:gridScroll 20s linear infinite;mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,black 20%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,black 20%,transparent 100%)}
.login-scan{position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,rgba(0,220,255,.4),rgba(0,220,255,.8),rgba(0,220,255,.4),transparent);animation:scanMove 6s ease-in-out infinite;pointer-events:none}
.login-brackets{position:absolute;inset:20px;pointer-events:none}
.lb{position:absolute;width:50px;height:50px;opacity:.3;animation:bracketPulse 3s ease-in-out infinite}
.lb-tl{top:0;left:0;border-top:1px solid var(--cyan);border-left:1px solid var(--cyan)}
.lb-tr{top:0;right:0;border-top:1px solid var(--cyan);border-right:1px solid var(--cyan);animation-delay:.75s}
.lb-bl{bottom:0;left:0;border-bottom:1px solid var(--accent);border-left:1px solid var(--accent);animation-delay:1.5s}
.lb-br{bottom:0;right:0;border-bottom:1px solid var(--accent);border-right:1px solid var(--accent);animation-delay:2.25s}
.login-stream{position:absolute;top:0;bottom:0;width:1px;overflow:hidden;pointer-events:none}
.login-stream::after{content:"";position:absolute;top:-120px;left:0;right:0;height:120px;background:linear-gradient(to bottom,transparent,var(--accent),var(--cyan),transparent);animation:streamFall var(--dur,7s) var(--delay,0s) linear infinite;opacity:.12}
@keyframes streamFall{0%{top:-120px}100%{top:100vh}}
.login-card{position:relative;z-index:10;width:min(420px,calc(100vw - 2rem));background:rgba(8,14,28,.88);border:1px solid var(--border);border-radius:20px;padding:2.5rem 2rem;display:flex;flex-direction:column;align-items:center;gap:1rem;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 0 60px rgba(0,140,255,.08);animation:cardAppear .8s var(--ease-out) both}
@keyframes cardAppear{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
.login-logo-wrap{position:relative;width:90px;height:90px;display:flex;align-items:center;justify-content:center;margin-bottom:.25rem}
.login-logo-ring{position:absolute;inset:0;border-radius:50%;border:1px solid transparent}
.login-logo-ring--1{border-color:rgba(0,200,255,.2);animation:orbSpin 8s linear infinite}
.login-logo-ring--2{inset:8px;border-color:rgba(77,140,255,.15);animation:orbSpin 5s linear infinite reverse}
.login-logo-img{width:56px;height:56px;object-fit:contain;filter:drop-shadow(0 0 12px rgba(0,200,255,.8));animation:logoGlow 3s ease-in-out infinite;position:relative;z-index:1}
.login-title{font-family:var(--display);font-size:2rem;font-weight:900;letter-spacing:.15em;background:linear-gradient(135deg,var(--text) 0%,var(--accent) 60%,var(--cyan) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin:0}
.login-subtitle{font-family:var(--mono);font-size:.72rem;letter-spacing:.2em;color:var(--text-3);text-transform:uppercase;margin-top:-.5rem}
.login-divider{display:flex;align-items:center;gap:.5rem;width:100%}
.login-divider span:first-child,.login-divider span:last-child{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--border))}
.login-divider span:last-child{background:linear-gradient(90deg,var(--border),transparent)}
.login-divider-dot{width:4px;height:4px;border-radius:50%;background:var(--accent);flex:none!important;animation:statusPulse 2s ease-in-out infinite}
.login-label{font-family:var(--mono);font-size:.65rem;letter-spacing:.15em;color:var(--text-3);align-self:flex-start;margin-bottom:-.5rem}
.login-input-wrap{position:relative;width:100%}
.login-input{width:100%;background:rgba(15,25,50,.6);border:1px solid var(--border);border-radius:var(--r-md);padding:.85rem 1.1rem;font-family:var(--mono);font-size:16px;letter-spacing:.2em;color:var(--text);outline:none;text-align:center;transition:border-color .2s,box-shadow .2s}
.login-input:focus{border-color:var(--border-glow);box-shadow:0 0 0 3px var(--accent-glow)}
.login-input::placeholder{color:var(--text-3);letter-spacing:.1em;font-size:.9rem}
.login-input-line{position:absolute;bottom:0;left:20%;right:20%;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);opacity:0;transition:opacity .3s}
.login-input:focus + .login-input-line{opacity:.6}
.login-btn{width:100%;padding:.9rem 1.5rem;background:linear-gradient(135deg,var(--accent),var(--accent-2));border:none;border-radius:var(--r-md);color:#fff;font-family:var(--display);font-size:.85rem;font-weight:700;letter-spacing:.15em;display:flex;align-items:center;justify-content:center;gap:.6rem;transition:opacity .2s,transform .2s,box-shadow .2s;box-shadow:0 4px 20px rgba(77,140,255,.3);margin-top:.25rem;touch-action:manipulation;min-height:52px}
.login-btn:hover{opacity:.9;transform:translateY(-1px)}
.login-btn:active{transform:scale(.97)}
.login-btn.loading{opacity:.6;pointer-events:none}
.login-btn-arrow{transition:transform .2s}
.login-btn:hover .login-btn-arrow{transform:translateX(3px)}
.login-error{font-family:var(--mono);font-size:.72rem;color:var(--error);min-height:1.2em;text-align:center;letter-spacing:.05em}
.login-footer{margin-top:.5rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.4rem;padding-top:1rem;border-top:1px solid var(--border);width:100%}
.login-footer-text{font-size:.72rem;color:var(--text-3);font-family:var(--mono)}
.login-contact{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--mono);font-size:.72rem;color:var(--accent);transition:color .2s,gap .2s;touch-action:manipulation}
.login-contact:hover,.login-contact:active{color:var(--cyan);gap:.6rem}
@keyframes loginShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-8px)}40%{transform:translateX(8px)}60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}

/* ── 28. RESPONSIVE ─────────────────────────────────────────── */
@media (max-width:1100px){
  .widgets{width:210px}
}
@media (max-width:900px){
  :root{--sidebar-w:200px}
  .widgets{display:none}
  .suggestions-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:700px){
  :root{--sidebar-w:260px;--topbar-h:54px}
  .sidebar{position:fixed;top:0;left:0;bottom:0;z-index:200;transform:translateX(-100%);box-shadow:4px 0 24px rgba(0,0,0,.5);padding-bottom:env(safe-area-inset-bottom,0)}
  .sidebar.open{transform:translateX(0)}
  .topbar-menu{display:flex}
  .topbar{padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}
  .worker-pill{display:none}
  .content{width:100%}
  .home-layout{flex-direction:column;overflow:visible;min-height:0}
  .orb-container{width:80px;height:80px}
  .orb-letter{font-size:.85rem}
  .greeting-text{font-size:1.4rem}
  .suggestions-grid{grid-template-columns:1fr}
  .conversation{max-height:none;-webkit-overflow-scrolling:touch}
  .chat-input-area{padding-bottom:env(safe-area-inset-bottom,0);position:sticky;bottom:0;background:var(--bg);padding-top:.5rem}
  .section{padding:1rem;padding-bottom:max(1rem,env(safe-area-inset-bottom))}
  .settings-grid{grid-template-columns:1fr}
  .clock-big{font-size:3rem}
  .clock-zones{grid-template-columns:1fr 1fr;gap:.4rem}
  .apps-full-grid{grid-template-columns:repeat(4,1fr);gap:.5rem}
  .app-card{padding:.7rem .3rem}
  .app-card-icon{width:42px;height:42px;border-radius:12px}
  .app-card span{font-size:.62rem}
  .notes-grid{grid-template-columns:1fr}
  .news-categories{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.25rem;scrollbar-width:none}
  .news-categories::-webkit-scrollbar{display:none}
  .news-cat{white-space:nowrap;flex-shrink:0}
  .translator-layout{flex-direction:column}
  .translator-arrow{display:none}
  .translator-box{min-height:150px}
  .translator-textarea,.translator-result{min-height:100px}
  .login-card{padding:2rem 1.25rem;margin:0 .75rem}
  .login-title{font-size:1.7rem}
  .modal-card{width:calc(100vw - 2rem);padding:1.25rem}
}
@media (max-width:380px){
  .apps-full-grid{grid-template-columns:repeat(3,1fr)}
  .clock-big{font-size:2.5rem}
  .greeting-text{font-size:1.2rem}
}
@media (max-width:700px) and (orientation:landscape){
  .orb-container{display:none}
  .home-greeting{display:none}
  .conversation{max-height:50vh}
  .suggestions{display:none}
}
@media (display-mode:standalone){
  .topbar{padding-top:max(.5rem,env(safe-area-inset-top))}
  .chat-input-area{padding-bottom:max(.5rem,env(safe-area-inset-bottom))}
}
@media (prefers-reduced-motion:reduce){
  .orb-ring--outer,.orb-ring--mid,.orb-ring--inner,.holo-ring-1,.holo-ring-2,.holo-ring-3,.login-logo-ring--1,.login-logo-ring--2,.bg-grid,.login-bg-grid,.login-scan,.scan-line{animation:none}
}

/* ── NEWS MOBILE FIX ────────────────────────────────────── */
#section-news {
  display: none;
  flex-direction: column;
  gap: .75rem;
  overflow: hidden; /* prevent inner overflow */
}
#section-news.active {
  display: flex;
}
.news-categories {
  flex-shrink: 0; /* never shrink - always visible */
  position: sticky;
  top: 0;
  z-index: 10;
  background: var(--bg);
  padding: .5rem 0;
  margin: -.5rem 0 0;
}
#newsFullList {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  min-height: 0;
}
@media (max-width: 700px) {
  .news-categories {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: .35rem;
  }
  .news-categories::-webkit-scrollbar { display: none; }
  .news-cat { white-space: nowrap; flex-shrink: 0; }
}

/* ── Limpiar chat ───────────────────────────────────────── */
.btn-clear-chat{display:flex;align-items:center;gap:6px;margin:4px auto 10px;padding:6px 14px;font-size:12px;font-weight:500;color:var(--text-dim,#8b93a7);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.10);border-radius:20px;cursor:pointer;transition:all .18s ease;font-family:inherit}
.btn-clear-chat:hover{color:#ff6b6b;background:rgba(255,90,90,.08);border-color:rgba(255,90,90,.30)}
.btn-clear-chat svg{flex:0 0 auto}
.sidebar-brand:hover .sb-logo{filter:drop-shadow(0 0 8px rgba(78,161,255,.5));transition:filter .2s ease}
.sidebar-brand:focus-visible{outline:2px solid var(--accent,#4ea1ff);outline-offset:3px;border-radius:8px}

/* ── Conversaciones (estilo ChatGPT) ────────────────────── */
.conv-toolbar{display:flex;gap:8px;justify-content:center;margin:4px auto 10px;flex-wrap:wrap}
.conv-tbtn{display:flex;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:500;color:var(--text-dim,#8b93a7);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.10);border-radius:20px;cursor:pointer;transition:all .18s ease;font-family:inherit}
.conv-tbtn:hover{color:var(--accent,#4ea1ff);background:rgba(78,161,255,.08);border-color:rgba(78,161,255,.30)}
.conv-tbtn svg{flex:0 0 auto}
.conv-panel{max-width:760px;margin:0 auto 12px;background:var(--surface-3,rgba(10,18,40,.9));border:1px solid rgba(80,140,255,.18);border-radius:12px;overflow:hidden}
.conv-panel-head{padding:9px 14px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim,#8b93a7);border-bottom:1px solid rgba(255,255,255,.06)}
.conv-list{max-height:280px;overflow-y:auto}
.conv-empty{padding:18px;text-align:center;font-size:13px;color:var(--text-dim,#8b93a7)}
.conv-item{display:flex;align-items:center;gap:8px;padding:10px 14px;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.04);transition:background .15s}
.conv-item:hover{background:rgba(78,161,255,.06)}
.conv-item.active{background:rgba(78,161,255,.12)}
.conv-title{flex:1;font-size:13px;color:var(--text,#e8edf8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conv-del{flex:0 0 auto;width:22px;height:22px;border-radius:6px;border:none;background:transparent;color:var(--text-dim,#8b93a7);cursor:pointer;font-size:13px;line-height:1;transition:all .15s}
.conv-del:hover{color:#ff6b6b;background:rgba(255,90,90,.10)}

/* ── Línea de autoría bajo el saludo ────────────────────── */
.greeting-creator{margin-top:8px;font-family:var(--mono,'JetBrains Mono',monospace);font-size:11px;letter-spacing:.06em;color:var(--text-3,#4a5a80);opacity:.85}
.greeting-creator::before{content:"◆ ";color:var(--accent,#4d8cff);opacity:.6}

/* ── Botones de editar (notas y recordatorios) ──────────── */
.note-edit,.reminder-edit{background:none;border:none;color:var(--text-3,#5a6a90);cursor:pointer;font-size:13px;padding:2px 6px;border-radius:6px;transition:all .15s;margin-right:2px}
.note-edit:hover,.reminder-edit:hover{color:var(--accent,#4d8cff);background:rgba(77,140,255,.12)}