/* =========================================================
   Alizo "Daylight" design system
   Loaded AFTER custom.css / theme.css / components.css so it
   re-maps the old variables and restyles Bootstrap everywhere.
   ========================================================= */
:root {
    --az-indigo: #1E1A4D;
    --az-indigo-2: #57527A;
    --az-indigo-3: #5B54A6;
    --az-violet: #4338A8;
    --az-saffron: #FFB020;
    --az-saffron-dark: #7A4A00;
    --az-paper: #FFF8EE;
    --az-white: #FFFFFF;
    --az-tint: #EEEBFA;
    --az-tint-warm: #FFF1D6;
    --az-line: #C9C3E6;
    --az-line-soft: #E3DFF5;
    --az-shadow: 5px 5px 0 var(--az-indigo);
    --az-shadow-sm: 3px 3px 0 var(--az-indigo);
    --az-font-head: 'Paytone One', system-ui, sans-serif;
    --az-font-body: 'Kantumruy Pro', 'Helvetica Neue', system-ui, sans-serif;

    /* re-map legacy variables used by every existing page */
    --brand-start: var(--az-indigo);
    --brand-end: var(--az-saffron);
    --brand-deep: var(--az-indigo);
    --brand-soft: var(--az-tint);
    --brand-start-rgb: 30, 26, 77;
    --brand-end-rgb: 255, 176, 32;
    --brand-deep-rgb: 30, 26, 77;
    --brand-gradient: var(--az-saffron);
    --primary-color: var(--az-indigo);
    --primary-hover: #4338A8;
    --primary-strong: var(--az-indigo);
    --primary-dark: var(--az-indigo);
    --primary-soft: var(--az-tint);
    --primary-soft-border: #C9C3E6;
    --primary-gradient: var(--az-saffron);
    --secondary-color: var(--az-saffron);
    --accent-color: var(--az-saffron);
    --accent-rgb: 255, 176, 32;
    --text-color: var(--az-indigo);
    --text-strong: var(--az-indigo);
    --muted-text: #57527A;
    --heading-color: var(--az-indigo);
    --bg-base: var(--az-paper);
    --bg-muted: var(--az-tint);
    --bg-muted-rgb: 238, 235, 250;
    --bg-layer: none;
    --surface-color: #FFFFFF;
    --surface-muted: var(--az-paper);
    --surface-elevated: var(--az-tint);
    --border-color: #C9C3E6;
    --border-strong: var(--az-indigo);
    --success-color: #1B7A4B;
    --warning-color: #7A4A00;
    --warning-bg: var(--az-tint-warm);
    --danger-color: #B3261E;
    --shadow-light: 3px 3px 0 var(--az-indigo);
    --shadow-medium: 5px 5px 0 var(--az-indigo);
    --shadow-strong: 6px 6px 0 var(--az-indigo);
    --bs-primary: var(--az-indigo);
    --bs-primary-rgb: 30, 26, 77;
    --bs-link-color-rgb: 67, 56, 168;
    --bs-link-hover-color-rgb: 30, 26, 77;
    --bs-body-bg: var(--az-paper);
    --bs-body-color: var(--az-indigo);
    --bs-body-font-family: 'Kantumruy Pro', system-ui, sans-serif;
    --bs-border-color: #C9C3E6;
}

/* ---------- base ---------- */
html { scroll-behavior: smooth; }
body, body.layout-page {
    font-family: var(--az-font-body) !important;
    background: var(--az-paper) !important;
    color: var(--az-indigo);
    padding-top: 0 !important;
    line-height: 1.55;
}
body.layout-page main { min-height: 60vh; }
h1, h2, h3, h4, h5, h6, .section-title, .display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
    font-family: var(--az-font-head) !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
    color: var(--az-indigo);
}
a { color: var(--az-violet); }
a:hover { color: var(--az-indigo); }
.text-muted, .text-secondary { color: var(--az-indigo-2) !important; }
.text-primary, .text-brand { color: var(--az-violet) !important; }
.text-gradient, .brand-gradient, .brand-text {
    background: none !important; -webkit-text-fill-color: currentColor !important; color: inherit;
}
:focus-visible { outline: 3px solid var(--az-saffron) !important; outline-offset: 2px; box-shadow: none !important; }
*:focus { outline: revert; }
::selection { background: var(--az-saffron); color: var(--az-indigo); }

