:root {
  --bg: #151515;
  --bg-2: #1c1c1c;
  --bg-3: #242424;
  --bg-4: #2d2d2d;
  --surface: #1b1b1b;
  --surface-2: #212121;
  --accent: #e67e22;
  --accent-2: #ff9000;
  --accent-soft: rgba(230, 126, 34, .12);
  --text: #e2e2e8;
  --text-2: #a1a1aa;
  --text-3: #6f6f78;
  --line: #2c2c2c;
  --line-2: #3a3a3a;
  --danger: #ef4444;
  --danger-soft: rgba(239, 68, 68, .12);
  --success: #22c55e;
  --success-soft: rgba(34, 197, 94, .12);
  --info: #60a5fa;
  --shadow: 0 22px 55px rgba(0, 0, 0, .34);
  --radius: 6px;
  --radius-2: 8px;
  --transition: .2s cubic-bezier(.4, 0, .2, 1);
  --font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --mono: "JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
}
html.assistant-drawer-open, body.assistant-drawer-open { overscroll-behavior: none; }
.assistant-drawer { position:fixed; inset:0; z-index:1000; visibility:hidden; pointer-events:none; }
.assistant-drawer.is-open { visibility:visible; pointer-events:auto; }
.assistant-drawer-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(8, 10, 14, .48);
  opacity: 0;
  transition: opacity .22s ease;
}
.assistant-drawer.is-open .assistant-drawer-backdrop { opacity:1; }
.assistant-drawer-panel { position:absolute; top:0; right:0; height:100%; width:min(520px,94vw); display:flex; flex-direction:column; background:var(--bg,#101820); box-shadow:-16px 0 45px rgba(0,0,0,.28); transform:translateX(100%); transition:transform .28s ease; }
.assistant-drawer.is-open .assistant-drawer-panel { transform:translateX(0); }
.assistant-drawer-header { display:flex; align-items:center; justify-content:space-between; padding:18px 22px; border-bottom:1px solid var(--line,rgba(255,255,255,.12)); }
.assistant-drawer-header h2 { margin:2px 0 0; }
.assistant-drawer-header button { border:0; background:transparent; color:inherit; font-size:30px; cursor:pointer; }
.assistant-drawer-panel iframe { border:0; width:100%; flex:1; min-height:0; }
@media (max-width:600px) { .assistant-drawer-panel { width:100%; } }
.assistant-quick-launch { position: fixed; z-index: 90; right: 0; bottom: 34px; display: flex; align-items: center; gap: 9px; min-height: 62px; padding: 7px 13px 7px 8px; border: 1px solid rgba(230, 126, 34, .45); border-right: 0; border-radius: 34px 0 0 34px; color: var(--text); background: var(--surface); box-shadow: -8px 10px 30px rgba(0,0,0,.22); cursor: pointer; transition: transform var(--transition), opacity var(--transition), border-color var(--transition); }
.assistant-quick-launch:hover { border-color: var(--accent); transform: translateX(-3px); }
.assistant-quick-launch img { width: 46px; height: 46px; border: 2px solid var(--accent); border-radius: 50%; object-fit: cover; }
.assistant-quick-launch span, .assistant-quick-launch strong, .assistant-quick-launch small { display: block; text-align: left; }
.assistant-quick-launch strong { font-size: 12px; }
.assistant-quick-launch small { color: var(--accent); font: 700 8px/1.4 var(--mono); text-transform: uppercase; }
.assistant-drawer-open .assistant-quick-launch { opacity: 0; pointer-events: none; transform: translateX(100%); }

:root[data-theme="light"] {
  --bg: #f4f6f8;
  --bg-2: #ffffff;
  --bg-3: #eef2f6;
  --bg-4: #e5ebf2;
  --surface: #ffffff;
  --surface-2: #f8fafc;
  --text: #15171c;
  --text-2: #4d5664;
  --text-3: #7b8392;
  --line: #dce2ea;
  --line-2: #c6ceda;
  --shadow: 0 18px 44px rgba(15, 23, 42, .10);
}
:root[data-theme="light"] .assistant-drawer-backdrop { background: rgba(24, 30, 38, .32); }

*, *::before, *::after { box-sizing: border-box; }
html { color-scheme: dark; min-height: 100%; scroll-behavior: smooth; }
:root[data-theme="light"] { color-scheme: light; }
body {
  margin: 0;
  color: var(--text);
  background: var(--bg);
  min-height: 100vh;
  font: 15px/1.55 var(--font);
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255, 255, 255, .018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .018) 1px, transparent 1px);
  background-size: 40px 40px;
}
body::after {
  content: "";
  position: fixed;
  z-index: -1;
  width: 620px;
  height: 620px;
  top: -240px;
  right: -210px;
  pointer-events: none;
  background: radial-gradient(circle, rgba(230, 126, 34, .16), transparent 64%);
}
:root[data-theme="light"] body::before {
  background-image:
    linear-gradient(rgba(15, 23, 42, .04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(15, 23, 42, .04) 1px, transparent 1px);
}
a { color: inherit; }
button, input, select { font: inherit; }
button { -webkit-tap-highlight-color: transparent; }
.mobile-nav-toggle { display: none; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 256px minmax(0, 1fr); transition: grid-template-columns .28s ease; }
.sidebar {
  position: sticky;
  top: 0;
  z-index: 20;
  height: 100vh;
  display: flex;
  flex-direction: column;
  padding: 0 12px 12px;
  background: rgba(27, 27, 27, .94);
  backdrop-filter: blur(18px);
  border-right: 1px solid var(--line);
  transition: transform .28s ease, opacity .2s ease;
}
.sidebar-collapse-toggle { position: fixed; top: 50%; left: 239px; z-index: 45; width: 34px; height: 34px; display: grid; place-items: center; padding: 0; border: 1px solid var(--line-2); border-radius: 50%; color: var(--text-2); background: var(--surface); box-shadow: 0 7px 22px rgba(0,0,0,.2); cursor: pointer; transform: translateY(-50%); transition: left .28s ease, color var(--transition), background var(--transition), transform var(--transition); }
.sidebar-collapse-toggle:hover { color: var(--accent); background: var(--accent-soft); transform: translateY(-50%) scale(1.06); }
.sidebar-collapse-toggle svg { width: 17px; height: 17px; transition: transform .28s ease; }
.sidebar-collapsed .app-shell { grid-template-columns: 38px minmax(0, 1fr); }
.sidebar-collapsed .sidebar { transform: translateX(-100%); opacity: 0; pointer-events: none; }
.sidebar-collapsed .sidebar-collapse-toggle svg { transform: rotate(180deg); }
:root[data-theme="light"] .sidebar { background: rgba(255, 255, 255, .94); }
.brand {
  min-height: 53px;
  display: flex;
  gap: 10px;
  align-items: center;
  margin: 0 -12px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--line);
  text-decoration: none;
}
.brand-mark {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  display: block;
  object-fit: cover;
  border-radius: var(--radius);
  box-shadow: 0 0 28px rgba(230, 126, 34, .25);
}
.brand strong, .brand small { display: block; }
.brand strong { font-size: 16px; font-weight: 750; letter-spacing: -.02em; }
.brand small { margin-top: 2px; color: var(--text-3); font: 10px/1.3 var(--mono); letter-spacing: .07em; text-transform: uppercase; }
.sidebar nav { display: grid; gap: 7px; margin-top: 22px; }
.sidebar nav::before {
  content: "NAVEGACIÓN";
  margin: 0 10px 5px;
  color: var(--text-3);
  font: 700 9px/1 var(--mono);
  letter-spacing: .1em;
}
.nav-link {
  position: relative;
  display: flex;
  gap: 11px;
  align-items: center;
  min-height: 48px;
  padding: 7px 10px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  color: var(--text-2);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  background: linear-gradient(135deg, rgba(255,255,255,.025), transparent);
  box-shadow: 0 1px 0 rgba(255,255,255,.025) inset;
  transition: color var(--transition), background var(--transition), border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}
.nav-link::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(100deg, transparent 20%, rgba(255,255,255,.07), transparent 70%);
  transform: translateX(-120%);
  transition: transform .55s ease;
}
.nav-link .nav-icon {
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 9px;
  color: var(--text-3);
  background: var(--bg-3);
  font: 800 20px/1 var(--mono);
  transition: color var(--transition), border-color var(--transition), background var(--transition), transform var(--transition);
}
.nav-link .nav-label { min-width: 0; color: inherit; font: inherit; line-height: 1.25; }
.nav-link .nav-label,
.nav-link .nav-label strong,
.nav-link .nav-label small { font-weight: 600 !important; }
.nav-link:hover {
  color: var(--text);
  background: linear-gradient(135deg, rgba(230,126,34,.10), rgba(255,255,255,.025));
  border-color: rgba(230,126,34,.28);
  box-shadow: 0 7px 18px rgba(0,0,0,.12);
  transform: translateX(3px);
}
.nav-link:hover::after { transform: translateX(120%); }
.nav-link:hover .nav-icon { color: var(--accent); border-color: rgba(230,126,34,.34); background: var(--accent-soft); transform: scale(1.04); }
.nav-link:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.nav-link.active {
  color: var(--text);
  border-color: rgba(230,126,34,.38);
  background: linear-gradient(120deg, rgba(230,126,34,.22), rgba(230,126,34,.055));
  box-shadow: 0 8px 24px rgba(0,0,0,.14), 3px 0 0 var(--accent) inset;
}
.nav-link.active .nav-icon { color: #17120e; border-color: transparent; background: linear-gradient(135deg, var(--accent), var(--accent-2)); box-shadow: 0 5px 14px rgba(230,126,34,.24); }
.nav-link.active .nav-label { color: var(--text); }
.nav-link-sofia {
  margin-top: 10px;
  border: 1px solid rgba(230, 126, 34, .28);
  color: var(--text);
  background: linear-gradient(135deg, var(--accent-soft), transparent);
}
.nav-link-sofia + .nav-link-sofia { margin-top: 0; }
.nav-link-sofia .nav-icon { color: var(--accent); font-size: 21px; }
.nav-link-sofia strong { font-size: 12px; }
.nav-link-sofia small { color: var(--accent); font: 700 8px/1 var(--mono); text-transform: uppercase; }
.nav-link-sofia:hover { border-color: rgba(230, 126, 34, .55); }
.nav-link-button { width: 100%; font: inherit; text-align: left; cursor: pointer; }
.nav-link-button strong, .nav-link-button small { display: block; }
.assistant-analysis-link { display:inline-block; margin-top:5px; color:var(--accent); font:700 10px/1.3 var(--mono); text-decoration:none; }
.assistant-analysis-link:hover { text-decoration:underline; }

.data-governance-card { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0,1fr) 220px; gap: 28px; align-items: center; margin: 20px 0; padding: 24px; border: 1px solid rgba(230,126,34,.32); border-radius: var(--radius-2); background: radial-gradient(circle at 90% 0,rgba(230,126,34,.16),transparent 32%),linear-gradient(145deg,var(--surface-2),var(--bg-2)); box-shadow: var(--shadow); }
.data-governance-card::before { content:""; position:absolute; inset:0; border-top:3px solid var(--accent); pointer-events:none; }
.data-governance-heading { display:flex; gap:14px; align-items:center; }
.data-governance-icon { flex:0 0 46px; width:46px; height:46px; display:grid; place-items:center; border:1px solid rgba(230,126,34,.38); border-radius:14px; color:var(--accent); background:var(--accent-soft); font:800 11px/1 var(--mono); }
.data-governance-heading h2 { margin:5px 0 0; font-size:clamp(20px,2.4vw,30px); letter-spacing:-.035em; }
.data-governance-copy > p { max-width:860px; margin:16px 0; color:var(--text-2); font-size:13px; line-height:1.65; }
.data-governance-tags { display:flex; flex-wrap:wrap; gap:7px; }
.data-governance-tags span { padding:6px 9px; border:1px solid var(--line); border-radius:999px; color:var(--text-3); background:var(--bg-3); font:700 8px/1 var(--mono); text-transform:uppercase; }
.data-governance-actions { display:grid; gap:9px; align-content:center; }
.data-governance-actions time { color:var(--text-3); font:700 9px/1.4 var(--mono); text-transform:uppercase; }
.data-governance-actions a { display:flex; justify-content:space-between; gap:12px; align-items:center; min-height:40px; padding:0 13px; border:1px solid var(--line); border-radius:10px; color:var(--text-2); background:var(--surface); text-decoration:none; font-size:11px; font-weight:750; }
.data-governance-actions a:hover { border-color:var(--accent); color:var(--accent); }
.data-governance-actions .primary-action { border-color:transparent; color:#fff; background:linear-gradient(135deg,var(--accent),var(--accent-2)); }
.data-governance-actions .primary-action:hover { color:#fff; }
.sidebar-footer {
  display: flex;
  gap: 11px;
  align-items: center;
  margin-top: auto;
  padding: 13px 10px 4px;
  border-top: 1px solid var(--line);
}
.sidebar-footer strong, .sidebar-footer small { display: block; }
.sidebar-footer strong { font-size: 13px; }
.sidebar-footer small { color: var(--text-3); font: 10px/1.4 var(--mono); text-transform: uppercase; }
.status-dot { width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: var(--success); box-shadow: 0 0 7px var(--success); }

.main-content { min-width: 0; padding: 0 24px 52px; }

/* Herramientas: lienzo derecho servido por iframe para módulos independientes. */
.tools-workspace { height: calc(100vh - 104px); min-height: 560px; margin-top: 18px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-2); background: var(--surface); box-shadow: var(--shadow); }
.tools-workspace iframe { display: block; width: 100%; height: 100%; border: 0; }
.tools-dashboard-hero { position: relative; overflow: hidden; margin: 24px 0 20px; padding: 30px 32px; border: 1px solid var(--line); border-radius: var(--radius-2); background: radial-gradient(circle at 88% 10%,rgba(230,126,34,.18),transparent 28%),linear-gradient(135deg,var(--surface-2),var(--bg-2)); box-shadow: var(--shadow); }
.tools-dashboard-hero::after { content:""; position:absolute; width:210px; height:210px; right:-80px; top:-105px; border:1px solid rgba(230,126,34,.20); border-radius:50%; box-shadow:0 0 0 28px rgba(230,126,34,.025),0 0 0 60px rgba(230,126,34,.018); }
.tools-dashboard-hero h2 { position:relative; z-index:1; margin:5px 0 10px; font-size:clamp(28px,4vw,42px); letter-spacing:-.045em; }
.tools-dashboard-hero p { position:relative; z-index:1; max-width:680px; margin:0; color:var(--text-2); line-height:1.65; }
.tools-dashboard-hero .eyebrow { margin-bottom:7px; color:var(--accent); }
.tools-dashboard-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:20px; }
.looply-tool-card { position:relative; z-index:1; min-height:190px; padding:24px; border:1px solid rgba(230,126,34,.35); border-radius:8px; color:var(--text); background:var(--surface); text-decoration:none; transition:all .2s; }
.looply-tool-card:hover { transform:translateY(-4px); border-color:rgba(230,126,34,.65); box-shadow:0 12px 32px rgba(0,0,0,.5); }
.looply-tool-card-icon { display:block; width:32px; height:32px; margin-bottom:20px; color:#e67e22; }
.looply-tool-card h3 { margin:0 0 10px; color:var(--text); font-size:16px; font-weight:700; }
.looply-tool-card p { max-width:420px; margin:0; color:var(--text-2); font-size:13px; line-height:1.6; }
.tools-frame-body { min-height: 100vh; margin: 0; color: var(--text); background: radial-gradient(circle at 88% 8%, rgba(230,126,34,.10), transparent 28%), var(--bg); }
.tools-frame { max-width: 1200px; margin: 0 auto; padding: clamp(28px,5vw,60px); }
.tools-frame-heading { margin-bottom: 28px; }
.tools-frame-heading h1 { margin: 5px 0 10px; font-size: clamp(30px,4vw,46px); letter-spacing: -.045em; }
.tools-frame-heading > p:last-child { max-width: 660px; margin: 0; color: var(--text-2); line-height: 1.65; }
.tools-card-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(260px,1fr)); gap: 18px; }
.tools-card { min-height: 230px; display: flex; flex-direction: column; align-items: flex-start; padding: 24px; border: 1px solid var(--line); border-radius: var(--radius-2); background: linear-gradient(145deg,rgba(230,126,34,.09),transparent 44%),var(--surface-2); box-shadow: var(--shadow); transition: transform var(--transition),border-color var(--transition); }
.tools-card:hover { transform: translateY(-3px); border-color: rgba(230,126,34,.55); }
.tools-card-icon { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 25px; border-radius: 12px; color: var(--accent); background: var(--accent-soft); }
.tools-card-icon svg { width: 25px; height: 25px; }
.tools-card h2 { margin: 0 0 8px; font-size: 20px; }
.tools-card p { margin: 0; color: var(--text-2); font-size: 13px; line-height: 1.55; }
.tools-card-status { display: inline-flex; margin-top: auto; padding: 6px 9px; border-radius: 999px; color: var(--accent); background: var(--accent-soft); font: 700 9px/1 var(--mono); letter-spacing: .07em; text-transform: uppercase; }
.topbar {
  position: sticky;
  top: 0;
  z-index: 15;
  min-height: 68px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin: 0 -24px 24px;
  padding: 10px 24px;
  background: rgba(28, 28, 28, .90);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--line);
}
:root[data-theme="light"] .topbar { background: rgba(255, 255, 255, .90); }
.topbar-left { min-width: 0; display: flex; align-items: center; gap: 12px; }
.topbar-icon { width: 40px; height: 40px; flex: 0 0 40px; display: grid; place-items: center; border: 1px solid rgba(230, 126, 34, .28); border-radius: var(--radius-2); color: var(--accent); background: radial-gradient(circle at 25% 20%, rgba(255, 144, 0, .30), transparent 44%), var(--accent-soft); box-shadow: 0 0 25px rgba(230, 126, 34, .12); }
.topbar-icon svg { width: 20px; height: 20px; }
.topbar h1 { margin: 2px 0 0; font-size: 18px; line-height: 1.25; font-weight: 750; letter-spacing: -.025em; }
.eyebrow { margin: 0; color: var(--text-3); font: 700 10px/1.3 var(--mono); letter-spacing: .09em; text-transform: uppercase; }
.panel .eyebrow { color: var(--accent); }
.topbar-actions { display: flex; align-items: center; gap: 12px; }
.theme-toggle { width: 38px; height: 38px; flex: 0 0 38px; display: grid; place-items: center; padding: 0; border: 1px solid var(--line-2); border-radius: 999px; color: var(--text-2); background: var(--bg-3); cursor: pointer; transition: color var(--transition), background var(--transition), transform var(--transition); }
.theme-toggle:hover { color: var(--accent); background: var(--bg-4); transform: translateY(-1px); }
.theme-icon { width: 17px; height: 17px; }
.theme-icon-sun { display: none; }
:root[data-theme="dark"] .theme-icon-sun { display: block; }
:root[data-theme="dark"] .theme-icon-moon { display: none; }
.user-menu { display: flex; gap: 9px; align-items: center; }
.user-menu strong, .user-menu small { display: block; }
.user-menu strong { font-size: 13px; font-weight: 700; }
.user-menu small { color: var(--text-3); font: 10px/1.3 var(--mono); }
.avatar {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #17120e;
  background: var(--accent);
  font: 800 12px/1 var(--mono);
}
.link-button { padding: 6px 8px; border: 0; color: var(--text-2); background: transparent; font-size: 12px; cursor: pointer; }
.link-button:hover { color: var(--accent); }
.demo-banner { margin: 0 0 18px; padding: 10px 13px; border: 1px solid rgba(230, 126, 34, .28); border-radius: var(--radius); color: #e8ad78; background: var(--accent-soft); font-size: 12px; }

.overview-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 30px;
  align-items: center;
  margin-bottom: 18px;
  padding: 28px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-2);
  background: linear-gradient(135deg, rgba(230, 126, 34, .15), transparent 42%), linear-gradient(180deg, var(--surface-2), var(--bg-2));
  box-shadow: var(--shadow);
}
.overview-hero::after { content: ""; position: absolute; width: 280px; height: 280px; right: -100px; top: -155px; border: 1px solid rgba(230, 126, 34, .18); border-radius: 50%; box-shadow: 0 0 0 30px rgba(230, 126, 34, .025), 0 0 0 70px rgba(96, 165, 250, .018); pointer-events: none; }
.overview-copy { position: relative; z-index: 1; }
.hero-kicker { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 13px; padding: 5px 10px; border: 1px solid rgba(230, 126, 34, .24); border-radius: 999px; color: var(--accent); background: rgba(230, 126, 34, .08); font: 700 10px/1.3 var(--mono); letter-spacing: .07em; text-transform: uppercase; }
.live-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--success); box-shadow: 0 0 8px var(--success); }
.overview-copy h2 { max-width: 760px; margin: 0 0 10px; font-size: clamp(25px, 2.7vw, 39px); line-height: 1.06; letter-spacing: -.045em; }
.overview-copy p { max-width: 780px; margin: 0; color: var(--text-2); font-size: 14px; line-height: 1.65; }
.overview-status { position: relative; z-index: 1; min-width: 250px; display: flex; align-items: center; gap: 13px; padding: 16px; border: 1px solid var(--line); border-radius: var(--radius-2); background: color-mix(in srgb, var(--bg-3) 76%, transparent); backdrop-filter: blur(12px); }
.overview-status-icon { width: 44px; height: 44px; flex: 0 0 44px; display: grid; place-items: center; border: 1px solid rgba(34, 197, 94, .24); border-radius: 12px; color: var(--success); background: var(--success-soft); }
.overview-status-icon svg { width: 22px; height: 22px; }
.overview-status small, .overview-status strong, .overview-status span { display: block; }
.overview-status small { color: var(--text-3); font: 700 9px/1.3 var(--mono); letter-spacing: .08em; }
.overview-status strong { margin-top: 3px; font-size: 14px; }
.overview-status span { margin-top: 2px; color: var(--text-2); font: 10px/1.4 var(--mono); }

