/* Rota Generator UX + security integration refinements */

/* Strong, predictable contrast for every primary action. */
.button-primary,
a.button-primary,
button.button-primary,
.button-primary:link,
.button-primary:visited,
.public-button-primary,
a.public-button-primary,
.public-button-primary:link,
.public-button-primary:visited {
    background:#06254f !important;
    border-color:#06254f !important;
    color:#ffffff !important;
    text-shadow:none !important;
}
.button-primary:hover,
a.button-primary:hover,
button.button-primary:hover,
.public-button-primary:hover,
a.public-button-primary:hover {
    background:#0a3973 !important;
    border-color:#0a3973 !important;
    color:#ffffff !important;
}
.button-primary:focus-visible,
.public-button-primary:focus-visible {
    outline:3px solid rgba(32,182,176,.34) !important;
    outline-offset:3px;
}
.button-secondary,
a.button-secondary,
.public-button-secondary,
a.public-button-secondary {
    color:#06254f !important;
}
.button:disabled,
.button.disabled-button,
.public-button[aria-disabled="true"] {
    opacity:.62;
}

/* Keep readable text on branded/dark sections. */
.home-final-cta-v4,
.home-final-cta-v4 h2,
.home-final-cta-v4 p,
.home-final-cta-v4 .eyebrow,
[class*="dark-section"] h1,
[class*="dark-section"] h2,
[class*="dark-section"] h3,
[class*="dark-section"] p {
    text-wrap:pretty;
}

/* Cloudflare Turnstile */
.turnstile-wrap {
    width:100%;
    min-height:1px;
    margin:2px 0 4px;
    overflow:hidden;
}
.turnstile-wrap .cf-turnstile { max-width:100%; }

