:root{
  --bg:#0f1117; --bg2:#161922; --card:#1b1f2a; --border:#2a2f3d;
  --text:#e8eaef; --text-dim:#9aa0aa; --text-faint:#5a606e;
  --verde:#27A638; --verde-dim:#1f8a2d; --verde-glow:rgba(39,166,56,.18);
  --rojo:#e85a4f; --amarillo:#f6c14d; --azul:#5aa7e8;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",system-ui,sans-serif;height:100%;-webkit-font-smoothing:antialiased}
body{display:flex;flex-direction:column;min-height:100vh}

/* LANDING */
.landing{flex:1;display:grid;place-items:center;padding:2rem}
.landing .box{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:3rem;max-width:520px;width:100%;text-align:center}
.landing h1{font-size:2rem;margin-bottom:.5rem;color:var(--verde)}
.landing p{color:var(--text-dim);margin-bottom:1.5rem}
.landing input{width:100%;background:var(--bg2);border:1px solid var(--border);color:var(--text);padding:1rem 1.25rem;border-radius:12px;font-size:1.05rem;margin-bottom:1rem}
.landing input:focus{outline:none;border-color:var(--verde);box-shadow:0 0 0 3px var(--verde-glow)}
.landing button{width:100%;background:var(--verde);color:white;border:none;padding:1rem;border-radius:12px;font-size:1.05rem;font-weight:600;cursor:pointer}
.landing button:hover{background:var(--verde-dim)}
.landing .help{margin-top:1.5rem;font-size:.85rem;color:var(--text-faint)}

/* HEADER */
header{background:var(--bg2);border-bottom:1px solid var(--border);padding:.75rem 1.5rem;display:flex;align-items:center;gap:1.5rem;min-height:64px}
header .logo{font-weight:700;color:var(--verde);font-size:1.05rem;display:flex;align-items:center;gap:.5rem}
header .logo::before{content:"";width:10px;height:10px;background:var(--verde);border-radius:50%;box-shadow:0 0 14px var(--verde)}
header .user{display:flex;align-items:center;gap:.6rem;padding-left:1.5rem;border-left:1px solid var(--border)}
header .user-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--verde),#5cd96d);display:grid;place-items:center;font-weight:700;color:#0a0f12}
header .user-name{font-weight:600}
header .user-role{font-size:.75rem;color:var(--text-dim)}
header .spacer{flex:1}
header .timer{background:var(--bg);border:1px solid var(--border);padding:.4rem .85rem;border-radius:8px;font-size:.85rem;color:var(--text-dim);font-variant-numeric:tabular-nums}
header .timer strong{color:var(--text)}
header .admin-badge{background:rgba(232,90,79,.15);color:var(--rojo);border:1px solid rgba(232,90,79,.3);padding:.25rem .6rem;border-radius:6px;font-size:.7rem;font-weight:700;letter-spacing:.5px}

/* LAYOUT */
.app{flex:1;display:grid;grid-template-columns:280px 1fr;height:calc(100vh - 64px);overflow:hidden}
.sidebar{background:var(--bg2);border-right:1px solid var(--border);padding:1rem;overflow-y:auto;display:flex;flex-direction:column;gap:.25rem}
.sidebar .section{font-size:.7rem;color:var(--text-faint);text-transform:uppercase;letter-spacing:1px;padding:.75rem .5rem .25rem;font-weight:600}
.tool{display:flex;align-items:center;gap:.75rem;padding:.7rem .8rem;border-radius:10px;cursor:pointer;transition:background .15s;color:var(--text);user-select:none}
.tool:hover{background:var(--card)}
.tool.active{background:var(--verde-glow);color:var(--verde)}
.tool .icon{font-size:1.3rem;width:26px;text-align:center}
.tool .label{font-size:.92rem;font-weight:500}
.tool .arrow{margin-left:auto;color:var(--text-faint);font-size:.85rem}

/* MAIN — solo una view visible a la vez */
.main{display:flex;flex-direction:column;overflow:hidden;position:relative}
.view{display:none;flex:1;overflow-y:auto}
.view.active{display:flex;flex-direction:column}
.view-pad{padding:2rem;max-width:1100px;width:100%;margin:0 auto}
.view h1{margin-bottom:.5rem;color:var(--text);font-size:1.7rem}
.view .lead{color:var(--text-dim);margin-bottom:1.5rem;font-size:.95rem;line-height:1.5}