.metrics-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.metric-card {
  position: relative;
  min-height: 144px;
  padding: 21px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-2);
  background: var(--bg-2);
  box-shadow: var(--shadow);
}
.metric-card::before { content: ""; position: absolute; inset: 0; border-top: 3px solid var(--metric-color, var(--accent)); pointer-events: none; }
.metric-card::after { content: ""; position: absolute; right: 0; bottom: 0; width: 42px; height: 42px; border-right: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2); opacity: .35; }
.metric-card strong { display: block; margin: 17px 0 5px; font: 650 34px/1.05 var(--mono); letter-spacing: -.05em; }
.metric-card small, .metric-label { color: var(--text-2); font-size: 12px; }
.metric-label { font-family: var(--mono); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.metric-card.accent { border-color: rgba(230, 126, 34, .35); background: linear-gradient(145deg, rgba(230, 126, 34, .16), var(--bg-2) 72%); }
.metric-card:nth-child(2) { --metric-color: var(--info); }
.metric-card:nth-child(3) { --metric-color: #a78bfa; }
.metric-card.accent strong, .metric-card.healthy strong { color: var(--accent); }
.metric-card.healthy { --metric-color: var(--success); }
.metric-card.healthy strong { color: var(--success); font-size: 26px; letter-spacing: -.03em; }

.connected-strip { display: flex; align-items: center; gap: 9px; min-height: 42px; margin: -4px 0 18px; padding: 9px 14px; border: 1px solid var(--line); border-radius: var(--radius-2); color: var(--text-2); background: var(--bg-2); font-size: 12px; box-shadow: var(--shadow); }
.connected-strip > span:not(.live-dot) { font-family: var(--mono); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.connected-strip strong { color: var(--text); font: 700 15px/1 var(--mono); }
.connected-strip .connected-separator { color: var(--text-3); }
.connected-strip small { min-width: 0; overflow: hidden; color: var(--text-2); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }

.content-grid { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(310px, .75fr); gap: 18px; }
.panel { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-2); background: linear-gradient(180deg, var(--surface-2), var(--bg-2)); box-shadow: var(--shadow); }
.panel-heading { min-height: 66px; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 15px 20px; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--bg-3) 58%, transparent); }
.panel-heading h2 { margin: 4px 0 0; font-size: 17px; line-height: 1.2; font-weight: 750; }
.panel-heading > a { color: var(--accent); font-size: 12px; font-weight: 700; text-decoration: none; }
.panel-heading > a:hover { color: var(--accent-2); }
.timeline { padding: 6px 20px 12px; }
.timeline-item { display: grid; grid-template-columns: 40px minmax(0, 1fr) 86px; gap: 14px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--line); }
.timeline-item:last-child { border: 0; }
.event-icon { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid rgba(230, 126, 34, .2); border-radius: var(--radius-2); color: var(--accent); background: var(--accent-soft); font: 800 12px/1 var(--mono); }
.event-deleted { color: var(--danger); border-color: rgba(239, 68, 68, .2); background: var(--danger-soft); }
.event-main strong, .event-main span, .event-main small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.event-main strong { font-size: 14px; font-weight: 700; }
.event-main span { color: var(--text-2); font-size: 12px; }
.event-main small { margin-top: 3px; color: var(--text-3); font: 10px/1.4 var(--mono); }
.timeline time { color: var(--text-3); font: 10px/1.4 var(--mono); text-align: right; }
.timeline time strong { display: block; color: var(--text); font-size: 14px; }
.quick-folders { display: grid; padding: 4px 14px 12px; }
.quick-folders a { display: grid; grid-template-columns: 31px minmax(0, 1fr); gap: 10px; align-items: center; padding: 11px 2px; border-bottom: 1px solid var(--line); text-decoration: none; transition: transform var(--transition); }
.quick-folders a:last-child { border: 0; }
.quick-folders a:hover { transform: translateX(2px); }
.quick-folders a > span { width: 29px; height: 29px; display: grid; place-items: center; border: 1px solid var(--line-2); border-radius: var(--radius); color: var(--accent); font: 700 9px/1 var(--mono); }
.quick-folders strong, .quick-folders small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.quick-folders strong { font-size: 13px; }
.quick-folders small { color: var(--text-3); font-size: 11px; }

