* { box-sizing: border-box; }
body { margin: 0; font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: #f6f7f9; color: #111827; }
a { color: inherit; text-decoration: none; }
.container { width: min(1120px, calc(100% - 32px)); margin: 0 auto; }
.header { background: #050505; color: white; }
.nav { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 22px 0; }
.nav h1 { margin: 0; font-size: 26px; }
.nav p { margin: 4px 0 0; color: #cbd5e1; }
.nav-links { display: flex; align-items: center; gap: 18px; font-weight: 800; }
.nav-links > a:not(.btn) { color: #e5e7eb; }
.nav-button { border: 0; background: transparent; color: #e5e7eb; font: inherit; font-weight: 800; cursor: pointer; padding: 0; }
.btn { display: inline-flex; align-items: center; justify-content: center; padding: 14px 22px; border-radius: 18px; font-weight: 800; transition: 0.2s ease; }
.btn:hover { transform: translateY(-1px); }
.whatsapp { background: #22c55e; color: white; }
.primary { background: #050505; color: white; }
.secondary { border: 1px solid #d1d5db; background: white; color: #111827; }
.big { font-size: 18px; padding: 18px 30px; }
.hero { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 64px; align-items: center; padding: 80px 0; }
.badge { display: inline-block; background: #dcfce7; color: #15803d; padding: 10px 16px; border-radius: 999px; font-weight: 800; font-size: 14px; margin-bottom: 24px; }
.hero h2, .section h2, .cta h2 { font-size: clamp(34px, 5vw, 56px); line-height: 1.03; margin: 0 0 24px; }
.hero p, .section p, .cta p { font-size: 18px; line-height: 1.7; color: #4b5563; }
.notice { border-left: 4px solid #22c55e; background: #f0fdf4; color: #14532d; padding: 16px 18px; border-radius: 12px; line-height: 1.6; font-weight: 700; }
.notice a, .policy-content a, .cta-legal a, footer a { color: #16a34a; font-weight: 900; text-decoration: underline; text-underline-offset: 3px; }
.actions { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 30px; }
.hero-card { background: white; border: 1px solid #e5e7eb; border-radius: 32px; box-shadow: 0 30px 80px rgba(15, 23, 42, .16); padding: 28px; }
.mini-card { background: #f3f4f6; border-radius: 22px; padding: 20px; display: grid; gap: 8px; }
.mini-card span { color: #6b7280; }
.stats { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 16px 0; }
.stats div { background: #f0fdf4; border-radius: 22px; padding: 20px; }
.stats div:nth-child(2) { background: #fefce8; }
.stats small { color: #4b5563; font-weight: 700; }
.stats strong { display: block; margin-top: 8px; font-size: 22px; }
.dark-card { background: #050505; color: white; border-radius: 22px; padding: 24px; }
.dark-card ul { margin: 14px 0 0; padding-left: 20px; color: #d1d5db; line-height: 1.8; }
.section { padding: 80px 0; }
.white { background: white; }
.center { text-align: center; }
.grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 46px; text-align: left; }
.steps { grid-template-columns: repeat(4, 1fr); }
.steps article, .review-card { background: white; border: 1px solid #e5e7eb; border-radius: 28px; padding: 30px; box-shadow: 0 16px 40px rgba(15, 23, 42, .06); }
.white .steps article { background: #f9fafb; }
.steps b { font-size: 48px; }
.steps h3 { font-size: 24px; margin: 18px 0 8px; }
.review-head { display: flex; gap: 14px; align-items: center; margin-bottom: 18px; }
.avatar { width: 54px; height: 54px; border-radius: 50%; background: #050505; color: white; display: grid; place-items: center; font-weight: 900; font-size: 20px; }
.review-head h3 { margin: 0 0 4px; }
.stars { margin: 0; color: #f59e0b !important; }
.quote { color: #4b5563; line-height: 1.7; }
.cta { background: #050505; color: white; padding: 80px 0; }
.cta p { color: #d1d5db; max-width: 760px; margin: 0 auto 34px; }
.cta .cta-legal { margin-top: 24px; margin-bottom: 0; font-size: 15px; }
footer { background: #020617; color: #9ca3af; text-align: center; padding: 34px 16px; font-size: 14px; }
footer p { margin: 6px 0; }
.policy-page { background: #ffffff; }
.policy-hero { padding: 64px 0 32px; }
.policy-hero h2 { font-size: clamp(34px, 5vw, 58px); line-height: 1.04; margin: 0 0 20px; max-width: 880px; }
.policy-hero p { color: #4b5563; font-size: 19px; line-height: 1.75; max-width: 900px; }
.policy-alert { margin-top: 28px; border: 1px solid #bbf7d0; background: #f0fdf4; color: #14532d; border-radius: 18px; padding: 22px; font-weight: 800; line-height: 1.6; max-width: 940px; }
.policy-content { padding: 24px 0 80px; display: grid; gap: 22px; }
.policy-content article { border-top: 1px solid #e5e7eb; padding-top: 24px; }
.policy-content h3 { font-size: 24px; margin: 0 0 12px; }
.policy-content p, .policy-content li { color: #374151; line-height: 1.75; font-size: 16px; }
.policy-content ul { margin: 10px 0 0; padding-left: 22px; }
.legal-note { background: #f9fafb; border: 1px solid #e5e7eb !important; border-radius: 18px; padding: 24px !important; }
.guide-page { background: #f6f7f9; }
.guide-hero { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 38px; align-items: end; padding: 64px 0 42px; }
.guide-hero h2 { font-size: clamp(34px, 5vw, 58px); line-height: 1.04; margin: 0 0 18px; max-width: 880px; }
.guide-hero p, .guide-main p, .guide-side p { color: #4b5563; font-size: 18px; line-height: 1.75; }
.guide-help, .guide-side, .guide-main, .email-box { background: white; border: 1px solid #e5e7eb; border-radius: 8px; padding: 24px; box-shadow: 0 16px 40px rgba(15, 23, 42, .06); }
.guide-help strong, .guide-side h3 { display: block; margin: 0 0 10px; font-size: 22px; }
.guide-band { background: white; padding: 34px 0; border-top: 1px solid #e5e7eb; border-bottom: 1px solid #e5e7eb; }
.guide-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 24px; align-items: start; }
.guide-main h2, .guide-main h3, .guide-title h2 { margin: 0 0 12px; font-size: clamp(28px, 4vw, 42px); line-height: 1.1; }
.guide-title { max-width: 880px; margin-bottom: 32px; }
.guide-title p { color: #4b5563; font-size: 18px; line-height: 1.7; }
.simple-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 22px; }
.simple-steps div { border: 1px solid #bbf7d0; background: #f0fdf4; border-radius: 8px; padding: 16px; display: grid; gap: 10px; color: #14532d; font-weight: 800; }
.simple-steps b, .guide-list span { width: 42px; height: 42px; border-radius: 50%; background: #050505; color: white; display: grid; place-items: center; font-size: 20px; }
.guide-side ul, .plain-list { margin: 10px 0 0; padding-left: 22px; color: #374151; line-height: 1.75; font-size: 16px; }
.guide-list { display: grid; gap: 14px; }
.guide-list article { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 16px; border: 1px solid #e5e7eb; background: #f9fafb; border-radius: 8px; padding: 22px; align-items: start; }
.guide-list h3 { margin: 0 0 6px; font-size: 24px; }
.guide-list p { margin: 0; color: #374151; line-height: 1.7; font-size: 17px; }
.email-box { display: grid; gap: 8px; margin-top: 20px; background: #f9fafb; box-shadow: none; }
.email-box strong { font-size: 16px; }
.email-box p { margin: 0 0 8px; color: #374151; font-size: 16px; }
.check-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.check-grid label { display: flex; gap: 10px; align-items: flex-start; border: 1px solid #e5e7eb; background: white; border-radius: 8px; padding: 16px; color: #374151; font-weight: 800; line-height: 1.45; }
.check-grid input { margin-top: 4px; flex: 0 0 auto; }
.municipality-tool { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 18px; align-items: start; }
.municipality-picker, .municipality-card { background: white; border: 1px solid #e5e7eb; border-radius: 8px; padding: 20px; box-shadow: 0 16px 40px rgba(15, 23, 42, .06); }
.municipality-picker { position: sticky; top: 18px; }
.municipality-picker label { display: grid; gap: 10px; color: #374151; font-size: 13px; font-weight: 900; }
.municipality-picker select { width: 100%; border: 1px solid #cbd5e1; border-radius: 8px; padding: 13px 12px; font: inherit; background: white; }
.municipality-card { display: grid; gap: 16px; }
.municipality-card-head { display: flex; justify-content: space-between; gap: 18px; align-items: start; padding-bottom: 14px; border-bottom: 1px solid #e5e7eb; }
.municipality-card-head small { color: #64748b; font-weight: 900; text-transform: uppercase; letter-spacing: .04em; }
.municipality-card-head h3 { margin: 4px 0 6px; font-size: 30px; line-height: 1.05; }
.municipality-card-head p { margin: 0; color: #475569; line-height: 1.45; }
.municipality-card-head span { border: 1px solid #bbf7d0; background: #f0fdf4; color: #166534; border-radius: 8px; padding: 8px 10px; font-size: 12px; font-weight: 900; white-space: nowrap; }
.municipality-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.municipality-actions .btn { border-radius: 8px; padding: 12px 16px; }
.municipality-instructions { border: 1px solid #fde68a; background: #fffbeb; border-radius: 8px; padding: 14px; }
.municipality-instructions strong { display: block; margin-bottom: 6px; color: #92400e; }
.municipality-instructions p { margin: 0; color: #78350f; line-height: 1.55; }
.municipality-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.municipality-steps article { border: 1px solid #e5e7eb; background: #f8fafc; border-radius: 8px; padding: 14px; display: grid; gap: 10px; }
.municipality-steps b { width: 34px; height: 34px; border-radius: 999px; background: #111827; color: white; display: grid; place-items: center; }
.municipality-steps span { color: #374151; line-height: 1.45; font-size: 13px; font-weight: 800; }
.compact-guide-list { gap: 10px; }
.compact-guide-list article { padding: 18px; }
.dashboard-body { background: #f3f6fa; }
.dashboard-body .header { background: #101827; border-bottom: 1px solid #1f2937; }
.dashboard-body .nav { padding: 16px 0; }
.dashboard-body .nav h1 { font-size: 21px; }
.dashboard-body .nav p { font-size: 13px; color: #94a3b8; }
.dashboard-shell { width: min(1480px, calc(100% - 32px)); padding: 26px 0 56px; }
.dashboard-app { display: grid; grid-template-columns: 248px minmax(0, 1fr); column-gap: 24px; row-gap: 16px; align-items: start; }
.dashboard-sidebar { grid-row: 1 / span 2; position: sticky; top: 18px; align-self: start; background: #111827; color: white; border: 1px solid #1f2937; border-radius: 8px; padding: 14px; box-shadow: 0 18px 45px rgba(15, 23, 42, .18); }
.sidebar-brand { display: grid; gap: 5px; padding: 8px 8px 16px; border-bottom: 1px solid rgba(255, 255, 255, .12); margin-bottom: 12px; }
.sidebar-brand strong { font-size: 15px; letter-spacing: 0; }
.sidebar-brand span { color: #a7b3c7; font-size: 12px; font-weight: 800; }
.sidebar-nav { display: grid; gap: 4px; }
.sidebar-link { position: relative; width: 100%; border: 0; border-radius: 8px; background: transparent; color: #d8e1ef; padding: 12px 12px 12px 34px; text-align: left; font: inherit; font-size: 14px; font-weight: 900; cursor: pointer; }
.sidebar-link::before { content: ""; position: absolute; left: 13px; top: 50%; width: 8px; height: 8px; border-radius: 999px; background: #64748b; transform: translateY(-50%); }
.sidebar-link:hover { background: rgba(255, 255, 255, .08); color: white; }
.sidebar-link.is-active { background: white; color: #111827; box-shadow: 0 8px 18px rgba(0, 0, 0, .16); }
.sidebar-link.is-active::before { background: #16a34a; }
.dashboard-title, .dashboard-group { grid-column: 2; }
.dashboard-group { display: none; }
.dashboard-group.is-active { display: grid; gap: 18px; align-items: start; }
.dashboard-group-resumen.is-active { grid-template-columns: 1fr; }
.dashboard-group-juridico.is-active, .dashboard-group-reviews.is-active, .dashboard-group-expedientes.is-active { grid-template-columns: minmax(0, 1fr); }
.dashboard-group-operaciones.is-active, .dashboard-group-sistema.is-active { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dashboard-group-operaciones .dashboard-panel:first-child, .dashboard-group-operaciones .dashboard-panel:last-child, .dashboard-group-sistema .dashboard-panel:first-child { grid-column: 1 / -1; }
.dashboard-group-sistema .admin-alert-panel { grid-column: 1 / -1; }
.dashboard-group-sistema .ai-assistant-panel { grid-column: 1 / -1; }
.dashboard-title { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 0; background: white; border: 1px solid #dfe5ec; border-radius: 8px; padding: 20px; box-shadow: 0 14px 36px rgba(15, 23, 42, .06); }
.dashboard-title .badge { margin-bottom: 14px; border-radius: 8px; background: #ecfdf5; color: #166534; padding: 8px 10px; }
.dashboard-title h2 { margin: 0 0 8px; font-size: clamp(28px, 3vw, 38px); letter-spacing: 0; line-height: 1.08; }
.dashboard-title p { margin: 0; color: #4b5563; max-width: 780px; line-height: 1.55; }
.dashboard-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.dashboard-actions .btn { border-radius: 8px; padding: 12px 16px; }
.metric-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
.metric-card { position: relative; min-height: 132px; background: white; border: 1px solid #dfe5ec; border-radius: 8px; padding: 17px; box-shadow: 0 10px 28px rgba(15, 23, 42, .05); overflow: hidden; }
.metric-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: #94a3b8; }
.metric-card:nth-child(3)::before, .metric-card:nth-child(4)::before, .metric-card:nth-child(6)::before { background: #dc2626; }
.metric-card:nth-child(5)::before { background: #f59e0b; }
.metric-card small { display: block; color: #64748b; font-weight: 900; margin-bottom: 10px; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
.metric-card strong { display: block; font-size: 34px; line-height: 1; color: #0f172a; }
.metric-context { display: block; margin-top: 10px; color: #475569; font-size: 12px; font-weight: 800; line-height: 1.35; }
.summary-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); gap: 18px; align-items: start; }
.dashboard-panel { background: white; border: 1px solid #dfe5ec; border-radius: 8px; box-shadow: 0 14px 34px rgba(15, 23, 42, .06); overflow: hidden; }
.upcoming-panel { margin-bottom: 0; padding: 18px; }
.deadline-summary { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.deadline-summary span { border: 1px solid #e5e7eb; background: #f8fafc; border-radius: 999px; padding: 7px 10px; font-size: 12px; font-weight: 900; color: #374151; }
.deadline-summary .deadline-hot { background: #fee2e2; border-color: #fecaca; color: #991b1b; }
.deadline-summary .deadline-warn { background: #fef3c7; border-color: #fde68a; color: #92400e; }
.upcoming-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.upcoming-row { border: 1px solid #e5e7eb; border-radius: 8px; padding: 12px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; background: #fbfdff; }
.upcoming-row strong { display: block; margin-bottom: 4px; overflow-wrap: anywhere; }
.upcoming-row span { color: #6b7280; font-size: 12px; }
.upcoming-meta { display: grid; justify-items: end; gap: 4px; }
.upcoming-meta small { color: #6b7280; font-weight: 800; white-space: nowrap; }
.procedural-agenda { margin-top: 16px; border-top: 1px solid #e5e7eb; padding-top: 16px; }
.agenda-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.agenda-head h4 { margin: 0; font-size: 16px; }
.agenda-head span { color: #6b7280; font-size: 12px; font-weight: 900; }
.agenda-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.agenda-day { border: 1px solid #e5e7eb; border-left-width: 4px; border-radius: 8px; background: #fbfdff; padding: 12px; }
.agenda-critica { border-left-color: #dc2626; background: #fff7f7; }
.agenda-hoy { border-left-color: #f59e0b; background: #fffbeb; }
.agenda-proxima { border-left-color: #2563eb; background: #eff6ff; }
.agenda-normal { border-left-color: #94a3b8; }
.agenda-day-head { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; margin-bottom: 10px; }
.agenda-day-head strong { overflow-wrap: anywhere; text-transform: capitalize; }
.agenda-day-head span { color: #6b7280; font-size: 12px; font-weight: 900; white-space: nowrap; }
.agenda-day ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.agenda-day button { width: 100%; border: 0; border-radius: 8px; background: white; text-align: left; padding: 10px; cursor: pointer; box-shadow: inset 0 0 0 1px #e5e7eb; }
.agenda-day button:hover { box-shadow: inset 0 0 0 2px #111827; }
.agenda-day button strong { display: block; margin-bottom: 4px; overflow-wrap: anywhere; }
.agenda-day button span { color: #6b7280; font-size: 12px; line-height: 1.45; }
.reminders-list { display: grid; gap: 10px; }
.reminder-row { border: 1px solid #e5e7eb; border-left: 4px solid #111827; border-radius: 8px; padding: 12px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; background: #fbfdff; cursor: pointer; }
.reminder-row:hover { background: #f8fafc; }
.reminder-row strong { display: block; margin-bottom: 4px; overflow-wrap: anywhere; }
.reminder-row span { color: #6b7280; font-size: 12px; }
.reminder-detail-row { border-left: 4px solid #111827; }
.closure-box { border: 1px solid #e5e7eb; border-left: 4px solid #111827; border-radius: 8px; background: white; padding: 12px; display: grid; gap: 10px; }
.closure-ok { border-left-color: #16a34a; background: #f0fdf4; }
.closure-blocked { border-left-color: #dc2626; background: #fff7f7; }
.closure-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.closure-head span { border-radius: 999px; background: white; border: 1px solid #e5e7eb; padding: 6px 9px; color: #374151; font-size: 12px; font-weight: 900; white-space: nowrap; }
.closure-counts { display: flex; flex-wrap: wrap; gap: 7px; }
.closure-counts span { background: white; border: 1px solid #e5e7eb; border-radius: 999px; padding: 6px 8px; color: #374151; font-size: 12px; font-weight: 900; }
.closure-items strong { display: block; margin-bottom: 6px; }
.closure-items ul { margin: 0; padding-left: 18px; color: #374151; line-height: 1.55; font-size: 13px; }
.system-health { display: grid; gap: 12px; }
.health-head { border-radius: 8px; padding: 14px; display: flex; justify-content: space-between; gap: 12px; align-items: center; border: 1px solid #e5e7eb; background: #f8fafc; }
.health-head strong { font-size: 18px; }
.health-head span { color: #6b7280; font-size: 12px; font-weight: 900; }
.health-ok { background: #f0fdf4; border-color: #bbf7d0; color: #14532d; }
.health-warning { background: #fffbeb; border: 1px solid #fde68a; color: #92400e; border-radius: 8px; padding: 12px; display: grid; gap: 4px; }
.health-warning span { overflow-wrap: anywhere; font-size: 13px; }
.health-error { background: #fef2f2; border-color: #fecaca; color: #991b1b; }
.health-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 10px; }
.health-grid article { border: 1px solid #e5e7eb; border-radius: 8px; background: #fbfdff; padding: 12px; }
.health-grid small { display: block; color: #6b7280; font-size: 12px; font-weight: 900; margin-bottom: 6px; }
.health-grid strong { font-size: 20px; overflow-wrap: anywhere; }
.operational-errors-list { display: grid; gap: 10px; }
.operational-error-row { border: 1px solid #e5e7eb; border-left: 4px solid #dc2626; border-radius: 8px; background: #fbfdff; padding: 12px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; }
.operational-error-row strong { display: block; overflow-wrap: anywhere; }
.operational-error-row span, .operational-error-row small { color: #6b7280; font-size: 12px; line-height: 1.45; }
.operational-error-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 4px; }
.operational-error-head span { color: #991b1b; font-weight: 900; white-space: nowrap; }
.error-warning { border-left-color: #f59e0b; background: #fffbeb; }
.error-critical { border-left-color: #7f1d1d; background: #fef2f2; }
.operational-error-row .btn { border-radius: 8px; padding: 10px 12px; }
.backups-list { display: grid; gap: 10px; }
.backup-row { border: 1px solid #e5e7eb; border-left: 4px solid #2563eb; border-radius: 8px; background: #fbfdff; padding: 12px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; }
.backup-row strong { display: block; overflow-wrap: anywhere; margin-bottom: 4px; }
.backup-row span, .backup-row small { color: #6b7280; font-size: 12px; line-height: 1.45; }
.backup-row .btn { border-radius: 8px; padding: 10px 12px; }
.quality-report { display: grid; gap: 12px; }
.quality-summary { display: flex; flex-wrap: wrap; gap: 8px; }
.quality-summary span { border: 1px solid #e5e7eb; background: #f8fafc; border-radius: 999px; padding: 7px 10px; font-size: 12px; font-weight: 900; color: #374151; }
.quality-list { display: grid; gap: 10px; }
.quality-row { border: 1px solid #e5e7eb; border-left: 4px solid #f59e0b; border-radius: 8px; background: #fbfdff; padding: 12px; cursor: pointer; }
.quality-row:hover { background: #f8fafc; }
.quality-revision_obligatoria { border-left-color: #dc2626; background: #fff7f7; }
.quality-revisar { border-left-color: #f59e0b; background: #fffbeb; }
.quality-row-head { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; margin-bottom: 4px; }
.quality-row-head strong { overflow-wrap: anywhere; }
.quality-row-head span { color: #991b1b; font-size: 12px; font-weight: 900; white-space: nowrap; }
.quality-row small { display: block; color: #6b7280; font-size: 12px; margin-bottom: 8px; }
.quality-row ul { margin: 0; padding-left: 18px; color: #374151; line-height: 1.45; font-size: 13px; }
.deployment-readiness { display: grid; gap: 12px; }
.deployment-head { border-radius: 8px; padding: 14px; display: flex; justify-content: space-between; gap: 12px; align-items: center; border: 1px solid #e5e7eb; background: #f8fafc; }
.deployment-ok { background: #f0fdf4; border-color: #bbf7d0; color: #14532d; }
.deployment-warning { background: #fffbeb; border-color: #fde68a; color: #92400e; }
.deployment-head strong { font-size: 18px; }
.deployment-head span { font-size: 12px; font-weight: 900; }
.deployment-meta { display: grid; gap: 6px; border: 1px solid #e5e7eb; border-radius: 8px; background: #fbfdff; padding: 12px; color: #374151; font-size: 13px; font-weight: 800; overflow-wrap: anywhere; }
.deployment-checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.deployment-check { border: 1px solid #e5e7eb; border-left: 4px solid #f59e0b; border-radius: 8px; background: #fbfdff; padding: 12px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
.deployment-check-ok { border-left-color: #16a34a; background: #f0fdf4; }
.deployment-check strong { display: block; margin-bottom: 4px; overflow-wrap: anywhere; }
.deployment-check span, .deployment-check small { display: block; color: #6b7280; font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.deployment-check b { color: #374151; font-size: 12px; text-transform: uppercase; }
.deployment-steps { border: 1px solid #e5e7eb; border-radius: 8px; background: white; padding: 12px; }
.deployment-steps strong { display: block; margin-bottom: 8px; }
.deployment-steps ul { margin: 0; padding-left: 18px; color: #374151; line-height: 1.55; font-size: 13px; }
.pilot-form { display: grid; grid-template-columns: 1fr 1fr 160px auto; gap: 10px; margin-bottom: 12px; }
.pilot-form input, .pilot-form select { width: 100%; border: 1px solid #d1d5db; border-radius: 8px; padding: 12px; font: inherit; background: white; }
.pilot-form .btn { border-radius: 8px; padding: 12px 14px; border: 0; cursor: pointer; }
.pilot-runs { display: grid; gap: 10px; }
.pilot-row { border: 1px solid #e5e7eb; border-left: 4px solid #f59e0b; border-radius: 8px; background: #fbfdff; padding: 12px; display: grid; gap: 10px; }
.pilot-completado { border-left-color: #16a34a; background: #f0fdf4; }
.pilot-bloqueado { border-left-color: #dc2626; background: #fff7f7; }
.pilot-head { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; }
.pilot-head strong { display: block; overflow-wrap: anywhere; }
.pilot-head span { color: #6b7280; font-size: 12px; }
.pilot-head b { color: #374151; font-size: 13px; }
.pilot-progress { height: 8px; background: #e5e7eb; border-radius: 999px; overflow: hidden; }
.pilot-progress span { display: block; height: 100%; background: #111827; }
.pilot-checklist { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.pilot-checklist label { display: flex; gap: 8px; align-items: flex-start; border: 1px solid #e5e7eb; border-radius: 8px; background: white; padding: 9px; color: #374151; font-size: 12px; line-height: 1.35; font-weight: 800; }
.pilot-checklist input { margin-top: 2px; flex: 0 0 auto; }
.discount-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 16px; }
.discount-column { border: 1px solid #dfe5ec; border-radius: 8px; background: #fbfdff; padding: 14px; display: grid; gap: 8px; align-content: start; }
.discount-column > strong { font-size: 26px; color: #111827; }
.discount-column > span { color: #64748b; font-size: 13px; font-weight: 800; }
.discount-list { display: grid; gap: 8px; }
.discount-row { grid-template-columns: minmax(0, 1fr) auto; align-items: center; margin-bottom: 0; }
.discount-row .btn { border-radius: 8px; padding: 9px 10px; font-size: 12px; }
.stage5-exit { display: grid; gap: 12px; }
.stage5-head { border-radius: 8px; padding: 14px; display: flex; justify-content: space-between; gap: 12px; align-items: center; border: 1px solid #e5e7eb; background: #f8fafc; }
.stage5-ready { background: #f0fdf4; border-color: #bbf7d0; color: #14532d; }
.stage5-warning { background: #fffbeb; border-color: #fde68a; color: #92400e; }
.stage5-blocked { background: #fff7f7; border-color: #fecaca; color: #991b1b; }
.stage5-head strong { font-size: 18px; }
.stage5-head span { font-size: 12px; font-weight: 900; }
.stage5-criteria { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.stage5-criterion { border: 1px solid #e5e7eb; border-left: 4px solid #f59e0b; border-radius: 8px; background: #fbfdff; padding: 12px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
.stage5-criterion-ok { border-left-color: #16a34a; background: #f0fdf4; }
.stage5-criterion-error { border-left-color: #dc2626; background: #fff7f7; }
.stage5-criterion strong { display: block; margin-bottom: 4px; overflow-wrap: anywhere; }
.stage5-criterion span, .stage5-criterion small { display: block; color: #6b7280; font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.stage5-criterion b { color: #374151; font-size: 12px; text-transform: uppercase; }
.stage5-steps { border: 1px solid #e5e7eb; border-radius: 8px; background: white; padding: 12px; }
.stage5-steps strong { display: block; margin-bottom: 8px; }
.stage5-steps ul { margin: 0; padding-left: 18px; color: #374151; line-height: 1.55; font-size: 13px; }
.reviews-panel { margin-top: 18px; padding: 18px; }
.panel-head { display: flex; justify-content: space-between; align-items: start; gap: 18px; margin: -18px -18px 16px; padding: 16px 18px; background: #f8fafc; border-bottom: 1px solid #e5e7eb; }
.panel-head h3 { margin: 0 0 6px; font-size: 18px; line-height: 1.2; color: #0f172a; }
.panel-head p { margin: 0; color: #64748b; line-height: 1.45; font-size: 13px; max-width: 760px; }
.panel-head .btn { border-radius: 8px; padding: 10px 12px; font-size: 13px; white-space: nowrap; }
.review-filter label { display: grid; gap: 7px; color: #374151; font-size: 13px; font-weight: 900; min-width: 180px; }
.review-filter select { width: 100%; border: 1px solid #d1d5db; border-radius: 8px; padding: 12px; font: inherit; background: white; }
.reviews-admin-list { display: grid; gap: 10px; }
.review-admin-row { border: 1px solid #e5e7eb; border-radius: 8px; padding: 14px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px; background: #fbfdff; }
.review-admin-head { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.review-admin-head span { color: #15803d; font-size: 13px; font-weight: 900; }
.review-admin-row p { margin: 0 0 8px; color: #374151; line-height: 1.55; }
.review-admin-row small { color: #6b7280; font-weight: 800; }
.review-admin-row .btn { border-radius: 8px; padding: 11px 14px; }
.kb-summary { border: 1px solid #bbf7d0; background: #f0fdf4; border-radius: 8px; padding: 14px; display: flex; gap: 10px; align-items: baseline; color: #14532d; }
.kb-summary strong { font-size: 28px; }
.kb-summary span { font-weight: 900; }
.legal-kb-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.kb-row { grid-template-columns: 1fr; align-content: start; }
.kb-row .review-admin-head { align-items: start; }
.kb-row .review-admin-head strong { font-size: 17px; line-height: 1.25; }
.kb-row p { font-size: 14px; line-height: 1.55; }
.dashboard-filters { display: grid; grid-template-columns: minmax(240px, 1.5fr) minmax(150px, .8fr) minmax(180px, .9fr) auto; gap: 14px; align-items: end; padding: 16px; border-bottom: 1px solid #e5e7eb; background: #f8fafc; }
.dashboard-filters label { display: grid; gap: 7px; color: #374151; font-size: 13px; font-weight: 900; }
.dashboard-filters input, .dashboard-filters select { width: 100%; border: 1px solid #cbd5e1; border-radius: 8px; padding: 12px; font: inherit; background: white; }
.dashboard-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; min-height: 540px; }
.cases-list { border-right: 1px solid #e5e7eb; min-width: 0; }
.table-wrap { overflow-x: auto; }
.cases-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.cases-table th { text-align: left; background: #f8fafc; color: #64748b; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; padding: 13px 14px; border-bottom: 1px solid #e5e7eb; }
.cases-table td { padding: 14px; border-bottom: 1px solid #eef2f7; vertical-align: middle; }
.cases-table tbody tr { cursor: pointer; }
.cases-table tbody tr:hover, .selected-row { background: #f8fafc; }
.cases-table td strong { display: block; margin-bottom: 4px; }
.cases-table td span { color: #6b7280; font-size: 12px; }
.risk-pill { display: inline-flex; align-items: center; justify-content: center; min-width: 76px; border-radius: 8px; padding: 7px 10px; font-size: 12px; font-weight: 900; }
.risk-high { background: #fee2e2; color: #991b1b; }
.risk-medium { background: #fef3c7; color: #92400e; }
.risk-low { background: #dcfce7; color: #166534; }
.risk-empty { background: #e5e7eb; color: #374151; }
.pagination-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px; }
.pagination-row .btn, .dashboard-filters .btn { border-radius: 8px; padding: 12px 16px; }
.case-detail { background: #fbfdff; padding: 18px; overflow-y: auto; }
.empty-detail { min-height: 320px; display: grid; align-content: center; gap: 8px; color: #4b5563; }
.empty-detail h3, .detail-head h3 { margin: 0; color: #111827; }
.detail-head { display: flex; justify-content: space-between; align-items: start; gap: 12px; margin-bottom: 18px; }
.detail-head small { color: #6b7280; font-weight: 900; }
.detail-section { border-top: 1px solid #e5e7eb; padding-top: 16px; margin-top: 16px; }
.detail-section h4 { margin: 0 0 12px; font-size: 15px; }
.kv-list { display: grid; gap: 10px; margin: 0; }
.kv-list div { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 10px; }
.kv-list dt { color: #6b7280; font-size: 12px; font-weight: 900; }
.kv-list dd { margin: 0; color: #111827; overflow-wrap: anywhere; }
.mini-row { border: 1px solid #e5e7eb; background: white; border-radius: 8px; padding: 12px; display: grid; gap: 4px; margin-bottom: 8px; }
.mini-row span, .muted { color: #6b7280; font-size: 13px; }
.payment-row { grid-template-columns: minmax(0, 1fr); gap: 10px; }
.mini-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.mini-actions .btn { border-radius: 8px; padding: 9px 12px; font-size: 12px; }
.document-row { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.mini-link { color: #15803d; font-weight: 900; font-size: 13px; text-decoration: underline; text-underline-offset: 3px; }
.ops-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto auto; gap: 10px; align-items: end; }
.procedural-grid { grid-template-columns: minmax(0, 1fr) auto; margin-bottom: 10px; }
.ops-grid label, .note-form label { display: grid; gap: 7px; color: #374151; font-size: 13px; font-weight: 900; }
.ops-grid select, .note-form textarea { width: 100%; border: 1px solid #d1d5db; border-radius: 8px; padding: 12px; font: inherit; background: white; }
.ops-grid .btn, .note-form .btn { border-radius: 8px; padding: 12px 14px; border: 0; cursor: pointer; }
.note-form { display: grid; gap: 10px; margin-top: 12px; }
.task-form { display: grid; grid-template-columns: minmax(0, 1fr) 110px 150px auto; gap: 10px; margin-bottom: 12px; }
.correction-form { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.correction-form .btn { grid-column: 1 / -1; justify-self: start; border-radius: 8px; padding: 12px 14px; border: 0; cursor: pointer; }
.filing-form { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; }
.filing-form textarea { grid-column: 1 / -1; resize: vertical; }
.filing-form .btn { grid-column: 1 / -1; justify-self: start; }
.task-form input, .task-form select, .correction-form input, .filing-form input, .filing-form select, .filing-form textarea { width: 100%; border: 1px solid #d1d5db; border-radius: 8px; padding: 12px; font: inherit; background: white; }
.task-form .btn { border-radius: 8px; padding: 12px 14px; border: 0; cursor: pointer; }
.task-row, .filing-row { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.task-done { opacity: .72; background: #f9fafb; }
.task-done strong { text-decoration: line-through; }
.task-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.task-actions .btn { border-radius: 8px; padding: 9px 10px; font-size: 12px; }
.ops-message { min-height: 18px; margin: 10px 0 0; font-weight: 800; font-size: 13px; }
.ops-ok { color: #15803d; }
.ops-error { color: #b91c1c; }
.ops-warning { color: #92400e; }
.whatsapp-inbox { display: grid; gap: 12px; }
.admin-alert-form { display: grid; grid-template-columns: minmax(220px, .85fr) minmax(300px, 1.15fr) minmax(160px, auto) auto; gap: 10px; align-items: end; }
.admin-alert-form label { display: grid; gap: 7px; color: #374151; font-size: 13px; font-weight: 900; }
.admin-alert-form input[type="tel"], .admin-alert-form input[type="text"] { width: 100%; border: 1px solid #d1d5db; border-radius: 8px; padding: 12px; font: inherit; background: white; }
.toggle-row { display: flex !important; flex-direction: row; align-items: center; min-height: 44px; }
.toggle-row input { width: 18px; height: 18px; }
.admin-alert-form .btn { border-radius: 8px; padding: 12px 14px; border: 0; cursor: pointer; }
.ai-assistant-form { display: grid; grid-template-columns: 140px minmax(220px, 1fr) minmax(220px, 1fr) 130px minmax(140px, auto) auto; gap: 10px; align-items: end; }
.ai-test-form { margin-top: 10px; }
.ai-assistant-form label { display: grid; gap: 7px; color: #374151; font-size: 13px; font-weight: 900; }
.ai-assistant-form input, .ai-assistant-form select, .ai-test-form input { width: 100%; border: 1px solid #d1d5db; border-radius: 8px; padding: 12px; font: inherit; background: white; }
.ai-assistant-form .btn { border-radius: 8px; padding: 12px 14px; border: 0; cursor: pointer; }
.whatsapp-message-list { display: grid; gap: 10px; }
.whatsapp-message-row { border: 1px solid #e5e7eb; border-left: 4px solid #94a3b8; border-radius: 8px; background: #fbfdff; padding: 14px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: center; }
.whatsapp-code-row { border-left-color: #f59e0b; background: #fffbeb; }
.whatsapp-message-main p { margin: 0 0 8px; color: #233149; line-height: 1.5; overflow-wrap: anywhere; }
.whatsapp-message-main small { color: #64748b; font-size: 12px; font-weight: 800; overflow-wrap: anywhere; }
.webhook-payload { margin-top: 10px; }
.webhook-payload summary { cursor: pointer; color: #0f766e; font-size: 12px; font-weight: 900; }
.webhook-payload pre { max-height: 220px; overflow: auto; margin: 8px 0 0; padding: 10px; border: 1px solid #dbe4ee; border-radius: 8px; background: #ffffff; color: #111827; font-size: 12px; line-height: 1.45; white-space: pre-wrap; }
.whatsapp-code-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; min-width: 120px; }
.code-copy-btn { border-radius: 8px; padding: 10px 14px; font-size: 18px; letter-spacing: .08em; font-weight: 900; }
.note-row span { white-space: pre-wrap; color: #374151; }
.event-change-list { margin: 4px 0 0; padding-left: 18px; color: #374151; font-size: 12px; line-height: 1.45; }
.legal-ai-box { border: 1px solid #bbf7d0; background: #f0fdf4; border-radius: 8px; padding: 14px; display: grid; gap: 10px; }
.legal-ai-head { display: flex; justify-content: space-between; gap: 10px; align-items: center; }
.legal-ai-head strong { background: #050505; color: white; border-radius: 999px; padding: 7px 10px; font-size: 12px; }
.legal-ai-head span { color: #166534; font-weight: 900; font-size: 12px; overflow-wrap: anywhere; }
.legal-ai-box p { margin: 0; color: #14532d; line-height: 1.6; }
.legal-ai-box small { color: #4b5563; line-height: 1.5; }
.legal-ai-box h5 { margin: 8px 0 0; font-size: 13px; }
.legal-ai-list { margin: 0; padding-left: 20px; color: #374151; line-height: 1.55; font-size: 13px; }
.assistant-answer { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; border: 1px solid #bbf7d0; background: white; border-radius: 8px; padding: 12px; color: #111827; font: inherit; font-size: 13px; line-height: 1.55; }
.login-body { min-height: 100vh; background: #050505; display: grid; place-items: center; padding: 24px; }
.login-shell { width: min(460px, 100%); }
.login-panel { background: white; border-radius: 8px; padding: 34px; box-shadow: 0 30px 90px rgba(0, 0, 0, .35); }
.login-panel h1 { margin: 0 0 10px; font-size: 34px; }
.login-panel p { color: #4b5563; line-height: 1.6; }
.login-form { display: grid; gap: 16px; margin-top: 24px; }
.login-form label { display: grid; gap: 8px; font-weight: 900; color: #374151; }
.login-form input { border: 1px solid #d1d5db; border-radius: 8px; padding: 14px 12px; font: inherit; }
.login-form .btn { border-radius: 8px; margin-top: 4px; border: 0; cursor: pointer; }
.login-form .btn:disabled { opacity: .72; cursor: wait; transform: none; }
.login-error { min-height: 22px; margin: 0; color: #b91c1c !important; font-weight: 800; }
.procedure-page { background: #f6f7f9; }
.procedure-hero { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 38px; align-items: end; padding: 64px 0 42px; }
.procedure-hero h2 { font-size: clamp(34px, 5vw, 58px); line-height: 1.04; margin: 0 0 18px; max-width: 880px; }
.procedure-hero p, .procedure-safe p { color: #4b5563; font-size: 18px; line-height: 1.75; }
.procedure-safe { background: white; border: 1px solid #e5e7eb; border-radius: 8px; padding: 24px; box-shadow: 0 16px 40px rgba(15, 23, 42, .06); }
.procedure-safe strong { display: block; margin-bottom: 10px; font-size: 22px; }
.procedure-access { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.procedure-whatsapp-instruction { background: white; border: 1px solid #e5e7eb; border-radius: 8px; padding: 20px; box-shadow: 0 16px 40px rgba(15, 23, 42, .06); display: grid; gap: 12px; }
.procedure-whatsapp-instruction strong { font-size: 20px; }
.procedure-whatsapp-instruction p { margin: 0; color: #4b5563; line-height: 1.55; }
.procedure-command { border: 1px solid #bbf7d0; background: #f0fdf4; color: #14532d; border-radius: 8px; padding: 14px; font-weight: 900; letter-spacing: .02em; overflow-wrap: anywhere; }
.procedure-command-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.procedure-command-actions .btn { border-radius: 8px; padding: 12px 14px; border: 0; cursor: pointer; }
.procedure-form { background: white; border: 1px solid #e5e7eb; border-radius: 8px; padding: 20px; box-shadow: 0 16px 40px rgba(15, 23, 42, .06); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: end; }
.procedure-form label { display: grid; gap: 8px; color: #374151; font-size: 13px; font-weight: 900; }
.procedure-form input { width: 100%; border: 1px solid #cbd5e1; border-radius: 8px; padding: 13px 12px; font: inherit; background: white; }
.procedure-form .btn { border-radius: 8px; padding: 13px 16px; border: 0; cursor: pointer; }
.procedure-message { grid-column: 1 / -1; min-height: 18px; margin: 0; color: #64748b; font-size: 13px; font-weight: 900; }
.procedure-ok { color: #15803d; }
.procedure-error { color: #b91c1c; }
.procedure-history { display: grid; gap: 16px; }
.procedure-title-row { display: flex; justify-content: space-between; gap: 18px; align-items: end; }
.procedure-title-row h2 { margin-bottom: 12px; }
.procedure-print-btn { border-radius: 8px; white-space: nowrap; }
.procedure-card { background: white; border: 1px solid #dfe5ec; border-radius: 8px; box-shadow: 0 14px 34px rgba(15, 23, 42, .06); padding: 18px; display: grid; gap: 16px; }
.procedure-card-head { display: flex; justify-content: space-between; gap: 18px; align-items: start; padding-bottom: 14px; border-bottom: 1px solid #e5e7eb; }
.procedure-card-head small { display: block; color: #64748b; font-weight: 900; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 6px; }
.procedure-card-head h3 { margin: 0 0 6px; font-size: 26px; line-height: 1.15; }
.procedure-card-head p { margin: 0; color: #475569; line-height: 1.45; }
.procedure-card-head span { border: 1px solid #bbf7d0; background: #f0fdf4; color: #166534; border-radius: 8px; padding: 8px 10px; font-size: 12px; font-weight: 900; white-space: nowrap; }
.procedure-card-actions { display: flex; justify-content: flex-end; margin-top: -6px; }
.procedure-kv { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; }
.procedure-kv div { border: 1px solid #e5e7eb; background: #fbfdff; border-radius: 8px; padding: 12px; }
.procedure-kv dt { color: #64748b; font-size: 12px; font-weight: 900; margin-bottom: 5px; }
.procedure-kv dd { margin: 0; color: #111827; line-height: 1.5; overflow-wrap: anywhere; }
.procedure-evidence { border-top: 1px solid #e5e7eb; padding-top: 14px; }
.procedure-evidence > strong { display: block; margin-bottom: 10px; font-size: 18px; }
.procedure-evidence-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.procedure-evidence-row { border: 1px solid #e5e7eb; background: #f8fafc; border-radius: 8px; padding: 12px; display: grid; gap: 10px; align-content: start; }
.procedure-evidence-row:hover { border-color: #111827; }
.procedure-evidence-row img, .procedure-evidence-row video { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 8px; background: #111827; border: 1px solid #e5e7eb; }
.procedure-evidence-row video { object-fit: contain; }
.procedure-media-link { display: block; }
.procedure-evidence-meta { display: grid; gap: 4px; }
.procedure-evidence-meta span { font-weight: 900; overflow-wrap: anywhere; }
.procedure-evidence-meta small { color: #64748b; font-size: 12px; font-weight: 800; overflow-wrap: anywhere; }
.procedure-evidence-meta a { color: #15803d; font-size: 13px; font-weight: 900; text-decoration: underline; text-underline-offset: 3px; }
.procedure-file-preview { min-height: 150px; border: 1px dashed #cbd5e1; border-radius: 8px; background: white; display: grid; place-items: center; color: #475569; font-weight: 900; }
.procedure-print-document { display: none; }
.print-document-head { display: flex; justify-content: space-between; gap: 24px; align-items: start; border-bottom: 2px solid #111827; padding-bottom: 18px; margin-bottom: 16px; }
.print-document-head small { display: block; color: #475569; font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 6px; }
.print-document-head h1 { margin: 0 0 8px; font-size: 30px; line-height: 1.1; }
.print-document-head p { margin: 0; color: #374151; line-height: 1.5; }
.print-document-head strong { border: 1px solid #bbf7d0; background: #f0fdf4; color: #166534; border-radius: 8px; padding: 8px 10px; font-size: 12px; text-transform: uppercase; }
.print-meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 18px; }
.print-meta span { border: 1px solid #e5e7eb; background: #f8fafc; border-radius: 8px; padding: 10px; font-size: 12px; font-weight: 900; color: #374151; }
.print-disclaimer { border-top: 1px solid #e5e7eb; margin-top: 18px; padding-top: 12px; color: #4b5563; font-size: 12px; line-height: 1.5; }
@media (max-width: 850px) {
  .nav, .hero { grid-template-columns: 1fr; flex-direction: column; align-items: flex-start; }
  .nav-links { width: 100%; flex-wrap: wrap; }
  .grid, .steps { grid-template-columns: 1fr; }
  .stats { grid-template-columns: 1fr; }
  .guide-hero, .guide-layout, .simple-steps, .check-grid, .municipality-tool, .municipality-steps, .procedure-hero, .procedure-access, .procedure-form, .procedure-kv, .procedure-evidence-list { grid-template-columns: 1fr; }
  .procedure-title-row { display: grid; align-items: start; }
  .procedure-card-actions { justify-content: flex-start; }
  .procedure-message { grid-column: auto; }
  .guide-list article { grid-template-columns: 1fr; }
  .municipality-picker { position: static; }
  .municipality-card-head { display: grid; }
  .municipality-card-head span { justify-self: start; }
  .dashboard-app { grid-template-columns: 1fr; }
  .dashboard-sidebar, .dashboard-title, .dashboard-group { grid-column: 1; }
  .dashboard-sidebar { grid-row: auto; position: static; }
  .sidebar-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-group-operaciones.is-active, .dashboard-group-sistema.is-active, .legal-kb-grid { grid-template-columns: 1fr; }
  .dashboard-group-operaciones .dashboard-panel:first-child, .dashboard-group-operaciones .dashboard-panel:last-child, .dashboard-group-sistema .dashboard-panel:first-child { grid-column: auto; }
  .dashboard-title { display: grid; align-items: start; }
  .dashboard-actions { justify-content: flex-start; }
  .panel-head, .review-admin-row, .review-admin-head { display: grid; }
  .review-filter label { min-width: 0; }
  .metric-grid { grid-template-columns: repeat(2, 1fr); }
  .summary-grid { grid-template-columns: 1fr; }
  .health-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .upcoming-list, .upcoming-row, .agenda-grid, .reminder-row, .operational-error-row, .backup-row { grid-template-columns: 1fr; }
  .operational-error-head { display: grid; }
  .quality-row-head { display: grid; }
  .deployment-checks, .deployment-check, .stage5-criteria, .stage5-criterion { grid-template-columns: 1fr; }
  .pilot-form, .pilot-checklist, .discount-grid, .discount-row, .admin-alert-form, .ai-assistant-form, .whatsapp-message-row { grid-template-columns: 1fr; }
  .whatsapp-code-actions { justify-content: flex-start; }
  .upcoming-meta { justify-items: start; }
  .dashboard-filters { grid-template-columns: 1fr; }
  .dashboard-layout { grid-template-columns: 1fr; }
  .cases-list { border-right: 0; border-bottom: 1px solid #e5e7eb; }
  .case-detail { max-height: none; }
  .ops-grid { grid-template-columns: 1fr; }
  .task-form, .task-row, .correction-form, .filing-form, .filing-row { grid-template-columns: 1fr; }
  .correction-form .btn { grid-column: auto; }
  .filing-form textarea, .filing-form .btn { grid-column: auto; }
  .task-actions { justify-content: flex-start; }
}

@media print {
  body { background: white; color: #111827; }
  .printing-procedure > :not(.procedure-print-document) { display: none !important; }
  .printing-procedure .procedure-print-document { display: block !important; }
  .header, footer, .guide-band, .procedure-safe, .procedure-print-btn { display: none !important; }
  .container { width: 100%; margin: 0; }
  .procedure-hero { display: block; padding: 0 0 18px; }
  .procedure-hero h2 { font-size: 28px; margin-bottom: 8px; }
  .procedure-hero p { font-size: 13px; color: #374151; }
  .section { padding: 0; }
  .procedure-history { gap: 12px; }
  .procedure-card { box-shadow: none; break-inside: avoid; page-break-inside: avoid; }
  .procedure-evidence-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .procedure-evidence-meta a { display: none; }
  .procedure-print-document { padding: 0; }
  .procedure-print-document h2 { margin: 18px 0 10px; font-size: 18px; }
  .print-kv { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .procedure-evidence-row { break-inside: avoid; page-break-inside: avoid; }
  .procedure-evidence-row img, .procedure-evidence-row video { object-fit: contain; background: white; max-height: 320px; }
}

.table-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.mini-action { border: 1px solid #d1d5db; background: white; color: #111827; border-radius: 999px; padding: 7px 10px; font: inherit; font-size: 12px; font-weight: 900; cursor: pointer; }
.mini-action:hover { border-color: #111827; }
.mini-action.danger { border-color: #fecaca; color: #b91c1c; background: #fff7f7; }
.mini-action.danger:hover { border-color: #b91c1c; }
.modal-open { overflow: hidden; }
.modal-backdrop { position: fixed; inset: 0; z-index: 1000; display: none; align-items: center; justify-content: center; padding: 24px; background: rgba(15, 23, 42, .72); backdrop-filter: blur(3px); }
.modal-backdrop.is-open { display: flex; }
.case-modal-card { width: min(1180px, 100%); max-height: min(92vh, 980px); background: #f8fafc; border-radius: 8px; box-shadow: 0 30px 90px rgba(0, 0, 0, .35); overflow: hidden; display: grid; grid-template-rows: auto minmax(0, 1fr); border: 1px solid rgba(255, 255, 255, .35); }
.case-modal-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 20px; background: #111827; color: white; border-bottom: 1px solid #1f2937; }
.case-modal-head small { color: #6b7280; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; font-size: 11px; }
.case-modal-head small { color: #94a3b8; }
.case-modal-head h3 { margin: 4px 0 0; font-size: 20px; line-height: 1.2; }
.modal-close { width: 40px; height: 40px; border-radius: 8px; border: 1px solid rgba(255, 255, 255, .2); background: rgba(255, 255, 255, .08); color: white; font-size: 26px; line-height: 1; cursor: pointer; }
.modal-close:hover { background: white; color: #111827; }
.modal-case-detail { max-height: none; overflow: auto; padding: 18px; }
.modal-case-detail .detail-section { background: white; border-radius: 8px; border: 1px solid #dfe5ec; padding: 16px; margin-bottom: 14px; box-shadow: 0 10px 24px rgba(15, 23, 42, .04); }
.modal-case-detail .detail-head { background: white; border-radius: 8px; border: 1px solid #dfe5ec; padding: 16px; margin-bottom: 12px; box-shadow: 0 10px 24px rgba(15, 23, 42, .04); }
.detail-tabbar { position: sticky; top: 0; z-index: 2; display: flex; gap: 8px; overflow-x: auto; background: #f8fafc; border-bottom: 1px solid #e5e7eb; padding: 0 0 12px; margin-bottom: 14px; }
.detail-tab { flex: 0 0 auto; border: 1px solid #d1d5db; border-radius: 8px; background: white; color: #374151; padding: 10px 12px; font: inherit; font-size: 13px; font-weight: 900; cursor: pointer; }
.detail-tab.is-active { background: #111827; border-color: #111827; color: white; }
.modal-case-detail .detail-section { display: none; }
.modal-case-detail .detail-section.is-active { display: block; }
@media (max-width: 850px) {
  .modal-backdrop { padding: 10px; align-items: stretch; }
  .case-modal-card { max-height: 96vh; border-radius: 14px; }
  .case-modal-head { padding: 14px; }
  .case-modal-head h3 { font-size: 16px; }
  .modal-case-detail { padding: 12px; }
  .detail-tabbar { top: 0; }
  .table-actions { min-width: 138px; }
}