/* CHAT */
.chat-wrap{flex:1;display:flex;flex-direction:column;overflow:hidden}
.messages{flex:1;overflow-y:auto;padding:1.5rem 2rem;display:flex;flex-direction:column;gap:1.5rem}
.chat-empty{flex:1;display:grid;place-items:center;padding:2rem;text-align:center;color:var(--text-dim)}
.chat-empty h2{color:var(--text);margin-bottom:.5rem;font-size:1.5rem}
.suggestions{display:grid;gap:.6rem;margin-top:1.5rem;max-width:520px}
.sug{background:var(--card);border:1px solid var(--border);padding:.85rem 1rem;border-radius:10px;text-align:left;cursor:pointer;transition:border .15s}
.sug:hover{border-color:var(--verde)}
.sug strong{color:var(--verde);display:block;margin-bottom:.2rem;font-size:.85rem}
.sug span{color:var(--text-dim);font-size:.85rem}
.msg{display:flex;gap:.85rem;max-width:80%}
.msg.user{align-self:flex-end;flex-direction:row-reverse}
.msg-avatar{width:32px;height:32px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-weight:700;font-size:.85rem}
.msg.user .msg-avatar{background:linear-gradient(135deg,var(--verde),#5cd96d);color:#0a0f12}
.msg.assistant .msg-avatar{background:var(--card);border:1px solid var(--border);color:var(--verde)}
.msg-bubble{background:var(--card);padding:.85rem 1.1rem;border-radius:14px;line-height:1.5;word-wrap:break-word;overflow-wrap:break-word;max-width:100%}
.msg.user .msg-bubble{background:var(--verde);color:white}
.msg-bubble code{background:rgba(0,0,0,.3);padding:.1rem .3rem;border-radius:4px;font-family:ui-monospace,monospace;font-size:.9em}
.msg-bubble pre{background:#0a0d13;border:1px solid var(--border);padding:.85rem;border-radius:8px;overflow-x:auto;margin:.5rem 0;font-size:.85rem}
.input-area{padding:1rem 2rem 1.5rem;border-top:1px solid var(--border);background:var(--bg2)}
.input-row{display:flex;gap:.5rem;align-items:flex-end;max-width:900px;margin:0 auto}
.input-row textarea{flex:1;background:var(--card);border:1px solid var(--border);color:var(--text);padding:.85rem 1rem;border-radius:14px;font-family:inherit;font-size:.95rem;line-height:1.4;resize:none;max-height:200px;min-height:48px}
.input-row textarea:focus{outline:none;border-color:var(--verde);box-shadow:0 0 0 3px var(--verde-glow)}
.input-row button{background:var(--verde);color:white;border:none;padding:.85rem 1.25rem;border-radius:14px;font-weight:600;cursor:pointer;font-size:.95rem}
.input-row button:hover:not(:disabled){background:var(--verde-dim)}
.input-row button:disabled{opacity:.5;cursor:wait}
.input-hint{text-align:center;color:var(--text-faint);font-size:.75rem;margin-top:.5rem;max-width:900px;margin-inline:auto}
.input-hint a{color:var(--verde);cursor:pointer;text-decoration:none}
.input-hint a:hover{text-decoration:underline}

/* FORMS */
.form-block{display:grid;gap:.85rem;max-width:680px;margin-bottom:1.5rem}
.form-block input,.form-block select,.form-block textarea{padding:.85rem 1rem;background:var(--bg2);border:1px solid var(--border);color:var(--text);border-radius:8px;font-family:inherit;font-size:.95rem}
.form-block input:focus,.form-block select:focus,.form-block textarea:focus{outline:none;border-color:var(--verde)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.btn{background:var(--verde);color:white;border:none;padding:.85rem 1.5rem;border-radius:10px;font-weight:600;cursor:pointer;font-size:.95rem;transition:background .15s}
.btn:hover:not(:disabled){background:var(--verde-dim)}
.btn:disabled{opacity:.5;cursor:wait}
.btn-sec{background:var(--bg2);border:1px solid var(--border);color:var(--text)}
.btn-sec:hover{border-color:var(--verde);background:var(--card)}

/* CARDS */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin-bottom:1.5rem}
.card{background:var(--card);border:1px solid var(--border);padding:1.25rem;border-radius:14px;cursor:pointer;transition:all .15s}
.card.no-click{cursor:default}
.card:not(.no-click):hover{border-color:var(--verde);transform:translateY(-2px)}
.card .ico{font-size:2rem;margin-bottom:.6rem}
.card h3{color:var(--text);font-size:1.05rem;margin-bottom:.3rem}
.card p{color:var(--text-dim);font-size:.85rem;line-height:1.4}
.card .free{display:inline-block;background:rgba(39,166,56,.15);color:var(--verde);padding:.15rem .5rem;border-radius:6px;font-size:.7rem;font-weight:600;margin-top:.6rem}
.card .pay{background:rgba(246,193,77,.15);color:var(--amarillo)}

.result-box{background:var(--card);border:1px solid var(--verde);padding:1.5rem;border-radius:14px;margin-top:1rem}
.result-box h3{color:var(--verde);margin-bottom:.75rem}
.result-box .meta{color:var(--text-dim);font-size:.8rem;margin-bottom:1rem}
.scroll-box{background:var(--bg2);padding:1rem;border-radius:8px;max-height:400px;overflow-y:auto;margin:.5rem 0}

::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}

.dots span{display:inline-block;width:6px;height:6px;background:var(--text-dim);border-radius:50%;margin:0 1px;animation:dots 1.4s infinite}
.dots span:nth-child(2){animation-delay:.2s}
.dots span:nth-child(3){animation-delay:.4s}
@keyframes dots{0%,80%,100%{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1.1)}}
.muted{color:var(--text-faint);font-size:.85rem}
.err{color:var(--rojo);background:rgba(232,90,79,.1);padding:.85rem;border-radius:8px}

@media (max-width:780px){
  .app{grid-template-columns:1fr}
  .sidebar{display:none}
  .sidebar.open{display:flex;position:fixed;top:64px;left:0;right:0;bottom:0;z-index:50;background:var(--bg)}
}