.filter-bar { display: flex; gap: 9px; align-items: center; margin-bottom: 14px; padding: 12px; border: 1px solid var(--line); border-radius: var(--radius-2); background: var(--bg-2); }
.filter-bar input, .filter-bar select { min-height: 44px; padding: 9px 12px; outline: none; border: 1px solid var(--line); border-radius: var(--radius); color: var(--text); background: var(--bg-3); font-size: 14px; transition: border-color var(--transition); }
.filter-bar input { min-width: 100px; flex: 1; }
.filter-bar input:focus, .filter-bar select:focus, .login-form input:focus { border-color: rgba(230, 126, 34, .6); }
.filter-bar a { color: var(--text-2); font-size: 12px; }
.primary-button { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; padding: 10px 17px; border: 1px solid var(--accent); border-radius: var(--radius); color: #17120e; background: var(--accent); font-weight: 750; cursor: pointer; transition: background var(--transition), border-color var(--transition), transform var(--transition); }
.primary-button:hover { border-color: var(--accent-2); background: var(--accent-2); transform: translateY(-1px); }
.primary-button.compact { min-height: 44px; font-size: 13px; }

.folder-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.folder-card { position: relative; overflow: hidden; padding: 21px; border: 1px solid var(--line); border-radius: var(--radius-2); background: linear-gradient(180deg, var(--surface-2), var(--bg-2)); box-shadow: var(--shadow); transition: border-color var(--transition), transform var(--transition); }
.folder-card::before { content: ""; position: absolute; inset: 0; border-top: 3px solid var(--accent); opacity: .8; pointer-events: none; }
.folder-card:hover { border-color: var(--line-2); transform: translateY(-2px); }
.folder-card-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.folder-code { width: 34px; height: 34px; flex: 0 0 34px; display: grid; place-items: center; border: 1px solid rgba(230, 126, 34, .45); border-radius: var(--radius); color: var(--accent); background: var(--accent-soft); font: 800 10px/1 var(--mono); }
.role-pill { max-width: 70%; overflow: hidden; padding: 4px 7px; border: 1px solid rgba(230, 126, 34, .14); border-radius: var(--radius); color: #d69a65; background: rgba(230, 126, 34, .07); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.folder-card h2 { margin: 17px 0 8px; font-size: 18px; line-height: 1.25; font-weight: 750; }
.folder-card > p { min-height: 48px; color: var(--text-2); font-size: 13px; }
.folder-card dl { margin: 15px 0 0; }
.folder-card dl > div { padding: 9px 0; border-top: 1px solid var(--line); }
.folder-card dt { color: var(--text-3); font: 700 10px/1.3 var(--mono); letter-spacing: .07em; text-transform: uppercase; }
.folder-card dd { margin: 5px 0 0; color: var(--text-2); font-size: 12px; }
.folder-card code { color: #c88c58; font: 10px/1.5 var(--mono); word-break: break-all; }

.table-panel { overflow: hidden; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th { padding: 13px 15px; color: var(--text-3); background: var(--surface-2); font: 700 10px/1.3 var(--mono); letter-spacing: .07em; text-align: left; text-transform: uppercase; }
td { padding: 14px 15px; border-top: 1px solid var(--line); color: var(--text-2); font-size: 12px; vertical-align: top; }
tbody tr:hover { background: rgba(255, 255, 255, .015); }
td strong, td small, td time strong { display: block; }
td strong { color: var(--text); }
td small { max-width: 350px; overflow: hidden; color: var(--text-3); font: 10px/1.5 var(--mono); text-overflow: ellipsis; white-space: nowrap; }
td time { color: var(--text-3); font: 10px/1.4 var(--mono); }
td time strong { color: var(--text); font-size: 12px; }
.action-pill { display: inline-block; padding: 4px 7px; border: 1px solid rgba(230, 126, 34, .16); border-radius: var(--radius); color: var(--accent); background: var(--accent-soft); font-size: 9px; font-weight: 800; }
.action-deleted { color: var(--danger); border-color: rgba(239, 68, 68, .18); background: var(--danger-soft); }
.result-ok { color: var(--success); font-weight: 700; }
.result-error { color: var(--danger); font-weight: 700; }
.pagination { display: flex; gap: 14px; justify-content: center; align-items: center; flex-wrap: wrap; padding: 12px 15px; border-top: 1px solid var(--line); color: var(--text-2); font-size: 10px; text-align: center; }
.pagination a { color: var(--accent); font-weight: 700; }
.empty-state { padding: 28px; color: var(--text-2); font-size: 11px; text-align: center; }
.empty-state.wide { grid-column: 1/-1; border: 1px solid var(--line); border-radius: var(--radius-2); background: var(--bg-2); }

/* Biblioteca y lector de documentación SDD. */
.docs-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(320px, .5fr);
  gap: 28px;
  align-items: center;
  margin-bottom: 24px;
  padding: 30px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-2);
  background: linear-gradient(130deg, rgba(230, 126, 34, .17), transparent 46%), linear-gradient(180deg, var(--surface-2), var(--bg-2));
  box-shadow: var(--shadow);
}
.docs-hero::after { content: "SDD"; position: absolute; right: 16px; top: -28px; color: rgba(230, 126, 34, .04); font: 900 132px/1 var(--mono); letter-spacing: -.12em; pointer-events: none; }
.docs-hero > * { position: relative; z-index: 1; }
.docs-hero h2 { max-width: 780px; margin: 0 0 11px; font-size: clamp(25px, 2.7vw, 39px); line-height: 1.08; letter-spacing: -.045em; }
.docs-hero p { max-width: 790px; margin: 0; color: var(--text-2); font-size: 14px; }
.docs-flow { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 7px; align-items: center; padding: 15px; border: 1px solid var(--line); border-radius: var(--radius-2); background: color-mix(in srgb, var(--bg-3) 78%, transparent); }
.docs-flow span { padding: 10px 7px; border: 1px solid rgba(230, 126, 34, .22); border-radius: var(--radius); color: var(--text); background: var(--accent-soft); font: 700 10px/1.2 var(--mono); text-align: center; text-transform: uppercase; }
.docs-flow b { color: var(--accent); font-size: 14px; }
.docs-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 15px; margin: 0 2px 14px; }
.docs-section-heading h2 { margin: 4px 0 0; font-size: 20px; }
.docs-section-heading > span { color: var(--text-3); font: 700 10px/1.3 var(--mono); text-transform: uppercase; }
.priority-mosaic { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-rows: minmax(154px, auto); gap: 14px; }
.reference-mosaic { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.document-card { --doc-tone: var(--accent); position: relative; min-height: 224px; display: flex; flex-direction: column; padding: 20px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-2); background: linear-gradient(180deg, var(--surface-2), var(--bg-2)); box-shadow: var(--shadow); text-decoration: none; transition: transform var(--transition), border-color var(--transition); }
.document-card::before { content: ""; position: absolute; inset: 0; border-top: 3px solid var(--doc-tone); pointer-events: none; }
.document-card::after { content: ""; position: absolute; width: 100px; height: 100px; right: -48px; bottom: -50px; border: 1px solid color-mix(in srgb, var(--doc-tone) 32%, transparent); border-radius: 50%; pointer-events: none; }
.document-card:hover { border-color: color-mix(in srgb, var(--doc-tone) 45%, var(--line)); transform: translateY(-3px); }
.document-card-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.document-card-top > span, .document-code { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid color-mix(in srgb, var(--doc-tone) 45%, transparent); border-radius: var(--radius); color: var(--doc-tone); background: color-mix(in srgb, var(--doc-tone) 11%, transparent); font: 800 10px/1 var(--mono); }
.document-card-top small, .document-group { color: var(--text-3); font: 700 9px/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.document-card-group { margin-top: 18px; color: var(--doc-tone); font: 800 9px/1.3 var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.document-card h2 { margin: 20px 0 8px; font-size: 19px; }
.document-card p { margin: 0 0 18px; color: var(--text-2); font-size: 13px; }
.document-updated { display: block; margin: auto 0 12px; color: var(--text-3); font: 700 9px/1.35 var(--mono); letter-spacing: .045em; text-transform: uppercase; }
.document-card > strong { margin-top: auto; color: var(--doc-tone); font-size: 11px; }
.document-card > strong span { margin-left: 4px; transition: margin var(--transition); }
.document-card:hover > strong span { margin-left: 9px; }
.priority-card { min-height: 0; padding: 23px; }
.priority-card::after { width: 180px; height: 180px; right: -74px; bottom: -100px; box-shadow: 0 0 0 25px color-mix(in srgb, var(--doc-tone) 3%, transparent); }
.priority-card h2 { margin-top: 9px; font-size: 23px; letter-spacing: -.035em; }
.priority-card p { max-width: 560px; font-size: 13px; line-height: 1.6; }
.priority-plan { grid-column: span 7; grid-row: span 2; min-height: 322px; padding: 28px; background: radial-gradient(circle at 92% 12%, rgba(230, 126, 34, .20), transparent 35%), linear-gradient(145deg, rgba(230, 126, 34, .14), var(--bg-2) 68%); }
.priority-plan .document-card-top > span { width: 46px; height: 46px; font-size: 12px; }
.priority-plan .document-card-group { margin-top: 42px; }
.priority-plan h2 { max-width: 560px; margin-top: 11px; font-size: clamp(29px, 3.2vw, 43px); line-height: 1.02; }
.priority-plan p { max-width: 610px; font-size: 14px; }
.priority-tarea { grid-column: span 5; min-height: 154px; background: linear-gradient(135deg, rgba(167, 139, 250, .14), var(--bg-2) 72%); }
.priority-pendiente { grid-column: span 5; min-height: 154px; background: linear-gradient(135deg, rgba(96, 165, 250, .13), var(--bg-2) 72%); }
.priority-implementado { grid-column: span 6; min-height: 154px; background: linear-gradient(135deg, rgba(34, 197, 94, .12), var(--bg-2) 72%); }
.priority-resumen { grid-column: span 6; min-height: 154px; background: linear-gradient(135deg, rgba(230, 126, 34, .12), var(--bg-2) 72%); }
.library-heading { margin-top: 32px; }
.reference-card { min-height: 190px; padding: 18px; box-shadow: 0 12px 34px rgba(0, 0, 0, .18); }
.reference-card h2 { margin-top: 15px; font-size: 17px; }
.reference-card p { font-size: 12px; }

.backup-dashboard { display: grid; gap: 18px; margin-bottom: 24px; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius-2); background: var(--surface-2); }
.backup-dashboard-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.backup-dashboard-head h3, .backup-list-panel h3 { margin: 4px 0 6px; font-size: 18px; }
.backup-dashboard-head p:not(.eyebrow) { max-width: 720px; margin: 0; color: var(--text-2); font-size: 13px; }
.backup-schedule-heading { display: flex; align-items: end; justify-content: space-between; gap: 12px; border-top: 1px solid var(--line); padding-top: 16px; }
.backup-schedule-heading h3 { margin: 4px 0 0; font-size: 17px; }
.backup-schedule-heading > span { color: var(--text-3); font: 700 10px/1 var(--mono); text-transform: uppercase; }
.backup-live-dot { white-space: nowrap; color: var(--ok); font: 800 10px/1 var(--mono); text-transform: uppercase; }
.backup-live-dot::before { content: ""; display: inline-block; width: 7px; height: 7px; margin-right: 6px; border-radius: 50%; background: var(--ok); }
.backup-schedule-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.backup-status-card { display: grid; gap: 8px; padding: 14px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.backup-status-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.backup-status-top h4 { margin: 0; font-size: 14px; }
.backup-state { padding: 4px 6px; border-radius: 999px; font: 800 9px/1 var(--mono); text-transform: uppercase; }
.backup-state.ok { color: var(--ok); background: color-mix(in srgb, var(--ok) 12%, transparent); }
.backup-state.warning { color: var(--orange); background: color-mix(in srgb, var(--orange) 14%, transparent); }
.backup-state.error { color: #c0392b; background: rgba(192,57,43,.12); }
.backup-status-card strong { color: var(--doc-tone, var(--accent)); font-size: 12px; }
.backup-status-card small { color: var(--text-2); font-size: 11px; }
.backup-status-card code { overflow-wrap: anywhere; color: var(--text-3); font: 10px/1.4 var(--mono); }
.backup-facts { display: grid; gap: 8px; margin: 2px 0 0; }
.backup-facts div { display: grid; grid-template-columns: 105px minmax(0, 1fr); gap: 8px; align-items: start; }
.backup-facts dt, .backup-location span { color: var(--text-3); font: 700 9px/1.4 var(--mono); text-transform: uppercase; }
.backup-facts dd { margin: 0; color: var(--text-2); font-size: 11px; line-height: 1.4; }
.backup-location { display: grid; gap: 4px; padding-top: 8px; border-top: 1px solid var(--line); }
.backup-recent { padding-top: 8px; border-top: 1px solid var(--line); }
.backup-recent summary, .backup-reference summary { cursor: pointer; color: var(--blue); font-size: 11px; font-weight: 800; }
.backup-recent ul { display: grid; gap: 4px; margin: 8px 0 0; padding-left: 16px; }
.backup-recent li { color: var(--text-2); }
.backup-reference { margin: 0 30px 30px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface-2); }
.backup-reference > summary { padding: 13px 16px; }
.backup-reference[open] > summary { border-bottom: 1px solid var(--line); }
.backup-reference .markdown-body { padding-top: 22px; }
.backup-clean { padding: 22px; background: var(--surface); }
.backup-clean-header { display: flex; justify-content: space-between; align-items: flex-start; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.backup-clean-header h3 { margin: 4px 0; font-size: 22px; }
.backup-clean-header p:not(.eyebrow) { margin: 0; color: var(--text-2); font-size: 12px; }
.backup-table-wrap { overflow-x: auto; }
.backup-table { width: 100%; margin: 0; border-collapse: collapse; font-size: 12px; }
.backup-table th { padding: 12px 10px; color: var(--text-3); background: transparent; font: 800 9px/1.3 var(--mono); letter-spacing: .06em; text-align: left; text-transform: uppercase; }
.backup-table td { padding: 15px 10px; border-top: 1px solid var(--line); color: var(--text-2); vertical-align: middle; }
.backup-table td:first-child { min-width: 180px; color: var(--text); }
.backup-table td strong { display: block; color: var(--text); font-size: 12px; }
.backup-table td small { display: block; margin-top: 4px; color: var(--text-3); font-size: 10px; line-height: 1.4; }
.backup-clean-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.backup-clean-columns h4 { margin: 4px 0 9px; font-size: 14px; }
.backup-clean-columns ul { display: grid; gap: 7px; margin: 0; padding-left: 18px; color: var(--text-2); font-size: 12px; line-height: 1.5; }
.backup-info-box { min-width: 0; padding: 16px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-2); }
.backup-info-box .eyebrow { margin: 0; }
.backup-info-box h4 { color: var(--text); }
.backup-info-box li { padding-left: 3px; }
.backup-clean .backup-reference { margin: 20px 0 0; background: var(--surface-2); }
.backup-reference-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; padding: 16px; border-top: 1px solid var(--line); }
.backup-reference-grid > div { display: grid; align-content: start; gap: 7px; min-width: 0; }
.backup-reference-item { padding: 14px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); }
.backup-reference-grid strong { font-size: 11px; }
.backup-reference-grid code { display: block; overflow-wrap: anywhere; padding: 7px 8px; border: 1px solid var(--line); border-radius: 6px; color: var(--text-3); background: var(--bg-3); font: 10px/1.4 var(--mono); }
.backup-reference-label { color: var(--text-3); font: 700 9px/1.3 var(--mono); text-transform: uppercase; }
.backup-reference-grid ul { display: grid; gap: 4px; margin: 0; padding-left: 15px; color: var(--text-2); font-size: 10px; }
.backup-empty { display: block; padding: 8px; border-radius: 6px; color: var(--text-3); background: var(--bg-3); font-size: 10px; }
@media (max-width: 720px) { .backup-clean-header, .backup-clean-columns { display: grid; gap: 16px; } .backup-reference-grid { grid-template-columns: 1fr; } .backup-table th:nth-child(2), .backup-table td:nth-child(2) { display: none; } }

.restore-premium { margin: 0 30px 34px; overflow: hidden; border: 1px solid #2c303a; border-radius: 16px; color: #eef1f7; background: radial-gradient(circle at 88% 0%, rgba(183, 75, 77, .24), transparent 30%), linear-gradient(145deg, #171a21, #242a34); box-shadow: 0 24px 60px rgba(20, 22, 28, .22); }
.restore-hero { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 34px 36px; border-bottom: 1px solid rgba(255,255,255,.1); }
.restore-kicker, .restore-section-head > div > span, .restore-section-label { color: #dca5a5; font: 800 9px/1.3 var(--mono); letter-spacing: .12em; text-transform: uppercase; }
.restore-hero h3 { margin: 9px 0 8px; color: #fff; font-size: clamp(25px, 3vw, 38px); letter-spacing: -.04em; }
.restore-hero p { max-width: 610px; margin: 0; color: #b8bfca; font-size: 13px; line-height: 1.6; }
.restore-shield { display: grid; place-items: center; width: 68px; height: 68px; flex: 0 0 68px; border: 1px solid rgba(220,165,165,.45); border-radius: 50%; color: #f0c1c1; font-size: 32px; }
.restore-metrics { display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid rgba(255,255,255,.1); }
.restore-metrics > div { display: grid; gap: 5px; padding: 22px 28px; border-right: 1px solid rgba(255,255,255,.1); }
.restore-metrics > div:last-child { border-right: 0; }.restore-metrics span, .restore-status-list span, .restore-status-list small { color: #929ba9; font: 700 9px/1.3 var(--mono); text-transform: uppercase; }.restore-metrics strong { color: #fff; font-size: 22px; }.restore-metrics small { color: #aeb6c1; font-size: 10px; }
.restore-section-head { display: flex; justify-content: space-between; align-items: end; gap: 18px; padding: 28px 36px 14px; }.restore-section-head h4, .restore-bottom-grid h4 { margin: 7px 0 0; color: #fff; font-size: 18px; }.restore-section-head > small { color: #9199a5; font-size: 11px; }
.restore-status-list { display: grid; gap: 8px; padding: 0 36px 28px; }.restore-status-list article { display: grid; grid-template-columns: minmax(190px, 1.3fr) minmax(190px, 1.2fr) minmax(150px, 1fr) auto; gap: 18px; align-items: center; padding: 16px; border: 1px solid rgba(255,255,255,.1); border-radius: 10px; background: rgba(255,255,255,.045); }.restore-status-name { display: flex; align-items: center; gap: 12px; }.restore-status-number { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid rgba(220,165,165,.35); border-radius: 7px; color: #e4b0b0 !important; font-size: 10px !important; }.restore-status-name strong, .restore-status-schedule strong, .restore-status-last strong { display: block; margin-top: 5px; color: #f6f7fa; font-size: 12px; }.restore-status-name small { display: block; margin-top: 4px; color: #929ba9; font-size: 10px; }.restore-status-schedule span, .restore-status-last span { color: #929ba9; font: 700 9px/1 var(--mono); text-transform: uppercase; }.restore-status-list .backup-state { justify-self: end; }
.restore-bottom-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; border-top: 1px solid rgba(255,255,255,.1); background: rgba(255,255,255,.1); }.restore-bottom-grid > section { padding: 28px 36px 32px; background: rgba(23,26,33,.85); }.restore-bottom-grid ol { display: grid; gap: 9px; margin: 16px 0 0; padding-left: 19px; color: #b8bfca; font-size: 12px; line-height: 1.5; }.restore-bottom-grid li::marker { color: #dca5a5; font-weight: 800; }.restore-bottom-grid p { margin: 16px 0; color: #b8bfca; font-size: 12px; line-height: 1.7; }.restore-note { margin-top: 18px; padding: 11px 13px; border-left: 2px solid #c98484; color: #e4b0b0; background: rgba(201,132,132,.09); font-size: 11px; line-height: 1.5; }
@media (max-width: 800px) { .restore-hero { padding: 26px 22px; }.restore-metrics > div { padding: 17px 16px; }.restore-section-head, .restore-status-list, .restore-bottom-grid > section { padding-left: 22px; padding-right: 22px; }.restore-status-list article { grid-template-columns: 1fr 1fr; }.restore-status-list .backup-state { justify-self: start; }.restore-bottom-grid { grid-template-columns: 1fr; } }

.backup-live-dashboard { margin: 0; overflow: hidden; border: 1px solid #dfe3eb; border-radius: 18px; background: #f7f8fb; color: #202633; box-shadow: 0 20px 55px rgba(31, 38, 54, .12); }
.backup-live-header { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 30px 34px; background: #fff; border-bottom: 1px solid #e5e8ef; }.backup-live-kicker, .backup-section-title span { color: #7b63b5; font: 800 9px/1.3 var(--mono); letter-spacing: .12em; }.backup-live-header h2 { margin: 8px 0 5px; color: #202633; font-size: 32px; letter-spacing: -.05em; }.backup-live-header p { margin: 0; color: #7e8796; font-size: 13px; }.backup-live-badge { padding: 8px 11px; border: 1px solid #bde6d5; border-radius: 999px; color: #23865f; background: #effbf5; font: 800 9px/1 var(--mono); }.backup-live-badge i { display: inline-block; width: 7px; height: 7px; margin-right: 5px; border-radius: 50%; background: #38b982; }
.backup-overview { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 14px; padding: 22px 34px; }.backup-score, .backup-kpi { display: flex; align-items: center; gap: 18px; min-height: 126px; padding: 18px; border: 1px solid #e1e5ed; border-radius: 13px; background: #fff; }.backup-score > div:last-child { display: grid; gap: 4px; }.backup-score span, .backup-kpi span { color: #8891a0; font: 800 9px/1.3 var(--mono); text-transform: uppercase; }.backup-score h3 { margin: 4px 0; font-size: 15px; }.backup-score p { margin: 0; color: #8b94a2; font-size: 11px; line-height: 1.4; }.backup-ring { position: relative; width: 82px; height: 82px; flex: 0 0 82px; }.backup-ring svg { width: 100%; height: 100%; transform: rotate(-90deg); }.backup-ring circle { fill: none; stroke: #ecebf4; stroke-width: 9; }.backup-ring .progress { stroke: #7b63b5; stroke-linecap: round; stroke-dasharray: 302; stroke-dashoffset: 0; }.backup-ring strong, .backup-ring small { position: absolute; left: 0; width: 100%; text-align: center; }.backup-ring strong { top: 27px; color: #272d3a; font-size: 20px; }.backup-ring small { top: 50px; color: #929aa7; font-size: 9px; }.backup-kpi { display: grid; align-content: center; gap: 7px; }.backup-kpi strong { color: #292f3c; font-size: 18px; }.backup-kpi small { color: #929aa7; font-size: 10px; }
.backup-visual-section { margin: 0 34px 22px; padding: 22px; border: 1px solid #e1e5ed; border-radius: 13px; background: #fff; }.backup-section-title { display: flex; justify-content: space-between; align-items: end; gap: 15px; margin-bottom: 22px; }.backup-section-title h3 { margin: 7px 0 0; color: #272d3a; font-size: 18px; }.backup-section-title small { color: #939ba8; font-size: 10px; }
.backup-timeline { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; padding: 6px 0 2px; }.timeline-line { position: absolute; top: 22px; left: 7%; right: 7%; height: 2px; background: #e5e7ee; }.timeline-item { position: relative; display: grid; gap: 7px; padding-top: 34px; }.timeline-item b { color: #7b63b5; font: 800 10px/1.3 var(--mono); }.timeline-item strong { font-size: 13px; }.timeline-item small { color: #929aa7; font-size: 11px; }.timeline-dot { position: absolute; top: 15px; left: 0; width: 15px; height: 15px; border: 3px solid #fff; border-radius: 50%; box-shadow: 0 0 0 2px #7b63b5; background: #7b63b5; }.timeline-dot.orange { box-shadow: 0 0 0 2px #df8a49; background: #df8a49; }.timeline-dot.blue { box-shadow: 0 0 0 2px #5d8ec8; background: #5d8ec8; }
.backup-module-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }.backup-module-card { padding: 16px; border: 1px solid #e2e6ed; border-radius: 11px; background: #fbfcfe; }.backup-module-top { display: flex; justify-content: space-between; align-items: center; }.module-icon { display: grid; place-items: center; width: 31px; height: 26px; border-radius: 7px; color: #7b63b5; background: #eeeafb; font: 800 9px/1 var(--mono); }.backup-module-card h4 { margin: 15px 0 6px; font-size: 14px; }.backup-module-card p { min-height: 30px; margin: 0; color: #7e8796; font-size: 11px; }.backup-module-card .backup-bar { height: 5px; margin: 16px 0 10px; overflow: hidden; border-radius: 99px; background: #e9ebf1; }.backup-module-card .backup-bar i { display: block; height: 100%; border-radius: inherit; background: #7b63b5; }.backup-module-foot { display: flex; justify-content: space-between; gap: 8px; }.backup-module-foot span, .backup-module-foot strong { font-size: 10px; }.backup-module-foot span { color: #9aa2ae; }.backup-module-foot strong { color: #4f5868; text-align: right; }.backup-retention { display: block; margin-top: 9px; color: #9aa2ae; font-size: 10px; }
.backup-restore-flow { margin-bottom: 34px; }.restore-steps { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr; gap: 10px; align-items: center; }.restore-steps > div { display: grid; gap: 6px; padding: 14px; border-radius: 10px; background: #f5f2fd; }.restore-steps b { color: #7b63b5; font: 800 10px/1 var(--mono); }.restore-steps strong { font-size: 12px; }.restore-steps small { color: #929aa7; font-size: 10px; }.restore-steps em { color: #b7afcf; font-size: 20px; font-style: normal; }
@media (max-width: 850px) { .backup-live-header, .backup-overview { display: grid; }.backup-overview, .backup-module-grid { grid-template-columns: 1fr; }.backup-timeline { grid-template-columns: 1fr; padding-left: 26px; }.timeline-line { top: 7px; bottom: 7px; left: 7px; width: 2px; height: auto; }.timeline-item { padding-top: 0; padding-left: 0; }.timeline-dot { top: 0; left: -26px; }.restore-steps { grid-template-columns: 1fr; }.restore-steps em { display: none; }.backup-visual-section { margin-left: 18px; margin-right: 18px; }.backup-live-header { padding: 24px; } }

/* Backups · presentación premium en tarjetas */
.backup-premium { --bp-ink:#18202d; --bp-muted:#738095; --bp-line:#e5e9f0; display:grid; gap:24px; max-width:1400px; margin:0 auto; color:var(--bp-ink); }
.backup-premium__hero { position:relative; display:flex; align-items:center; justify-content:space-between; gap:30px; overflow:hidden; padding:36px 40px; border:1px solid rgba(130,104,190,.22); border-radius:20px; background:linear-gradient(120deg,#171d2b 0%,#25233b 58%,#493b67 100%); box-shadow:0 18px 50px rgba(24,28,43,.18); }
.backup-premium__intro { position:relative; z-index:1; max-width:720px; }.backup-premium__eyebrow { color:#c7b5ef; font:800 10px/1.4 var(--mono); letter-spacing:.14em; }.backup-premium__intro h2 { margin:10px 0 8px; color:#fff; font-size:clamp(28px,4vw,42px); line-height:1.05; letter-spacing:-.045em; }.backup-premium__intro p { max-width:650px; margin:0; color:#bbc0cd; font-size:14px; line-height:1.6; }
.backup-premium__live { position:relative; z-index:1; display:flex; align-items:center; gap:11px; min-width:190px; padding:13px 16px; border:1px solid rgba(255,255,255,.12); border-radius:12px; background:rgba(255,255,255,.07); backdrop-filter:blur(8px); }.backup-premium__live>span { width:9px; height:9px; flex:0 0 auto; border-radius:50%; background:#55d89d; box-shadow:0 0 0 5px rgba(85,216,157,.12); }.backup-premium__live div { display:grid; gap:3px; }.backup-premium__live small { color:#929baa; font:700 8px/1 var(--mono); letter-spacing:.12em; }.backup-premium__live strong { color:#fff; font-size:12px; }
.backup-premium__summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }.backup-premium__summary article { display:flex; align-items:center; gap:15px; min-height:108px; padding:20px 22px; border:1px solid var(--bp-line); border-radius:16px; background:var(--surface,#fff); box-shadow:0 8px 25px rgba(34,43,60,.06); }.summary-icon { display:grid; place-items:center; width:42px; height:42px; flex:0 0 42px; border-radius:12px; font-size:20px; font-weight:700; }.summary-icon--violet{color:#7654bd;background:#f0ebfb}.summary-icon--green{color:#23885f;background:#e8f8f0}.summary-icon--blue{color:#3574ba;background:#eaf2fb}.backup-premium__summary div { display:grid; gap:3px; }.backup-premium__summary small { color:var(--bp-muted); font:800 8px/1.3 var(--mono); letter-spacing:.1em; }.backup-premium__summary strong { color:var(--text,var(--bp-ink)); font-size:20px; }.backup-premium__summary p { margin:0; color:var(--text-2,var(--bp-muted)); font-size:11px; }
.backup-premium__section,.backup-premium__recovery { padding:28px; border:1px solid var(--bp-line); border-radius:20px; background:var(--surface-2,#f7f8fb); }.backup-premium__section-head { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:22px; }.backup-premium__section-head span { color:#8066b9; font:800 9px/1.3 var(--mono); letter-spacing:.13em; }.backup-premium__section-head h3 { margin:6px 0 0; color:var(--text,var(--bp-ink)); font-size:20px; letter-spacing:-.025em; }.backup-premium__section-head p { margin:0; color:var(--text-2,var(--bp-muted)); font-size:11px; }
.backup-premium__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }.backup-premium__card { --card-accent:#8061c4; overflow:hidden; border:1px solid var(--bp-line); border-top:3px solid var(--card-accent); border-radius:15px; background:var(--surface,#fff); box-shadow:0 10px 28px rgba(29,38,55,.07); }.backup-premium__card--amber{--card-accent:#d88d32}.backup-premium__card--blue{--card-accent:#3e7fc4}.backup-premium__card>header { display:flex; align-items:center; justify-content:space-between; padding:18px 20px 0; }.backup-premium__type { display:grid; place-items:center; width:38px; height:38px; border-radius:10px; color:var(--card-accent); background:color-mix(in srgb,var(--card-accent) 11%,transparent); font:900 10px/1 var(--mono); }.backup-premium__state { display:flex; align-items:center; gap:6px; padding:7px 9px; border-radius:999px; font:800 8px/1 var(--mono); text-transform:uppercase; }.backup-premium__state i { width:6px; height:6px; border-radius:50%; background:currentColor; }.backup-premium__state--ok{color:#23885f;background:#eaf8f1}.backup-premium__state--warning{color:#b57120;background:#fff5e5}.backup-premium__state--error{color:#bd3e3e;background:#fdecec}.backup-premium__card-title { padding:18px 20px 16px; border-bottom:1px solid var(--bp-line); }.backup-premium__card-title small { color:var(--bp-muted); font:800 8px/1 var(--mono); letter-spacing:.1em; }.backup-premium__card-title h4 { margin:7px 0 0; color:var(--text,var(--bp-ink)); font-size:18px; }.backup-premium__card dl { display:grid; gap:0; margin:0; padding:5px 20px; }.backup-premium__card dl div { padding:13px 0; border-bottom:1px solid var(--bp-line); }.backup-premium__card dl div:last-child { border:0; }.backup-premium__card dt { margin-bottom:5px; color:var(--bp-muted); font-size:9px; }.backup-premium__card dd { margin:0; color:var(--text,var(--bp-ink)); font-size:12px; font-weight:700; line-height:1.45; }.backup-premium__card>footer { display:flex; justify-content:space-between; gap:12px; padding:13px 20px; background:color-mix(in srgb,var(--card-accent) 5%,transparent); font-size:9px; }.backup-premium__card>footer span { color:var(--bp-muted); }.backup-premium__card>footer strong { color:var(--text,var(--bp-ink)); text-align:right; }
.backup-premium__recovery { background:var(--surface,#fff); }.backup-premium__recovery ol { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:0; padding:0; list-style:none; }.backup-premium__recovery li { display:flex; align-items:center; gap:12px; min-height:76px; padding:15px; border:1px solid var(--bp-line); border-radius:12px; background:var(--surface-2,#f7f8fb); }.backup-premium__recovery li b { color:#8d73c7; font:800 12px/1 var(--mono); }.backup-premium__recovery li div { display:grid; gap:4px; }.backup-premium__recovery li strong { color:var(--text,var(--bp-ink)); font-size:12px; }.backup-premium__recovery li span { color:var(--text-2,var(--bp-muted)); font-size:9px; }
@media(max-width:1000px){.backup-premium__grid{grid-template-columns:1fr}.backup-premium__recovery ol{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.backup-premium__hero,.backup-premium__section-head{display:grid}.backup-premium__hero{padding:28px 24px}.backup-premium__summary{grid-template-columns:1fr}.backup-premium__section,.backup-premium__recovery{padding:20px}.backup-premium__recovery ol{grid-template-columns:1fr}.backup-premium__section-head p{line-height:1.5}}

/* Variante Looply oscura solicitada para el panel de backups */
.backup-looply { --bp-bg:#151515; --bp-panel:#1c1c1c; --bp-panel-2:#212121; --bp-panel-3:#272727; --bp-line:#303030; --bp-ink:#e7e7ea; --bp-muted:#88888f; position:relative; gap:16px; max-width:none; padding:0 0 24px; border:1px solid #292929; border-radius:8px; background-color:var(--bp-bg); background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px); background-size:40px 40px; overflow:hidden; }
.backup-looply__bar { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:54px; padding:8px 18px; border-bottom:1px solid var(--bp-line); background:#1b1b1b; }.backup-looply__bar>div { display:flex; align-items:center; gap:11px; }.backup-looply__bar>div>div { display:grid; gap:3px; }.backup-looply__bar strong { color:#ececef; font-size:13px; }.backup-looply__bar small { color:#626269; font:500 9px/1.2 var(--mono); }.backup-looply__mark { display:grid; place-items:center; width:30px; height:30px; border:1px solid rgba(230,126,34,.25); border-radius:6px; color:#e67e22; background:rgba(230,126,34,.08); }.backup-looply__mark svg,.backup-looply .summary-icon svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }.backup-looply__engine { display:flex; align-items:center; gap:7px; padding:6px 10px; border:1px solid #343434; border-radius:5px; color:#8d8d94; background:#242424; font:700 8px/1 var(--mono); }.backup-looply__engine i { width:6px; height:6px; border-radius:50%; background:#e67e22; box-shadow:0 0 7px rgba(230,126,34,.8); }
.backup-looply .backup-premium__hero { margin:4px 20px 0; padding:32px; border:1px solid #353535; border-radius:8px; background:linear-gradient(115deg,#1c1c1c 0%,#211d1a 70%,#2b2118 100%); box-shadow:0 15px 35px rgba(0,0,0,.22); }.backup-looply .backup-premium__eyebrow { color:#e67e22; font-size:9px; }.backup-looply .backup-premium__intro h2 { color:#f1f1f3; font-size:clamp(27px,4vw,39px); }.backup-looply .backup-premium__intro p { color:#8a8a90; }.backup-looply .backup-premium__live { min-width:180px; border-color:#3a332d; border-radius:6px; background:#24211f; backdrop-filter:none; }.backup-looply .backup-premium__live>span { width:7px; height:7px; background:#e67e22; box-shadow:0 0 7px #e67e22; }.backup-looply .backup-premium__live small { color:#6f6f74; }.backup-looply .backup-premium__live strong { color:#d8d8dc; }
.backup-looply .backup-premium__summary { margin:0 20px; gap:12px; }.backup-looply .backup-premium__summary article { min-height:98px; padding:18px; border-color:var(--bp-line); border-radius:7px; background:var(--bp-panel); box-shadow:0 8px 20px rgba(0,0,0,.18); transition:transform .2s,border-color .2s; }.backup-looply .backup-premium__summary article:hover { transform:translateY(-2px); border-color:#454545; }.backup-looply .summary-icon { width:38px; height:38px; flex-basis:38px; border:1px solid rgba(230,126,34,.2); border-radius:6px; color:#e67e22; background:rgba(230,126,34,.08); }.backup-looply .backup-premium__summary small { color:#66666d; }.backup-looply .backup-premium__summary strong { color:#ededf0; font-size:18px; }.backup-looply .backup-premium__summary p { color:#74747b; }
.backup-looply .backup-premium__section,.backup-looply .backup-premium__recovery { margin:0 20px; padding:24px; border-color:var(--bp-line); border-radius:8px; background:var(--bp-panel); }.backup-looply .backup-premium__section-head span { color:#e67e22; }.backup-looply .backup-premium__section-head h3 { color:#ebebee; }.backup-looply .backup-premium__section-head p { color:#74747b; }
.backup-looply .backup-premium__grid { gap:13px; }.backup-looply .backup-premium__card,.backup-looply .backup-premium__card--amber,.backup-looply .backup-premium__card--blue { --card-accent:#e67e22; border-color:#323232; border-top:1px solid #3a3a3a; border-radius:7px; background:var(--bp-panel-2); box-shadow:0 9px 24px rgba(0,0,0,.2); transition:transform .2s,border-color .2s,box-shadow .2s; }.backup-looply .backup-premium__card:hover { transform:translateY(-3px); border-color:rgba(230,126,34,.48); box-shadow:0 14px 32px rgba(0,0,0,.3),inset 0 0 0 1px rgba(230,126,34,.05); }.backup-looply .backup-premium__type { border:1px solid rgba(230,126,34,.22); border-radius:6px; color:#e67e22; background:rgba(230,126,34,.08); }.backup-looply .backup-premium__card-title { border-color:#303030; }.backup-looply .backup-premium__card-title small,.backup-looply .backup-premium__card dt { color:#66666d; }.backup-looply .backup-premium__card-title h4,.backup-looply .backup-premium__card dd { color:#e2e2e7; }.backup-looply .backup-premium__card dl div { border-color:#303030; }.backup-looply .backup-premium__card>footer { border-top:1px solid #303030; color:#77777e; background:#1d1d1d; }.backup-looply .backup-premium__card>footer strong { color:#aaaab0; }.backup-looply .backup-premium__state--ok { color:#5fc59b; background:rgba(14,110,79,.18); }.backup-looply .backup-premium__state--warning { color:#e6a158; background:rgba(230,126,34,.11); }.backup-looply .backup-premium__state--error { color:#df7474; background:rgba(133,28,28,.2); }
.backup-looply .backup-premium__recovery li { border-color:#303030; border-radius:6px; background:var(--bp-panel-2); }.backup-looply .backup-premium__recovery li b { color:#e67e22; }.backup-looply .backup-premium__recovery li strong { color:#dedee2; }.backup-looply .backup-premium__recovery li span { color:#73737a; }
@media(max-width:700px){.backup-looply .backup-premium__hero,.backup-looply .backup-premium__summary,.backup-looply .backup-premium__section,.backup-looply .backup-premium__recovery{margin-left:12px;margin-right:12px}.backup-looply__bar{padding:8px 12px}.backup-looply__bar small{display:none}.backup-looply .backup-premium__hero{padding:24px}.backup-looply .backup-premium__live{min-width:0}}

/* El panel de backups sigue el mismo tema claro del servidor */
:root[data-theme="light"] .backup-looply { --bp-bg:var(--bg); --bp-panel:var(--surface); --bp-panel-2:var(--surface-2); --bp-panel-3:var(--bg-3); --bp-line:var(--line); --bp-ink:var(--text); --bp-muted:var(--text-2); border-color:var(--line)!important; background:var(--bg)!important; color:var(--text)!important; }
:root[data-theme="light"] .backup-looply__bar { border-color:var(--line)!important; background:var(--surface)!important; }
:root[data-theme="light"] .backup-looply__bar strong { color:var(--text); }
:root[data-theme="light"] .backup-looply__bar small { color:var(--text-3); }
:root[data-theme="light"] .backup-looply__engine { border-color:var(--line); color:var(--text-2); background:var(--bg-3); }
:root[data-theme="light"] .backup-looply .backup-premium__hero { border-color:var(--line)!important; background:linear-gradient(135deg,rgba(230,126,34,.10),transparent 46%),linear-gradient(180deg,var(--surface-2),var(--bg-2))!important; box-shadow:var(--shadow); }
:root[data-theme="light"] .backup-looply .backup-premium__intro h2 { color:var(--text); }
:root[data-theme="light"] .backup-looply .backup-premium__intro p { color:var(--text-2); }
:root[data-theme="light"] .backup-looply .backup-premium__live { border-color:var(--line); background:rgba(255,255,255,.72); }
:root[data-theme="light"] .backup-looply .backup-premium__live small { color:var(--text-3); }
:root[data-theme="light"] .backup-looply .backup-premium__live strong { color:var(--text); }
:root[data-theme="light"] .backup-looply .backup-premium__summary article { border-color:var(--line)!important; background:var(--surface)!important; box-shadow:var(--shadow); }
:root[data-theme="light"] .backup-looply .backup-premium__summary article:hover { border-color:rgba(230,126,34,.38)!important; }
:root[data-theme="light"] .backup-looply .backup-premium__summary small { color:var(--text-3); }
:root[data-theme="light"] .backup-looply .backup-premium__summary strong { color:var(--text); }
:root[data-theme="light"] .backup-looply .backup-premium__summary p { color:var(--text-2); }
:root[data-theme="light"] .backup-looply .backup-premium__section,
:root[data-theme="light"] .backup-looply .backup-premium__recovery { border-color:var(--line)!important; background:var(--surface)!important; }
:root[data-theme="light"] .backup-looply .backup-premium__section-head h3 { color:var(--text); }
:root[data-theme="light"] .backup-looply .backup-premium__section-head p { color:var(--text-2); }
:root[data-theme="light"] .backup-looply .backup-premium__card { border-color:var(--line)!important; background:var(--surface-2)!important; box-shadow:var(--shadow); }
:root[data-theme="light"] .backup-looply .backup-premium__card:hover { border-color:rgba(230,126,34,.48)!important; }
:root[data-theme="light"] .backup-looply .backup-premium__card-title,
:root[data-theme="light"] .backup-looply .backup-premium__card dl div { border-color:var(--line); }
:root[data-theme="light"] .backup-looply .backup-premium__card-title small,
:root[data-theme="light"] .backup-looply .backup-premium__card dt { color:var(--text-3); }
:root[data-theme="light"] .backup-looply .backup-premium__card-title h4,
:root[data-theme="light"] .backup-looply .backup-premium__card dd { color:var(--text); }
:root[data-theme="light"] .backup-looply .backup-premium__card>footer { border-color:var(--line); background:var(--bg-3); }
:root[data-theme="light"] .backup-looply .backup-premium__card>footer span { color:var(--text-3); }
:root[data-theme="light"] .backup-looply .backup-premium__card>footer strong { color:var(--text-2); }
:root[data-theme="light"] .backup-looply .backup-premium__recovery li { border-color:var(--line); background:var(--surface-2); }
:root[data-theme="light"] .backup-looply .backup-premium__recovery li strong { color:var(--text); }
:root[data-theme="light"] .backup-looply .backup-premium__recovery li span { color:var(--text-2); }
.backup-list-panel { padding-top: 4px; border-top: 1px solid var(--line); }
.backup-list-panel ul { display: grid; gap: 7px; margin: 10px 0 0; padding-left: 20px; color: var(--text-2); font-size: 13px; }

@media (max-width: 900px) { .backup-schedule-grid { grid-template-columns: 1fr; } .backup-dashboard-head { display: grid; } }
.tone-green { --doc-tone: var(--success); }
.tone-blue { --doc-tone: var(--info); }
.tone-violet { --doc-tone: #a78bfa; }
.tone-red { --doc-tone: var(--danger); }
.tone-orange { --doc-tone: var(--accent); }

.docs-breadcrumbs { display: flex; gap: 8px; align-items: center; margin: -6px 0 14px; color: var(--text-3); font: 700 10px/1.4 var(--mono); }
.docs-breadcrumbs a { color: var(--accent); text-decoration: none; }
.docs-breadcrumbs strong { color: var(--text-2); }
.docs-reader-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 18px; align-items: start; }
.docs-index { position: sticky; top: 86px; max-height: calc(100vh - 110px); overflow-y: auto; }
.docs-index-heading { padding: 17px 16px 13px; border-bottom: 1px solid var(--line); }
.docs-index-heading h2 { margin: 4px 0 0; font-size: 16px; }
.docs-index nav { display: grid; padding: 7px; }
.docs-index-link { display: grid; grid-template-columns: 29px minmax(0, 1fr); gap: 9px; align-items: center; padding: 9px; border: 1px solid transparent; border-radius: var(--radius); color: var(--text-2); text-decoration: none; }
.docs-index-link > span { color: var(--text-3); font: 700 9px/1 var(--mono); }
.docs-index-link strong, .docs-index-link small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.docs-index-link strong { font-size: 12px; }
.docs-index-link small { color: var(--text-3); font-size: 9px; text-transform: uppercase; }
.docs-index-link:hover { color: var(--text); background: var(--bg-3); }
.docs-index-link.active { color: var(--accent); border-color: rgba(230, 126, 34, .22); background: var(--accent-soft); }
.docs-index-link.active > span { color: var(--accent); }
.markdown-panel { min-width: 0; }
.markdown-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; padding: 25px 30px; border-bottom: 1px solid var(--line); background: linear-gradient(120deg, rgba(230, 126, 34, .10), transparent 46%), var(--surface-2); }
.markdown-header h2 { margin: 5px 0 6px; font-size: 25px; letter-spacing: -.035em; }
.markdown-header p { max-width: 720px; margin: 0; color: var(--text-2); font-size: 13px; }
.markdown-header .document-updated { margin: 12px 0 0; color: var(--text-3); }
.document-code { flex: 0 0 40px; width: 40px; height: 40px; }
.markdown-body { max-width: 1020px; padding: 30px clamp(22px, 4vw, 54px) 60px; color: var(--text-2); font-size: 14px; line-height: 1.75; }
.markdown-body > :first-child { margin-top: 0; }
.markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4 { color: var(--text); line-height: 1.25; letter-spacing: -.025em; scroll-margin-top: 90px; }
.markdown-body h1 { margin: 0 0 28px; padding-bottom: 16px; border-bottom: 1px solid var(--line); font-size: clamp(27px, 3vw, 38px); }
.markdown-body h2 { margin: 40px 0 14px; padding-left: 13px; border-left: 3px solid var(--accent); font-size: 23px; }
.markdown-body h3 { margin: 28px 0 10px; font-size: 18px; }
.markdown-body h4 { margin: 24px 0 9px; font-size: 15px; }
.markdown-body p { margin: 0 0 15px; }
.markdown-body a { color: var(--accent); text-underline-offset: 3px; }
.markdown-body ul, .markdown-body ol { margin: 0 0 18px; padding-left: 25px; }
.markdown-body li { margin: 5px 0; padding-left: 3px; }
.markdown-body li::marker { color: var(--accent); }
.markdown-body blockquote { margin: 20px 0; padding: 13px 16px; border-left: 3px solid var(--info); color: var(--text-2); background: rgba(96, 165, 250, .07); }
.markdown-body blockquote p:last-child { margin-bottom: 0; }
.markdown-body code { padding: 2px 5px; border: 1px solid var(--line); border-radius: 4px; color: #e5a66e; background: var(--bg-3); font: 12px/1.5 var(--mono); overflow-wrap: anywhere; }
.markdown-body pre { margin: 18px 0; padding: 17px; overflow-x: auto; border: 1px solid var(--line-2); border-radius: var(--radius-2); background: #111; }
.markdown-body pre code { padding: 0; border: 0; color: #d8dee9; background: transparent; white-space: pre; overflow-wrap: normal; }
.markdown-body table { margin: 18px 0 25px; border: 1px solid var(--line); }
.markdown-body th { background: var(--bg-3); }
.markdown-body td { line-height: 1.5; }
.markdown-body hr { margin: 34px 0; border: 0; border-top: 1px solid var(--line); }

.sql-catalog { padding: 0 clamp(22px, 4vw, 54px) 54px; }
.sql-catalog-header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, 300px); gap: 22px; align-items: end; padding: 25px 0 20px; border-top: 1px solid var(--line); }
.sql-catalog-header h2 { margin: 5px 0 7px; font-size: 24px; letter-spacing: -.03em; }
.sql-catalog-header p:not(.eyebrow) { max-width: 680px; margin: 0; color: var(--text-2); font-size: 13px; line-height: 1.6; }
.sql-catalog-search span { display: block; margin-bottom: 7px; color: var(--text-3); font: 700 9px/1.3 var(--mono); text-transform: uppercase; }
.sql-catalog-search input { width: 100%; min-height: 40px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 9px; outline: none; color: var(--text); background: var(--bg-3); }
.sql-catalog-search input:focus { border-color: var(--accent); }
.sql-query-list { display: grid; gap: 8px; }
.sql-query { overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: var(--bg-2); }
.sql-query[open] { border-color: rgba(230, 126, 34, .4); }
.sql-query[hidden] { display: none; }
.sql-query summary { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 11px; align-items: center; padding: 11px 13px; cursor: pointer; list-style: none; }
.sql-query summary::-webkit-details-marker { display: none; }
.sql-query summary:hover { background: var(--bg-3); }
.sql-query-number { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid rgba(230, 126, 34, .3); border-radius: 8px; color: var(--accent); background: var(--accent-soft); font: 800 9px/1 var(--mono); }
.sql-query summary strong { font-size: 12px; }
.sql-query summary small { color: var(--text-3); font: 700 9px/1 var(--mono); text-transform: uppercase; }
.sql-query-code { position: relative; border-top: 1px solid var(--line); background: #101114; }
.sql-query-code button { position: absolute; top: 10px; right: 10px; z-index: 1; padding: 7px 9px; border: 1px solid #3a3d43; border-radius: 7px; color: #d8dee9; background: #1b1d21; font: 700 9px/1 var(--mono); cursor: pointer; }
.sql-query-code button:hover { border-color: var(--accent); color: #fff; }
.sql-query-code pre { max-height: 520px; margin: 0; padding: 48px 17px 18px; overflow: auto; color: #d8dee9; font: 12px/1.65 var(--mono); white-space: pre; }
.sql-query-code code { font: inherit; }
.sql-catalog-empty { padding: 24px; color: var(--text-3); text-align: center; }

@media (max-width: 720px) {
  .sql-catalog-header { grid-template-columns: 1fr; }
  .sql-query summary { grid-template-columns: 34px minmax(0, 1fr); }
  .sql-query summary small { display: none; }
}

.login-page { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: var(--bg); }
.login-page::after { content: ""; position: fixed; width: min(520px, 80vw); height: min(520px, 80vw); border-radius: 50%; background: rgba(230, 126, 34, .07); filter: blur(90px); pointer-events: none; }
.login-card { position: relative; z-index: 1; width: min(100%, 460px); padding: 38px; border: 1px solid var(--line-2); border-top: 4px solid var(--accent); border-radius: var(--radius-2); background: linear-gradient(180deg, var(--surface-2), var(--bg-2)); box-shadow: var(--shadow); }
.login-brand { margin: -5px 0 30px; padding: 0; border: 0; }
.login-card h1 { margin: 10px 0 13px; font-size: 32px; line-height: 1.15; font-weight: 750; letter-spacing: -.045em; }
.login-copy { color: var(--text-2); font-size: 14px; }
.login-form { display: grid; gap: 7px; margin-top: 22px; }
.login-form label { margin-top: 7px; color: var(--text-3); font: 700 10px/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.login-form input { min-height: 46px; padding: 10px 12px; outline: none; border: 1px solid var(--line); border-radius: var(--radius); color: var(--text); background: var(--bg-3); }
.login-form .remember-row { display: grid; grid-template-columns: 18px 1fr; align-items: center; gap: 10px; margin-top: 11px; cursor: pointer; text-transform: none; }
.login-form .remember-row input { display: block; width: 18px; height: 18px; min-height: 0; margin: 0; padding: 0; accent-color: var(--accent); cursor: pointer; transform: translateY(3px); }
.login-form .remember-row span { display: block; line-height: 18px; }
.login-form button { margin-top: 11px; }
.form-error { padding: 9px 10px; border: 1px solid rgba(239, 68, 68, .2); border-radius: var(--radius); color: #f38b8b; background: var(--danger-soft); font-size: 11px; }
.login-note { display: block; margin-top: 21px; color: var(--text-3); font: 9px/1.4 var(--mono); text-align: center; text-transform: uppercase; }
.login-theme-toggle { position: fixed; top: 20px; right: 20px; z-index: 5; }
.permission-card h1 { max-width: 360px; }
.permission-back { width: 100%; margin-top: 24px; text-decoration: none; }

/* Explorador documental */
.explorer-hero { display: flex; justify-content: space-between; gap: 28px; align-items: end; margin: 28px 0 20px; padding: 30px; border: 1px solid var(--line); border-radius: var(--radius-2); background: linear-gradient(120deg, var(--surface-2), var(--bg-2)); }
.explorer-hero h2 { max-width: 720px; margin: 9px 0 8px; font-size: clamp(24px, 3vw, 38px); line-height: 1.08; letter-spacing: -.045em; }
.explorer-hero p { max-width: 720px; margin: 0; color: var(--text-2); }
.explorer-summary { display: flex; gap: 9px; flex: 0 0 auto; }
.explorer-summary div { min-width: 104px; padding: 15px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--bg-3); }
.explorer-summary strong, .explorer-summary span { display: block; }
.explorer-summary strong { color: var(--accent); font: 800 25px/1 var(--mono); }
.explorer-summary span { margin-top: 7px; color: var(--text-3); font: 700 9px/1 var(--mono); text-transform: uppercase; }
.explorer-shell { min-height: 620px; display: grid; grid-template-columns: 230px minmax(0, 1fr); padding: 0; overflow: hidden; }
.explorer-tree { padding: 22px 13px; border-right: 1px solid var(--line); background: var(--bg-2); }
.explorer-tree-title { display: flex; gap: 10px; align-items: center; padding: 0 8px 18px; border-bottom: 1px solid var(--line); }
.explorer-tree-title > span { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 5px; color: #17120e; background: var(--accent); font: 900 10px/1 var(--mono); }
.explorer-tree-title strong, .explorer-tree-title small { display: block; }
.explorer-tree-title strong { font-size: 13px; }
.explorer-tree-title small { color: var(--text-3); font: 9px/1.4 var(--mono); text-transform: uppercase; }
.explorer-tree nav { display: grid; gap: 3px; margin-top: 15px; }
.tree-link { padding: 8px 10px; overflow: hidden; border-radius: 5px; color: var(--text-2); font-size: 12px; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; transition: var(--transition); }
.tree-link::before { content: "▰"; margin-right: 8px; color: #d99a4e; }
.tree-link:hover, .tree-link.active { color: var(--text); background: var(--bg-3); }
.tree-link.active { color: var(--accent); background: var(--accent-soft); box-shadow: inset 3px 0 0 var(--accent); }
.tree-empty { padding: 10px; color: var(--text-3); }
.explorer-workspace { min-width: 0; padding: 20px; }
.explorer-toolbar { min-height: 38px; display: flex; justify-content: space-between; gap: 16px; align-items: center; }
.explorer-breadcrumbs { display: flex; gap: 7px; align-items: center; min-width: 0; overflow: hidden; font-size: 13px; white-space: nowrap; }
.explorer-breadcrumbs a { color: var(--text-2); text-decoration: none; }
.explorer-breadcrumbs a:hover { color: var(--accent); }
.explorer-breadcrumbs span { color: var(--text-3); }
.explorer-breadcrumbs strong { overflow: hidden; text-overflow: ellipsis; }
.view-switch { display: flex; padding: 3px; border: 1px solid var(--line); border-radius: 6px; background: var(--bg-3); }
.view-switch button { width: 31px; height: 28px; padding: 0; border: 0; border-radius: 4px; color: var(--text-3); background: transparent; cursor: pointer; }
.view-switch button.active { color: var(--accent); background: var(--surface); }
.explorer-search { height: 44px; display: flex; gap: 10px; align-items: center; margin: 15px 0 19px; padding: 0 13px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--bg-3); }
.explorer-search > span { color: var(--text-3); font-size: 20px; }
.explorer-search input { width: 100%; border: 0; outline: 0; color: var(--text); background: transparent; }
.explorer-search a { color: var(--accent); font-size: 11px; text-decoration: none; }
.file-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(185px, 1fr)); gap: 10px; }
.file-card { min-width: 0; min-height: 174px; display: flex; flex-direction: column; padding: 16px; border: 1px solid var(--line); border-radius: var(--radius-2); color: var(--text); background: var(--surface-2); text-decoration: none; transition: border-color var(--transition), transform var(--transition), box-shadow var(--transition); }
.file-card:hover { border-color: rgba(230,126,34,.5); transform: translateY(-2px); box-shadow: 0 13px 28px rgba(0,0,0,.14); }
.file-icon { width: 45px; height: 42px; display: grid; place-items: center; margin-bottom: 14px; border-radius: 8px; color: #d99a4e; background: rgba(217,154,78,.12); font-size: 25px; }
.kind-pdf .file-icon { color: #ef6262; background: rgba(239,68,68,.11); }
.kind-spreadsheet .file-icon { color: #36b870; background: rgba(34,197,94,.11); }
.kind-image .file-icon { color: #7ca8f7; background: rgba(96,165,250,.12); }
.file-info { min-width: 0; }
.file-info strong, .file-info small { display: block; }
.file-info strong { min-height: 39px; overflow: hidden; font-size: 13px; line-height: 1.45; overflow-wrap: anywhere; }
.file-info small, .file-card time { color: var(--text-3); font: 9px/1.4 var(--mono); }
.file-card time { margin-top: auto; padding-top: 12px; }
.file-action { margin-top: 8px; color: var(--accent); font-size: 10px; font-weight: 700; }
.file-grid.list-view { display: grid; grid-template-columns: 1fr; gap: 4px; }
.file-grid.list-view .file-card { min-height: 58px; display: grid; grid-template-columns: 38px minmax(180px, 1fr) 130px 80px; gap: 12px; align-items: center; padding: 8px 12px; }
.file-grid.list-view .file-icon { width: 35px; height: 35px; margin: 0; font-size: 19px; }
.file-grid.list-view .file-info strong { min-height: 0; white-space: nowrap; text-overflow: ellipsis; }
.file-grid.list-view .file-card time, .file-grid.list-view .file-action { margin: 0; padding: 0; }
.explorer-empty { grid-column: 1 / -1; min-height: 300px; display: grid; place-items: center; align-content: center; color: var(--text-3); text-align: center; }
.explorer-empty > span { font-size: 42px; }
.explorer-empty h3 { margin: 8px 0 0; color: var(--text); }
.explorer-empty p { margin: 4px 0; }

/* Tareas y notificaciones */
.notification-menu { position: relative; }
.notification-menu summary { position: relative; width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--text-2); background: var(--bg-3); font-size: 22px; cursor: pointer; list-style: none; }
.notification-menu summary::-webkit-details-marker { display: none; }
.notification-menu summary b { position: absolute; top: -5px; right: -5px; min-width: 18px; height: 18px; display: grid; place-items: center; padding: 0 4px; border: 2px solid var(--bg); border-radius: 10px; color: white; background: var(--danger); font: 800 9px/1 var(--mono); }
.notification-menu summary b[hidden], .notification-popover form[hidden] { display: none !important; }
.notification-popover { position: absolute; top: 46px; right: 0; z-index: 40; width: min(360px, calc(100vw - 24px)); overflow: hidden; border: 1px solid var(--line-2); border-radius: var(--radius-2); background: var(--bg-2); box-shadow: var(--shadow); }
.notification-popover header { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--line); }
.notification-popover header span { color: var(--text-3); font-size: 11px; }
.notification-header-actions { display: flex; align-items: center; gap: 8px; }
.notification-popover .notification-settings-toggle { display: grid; place-items: center; width: 28px; height: 28px; padding: 0; border: 1px solid var(--line); border-radius: 8px; color: var(--text-2); background: var(--surface); transition: color .2s ease, border-color .2s ease, background .2s ease, transform .2s ease; }
.notification-popover .notification-settings-toggle:hover { color: var(--accent); border-color: color-mix(in srgb, var(--accent) 45%, var(--line)); background: var(--accent-soft); }
.notification-popover .notification-settings-toggle[aria-expanded="true"] { color: var(--accent); border-color: color-mix(in srgb, var(--accent) 45%, var(--line)); background: var(--accent-soft); transform: rotate(-12deg); }
.notification-settings-toggle svg { width: 15px; height: 15px; }
.notification-items > a { display: flex; gap: 10px; padding: 12px 15px; border-bottom: 1px solid var(--line); text-decoration: none; }
.notification-items > a > span { color: var(--accent); }
.notification-items > a strong, .notification-items > a small { display: block; }
.notification-items > a strong { font-size: 12px; }
.notification-items > a small { margin-top: 3px; color: var(--text-3); font-size: 10px; }
.notification-items > p { padding: 22px 16px; color: var(--text-3); text-align: center; }
.notification-popover form { padding: 9px; }
.notification-popover button { width: 100%; padding: 8px; border: 0; color: var(--accent); background: transparent; cursor: pointer; }
.notification-settings { display: grid; gap: 8px; max-height: 520px; padding: 13px 15px 15px; overflow: hidden; border-top: 1px solid var(--line); opacity: 1; background: var(--bg-3); transition: max-height .28s ease, padding .28s ease, opacity .2s ease, border-color .28s ease; }
.notification-settings.is-collapsed { max-height: 0; padding-top: 0; padding-bottom: 0; border-top-color: transparent; opacity: 0; pointer-events: none; }
.notification-settings > strong { margin-bottom: 2px; font-size: 11px; }
.notification-settings label { display: flex; gap: 8px; align-items: center; color: var(--text-2); font-size: 11px; cursor: pointer; }
.notification-settings input { width: 15px; height: 15px; margin: 0; accent-color: var(--accent); }
.notification-settings [hidden] { display: none !important; }
.notification-settings .notification-field { display: grid; grid-template-columns: 78px 1fr; gap: 8px; }
.notification-settings select { min-width: 0; width: 100%; padding: 7px 8px; border: 1px solid var(--line); border-radius: 5px; color: var(--text); background: var(--surface); font-size: 10px; }
.notification-settings .notification-volume { display: grid; grid-template-columns: 48px 1fr 36px; gap: 8px; margin-top: 3px; }
.notification-settings .notification-volume input { width: 100%; height: 18px; cursor: pointer; }
.notification-settings .notification-volume output { color: var(--accent); font: 700 9px/1 var(--mono); text-align: right; }
.notification-settings button { margin-top: 3px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); }
.notification-settings small { color: var(--text-3); font-size: 9px; }
.message-stack { margin: 14px 0; }
.app-message { padding: 11px 14px; border: 1px solid rgba(34,197,94,.24); border-radius: var(--radius); color: var(--success); background: var(--success-soft); }
.tasks-hero { display: flex; justify-content: space-between; gap: 30px; align-items: end; margin: 28px 0 16px; padding: 29px; border: 1px solid var(--line); border-radius: var(--radius-2); background: linear-gradient(120deg, var(--surface-2), var(--bg-2)); }
.tasks-hero h2 { margin: 8px 0 7px; font-size: clamp(25px,3vw,38px); line-height: 1.1; letter-spacing: -.045em; }
.tasks-hero p { max-width: 700px; margin: 0; color: var(--text-2); }
.tasks-hero .primary-button { flex: 0 0 auto; text-decoration: none; }
.task-stats { display: flex; gap: 9px; margin-bottom: 15px; }
.task-stats div { min-width: 120px; padding: 13px 15px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface-2); }
.task-stats strong, .task-stats span { display: block; }
.task-stats strong { font: 800 24px/1 var(--mono); }
.task-stats span { margin-top: 6px; color: var(--text-3); font: 700 9px/1 var(--mono); text-transform: uppercase; }
.danger { color: var(--danger) !important; }
.task-tabs { display: flex; gap: 4px; margin: 0 0 13px; border-bottom: 1px solid var(--line); }
.task-tabs a { padding: 11px 15px; border-bottom: 2px solid transparent; color: var(--text-3); font-size: 12px; font-weight: 700; text-decoration: none; }
.task-tabs a.active { border-color: var(--accent); color: var(--accent); }
.task-board { display: grid; grid-template-columns: repeat(auto-fill,minmax(280px,1fr)); gap: 11px; }
.task-card { min-height: 250px; display: flex; flex-direction: column; padding: 18px; border: 1px solid var(--line); border-top: 3px solid var(--line-2); border-radius: var(--radius-2); background: var(--surface-2); text-decoration: none; transition: var(--transition); }
.task-card:hover { border-color: rgba(230,126,34,.5); transform: translateY(-2px); box-shadow: var(--shadow); }
.task-card.priority-high { border-top-color: #f0a34a; }.task-card.priority-urgent { border-top-color: var(--danger); }
.task-card.overdue { background: linear-gradient(160deg,rgba(239,68,68,.07),var(--surface-2)); }
.task-card-top { display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.task-status, .task-priority, .priority-pill { display: inline-flex; padding: 5px 8px; border-radius: 20px; font: 700 9px/1 var(--mono); text-transform: uppercase; }
.task-status { color: var(--info); background: rgba(96,165,250,.12); }.status-approved { color: var(--success); background: var(--success-soft); }.status-delivered { color: #a78bfa; background: rgba(167,139,250,.12); }.status-changes_requested,.status-cancelled { color: var(--danger); background: var(--danger-soft); }
.task-priority { color: var(--text-3); background: var(--bg-3); }
.task-card h3 { margin: 17px 0 7px; font-size: 17px; line-height: 1.25; }
.task-card > p { margin: 0; color: var(--text-2); font-size: 12px; }
.task-destination { margin-top: 15px; overflow: hidden; color: var(--text-3); font: 9px/1.4 var(--mono); text-overflow: ellipsis; white-space: nowrap; }.task-destination span { margin-right: 6px; color: #d99a4e; }
.task-card footer { display: flex; justify-content: space-between; gap: 10px; align-items: center; margin-top: auto; padding-top: 17px; border-top: 1px solid var(--line); }
.task-card footer > span { display: flex; gap: 7px; align-items: center; font-size: 11px; }.task-card footer b { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 50%; color: #17120e; background: var(--accent); font-size: 9px; }.task-card time { color: var(--text-3); font: 10px/1 var(--mono); }
.task-empty { grid-column: 1/-1; min-height: 220px; display: grid; place-items: center; }
.task-form-layout,.task-detail-grid { display: grid; grid-template-columns: minmax(0,1fr) 310px; gap: 16px; margin-top: 28px; }
.task-form-panel header,.task-main > header { padding: 24px; border-bottom: 1px solid var(--line); }.task-form-panel header h2,.task-main h2 { margin: 5px 0 7px; font-size: 25px; }.task-form-panel header p,.task-main header p { color: var(--text-2); }
.business-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding: 24px; }.form-field.wide,.form-actions { grid-column: 1/-1; }.form-field label { display: block; margin-bottom: 6px; color: var(--text-3); font: 700 9px/1 var(--mono); letter-spacing: .07em; text-transform: uppercase; }.form-field input,.form-field select,.form-field textarea { width: 100%; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--radius); outline: 0; color: var(--text); background: var(--bg-3); }.form-field textarea { resize: vertical; }.form-field input:focus,.form-field select:focus,.form-field textarea:focus { border-color: var(--accent); }.field-error { display: block; margin-top: 5px; color: var(--danger); }.form-actions { display: flex; justify-content: flex-end; gap: 15px; align-items: center; }.form-actions > a { color: var(--text-3); text-decoration: none; }
.task-help { padding: 24px; }.task-help > span { display: grid; width: 31px; height: 31px; place-items: center; margin-top: 20px; border-radius: 50%; color: var(--accent); background: var(--accent-soft); font: 800 10px/1 var(--mono); }.task-help > span:first-child { margin-top: 0; }.task-help h3 { margin: 10px 0 5px; }.task-help p { color: var(--text-2); font-size: 12px; }
.task-detail-breadcrumb { display: flex; gap: 8px; margin-top: 23px; color: var(--text-3); font-size: 12px; }.task-detail-breadcrumb a { text-decoration: none; }.task-detail-breadcrumb strong { color: var(--text); }
.task-created-prompt { display: flex; justify-content: space-between; gap: 18px; align-items: center; margin-top: 14px; padding: 17px 19px; border: 1px solid rgba(34,197,94,.28); border-radius: var(--radius-2); background: var(--success-soft); box-shadow: var(--shadow); }
.task-created-prompt > div { display: flex; gap: 12px; align-items: center; }
.task-created-prompt > div > span { flex: 0 0 auto; width: 35px; height: 35px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--success); font-weight: 850; }
.task-created-prompt strong { display: block; color: var(--text); }
.task-created-prompt p { margin: 3px 0 0; color: var(--text-2); font-size: 11px; }
.task-created-prompt nav { display: flex; gap: 8px; }
.secondary-button { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; padding: 10px 17px; border: 1px solid var(--line-2); border-radius: var(--radius); color: var(--text-2); background: var(--surface); text-decoration: none; font-weight: 700; transition: var(--transition); }
.secondary-button:hover { border-color: var(--accent); color: var(--accent); }
.task-delete-zone { display: flex; justify-content: space-between; gap: 18px; align-items: center; margin: 0 24px 24px; padding: 16px 18px; border: 1px solid rgba(239,68,68,.24); border-radius: var(--radius); background: var(--danger-soft); }
.task-delete-zone strong { display: block; color: var(--danger); }
.task-delete-zone p { margin: 3px 0 0; color: var(--text-2); font-size: 11px; }
.task-delete-zone button { min-height: 38px; padding: 8px 13px; border: 1px solid rgba(239,68,68,.45); border-radius: var(--radius); color: #fff; background: var(--danger); cursor: pointer; font-weight: 750; }
.task-delete-zone button:hover { filter: brightness(1.08); }
.cron-card { cursor: default; }
.cron-card.is-paused { opacity: .64; }
.cron-schedule-summary { margin: 14px 0; padding: 9px 11px; border-radius: var(--radius); color: var(--accent); background: var(--accent-soft); font: 700 9px/1.4 var(--mono); }
.cron-card-actions { display: flex; gap: 7px; align-items: center; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.cron-card-actions a,.cron-card-actions button { min-height: 34px; display: inline-flex; align-items: center; padding: 7px 11px; border: 1px solid var(--line); border-radius: var(--radius); color: var(--text-2); background: var(--surface); text-decoration: none; cursor: pointer; font: 700 9px/1 var(--mono); }
.cron-card-actions a:hover,.cron-card-actions button:hover { border-color: var(--accent); color: var(--accent); }
.cron-card-actions button.danger { color: var(--danger); }
.cron-run-state { display: grid; gap: 3px; margin: 10px 0; color: var(--text-2); }
.cron-run-state span { color: var(--text-3); font: 700 8px/1 var(--mono); text-transform: uppercase; }
.cron-run-state strong { font-size: 12px; }
.cron-run-state small { color: var(--text-3); font-size: 9px; }
.cron-history { margin-top: 11px; padding-top: 10px; border-top: 1px solid var(--line); }
.cron-history summary { color: var(--text-2); cursor: pointer; font-size: 10px; font-weight: 700; }
.cron-history p { margin: 8px 0 0; color: var(--text-3); font-size: 9px; }
.task-main > header { display: flex; justify-content: space-between; gap: 20px; }.priority-pill { height: max-content; color: var(--accent); background: var(--accent-soft); }.task-meta { display: grid; grid-template-columns: repeat(2,1fr); margin: 0; padding: 4px 24px 22px; }.task-meta div { padding: 16px 0; border-bottom: 1px solid var(--line); }.task-meta dt { color: var(--text-3); font: 700 9px/1 var(--mono); text-transform: uppercase; }.task-meta dd { margin: 6px 0 0; font-size: 13px; }.task-meta a { color: var(--accent); }.task-update { padding: 22px 24px; border-top: 1px solid var(--line); }.task-update h3 { margin: 0; }.compact-form { grid-template-columns: 1fr; padding: 17px 0 0; }.compact-form button { justify-self: end; }
.task-history > header { padding: 20px; border-bottom: 1px solid var(--line); }.task-history h2 { margin: 4px 0 0; }.task-history > div { padding: 10px 17px; }.task-history article { display: grid; grid-template-columns: 31px 1fr; gap: 10px; padding: 13px 0; border-bottom: 1px solid var(--line); }.task-history article > span { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 50%; color: #17120e; background: var(--accent); font: 800 9px/1 var(--mono); }.task-history article strong,.task-history article small { display: block; }.task-history article strong { font-size: 12px; }.task-history article small { color: var(--text-3); font-size: 9px; }.task-history article p { margin: 7px 0 0; color: var(--text-2); font-size: 11px; }

@media (max-width: 1100px) {
  .explorer-shell { grid-template-columns: 190px minmax(0, 1fr); }
  .overview-hero { grid-template-columns: 1fr; }
  .overview-status { width: min(100%, 360px); }
  .metrics-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .content-grid { grid-template-columns: 1fr; }
  .folder-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reference-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .docs-hero { grid-template-columns: 1fr; }
  .priority-plan { grid-column: span 12; grid-row: auto; min-height: 280px; }
  .priority-tarea, .priority-pendiente, .priority-implementado, .priority-resumen { grid-column: span 6; }
}
@media (max-width: 760px) {
  .sidebar-collapse-toggle { display: none; }
  .sidebar-collapsed .sidebar { transform: none; opacity: 1; pointer-events: auto; }
  .app-shell { display: block; }
  .sidebar { position: sticky; top: 0; z-index: 50; width: 100%; height: auto; padding: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .sidebar .brand { min-height: 58px; margin: 0; padding: 9px 64px 9px 14px; }
  .mobile-nav-toggle { position: absolute; top: 9px; right: 10px; width: 45px; height: 40px; display: grid; grid-template-columns: 18px auto; grid-template-rows: repeat(3, 4px); column-gap: 5px; align-content: center; align-items: center; justify-content: center; padding: 7px; border: 1px solid var(--line-2); border-radius: var(--radius); color: var(--text); background: var(--bg-3); cursor: pointer; }
  .mobile-nav-toggle span { grid-column: 1; width: 18px; height: 2px; display: block; border-radius: 2px; background: currentColor; transition: transform var(--transition), opacity var(--transition); }
  .mobile-nav-toggle strong { grid-column: 2; grid-row: 1 / 4; display: none; font-size: 11px; }
  .mobile-nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .mobile-nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .mobile-nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .sidebar nav { display: none; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; max-height: calc(100svh - 58px); margin: 0; padding: 10px 12px 14px; overflow-y: auto; border-top: 1px solid var(--line); }
  .sidebar.mobile-open nav { display: grid; }
  .sidebar nav::before { display: none; }
  .sidebar-footer { display: none; }
  .nav-link { justify-content: flex-start; gap: 8px; min-height: 48px; padding: 10px 9px; font-size: 11px; line-height: 1.2; }
  .nav-link.active { border-left: 1px solid rgba(230, 126, 34, .3); border-bottom: 2px solid var(--accent); border-radius: var(--radius); }
  .main-content { padding: 0 12px 34px; }
  .topbar { position: static; min-height: 60px; margin: 0 -12px 14px; padding: 8px 12px; gap: 8px; }
  .topbar-left { gap: 8px; }
  .topbar-icon { width: 34px; height: 34px; flex-basis: 34px; }
  .topbar h1 { max-width: 42vw; overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
  .topbar .eyebrow { display: none; }
  .topbar-actions { gap: 6px; }
  .notification-menu summary, .theme-toggle { width: 42px; height: 42px; }
  .user-menu { gap: 3px; }
  .user-menu > div { display: none; }
  .user-menu .avatar { display: none; }
  .link-button { min-height: 42px; padding: 7px; }
  .notification-popover { position: fixed; top: 66px; right: 8px; left: 8px; width: auto; max-height: calc(100svh - 76px); overflow-y: auto; }
  .filter-bar.multi { align-items: stretch; flex-direction: column; }
  .overview-hero { padding: 20px; }
  .panel-heading { align-items: flex-start; padding: 14px; }
  .connected-strip { flex-wrap: wrap; }
  .connected-strip small { flex-basis: 100%; white-space: normal; }
  .timeline-item { grid-template-columns: 32px minmax(0, 1fr); }
  .timeline time { display: none; }
  .timeline { padding-inline: 14px; }
  .event-main strong, .event-main span, .event-main small { white-space: normal; overflow-wrap: anywhere; }
  .table-wrap { margin: 0; -webkit-overflow-scrolling: touch; }
  table { min-width: 680px; }
  .docs-reader-layout { grid-template-columns: 1fr; }
  .docs-index { position: static; max-height: none; }
  .docs-index nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .markdown-header { padding: 20px; }
  .markdown-body { padding: 23px 20px 44px; }
  .explorer-hero { align-items: stretch; flex-direction: column; padding: 22px; }
  .explorer-shell { display: block; }
  .explorer-tree { border-right: 0; border-bottom: 1px solid var(--line); }
  .explorer-tree nav { display: flex; overflow-x: auto; padding-bottom: 4px; }
  .tree-link { flex: 0 0 auto; max-width: 220px; }
  .file-grid.list-view .file-card { grid-template-columns: 38px minmax(120px, 1fr) 78px; }
  .file-grid.list-view .file-card time { display: none; }
  .tasks-hero { align-items: stretch; flex-direction: column; }
  .tasks-hero .primary-button { width: 100%; }
  .task-form-layout,.task-detail-grid { grid-template-columns: 1fr; }
  .task-created-prompt { align-items: stretch; flex-direction: column; }
  .task-created-prompt nav { display: grid; grid-template-columns: 1fr; }
  .task-delete-zone { align-items: stretch; flex-direction: column; margin: 0 18px 18px; }
  .task-delete-zone button { width: 100%; }
  .cron-card-actions { align-items: stretch; flex-direction: column; }
  .cron-card-actions form,.cron-card-actions a,.cron-card-actions button { width: 100%; justify-content: center; }
  .business-form,.task-meta { grid-template-columns: 1fr; }
  .form-field.wide,.form-actions { grid-column: 1; }
  .form-field input,.form-field select,.form-field textarea,.login-form input { min-height: 48px; font-size: 16px; }
  .form-actions { align-items: stretch; flex-direction: column-reverse; }
  .form-actions .primary-button { width: 100%; }
  .task-main > header { align-items: flex-start; flex-direction: column-reverse; }
  .task-meta dd { overflow-wrap: anywhere; }
}
@media (max-width: 520px) {
  .metrics-grid, .folder-grid, .reference-mosaic { grid-template-columns: 1fr; }
  .filter-bar:not(.multi) { align-items: stretch; flex-direction: column; }
  .sidebar nav { grid-template-columns: 1fr; }
  .login-page { align-items: flex-start; padding: 64px 12px 20px; }
  .login-card { width: 100%; padding: 24px 20px; }
  .login-card h1 { font-size: clamp(28px, 9vw, 38px); }
  .overview-hero, .tasks-hero { margin-top: 0; padding: 18px; }
  .overview-copy h2, .tasks-hero h2 { font-size: 25px; }
  .overview-status { min-width: 0; padding: 13px; }
  .metric-card { min-height: 120px; padding: 17px; }
  .task-stats { display: grid; grid-template-columns: repeat(2, 1fr); }
  .task-stats div { min-width: 0; }
  .task-tabs { overflow-x: auto; }
  .task-tabs a { flex: 0 0 auto; min-height: 44px; }
  .task-board { grid-template-columns: 1fr; }
  .task-card { min-height: 220px; }
  .business-form, .task-form-panel header, .task-main > header, .task-update { padding: 18px; }
  .task-meta { padding: 4px 18px 18px; }
  .docs-hero { padding: 21px; }
  .docs-flow { grid-template-columns: 1fr; }
  .docs-flow b { transform: rotate(90deg); text-align: center; }
  .docs-index nav { grid-template-columns: 1fr; }
  .priority-mosaic { display: grid; grid-template-columns: 1fr; grid-auto-rows: auto; }
  .priority-plan, .priority-tarea, .priority-pendiente, .priority-implementado, .priority-resumen { grid-column: 1; min-height: 220px; }
  .priority-plan { min-height: 275px; padding: 23px; }
  .priority-plan .document-card-group { margin-top: 28px; }
  .explorer-summary { width: 100%; }
  .explorer-summary div { min-width: 0; flex: 1; }
  .explorer-workspace { padding: 14px; }
  .explorer-toolbar { align-items: flex-start; }
  .explorer-breadcrumbs { flex-wrap: wrap; white-space: normal; }
  .file-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .file-card { min-height: 160px; padding: 12px; }
  .file-grid.list-view .file-card { grid-template-columns: 34px minmax(100px, 1fr); }
  .file-grid.list-view .file-action { display: none; }
}
@media (max-width: 380px) {
  .main-content { padding-inline: 9px; }
  .topbar { margin-inline: -9px; padding-inline: 9px; }
  .topbar h1 { max-width: 36vw; }
  .notification-menu summary, .theme-toggle { width: 38px; height: 38px; }
  .file-grid { grid-template-columns: 1fr; }
  .file-card { min-height: 142px; }
  .markdown-header { gap: 12px; padding: 17px; }
  .markdown-body { padding: 20px 16px 38px; }
}

/* Asistente integrado: la administracion de OpenClaw sigue fuera del dashboard. */
.assistant-page { display: grid; gap: 18px; padding-bottom: 28px; }
.assistant-hero { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 28px 32px; border: 1px solid var(--line); border-radius: 22px; background: var(--surface); }
.assistant-hero h2 { margin: 5px 0 8px; font-size: clamp(28px, 4vw, 48px); }
.assistant-hero p { margin: 0; color: var(--muted); }
.assistant-status { display: grid; grid-template-columns: 13px minmax(0, 1fr); gap: 3px 10px; min-width: 280px; padding: 16px; border: 1px solid var(--line); border-radius: 16px; }
.assistant-status > span { width: 11px; height: 11px; margin-top: 4px; border-radius: 50%; background: #32b56b; box-shadow: 0 0 0 5px rgba(50,181,107,.13); }
.assistant-status small { grid-column: 2; color: var(--muted); }
.assistant-chat { overflow: hidden; border: 1px solid var(--line); border-radius: 22px; background: var(--surface); }
.assistant-messages { display: flex; flex-direction: column; gap: 16px; min-height: 420px; max-height: 58vh; overflow-y: auto; padding: 28px; }
.assistant-message { display: flex; gap: 12px; max-width: min(760px, 88%); }
.assistant-message > span { display: grid; place-items: center; flex: 0 0 36px; width: 36px; height: 36px; border-radius: 12px; background: var(--bg-3); font-size: 12px; font-weight: 800; }
.assistant-avatar { flex: 0 0 36px; width: 36px; height: 36px; border: 1px solid rgba(230, 126, 34, .42); border-radius: 50%; object-fit: cover; box-shadow: 0 4px 14px rgba(0, 0, 0, .18); }
.assistant-message div { padding: 13px 16px; border: 1px solid var(--line); border-radius: 4px 16px 16px; background: var(--surface-2); }
.assistant-message p { margin: 5px 0 0; line-height: 1.55; white-space: pre-wrap; }
.assistant-message.is-user { align-self: flex-end; flex-direction: row-reverse; }
.assistant-message.is-user div { border-radius: 16px 4px 16px 16px; background: var(--accent); color: #fff; }
.assistant-message.is-waiting { opacity: .66; }
.assistant-message.is-error div { border-color: #c94d4d; }
.assistant-composer { display: flex; align-items: flex-end; gap: 10px; padding: 16px; border-top: 1px solid var(--line); }
.assistant-composer textarea { flex: 1; min-height: 48px; max-height: 150px; resize: vertical; padding: 13px 15px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-2); color: inherit; font: inherit; }
.assistant-send,.assistant-voice-toggle,.assistant-settings-toggle { min-height: 48px; padding: 0 18px; border: 0; border-radius: 14px; cursor: pointer; font-weight: 750; }
.assistant-send { background: var(--accent); color: #fff; }
.assistant-voice-toggle { color: var(--text-2); background: var(--bg-3); }
.assistant-voice-toggle.is-active { color: #32a866; box-shadow: inset 0 0 0 1px #32a866; }
.assistant-settings-toggle { min-width: 48px; color: var(--text-2); background: var(--bg-3); font-size: 18px; }
.assistant-settings-toggle.is-active { color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.assistant-voice-settings { display: flex; flex-wrap: wrap; gap: 10px 18px; padding: 0 18px 14px; border-top: 1px solid var(--line); }
.assistant-voice-settings.is-collapsed { display: none; }
.assistant-voice-settings > header { display: flex; align-items: center; justify-content: space-between; flex: 1 0 100%; padding-top: 14px; }
.assistant-voice-settings > header button { width: 30px; height: 30px; border: 0; border-radius: 8px; color: var(--text); background: var(--bg-3); cursor: pointer; font-size: 20px; }
.assistant-voice-settings label { display: grid; grid-template-columns: auto minmax(180px, 1fr); align-items: center; gap: 9px; padding-top: 13px; color: var(--muted); font-size: 12px; }
.assistant-voice-settings .assistant-voice-enabled { grid-template-columns: auto 1fr; flex-basis: 100%; }
.assistant-voice-settings select { min-height: 36px; max-width: 330px; padding: 6px 9px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface-2); color: var(--text); }
.assistant-chat > footer { display: flex; justify-content: space-between; gap: 14px; padding: 0 18px 14px; color: var(--muted); }
.assistant-chat > footer button { border: 0; background: none; color: var(--accent); cursor: pointer; }

/* Modal lateral: controles compactos y ordenados. */
.drawer-assistant { display: flex; flex: 1; min-height: 0; gap: 0; padding: 0; }
.drawer-assistant .assistant-messages { flex: 1; min-height: 0; max-height: none; padding: 22px; }
.drawer-assistant .assistant-composer { display: grid; grid-template-columns: auto auto minmax(120px, 1fr); align-items: center; gap: 8px; padding: 14px 16px 12px; background: var(--surface); }
.drawer-assistant .assistant-composer textarea { grid-column: 1 / -1; width: 100%; min-height: 74px; resize: none; border-radius: 13px; }
.drawer-assistant .assistant-voice-toggle { min-width: 0; min-height: 42px; padding: 0 13px; border: 1px solid var(--line); border-radius: 11px; background: transparent; font-size: 12px; }
.drawer-assistant .assistant-settings-toggle { min-width: 42px; min-height: 42px; padding: 0; border: 1px solid var(--line); border-radius: 11px; background: transparent; font-size: 16px; }
.drawer-assistant .assistant-send { justify-self: end; min-width: 112px; min-height: 42px; padding: 0 20px; border-radius: 11px; }
.drawer-assistant .assistant-voice-settings { display: grid; gap: 12px; margin: 0 16px 12px; padding: 15px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-2); box-shadow: 0 12px 32px rgba(0,0,0,.08); }
.drawer-assistant .assistant-voice-settings.is-collapsed { display: none; }
.drawer-assistant .assistant-voice-settings > header { padding: 0 0 9px; border-bottom: 1px solid var(--line); }
.drawer-assistant .assistant-voice-settings label { grid-template-columns: 120px minmax(0, 1fr); gap: 10px; padding: 0; }
.drawer-assistant .assistant-voice-settings .assistant-voice-enabled { grid-template-columns: auto 1fr; }
.drawer-assistant .assistant-voice-settings select { width: 100%; max-width: none; }
.drawer-assistant > footer { display: flex; justify-content: space-between; gap: 12px; padding: 0 18px 14px; color: var(--muted); font-size: 11px; }
.drawer-assistant > footer button { border: 0; background: none; color: var(--accent); cursor: pointer; }

/* El modal conserva el compositor original; la voz vive en el dropdown del encabezado. */
.assistant-drawer-panel { position: absolute; }
.assistant-drawer-actions { display: flex; align-items: center; gap: 5px; }
.assistant-drawer-header .assistant-header-settings { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid transparent; border-radius: 10px; background: transparent; color: var(--text-2); font-size: 17px; transition: var(--transition); }
.assistant-drawer-header .assistant-header-settings:hover,
.assistant-drawer-header .assistant-header-settings.is-active { border-color: var(--line); color: var(--accent); background: var(--bg-3); }
.drawer-assistant .assistant-composer { display: flex; align-items: flex-end; gap: 10px; padding: 16px; }
.drawer-assistant .assistant-composer textarea { width: auto; min-height: 48px; resize: vertical; }
.drawer-assistant .assistant-send { justify-self: auto; min-width: auto; min-height: 48px; padding: 0 18px; border-radius: 14px; }
.drawer-assistant .assistant-voice-settings { position: absolute; z-index: 12; top: 68px; right: 14px; width: min(350px, calc(100% - 28px)); max-height: calc(100vh - 90px); margin: 0; padding: 16px; overflow-y: auto; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); box-shadow: 0 18px 55px rgba(0,0,0,.24); }
.drawer-assistant .assistant-voice-settings > header { padding: 0 0 11px; }
.drawer-assistant .assistant-settings-secondary { display: grid; gap: 8px; margin-top: 3px; padding-top: 13px; border-top: 1px solid var(--line); }
.drawer-assistant .assistant-settings-secondary button { min-height: 38px; border: 1px solid var(--line); border-radius: 10px; color: var(--text); background: var(--bg-3); cursor: pointer; font-weight: 700; }
.drawer-assistant .assistant-settings-secondary button:hover { border-color: var(--accent); color: var(--accent); }
.drawer-assistant .assistant-settings-secondary small { color: var(--muted); font-size: 10px; line-height: 1.4; }

/* El historial ocupa el espacio disponible y el compositor queda anclado abajo. */
.drawer-assistant { display: flex; flex: 1; flex-direction: column; min-height: 0; gap: 0; padding: 0; overflow: hidden; }
.drawer-assistant .assistant-messages { display: flex; flex: 1 1 auto; width: 100%; min-width: 0; min-height: 0; max-height: none; margin: 0; padding: 20px 18px; overflow-x: hidden; overflow-y: auto; scrollbar-gutter: auto; }
.drawer-assistant .assistant-messages { scrollbar-width: none; -ms-overflow-style: none; }
.drawer-assistant .assistant-messages::-webkit-scrollbar { width: 0; height: 0; display: none; }
.drawer-assistant .assistant-composer { flex: 0 0 auto; width: 100%; margin-top: auto; padding: 14px 16px 16px; background: var(--surface); box-shadow: 0 -12px 30px rgba(0,0,0,.035); }
.drawer-assistant .assistant-composer textarea { min-width: 0; }

/* Centro de análisis: presentaciones locales reutilizables para Sofía. */
.analysis-hero { display: flex; justify-content: space-between; gap: 28px; align-items: flex-end; margin-bottom: 20px; padding: 28px 30px; border: 1px solid var(--line); border-radius: var(--radius-2); background: radial-gradient(circle at 88% 12%, rgba(230,126,34,.18), transparent 26%), linear-gradient(135deg, var(--surface-2), var(--bg-2)); box-shadow: var(--shadow); }
.analysis-hero h2 { max-width: 700px; margin: 6px 0 8px; font-size: clamp(25px, 3vw, 38px); letter-spacing: -.04em; }
.analysis-hero p:last-child { max-width: 820px; margin: 0; color: var(--text-2); }
.analysis-live { flex: 0 0 auto; padding: 8px 11px; border: 1px solid rgba(34,197,94,.25); border-radius: 999px; color: var(--text-2); background: var(--success-soft); font-size: 11px; }
.analysis-live i { display: inline-block; width: 7px; height: 7px; margin-right: 5px; border-radius: 50%; background: var(--success); box-shadow: 0 0 8px var(--success); }
.analysis-workspace { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 16px; align-items: start; }
.analysis-library { position: sticky; top: 90px; }
.analysis-library > header { padding: 20px; border-bottom: 1px solid var(--line); }
.analysis-library h2 { margin: 4px 0 2px; }
.analysis-library header small { color: var(--text-3); }
.analysis-library nav { display: grid; gap: 5px; padding: 10px; }
.analysis-library button { display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 9px; align-items: center; width: 100%; padding: 11px; border: 1px solid transparent; border-radius: var(--radius); color: var(--text-2); background: transparent; cursor: pointer; text-align: left; transition: var(--transition); }
.analysis-library button > span { color: var(--text-3); font: 700 9px/1 var(--mono); }
.analysis-library button strong, .analysis-library button small { display: block; }
.analysis-library button strong { color: var(--text); font-size: 12px; }
.analysis-library button small { margin-top: 2px; color: var(--text-3); font-size: 9px; }
.analysis-library button:hover, .analysis-library button.is-active { border-color: rgba(230,126,34,.25); background: var(--accent-soft); }
.analysis-library button.is-active > span, .analysis-library button.is-active strong { color: var(--accent); }
.analysis-stage { min-width: 0; }
.analysis-view { min-height: 480px; padding: 24px; border: 1px solid var(--line); border-radius: var(--radius-2); background: linear-gradient(180deg, var(--surface-2), var(--bg-2)); box-shadow: var(--shadow); }
.analysis-view[hidden] { display: none; }
.analysis-view-heading { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; margin-bottom: 22px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.analysis-view-heading h2 { margin: 4px 0 0; font-size: 25px; }
.analysis-view-heading > span { color: var(--text-3); font: 10px/1.4 var(--mono); }
.analysis-kpis { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.analysis-kpis article { padding: 17px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--bg-3); }
.analysis-kpis span, .analysis-kpis small { display: block; color: var(--text-3); font-size: 10px; }
.analysis-kpis strong { display: block; margin: 8px 0 4px; color: var(--accent); font-size: 28px; line-height: 1; }
.analysis-split { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(210px,.8fr); gap: 12px; margin-top: 12px; }
.analysis-chart-card, .analysis-insight-card { min-height: 260px; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.analysis-chart-card > header { display: flex; justify-content: space-between; }
.analysis-chart-card header small { color: var(--text-3); }
.analysis-bars { height: 190px; display: flex; gap: 10px; align-items: flex-end; padding-top: 30px; }
.analysis-bars > div { height: 100%; flex: 1; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 7px; }
.analysis-bars div > span { position: relative; width: min(34px,75%); min-height: 3px; border-radius: 5px 5px 2px 2px; background: linear-gradient(180deg,var(--accent-2),var(--accent)); box-shadow: 0 5px 16px rgba(230,126,34,.17); }
.analysis-bars b { position: absolute; top: -20px; left: 50%; color: var(--text-2); font: 9px/1 var(--mono); transform: translateX(-50%); }
.analysis-bars small { color: var(--text-3); font: 8px/1 var(--mono); }
.analysis-insight-card { display: flex; flex-direction: column; justify-content: center; }
.analysis-insight-card > span { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 50%; color: var(--accent); background: var(--accent-soft); }
.analysis-insight-card h3 { margin: 12px 0 7px; }
.analysis-insight-card p, .analysis-description { margin: 0; color: var(--text-2); font-size: 12px; }
.analysis-chart-wide { min-height: 280px; }
.analysis-event-list { display: grid; margin-top: 12px; border: 1px solid var(--line); border-radius: var(--radius); }
.analysis-event-list article { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; gap: 10px; align-items: center; padding: 10px 13px; border-bottom: 1px solid var(--line); }
.analysis-event-list article:last-child { border-bottom: 0; }
.analysis-event-list article > span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; color: #17120e; background: var(--accent); font: 800 9px/1 var(--mono); }
.analysis-event-list strong, .analysis-event-list small { display: block; }
.analysis-event-list strong { font-size: 11px; }
.analysis-event-list small, .analysis-event-list time { color: var(--text-3); font-size: 9px; }
.analysis-status-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.analysis-status-grid article { position: relative; overflow: hidden; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--bg-3); }
.analysis-status-grid span { display: block; color: var(--text-2); font-size: 11px; }
.analysis-status-grid strong { display: block; margin-top: 8px; font-size: 28px; }
.analysis-status-grid i { position: absolute; right: -10px; bottom: -14px; width: 52px; height: 52px; border-radius: 50%; background: var(--accent-soft); }
.analysis-callout { margin-top: 12px; padding: 16px 18px; border: 1px solid rgba(34,197,94,.22); border-radius: var(--radius); background: var(--success-soft); }
.analysis-callout.is-warning { border-color: rgba(239,68,68,.25); background: var(--danger-soft); }
.analysis-callout p { margin: 4px 0 0; color: var(--text-2); font-size: 12px; }
.analysis-document-visual { min-height: 260px; display: grid; grid-template-columns: 1fr 100px 1fr; align-items: center; text-align: center; }
.analysis-document-visual div { padding: 28px; border: 1px solid var(--line); border-radius: var(--radius-2); background: var(--bg-3); }
.analysis-document-visual strong, .analysis-document-visual span { display: block; }
.analysis-document-visual strong { color: var(--accent); font-size: 48px; }
.analysis-document-visual span { color: var(--text-2); }
.analysis-document-visual i { height: 1px; background: linear-gradient(90deg,var(--line),var(--accent),var(--line)); }
.analysis-ai-result { margin-top: 12px; padding: 18px; border: 1px solid rgba(230,126,34,.3); border-radius: var(--radius); background: linear-gradient(135deg,var(--accent-soft),var(--surface)); box-shadow: var(--shadow); }
.analysis-ai-result[hidden] { display: none; }
.analysis-ai-result header { display: grid; grid-template-columns: 32px minmax(0,1fr) 32px; gap: 10px; align-items: center; }
.analysis-ai-result header > span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; color: var(--accent); background: var(--bg-3); }
.analysis-ai-result strong, .analysis-ai-result small { display: block; }
.analysis-ai-result small { color: var(--text-3); font-size: 9px; }
.analysis-ai-result button { border: 0; color: var(--text-2); background: transparent; cursor: pointer; font-size: 23px; }
.analysis-ai-result p { margin: 14px 0 0; color: var(--text-2); white-space: pre-wrap; }
.analysis-prompt { position: sticky; bottom: 12px; z-index: 5; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; align-items: end; margin-top: 12px; padding: 13px; border: 1px solid var(--line-2); border-radius: var(--radius-2); background: rgba(27,27,27,.95); box-shadow: 0 15px 40px rgba(0,0,0,.25); backdrop-filter: blur(15px); }
:root[data-theme="light"] .analysis-prompt { background: rgba(255,255,255,.95); }
.analysis-prompt label { display: block; margin: 0 0 5px; color: var(--text-3); font: 700 9px/1 var(--mono); text-transform: uppercase; }
.analysis-prompt textarea { width: 100%; min-height: 50px; resize: vertical; padding: 11px 13px; border: 1px solid var(--line); border-radius: var(--radius); outline: 0; color: var(--text); background: var(--bg-3); }
.analysis-prompt textarea:focus { border-color: var(--accent); }
.analysis-prompt button { min-height: 50px; padding: 0 20px; border: 0; border-radius: var(--radius); color: #fff; background: var(--accent); cursor: pointer; font-weight: 750; }
.analysis-prompt button:disabled { opacity: .6; cursor: wait; }

/* Lienzo conversacional premium del asistente de análisis. */
.analysis-conversation { min-height: calc(100vh - 118px); display: flex; flex-direction: column; }
.analysis-canvas { flex: 1; min-width: 0; padding: 8px 0 92px; }
.analysis-welcome { min-height: 58vh; display: flex; flex-direction: column; align-items: center; justify-content: center; max-width: 780px; margin: 0 auto; overflow: hidden; text-align: center; transform-origin: center 42%; will-change: opacity,transform,max-height; }
.analysis-sofia-welcome { width: 82px; height: 82px; margin-bottom: 20px; border: 3px solid var(--accent); border-radius: 50%; overflow: hidden; background: var(--surface); box-shadow: 0 12px 38px rgba(230,126,34,.22); }
.analysis-sofia-welcome img,
.analysis-sofia-welcome video { display: block; width: 100%; height: 100%; border-radius: inherit; object-fit: cover; }
.analysis-sofia-welcome [hidden] { display: none; }
.analysis-welcome h2 { margin: 7px 0 10px; font-size: clamp(30px,5vw,54px); letter-spacing: -.05em; }
.analysis-welcome > p:last-of-type { max-width: 680px; margin: 0; color: var(--text-2); font-size: 14px; }
.analysis-suggestions { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 24px; }
.analysis-suggestions button { padding: 9px 13px; border: 1px solid var(--line); border-radius: 999px; color: var(--text-2); background: var(--surface); cursor: pointer; font-size: 11px; transition: var(--transition); }
.analysis-suggestions button:hover { border-color: var(--accent); color: var(--accent); background: var(--accent-soft); }
.analysis-composer { position: fixed; z-index: 30; right: 24px; bottom: 8px; left: 280px; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 7px; align-items: center; width: min(860px,calc(100vw - 328px)); margin: 0 auto; padding: 6px; border: 1px solid var(--line); border-radius: 12px; background: rgba(27,27,27,.91); box-shadow: 0 8px 26px rgba(0,0,0,.22); backdrop-filter: blur(16px); }
.sidebar-collapsed .analysis-composer { left: 62px; width: min(860px,calc(100vw - 110px)); }
:root[data-theme="light"] .analysis-composer { background: rgba(255,255,255,.96); }
.analysis-composer-field { min-width: 0; height: 40px; }
.analysis-composer-field label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.analysis-composer textarea { display: block; width: 100%; height: 40px; min-height: 40px; max-height: 104px; resize: vertical; padding: 9px 12px; border: 1px solid var(--line); border-radius: 9px; outline: 0; color: var(--text); background: var(--bg-3); font: inherit; line-height: 20px; }
.analysis-composer textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.analysis-composer > button { align-self: center; height: 40px; min-height: 40px; display: flex; gap: 8px; align-items: center; padding: 0 14px; border: 0; border-radius: 9px; color: #fff; background: linear-gradient(135deg,var(--accent),var(--accent-2)); cursor: pointer; font-size: 11px; font-weight: 750; }
.analysis-composer > button b { font-size: 20px; }
.analysis-composer > button:disabled { opacity: .58; cursor: wait; }
.analysis-user-question { max-width: 760px; margin: 10px 0 22px auto; padding: 14px 18px; border-radius: 16px 4px 16px 16px; color: #fff; background: var(--accent); box-shadow: 0 8px 24px rgba(230,126,34,.15); }
.analysis-user-question span { display: block; margin-bottom: 4px; font: 700 8px/1 var(--mono); letter-spacing: .07em; text-transform: uppercase; opacity: .72; }
.analysis-user-question p { margin: 0; }
.analysis-loading { position: relative; isolation: isolate; overflow: hidden; min-height: 300px; display: grid; grid-template-columns: 142px minmax(0,1fr); gap: 34px; align-items: center; width: min(1040px,100%); margin: 18px auto 34px; padding: clamp(26px,4vw,46px); border: 1px solid rgba(230,126,34,.28); border-radius: 24px; color: var(--text-2); background: radial-gradient(circle at 11% 28%,rgba(230,126,34,.18),transparent 25%),linear-gradient(145deg,var(--surface),var(--bg-2)); box-shadow: 0 24px 70px rgba(0,0,0,.18),inset 0 1px rgba(255,255,255,.035); transform-origin:center 36%; will-change:opacity,transform,filter; }
.analysis-loading::after { content:""; position:absolute; z-index:-1; width:230px; height:230px; right:-105px; bottom:-130px; border:1px solid rgba(230,126,34,.18); border-radius:50%; box-shadow:0 0 0 34px rgba(230,126,34,.035),0 0 0 70px rgba(230,126,34,.025); }
.analysis-loading-portrait { position:relative; display:grid; width:126px; height:126px; place-items:center; border-radius:50%; background:linear-gradient(135deg,var(--accent),#ffb15c); box-shadow:0 16px 42px rgba(230,126,34,.3); }
.analysis-loading-portrait::before,.analysis-loading-portrait::after { content:""; position:absolute; inset:-9px; border:1px solid rgba(230,126,34,.42); border-radius:inherit; animation:analysis-sofia-pulse 2.4s ease-out infinite; }
.analysis-loading-portrait::after { inset:-20px; opacity:.45; animation-delay:.8s; }
.analysis-loading-portrait img,
.analysis-loading-portrait video { display:block; width:112px; height:112px; border:4px solid var(--surface); border-radius:50%; object-fit:cover; }
.analysis-loading-content { min-width:0; }
.analysis-loading-eyebrow { margin:0 0 7px; color:var(--accent); font:750 9px/1 var(--mono); letter-spacing:.13em; text-transform:uppercase; }
.analysis-loading h3 { margin:0; color:var(--text); font-size:clamp(22px,3vw,31px); letter-spacing:-.035em; transition:opacity .2s ease; }
.analysis-loading-detail { min-height:22px; margin:9px 0 0; color:var(--text-2); font-size:13px; }
.analysis-loading-activity { display:flex; gap:5px; align-items:center; height:20px; margin:8px 0 9px; }
.analysis-loading-activity span { width:5px; height:5px; border-radius:50%; background:var(--accent); animation:analysis-working-dot 1.25s ease-in-out infinite; }
.analysis-loading-activity span:nth-child(2) { animation-delay:.16s; }
.analysis-loading-activity span:nth-child(3) { animation-delay:.32s; }
.analysis-loading-timeline { display:flex; flex-wrap:wrap; gap:7px; margin:0; padding:0; list-style:none; }
.analysis-loading-timeline li { display:flex; gap:6px; align-items:center; padding:6px 9px; border:1px solid var(--line); border-radius:999px; color:var(--text-3); background:var(--bg-3); font-size:9px; transition:all .25s ease; }
.analysis-loading-timeline li::before { content:""; width:5px; height:5px; border-radius:50%; background:var(--line-2); }
.analysis-loading-timeline li.is-active { border-color:rgba(230,126,34,.42); color:var(--accent); background:var(--accent-soft); }
.analysis-loading-timeline li.is-active::before { background:var(--accent); box-shadow:0 0 8px var(--accent); }
.analysis-loading-timeline li.is-complete { color:var(--text-2); }
.analysis-loading-timeline li.is-complete::before { background:var(--success); }
.analysis-loading-elapsed { display:block; margin-top:16px; color:var(--text-3); font:9px/1 var(--mono); }
.analysis-loading-freedom { display:inline-flex; gap:7px; align-items:center; margin:14px 0 0; padding:8px 11px; border:1px solid rgba(34,197,94,.2); border-radius:9px; color:var(--text-2); background:var(--success-soft); font-size:10px; line-height:1.4; }
.analysis-loading-freedom::before { content:"↗"; color:var(--success); font-weight:800; }
.analysis-loading.is-error { border-color:rgba(239,68,68,.3); background:linear-gradient(145deg,var(--danger-soft),var(--surface)); }
.analysis-loading.is-error .analysis-loading-portrait { background:var(--danger); box-shadow:none; }
.analysis-loading.is-error .analysis-loading-portrait::before,.analysis-loading.is-error .analysis-loading-portrait::after,.analysis-loading.is-error .analysis-loading-activity,.analysis-loading.is-error .analysis-loading-timeline { display:none; }
@keyframes analysis-sofia-pulse { 0% { transform:scale(.94); opacity:.8; } 75%,100% { transform:scale(1.14); opacity:0; } }
@keyframes analysis-working-dot { 0%,70%,100% { transform:translateY(0); opacity:.35; } 35% { transform:translateY(-5px); opacity:1; } }
@media(max-width:650px) { .analysis-loading { grid-template-columns:1fr; gap:22px; justify-items:center; text-align:center; padding:30px 20px; } .analysis-loading-timeline { justify-content:center; } .analysis-loading-elapsed { text-align:center; } .analysis-loading-freedom { justify-content:center; } }
@media(prefers-reduced-motion:reduce) { .analysis-loading-portrait::before,.analysis-loading-portrait::after,.analysis-loading-activity span { animation:none; } }
.analysis-presentation { margin: 18px 0 34px; padding: clamp(20px,3vw,36px); border: 1px solid var(--line); border-radius: 12px; background: radial-gradient(circle at 94% 0,rgba(230,126,34,.13),transparent 24%),linear-gradient(180deg,var(--surface-2),var(--bg-2)); box-shadow: var(--shadow); }
.analysis-presentation-header { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.analysis-presentation-header h2 { margin: 5px 0 0; font-size: clamp(26px,3vw,40px); line-height: 1.12; letter-spacing: -.045em; }
.analysis-presentation-tools { flex: 0 0 auto; display: grid; justify-items: end; gap: 9px; }
.analysis-sofia-badge { padding: 7px 10px; border: 1px solid rgba(230,126,34,.25); border-radius: 999px; color: var(--accent); background: var(--accent-soft); font: 700 9px/1 var(--mono); }
.analysis-export-actions { display: flex; gap: 5px; align-items: center; padding: 4px; border: 1px solid var(--line); border-radius: 9px; background: var(--bg-3); }
.analysis-export-actions > span { padding: 0 5px; color: var(--text-3); font: 700 8px/1 var(--mono); text-transform: uppercase; }
.analysis-export-actions button { min-height: 30px; padding: 0 9px; border: 1px solid var(--line); border-radius: 7px; color: var(--text-2); background: var(--surface); cursor: pointer; font: 700 9px/1 var(--mono); transition: var(--transition); }
.analysis-export-actions button:hover { border-color: var(--accent); color: var(--accent); background: var(--accent-soft); }
.analysis-result-summary { max-width: 980px; margin: 23px 0; color: var(--text-2); font-size: 16px; line-height: 1.65; }
.analysis-result-metrics { display: grid; grid-template-columns: repeat(auto-fit,minmax(155px,1fr)); gap: 10px; margin: 20px 0; }
.analysis-result-metrics article { position: relative; overflow: hidden; min-height: 126px; padding: 17px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--bg-3); }
.analysis-result-metrics article::after { content:""; position:absolute; right:-18px; bottom:-22px; width:70px; height:70px; border-radius:50%; background:var(--accent-soft); }
.analysis-result-metrics article.tone-positive::after { background:var(--success-soft); }
.analysis-result-metrics article.tone-warning::after { background:rgba(245,158,11,.14); }
.analysis-result-metrics article.tone-danger::after { background:var(--danger-soft); }
.analysis-result-metrics span, .analysis-result-metrics small { position: relative; z-index: 1; display: block; color: var(--text-3); }
.analysis-result-metrics span { font: 700 9px/1.3 var(--mono); text-transform: uppercase; }
.analysis-result-metrics strong { position: relative; z-index: 1; display: block; margin: 12px 0 6px; color: var(--accent); font-size: clamp(24px,3vw,34px); line-height: 1; }
.analysis-result-metrics .tone-positive strong { color: var(--success); }
.analysis-result-metrics .tone-danger strong { color: var(--danger); }
.analysis-result-metrics small { font-size: 10px; }
.analysis-result-sections { display: grid; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); gap: 11px; margin: 20px 0; }
.analysis-result-sections article, .analysis-result-card { padding: 20px; border: 1px solid var(--line); border-radius: var(--radius-2); background: var(--surface); }
.analysis-result-sections h3, .analysis-result-card h3 { margin: 0 0 9px; font-size: 15px; }
.analysis-result-sections p { margin: 0; color: var(--text-2); font-size: 12px; line-height: 1.65; }
.analysis-result-card { margin-top: 12px; }
.analysis-result-table-wrap { overflow-x: auto; margin: 14px -20px -20px; }
.analysis-result-table-wrap table { width: 100%; min-width: 620px; border: 0; }
.analysis-result-table-wrap th { color: var(--text-3); background: var(--bg-3); font: 700 9px/1.3 var(--mono); letter-spacing: .04em; text-transform: uppercase; }
.analysis-result-table-wrap td { color: var(--text-2); font-size: 12px; }
.analysis-table-count { margin: 10px 0 0; color: var(--text-3); font: 600 10px/1.4 var(--mono); }
.analysis-chart-result { min-height: 320px; }
.analysis-result-bars { height: 245px; display: flex; gap: clamp(6px,1.3vw,18px); align-items: flex-end; padding: 34px 10px 0; }
.analysis-result-bars > div { height: 100%; flex: 1; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 8px; }
.analysis-result-bars div > span { position: relative; width: min(52px,78%); min-height: 4px; border-radius: 7px 7px 2px 2px; background: linear-gradient(180deg,var(--accent-2),var(--accent)); box-shadow: 0 8px 24px rgba(230,126,34,.17); }
.analysis-result-bars b { position: absolute; top: -22px; left: 50%; color: var(--text-2); font: 700 9px/1 var(--mono); transform: translateX(-50%); }
.analysis-result-bars small { max-width: 90px; overflow: hidden; color: var(--text-3); font: 8px/1.2 var(--mono); text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.analysis-line-chart { width: 100%; min-height: 240px; overflow: visible; }
.analysis-line-chart polyline { fill: none; stroke: var(--accent); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.analysis-line-chart circle { fill: var(--surface); stroke: var(--accent); stroke-width: 4; }
.analysis-line-chart text { fill: var(--text-3); font: 9px var(--mono); text-anchor: middle; }
.analysis-donut-layout { min-height: 260px; display: grid; grid-template-columns: minmax(180px,260px) minmax(220px,1fr); gap: 34px; align-items: center; justify-content: center; }
.analysis-donut { width: 220px; height: 220px; display: grid; place-items: center; justify-self: center; border-radius: 50%; }
.analysis-donut::before { content:""; grid-area:1/1; width:132px; height:132px; border-radius:50%; background:var(--surface); }
.analysis-donut strong { z-index:1; grid-area:1/1; font-size:32px; }
.analysis-chart-legend { display: grid; gap: 9px; }
.analysis-chart-legend div { display: grid; grid-template-columns: 10px minmax(0,1fr) auto; gap: 9px; align-items: center; padding-bottom: 8px; border-bottom: 1px solid var(--line); }
.analysis-chart-legend i { width: 9px; height: 9px; border-radius: 3px; }
.analysis-chart-legend span { color: var(--text-2); font-size: 11px; }
.analysis-chart-legend b { font: 700 10px/1 var(--mono); }
.analysis-highlights ul { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.analysis-highlights li { position: relative; padding: 11px 13px 11px 36px; border-radius: var(--radius); color: var(--text-2); background: var(--bg-3); font-size: 12px; }
.analysis-highlights li::before { content:"→"; position:absolute; left:14px; color:var(--accent); font-weight:800; }
.analysis-source-note { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--line); color: var(--text-3); font: 9px/1.5 var(--mono); }
@media (max-width: 760px) {
  .data-governance-card { grid-template-columns: 1fr; gap: 18px; padding: 19px; }
  .data-governance-actions { grid-template-columns: 1fr; }
  .assistant-hero { align-items: stretch; flex-direction: column; padding: 21px; }
  .assistant-status { min-width: 0; }
  .assistant-messages { min-height: 52vh; padding: 16px; }
  .assistant-message { max-width: 94%; }
  .assistant-composer { flex-wrap: wrap; }
  .assistant-composer textarea { flex-basis: 100%; font-size: 16px; }
  .assistant-send,.assistant-voice-toggle { flex: 1; }
  .assistant-settings-toggle { flex: 0 0 48px; }
  .assistant-voice-settings { display: grid; }
  .assistant-voice-settings label { grid-template-columns: 1fr; }
  .assistant-voice-settings select { width: 100%; max-width: none; }
  .assistant-chat > footer { align-items: flex-start; flex-direction: column; }
  .drawer-assistant .assistant-composer { display: flex; flex-wrap: nowrap; }
  .drawer-assistant .assistant-composer textarea { flex: 1; min-width: 0; font-size: 16px; }
  .drawer-assistant .assistant-send { flex: 0 0 auto; }
  .drawer-assistant .assistant-voice-settings { display: grid; }
  .drawer-assistant .assistant-voice-settings.is-collapsed { display: none; }
  .drawer-assistant .assistant-voice-settings label { grid-template-columns: 1fr; }
  .drawer-assistant .assistant-voice-settings .assistant-voice-enabled { grid-template-columns: auto 1fr; }
  .assistant-quick-launch { bottom: 16px; min-height: 54px; padding: 5px 8px 5px 5px; }
  .assistant-quick-launch img { width: 42px; height: 42px; }
  .assistant-quick-launch span { display: none; }
  .analysis-hero { align-items: flex-start; flex-direction: column; padding: 20px; }
  .analysis-workspace { display: block; }
  .analysis-library { position: static; margin-bottom: 12px; }
  .analysis-library nav { display: flex; overflow-x: auto; }
  .analysis-library button { flex: 0 0 180px; }
  .analysis-view { min-height: 0; padding: 16px; }
  .analysis-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .analysis-split { grid-template-columns: 1fr; }
  .analysis-status-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .analysis-document-visual { grid-template-columns: 1fr; gap: 12px; }
  .analysis-document-visual i { width: 1px; height: 35px; justify-self: center; }
  .analysis-prompt { grid-template-columns: 1fr; bottom: 8px; }
  .analysis-conversation { min-height: calc(100vh - 88px); }
  .analysis-canvas { padding-bottom: 94px; }
  .analysis-welcome { min-height: 52vh; }
  .analysis-suggestions { display: grid; width: 100%; }
  .analysis-composer, .sidebar-collapsed .analysis-composer { right: 8px; bottom: 5px; left: 8px; grid-template-columns: minmax(0,1fr) auto; width: auto; padding: 5px; border-radius: 11px; }
  .analysis-composer textarea { height: 40px; min-height: 40px; max-height: 40px; padding: 9px 10px; font-size: 16px; resize: none; }
  .analysis-composer > button { min-height: 40px; padding: 0 12px; }
  .analysis-composer > button span { display: none; }
  .analysis-user-question { max-width: 92%; }
  .analysis-presentation { padding: 17px; }
  .analysis-presentation-header { flex-direction: column; gap: 12px; }
  .analysis-presentation-tools { width: 100%; justify-items: start; }
  .analysis-export-actions { width: 100%; }
  .analysis-export-actions button { flex: 1; }
  .analysis-result-summary { font-size: 14px; }
  .analysis-result-sections { grid-template-columns: 1fr; }
  .analysis-result-bars { gap: 4px; padding-inline: 0; }
  .analysis-result-bars div > span { width: 72%; }
  .analysis-result-bars small { max-width: 48px; font-size: 7px; }
  .analysis-donut-layout { grid-template-columns: 1fr; gap: 18px; }
}
/* Novedades premium del servidor */
body.has-announcement { overflow:hidden; }
.announcement-reopen{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 12px;border:1px solid rgba(230,126,34,.28);border-radius:10px;color:var(--text-2);background:rgba(230,126,34,.07);font-size:12px;font-weight:800;cursor:pointer}.announcement-reopen span{color:var(--accent);font-size:15px}.announcement-reopen:hover{border-color:rgba(230,126,34,.55);color:var(--text)}
.announcement-modal[hidden]{display:none}.announcement-modal{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:20px}.announcement-modal__backdrop{position:absolute;inset:0;background:rgba(7,9,14,.72);backdrop-filter:blur(12px)}.announcement-modal__card{position:relative;width:min(100%,620px);padding:48px 48px 36px;overflow:hidden;border:1px solid rgba(230,126,34,.36);border-radius:24px;color:var(--text);background:linear-gradient(145deg,var(--surface) 0%,var(--bg-2) 68%,color-mix(in srgb,var(--accent) 12%,var(--bg-2)));box-shadow:0 32px 90px rgba(0,0,0,.36)}.announcement-modal__glow{position:absolute;top:-160px;right:-100px;width:360px;height:360px;border-radius:50%;background:rgba(230,126,34,.16);filter:blur(8px);pointer-events:none}.announcement-modal__close{position:absolute;top:18px;right:20px;z-index:2;width:36px;height:36px;border:1px solid var(--line);border-radius:50%;color:var(--text-2);background:var(--surface-2);font-size:22px;cursor:pointer}.announcement-modal__icon{position:relative;display:grid;place-items:center;width:56px;height:56px;margin-bottom:25px;border:1px solid rgba(230,126,34,.36);border-radius:16px;color:var(--accent);background:rgba(230,126,34,.1);font-size:25px;box-shadow:0 12px 32px rgba(230,126,34,.12)}.announcement-modal__eyebrow{margin:0 0 10px;color:var(--accent);font:800 10px/1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase}.announcement-modal__draft{display:inline-flex;margin-bottom:12px;padding:6px 9px;border-radius:99px;color:#ad7722;background:rgba(232,170,55,.14);font:800 9px/1 var(--mono);text-transform:uppercase}.announcement-modal h2{position:relative;margin:0;max-width:520px;font-size:clamp(30px,6vw,46px);line-height:1.04;letter-spacing:-.045em}.announcement-modal__message{position:relative;margin:20px 0 0;max-width:530px;color:var(--text-2);font-size:15px;line-height:1.75}.announcement-modal__link{position:relative;display:inline-block;margin-top:19px;color:var(--accent);font-weight:800;text-decoration:none}.announcement-modal footer{position:relative;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}.announcement-modal footer label{display:flex;align-items:center;gap:9px;color:var(--text-2);font-size:13px;cursor:pointer}.announcement-modal footer input{width:17px;height:17px;accent-color:var(--accent)}.announcement-modal footer small{color:var(--text-3)}.announcement-modal footer form{margin:0}.announcement-modal .button{white-space:nowrap}.announcement-modal__draft-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-left:auto}.announcement-modal .button-secondary{border-color:var(--line);color:var(--text-2);background:var(--surface-2)}
@media(max-width:620px){.announcement-modal{padding:10px}.announcement-modal__card{padding:38px 24px 26px;border-radius:18px}.announcement-modal footer{align-items:stretch;flex-direction:column}.announcement-modal__draft-actions{width:100%;margin:0;flex-direction:column}.announcement-modal__draft-actions form{width:100%}.announcement-modal .button{width:100%}}
