/* Reglas del TOMMX.html original necesarias para el HTML que genera el JS (proyectos, toasts, chat, placeholders). */
.user-dropdown{position:absolute; top:50px; right:0; background:var(--surface); border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow-lg); min-width:200px; display:none; z-index:1000;}
.user-dropdown.show{display:block}
.user-dropdown-item{padding:12px 20px; cursor:pointer; transition:all 0.2s; display:flex; align-items:center; gap:10px; color:var(--text);}
.user-dropdown-item:first-child{border-radius:12px 12px 0 0}
.user-dropdown-item:last-child{border-radius:0 0 12px 12px}
.user-dropdown-item:hover{background:var(--surface-hover)}
.user-dropdown-item.danger{color:var(--danger)}
.user-dropdown-item.danger:hover{background:rgba(239,68,68,0.1)}
.stats-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px; margin-bottom:30px;}
.stat-card{background:linear-gradient(135deg,var(--bg) 0%,var(--surface) 100%); padding:24px; border-radius:12px; border:1px solid var(--line); transition:all 0.3s; position:relative; overflow:hidden;}
.stat-card::before{content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--primary),#8b5cf6); opacity:0; transition:opacity 0.3s;}
.stat-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-lg); border-color:var(--primary);}
.stat-card:hover::before{opacity:1}
.stat-value{font-size:36px; font-weight:800; background:linear-gradient(135deg,var(--primary) 0%,#8b5cf6 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; margin-bottom:8px; letter-spacing:-1px;}
.stat-label{font-size:13px; color:var(--muted); font-weight:500; text-transform:uppercase; letter-spacing:0.5px;}
.placeholder{text-align:center; padding:80px 20px; color:var(--muted);}
.placeholder-icon{font-size:64px; margin-bottom:20px; opacity:0.3;}
.docs-sidebar{position:fixed; right:0; top:0; width:380px; height:100vh; background:var(--surface); border-left:2px solid var(--line); box-shadow:-4px 0 20px rgba(0,0,0,0.3); transform:translateX(100%); transition:transform 0.3s cubic-bezier(0.4,0,0.2,1); z-index:200; display:flex; flex-direction:column;}
.docs-sidebar.open{transform:translateX(0)}
.docs-header{padding:20px; border-bottom:2px solid var(--line); display:flex; justify-content:space-between; align-items:center; background:linear-gradient(135deg,var(--surface) 0%,var(--bg) 100%);}
.docs-header h3{margin:0; font-size:18px; border:none; padding:0;}
.docs-close{background:none; border:none; color:var(--text); font-size:24px; cursor:pointer; padding:5px 10px; border-radius:6px; transition:all 0.2s;}
.docs-close:hover{background:var(--surface-hover)}
.docs-list{flex:1; overflow-y:auto; padding:15px;}
.doc-item{background:var(--bg); border:1px solid var(--line); border-radius:10px; padding:15px; margin-bottom:12px; transition:all 0.2s; cursor:pointer;}
.doc-item:hover{border-color:var(--primary); transform:translateX(-3px); box-shadow:var(--shadow);}
.doc-item.verified{border-left:4px solid var(--success)}
.doc-item.error{border-left:4px solid var(--danger)}
.doc-location{font-size:12px; color:var(--muted); margin-bottom:5px;}
.doc-vrid{font-size:16px; font-weight:700; color:var(--text); margin-bottom:8px;}
.doc-status{display:flex; align-items:center; gap:6px; font-size:13px; margin-bottom:8px;}
.doc-status.success{color:var(--success)}
.doc-status.error{color:var(--danger)}
.doc-plates{font-size:12px; color:var(--muted); margin-bottom:8px;}
.doc-time{font-size:11px; color:var(--muted);}
.docs-toggle{position:fixed; right:20px; bottom:20px; width:60px; height:60px; border-radius:50%; background:linear-gradient(135deg,var(--primary) 0%,#8b5cf6 100%); color:white; border:none; font-size:24px; cursor:pointer; box-shadow:var(--shadow-lg); transition:all 0.3s; z-index:150; display:flex; align-items:center; justify-content:center;}
.docs-toggle:hover{transform:scale(1.1) rotate(5deg); box-shadow:0 8px 25px rgba(59,130,246,0.4);}
.docs-badge{position:absolute; top:-5px; right:-5px; background:var(--danger); color:white; border-radius:50%; width:24px; height:24px; font-size:12px; font-weight:700; display:flex; align-items:center; justify-content:center; border:2px solid var(--surface);}
#sona-fab{position:fixed;bottom:22px;right:22px;width:56px;height:56px;border-radius:50%; background:linear-gradient(135deg,#8b5cf6,#6366f1);color:#fff;font-size:26px;display:flex; align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 16px rgba(0,0,0,.4);z-index:9998}
#sona-fab:hover{transform:scale(1.06)}
#sona-panel{position:fixed;bottom:90px;right:22px;width:380px;max-width:92vw;height:520px;max-height:75vh; background:var(--surface,#1b1f2a);border:1px solid var(--line,#333);border-radius:14px;display:none; flex-direction:column;overflow:hidden;z-index:9999;box-shadow:0 8px 32px rgba(0,0,0,.5)}
#sona-panel.open{display:flex}
#sona-panel-head{background:linear-gradient(135deg,#8b5cf6,#6366f1);color:#fff;padding:12px 14px; display:flex;justify-content:space-between;align-items:center;font-size:14px}
#sona-msgs{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px; background:var(--bg,#11141c)}
.scp-msg{max-width:85%;padding:9px 12px;border-radius:12px;font-size:13.5px;line-height:1.45;white-space:normal}
.scp-user{align-self:flex-end;background:rgba(99,102,241,.25);border:1px solid rgba(99,102,241,.4); color:var(--text,#e8e8e8);border-radius:12px 12px 0 12px}
.scp-sona{align-self:flex-start;background:rgba(139,92,246,.15);border:1px solid rgba(139,92,246,.35); color:var(--text,#e8e8e8);border-radius:12px 12px 12px 0}
#sona-input-row{display:flex;gap:6px;padding:10px;border-top:1px solid var(--line,#333);background:var(--surface,#1b1f2a)}
#sona-q{flex:1;padding:10px;border-radius:20px;border:1px solid var(--line,#333);background:var(--bg,#11141c); color:var(--text,#e8e8e8);font-size:13.5px;outline:none}
#sona-send{width:40px;border:none;border-radius:50%;background:#8b5cf6;color:#fff;cursor:pointer;font-size:15px}
#sona-send:disabled{opacity:.5;cursor:default}
.user-dropdown{top:52px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-lg);overflow:hidden}
.stats-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:14px;margin-bottom:24px}
.stat-card{min-height:132px; display:flex; flex-direction:column; justify-content:center; padding:20px; border:1px solid var(--line) !important; border-radius:var(--radius-md); background:linear-gradient(145deg,var(--surface-raised),color-mix(in srgb,var(--surface) 94%,var(--primary) 6%)) !important; box-shadow:inset 0 1px 0 rgba(255,255,255,.04);}
.stat-card::before{height:3px;opacity:1;background:linear-gradient(90deg,var(--primary),var(--accent))}
.stat-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--primary) 42%,var(--line)) !important;box-shadow:0 16px 32px rgba(0,0,0,.15)}
.stat-value{font-size:clamp(28px,3vw,38px); line-height:1.1; font-variant-numeric:tabular-nums; letter-spacing:-.045em; background:linear-gradient(110deg,var(--text),color-mix(in srgb,var(--primary) 70%,var(--text))) !important; -webkit-background-clip:text !important; background-clip:text !important;}
.stat-label{margin-top:8px;color:var(--muted);font-size:11px;font-weight:750;letter-spacing:.055em;text-transform:uppercase}
.placeholder{min-height:220px;border:1px dashed var(--line-strong);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface-raised) 70%,transparent)}
.scp-msg{padding:10px 13px;border-radius:14px;font-size:13.5px;box-shadow:0 5px 18px rgba(0,0,0,.08)}
.scp-user{background:linear-gradient(135deg,rgba(14,165,233,.22),rgba(99,102,241,.18));border-color:rgba(56,189,248,.28)}
.scp-sona{background:color-mix(in srgb,var(--surface-raised) 88%,var(--accent) 12%);border-color:rgba(129,140,248,.24)}
.docs-sidebar{width:min(400px,100vw);border-left:1px solid var(--line);background:var(--surface);box-shadow:-20px 0 60px rgba(0,0,0,.28)}
.docs-header{background:var(--surface-raised);border-bottom:1px solid var(--line)}
.doc-item{background:var(--surface-raised);border-color:var(--line);border-radius:12px}
.docs-toggle,#sona-fab{border:1px solid rgba(255,255,255,.18); background:linear-gradient(135deg,var(--primary-dark),var(--accent)); box-shadow:0 14px 34px rgba(14,165,233,.26);}
#sona-panel{border-color:var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow-lg)}
#sona-panel-head{padding:14px 16px;background:linear-gradient(135deg,var(--primary-dark),var(--accent))}
#sona-msgs{padding:14px;background:var(--bg)}
#sona-input-row{padding:12px;background:var(--surface)}
#sona-q{min-height:42px}
#sona-send{min-width:42px;min-height:42px;background:linear-gradient(135deg,var(--primary-dark),var(--accent))}
@media (max-width:640px){
  .stat-card{min-height:112px}
  #sona-panel{right:8px;bottom:78px;width:calc(100vw - 16px);max-width:none;height:min(620px,76vh)}
  #sona-fab{right:14px;bottom:14px}
  .docs-toggle{right:14px;bottom:14px}
}
@keyframes tomRise{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
.stat-card{position:relative}
.stat-card::after{content:""; position:absolute; inset:0; border-radius:inherit; padding:1px; background:linear-gradient(150deg,color-mix(in srgb,var(--primary) 55%,transparent),transparent 42%,color-mix(in srgb,var(--accent) 45%,transparent)); -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; opacity:0; transition:opacity .25s ease; pointer-events:none;}
.stat-card:hover::after{opacity:1}
.placeholder{position:relative;overflow:hidden}
.placeholder::after{content:""; position:absolute; inset:0; transform:translateX(-100%); background:linear-gradient(100deg,transparent 30%,color-mix(in srgb,var(--text) 4%,transparent) 50%,transparent 70%); animation:tomShimmer 2.6s ease-in-out infinite;}
@keyframes tomShimmer{to{transform:translateX(100%)}}
.placeholder-icon{filter:grayscale(.25);opacity:.85}
#sona-fab{animation:tomFabPulse 4.5s ease-in-out infinite}
@keyframes tomFabPulse{0%,100%{box-shadow:0 14px 34px rgba(14,165,233,.26)} 50%{box-shadow:0 14px 40px rgba(99,102,241,.42),0 0 0 8px rgba(99,102,241,.07)}}
#sona-fab:hover,.docs-toggle:hover{transform:scale(1.07)}
.scp-msg{animation:tomRise .22s ease-out both}
#chat-messages{scroll-behavior:smooth}
.docs-sidebar{backdrop-filter:blur(20px) saturate(130%);-webkit-backdrop-filter:blur(20px) saturate(130%);background:color-mix(in srgb,var(--surface) 92%,transparent)}
.doc-item:hover{transform:translateX(-2px)}
.stat-value{text-shadow:0 1px 0 rgba(0,0,0,.08)}
.user-card{display:flex; align-items:center; gap:12px; margin:6px; padding:12px; border:1px solid var(--line); border-radius:12px; background:linear-gradient(145deg,var(--surface-raised),color-mix(in srgb,var(--surface) 92%,var(--primary) 8%));}
.user-card img{width:44px; height:44px; border-radius:50%; border:2px solid var(--line-strong); object-fit:cover;}
.user-card-name{font-size:14px;font-weight:750;letter-spacing:-.01em}
.user-card-mail{color:var(--muted);font-size:11.5px;word-break:break-all}
.user-dropdown{min-width:250px;padding-bottom:6px}
.user-dropdown-item{border-radius:10px !important;margin:0 6px}
#toast-host{position:fixed; top:18px; left:50%; transform:translateX(-50%); z-index:12000; display:flex; flex-direction:column; align-items:center; gap:10px; pointer-events:none;}
.toast{min-width:260px; max-width:min(92vw,500px); padding:13px 18px; border:1px solid var(--line-strong); border-left:4px solid var(--primary); border-radius:12px; background:var(--surface); color:var(--text); font-size:13.5px; font-weight:600; line-height:1.5; white-space:pre-line; box-shadow:var(--shadow-lg); animation:toastIn .25s ease-out; pointer-events:auto;}
.toast-success{border-left-color:var(--success)}
.toast-error{border-left-color:var(--danger)}
.toast.out{opacity:0;transform:translateY(-8px);transition:opacity .3s ease,transform .3s ease}
@keyframes toastIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
#backToTop{position:fixed; left:20px; bottom:20px; width:44px; height:44px; border:1px solid var(--line-strong); border-radius:50%; background:var(--surface); color:var(--muted); font-size:15px; cursor:pointer; box-shadow:var(--shadow-lg); opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .25s ease,transform .25s ease,visibility .25s,color .2s,border-color .2s; z-index:900;}
#backToTop.show{opacity:1;visibility:visible;transform:none}
#backToTop:hover{border-color:var(--primary);color:var(--primary)}
.refresh-btn{width:42px; height:42px; flex-shrink:0; display:grid; place-items:center; border:1px solid var(--line-strong); border-radius:11px; background:var(--surface-raised); color:var(--muted); font-size:14px; cursor:pointer; transition:color .2s ease,border-color .2s ease,transform .3s ease;}
.proj-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr)); gap:16px;}
.proj-card{display:flex; flex-direction:column; gap:10px; padding:18px; border:1px solid var(--line); border-radius:var(--radius-md); background:linear-gradient(150deg,var(--surface-raised),color-mix(in srgb,var(--surface) 94%,var(--primary) 6%)); transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease;}
.proj-card:hover{transform:translateY(-2px); border-color:color-mix(in srgb,var(--primary) 40%,var(--line)); box-shadow:0 14px 30px rgba(0,0,0,.14);}
.proj-card h4{margin:0;font-size:16px;font-weight:750;letter-spacing:-.015em;color:var(--text)}
.proj-card > p{margin:0;color:var(--muted);font-size:13px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.proj-card-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.proj-meta{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--muted);font-size:12px}
.proj-meta i{color:var(--primary);margin-right:4px;font-size:11px}
.proj-team{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.proj-chip{display:inline-flex; align-items:center; gap:5px; padding:3px 10px; border:1px solid var(--line); border-radius:999px; background:var(--surface); color:var(--text); font-size:11.5px; font-weight:650;}
.proj-cat{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 35%,transparent);background:color-mix(in srgb,var(--primary) 9%,transparent)}
.proj-open{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent);background:color-mix(in srgb,var(--accent) 10%,transparent)}
.proj-appl{border-style:dashed}
.proj-appl b{cursor:pointer;color:var(--success);font-weight:900}
.proj-appl b.proj-reject{color:var(--danger)}
.proj-user-link{color:inherit; text-decoration:none; border-bottom:1px dotted color-mix(in srgb,var(--muted) 55%,transparent); transition:color .15s ease,border-color .15s ease;}
.proj-user-link:hover{color:var(--primary);border-bottom-color:var(--primary)}
.proj-status-on{color:var(--success);border-color:color-mix(in srgb,var(--success) 40%,transparent);background:color-mix(in srgb,var(--success) 10%,transparent)}
.proj-status-hold{color:var(--warning);border-color:color-mix(in srgb,var(--warning) 40%,transparent);background:color-mix(in srgb,var(--warning) 10%,transparent)}
.proj-status-done{color:var(--muted)}
.proj-status-off{color:var(--danger); border-color:color-mix(in srgb,var(--danger) 45%,transparent); background:color-mix(in srgb,var(--danger) 9%,transparent); text-decoration:line-through;}
.proj-status-on[data-action],.proj-status-hold[data-action],.proj-status-done[data-action]{cursor:pointer}
.proj-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:8px}
.proj-btn{padding:8px 14px; border:1px solid var(--line-strong); border-radius:9px !important; background:var(--surface); color:var(--text); font-size:12.5px; font-weight:650 !important; cursor:pointer; min-height:34px !important;}
.proj-btn:hover{border-color:var(--primary);color:var(--primary)}
.proj-btn-primary{border:none; background:linear-gradient(135deg,var(--primary-dark),var(--primary)); color:#fff;}
.proj-btn-primary:hover{color:#fff;filter:brightness(1.1)}
.proj-btn-danger:hover{border-color:var(--danger);color:var(--danger)}
.proj-ai{margin:6px 0 16px; padding:16px; border:1px solid color-mix(in srgb,var(--accent) 38%,transparent); border-left:4px solid var(--accent); border-radius:var(--radius-md); background:color-mix(in srgb,var(--accent) 7%,transparent);}
.proj-ai-head{font-weight:700;font-size:13.5px;margin-bottom:12px;color:var(--text)}
.proj-ai-head i{color:var(--accent);margin-right:6px}
.proj-ai-match{display:flex; align-items:center; gap:12px; padding:10px 12px; margin-bottom:8px; border:1px solid var(--line); border-radius:11px; background:var(--surface);}
.proj-ai-why{color:var(--muted);font-size:12px;margin-top:3px}
.proj-life{display:flex; flex-direction:column; gap:6px; padding:9px 11px; border:1px solid var(--line); border-radius:10px; background:color-mix(in srgb,var(--surface) 60%,transparent); font-size:12px;}
.proj-life-row{display:flex;justify-content:space-between;align-items:center;gap:8px}
.proj-life-row span{color:var(--muted);font-weight:600}
.proj-life-row i{margin-right:5px}
.proj-life-bar{height:4px; border-radius:999px; background:color-mix(in srgb,var(--muted) 18%,transparent); overflow:hidden;}
.proj-life-bar i{display:block; height:100%; border-radius:999px; transition:width .4s ease;}
.proj-life-ok .proj-life-bar i{background:linear-gradient(90deg,var(--success),var(--primary))}
.proj-life-ok .proj-life-row i{color:var(--success)}
.proj-life-warn{border-color:color-mix(in srgb,var(--warning) 45%,transparent);background:color-mix(in srgb,var(--warning) 7%,transparent)}
.proj-life-warn .proj-life-bar i{background:var(--warning)}
.proj-life-warn .proj-life-row span{color:var(--warning)}
.proj-life-warn .proj-life-row i{color:var(--warning)}
.proj-life-over{border-color:color-mix(in srgb,var(--danger) 45%,transparent);background:color-mix(in srgb,var(--danger) 7%,transparent)}
.proj-life-over .proj-life-row span{color:var(--danger)}
.proj-life-over .proj-life-row i{color:var(--danger)}
.proj-life-none .proj-life-bar{display:none}
.proj-btn-renew{padding:5px 12px !important; min-height:28px !important; font-size:11.5px !important; border-color:currentColor; flex-shrink:0;}
.proj-appl-comment{margin-top:5px; padding:7px 11px; border-left:3px solid color-mix(in srgb,var(--accent) 55%,transparent); border-radius:0 8px 8px 0; background:color-mix(in srgb,var(--accent) 6%,transparent); color:var(--muted); font-size:12px; line-height:1.5;}
.proj-appl-comment b{color:var(--text)}
.proj-modal-overlay{position:fixed; inset:0; z-index:11000; display:grid; place-items:center; padding:16px; background:rgba(2,8,18,.55); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); animation:toastIn .18s ease-out;}
.proj-modal{width:min(480px,100%); padding:22px; border:1px solid var(--line-strong); border-radius:var(--radius-md); background:var(--surface); box-shadow:var(--shadow-lg);}
.proj-modal h4{margin:0 0 8px;font-size:17px;font-weight:750;color:var(--text)}
.proj-modal p{margin:0 0 14px;color:var(--muted);font-size:13px;line-height:1.55}
.proj-modal textarea{width:100%;margin-bottom:14px}
.proj-modal-actions{display:flex;justify-content:flex-end;gap:8px}
.proj-card{cursor:pointer}
.proj-stage-beta{color:#c4b5fd; border-color:rgba(139,92,246,.45); background:rgba(139,92,246,.14); font-weight:800; letter-spacing:.06em; text-transform:uppercase; font-size:10.5px;}
.proj-stage-prod{color:var(--success); border-color:color-mix(in srgb,var(--success) 45%,transparent); background:color-mix(in srgb,var(--success) 12%,transparent); font-weight:800; letter-spacing:.06em; text-transform:uppercase; font-size:10.5px;}
.proj-like{display:inline-flex;align-items:center;gap:6px}
.proj-like i{font-size:13px}
.proj-like.liked{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 50%,transparent);background:color-mix(in srgb,var(--danger) 8%,transparent)}
.proj-like.liked:hover{color:var(--danger);border-color:var(--danger)}
.proj-docview{padding:14px 16px; border:1px solid var(--line); border-radius:12px; background:color-mix(in srgb,var(--bg) 65%,var(--surface)); color:var(--text); font-size:13.5px; line-height:1.65; max-height:340px; overflow-y:auto; word-break:break-word;}
.proj-docview code{background:var(--surface-raised);padding:1px 5px;border-radius:5px;font-size:12px}
.proj-modal p code{background:var(--surface-raised);padding:1px 5px;border-radius:5px;font-size:11.5px}
.proj-life-beta{border-color:rgba(139,92,246,.4);background:rgba(139,92,246,.07)}
.proj-life-beta .proj-life-bar i{background:linear-gradient(90deg,#8b5cf6,#6366f1)}
.proj-life-beta .proj-life-row span{color:#a78bfa}
.proj-life-beta .proj-life-row i{color:#a78bfa}
.proj-detail{width:min(680px,100%); max-height:88vh; overflow-y:auto;}
.proj-shots{display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:10px; margin-bottom:14px;}
.proj-shots a{display:block;border:1px solid var(--line);border-radius:10px;overflow:hidden;transition:border-color .2s ease,transform .2s ease}
.proj-shots a:hover{border-color:var(--primary);transform:scale(1.02)}
.proj-shots img{display:block;width:100%;height:110px;object-fit:cover}
.proj-shot{position:relative}
.proj-shot-del{position:absolute; top:6px; right:6px; width:24px; height:24px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.25); border-radius:50%; background:rgba(2,8,18,.65); color:#fff; font-size:15px; line-height:1; cursor:pointer; transition:background .15s ease,transform .15s ease; flex-shrink:0;}
.proj-shot-del:hover{background:var(--danger);transform:scale(1.08)}
.proj-file{display:flex; align-items:center; gap:10px; padding:9px 12px; margin-bottom:6px; border:1px solid var(--line); border-radius:10px; background:color-mix(in srgb,var(--surface-raised) 80%,transparent); font-size:13px;}
.proj-file a{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--primary);text-decoration:none;font-weight:650}
.proj-file a:hover{text-decoration:underline}
.proj-file span{color:var(--muted);font-size:11.5px;flex-shrink:0}
.proj-file-ico{font-size:17px;flex-shrink:0}
@media (prefers-reduced-motion:reduce){
  #chat-messages{scroll-behavior:auto}
  .toast{animation:none !important}
}
