/* Generated by bin/build-assets.php. Edit resources/css, not this file. */

/* resources/css/tokens.css */
:root {
    --color-bg: #f4f7fa;
    --color-surface: #ffffff;
    --color-surface-soft: #edf4f7;
    --color-ink: #0e2033;
    --color-text: #26384a;
    --color-muted: #657587;
    --color-border: #d7e0e7;
    --color-primary: #0d7f7a;
    --color-primary-dark: #075d59;
    --color-primary-soft: #dff4f1;
    --color-secondary: #174c7d;
    --color-accent: #d96f4d;
    --color-danger: #a73535;
    --color-danger-soft: #fff0ef;
    --color-dark: #0b2139;
    --color-dark-soft: #143652;
    --color-white: #ffffff;
    --shadow-sm: 0 .4rem 1.4rem rgb(14 32 51 / 8%);
    --shadow-md: 0 1.2rem 3.5rem rgb(14 32 51 / 12%);
    --shadow-lg: 0 2rem 5rem rgb(7 31 49 / 18%);
    --space-2xs: .25rem;
    --space-xs: .5rem;
    --space-sm: .75rem;
    --space-md: 1rem;
    --space-lg: 1.5rem;
    --space-xl: 2rem;
    --space-2xl: 3rem;
    --space-3xl: 4.5rem;
    --space-4xl: 6.5rem;
    --radius-sm: .5rem;
    --radius-md: .85rem;
    --radius-lg: 1.35rem;
    --radius-xl: 2rem;
    --radius-pill: 999px;
    --container: 72rem;
    --container-narrow: 54rem;
    --header-height: 5rem;
    --transition-fast: 160ms ease;
    --transition: 240ms ease;
}

/* resources/css/reset.css */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body, h1, h2, h3, p, ul, ol, figure, blockquote { margin: 0; }
ul, ol { padding: 0; }
img, picture, svg, video, canvas { display: block; max-width: 100%; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
a { text-decoration-thickness: .08em; text-underline-offset: .16em; }
[hidden] { display: none !important; }

/* resources/css/base.css */
html {
    min-width: 20rem;
    scroll-behavior: smooth;
    background: var(--color-bg);
    color: var(--color-text);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.6;
}
body { min-height: 100vh; background: var(--color-bg); }
a { color: var(--color-primary-dark); }
a:hover { color: var(--color-primary); }
::selection { background: var(--color-primary); color: var(--color-white); }
:focus-visible { outline: .2rem solid var(--color-accent); outline-offset: .2rem; }
.icon { flex: 0 0 auto; }
address { font-style: normal; }

/* resources/css/typography.css */
h1, h2, h3 { color: var(--color-ink); font-weight: 800; letter-spacing: -.035em; line-height: 1.08; text-wrap: balance; }
h1 { font-size: clamp(2.7rem, 8vw, 5.9rem); }
h2 { font-size: clamp(2rem, 5vw, 3.7rem); }
h3 { font-size: clamp(1.15rem, 2vw, 1.45rem); }
p { text-wrap: pretty; }
.eyebrow { color: var(--color-primary-dark); font-size: .76rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }

/* resources/css/layout.css */
.container { width: min(calc(100% - 2rem), var(--container)); margin-inline: auto; }
.container--narrow { width: min(calc(100% - 2rem), var(--container-narrow)); margin-inline: auto; }
.section { padding-block: clamp(4rem, 8vw, var(--space-4xl)); }
.section--compact { padding-block: clamp(3rem, 6vw, 4.5rem); }
.stack { display: grid; gap: var(--space-md); }
.stack--sm { gap: var(--space-sm); }
.cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-md); }
.grid { display: grid; gap: var(--space-lg); }

