:root{--bg: #14181f;--surface: #1c232d;--surface-raised: #232b36;--border: #2e3742;--text: #e8ecf1;--text-muted: #8b95a5;--accent: #f2a93b;--accent-soft: rgba(242, 169, 59, .14);--success: #4caf6d;--success-soft: rgba(76, 175, 109, .14);--danger: #e5484d;--danger-soft: rgba(229, 72, 77, .14);--font-display: "Space Grotesk", sans-serif;--font-body: "Inter", sans-serif;--font-mono: "JetBrains Mono", monospace;--radius: 10px;--radius-sm: 6px;--spacing-1: 4px;--spacing-2: 8px;--spacing-3: 12px;--spacing-4: 16px;--spacing-6: 24px;--spacing-8: 32px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);margin:0;letter-spacing:-.01em}.mono{font-family:var(--font-mono)}button{font-family:inherit;cursor:pointer}input,select{font-family:inherit}a{color:var(--accent)}.readout{font-family:var(--font-mono);font-weight:700;letter-spacing:.03em;color:var(--accent);text-shadow:0 0 12px var(--accent-soft)}.readout--muted{color:var(--text-muted);text-shadow:none}.app-shell{min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-4);padding:var(--spacing-4) var(--spacing-6);border-bottom:1px solid var(--border);background:var(--surface);flex-wrap:wrap}.topbar__brand{display:flex;align-items:baseline;gap:var(--spacing-2);text-decoration:none;color:var(--text)}.topbar__brand-mark{color:var(--accent);font-family:var(--font-mono);font-weight:700}.topbar__name{font-family:var(--font-display);font-weight:600;font-size:1.05rem}.topbar__nav{display:flex;gap:var(--spacing-4)}.topbar__nav a{color:var(--text-muted);text-decoration:none;font-size:.9rem}.topbar__nav a:hover{color:var(--text)}.main{flex:1;width:100%;max-width:960px;margin:0 auto;padding:var(--spacing-6);display:flex;flex-direction:column;gap:var(--spacing-6)}.footer{border-top:1px solid var(--border);color:var(--text-muted);font-size:.8rem;text-align:center;padding:var(--spacing-4)}.page-head{margin-bottom:var(--spacing-4)}.page-title{font-size:1.4rem}.page-sub{color:var(--text-muted);margin:var(--spacing-1) 0 0;font-size:.9rem}.empty-state{color:var(--text-muted);text-align:center;padding:var(--spacing-8) 0;font-size:.9rem}.volver{color:var(--text-muted);text-decoration:none;font-size:.85rem}.volver:hover{color:var(--text)}.app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:var(--spacing-4)}.app-card{display:flex;gap:var(--spacing-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--spacing-4);text-decoration:none;color:var(--text);transition:border-color .15s ease}.app-card:hover{border-color:var(--accent)}.app-icon{width:56px;height:56px;border-radius:14px;object-fit:cover;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:700;font-size:1.2rem;flex-shrink:0}.app-icon--lg{width:72px;height:72px;font-size:1.5rem;border-radius:18px}.app-card__body{min-width:0}.app-card__name{font-size:1.05rem;margin-bottom:var(--spacing-1)}.app-card__desc{color:var(--text-muted);font-size:.85rem;margin:0 0 var(--spacing-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.app-card__meta{color:var(--text-muted);font-size:.75rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--spacing-6)}.card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-4)}.card__title{font-size:1.05rem}.chip{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:2px 10px;font-size:.8rem;color:var(--text-muted);white-space:nowrap}.detalle-head{display:flex;gap:var(--spacing-4);align-items:center;margin-top:var(--spacing-4)}.detalle-head__meta{display:flex;align-items:center;gap:var(--spacing-3);color:var(--text-muted);font-size:.85rem;margin-top:var(--spacing-1)}.detalle-desc{color:var(--text-muted);font-size:.95rem;line-height:1.55;margin:var(--spacing-4) 0}.readout-row{display:flex;gap:var(--spacing-6);flex-wrap:wrap;margin-bottom:var(--spacing-4)}.meta-item__label{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:var(--spacing-1)}.changelog{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--spacing-3);font-size:.9rem;color:var(--text);margin:0 0 var(--spacing-4);white-space:pre-wrap}.detalle-acciones{display:flex;align-items:center;gap:var(--spacing-4);flex-wrap:wrap;margin-bottom:var(--spacing-4)}.detalle-acciones .btn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-width:160px}.detalle-aviso{color:var(--text-muted);font-size:.8rem}.sha{color:var(--text-muted);font-size:.72rem;word-break:break-all}.tabla-scroll{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table th{text-align:left;color:var(--text-muted);font-weight:500;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;padding:var(--spacing-2) var(--spacing-3);border-bottom:1px solid var(--border)}.table td{padding:var(--spacing-3);border-bottom:1px solid var(--border);white-space:nowrap}.table td.mono{color:var(--accent)}.alert{padding:var(--spacing-3) var(--spacing-4);border-radius:var(--radius-sm);font-size:.9rem;margin-bottom:var(--spacing-4)}.alert--error{background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger)}.alert--success{background:var(--success-soft);color:var(--success);border:1px solid var(--success)}.btn{border:none;border-radius:var(--radius-sm);padding:var(--spacing-3) var(--spacing-4);font-size:.95rem;font-weight:600;transition:opacity .15s ease}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--accent);color:#1a1305}.btn--primary:hover:not(:disabled){opacity:.9}.btn--ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border);text-decoration:none}.btn--ghost:hover{color:var(--text);border-color:var(--text-muted)}.btn--sm{padding:var(--spacing-2) var(--spacing-3);font-size:.85rem;white-space:nowrap}.pasos{margin:0;padding-left:1.2rem;color:var(--text);font-size:.95rem;line-height:1.7;display:flex;flex-direction:column;gap:var(--spacing-2)}.pasos li::marker{color:var(--accent);font-family:var(--font-mono);font-weight:700}
