/* Estilos mínimos para la carpeta demo_pages (mejorados para demo llamativo)
   Paleta más clara y viva, sombras y animaciones para UI de demo */
@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,300;0,400;0,600;0,700;1,400&display=swap');

:root{
  --bg-1: #f8fafc; /* claro */
  --bg-2: #eef2f7;
  --card:#ffffff;
  --accent:#0ea5a4; /* teal */
  --accent-2:#ff7a18; /* naranja secundario */
  --muted:#6b7280;
  --text:#0b1220;
  --glass: rgba(14,165,164,0.06);
  --shadow-1: 0 8px 30px rgba(16,24,40,0.08);
}
*{box-sizing:border-box}
body{margin:0;font-family: 'Poppins', Inter, Segoe UI, Arial, sans-serif;background:linear-gradient(180deg,var(--bg-1),var(--bg-2));color:var(--text);min-height:100vh}

/* Header / grid */
header.top{padding:28px 20px;text-align:center;background:transparent}
header.top h1{margin:0;font-size:1.8rem;color:var(--text)}
header.top p{margin:8px 0 0;color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;padding:28px;max-width:1200px;margin:12px auto}

/* Cards principales */
.card{display:block;padding:18px;border-radius:12px;background:linear-gradient(180deg,var(--card),#fbfdff);text-decoration:none;color:var(--text);box-shadow:var(--shadow-1);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;border:1px solid rgba(11,18,32,0.04)}
.card:hover{transform:translateY(-6px);box-shadow:0 22px 48px rgba(16,24,40,0.12);border-color:rgba(14,165,164,0.06)}
.card h3{margin:0 0 6px}
.card small.muted{color:var(--muted)}

.foot{max-width:1200px;margin:26px auto;padding:14px 20px;text-align:left;color:var(--muted)}
.foot a{color:var(--accent);text-decoration:none}
.container{max-width:1100px;margin:18px auto;padding:20px}

/* Skill cards - claro */
.skill-card{background:linear-gradient(180deg,#ffffff,#fbfdff);padding:18px;border-radius:12px;color:var(--text);box-shadow:var(--shadow-1)}
.skill-card h2{margin-top:0}
small.muted{color:var(--muted)}
.note{color:var(--muted);font-size:0.95rem;margin-top:12px}
.footer-note{color:var(--muted);font-size:0.9rem;margin-top:18px}

/* Layout tipo dashboard */
.app-layout{display:flex;min-height:100vh}
.sidebar{width:260px;background:linear-gradient(180deg,#ffffff,#f6fbfb);padding:20px 12px;border-right:1px solid rgba(11,18,32,0.04)}
.sidebar .brand{display:flex;align-items:center;gap:10px;padding:6px 8px;margin-bottom:18px;cursor:pointer}
.sidebar .brand img{width:36px;height:36px;border-radius:8px}
.sidebar .brand h4{margin:0;color:var(--text);font-size:1rem}
.nav-list{list-style:none;padding:0;margin:12px 0}
.nav-list li{margin:6px 0}
.nav-list a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;color:var(--text);text-decoration:none;font-weight:600}
.nav-list a:hover{background:rgba(14,165,164,0.06);color:var(--accent)}
.nav-list a .bi{font-size:18px;opacity:0.9}
.nav-list a.active, .nav-list a:focus, .nav-list a[aria-current="page"]{background:linear-gradient(90deg,rgba(14,165,164,0.12),rgba(255,122,24,0.06));color:var(--accent);box-shadow:inset 0 0 0 1px rgba(14,165,164,0.04)}

.main-area{flex:1;padding:22px}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:transparent;border-radius:10px;margin-bottom:18px}
.topbar h1{margin:0;font-size:1.2rem}
.topbar .actions{display:flex;gap:10px;align-items:center}
.topbar .actions .card{background:transparent;border:1px solid rgba(11,18,32,0.04);padding:8px 12px;border-radius:8px;color:var(--accent);text-decoration:none}
.topbar .actions .card:hover{background:linear-gradient(90deg,rgba(14,165,164,0.06),rgba(255,122,24,0.04))}

/* Botón para colapsar/expandir sidebar */
.topbar .sidebar-toggle-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:8px;border:none;background:transparent;color:var(--text);cursor:pointer;font-size:18px}
.topbar .sidebar-toggle-btn:hover{background:rgba(11,18,32,0.03)}

/* Estado colapsado: ocultar sidebar y ajustar main */
.app-layout.sidebar-collapsed .sidebar{display:none}
.app-layout.sidebar-collapsed .main-area{padding:12px}

/* Overlay en móviles cuando sidebar visible */
.app-layout .sidebar-overlay{display:none}
@media (max-width:900px){
  .app-layout.sidebar-open .sidebar{display:block;position:fixed;left:0;top:0;height:100vh;z-index:2000}
  .app-layout.sidebar-open .sidebar-overlay{display:block;position:fixed;left:0;top:0;width:100%;height:100vh;background:rgba(11,18,32,0.4);z-index:1500}
}

/* Card grid similar a Mazer */
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.card-panel{background:linear-gradient(180deg,#ffffff,#fbfdff);padding:18px;border-radius:12px;box-shadow:var(--shadow-1);transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.card-panel:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(16,24,40,0.08);background:linear-gradient(180deg,#fff9f5,#fbfdff)}
.card-panel h3{margin:0 0 8px}
.card-panel p{color:var(--muted);margin:0}

/* Tablas y formularios para demos */
.table-demo, .table{width:100%;border-collapse:collapse;margin-top:12px;background:transparent}
.table-demo th,.table-demo td, .table th, .table td{padding:10px;border-bottom:1px solid rgba(11,18,32,0.04);text-align:left}
.table-demo thead th{background:linear-gradient(90deg,rgba(255,255,255,0.9),rgba(255,255,255,0.95));font-weight:700}

.form-demo{display:flex;flex-direction:column;gap:10px;max-width:640px}
.form-demo input[type="text"],.form-demo input[type="email"],.form-demo textarea{padding:12px;border-radius:10px;border:1px solid rgba(11,18,32,0.06);background:linear-gradient(180deg,#ffffff,#f8fbfd);color:var(--text);box-shadow:inset 0 1px 0 rgba(255,255,255,0.6)}
.form-demo button{align-self:flex-start;padding:10px 14px;border-radius:10px;border:none;background:linear-gradient(90deg,var(--accent),var(--accent-2));color:#fff;cursor:pointer;box-shadow:0 8px 20px rgba(14,165,164,0.12)}
.form-demo button:hover{transform:translateY(-2px)}

/* Código y botón copiar */
.code-block{position:relative;background:linear-gradient(180deg,#0b1220,#071021);border-radius:8px;padding:12px 12px 44px 12px;overflow:auto;border:1px solid rgba(11,18,32,0.06);box-shadow:0 12px 30px rgba(2,6,23,0.08)}
.code-block pre{margin:0;color:#d6faff;white-space:pre-wrap;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, 'Roboto Mono', 'Courier New', monospace;font-size:0.9rem}
.copy-btn{position:absolute;right:12px;bottom:12px;background:linear-gradient(90deg,rgba(14,165,164,0.12),rgba(255,122,24,0.08));border:1px solid rgba(11,18,32,0.04);color:var(--text);padding:6px 10px;border-radius:8px;cursor:pointer}
.copy-btn:hover{background:linear-gradient(90deg,rgba(14,165,164,0.18),rgba(255,122,24,0.12))}

/* Small adjustments for form labels */
.form-label{font-weight:600;margin-bottom:4px;display:block}

/* Responsive adjustments */
@media (max-width:900px){.sidebar{display:none}.app-layout{display:block}.main-area{padding:12px}.topbar{flex-direction:column;align-items:flex-start}}
@media (max-width:520px){header.top{padding:22px} .card{padding:14px}
  .sidebar{width:220px}
  .card-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
  .main-area{padding:12px}
}

/* Footer pequeño y centrado dentro de main-area */
.main-area .foot{margin-top:18px;text-align:center}

/* Ajustes para imágenes en card-panel */
.card-panel img{width:100%;height:auto;border-radius:8px;display:block}

/* Mejor contraste en small muted dentro de panels */
.card-panel .muted{color:var(--muted)}

/* Accessibility: focus visible for interactive items */
.nav-list a:focus, .card:focus, .sidebar .brand:focus, .sidebar-toggle-btn:focus{outline:3px solid rgba(14,165,164,0.14);outline-offset:3px}

/* Demo-specific: toasts y modales */
.demo-toast-container{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:10px;align-items:flex-end;z-index:99999}
.demo-toast{min-width:220px;padding:12px 14px;border-radius:10px;color:#fff;box-shadow:0 10px 30px rgba(2,6,23,0.12);display:flex;align-items:center;gap:8px}
.demo-toast-info{background:linear-gradient(90deg,var(--accent),#2dd4bf)}
.demo-toast-success{background:linear-gradient(90deg,#16a34a,#2dd4bf)}
.demo-toast-error{background:linear-gradient(90deg,#ef4444,#fb7185)}
.demo-toast button{background:transparent;border:none;color:rgba(255,255,255,0.95);cursor:pointer;font-size:14px}

a@keyframes dummy {}
@keyframes slideInRight{from{transform:translateX(20px);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes fadeOut{from{opacity:1}to{opacity:0}}
.demo-toast{animation:slideInRight .28s ease}

.demo-modal-overlay{position:fixed;left:0;top:0;right:0;bottom:0;background:linear-gradient(180deg,rgba(11,18,32,0.4),rgba(11,18,32,0.45));display:flex;align-items:center;justify-content:center;z-index:99998}
.demo-modal-dialog{background:var(--card);color:var(--text);border-radius:10px;padding:20px;max-width:720px;width:90%;box-shadow:0 20px 60px rgba(11,18,32,0.18);border:1px solid rgba(11,18,32,0.04)}
.demo-modal-body{margin-top:8px;color:var(--muted)}
.demo-modal-dialog h3{margin:0 0 6px}

/* small utility */
.muted{color:var(--muted)}

/* Badges / Tags */
.badge{display:inline-block;padding:6px 14px;background:linear-gradient(90deg,rgba(14,165,164,0.12),rgba(255,122,24,0.08));color:var(--accent);border-radius:20px;font-size:0.85rem;font-weight:600;border:1px solid rgba(14,165,164,0.15)}
.badge-success{background:linear-gradient(90deg,rgba(22,163,74,0.12),rgba(45,212,191,0.08));color:#16a34a;border-color:rgba(22,163,74,0.15)}
.badge-warning{background:linear-gradient(90deg,rgba(245,158,11,0.12),rgba(251,191,36,0.08));color:#d97706;border-color:rgba(245,158,11,0.15)}
.badge-error{background:linear-gradient(90deg,rgba(239,68,68,0.12),rgba(251,113,133,0.08));color:#dc2626;border-color:rgba(239,68,68,0.15)}

/* Tabs component */
.demo-tabs{display:flex;gap:4px;border-bottom:2px solid rgba(11,18,32,0.06);margin-bottom:20px}
.demo-tab{padding:12px 20px;background:transparent;border:none;color:var(--muted);cursor:pointer;font-weight:600;font-size:0.95rem;border-bottom:3px solid transparent;margin-bottom:-2px;transition:all 0.2s}
.demo-tab:hover{color:var(--accent);background:rgba(14,165,164,0.04)}
.demo-tab.active{color:var(--accent);border-bottom-color:var(--accent);background:rgba(14,165,164,0.06)}
.demo-tab-content{display:none}
.demo-tab-content.active{display:block}

/* Progress bar */
.progress-bar{height:8px;background:rgba(11,18,32,0.08);border-radius:4px;overflow:hidden;margin:12px 0}
.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:4px;transition:width 0.5s ease}

/* Stats cards */
.stat-card{text-align:center;padding:20px;background:linear-gradient(180deg,#ffffff,#fbfdff);border-radius:12px;box-shadow:var(--shadow-1)}
.stat-value{font-size:2.2rem;font-weight:700;color:var(--accent);margin-bottom:4px}
.stat-label{color:var(--muted);font-size:0.9rem}

/* Timeline */
.timeline{position:relative;padding-left:30px}
.timeline::before{content:'';position:absolute;left:8px;top:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--accent),var(--accent-2))}
.timeline-item{position:relative;padding-bottom:24px}
.timeline-item::before{content:'';position:absolute;left:-26px;top:4px;width:12px;height:12px;background:var(--accent);border-radius:50%;border:3px solid var(--card)}
.timeline-item h4{margin:0 0 4px;color:var(--text)}
.timeline-item p{margin:0;color:var(--muted);font-size:0.9rem}

/* Console / Terminal simulation */
.console-output{background:#0f1724;border-radius:8px;padding:16px;font-family:ui-monospace,monospace;font-size:0.85rem;color:#10b981;max-height:300px;overflow-y:auto}
.console-output .line{margin:4px 0;opacity:0;animation:typeIn 0.3s forwards}
.console-output .line.error{color:#f87171}
.console-output .line.warning{color:#fbbf24}
.console-output .line.info{color:#60a5fa}
@keyframes typeIn{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}

/* Interactive buttons */
.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:8px;border:none;font-weight:600;cursor:pointer;transition:all 0.2s}
.btn-primary{background:linear-gradient(90deg,var(--accent),#2dd4bf);color:#fff;box-shadow:0 4px 12px rgba(14,165,164,0.2)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(14,165,164,0.3)}
.btn-secondary{background:linear-gradient(90deg,var(--accent-2),#fb923c);color:#fff;box-shadow:0 4px 12px rgba(255,122,24,0.2)}
.btn-secondary:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(255,122,24,0.3)}
.btn-outline{background:transparent;border:2px solid rgba(11,18,32,0.1);color:var(--text)}
.btn-outline:hover{border-color:var(--accent);color:var(--accent);background:rgba(14,165,164,0.04)}

/* Feature list with icons */
.feature-list{list-style:none;padding:0;margin:16px 0}
.feature-list li{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid rgba(11,18,32,0.04)}
.feature-list li:last-child{border-bottom:none}
.feature-list .icon{width:32px;height:32px;background:linear-gradient(135deg,var(--accent),var(--accent-2));border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}
.feature-list .content h4{margin:0 0 4px;color:var(--text);font-size:1rem}
.feature-list .content p{margin:0;color:var(--muted);font-size:0.9rem}

/* Visually hidden (accessible) */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* fine tune for dark code blocks on light bg */
.code-block{background:linear-gradient(180deg,#0f1724,#0b1220);border-radius:8px}