/* resources/css/forms.css */
.form-stack { display: grid; gap: 1rem; }
.field { display: grid; gap: .45rem; }
.field label { color: var(--color-ink); font-size: .9rem; font-weight: 750; }
.field input,
.field textarea,
.field select {
    width: 100%;
    min-height: 3rem;
    border: 1px solid #aebbc7;
    border-radius: var(--radius-md);
    background: var(--color-white);
    color: var(--color-ink);
    padding: .72rem .85rem;
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.field input:hover,
.field textarea:hover,
.field select:hover { border-color: #8193a4; }
.field input:focus,
.field textarea:focus,
.field select:focus { border-color: var(--color-primary); box-shadow: 0 0 0 .2rem rgb(13 127 122 / 14%); outline: none; }

.form-grid { display: grid; gap: 1rem; }
.field-help { color: var(--color-muted); font-size: .86rem; }
.field-error { color: #a52a2a; font-size: .86rem; font-weight: 700; }
.field [aria-invalid="true"] { border-color: #b84444; box-shadow: 0 0 0 .18rem rgb(184 68 68 / 10%); }
.field--checkbox > label { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: .7rem; color: var(--color-muted); font-size: .92rem; font-weight: 500; }
.field--checkbox input { width: 1.1rem; min-height: 1.1rem; margin-top: .18rem; }
.field--checkbox a { color: var(--color-primary-dark); }
.form-honeypot { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; white-space: nowrap !important; }
.contact-form-section { background: var(--color-bg); }
.contact-form-layout { display: grid; gap: 2rem; align-items: start; }
.contact-form-intro { max-width: 34rem; }
.contact-form-intro h2 { margin-top: .6rem; }
.contact-form-intro > p:not(.eyebrow) { margin-top: .9rem; color: var(--color-muted); }
.contact-form-points { display: grid; gap: .65rem; margin-top: 1.4rem; padding-left: 1.2rem; color: var(--color-muted); }
.form-panel { border: 1px solid var(--color-border); border-radius: var(--radius-xl); background: var(--color-white); box-shadow: var(--shadow-sm); padding: clamp(1.2rem, 4vw, 2rem); }
.service-single { display: grid; gap: 1.5rem; }
.service-single__content { display: grid; grid-template-columns: auto 1fr; gap: 1.1rem; align-items: start; }
.service-single__content h2 { margin-bottom: .8rem; }
.service-single__content p { color: var(--color-muted); }
.service-single__aside { display: grid; gap: .9rem; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface-soft); padding: 1.5rem; }
.service-single__aside .button { justify-content: center; }
@media (min-width: 48rem) {
    .form-grid--two { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 58rem) {
    .contact-form-layout { grid-template-columns: .8fr 1.2fr; gap: 3rem; }
    .service-single { grid-template-columns: minmax(0, 1fr) 20rem; gap: 3rem; }
}

/* resources/css/utilities.css */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.skip-link { position: fixed; left: 1rem; top: .75rem; z-index: 9999; transform: translateY(-200%); border-radius: var(--radius-sm); background: var(--color-dark); color: var(--color-white); padding: .65rem .9rem; font-weight: 800; }
.skip-link:focus { transform: translateY(0); }
.text-link { display: inline-flex; align-items: center; gap: .45rem; color: var(--color-primary-dark); font-weight: 800; text-decoration: none; }
.text-link .icon { width: 1.1rem; transition: transform var(--transition-fast); }
.text-link:hover .icon { transform: translateX(.2rem); }

/* resources/css/components/buttons.css */
.button {
    display: inline-flex;
    min-height: 3rem;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    border: 1px solid transparent;
    border-radius: var(--radius-pill);
    padding: .72rem 1.15rem;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: transform var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);
}
.button:hover { transform: translateY(-1px); }
.button--sm { min-height: 2.55rem; padding: .58rem .9rem; font-size: .9rem; }
.button--full { width: 100%; }
.button--primary { background: var(--color-primary); color: var(--color-white); box-shadow: 0 .7rem 1.8rem rgb(13 127 122 / 18%); }
.button--primary:hover { background: var(--color-primary-dark); color: var(--color-white); }
.button--secondary { border-color: var(--color-border); background: var(--color-white); color: var(--color-ink); }
.button--secondary:hover { border-color: #b6c3cd; background: var(--color-surface-soft); color: var(--color-ink); }
.button--ghost { border-color: var(--color-border); background: rgb(255 255 255 / 72%); color: var(--color-ink); }
.button--ghost:hover { background: var(--color-white); color: var(--color-ink); }
.button--light { background: var(--color-white); color: var(--color-dark); }
.button--light:hover { background: #e9f7f5; color: var(--color-dark); }
.button--outline-light { border-color: rgb(255 255 255 / 50%); background: transparent; color: var(--color-white); }
.button--outline-light:hover { background: rgb(255 255 255 / 10%); color: var(--color-white); }
.button--danger-ghost { border-color: #e6b9b5; background: transparent; color: var(--color-danger); }
.button--danger-ghost:hover { background: var(--color-danger-soft); color: var(--color-danger); }
.icon-button { width: 2.6rem; height: 2.6rem; display: inline-grid; place-items: center; border: 1px solid var(--color-border); border-radius: var(--radius-pill); background: var(--color-white); color: var(--color-ink); cursor: pointer; font-size: 1.5rem; line-height: 1; }

/* resources/css/components/header.css */
.site-header { position: sticky; top: 0; z-index: 100; border-bottom: 1px solid rgb(215 224 231 / 80%); background: rgb(255 255 255 / 92%); backdrop-filter: blur(1rem); }
.site-header__inner { min-height: var(--header-height); display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.brand { display: inline-flex; align-items: center; gap: .7rem; color: var(--color-ink); text-decoration: none; }
.brand:hover { color: var(--color-ink); }
.brand__mark { width: 2.65rem; height: 2.65rem; display: grid; place-items: center; border-radius: .8rem; background: linear-gradient(135deg, var(--color-primary), var(--color-secondary)); color: var(--color-white); font-size: .78rem; font-weight: 900; letter-spacing: .04em; box-shadow: 0 .55rem 1.2rem rgb(13 127 122 / 18%); }
.brand__text { display: grid; gap: 0; line-height: 1.03; }
.brand__text strong { color: var(--color-ink); font-size: 1.15rem; letter-spacing: -.03em; }
.brand__text span { color: var(--color-muted); font-size: .78rem; font-weight: 700; }
.nav-toggle { width: 2.9rem; height: 2.9rem; display: none; place-items: center; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-white); cursor: pointer; }
.nav-toggle__lines, .nav-toggle__lines::before, .nav-toggle__lines::after { width: 1.25rem; height: 2px; display: block; border-radius: var(--radius-pill); background: var(--color-ink); transition: transform var(--transition-fast), opacity var(--transition-fast); }
.nav-toggle__lines { position: relative; }
.nav-toggle__lines::before, .nav-toggle__lines::after { content: ""; position: absolute; left: 0; }
.nav-toggle__lines::before { top: -.38rem; }
.nav-toggle__lines::after { top: .38rem; }
.nav-toggle[aria-expanded="true"] .nav-toggle__lines { background: transparent; }
.nav-toggle[aria-expanded="true"] .nav-toggle__lines::before { transform: translateY(.38rem) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__lines::after { transform: translateY(-.38rem) rotate(-45deg); }
.js .nav-toggle { display: grid; }
.main-nav { position: absolute; top: calc(100% + .6rem); left: 1rem; right: 1rem; display: block; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-white); padding: .75rem; box-shadow: var(--shadow-md); }
.js .main-nav { display: none; }
.js .main-nav.is-open { display: block; }
.main-nav__list { display: grid; list-style: none; }
.main-nav__link { display: block; border-radius: .7rem; color: var(--color-text); padding: .72rem .8rem; font-weight: 750; text-decoration: none; }
.main-nav__link:hover, .main-nav__link.is-active { background: var(--color-primary-soft); color: var(--color-primary-dark); }
.main-nav__cta { width: 100%; margin-top: .5rem; }
@media (min-width: 48rem) {
    .nav-toggle, .js .nav-toggle { display: none; }
    .main-nav { position: static; display: flex !important; align-items: center; gap: 1rem; border: 0; background: transparent; padding: 0; box-shadow: none; }
    .main-nav__list { display: flex; align-items: center; gap: .2rem; }
    .main-nav__link { padding: .55rem .72rem; font-size: .92rem; }
    .main-nav__cta { width: auto; margin: 0; }
}

.breadcrumbs {
    margin-bottom: var(--space-md);
    font-size: .875rem;
    color: var(--color-muted);
}
.breadcrumbs ol {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
}
.breadcrumbs li {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}
.breadcrumbs li:not(:last-child)::after {
    content: "/";
    opacity: .5;
}
.breadcrumbs a {
    color: inherit;
    text-decoration-thickness: .08em;
    text-underline-offset: .18em;
}
.breadcrumbs [aria-current="page"] {
    color: var(--color-text);
    font-weight: 600;
}

/* resources/css/components/cards.css */
.feature-strip { position: relative; z-index: 4; margin-top: -1.5rem; }
.feature-strip__grid { display: grid; gap: .8rem; }
.feature-card { display: flex; align-items: flex-start; gap: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-white); padding: 1.2rem; box-shadow: var(--shadow-sm); }
.feature-card__icon, .service-card__icon, .service-detail__icon { display: grid; place-items: center; flex: 0 0 auto; color: var(--color-primary-dark); background: var(--color-primary-soft); }
.feature-card__icon { width: 2.8rem; height: 2.8rem; border-radius: .9rem; }
.feature-card__icon .icon { width: 1.35rem; }
.feature-card h3 { margin-bottom: .32rem; font-size: 1rem; letter-spacing: -.015em; }
.feature-card p { color: var(--color-muted); font-size: .9rem; line-height: 1.5; }
.service-grid { display: grid; gap: 1rem; margin-top: 2.2rem; }
.service-card { min-height: 21rem; display: flex; flex-direction: column; border: 1px solid var(--color-border); border-radius: var(--radius-xl); background: var(--color-white); padding: clamp(1.35rem, 3vw, 2rem); box-shadow: var(--shadow-sm); transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition); }
.service-card:hover { transform: translateY(-.25rem); border-color: #bdcacd; box-shadow: var(--shadow-md); }
.service-card__icon { width: 3.6rem; height: 3.6rem; border-radius: 1rem; }
.service-card__body { margin-top: auto; padding-top: 3.3rem; }
.service-card__body h3 { margin-bottom: .65rem; }
.service-card__body p { color: var(--color-muted); }
.service-card__link { display: flex; align-items: center; justify-content: space-between; gap: .7rem; margin-top: 1.35rem; border-top: 1px solid var(--color-border); padding-top: 1rem; color: var(--color-ink); font-weight: 800; text-decoration: none; }
.service-card__link .icon { width: 1.1rem; transition: transform var(--transition-fast); }
.service-card:hover .service-card__link .icon { transform: translateX(.25rem); }
.contact-grid { display: grid; gap: 1rem; }
.contact-card { border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-white); padding: 1.5rem; }
.contact-card__label { display: block; margin-bottom: .75rem; color: var(--color-muted); font-size: .74rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.contact-card a, .contact-card strong { display: inline-block; color: var(--color-ink); font-size: clamp(1.15rem, 3vw, 1.45rem); font-weight: 800; text-decoration: none; overflow-wrap: anywhere; }
.contact-card p { margin-top: .5rem; color: var(--color-muted); }
@media (min-width: 42rem) {
    .feature-strip__grid { grid-template-columns: repeat(3, 1fr); }
    .service-grid, .contact-grid { grid-template-columns: repeat(3, 1fr); }
}

.responsive-image { display: block; overflow: hidden; }
.responsive-image img { display: block; width: 100%; height: auto; }
.responsive-image--cover { width: 100%; height: 100%; }
.responsive-image--cover img { width: 100%; height: 100%; object-fit: cover; }
.service-card__media { display: block; overflow: hidden; margin: calc(clamp(1.35rem, 3vw, 2rem) * -1) calc(clamp(1.35rem, 3vw, 2rem) * -1) 1.2rem; border-radius: var(--radius-xl) var(--radius-xl) 0 0; aspect-ratio: 16 / 10; background: var(--color-primary-soft); }
.service-card__media .responsive-image { width: 100%; height: 100%; }
.service-card:has(.service-card__media) .service-card__body { padding-top: 1.5rem; }

/* F282 */
@media (min-width: 42rem) {
    .contact-grid { grid-template-columns: repeat(auto-fit,minmax(15rem,1fr)); }
}
.contact-card--action { border-color: #9fcfca; background: linear-gradient(145deg,var(--color-white),var(--color-primary-soft)); }

/* resources/css/components/section-heading.css */
.section-heading { max-width: 49rem; }
.section-heading h2 { margin-top: .65rem; }
.section-heading__text { max-width: 42rem; margin-top: 1rem; color: var(--color-muted); font-size: 1.05rem; }
.section-heading--center { margin-inline: auto; text-align: center; }
.section-heading--center .section-heading__text { margin-inline: auto; }

/* resources/css/components/alerts.css */
.alert { border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: .85rem 1rem; }
.alert ul { margin: .45rem 0 0 1.1rem; }
.alert--error { border-color: #e3b5b1; background: var(--color-danger-soft); color: #7f2525; }
.alert--success { border-color: #a9d7c5; background: #e9f7f1; color: #245d49; }

.preview-banner{position:sticky;top:0;z-index:1000;display:flex;gap:.75rem;justify-content:center;align-items:center;padding:.65rem 1rem;background:#fff3cd;color:#5f4300;border-bottom:1px solid #e6c85e;font-size:.9rem}.preview-banner strong{font-weight:800}.preview-banner span{opacity:.9}.is-preview .site-header{top:2.6rem}
.alert--warning { border-color: #e7c66d; background: #fff7df; color: #6b4b00; }
.alert--danger { border-color: #e3b5b1; background: var(--color-danger-soft); color: #7f2525; }
.publication-quality__issues { display: grid; gap: .3rem; }
.publication-quality small { display: block; margin-top: .5rem; }

/* resources/css/components/modal.css */
.modal { width: min(calc(100% - 2rem), 34rem); max-height: calc(100vh - 2rem); border: 0; border-radius: var(--radius-xl); padding: 0; background: transparent; color: var(--color-text); box-shadow: var(--shadow-lg); }
.modal::backdrop { background: rgb(5 21 34 / 64%); backdrop-filter: blur(.2rem); }
.modal__panel { overflow: hidden; border: 1px solid var(--color-border); border-radius: inherit; background: var(--color-white); }
.modal__header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--color-border); padding: 1.1rem 1.2rem; }
.modal__header h2 { font-size: 1.3rem; }
.modal__body { padding: 1.2rem; }
.modal__body p { margin-bottom: 1rem; color: var(--color-muted); }

/* resources/css/components/footer.css */
.site-footer { border-top: 1px solid rgb(255 255 255 / 8%); background: var(--color-dark); color: #c9d5df; }
.site-footer__grid { display: grid; gap: 2.4rem; padding-block: 3.5rem; }
.site-footer .brand { color: var(--color-white); }
.site-footer .brand__text strong { color: var(--color-white); }
.site-footer .brand__text span { color: #9bb0c0; }
.site-footer__brand p { max-width: 27rem; margin-top: 1rem; color: #aebfcb; }
.footer-title { margin-bottom: .9rem; color: var(--color-white); font-size: .9rem; letter-spacing: .06em; text-transform: uppercase; }
.footer-nav ul { display: grid; gap: .5rem; list-style: none; }
.footer-nav a, .footer-contact a { color: #c9d5df; text-decoration: none; }
.footer-nav a:hover, .footer-contact a:hover { color: var(--color-white); }
.footer-contact { display: grid; gap: .5rem; }
.site-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .6rem 1rem; border-top: 1px solid rgb(255 255 255 / 10%); padding-block: 1.2rem; color: #8fa4b5; }
@media (min-width: 44rem) { .site-footer__grid { grid-template-columns: 1.6fr .8fr 1fr; } }

.footer-hours { font-size: .86rem; }
.footer-legal { display: flex; flex-wrap: wrap; gap: .8rem 1rem; }
.footer-legal a { color: #9fb1bf; text-decoration: none; }
.footer-legal a:hover { color: var(--color-white); }

/* resources/css/pages/home.css */
.hero--home { position: relative; overflow: clip; background: linear-gradient(135deg, #edf7f6 0%, #f8fbfc 48%, #eef3f8 100%); padding-block: clamp(4.4rem, 10vw, 7.5rem) clamp(5rem, 10vw, 7.8rem); }
.hero--home::before { content: ""; position: absolute; inset: auto auto -18rem -16rem; width: 32rem; height: 32rem; border-radius: 50%; background: radial-gradient(circle, rgb(13 127 122 / 14%), transparent 68%); }
.hero__grid { display: grid; align-items: center; gap: 3rem; }
.hero__content { position: relative; z-index: 2; max-width: 46rem; }
.hero__content h1 { max-width: 12ch; margin-top: .8rem; }
.hero__lead { max-width: 38rem; margin-top: 1.2rem; color: var(--color-muted); font-size: clamp(1.05rem, 2.3vw, 1.28rem); }
.hero__actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.7rem; }
.hero__meta { display: flex; flex-wrap: wrap; gap: .8rem 1.4rem; margin-top: 1.7rem; list-style: none; color: var(--color-muted); font-size: .9rem; }
.hero__meta li { display: flex; align-items: center; gap: .5rem; }
.hero__meta .icon { width: 1.05rem; color: var(--color-primary-dark); }
.hero-visual { position: relative; min-height: 25rem; }
.hero-visual__orb { position: absolute; border-radius: 50%; filter: blur(.2rem); }
.hero-visual__orb--one { width: 18rem; height: 18rem; top: 1rem; right: 1rem; background: linear-gradient(135deg, #71c9bd, #1d718a); opacity: .42; }
.hero-visual__orb--two { width: 11rem; height: 11rem; bottom: 1rem; left: 1rem; background: linear-gradient(135deg, #f3b597, #d96f4d); opacity: .4; }
.device-card { position: absolute; border: 1px solid rgb(255 255 255 / 75%); background: rgb(255 255 255 / 82%); backdrop-filter: blur(1rem); box-shadow: var(--shadow-lg); }
.device-card--main { width: min(86%, 22rem); top: 1.8rem; right: 0; border-radius: 2rem; padding: .7rem; transform: rotate(3deg); }
.device-card__status { display: block; width: .6rem; height: .6rem; margin: .3rem 0 .6rem .5rem; border-radius: 50%; background: #3ebd72; box-shadow: 1rem 0 0 #e8bb4c, 2rem 0 0 #df665d; }
.device-card__screen { min-height: 18rem; display: grid; place-items: center; align-content: center; gap: .8rem; border-radius: 1.5rem; background: linear-gradient(155deg, var(--color-dark), var(--color-dark-soft)); color: #d8e4ec; text-align: center; }
.device-card__logo { width: 5.2rem; height: 5.2rem; display: grid; place-items: center; border: 1px solid rgb(255 255 255 / 18%); border-radius: 1.5rem; background: linear-gradient(135deg, var(--color-primary), #2b79a6); color: var(--color-white); font-size: 1.6rem; font-weight: 900; }
.device-card--small { width: 12rem; bottom: .5rem; left: .2rem; display: grid; gap: .3rem; border-radius: 1.25rem; padding: 1rem; transform: rotate(-4deg); }
.device-card--small .icon { width: 1.45rem; color: var(--color-primary-dark); }
.device-card--small strong { color: var(--color-ink); font-size: .9rem; }
.device-card--small span { color: var(--color-muted); font-size: .78rem; }
.section--services { background: var(--color-bg); }
.section--about { background: var(--color-white); }
.about-grid { display: grid; gap: 2rem; }
.about-panel { border-radius: var(--radius-xl); background: linear-gradient(145deg, var(--color-dark), #123b5a); color: #c7d5df; padding: clamp(1.6rem, 5vw, 3rem); }
.about-panel .eyebrow { color: #79d4c9; }
.about-panel h2 { max-width: 11ch; margin-top: .6rem; color: var(--color-white); }
.about-panel > p:not(.eyebrow) { max-width: 36rem; margin-top: 1rem; }
.about-panel .text-link { margin-top: 1.5rem; color: #a9e6de; }
.about-points { display: grid; align-content: center; }
.about-points article { display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; border-bottom: 1px solid var(--color-border); padding-block: 1.4rem; }
.about-points article:first-child { padding-top: 0; }
.about-points article > span { color: var(--color-primary); font-size: .82rem; font-weight: 900; }
.about-points h3 { margin-bottom: .35rem; }
.about-points p { color: var(--color-muted); }
.section--cta { padding-block: 0 4.5rem; background: var(--color-white); }
.cta-panel { display: flex; flex-direction: column; gap: 1.5rem; justify-content: space-between; border-radius: var(--radius-xl); background: linear-gradient(135deg, var(--color-primary-dark), var(--color-secondary)); color: #d4e7ec; padding: clamp(1.6rem, 5vw, 3rem); }
.cta-panel .eyebrow { color: #a9e6de; }
.cta-panel h2 { max-width: 17ch; margin-top: .5rem; color: var(--color-white); }
.cta-panel__actions { display: flex; flex-wrap: wrap; gap: .7rem; align-items: center; }
.page-hero { background: linear-gradient(135deg, #eaf6f4, #f8fafc); padding-block: clamp(4rem, 9vw, 6.5rem); }
.page-hero--compact { padding-block: clamp(3.5rem, 7vw, 5rem); }
.page-hero__inner { max-width: 50rem; }
.page-hero h1 { margin-top: .7rem; font-size: clamp(2.7rem, 7vw, 5rem); }
.page-hero p:last-child { max-width: 42rem; margin-top: 1rem; color: var(--color-muted); font-size: 1.08rem; }
.service-detail-list .container { display: grid; gap: 1rem; }
.service-detail { scroll-margin-top: calc(var(--header-height) + 1rem); display: grid; grid-template-columns: auto 1fr; gap: 1.1rem; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-white); padding: clamp(1.3rem, 4vw, 2rem); }
.service-detail__icon { width: 3.3rem; height: 3.3rem; border-radius: 1rem; }
.service-detail h2 { margin-top: .35rem; font-size: clamp(1.65rem, 4vw, 2.4rem); }
.service-detail p:last-child { max-width: 48rem; margin-top: .75rem; color: var(--color-muted); }
.inline-cta { display: flex; flex-direction: column; gap: 1.3rem; align-items: flex-start; justify-content: space-between; border-top: 1px solid var(--color-border); padding-top: 2rem; }
.inline-cta h2 { font-size: clamp(1.5rem, 3vw, 2.1rem); }
.inline-cta p { margin-top: .45rem; color: var(--color-muted); }
@media (min-width: 52rem) {
    .hero__grid { grid-template-columns: minmax(0, 1.1fr) minmax(20rem, .9fr); }
    .hero-visual { min-height: 30rem; }
    .about-grid { grid-template-columns: 1.05fr .95fr; gap: 3rem; }
    .cta-panel, .inline-cta { flex-direction: row; align-items: center; }
}

.content-page { max-width: 72rem; }
.content-block--text, .content-block--list, .content-block--notice, .content-block--faq { max-width: 52rem; margin-inline: auto; }
.content-block + .content-block { margin-top: var(--space-xl); }
.content-block h2 { margin-bottom: var(--space-md); }
.content-block p + p { margin-top: var(--space-md); }
.content-block--list ul { padding-left: 1.4rem; display: grid; gap: var(--space-sm); }
.content-block--notice { padding: var(--space-lg); border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface-soft); }

.hero-media { overflow: hidden; border: 1px solid rgba(255,255,255,.18); border-radius: var(--radius-xl); background: var(--color-primary-soft); box-shadow: var(--shadow-lg); }
.hero-media--home { min-height: 22rem; aspect-ratio: 4 / 3; }
.hero-media--home .responsive-image { width: 100%; height: 100%; }
.page-hero__media { overflow: hidden; width: 100%; margin-top: clamp(1.5rem,4vw,2.5rem); border-radius: var(--radius-xl); aspect-ratio: 16 / 6; background: var(--color-primary-soft); box-shadow: var(--shadow-sm); }
.page-hero__media .responsive-image { width: 100%; height: 100%; }
.service-detail--media { grid-template-columns: 1fr; }
.service-detail__media { overflow: hidden; border-radius: var(--radius-md); aspect-ratio: 16 / 10; background: var(--color-primary-soft); }
.service-detail__media .responsive-image { width: 100%; height: 100%; }
@media (min-width: 60rem) {
    .service-detail--media { grid-template-columns: minmax(18rem, 22rem) 1fr; align-items: center; }
}

.content-block__intro { margin-bottom: var(--space-md); color: var(--color-muted); }
.content-block--list-numbered ol { padding-left: 1.6rem; display: grid; gap: var(--space-sm); }
.content-block--list-check ul { padding-left: 0; list-style: none; }
.content-block--list-check li { position: relative; padding-left: 1.8rem; }
.content-block--list-check li::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--color-primary-dark); font-weight: 900; }
.content-block--notice { border-left-width: .32rem; }
.content-block--notice-info { border-left-color: #4a90b8; background: #f0f7fb; }
.content-block--notice-success { border-left-color: #2b8b66; background: #eef8f3; }
.content-block--notice-warning { border-left-color: #b77a17; background: #fff8e9; }
.content-block--cta { display: flex; flex-direction: column; gap: 1.4rem; align-items: flex-start; justify-content: space-between; border-radius: var(--radius-xl); background: linear-gradient(135deg,var(--color-primary-dark),var(--color-secondary)); color: #d9ecf0; padding: clamp(1.5rem,4vw,2.5rem); }
.content-block--cta h2 { color: var(--color-white); }
.content-block--cta p:not(.eyebrow) { margin-top: .6rem; max-width: 42rem; }
.content-block--image-text { display: grid; gap: clamp(1.3rem,4vw,3rem); align-items: center; max-width: none; }
.content-block__media { overflow: hidden; min-height: 16rem; border-radius: var(--radius-xl); aspect-ratio: 4 / 3; background: var(--color-primary-soft); box-shadow: var(--shadow-sm); }
.content-block__media .responsive-image { width: 100%; height: 100%; }
.content-block__copy h2 { margin-top: .45rem; }
.content-block__copy p { margin-top: .8rem; color: var(--color-muted); }
.content-block__copy .button { margin-top: 1.2rem; }
.content-gallery { display: grid; gap: .8rem; grid-template-columns: repeat(2,minmax(0,1fr)); }
.content-gallery figure { overflow: hidden; margin: 0; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-white); }
.content-gallery .responsive-image { width: 100%; aspect-ratio: 4 / 3; }
.content-gallery figcaption { padding: .6rem .75rem; color: var(--color-muted); font-size: .84rem; }
.faq-list { display: grid; gap: .7rem; }
.faq-list details { border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-white); padding: 1rem 1.1rem; }
.faq-list summary { cursor: pointer; color: var(--color-ink); font-weight: 800; }
.faq-list details p { margin-top: .8rem; color: var(--color-muted); }
@media (min-width: 48rem) { .content-gallery { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (min-width: 60rem) {
    .content-block--cta { flex-direction: row; align-items: center; }
    .content-block--image-text { grid-template-columns: minmax(18rem,.9fr) minmax(0,1.1fr); }
    .content-block--image-right .content-block__media { order: 2; }
}

/* F282 · lanzamiento público */
.section--problems { background: var(--color-white); }
.problem-grid { display: grid; gap: 1rem; margin-top: 2.2rem; }
.problem-card { border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface); padding: 1.35rem; box-shadow: var(--shadow-sm); }
.problem-card__icon { width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: .9rem; background: var(--color-primary-soft); color: var(--color-primary-dark); }
.problem-card__icon .icon { width: 1.45rem; height: 1.45rem; }
.problem-card h3 { margin-top: 1rem; }
.problem-card p { margin-top: .5rem; color: var(--color-muted); }
.section--process { background: var(--color-surface-soft); }
.process-grid { display: grid; gap: 1rem; margin-top: 2.2rem; list-style: none; }
.process-grid li { display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-white); padding: 1.35rem; }
.process-grid li > span { width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border-radius: 50%; background: var(--color-dark); color: var(--color-white); font-weight: 900; }
.process-grid p { margin-top: .45rem; color: var(--color-muted); }
.section--portal { background: var(--color-white); padding-top: 0; }
.portal-panel, .reviews-panel { display: flex; flex-direction: column; gap: 1.5rem; justify-content: space-between; border: 1px solid var(--color-border); border-radius: var(--radius-xl); background: var(--color-surface-soft); padding: clamp(1.5rem,4vw,2.5rem); }
.portal-panel h2, .reviews-panel h2 { margin-top: .45rem; }
.portal-panel p:not(.eyebrow), .reviews-panel p:not(.eyebrow) { max-width: 44rem; margin-top: .7rem; color: var(--color-muted); }
.portal-panel__actions { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }
.section--reviews { background: var(--color-white); padding-top: 0; }
@media (min-width: 42rem) { .problem-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (min-width: 64rem) { .problem-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } .process-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } .portal-panel, .reviews-panel { flex-direction: row; align-items: center; } }

/* resources/css/pages/auth.css */
.auth-page { min-height: 100vh; display: grid; place-items: center; background: radial-gradient(circle at top left, #e0f2ef, transparent 30%), linear-gradient(135deg, #f4f8fa, #edf2f7); padding: 2rem 0; }
.auth-shell { width: min(calc(100% - 2rem), 31rem); margin-inline: auto; }
.auth-brand { margin: 0 auto 1rem; }
.auth-card { border: 1px solid var(--color-border); border-radius: var(--radius-xl); background: rgb(255 255 255 / 94%); padding: clamp(1.4rem, 5vw, 2.2rem); box-shadow: var(--shadow-md); }
.auth-card__heading { margin-bottom: 1.3rem; }
.auth-card h1 { margin-top: .45rem; font-size: clamp(1.8rem, 6vw, 2.5rem); }
.auth-card__heading > p:last-child { margin-top: .6rem; color: var(--color-muted); }
.auth-back { display: inline-block; margin-top: 1.2rem; color: var(--color-muted); font-size: .9rem; text-decoration: none; }

/* resources/css/pages/admin.css */
.admin-page { background: #f3f6f9; }
.admin-shell { min-height: 100vh; }
.admin-sidebar { background: var(--color-dark); color: #c7d5df; padding: 1rem; }
.brand--admin { color: var(--color-white); }
.brand--admin .brand__text strong { color: var(--color-white); }
.brand--admin .brand__text span { color: #9fb0bf; }
.admin-nav { display: flex; gap: .45rem; overflow-x: auto; margin-top: 1rem; }
.admin-nav a, .admin-nav__future { white-space: nowrap; border-radius: .7rem; color: #c7d5df; padding: .65rem .8rem; font-size: .9rem; font-weight: 750; text-decoration: none; }
.admin-nav a.is-active { background: rgb(255 255 255 / 10%); color: var(--color-white); }
.admin-nav__future { opacity: .55; }
.admin-nav__future small { display: none; }
.admin-main { min-width: 0; }
.admin-topbar { min-height: 4.6rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--color-border); background: var(--color-white); padding: .8rem 1rem; }
.admin-topbar > div { display: grid; line-height: 1.25; }
.admin-topbar__kicker { color: var(--color-muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.admin-topbar a { font-size: .9rem; font-weight: 750; text-decoration: none; }
.admin-content { width: min(calc(100% - 2rem), 74rem); margin-inline: auto; padding-block: 2rem; }
.admin-heading { max-width: 50rem; }
.admin-heading h1 { margin-top: .5rem; font-size: clamp(2rem, 5vw, 3.2rem); }
.admin-heading > div > p:last-child { margin-top: .8rem; color: var(--color-muted); }
.admin-stat-grid { display: grid; gap: .8rem; margin-top: 1.5rem; }
.admin-stat { display: grid; gap: .2rem; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-white); padding: 1.2rem; }
.admin-stat span { color: var(--color-muted); font-size: .76rem; font-weight: 800; text-transform: uppercase; }
.admin-stat strong { color: var(--color-ink); font-size: 1.25rem; }
.admin-stat small { color: var(--color-muted); }
.admin-panel { display: flex; flex-direction: column; gap: 1.2rem; align-items: flex-start; justify-content: space-between; margin-top: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-white); padding: 1.2rem; }
.admin-panel h2 { font-size: 1.25rem; }
.admin-panel p { margin-top: .35rem; color: var(--color-muted); }
.admin-actions { display: flex; flex-wrap: wrap; gap: .7rem; }
@media (min-width: 42rem) { .admin-stat-grid { grid-template-columns: repeat(3, 1fr); } .admin-panel { flex-direction: row; align-items: center; } }
@media (min-width: 62rem) {
    .admin-shell { display: grid; grid-template-columns: 15.5rem minmax(0, 1fr); }
    .admin-sidebar { position: sticky; top: 0; height: 100vh; padding: 1.3rem; }
    .admin-nav { display: grid; overflow: visible; margin-top: 2rem; }
    .admin-nav a, .admin-nav__future { display: flex; align-items: center; justify-content: space-between; }
    .admin-nav__future small { display: inline; color: #8196a6; font-size: .68rem; }
    .admin-topbar { padding-inline: 1.5rem; }
}

.admin-heading--actions { display: flex; flex-direction: column; gap: 1rem; align-items: flex-start; justify-content: space-between; }
.admin-heading--actions .button { flex: none; }
.admin-stat-grid--four { grid-template-columns: 1fr; }
.admin-stat--link { color: inherit; text-decoration: none; transition: transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast); }
.admin-stat--link:hover { transform: translateY(-2px); border-color: #b7c7d2; box-shadow: var(--shadow-sm); color: inherit; }
.admin-filters { display: flex; flex-wrap: wrap; gap: .45rem; margin-block: 1.4rem 1rem; }
.admin-filters a { border: 1px solid var(--color-border); border-radius: var(--radius-pill); background: var(--color-white); color: var(--color-muted); padding: .5rem .8rem; font-size: .88rem; font-weight: 750; text-decoration: none; }
.admin-filters a.is-active { border-color: var(--color-primary); background: #eaf7f5; color: var(--color-primary-dark); }
.admin-table-wrap { margin-top: 1.2rem; overflow-x: auto; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-white); }
.admin-table { width: 100%; min-width: 46rem; border-collapse: collapse; }
.admin-table th, .admin-table td { padding: .85rem 1rem; border-bottom: 1px solid var(--color-border); text-align: left; vertical-align: middle; }
.admin-table tr:last-child td { border-bottom: 0; }
.admin-table th { background: #f8fafc; color: var(--color-muted); font-size: .75rem; font-weight: 850; letter-spacing: .035em; text-transform: uppercase; }
.admin-table td { color: var(--color-ink); font-size: .92rem; }
.admin-table td small { display: block; margin-top: .2rem; color: var(--color-muted); }
.admin-table code, .admin-heading code { border-radius: .35rem; background: #edf2f5; padding: .15rem .35rem; color: #344754; font-size: .86em; }
.admin-empty { color: var(--color-muted) !important; text-align: center !important; padding-block: 2.2rem !important; }
.status-badge { display: inline-flex; align-items: center; border-radius: var(--radius-pill); padding: .3rem .55rem; background: #eef2f5; color: #425563; font-size: .75rem; font-weight: 800; }
.status-badge--published, .status-badge--read { background: #e6f4ee; color: #176247; }
.status-badge--new { background: #e8f2ff; color: #245d92; }
.status-badge--draft { background: #fff4d8; color: #755711; }
.status-badge--review { background:#e8f2ff;color:#245d92; }
.status-badge--scheduled { background:#f0e9ff;color:#60419a; }
.status-badge--archived { background: #edf0f2; color: #56636d; }
.status-badge--spam { background: var(--color-danger-soft); color: var(--color-danger); }
.admin-card { border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-white); padding: clamp(1rem, 3vw, 1.5rem); }
.admin-card > h2 { margin-bottom: 1rem; font-size: 1.18rem; }
.admin-form { display: grid; gap: 1rem; margin-top: 1.4rem; }
.admin-form .admin-card { display: grid; gap: 1rem; }
.admin-form-actions { display: flex; justify-content: flex-end; padding-block: .4rem 1rem; }
.admin-checkboxes { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; }
.admin-checkboxes label { display: inline-flex; gap: .5rem; align-items: center; color: var(--color-muted); font-size: .9rem; font-weight: 650; }
.admin-checkboxes input { width: 1rem; height: 1rem; }
.admin-detail-grid { display: grid; gap: 1rem; margin-top: 1.3rem; }
.admin-meta { display: grid; gap: .7rem; }
.admin-meta > div { display: grid; grid-template-columns: 7rem 1fr; gap: .7rem; }
.admin-meta dt { color: var(--color-muted); font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.admin-meta dd { margin: 0; overflow-wrap: anywhere; }
.admin-message-body { margin-top: 1.5rem; border-top: 1px solid var(--color-border); padding-top: 1.4rem; color: var(--color-ink); line-height: 1.7; white-space: normal; overflow-wrap: anywhere; }
.admin-inline-form { display: grid; gap: 1rem; align-items: end; margin-top: 1.3rem; }
.admin-inline-form .button { min-width: max-content; }
@media (min-width: 42rem) { .admin-heading--actions { flex-direction: row; align-items: flex-end; } .admin-stat-grid--four { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 58rem) { .admin-detail-grid { grid-template-columns: minmax(0, 1fr) 20rem; } .admin-inline-form { grid-template-columns: 1fr 1fr 7rem auto; } }
@media (min-width: 72rem) { .admin-stat-grid--four { grid-template-columns: repeat(4, 1fr); } }

.admin-media-library { margin-top: 1.5rem; }
.admin-media-grid { display: grid; gap: 1rem; }
.admin-media-card { overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-white); }
.admin-media-preview { display: grid; min-height: 12rem; place-items: center; background: #f4f7f9; }
.admin-media-preview img { width: 100%; height: 14rem; object-fit: contain; }
.admin-media-card__body { display: grid; gap: .8rem; padding: 1rem; }
.admin-media-card__body > small { color: var(--color-muted); }
.admin-media-meta { display: grid; gap: .7rem; border-top: 1px solid var(--color-border); padding-top: .8rem; }
@media (min-width: 48rem) { .admin-media-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (min-width: 76rem) { .admin-media-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } }

.admin-media-picker { min-width: 0; border: 0; padding: 0; }
.admin-media-picker > legend { margin-bottom: .35rem; font-weight: 800; }
.admin-media-picker__grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(9rem,1fr)); gap: .75rem; max-height: 30rem; overflow: auto; margin-top: 1rem; padding: .2rem; }
.admin-media-choice { position: relative; display: grid; align-content: start; gap: .45rem; min-width: 0; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-white); padding: .55rem; cursor: pointer; }
.admin-media-choice:has(input:checked) { border-color: var(--color-primary); box-shadow: 0 0 0 2px var(--color-primary-soft); }
.admin-media-choice input { position: absolute; top: .7rem; left: .7rem; z-index: 1; width: 1rem; height: 1rem; }
.admin-media-choice__preview,.admin-media-choice__empty { display: grid; place-items: center; overflow: hidden; width: 100%; aspect-ratio: 4 / 3; border-radius: .55rem; background: #eef3f4; }
.admin-media-choice__preview img { width: 100%; height: 100%; object-fit: cover; }
.admin-media-choice__empty { color: var(--color-muted); font-size: .85rem; font-weight: 700; }
.admin-media-choice strong,.admin-media-choice small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-media-choice small { color: var(--color-muted); }
.admin-media-card__usage { font-weight: 700; }

.admin-block-list { display: grid; gap: .9rem; margin-top: 1.5rem; }
.admin-block-row { display: grid; gap: .9rem; align-items: center; }
.admin-block-row__meta { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; color: var(--color-muted); font-size: .82rem; }
.admin-block-row__body h2 { font-size: 1.08rem; }
.admin-block-row__body small { display: block; margin-top: .3rem; color: var(--color-muted); overflow-wrap: anywhere; }
.admin-block-row > .admin-actions { align-items: center; }
.admin-block-row form { margin: 0; }
.admin-empty-state { display: grid; justify-items: start; gap: .7rem; }
.admin-empty-state p { color: var(--color-muted); }
.admin-switch { display: inline-flex; gap: .6rem; align-items: center; color: var(--color-muted); font-weight: 700; }
.admin-switch input { width: 1.1rem; height: 1.1rem; }
.js [data-page-block-editor] [data-block-fields][hidden] { display: none; }
@media (min-width: 58rem) {
    .admin-block-row { grid-template-columns: minmax(0, 1fr) auto; }
    .admin-block-row__meta { grid-column: 1 / -1; }
}
.admin-content-builder-link { display: flex; flex-direction: column; gap: 1rem; align-items: flex-start; justify-content: space-between; border: 1px dashed var(--color-border); border-radius: var(--radius-md); background: #f8fafb; padding: 1rem; }
.admin-content-builder-link p { margin-top: .25rem; color: var(--color-muted); font-size: .9rem; }
@media (min-width: 48rem) { .admin-content-builder-link { flex-direction: row; align-items: center; } }

/* Phase 12: migration review */
.admin-filter-nav{display:flex;gap:.5rem;flex-wrap:wrap;margin:0 0 var(--space-lg)}
.admin-filter-nav a{padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-md);text-decoration:none;background:var(--color-surface)}
.admin-filter-nav a[aria-current="page"]{border-color:var(--color-primary);font-weight:700}
.admin-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-lg);margin-bottom:var(--space-lg)}
.admin-definition-list{display:grid;gap:.75rem;margin:0}
.admin-definition-list div{display:grid;grid-template-columns:minmax(8rem,.35fr) 1fr;gap:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border)}
.admin-definition-list dt{font-weight:700}.admin-definition-list dd{margin:0;overflow-wrap:anywhere}
@media (max-width:48rem){.admin-review-grid{grid-template-columns:1fr}.admin-definition-list div{grid-template-columns:1fr;gap:.25rem}}

/* Phase 13: migration comparison and publication quality gate */
.migration-compare{display:grid;gap:var(--space-lg);margin-top:var(--space-lg)}
.migration-source-preview,.migration-target-preview{min-width:0}
.admin-help{color:var(--color-muted);font-size:.92rem;line-height:1.6}
.migration-source-text{max-height:52rem;overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#f8fafb;padding:1rem;color:var(--color-ink);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;font-size:.86rem;line-height:1.65;overflow-wrap:anywhere}
.migration-page-preview{overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);padding:clamp(1rem,3vw,2rem);box-shadow:var(--shadow-sm)}
.migration-page-preview>h1{margin:.35rem 0 .8rem;font-size:clamp(1.7rem,4vw,2.7rem)}
.migration-page-preview__lead{max-width:46rem;color:var(--color-muted);font-size:1.02rem;line-height:1.7}
.migration-page-preview__blocks{display:grid;gap:1.2rem;margin-top:1.7rem}
.migration-page-preview__blocks .content-block{margin:0}
.admin-checkboxes--stacked{display:grid;gap:.75rem}
.admin-checkboxes--stacked label{align-items:flex-start;padding:.7rem .8rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fafcfd}
.migration-checklist{margin-top:1rem}
@media (min-width:72rem){.migration-compare{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);align-items:start}.migration-source-preview,.migration-target-preview{position:sticky;top:1rem}.migration-source-preview{position:static}}


/* Phase 17: cuentas, MFA y sesiones */
.security-grid{display:grid;gap:1rem;margin-top:1.4rem}.security-recovery-codes{margin-top:1.4rem;border-color:#d6b552;background:#fffaf0}.security-recovery-codes ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.5rem;margin-top:1rem;padding:0;list-style:none}.security-recovery-codes code{display:block;border:1px solid #ead79d;border-radius:var(--radius-md);background:#fff;padding:.55rem .7rem;font-weight:800;letter-spacing:.04em}.security-uri{overflow-wrap:anywhere}.security-sessions{margin-top:1rem}.button--danger{border-color:#b42318;background:#b42318;color:#fff}.button--danger:hover{background:#8f1b13;color:#fff}@media (min-width:68rem){.security-grid{grid-template-columns:1.2fr .8fr}}
.security-status-card,.security-events,.security-admin-recovery{margin-top:1rem}.security-reauth-card{max-width:44rem}.security-events small{display:block;color:var(--color-muted);overflow-wrap:anywhere}.security-admin-recovery{border-color:#efc6c1;background:#fffafa}.security-admin-recovery p{max-width:70ch}

/* Phase 19: RBAC and security incidents */
.rbac-role-grid{display:grid;gap:1rem}.rbac-role-grid>div{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1rem;background:#fafcfd}.rbac-role-grid ul{margin:.65rem 0 0;padding-left:1.15rem;color:var(--color-muted);font-size:.86rem;line-height:1.55}.admin-critical{border-color:#e8c6a1;background:#fffaf4}.admin-inline-actions{display:flex;gap:.5rem;align-items:center}.admin-inline-actions select{min-width:8.5rem}.status-badge--incident-critical{background:#fde8e7;color:#8f1b13}.status-badge--incident-high{background:#fff0e5;color:#9b3c00}.status-badge--incident-medium{background:#fff4d8;color:#755711}.status-badge--incident-low{background:#e8f2ff;color:#245d92}.admin-table td small{display:block;margin-top:.2rem;color:var(--color-muted)}
@media (min-width:64rem){.rbac-role-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.status-badge--running{background:#e8f2ff;color:#245d92}.status-badge--success,.status-badge--sent{background:#e6f4ee;color:#176247}.status-badge--partial,.status-badge--failed{background:#fff4d8;color:#755711}.status-badge--dead{background:var(--color-danger-soft);color:var(--color-danger)}

/* Phase 51: contact activity timeline */
.admin-timeline{display:grid;gap:.85rem;margin-top:1.25rem}.admin-timeline__item{border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fafcfd;padding:1rem}.admin-timeline__item header{display:flex;gap:.5rem 1rem;align-items:baseline;justify-content:space-between;flex-wrap:wrap}.admin-timeline__item header small{color:var(--color-muted)}.admin-timeline__item p{margin:.65rem 0 0;white-space:normal;overflow-wrap:anywhere}

/* resources/css/accessibility.css */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .001ms !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; }
}
@media (forced-colors: active) {
    .button, .nav-toggle, .service-card, .feature-card, .contact-card { border: 1px solid ButtonText; }
}