/* Contact page */
.contact-hero { padding-bottom:54px; }
.contact-hero-inner { max-width:760px; }
.contact-hero p { max-width:720px; color:#5b7389; font-size:1.05rem; line-height:1.75; }
.contact-section { padding:64px 0 88px; background:#f7fafc; border-top:1px solid #e5edf2; }
.contact-grid { display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1.32fr); gap:28px; align-items:start; }
.contact-support-card,
.contact-form-card { background:#fff; border:1px solid #dce7ed; border-radius:18px; box-shadow:0 10px 28px rgba(6,37,79,.04); }
.contact-support-card { padding:28px; position:sticky; top:24px; }
.contact-support-card h2 { margin:0 0 12px; color:#06254f; font-size:1.55rem; line-height:1.25; letter-spacing:-.02em; }
.contact-support-card p { color:#5d758b; margin:0 0 20px; }
.contact-direct { margin-top:28px; padding-top:22px; border-top:1px solid #e4edf2; display:grid; gap:5px; }
.contact-direct strong { color:#06254f; }
.contact-direct a { color:#078c94; font-weight:700; text-decoration:none; }
.contact-form-card { padding:30px; }
.contact-form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.contact-form .field small { color:#7a8fa2; font-weight:500; }
.contact-form textarea { resize:vertical; min-height:160px; }
.contact-submit { min-width:170px; }
.contact-honeypot { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; opacity:0 !important; pointer-events:none !important; }
.public-alert { display:grid; gap:4px; padding:14px 16px; margin-bottom:20px; border-radius:12px; border:1px solid; }
.public-alert strong { color:inherit; }
.public-alert ul { margin:6px 0 0 18px; }
.public-alert-success { background:#edf9f4; color:#0d684b; border-color:#bfe8d6; }
.public-alert-error { background:#fff4f3; color:#8b2723; border-color:#efc9c6; }

/* Robust mobile navigation. It uses a real button + drawer rather than <details>. */
.mobile-nav-shell { display:none; }
.mobile-nav-backdrop,
.mobile-nav-drawer { display:none; }

@media (max-width:900px) {
    body.mobile-nav-open { overflow:hidden; }
    .mobile-menu { display:none !important; }
    .mobile-nav-shell { display:block; margin-right:auto; }
    .topbar-actions { width:auto; flex:1; justify-content:flex-end; }
    .mobile-nav-toggle {
        width:42px; height:42px; padding:0; display:grid; place-items:center;
        background:#fff; color:#06254f; border:1px solid #d4e2e9; border-radius:12px;
        box-shadow:0 2px 8px rgba(6,37,79,.035); cursor:pointer;
    }
    .mobile-nav-toggle .rg-png-icon { width:23px !important; height:23px !important; }
    .mobile-nav-toggle:focus-visible,
    .mobile-nav-close:focus-visible { outline:3px solid rgba(32,182,176,.3); outline-offset:2px; }
    .mobile-nav-backdrop {
        display:block; position:fixed; inset:0; z-index:1090;
        background:rgba(6,37,79,.36); opacity:0; transition:opacity .18s ease;
        backdrop-filter:blur(2px);
    }
    .mobile-nav-backdrop[hidden] { display:none !important; }
    .mobile-nav-backdrop.is-visible { opacity:1; }
    .mobile-nav-drawer {
        display:flex; flex-direction:column; position:fixed; z-index:1100;
        top:0; left:0; bottom:0; width:min(86vw,330px); max-width:330px;
        background:#fff; border-right:1px solid #dce7ed; box-shadow:24px 0 56px rgba(6,37,79,.18);
        transform:translateX(-104%); transition:transform .2s ease; overflow:hidden;
    }
    .mobile-nav-drawer.is-open { transform:translateX(0); }
    .mobile-nav-header { display:flex; align-items:flex-start; gap:12px; padding:18px 16px 14px; border-bottom:1px solid #e5edf2; }
    .mobile-nav-header .mobile-drawer-brand { display:flex !important; flex:1; flex-direction:column; align-items:flex-start; gap:3px; padding:0; margin:0; border:0; min-width:0; }
    .mobile-nav-header .mobile-drawer-brand img { display:block; max-width:150px; max-height:64px; width:auto; height:auto; object-fit:contain; object-position:left center; margin:0 0 4px; }
    .mobile-nav-header .mobile-drawer-brand strong { color:#06254f; font-size:.86rem; max-width:100%; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
    .mobile-nav-header .mobile-drawer-brand span { color:#7e91a3; font-size:.66rem; font-weight:600; }
    .mobile-nav-close { width:38px; height:38px; flex:0 0 38px; display:grid; place-items:center; background:#f6fafb; border:1px solid #dce7ed; border-radius:11px; color:#173b5d; font-size:1.55rem; line-height:1; cursor:pointer; }
    .mobile-nav-links { overflow-y:auto; overscroll-behavior:contain; padding:12px 10px 24px; display:grid; gap:3px; }
    .mobile-nav-links a { min-height:46px; display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius:10px; text-decoration:none; color:#284866; font-size:.91rem; font-weight:650; }
    .mobile-nav-links a:hover,
    .mobile-nav-links a:focus-visible { background:#edf8f7; color:#06254f; outline:none; }
    .mobile-nav-links .rg-png-icon { width:20px !important; height:20px !important; flex:0 0 20px; object-fit:contain; }
}

@media (max-width:560px) {
    .topbar { min-height:64px !important; padding:0 10px !important; }
    .org-switcher { display:none !important; }
    .topbar-actions { width:100%; gap:7px !important; }
    .mobile-nav-shell { margin-right:auto; }
    .notification-bell,
    .logout-button { width:40px !important; height:40px !important; min-height:40px !important; flex:0 0 40px !important; }
    .avatar { width:38px !important; height:38px !important; flex:0 0 38px !important; }
    .user-copy { display:none !important; }
    .content { padding-left:14px !important; padding-right:14px !important; }
    .contact-section { padding:42px 0 62px; }
    .contact-grid { grid-template-columns:1fr; }
    .contact-support-card { position:static; }
    .contact-form-card, .contact-support-card { padding:22px; border-radius:16px; }
    .contact-form-row { grid-template-columns:1fr; }
    .contact-submit { width:100%; }
}

@media (max-width:380px) {
    .mobile-nav-toggle { width:40px; height:40px; }
    .mobile-nav-drawer { width:min(90vw,316px); }
}
