.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;padding:1rem}.project-card{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.85rem;display:flex;flex-direction:column;gap:.6rem;transition:border-color .15s;position:relative}.project-card:hover{border-color:var(--accent)}.project-top{display:flex;flex-direction:column;gap:.3rem}.project-name-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.project-name{font-weight:600;font-size:.88rem;color:var(--text)}.project-desc{font-size:.75rem;color:var(--text-secondary);line-height:1.4}.project-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:.5rem;margin-top:auto}.project-tags{display:flex;flex-wrap:wrap;gap:.3rem}.tag{font-size:.65rem;background:var(--accent-dim);color:var(--accent);border-radius:4px;padding:1px 6px;font-weight:500}.project-links{display:flex;gap:.5rem;flex-shrink:0}.project-link{font-size:.72rem;color:var(--text-secondary);text-decoration:none;border:1px solid var(--border);padding:2px 7px;border-radius:4px;transition:all .15s}.project-link:hover{color:var(--accent);border-color:var(--accent);text-decoration:none}.project-date{font-size:.65rem;color:var(--text-dim);margin-top:-.2rem}.status-badge{font-size:.6rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:999px;flex-shrink:0}.status-green{background:#22c55e18;color:#22c55e}.status-yellow{background:#eab30818;color:#eab308}.status-blue{background:#3b82f618;color:#3b82f6}.status-dim{background:var(--surface);color:var(--text-dim)}.empty{padding:1rem;color:var(--text-dim);font-size:.8rem}.status-red{background:#ef444418;color:#ef4444}.project-controls{display:flex;align-items:center;gap:.5rem}.project-toggle{position:relative;width:36px;height:20px;border-radius:999px;border:none;cursor:pointer;transition:background .2s;flex-shrink:0;padding:0}.toggle-on{background:#22c55e}.toggle-off{background:#445}.toggle-locked{opacity:.4;cursor:not-allowed}.toggle-loading{opacity:.6;cursor:wait}.toggle-thumb{position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .2s;display:block}.toggle-on .toggle-thumb{transform:translate(16px)}.project-card--stopped{opacity:.55;filter:grayscale(.4)}.project-card--stopped .project-name{text-decoration:line-through;text-decoration-color:#ef4444}.tasks-section{padding:0 .85rem}.tasks-section+.tasks-section{margin-top:.25rem}.tasks-section-label{font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);padding:.6rem 0 .35rem}.tasks-list{display:flex;flex-direction:column;gap:.4rem;padding-bottom:.5rem}.task-card{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.6rem .75rem;display:flex;flex-direction:column;gap:.35rem;transition:border-color .15s}.task-card:hover{border-color:#334}.task-card--active{border-color:#3b82f659;background:#3b82f60f}.task-card--active:hover{border-color:#3b82f699}.task-card-top{display:flex;align-items:flex-start;gap:.5rem}.task-active-dot{flex-shrink:0;width:7px;height:7px;border-radius:50%;background:#3b82f6;margin-top:4px;animation:activePulse 2s ease-in-out infinite}@keyframes activePulse{0%,to{opacity:1;box-shadow:0 0 #3b82f666}50%{opacity:.7;box-shadow:0 0 0 4px #3b82f600}}.task-title{font-size:.8rem;color:var(--text);line-height:1.35;flex:1}.task-meta{display:flex;align-items:center;justify-content:space-between;gap:.4rem}.task-meta-right{display:flex;align-items:center;gap:.4rem}.task-project{font-size:.62rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:1px 6px;border-radius:4px;border:1px solid currentColor;opacity:.85}.task-duration{font-size:.62rem;color:#6366f1;flex-shrink:0;opacity:.85}.task-date{font-size:.62rem;color:var(--text-dim);flex-shrink:0}.task-badge-active{font-size:.58rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#3b82f6;background:#3b82f61a;border:1px solid rgba(59,130,246,.25);padding:1px 5px;border-radius:4px}.col-empty{font-size:.75rem;color:var(--text-dim);padding:.75rem 0;text-align:center}.tasks-footer{padding:0 .85rem .85rem}.btn-ver-todas{width:100%;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-dim);font-size:.75rem;padding:.45rem .75rem;cursor:pointer;transition:border-color .15s,color .15s;text-align:center;font-family:inherit}.btn-ver-todas:hover{border-color:#7c3aed;color:#a78bfa}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b8;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:1rem}.modal-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(520px,100%);max-height:80vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 60px #00000080}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border);flex-shrink:0}.modal-title{font-size:.85rem;font-weight:600;color:var(--text)}.modal-close{background:none;border:none;color:var(--text-dim);font-size:1rem;cursor:pointer;padding:2px 6px;border-radius:4px;line-height:1;transition:color .15s,background .15s}.modal-close:hover{color:var(--text);background:var(--surface2)}.modal-list{overflow-y:auto;padding:.85rem;display:flex;flex-direction:column;gap:.45rem}.modal-list::-webkit-scrollbar{width:4px}.modal-list::-webkit-scrollbar-track{background:transparent}.modal-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.gambita-online{display:flex;align-items:center;gap:5px;font-size:.7rem;color:var(--green)}.dot{display:inline-block;width:6px;height:6px;background:var(--green);border-radius:50%;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.gambita-body{display:flex;flex-direction:column;gap:1rem}.info-section{display:flex;flex-direction:column;gap:.3rem}.section-label{font-size:.62rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);margin-bottom:.2rem;padding-bottom:.2rem;border-bottom:1px solid var(--border)}.info-row{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.info-label{font-size:.72rem;color:var(--text-secondary);flex-shrink:0}.info-val{font-size:.72rem;color:var(--text);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.info-val.mono{font-family:SF Mono,Fira Code,monospace;font-size:.68rem;color:var(--text-secondary)}.gambita-notes{font-size:.72rem;color:var(--text-secondary);line-height:1.4;font-style:italic}.cron-row{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.cron-name{font-size:.7rem;color:var(--text)}.cron-schedule{font-size:.65rem;color:var(--text-dim);font-family:monospace}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2.5rem 2rem;width:100%;max-width:320px;text-align:center;box-shadow:0 4px 24px #0000001f}.login-logo{font-size:2.5rem}.login-title{font-size:1.3rem;margin:.5rem 0 1.5rem;color:var(--text-secondary);font-weight:400}.login-title strong{color:var(--text);font-weight:700}.login-form{display:flex;flex-direction:column;gap:.75rem}.login-input{padding:.7rem .9rem;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.95rem;outline:none;transition:border-color .15s}.login-input:focus{border-color:var(--accent)}.login-error{font-size:.78rem;color:#ef4444}.login-btn{padding:.75rem;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.95rem;font-weight:700;cursor:pointer;transition:opacity .15s}.login-btn:hover:not(:disabled){opacity:.85}.login-btn:disabled{opacity:.5;cursor:default}.login-note{font-size:.68rem;color:var(--text-dim);margin-top:1rem}.app{min-height:100vh;display:flex;flex-direction:column}.header{display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;height:52px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.header-left{display:flex;align-items:center;gap:.6rem}.logo{font-size:1.3rem}.logo-text{font-size:1rem;color:var(--text-secondary)}.logo-text strong{color:var(--text);font-weight:700}.header-right{display:flex;align-items:center;gap:.8rem}.last-update{font-size:.75rem;color:var(--text-dim)}.refresh-btn{background:none;border:1px solid var(--border);color:var(--text-secondary);width:28px;height:28px;border-radius:var(--radius-sm);cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all .15s}.refresh-btn:hover{border-color:var(--accent);color:var(--accent)}.grid{display:grid;grid-template-columns:1fr 320px;grid-template-rows:auto auto;grid-template-areas:"projects tokens" "kanban gambita";gap:1rem;padding:1rem 1.5rem;flex:1}.area-projects{grid-area:projects}.area-tokens{grid-area:tokens}.area-kanban{grid-area:kanban}.area-gambita{grid-area:gambita}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.1rem;border-bottom:1px solid var(--border)}.panel-title{font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary)}.panel-count{font-size:.7rem;color:var(--text-dim);background:var(--surface2);border:1px solid var(--border);padding:1px 7px;border-radius:999px}.panel-body{padding:1rem}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8rem;min-height:100vh;color:var(--text-secondary)}.loading-emoji{font-size:2.5rem;animation:spin 2s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 900px){.grid{grid-template-columns:1fr;grid-template-areas:"projects" "tokens" "kanban" "gambita"}}:root{--bg: #0a0a0f;--surface: #111118;--surface2: #18181f;--border: #1e1e2e;--accent: #7c3aed;--accent-dim: #7c3aed22;--green: #22c55e;--yellow: #eab308;--red: #ef4444;--blue: #3b82f6;--text: #f0f0f4;--text-secondary: #888899;--text-dim: #44445a;--radius: 10px;--radius-sm: 6px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;font-size:14px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