/* ---------- tilted label (highlighted word) ---------- */
.az-mark {
    display: inline-block; padding: 0 .28em .08em; background: var(--az-saffron);
    border-radius: .26em; transform: rotate(-2deg); color: var(--az-indigo);
}
.az-eyebrow {
    display: inline-block; padding: 4px 14px; border-radius: 999px; background: var(--az-indigo); color: #fff;
    font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; transform: rotate(-2deg);
}
.section-label {
    display: inline-block !important; padding: 4px 14px; border-radius: 999px; background: var(--az-indigo) !important;
    color: #fff !important; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
    transform: rotate(-2deg); border: 0;
}

/* ---------- buttons ---------- */
.btn, .az-btn {
    font-family: var(--az-font-body); font-weight: 700; border-radius: 999px !important;
    border: 2px solid var(--az-indigo) !important; box-shadow: var(--az-shadow-sm);
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
    min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
}
.btn:hover, .az-btn:hover { transform: translate(-2px, -2px); box-shadow: var(--az-shadow); }
.btn:active, .az-btn:active { transform: translate(2px, 2px); box-shadow: 0 0 0 var(--az-indigo); }
.btn-primary, .btn-success, .btn-warning, .btn-hero-primary, .az-btn-primary, .btn-responsive {
    background: var(--az-saffron) !important; color: var(--az-indigo) !important; border-color: var(--az-indigo) !important;
}
.btn-primary:hover, .btn-success:hover, .btn-warning:hover, .btn-primary:focus, .btn-responsive:hover { background: #FFC24D !important; color: var(--az-indigo) !important; }
.btn-outline-primary, .btn-outline-secondary, .btn-secondary, .btn-light, .btn-hero-secondary, .az-btn-outline {
    background: #fff !important; color: var(--az-indigo) !important; border-color: var(--az-indigo) !important;
}
.btn-outline-primary:hover, .btn-outline-secondary:hover, .btn-secondary:hover, .btn-light:hover { background: var(--az-tint) !important; color: var(--az-indigo) !important; }
.btn-dark, .btn-info { background: var(--az-indigo) !important; color: #fff !important; }
.btn-danger, .btn-outline-danger { background: #fff !important; color: #B3261E !important; border-color: #B3261E !important; box-shadow: 3px 3px 0 #B3261E; }
.btn-danger:hover, .btn-outline-danger:hover { background: #FDECEA !important; box-shadow: 5px 5px 0 #B3261E; }
.btn-sm { min-height: 36px; }
.btn-lg { min-height: 54px; padding-inline: 1.8rem; }
.btn-close { box-shadow: none; border: 0 !important; transform: none; min-height: 0; }
.btn-hero-primary, .btn-hero-secondary { padding: .8rem 1.8rem; text-decoration: none; }

/* ---------- cards / panels ---------- */
.card, .surface-card, .az-card, .modal-content, .list-group-item, .accordion-item, .dropdown-menu {
    background: #fff; border: 2px solid var(--az-indigo) !important; border-radius: 24px !important; box-shadow: var(--az-shadow);
}
.card { overflow: hidden; }
.list-group-item { box-shadow: none; border-radius: 0 !important; border-width: 0 0 2px !important; }
.card-header, .card-footer { background: var(--az-tint) !important; border-color: var(--az-indigo) !important; }
.alert { border: 2px solid var(--az-indigo); border-radius: 18px; box-shadow: var(--az-shadow-sm); }
.alert-success { background: #E4F5EC; color: #145C39; }
.alert-danger { background: #FDECEA; color: #8F1D17; }
.alert-warning, .alert-info { background: var(--az-tint-warm); color: var(--az-saffron-dark); }
.badge { border-radius: 999px; font-weight: 700; }
.badge.bg-primary { background: var(--az-indigo) !important; }
.badge.bg-warning { background: var(--az-saffron) !important; color: var(--az-indigo) !important; }
.badge.bg-success { background: #1B7A4B !important; }
.table { --bs-table-bg: transparent; color: var(--az-indigo); }
.table > thead { background: var(--az-tint); }
.table > :not(caption) > * > * { border-color: var(--az-line-soft); }
.pagination .page-link { color: var(--az-indigo); border: 2px solid var(--az-indigo); border-radius: 999px !important; margin: 0 3px; font-weight: 700; }
.pagination .page-item.active .page-link { background: var(--az-saffron); border-color: var(--az-indigo); color: var(--az-indigo); }
.nav-tabs, .nav-pills { gap: 6px; }
.nav-pills .nav-link { border-radius: 999px; color: var(--az-indigo); font-weight: 700; }
.nav-pills .nav-link.active { background: var(--az-indigo); color: #fff; }
.progress { border: 2px solid var(--az-indigo); border-radius: 999px; background: #fff; }
.progress-bar { background: var(--az-saffron); }

/* ---------- forms ---------- */
.form-control, .form-select, .input-group-text, textarea, select, input[type=text], input[type=email], input[type=password], input[type=search], input[type=tel], input[type=number], input[type=date] {
    font-family: var(--az-font-body);
}
.form-control, .form-select {
    min-height: 48px; border: 2px solid var(--az-indigo) !important; border-radius: 16px !important; background-color: #fff; color: var(--az-indigo);
}
.form-control:focus, .form-select:focus { border-color: var(--az-indigo) !important; box-shadow: 3px 3px 0 var(--az-saffron) !important; outline: none !important; }
.input-group-text { background: var(--az-tint); border: 2px solid var(--az-indigo); }
.form-label, label { font-weight: 700; color: var(--az-indigo); }
.form-check-input { border: 2px solid var(--az-indigo); }
.form-check-input:checked { background-color: var(--az-indigo); border-color: var(--az-indigo); }
.invalid-feedback, .text-danger { color: #B3261E !important; }

/* ---------- site header ---------- */
.az-kbach { display: block; width: 100%; height: 10px; }
.az-header { position: sticky; top: 0; z-index: 1030; background: var(--az-paper); border-bottom: 2px solid var(--az-indigo); }
.az-header-in {
    max-width: 1344px; margin: 0 auto; padding: 14px clamp(16px, 4vw, 48px); box-sizing: border-box;
    display: flex; align-items: center; justify-content: space-between; gap: 12px 32px;
}
.az-logo { display: flex; align-items: center; gap: 10px; text-decoration: none !important; color: var(--az-indigo) !important; }
.az-logo-mark {
    width: 34px; height: 34px; border-radius: 11px; background: var(--az-saffron); border: 2px solid var(--az-indigo);
    box-sizing: border-box; display: flex; align-items: center; justify-content: center; transform: rotate(-8deg);
}
.az-logo-mark i { width: 10px; height: 10px; border-radius: 50%; background: var(--az-indigo); display: block; }
.az-logo-word { font-family: var(--az-font-head); font-size: 28px; letter-spacing: -.01em; }
.az-hello { font-size: 14px; font-weight: 700; color: #fff; padding: 3px 10px; border-radius: 999px; background: var(--az-indigo); transform: rotate(4deg); }
.az-nav { display: flex; align-items: center; gap: 4px 30px; font-size: 16px; font-weight: 600; }
.az-nav a { display: inline-flex; align-items: center; min-height: 44px; color: var(--az-indigo); text-decoration: none; }
.az-nav a:hover { color: var(--az-violet); }
.az-nav a.is-active { box-shadow: inset 0 -4px 0 var(--az-saffron); }
.az-actions { display: flex; align-items: center; gap: 8px; }
.az-link { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; font-weight: 700; color: var(--az-indigo); text-decoration: none; }
.az-cta {
    display: inline-flex; align-items: center; min-height: 44px; padding: 0 22px; border-radius: 999px; background: var(--az-saffron);
    color: var(--az-indigo) !important; border: 2px solid var(--az-indigo); box-shadow: var(--az-shadow-sm); font-weight: 700; text-decoration: none;
    transition: transform .15s, box-shadow .15s;
}
.az-cta:hover { transform: translate(-2px, -2px); box-shadow: var(--az-shadow); }
.az-menu-btn {
    display: none; width: 46px; height: 46px; align-items: center; justify-content: center; border: 2px solid var(--az-indigo);
    border-radius: 14px; background: var(--az-saffron); cursor: pointer; color: var(--az-indigo); box-shadow: var(--az-shadow-sm); padding: 0; min-height: 0;
}
.az-menu-btn .az-x { display: none; }
.az-menu-btn[aria-expanded="true"] .az-x { display: block; }
.az-menu-btn[aria-expanded="true"] .az-bars { display: none; }
.az-user { position: relative; }
.az-user-btn { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px 0 6px; border: 2px solid var(--az-indigo); border-radius: 999px; background: #fff; font: inherit; font-weight: 700; color: var(--az-indigo); cursor: pointer; box-shadow: var(--az-shadow-sm); }
.az-avatar { width: 32px; height: 32px; border-radius: 50%; background: var(--az-saffron); border: 2px solid var(--az-indigo); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 14px; }
.az-user-menu { position: absolute; right: 0; top: calc(100% + 10px); min-width: 230px; background: #fff; border: 2px solid var(--az-indigo); border-radius: 20px; box-shadow: var(--az-shadow); padding: 8px; display: none; flex-direction: column; z-index: 20; }
.az-user.is-open .az-user-menu { display: flex; }
.az-user-menu a, .az-user-menu button { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 12px; border: 0; border-radius: 12px; background: transparent; color: var(--az-indigo); font: inherit; font-weight: 600; text-decoration: none; text-align: left; width: 100%; cursor: pointer; box-shadow: none; transform: none; }
.az-user-menu a:hover, .az-user-menu button:hover { background: var(--az-tint); }
.az-user-menu hr { margin: 6px 0; border-color: var(--az-line-soft); opacity: 1; }
.az-mobile { display: none; flex-direction: column; padding: 8px 16px 20px; gap: 2px; border-top: 2px solid var(--az-indigo); background: var(--az-paper); }
.az-mobile.is-open { display: flex; }
.az-mobile a.az-m-link { display: flex; align-items: center; min-height: 54px; padding: 0 8px; font-family: var(--az-font-head); font-size: 22px; color: var(--az-indigo); text-decoration: none; border-bottom: 1px dashed var(--az-line); }
.az-m-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding-top: 14px; }
.az-m-actions a, .az-m-actions button { display: flex; align-items: center; justify-content: center; min-height: 52px; border-radius: 999px; border: 2px solid var(--az-indigo); font: inherit; font-weight: 700; color: var(--az-indigo); text-decoration: none; background: #fff; cursor: pointer; }
.az-m-actions a.primary { background: var(--az-saffron); }
@media (max-width: 760px) {
    .az-nav, .az-actions, .az-hello { display: none !important; }
    .az-menu-btn { display: inline-flex; }
}

/* ---------- site footer ---------- */
.az-footer { background: var(--az-indigo); color: #EDEAFF; margin-top: 0; }
.az-footer a { color: #EDEAFF; text-decoration: none; }
.az-footer a:hover { color: var(--az-saffron); }
.az-footer-in { max-width: 1344px; margin: 0 auto; padding: 64px clamp(16px, 4vw, 48px) 32px; box-sizing: border-box; display: flex; flex-direction: column; gap: 48px; }
.az-footer-hero { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px; padding-bottom: 40px; border-bottom: 1px solid #3A3570; }
.az-footer-hero span.big { font-family: var(--az-font-head); font-size: clamp(40px, 6vw, 88px); line-height: .95; color: #fff; }
.az-footer-hero span.big em { font-style: normal; color: var(--az-saffron); }
.az-footer-cta { display: inline-flex; align-items: center; min-height: 56px; padding: 0 28px; border-radius: 999px; background: var(--az-saffron); color: var(--az-indigo) !important; border: 2px solid var(--az-saffron); font-weight: 700; font-size: 17px; box-shadow: 4px 4px 0 var(--az-saffron); }
.az-footer-cta:hover { color: var(--az-indigo) !important; }
.az-footer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr)); gap: 40px; }
.az-footer-col { display: flex; flex-direction: column; gap: 10px; }
.az-footer-col h6 { font-family: var(--az-font-body) !important; font-size: 13px; font-weight: 700 !important; color: var(--az-saffron); text-transform: uppercase; letter-spacing: .1em; margin: 0; }
.az-footer-col p { margin: 0; color: #B9B3E3; max-width: 30ch; line-height: 1.5; }
.az-footer .az-logo { color: #fff !important; }
.az-footer .az-logo-mark { border-color: var(--az-saffron); }
.az-footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding-top: 24px; border-top: 1px solid #3A3570; font-size: 14px; color: #B9B3E3; }

/* ---------- shared page pieces ---------- */
.az-wrap { max-width: 1344px; margin: 0 auto; padding-inline: clamp(16px, 4vw, 48px); box-sizing: border-box; }
.az-page-title { font-size: clamp(40px, 4.5vw, 60px); line-height: 1; margin: 0; }
.az-pill {
    display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 999px; font-weight: 600; font-size: 15px;
    border: 2px solid var(--az-indigo); background: #fff; color: var(--az-indigo); text-decoration: none; cursor: pointer; font-family: inherit;
}
.az-pill:hover { background: var(--az-tint); color: var(--az-indigo); }
.az-pill.is-on, .az-pill[aria-pressed="true"] { background: var(--az-indigo); color: #fff; }
.az-chip { display: inline-flex; align-items: center; padding: 3px 12px; border-radius: 999px; background: #fff; border: 2px solid var(--az-indigo); font-size: 13px; font-weight: 700; }
.az-chip.warn { background: var(--az-tint-warm); color: var(--az-saffron-dark); }
.az-chip.ok { background: #E4F5EC; color: #145C39; }
.az-chip.bad { background: #FDECEA; color: #8F1D17; }
.az-chip.info { background: var(--az-tint); color: var(--az-violet); }
.az-ph { display: flex; align-items: center; justify-content: center; background: var(--az-tint); color: var(--az-indigo-2); font-weight: 700; text-align: center; padding: 8px; }

/* status pills used by existing pages */
.status-pill { border: 2px solid var(--az-indigo); box-shadow: none; }
.status-pill.status-success { background: #E4F5EC; color: #145C39; }
.status-pill.status-warning { background: var(--az-tint-warm); color: var(--az-saffron-dark); }
.status-pill.status-danger { background: #FDECEA; color: #8F1D17; }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }
@media (max-width: 575.98px) { .card, .az-card { border-radius: 20px !important; } }

/* ---------- accessibility helpers ---------- */
.az-skip { position: absolute; left: 12px; top: -60px; z-index: 2000; padding: 12px 18px; background: var(--az-saffron); color: var(--az-indigo) !important; font-weight: 700; border: 2px solid var(--az-indigo); border-radius: 12px; text-decoration: none; transition: top .15s; }
.az-skip:focus { top: 12px; }
main:focus { outline: none !important; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
img { max-width: 100%; height: auto; }
/* inline notice used instead of alert() popups */
.az-toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 3000; max-width: min(520px, calc(100vw - 32px)); padding: 14px 20px; background: var(--az-indigo); color: #fff; border: 2px solid var(--az-saffron); border-radius: 16px; box-shadow: 4px 4px 0 var(--az-saffron); font-weight: 600; }

.az-verify-bar { background: var(--az-tint-warm); color: #7A4A00; border-bottom: 2px solid var(--az-indigo); padding: 10px 16px; text-align: center; font-weight: 600; }
.az-verify-link { background: none; border: 0; padding: 0; margin-left: 6px; font: inherit; font-weight: 700; color: var(--az-indigo); text-decoration: underline; cursor: pointer; }

.az-consent { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 2500; max-width: 560px; margin-inline: auto; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px; background: #fff; color: var(--az-indigo); border: 2px solid var(--az-indigo); border-radius: 18px; box-shadow: 4px 4px 0 var(--az-indigo); }
.az-consent[hidden] { display: none; }
.az-consent p { margin: 0; font-weight: 600; flex: 1 1 220px; }
.az-consent-actions { display: flex; gap: 8px; }
