/* Shared presentation layer for the public site, admin and client portals. */
:root {
    --dp-ink: #142540;
    --dp-muted: #52647b;
    --dp-line: #e2e8f1;
    --dp-surface: #f5f7fb;
    --dp-blue: #0035d1;
}
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body.dp-interface { font-family: 'Roboto', system-ui, sans-serif; color: var(--dp-ink); font-size: 16px; line-height: 1.65; }
.dp-interface *, .dp-interface *::before, .dp-interface *::after { box-sizing: border-box; }
.dp-interface h1, .dp-interface h2, .dp-interface h3 { letter-spacing: -.035em; line-height: 1.2; text-wrap: balance; }
.dp-interface h1 { font-size: clamp(2rem, 4.3vw, 3.7rem); }
.dp-interface h2.text-4xl { font-size: clamp(1.85rem, 3vw, 2.65rem); }
.dp-interface h3.text-2xl { font-size: 1.4rem; }
.dp-interface p { text-wrap: pretty; }
.dp-interface .text-justify { text-align: start; }
.dp-interface .text-gray-600 { color: var(--dp-muted); }
.dp-interface :is(a, button, input, select, textarea):focus-visible { outline: 3px solid #487bff; outline-offset: 4px; }
.dp-interface :is(button, a) { -webkit-tap-highlight-color: transparent; }
.dp-interface button { cursor: pointer; }
.dp-interface button:disabled { cursor: not-allowed; opacity: .55; }
.dp-interface input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=hidden]),
.dp-interface select, .dp-interface textarea {
    border: 1px solid #cbd5e1; border-radius: 10px; padding: .75rem .9rem;
    background-color: #fff; color: var(--dp-ink); font-size: 1rem; max-width: 100%;
    transition: border-color .2s, box-shadow .2s;
}
.dp-interface :is(input, select, textarea):focus { border-color: #487bff; box-shadow: 0 0 0 4px #0035d110; }
.dp-interface label:not(.sr-only) { font-weight: 600; }
.dp-interface :is(.bg-white.rounded-lg, .bg-white.rounded-xl, .bg-white.rounded-2xl) {
    border: 1px solid var(--dp-line); border-radius: 18px; box-shadow: 0 4px 24px #14254006;
}
.dp-interface :is(.hover\:shadow-md, .hover\:shadow-lg):hover { box-shadow: 0 12px 32px #14254010; }
.dp-interface table { width: 100%; font-variant-numeric: tabular-nums; }
.dp-interface thead { background: #f1f5fa; }
.dp-interface th { color: #52647b; font-size: .75rem; letter-spacing: .04em; }
.dp-interface :is(th, td) { padding: .9rem 1rem; }
.dp-interface tbody tr { border-bottom: 1px solid var(--dp-line); }
.dp-interface tbody tr:hover { background: #f8faff; }
.dp-interface .overflow-x-auto { overscroll-behavior-x: contain; }
.dp-public > nav { position: sticky; top: 0; z-index: 40; background: #fffffff5; backdrop-filter: blur(16px); border-color: var(--dp-line); }
.dp-public > nav img { width: 120px; height: auto; }
.dp-public .dp-desktop-nav { gap: .3rem; }
.dp-public .dp-desktop-nav > a { margin-left: 0; font-size: .875rem; padding: .65rem .75rem; white-space: nowrap; }
.dp-public nav a[aria-current=page]:not(.text-white) { color: var(--dp-blue); background: #edf2ff; border-radius: 8px; }
#mobile-menu { max-height: calc(100dvh - 80px); overflow-y: auto; border-top: 1px solid var(--dp-line); }
#mobile-menu a { min-height: 44px; }
.dp-public main section.py-20 { padding-top: 5rem; padding-bottom: 5rem; }
.dp-public main section > div > .text-center.mb-5 { margin-bottom: 3rem; }
.dp-public .dp-page-hero {
    background: #102750 !important; position: relative; overflow: hidden;
    background-image: radial-gradient(ellipse at 90% 10%, #2051a8 0%, transparent 60%) !important;
}
.dp-public .dp-page-hero > div[style] { display: none; }
.dp-public .dp-page-hero .mb-12 { margin-bottom: 0; }
.dp-public .dp-page-hero p { color: #dbe6fa; }
.dp-public footer { margin-top: 0; background: #0e1d35; }
.dp-public footer > div { padding-top: 4rem; padding-bottom: 2rem; }
.dp-public footer .text-gray-400 { color: #aebbd0; }
.dp-public footer h3 { font-size: 1rem; }
.dp-hero { background: #f3f6fc; overflow: hidden; border-bottom: 1px solid var(--dp-line); }
.dp-hero-layout { max-width: 1280px; margin: auto; padding: 5.5rem 2rem; display: grid; grid-template-columns: 1fr 1.08fr; align-items: center; gap: 3.5rem; }
.dp-eyebrow { display: inline-flex; align-items: center; gap: .6rem; color: #305184; font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 1.5rem; }
.dp-eyebrow::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: #0035d1; }
.dp-hero h1 { margin: 0 0 1.5rem; font-size: clamp(2.5rem, 4.6vw, 4rem); line-height: 1.07; letter-spacing: -.055em; font-weight: 700; }
.dp-hero h1 span { color: var(--dp-blue); }
.dp-hero-copy > p { max-width: 31rem; color: var(--dp-muted); font-size: 1.1rem; line-height: 1.8; }
.dp-hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.dp-button { display: inline-flex; align-items: center; justify-content: center; gap: .75rem; padding: .85rem 1.25rem; min-height: 48px; border-radius: 10px; background: var(--dp-blue); color: #fff; font-size: .9rem; font-weight: 700; border: 1px solid var(--dp-blue); transition: background .2s, box-shadow .2s; }
.dp-button:hover { background: #002aa8; box-shadow: 0 5px 16px #0035d124; }
.dp-button-secondary { background: #fff; color: var(--dp-ink); border-color: #d6deeb; }
.dp-button-secondary:hover { background: #eef3fc; }
.dp-hero-note { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; margin-top: 1.5rem; color: var(--dp-muted); font-size: .8rem; }
.dp-preview { padding: 1.1rem; background: #fff; border: 1px solid #dce4f2; border-radius: 18px; box-shadow: 0 24px 64px #2445741a; transform: rotate(-1deg); }
.dp-preview-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: .25rem .25rem 1rem; font-size: .8rem; font-weight: 600; }
.dp-preview-heading span { color: #52647b; font-size: .7rem; font-weight: 400; }
.dp-preview img { width: 100%; height: auto; border: 1px solid var(--dp-line); border-radius: 8px; }
.dp-preview figcaption { margin-top: 1rem; display: flex; justify-content: space-between; gap: 1rem; color: var(--dp-muted); font-size: .75rem; }
.dp-preview figcaption a { color: var(--dp-blue); font-weight: 600; }
.dp-capabilities { max-width: 1280px; margin: auto; padding: 1.5rem 2rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; color: #62738b; font-size: .8rem; border-bottom: 1px solid var(--dp-line); }
.dp-capabilities strong { color: #263b59; font-size: .85rem; }
.dp-auth { min-height: calc(100dvh - 80px); background: radial-gradient(ellipse at top, #eaf0ff, #f7f9fc 70%); }
.dp-auth > div { padding: 2.5rem; background: #fff; border: 1px solid var(--dp-line); border-radius: 20px; box-shadow: 0 16px 60px #203a6610; }
.dp-auth form .-space-y-px > div { margin-top: 1rem; }
.dp-auth label.sr-only { position: static; width: auto; height: auto; margin: 0 0 .4rem; display: block; overflow: visible; clip: auto; white-space: normal; font-size: .875rem; }
.dp-admin { background: var(--dp-surface); }
.dp-admin #sidebar { flex-shrink: 0; border-right: 1px solid var(--dp-line); box-shadow: none; }
.dp-admin #sidebar nav a, .dp-admin #sidebar nav button { font-size: .875rem; }
.dp-admin #sidebar > div > div:first-child { min-height: 81px; }
.dp-admin .main-content { min-width: 0; }
.dp-admin header { box-shadow: none; }
.dp-admin header h1 { font-size: clamp(1.25rem, 2.5vw, 1.8rem); }
.dp-admin main { background: var(--dp-surface); }
.dp-client { background: var(--dp-surface); }
.dp-client h1 { font-size: clamp(1.4rem, 2.5vw, 2rem); }
@media (min-width: 1024px) {
    .dp-admin #sidebar.sidebar-hidden { width: 0; overflow: hidden; border: 0; }
}
@media (max-width: 1100px) {
    .dp-public .dp-desktop-nav { display: none; }
    .dp-public #mobile-menu-button { display: inline-flex; }
    .dp-public #mobile-menu:not(.hidden) { display: block; }
}
@media (max-width: 900px) {
    .dp-hero-layout { grid-template-columns: 1fr; gap: 2.5rem; padding: 3.5rem 1.5rem; }
    .dp-hero-copy { max-width: 650px; }
    .dp-preview { transform: none; }
}
@media (max-width: 640px) {
    .dp-public main section.py-20 { padding-top: 3rem; padding-bottom: 3rem; }
    .dp-interface .text-5xl, .dp-interface .text-6xl { font-size: 2.1rem; }
    .dp-interface .text-3xl { font-size: 1.6rem; }
    .dp-interface .text-xl { font-size: 1.05rem; }
    .dp-public main .p-8 { padding: 1.5rem; }
    .dp-hero-layout { padding: 3rem 1rem; }
    .dp-hero-actions .dp-button { width: 100%; }
    .dp-capabilities { padding: 1.5rem 1rem; justify-content: flex-start; gap: .75rem 1.5rem; }
    .dp-capabilities > span { width: 100%; }
    .dp-preview figcaption { flex-direction: column; gap: .25rem; }
    .dp-auth > div { padding: 1.5rem; }
    .dp-admin header > div { flex-wrap: wrap; gap: .75rem; }
    .dp-client .bg-white > .max-w-7xl > .flex { flex-wrap: wrap; gap: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .dp-interface *, .dp-interface *::before, .dp-interface *::after { animation: none !important; transition: none !important; }
}

/* Quitar el marco azul al hacer clic en links/botones (se mantiene solo para navegación con teclado) */
a, button, [role="button"] { -webkit-tap-highlight-color: transparent; }
:is(a, button, [role="button"], summary):focus:not(:focus-visible) {
  outline: none !important;
  --tw-ring-shadow: 0 0 #0000 !important;
  --tw-ring-offset-shadow: 0 0 #0000 !important;
}
