/* GreekTools - modern overrides, Radzen theme base */
* { box-sizing: border-box; }

:root {
    /* Source Sans 3: full Greek + Latin; strong UI readability */
    --font-heading: 'Source Sans 3', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --shadow-card: 0 4px 20px rgba(0, 0, 0, 0.12), 0 2px 6px rgba(0, 0, 0, 0.08);
    --shadow-card-hover: 0 8px 30px rgba(0, 0, 0, 0.18), 0 4px 12px rgba(0, 0, 0, 0.12);
    --glass-bg: rgba(255, 255, 255, 0.05);
    --glass-border: rgba(255, 255, 255, 0.08);
    /* Nav menu – matches body indigo/violet + cyan accents */
    --menu-text: rgba(244, 244, 245, 0.92);
    --menu-text-muted: rgba(228, 228, 231, 0.72);
    --menu-parent-text: rgba(250, 250, 250, 0.95);
    --menu-hover-bg: linear-gradient(105deg, rgba(99, 102, 241, 0.22) 0%, rgba(139, 92, 246, 0.14) 100%);
    --menu-hover-border: rgba(167, 139, 250, 0.45);
    --menu-hover-shadow: 0 4px 18px rgba(99, 102, 241, 0.18);
    --menu-active-bg: linear-gradient(105deg, rgba(99, 102, 241, 0.42) 0%, rgba(124, 58, 237, 0.28) 55%, rgba(34, 211, 238, 0.08) 100%);
    --menu-active-border: rgba(167, 139, 250, 0.55);
    --menu-active-bar: #22d3ee;
    --menu-active-shadow: 0 4px 22px rgba(99, 102, 241, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.08);
    --menu-category-open-bg: linear-gradient(90deg, rgba(99, 102, 241, 0.12) 0%, rgba(139, 92, 246, 0.06) 100%);
    --menu-category-open-border: rgba(167, 139, 250, 0.22);
    --menu-sub-bg: rgba(15, 23, 42, 0.35);
    --menu-icon-muted: rgba(196, 181, 253, 0.75);
}

/* Prevent FOUC - body fallback. Override Radzen's gradient SVG (has vertical seam). */
body {
    background: #1a1a2e !important;
    color: #e4e4e7;
    margin: 0;
    min-height: 100vh;
    position: relative;
    line-height: 1.55;
    font-family: var(--font-heading);
}

/* Body gradient - full-page gradient, no vertical lines */
#body-gradient {
    position: fixed;
    inset: -1px;
    min-width: 100vw;
    min-height: 100vh;
    z-index: -3;
    pointer-events: none;
    background-attachment: fixed;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;
    background:
        linear-gradient(
            180deg,
            #1a1a2e 0%,
            #1e1e38 25%,
            #222244 50%,
            #26264a 75%,
            #2a2a52 100%
        );
}

/* Cursor-responsive gradient overlay - seamless, slow pulse */
#cursor-background {
    position: fixed;
    inset: -1px;
    min-width: 100vw;
    min-height: 100vh;
    z-index: -2;
    pointer-events: none;
    background-attachment: fixed;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;
    background:
        linear-gradient(
            to left,
            rgba(99, 102, 241, 0.035) 0%,
            rgba(99, 102, 241, 0.015) 20%,
            rgba(59, 130, 246, 0.006) 45%,
            transparent 85%
        ),
        radial-gradient(
            ellipse 150% 150% at var(--gradient-x, 50%) var(--gradient-y, 50%),
            rgba(59, 130, 246, 0.04) 0%,
            rgba(99, 102, 241, 0.015) 30%,
            rgba(99, 102, 241, 0.005) 55%,
            transparent 85%
        );
    animation: gradient-pulse 12s ease-in-out infinite;
}
@keyframes gradient-pulse {
    0%, 100% { opacity: 0.7; }
    50% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
    #cursor-background {
        animation: none;
        background:
            linear-gradient(
                to left,
                rgba(99, 102, 241, 0.03) 0%,
                rgba(99, 102, 241, 0.01) 25%,
                transparent 85%
            ),
            radial-gradient(
                ellipse 150% 150% at 50% 50%,
                rgba(59, 130, 246, 0.035) 0%,
                rgba(99, 102, 241, 0.01) 40%,
                transparent 85%
            );
        opacity: 0.9;
    }
}

/* Three.js particle background */
#particle-background {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    pointer-events: none;
}
#particle-canvas {
    display: block;
    width: 100%;
    height: 100%;
}

/* Footer - glass bar + safe areas (do not override Radzen flex layout) */
.rz-footer {
    border-top: 1px solid rgba(167, 139, 250, 0.15) !important;
    background: linear-gradient(
        180deg,
        rgba(15, 23, 42, 0.55) 0%,
        rgba(10, 10, 22, 0.88) 100%
    ) !important;
    backdrop-filter: blur(20px) saturate(1.1);
    -webkit-backdrop-filter: blur(20px) saturate(1.1);
    box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.25);
    padding-bottom: env(safe-area-inset-bottom, 0px) !important;
    padding-top: 0.25rem !important;
}

.footer-content {
    font-size: 0.8rem;
    padding: 0.75rem max(1rem, env(safe-area-inset-left, 0px)) 0.85rem max(1rem, env(safe-area-inset-right, 0px));
    color: var(--rz-text-secondary-color);
    text-align: center;
    max-width: 960px;
    margin: 0 auto;
    line-height: 1.55;
}
.footer-link {
    color: rgba(196, 181, 253, 0.9);
    text-decoration: none;
    margin-left: 0.5rem;
    transition: color 0.2s ease, text-decoration 0.2s ease;
}
.footer-link:hover {
    color: #e0e7ff;
    text-decoration: underline;
}

.footer-link--btn {
    background: none;
    border: none;
    cursor: pointer;
    font: inherit;
    padding: 0;
    margin-left: 0.5rem;
}

/* Cookie consent banner - ambient glass bar */
.cookie-consent-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1100;
    padding: 1.25rem max(1.25rem, env(safe-area-inset-left, 0px)) max(1.25rem, env(safe-area-inset-bottom, 0px)) max(1.25rem, env(safe-area-inset-right, 0px));
    background:
        linear-gradient(180deg, rgba(26, 26, 46, 0.75) 0%, rgba(15, 23, 42, 0.88) 50%, rgba(10, 10, 22, 0.95) 100%),
        radial-gradient(ellipse 120% 80% at 50% 100%, rgba(99, 102, 241, 0.08) 0%, transparent 60%);
    backdrop-filter: blur(24px) saturate(1.2);
    -webkit-backdrop-filter: blur(24px) saturate(1.2);
    border-top: 1px solid rgba(167, 139, 250, 0.12);
    box-shadow:
        0 -4px 24px rgba(0, 0, 0, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.04);
    animation: cookie-banner-enter 0.4s ease-out;
}

@keyframes cookie-banner-enter {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .cookie-consent-banner {
        animation: none;
    }
}

.cookie-consent-banner__inner {
    max-width: 680px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
}

.cookie-consent-banner__content {
    flex: 1 1 260px;
    min-width: 0;
}

.cookie-consent-banner__title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--font-heading);
    font-size: 0.95rem;
    font-weight: 600;
    margin: 0 0 0.25rem 0;
    color: rgba(244, 244, 245, 0.95);
    letter-spacing: -0.01em;
}

.cookie-consent-banner__icon {
    font-size: 1.2rem !important;
    color: rgba(167, 139, 250, 0.9) !important;
    opacity: 0.9;
}

.cookie-consent-banner__text {
    margin: 0;
    font-size: 0.85rem;
    line-height: 1.55;
    color: rgba(228, 228, 231, 0.78);
}

.cookie-consent-banner__link {
    color: rgba(165, 180, 252, 0.95);
    text-decoration: none;
    font-weight: 500;
}

.cookie-consent-banner__link:hover {
    color: #c7d2fe;
    text-decoration: underline;
}

.cookie-consent-banner .rz-button {
    font-size: 0.875rem;
    font-weight: 500;
    padding: 0.5rem 1rem;
    border-radius: 10px;
}

/* Let particles and gradient show through - override Radzen gradients to prevent vertical lines */
.rz-body,
.rz-layout,
.rz-layout-content,
.rz-main,
.rz-layout-wrapper {
    background: transparent !important;
    background-image: none !important;
    font-family: var(--font-heading);
}

/* Sidebar - premium glass, violet-tinted edge (matches page gradient) */
.rz-sidebar {
    background: linear-gradient(
        180deg,
        rgba(99, 102, 241, 0.08) 0%,
        rgba(255, 255, 255, 0.04) 35%,
        rgba(15, 23, 42, 0.25) 100%
    ) !important;
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    border-right: 1px solid rgba(167, 139, 250, 0.12) !important;
    box-shadow:
        4px 0 40px rgba(0, 0, 0, 0.25),
        inset 1px 0 0 rgba(255, 255, 255, 0.06);
    padding: 1.5rem 0.6rem !important;
}

/* Sidebar panel menu - spacing, typography */
.rz-sidebar .rz-panel-menu {
    padding: 0;
    gap: 0.35rem;
}
.rz-sidebar .rz-panel-menu .rz-navigation-item {
    margin-bottom: 0.35rem;
}
.rz-sidebar .rz-panel-menu .rz-navigation-item-link {
    font-family: var(--font-heading);
    font-weight: 500;
    font-size: 0.9rem;
    letter-spacing: 0.01em;
    color: var(--menu-text) !important;
    padding: 0.7rem 1rem !important;
    border-radius: 14px;
    margin: 0 0.2rem;
    border: 1px solid transparent !important;
    transition: background 0.25s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.2s ease, box-shadow 0.25s ease, transform 0.2s ease, color 0.2s ease;
}
.rz-sidebar .rz-panel-menu .rz-navigation-item-link:hover {
    background: var(--menu-hover-bg) !important;
    border-color: var(--menu-hover-border) !important;
    transform: translateX(3px);
    box-shadow: var(--menu-hover-shadow);
    color: #fff !important;
}
/* Selected/active item – gradient + cyan accent bar */
.rz-sidebar .rz-panel-menu .rz-navigation-item-link.rz-state-active {
    background: var(--menu-active-bg) !important;
    color: #fff !important;
    border-color: var(--menu-active-border) !important;
    box-shadow: inset 4px 0 0 var(--menu-active-bar), var(--menu-active-shadow);
}

/* Menu row icons (Radzen material / rz-icon) */
.rz-sidebar .rz-panel-menu .rz-navigation-item-link .rz-icon,
.rz-sidebar .rz-panel-menu .rz-navigation-item-link [class*="rz-icon"] {
    color: var(--menu-icon-muted);
    transition: color 0.2s ease;
}
.rz-sidebar .rz-panel-menu .rz-navigation-item-link:hover .rz-icon,
.rz-sidebar .rz-panel-menu .rz-navigation-item-link:hover [class*="rz-icon"] {
    color: #e0e7ff;
}
.rz-sidebar .rz-panel-menu .rz-navigation-item-link.rz-state-active .rz-icon,
.rz-sidebar .rz-panel-menu .rz-navigation-item-link.rz-state-active [class*="rz-icon"] {
    color: #a5f3fc;
}

/* Category (parent/expandable) items – menu headers */
.rz-sidebar .rz-panel-menu .rz-navigation-item:has(> .rz-navigation-item) > .rz-navigation-item-wrapper > .rz-navigation-item-link,
.rz-sidebar .rz-panel-menu .rz-navigation-item:has(> .rz-navigation-item) > .rz-navigation-item-link {
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--menu-parent-text) !important;
}
/* Expanded menu – tinted “open” state */
.rz-sidebar .rz-panel-menu .rz-navigation-item.rz-expanded > .rz-navigation-item-wrapper > .rz-navigation-item-link,
.rz-sidebar .rz-panel-menu .rz-navigation-item.rz-expanded > .rz-navigation-item-link {
    background: var(--menu-category-open-bg) !important;
    border-color: var(--menu-category-open-border) !important;
    box-shadow: inset 3px 0 0 rgba(167, 139, 250, 0.5);
}
.rz-sidebar .rz-navigation-item-icon-children {
    color: var(--menu-icon-muted);
    transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s ease;
}
.rz-sidebar .rz-navigation-item.rz-expanded .rz-navigation-item-icon-children {
    transform: rotate(180deg);
    color: #e0e7ff;
}
/* Collapsed menu – slightly muted to contrast with expanded */
.rz-sidebar .rz-panel-menu .rz-navigation-item:not(.rz-expanded):has(> .rz-navigation-item) > .rz-navigation-item-wrapper > .rz-navigation-item-link,
.rz-sidebar .rz-panel-menu .rz-navigation-item:not(.rz-expanded):has(> .rz-navigation-item) > .rz-navigation-item-link {
    color: var(--menu-text-muted) !important;
}

/* Sidebar scrollbar - slim, violet-tinted */
.rz-sidebar::-webkit-scrollbar {
    width: 6px;
}
.rz-sidebar::-webkit-scrollbar-track {
    background: transparent;
}
.rz-sidebar::-webkit-scrollbar-thumb {
    background: rgba(167, 139, 250, 0.28);
    border-radius: 3px;
}
.rz-sidebar::-webkit-scrollbar-thumb:hover {
    background: rgba(167, 139, 250, 0.45);
}

/* Sub items – clear hierarchy, indent, slate glass */
.rz-sidebar .rz-panel-menu .rz-navigation-item .rz-navigation-item {
    margin-top: 0.15rem;
}
.rz-sidebar .rz-panel-menu .rz-navigation-item .rz-navigation-item .rz-navigation-item-link {
    font-weight: 400;
    font-size: 0.85rem;
    color: var(--menu-text-muted) !important;
    padding-left: 2.5rem !important;
    border-radius: 10px !important;
    background: var(--menu-sub-bg) !important;
    border-color: rgba(167, 139, 250, 0.08) !important;
}
.rz-sidebar .rz-panel-menu .rz-navigation-item .rz-navigation-item .rz-navigation-item-link:hover {
    background: var(--menu-hover-bg) !important;
    border-color: var(--menu-hover-border) !important;
    color: var(--menu-text) !important;
}
/* Sub item selected */
.rz-sidebar .rz-panel-menu .rz-navigation-item .rz-navigation-item .rz-navigation-item-link.rz-state-active {
    background: var(--menu-active-bg) !important;
    border-color: var(--menu-active-border) !important;
    color: #fff !important;
    box-shadow: inset 4px 0 0 var(--menu-active-bar), var(--menu-active-shadow);
}
/* Sub item icons */
.rz-sidebar .rz-panel-menu .rz-navigation-item .rz-navigation-item .rz-navigation-item-link .rz-icon,
.rz-sidebar .rz-panel-menu .rz-navigation-item .rz-navigation-item .rz-navigation-item-link [class*="rz-icon"] {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: var(--menu-icon-muted);
}
.rz-sidebar .rz-panel-menu .rz-navigation-item .rz-navigation-item .rz-navigation-item-link:hover .rz-icon,
.rz-sidebar .rz-panel-menu .rz-navigation-item .rz-navigation-item .rz-navigation-item-link:hover [class*="rz-icon"] {
    color: #e0e7ff;
}
.rz-sidebar .rz-panel-menu .rz-navigation-item .rz-navigation-item .rz-navigation-item-link.rz-state-active .rz-icon,
.rz-sidebar .rz-panel-menu .rz-navigation-item .rz-navigation-item .rz-navigation-item-link.rz-state-active [class*="rz-icon"] {
    color: #a5f3fc;
}

/* Sticky header - glass, aligned with sidebar */
.rz-header {
    position: sticky !important;
    top: 0;
    z-index: 100;
    border-bottom: 1px solid var(--glass-border) !important;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    background: linear-gradient(180deg, rgba(255,255,255,0.06) 0%, rgba(255,255,255,0.02) 100%) !important;
}
.rz-sidebar-toggle {
    border-radius: 10px !important;
    transition: background 0.2s ease, transform 0.2s ease !important;
}
.rz-sidebar-toggle:hover {
    background: linear-gradient(105deg, rgba(99, 102, 241, 0.25) 0%, rgba(139, 92, 246, 0.15) 100%) !important;
    color: #e0e7ff !important;
}
.brand-text {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 1.2rem;
    letter-spacing: -0.02em;
}

/* Header: brand left, search centered, symmetric spacers */
.site-header-bar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(200px, min(44vw, 440px)) minmax(0, 1fr);
    align-items: center;
    gap: 0.75rem 1rem;
    width: 100%;
    padding: 0.2rem 0;
    box-sizing: border-box;
}
.site-header-bar__left {
    justify-self: start;
    min-width: 0;
}
.site-header-bar__center {
    justify-self: stretch;
    width: 100%;
    max-width: 440px;
    margin-inline: auto;
    min-width: 0;
}
.site-header-bar__right {
    /* Mirrors left column width so the search stays visually centered */
    min-width: 0;
    pointer-events: none;
}

@media (max-width: 720px) {
    .site-header-bar {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto;
        gap: 0.65rem;
    }
    .site-header-bar__left {
        grid-row: 1;
    }
    .site-header-bar__center {
        grid-row: 2;
        max-width: none;
        margin-inline: 0;
    }
    .site-header-bar__right {
        display: none;
    }
}

/* Header search */
.header-tool-search {
    width: 100%;
    min-width: 0;
}

.header-search-field {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 40px;
}

.header-search-field__icon {
    position: absolute;
    left: 0.95rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    pointer-events: none;
    font-size: 1.15rem !important;
    width: 1.15rem !important;
    height: 1.15rem !important;
    color: rgba(196, 181, 253, 0.85) !important;
}

.header-search-field:focus-within .header-search-field__icon {
    color: #a5f3fc !important;
}

.header-tool-search .header-search-autocomplete,
.header-tool-search .header-search-autocomplete.rz-autocomplete {
    flex: 1 1 auto;
    min-width: 0;
    width: 100% !important;
    border-radius: 999px;
}

.header-search-field .rz-textbox {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 999px !important;
    min-height: 38px;
    width: 100%;
    color: var(--menu-text) !important;
    font-size: 0.9rem !important;
    font-family: var(--font-heading) !important;
    letter-spacing: 0.01em;
    text-align: center;
}

.header-search-field .rz-textbox:focus-within {
    border: none !important;
    box-shadow: none !important;
}

.header-search-field input.rz-inputtext {
    background: transparent !important;
    color: var(--menu-text) !important;
    text-align: center !important;
    /* Symmetric inset so text/placeholder sit visually centered with icon on the left */
    padding: 0.45rem 2.35rem !important;
}

.header-search-field input.rz-inputtext::placeholder {
    color: rgba(228, 228, 231, 0.38);
    text-align: center;
}

.header-tool-search .search-item {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
.header-tool-search .search-item-title {
    font-weight: 500;
    color: var(--menu-text);
}
.header-tool-search .search-item-category {
    font-size: 0.75rem;
    color: var(--menu-text-muted);
}


/* Content area - centered, narrow for calculator forms */
.content-area {
    max-width: 640px;
    margin: 0 auto;
    padding: 2rem;
}

/* Calculator pages - wider for side-by-side layout */
.content-area--calculator {
    max-width: 1400px;
}

/* Homepage - full width */
.content-area--full {
    max-width: none;
}

/* ─── 404 – black hole scene (break out of narrow content-area for any unknown URL) ─── */
.not-found-page {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-left: max(1rem, env(safe-area-inset-left, 0px));
    padding-right: max(1rem, env(safe-area-inset-right, 0px));
    padding-top: max(1rem, env(safe-area-inset-top, 0px));
    padding-bottom: max(1.5rem, env(safe-area-inset-bottom, 0px));
    box-sizing: border-box;
    /* Center block in the visible main area (width + height) */
    min-height: calc(100vh - 7rem);
    min-height: calc(100dvh - 7rem);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.not-found-page__inner {
    max-width: 720px;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0;
}

.not-found-hero {
    position: relative;
    width: 100%;
    align-self: stretch;
    min-height: min(52vh, 420px);
    max-height: 480px;
    border-radius: 24px;
    overflow: hidden;
    margin-bottom: 2rem;
    background: radial-gradient(ellipse 80% 60% at 50% 45%, #1e1040 0%, #0a0612 45%, #000 100%);
    box-shadow:
        0 0 0 1px rgba(167, 139, 250, 0.15),
        0 24px 64px rgba(0, 0, 0, 0.55),
        inset 0 0 120px rgba(0, 0, 0, 0.8);
}

.not-found-stars {
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(1.5px 1.5px at 8% 12%, rgba(255, 255, 255, 0.95), transparent),
        radial-gradient(1px 1px at 22% 78%, rgba(255, 255, 255, 0.7), transparent),
        radial-gradient(1px 1px at 45% 18%, rgba(200, 220, 255, 0.85), transparent),
        radial-gradient(1.5px 1.5px at 72% 35%, rgba(255, 255, 255, 0.9), transparent),
        radial-gradient(1px 1px at 88% 62%, rgba(255, 255, 255, 0.65), transparent),
        radial-gradient(1px 1px at 15% 45%, rgba(255, 255, 255, 0.5), transparent),
        radial-gradient(1px 1px at 55% 88%, rgba(180, 200, 255, 0.75), transparent),
        radial-gradient(1.5px 1.5px at 92% 22%, rgba(255, 255, 255, 0.8), transparent),
        radial-gradient(1px 1px at 35% 55%, rgba(255, 255, 255, 0.45), transparent),
        radial-gradient(1px 1px at 65% 12%, rgba(255, 255, 255, 0.55), transparent);
    background-size: 100% 100%;
    animation: not-found-stars-drift 18s ease-in-out infinite alternate;
}

.not-found-vignette {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 55% 45% at 50% 50%, transparent 35%, rgba(0, 0, 0, 0.75) 100%);
    pointer-events: none;
    z-index: 2;
}

.not-found-scene {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1;
}

.black-hole-disk {
    position: absolute;
    top: 50%;
    left: 50%;
    width: min(72vw, 340px);
    height: min(72vw, 340px);
    margin: 0;
    border-radius: 50%;
    transform: translate(-50%, -50%) scaleY(0.32) rotate(0deg);
    transform-origin: center center;
    filter: blur(2px) saturate(1.15);
    opacity: 0.92;
    mix-blend-mode: screen;
}

.black-hole-disk--slow {
    background: conic-gradient(
        from 0deg,
        transparent 0deg,
        rgba(124, 58, 237, 0.15) 40deg,
        rgba(255, 120, 60, 0.85) 100deg,
        rgba(251, 191, 36, 0.7) 140deg,
        rgba(34, 211, 238, 0.55) 200deg,
        rgba(139, 92, 246, 0.65) 260deg,
        rgba(236, 72, 153, 0.35) 300deg,
        transparent 340deg,
        transparent 360deg
    );
    animation: black-hole-spin 14s linear infinite;
}

.black-hole-disk--fast {
    width: min(58vw, 280px);
    height: min(58vw, 280px);
    transform: translate(-50%, -50%) scaleY(0.28) rotate(45deg);
    background: conic-gradient(
        from 180deg,
        transparent,
        rgba(255, 200, 100, 0.5) 90deg,
        rgba(99, 102, 241, 0.6) 180deg,
        rgba(6, 182, 212, 0.45) 270deg,
        transparent
    );
    animation: black-hole-spin-reverse 9s linear infinite;
    opacity: 0.75;
    filter: blur(3px);
    z-index: 2;
}

.black-hole-photon {
    position: absolute;
    top: 50%;
    left: 50%;
    width: min(26vw, 120px);
    height: min(26vw, 120px);
    margin: 0;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    border: 2px solid rgba(165, 243, 252, 0.55);
    box-shadow:
        0 0 20px rgba(34, 211, 238, 0.45),
        0 0 48px rgba(167, 139, 250, 0.35),
        inset 0 0 16px rgba(255, 255, 255, 0.08);
    animation: black-hole-photon-pulse 2.8s ease-in-out infinite;
    z-index: 4;
    pointer-events: none;
}

.black-hole-core {
    position: absolute;
    top: 50%;
    left: 50%;
    width: min(22vw, 100px);
    height: min(22vw, 100px);
    margin: 0;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: radial-gradient(circle at 35% 35%, #1a0a28 0%, #000 55%, #000 100%);
    box-shadow:
        inset 0 0 24px rgba(0, 0, 0, 1),
        0 0 12px rgba(0, 0, 0, 0.9);
    z-index: 5;
    pointer-events: none;
}

.black-hole-lensing {
    position: absolute;
    top: 50%;
    left: 50%;
    width: min(50vw, 240px);
    height: min(50vw, 240px);
    margin: 0;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: radial-gradient(circle, transparent 42%, rgba(124, 58, 237, 0.12) 58%, transparent 72%);
    animation: black-hole-lensing-breathe 5s ease-in-out infinite;
    z-index: 3;
    pointer-events: none;
}

@keyframes black-hole-spin {
    to { transform: translate(-50%, -50%) scaleY(0.32) rotate(360deg); }
}
@keyframes black-hole-spin-reverse {
    to { transform: translate(-50%, -50%) scaleY(0.28) rotate(-315deg); }
}
@keyframes black-hole-photon-pulse {
    0%, 100% {
        opacity: 0.85;
        transform: translate(-50%, -50%) scale(1);
        border-color: rgba(165, 243, 252, 0.5);
    }
    50% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1.06);
        border-color: rgba(255, 255, 255, 0.75);
    }
}
@keyframes black-hole-lensing-breathe {
    0%, 100% { opacity: 0.6; transform: translate(-50%, -50%) scale(1); }
    50% { opacity: 1; transform: translate(-50%, -50%) scale(1.08); }
}
@keyframes not-found-stars-drift {
    0% { transform: translate(0, 0) scale(1); opacity: 0.9; }
    100% { transform: translate(-1.5%, 1%) scale(1.02); opacity: 1; }
}

.not-found-copy {
    text-align: center;
    padding: 0 0.5rem;
    width: 100%;
    max-width: 36rem;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Center Radzen horizontal stack + buttons on 404 */
.not-found-copy > .rz-stack {
    justify-content: center !important;
    width: 100%;
}
.not-found-copy .rz-button {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.not-found-code {
    font-family: var(--font-heading);
    font-size: clamp(3rem, 12vw, 4.5rem);
    font-weight: 800;
    letter-spacing: -0.06em;
    margin: 0 0 0.25rem;
    background: linear-gradient(135deg, #e0e7ff 0%, #a5b4fc 40%, #22d3ee 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    line-height: 1;
}

.not-found-title {
    font-family: var(--font-heading);
    font-size: clamp(1.35rem, 4vw, 1.75rem);
    font-weight: 700;
    margin: 0 0 0.75rem;
    color: #f4f4f5;
}

.not-found-subtitle {
    color: var(--rz-text-secondary-color);
    max-width: 36rem;
    margin: 0 auto 1.5rem;
    line-height: 1.65;
    font-size: 0.95rem;
}

@media (max-height: 700px) {
    .not-found-hero {
        min-height: min(38vh, 280px);
        max-height: 320px;
        margin-bottom: 1.25rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .not-found-stars,
    .black-hole-disk--slow,
    .black-hole-disk--fast,
    .black-hole-photon,
    .black-hole-lensing {
        animation: none;
    }
    .black-hole-disk--slow {
        transform: translate(-50%, -50%) scaleY(0.32) rotate(120deg);
    }
    .black-hole-disk--fast {
        transform: translate(-50%, -50%) scaleY(0.28) rotate(-80deg);
    }
}

/* Calculator layout - RadzenStack/Row/Column handle structure; minimal overrides */
.calculator-layout {
    width: 100%;
}
.calculator-layout .rz-row {
    align-items: stretch;
}
.calculator-layout .rz-stack {
    min-width: 0;
}
.calculator-layout--centered .rz-row {
    max-width: 920px;
    margin-left: 0;
    margin-right: auto;
}
.calculator-layout__related {
    padding-top: 1.5rem;
    border-top: 1px solid var(--glass-border);
    width: 100%;
}
.related-calculators-title {
    font-family: var(--font-heading);
    font-weight: 600;
    margin-bottom: 1rem;
    font-size: 1.1rem;
}
/* Equal-height cards - CSS Grid guarantees uniform card heights */
.related-calculators-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    align-items: stretch;
}
@media (min-width: 768px) {
    .related-calculators-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (min-width: 992px) {
    .related-calculators-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}
.related-calculators-grid__item {
    display: flex;
    flex-direction: column;
    min-height: 100%;
}
.related-calculators-grid__item .tool-card-link {
    display: flex;
    flex: 1;
    width: 100%;
    min-height: 0;
}
.related-calculators-grid__item .tool-card-link .rz-card,
.related-calculators-grid__item .tool-card-link .tool-card {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 100%;
    width: 100%;
}
.related-calculators-grid__item .tool-card-link .rz-stack {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
}
.related-calculators-grid__item .tool-card-link .rz-stack > div:last-child {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
}
/* Consistent title height so descriptions align across cards */
.related-calculators-grid__item .tool-card-link h3 {
    min-height: 2.6em;
    margin: 0;
    line-height: 1.3;
}
.related-calculators-grid__item .tool-card-link p {
    flex: 1;
    min-height: 2.8em;
    margin: 0;
}

.calculator-intro {
    font-size: 0.95rem;
    color: var(--rz-text-secondary-color);
    margin-bottom: 1rem;
    line-height: 1.5;
}

.calculator-faq {
    padding-top: 1.5rem;
    border-top: 1px solid var(--glass-border);
}
.calculator-faq-title {
    font-family: var(--font-heading);
    font-weight: 600;
    margin-bottom: 1rem;
    font-size: 1.1rem;
}
.calculator-faq-item {
    padding: 0.5rem 0;
}
.calculator-faq-question {
    font-size: 0.95rem;
    font-weight: 600;
    margin-bottom: 0.25rem;
}
.calculator-faq-answer {
    font-size: 0.9rem;
    color: var(--rz-text-secondary-color);
    margin: 0;
    line-height: 1.5;
}

/* Results panel - RadzenStack provides alignment; no animations to avoid chart layout delay */
.calculator-results-animate {
    /* All content visible immediately for fast chart render */
}

@media (max-width: 768px) {
    .content-area { padding: 1rem; }
    .calculator-layout .rz-row { gap: 1rem; }
    .calculator-results-animate { min-height: 0; }
}
@media (min-width: 769px) {
    .calculator-results-animate {
        min-height: 280px;
        scroll-margin-top: 1rem;
    }
}

/* ToolCard - glassmorphism, modern hover */
.tool-card-link {
    display: block;
    text-decoration: none;
    transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.25s ease;
}
.tool-card-link:hover {
    transform: translateY(-4px) scale(1.02);
}
.tool-card-link .rz-card,
.tool-card-link .tool-card {
    border-radius: 20px !important;
    border: 1px solid var(--glass-border) !important;
    background: var(--glass-bg) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: var(--shadow-card);
    transition: box-shadow 0.25s ease, border-color 0.2s ease;
}
.tool-card-link:hover .rz-card,
.tool-card-link:hover .tool-card {
    box-shadow: var(--shadow-card-hover);
    border-color: rgba(255, 255, 255, 0.12);
}
.tool-card-link h3 {
    font-family: var(--font-heading);
    font-weight: 600;
    letter-spacing: -0.02em;
}

/* Form field alignment - consistent label height so inputs align across columns */
.form-field-label {
    min-height: 2.75em;
    display: flex;
    align-items: flex-start;
}
.form-field-stack {
    padding: 0.125rem 0;
}
.calculator-form-card .rz-numeric input,
.calculator-form-card .rz-numeric .rz-inputtext,
.calculator-form-card .rz-dropdown .rz-inputtext,
.calculator-form-card .rz-textbox input {
    min-height: 2.5rem;
}

/* Chart cards - glassmorphism, color accent on top */
.chart-card {
    min-height: 300px;
    border-radius: 20px !important;
    border: 1px solid var(--glass-border) !important;
    border-top: 4px solid var(--rz-primary) !important;
    background: var(--glass-bg) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: var(--shadow-card);
}
.chart-with-legend {
    min-height: 260px;
}

/* Income tax bar chart - ensure Y-axis category labels are visible (Greek text can be long) */
.income-tax-chart-card {
    overflow: visible;
    padding-left: 8rem !important;
}
.income-tax-chart-card .rz-chart,
.income-tax-chart-card .chart-bar-categories {
    overflow: visible !important;
}
.income-tax-chart-card .rz-chart canvas {
    max-width: 100%;
}

/* Shared calculator presets (Mortgage, Income Tax, etc.) */
.calc-presets {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    align-content: flex-start;
    gap: 0.5rem 0.75rem;
    margin-bottom: 1rem;
}
.calc-presets-label {
    flex-shrink: 0;
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--rz-text-secondary-color);
}
.calc-presets-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    flex: 1;
    min-width: 0;
}
.calc-preset-btn {
    flex-shrink: 0;
    min-width: fit-content;
    background: transparent !important;
    border: 1px solid rgba(56, 113, 255, 0.5) !important;
    color: var(--rz-primary) !important;
    border-radius: 2rem !important;
    font-weight: 500 !important;
    padding: 0.4rem 1rem !important;
    transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease !important;
}
.calc-preset-btn:hover {
    background: rgba(56, 113, 255, 0.12) !important;
    border-color: var(--rz-primary) !important;
    box-shadow: 0 2px 8px rgba(56, 113, 255, 0.2) !important;
}

/* ENFIA calculator - breakdown, comparison */
.enfia-reduction-row {
    align-items: center;
}
.enfia-hint-icon {
    flex-shrink: 0;
}
.enfia-breakdown-card {
    border-left: 4px solid var(--rz-primary) !important;
}
.enfia-breakdown {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.enfia-breakdown-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.9rem;
}
.enfia-breakdown-row span {
    color: var(--rz-text-secondary-color);
}
.enfia-breakdown-subtotal {
    border-top: 1px solid var(--rz-base-300);
    padding-top: 0.5rem;
    margin-top: 0.25rem;
}
.enfia-breakdown-reduction {
    color: var(--rz-success);
}
.enfia-breakdown-total {
    border-top: 1px solid var(--rz-base-300);
    padding-top: 0.5rem;
    margin-top: 0.25rem;
    font-weight: 600;
}
.enfia-comparison-card {
    border-left: 4px solid var(--rz-primary) !important;
}
.enfia-comparison {
    display: flex;
    gap: 2rem;
    flex-wrap: wrap;
}
.enfia-comparison-col {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}
.enfia-comparison-col--highlight .enfia-comparison-value {
    color: var(--rz-primary);
    font-size: 1.25rem;
}
.enfia-comparison-label {
    font-size: 0.85rem;
    color: var(--rz-text-secondary-color);
}
.enfia-comparison-value {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.enfia-aade-link {
    margin-top: 1rem;
    padding: 0.75rem;
    text-align: center;
}
.enfia-aade-anchor {
    color: var(--rz-primary);
    text-decoration: none;
    font-weight: 500;
}
.enfia-aade-anchor:hover {
    text-decoration: underline;
}

/* Enfia bar chart - prevent Y-axis category labels (Βασικός ΕΝΦΙΑ, Τελικός ΕΝΦΙΑ) from being cut off */
.enfia-chart-card {
    overflow: visible;
    padding-left: 5.5rem !important;
}
.enfia-chart-card .rz-chart,
.enfia-chart-card .chart-bar-categories {
    overflow: visible !important;
}
.enfia-chart-card .rz-chart canvas {
    max-width: 100%;
}

/* Mortgage chart - skip stagger animation so it renders immediately */
.chart-load-immediate {
    animation: none !important;
    opacity: 1 !important;
}

/* Diodia calculator - Sources & table cards (modern, line on top) */
.diodia-section-card {
    border-radius: 20px !important;
    border: 1px solid var(--glass-border) !important;
    border-top: 4px solid var(--rz-primary) !important;
    background: var(--glass-bg) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: var(--shadow-card);
    padding: 1.25rem !important;
}
.diodia-section-title {
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: 1rem;
    margin: 0 0 1rem 0;
    color: rgba(255, 255, 255, 0.95);
}
.diodia-sources-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 0.5rem 1rem;
}
.diodia-sources-grid a {
    font-size: 0.9rem;
    color: var(--rz-primary);
    text-decoration: none;
    padding: 0.35rem 0;
    border-radius: 8px;
    transition: color 0.2s ease, background 0.2s ease;
}
.diodia-sources-grid a:hover {
    color: #93c5fd;
    background: rgba(56, 113, 255, 0.08);
}
.diodia-table-card .rz-datatable,
.diodia-table-card .rz-grid-table {
    border-radius: 12px;
    overflow: hidden;
}
.diodia-table-card .rz-datatable-thead > tr > th,
.diodia-table-card .rz-grid-table thead th {
    background: rgba(255, 255, 255, 0.06) !important;
    font-weight: 600;
    font-size: 0.85rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--glass-border);
}
.diodia-table-card .rz-datatable-tbody > tr > td,
.diodia-table-card .rz-grid-table tbody td {
    padding: 0.65rem 1rem;
    font-size: 0.9rem;
}
.diodia-table-card .rz-datatable-tbody > tr:hover > td,
.diodia-table-card .rz-grid-table tbody tr:hover td {
    background: rgba(255, 255, 255, 0.04) !important;
}

/* Calculator form card - glassmorphism */
.calculator-form-card {
    border-radius: 20px;
    border: 1px solid var(--glass-border);
    background: var(--glass-bg) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: var(--shadow-card);
    border-top: 4px solid var(--rz-primary);
    overflow: visible;
}

/* Sticky calculate button - stays visible while scrolling long forms */
.calculator-form-actions {
    padding-top: 0.75rem;
}
.calculator-form-actions--sticky {
    position: sticky;
    /* Sit just above device home indicator; clears site footer when both in view */
    bottom: max(0.5rem, env(safe-area-inset-bottom, 0px));
    z-index: 15;
    padding-top: 1.1rem;
    margin-top: 0.75rem;
    margin-left: -1.5rem;
    margin-right: -1.5rem;
    margin-bottom: -1.5rem;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    padding-bottom: calc(1.25rem + env(safe-area-inset-bottom, 0px));
    /* Align with calculator card bottom; no “floating shelf” top radius or gradient fade */
    border-radius: 0 0 20px 20px;
    border-top: 1px solid var(--glass-border);
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.12);
    background: rgba(255, 255, 255, 0.06);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

@media (max-width: 600px) {
    .calculator-form-actions--sticky .rz-button {
        width: 100%;
        justify-content: center;
    }
}

/* Result card - accent border, modern look */
.calculator-result-card {
    border-radius: 20px;
    border: 1px solid var(--glass-border);
    background: var(--glass-bg) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: var(--shadow-card);
}

/* Blue accent on every result card - left border (all layouts) */
.calculator-results-animate .rz-card {
    border-left: 4px solid var(--rz-primary);
}

/* Ineligible result card (e.g. A21 not eligible) */
.calculator-result-card--ineligible {
    border-left: 4px solid var(--rz-danger) !important;
    padding: 1.5rem;
}
.calculator-result-card--ineligible .a21-ineligible-value {
    color: var(--rz-danger) !important;
    font-size: 1.5rem;
}

/* Misthos Katharos Full - Employee vs Employer sections */
.misthos-full-sections {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
}
@media (max-width: 768px) {
    .misthos-full-sections {
        grid-template-columns: 1fr;
    }
}
.misthos-section-card {
    border-radius: 20px !important;
    border: 1px solid var(--glass-border) !important;
    background: var(--glass-bg) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    padding: 1.5rem !important;
}
.misthos-section-card--employee {
    border-left: 4px solid #6366f1;
}
.misthos-section-card--employer {
    border-left: 4px solid #0ea5e9;
}
.misthos-section-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 1.1rem;
    font-weight: 600;
    margin: 0 0 0.25rem 0;
}
.misthos-section-icon {
    font-size: 1.25rem;
}
.misthos-section-desc {
    font-size: 0.85rem;
    color: var(--rz-text-secondary-color);
    margin: 0 0 1rem 0;
}
.misthos-main-value {
    font-size: 2rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--rz-primary);
}
.misthos-section-card--employer .misthos-main-value {
    color: #0ea5e9;
}
.misthos-main-label {
    font-size: 0.9rem;
    color: var(--rz-text-secondary-color);
    margin-bottom: 1rem;
}
.misthos-detail-grid {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--rz-base-300);
}
.misthos-detail-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.9rem;
}
.misthos-detail-row span {
    color: var(--rz-text-secondary-color);
}
.misthos-detail-row strong {
    font-variant-numeric: tabular-nums;
}
.chart-subtitle {
    font-size: 0.85rem;
    color: var(--rz-text-secondary-color);
    margin: -0.5rem 0 1rem 0;
}

/* Result card animation */
.result-card-enter {
    animation: resultFadeIn 0.35s ease-out;
}
@keyframes resultFadeIn {
    from { opacity: 0; transform: translateY(-12px) scale(0.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

/* Result cards - hero main value */
.result-main-value {
    color: var(--rz-primary);
    font-size: clamp(1.75rem, 4vw, 2.25rem);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
}
.result-main-label {
    color: var(--rz-text-secondary-color);
    font-size: 0.9rem;
    font-weight: 500;
}
.rz-card .result-main-label { color: var(--rz-text-secondary-color); }

/* Result details grid */
.result-details-grid {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.5rem 2rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--rz-base-300);
}
.result-detail-row {
    display: contents;
}
.result-detail-row .result-detail-label {
    color: var(--rz-text-secondary-color);
    font-size: 0.9rem;
}
.result-detail-row .result-detail-value {
    text-align: right;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

/* Page header - improved typography */
.page-header {
    font-family: var(--font-heading);
    font-size: 1.75rem;
    font-weight: 700;
    letter-spacing: -0.03em;
    margin-bottom: 0.5rem;
}
.page-header-subtitle {
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--rz-text-secondary-color);
    margin-bottom: 1.5rem;
}

/* Privacy policy – readable, layered cards */
.privacy-page {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    max-width: 720px;
    margin: 0 auto;
}

.privacy-lead {
    border-radius: 20px !important;
    border: 1px solid rgba(167, 139, 250, 0.22) !important;
    background: linear-gradient(
        135deg,
        rgba(99, 102, 241, 0.12) 0%,
        rgba(15, 23, 42, 0.55) 50%,
        rgba(26, 26, 46, 0.45) 100%
    ) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
    padding: 1.5rem 1.35rem !important;
}

.privacy-lead-icon {
    font-size: 2.5rem !important;
    width: 2.5rem !important;
    height: 2.5rem !important;
    color: #a5b4fc !important;
    flex-shrink: 0;
}

.privacy-lead-title {
    font-family: var(--font-heading);
    font-size: 1.2rem;
    font-weight: 700;
    margin: 0 0 0.65rem;
    color: #f4f4f5;
}

.privacy-lead-text {
    margin: 0;
    line-height: 1.65;
    color: var(--rz-text-secondary-color);
    font-size: 0.95rem;
}

.privacy-pill-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

@media (min-width: 640px) {
    .privacy-pill-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.privacy-pill {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.85rem 1rem;
    border-radius: 14px;
    border: 1px solid rgba(167, 139, 250, 0.12);
    background: rgba(255, 255, 255, 0.04);
    font-size: 0.82rem;
    line-height: 1.45;
    color: var(--rz-text-secondary-color);
}

.privacy-pill .rz-icon {
    font-size: 1.35rem !important;
    color: #a78bfa !important;
    flex-shrink: 0;
    margin-top: 0.1rem;
}

.privacy-block {
    border-radius: 18px !important;
    border: 1px solid var(--glass-border) !important;
    background: var(--glass-bg) !important;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    padding: 1.35rem 1.25rem !important;
}

.privacy-block--muted {
    opacity: 0.95;
}

.privacy-block-title {
    font-family: var(--font-heading);
    font-size: 1.05rem;
    font-weight: 600;
    margin: 0 0 1rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: #f4f4f5;
}

.privacy-block-title .rz-icon {
    font-size: 1.35rem !important;
    color: #818cf8 !important;
}

.privacy-block p {
    margin: 0;
    line-height: 1.65;
    color: var(--rz-text-secondary-color);
    font-size: 0.92rem;
}

.privacy-list {
    margin: 0;
    padding-left: 1.15rem;
    color: var(--rz-text-secondary-color);
    font-size: 0.92rem;
    line-height: 1.65;
}

.privacy-list li {
    margin-bottom: 0.75rem;
}

.privacy-list li:last-child {
    margin-bottom: 0;
}

.privacy-gdpr-note {
    border-radius: 18px !important;
    border: 1px solid rgba(167, 139, 250, 0.28) !important;
    background: linear-gradient(
        160deg,
        rgba(124, 58, 237, 0.1) 0%,
        rgba(15, 23, 42, 0.65) 100%
    ) !important;
    padding: 1.35rem 1.25rem !important;
    box-shadow: 0 4px 24px rgba(99, 102, 241, 0.08);
}

.privacy-gdpr-note-title {
    font-family: var(--font-heading);
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0 0 0.85rem;
    color: #e0e7ff;
}

.privacy-gdpr-note p {
    margin: 0 0 0.85rem;
    line-height: 1.65;
    color: var(--rz-text-secondary-color);
    font-size: 0.92rem;
}

.privacy-gdpr-note p:last-child {
    margin-bottom: 0;
}

.privacy-gdpr-note a {
    color: #a5b4fc;
    font-weight: 500;
}

.privacy-gdpr-note a:hover {
    color: #c7d2fe;
}

.privacy-updated {
    margin-top: 1rem !important;
    margin-bottom: 0 !important;
    font-size: 0.8rem;
    color: var(--rz-text-secondary-color);
    opacity: 0.85;
}

/* Suppress focus outline on h1 when FocusOnNavigate focuses it for accessibility */
main h1:focus {
    outline: none;
}

/* Homepage hero */
.home-hero {
    margin-bottom: 2.5rem;
}
.home-hero h1 {
    font-family: var(--font-heading);
    font-size: 2.25rem;
    font-weight: 700;
    letter-spacing: -0.03em;
    margin: 0 0 0.5rem 0;
    line-height: 1.2;
}
.home-hero-subtitle {
    font-size: 1.1rem;
    line-height: 1.6;
    color: var(--rz-text-secondary-color);
    margin-top: 0.5rem;
}
.home-search {
    margin-top: 1.25rem;
    max-width: 480px;
}

/* Home search input - modern pill style */
.home-search .rz-textbox,
.home-search .rz-textbox input {
    font-family: var(--font-heading) !important;
    font-size: 1rem !important;
    font-weight: 500;
    border-radius: 9999px !important;
    padding: 0.85rem 1.25rem !important;
    background: var(--glass-bg) !important;
    border: 1px solid var(--glass-border) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.home-search .rz-textbox:focus-within {
    border-color: rgba(56, 113, 255, 0.5) !important;
    box-shadow: 0 0 0 3px rgba(56, 113, 255, 0.15) !important;
    background: rgba(255, 255, 255, 0.08) !important;
}
.home-search .rz-textbox input::placeholder {
    color: var(--rz-text-secondary-color);
    opacity: 0.8;
}
.home-category-title {
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: 1rem;
    margin: 2.5rem 0 1rem 0;
    color: var(--rz-text-secondary-color);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.home-category-title::before {
    content: '';
    width: 4px;
    height: 1.2em;
    background: var(--rz-primary);
    border-radius: 2px;
}

/* Button micro-interactions */
.rz-button {
    transition: transform 0.2s ease, box-shadow 0.2s ease !important;
}
.rz-button:hover:not(.rz-state-disabled) {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(56, 113, 255, 0.3);
}
.rz-button:active:not(.rz-state-disabled) {
    transform: translateY(0);
}

/* Input focus polish */
.rz-textbox:focus-within,
.rz-numeric:focus-within,
.rz-dropdown:focus-within {
    box-shadow: 0 0 0 2px rgba(56, 113, 255, 0.25);
}

/* Form fieldset & input borders - white animated line */
@keyframes form-border-glow {
    0%, 100% { border-color: rgba(255, 255, 255, 0.25); }
    50% { border-color: rgba(255, 255, 255, 0.55); }
}

@keyframes form-border-glow-card {
    0%, 100% {
        border-left-color: rgba(255, 255, 255, 0.25);
        border-right-color: rgba(255, 255, 255, 0.25);
        border-bottom-color: rgba(255, 255, 255, 0.25);
    }
    50% {
        border-left-color: rgba(255, 255, 255, 0.55);
        border-right-color: rgba(255, 255, 255, 0.55);
        border-bottom-color: rgba(255, 255, 255, 0.55);
    }
}

/* Fieldset border - white animated */
.calculator-form-card fieldset {
    border-color: rgba(255, 255, 255, 0.35) !important;
    animation: form-border-glow 3s ease-in-out infinite;
}

/* Card border - white animated (keep blue top accent) */
.calculator-form-card {
    border-left-color: rgba(255, 255, 255, 0.35) !important;
    border-right-color: rgba(255, 255, 255, 0.35) !important;
    border-bottom-color: rgba(255, 255, 255, 0.35) !important;
    animation: form-border-glow-card 3s ease-in-out infinite;
}

.calculator-form-card .rz-dropdown,
.calculator-form-card .rz-textbox,
.calculator-form-card .rz-numeric {
    border-color: rgba(255, 255, 255, 0.35) !important;
    animation: form-border-glow 3s ease-in-out infinite;
}

.calculator-form-card .rz-dropdown .rz-inputtext,
.calculator-form-card .rz-textbox input,
.calculator-form-card .rz-numeric input {
    border-color: rgba(255, 255, 255, 0.35) !important;
    animation: form-border-glow 3s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
    .calculator-form-card,
    .calculator-form-card fieldset {
        animation: none;
    }
    .calculator-form-card {
        border-left-color: rgba(255, 255, 255, 0.4) !important;
        border-right-color: rgba(255, 255, 255, 0.4) !important;
        border-bottom-color: rgba(255, 255, 255, 0.4) !important;
    }
    .calculator-form-card fieldset {
        border-color: rgba(255, 255, 255, 0.4) !important;
    }
    .calculator-form-card .rz-dropdown,
    .calculator-form-card .rz-textbox,
    .calculator-form-card .rz-numeric,
    .calculator-form-card .rz-dropdown .rz-inputtext,
    .calculator-form-card .rz-textbox input,
    .calculator-form-card .rz-numeric input {
        animation: none;
        border-color: rgba(255, 255, 255, 0.4) !important;
    }
}

/* Blazor validation */
.valid.modified:not([type=checkbox]) { outline: 1px solid #26b050; }
.invalid { outline: 1px solid #e50000; }
.validation-message { color: #e50000; }

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}
.blazor-error-boundary::after { content: "An error has occurred." }

/* ═══════════════════════════════════════════════════════════════
   Argies Calendar (Ημερολόγιο αργιών)
   ═══════════════════════════════════════════════════════════════ */
.argies-page {
    max-width: 1600px;
    margin: 0 auto;
    padding: 0 1rem 2rem;
}
.argies-header {
    margin-bottom: 2rem;
}
.argies-subtitle {
    color: var(--rz-text-secondary-color);
    font-size: 0.95rem;
    margin: 0.5rem 0 1rem 0;
    max-width: 720px;
}
.argies-year-nav {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.argies-year-link {
    display: inline-block;
    padding: 0.4rem 1rem;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.06);
    color: var(--rz-text-secondary-color);
    text-decoration: none;
    font-weight: 500;
    transition: background 0.2s, color 0.2s;
}
.argies-year-link:hover {
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
}
.argies-year-link.active {
    background: var(--rz-primary);
    color: #fff;
}
.argies-body {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 2rem;
    align-items: start;
}
@media (max-width: 900px) {
    .argies-body {
        grid-template-columns: 1fr;
    }
}
.argies-sidebar {
    position: sticky;
    top: 1rem;
    background: var(--glass-bg);
    backdrop-filter: blur(12px);
    border: 1px solid var(--glass-border);
    border-radius: 14px;
    padding: 1.25rem;
}
.argies-sidebar h3 {
    font-size: 1rem;
    margin: 0 0 1rem 0;
    color: rgba(255, 255, 255, 0.95);
}
.argies-sidebar h4 {
    font-size: 0.9rem;
    margin: 1.25rem 0 0.5rem 0;
    color: rgba(255, 255, 255, 0.9);
}
.argies-holiday-list {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 0.85rem;
    line-height: 1.7;
    color: var(--rz-text-secondary-color);
}
.argies-holiday-list li {
    padding: 0.15rem 0;
}
.argies-long-weekends ul {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 0.85rem;
    color: var(--rz-text-secondary-color);
}
.argies-long-weekends li {
    padding: 0.2rem 0;
}
.argies-lw-label {
    font-weight: 600;
    font-size: 0.8rem;
    color: var(--rz-primary);
    margin: 0.5rem 0 0.2rem 0;
}
.argies-calendar-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.5rem;
}
.argies-month-card {
    background: var(--glass-bg);
    backdrop-filter: blur(12px);
    border: 1px solid var(--glass-border);
    border-radius: 14px;
    padding: 1rem;
}
.argies-month-title {
    font-size: 0.95rem;
    margin: 0 0 0.75rem 0;
    color: rgba(255, 255, 255, 0.95);
    text-align: center;
}
.argies-month-grid {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.argies-dow-header {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
    font-size: 0.7rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.5);
    text-align: center;
    margin-bottom: 4px;
}
.argies-week-row {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
}
.argies-day {
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    border-radius: 6px;
    color: rgba(255, 255, 255, 0.7);
}
/* Σάββατο & Κυριακή – greyed out */
.argies-day--weekend {
    background: rgba(128, 128, 128, 0.15);
    color: rgba(255, 255, 255, 0.45);
}
/* Σήμερα – green highlight */
.argies-day--today {
    background: rgba(34, 197, 94, 0.4) !important;
    color: #fff !important;
    font-weight: 600;
    box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.6);
}
.argies-day--free {
    background: rgba(250, 204, 21, 0.2);
    color: rgba(255, 255, 255, 0.9);
}
.argies-day--holiday {
    background: rgba(250, 204, 21, 0.25);
    box-shadow: 0 0 0 1.5px rgba(220, 38, 38, 0.6);
    color: #fff;
    font-weight: 600;
}
/* Επιλεγμένες μέρες άδειας – teal */
.argies-day--off {
    background: rgba(34, 211, 238, 0.35) !important;
    color: #fff !important;
    box-shadow: 0 0 0 1.5px rgba(34, 211, 238, 0.6);
}
.argies-day--clickable {
    cursor: pointer;
}
.argies-day--clickable:hover {
    filter: brightness(1.15);
}

/* Color legend */
.argies-legend {
    margin-bottom: 1.5rem;
    padding: 1rem;
    background: rgba(255, 255, 255, 0.04);
    border-radius: 10px;
    border: 1px solid var(--glass-border);
}
.argies-legend h4 {
    font-size: 0.9rem;
    margin: 0 0 0.75rem 0;
    color: rgba(255, 255, 255, 0.9);
}
.argies-legend-items {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.5rem;
    font-size: 0.85rem;
    color: var(--rz-text-secondary-color);
}
.argies-legend-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.argies-legend-swatch {
    width: 1rem;
    height: 1rem;
    border-radius: 4px;
    flex-shrink: 0;
}
.argies-legend-swatch--weekend {
    background: rgba(128, 128, 128, 0.4);
}
.argies-legend-swatch--today {
    background: rgba(34, 197, 94, 0.5);
}
.argies-legend-swatch--holiday {
    background: rgba(250, 204, 21, 0.35);
    box-shadow: 0 0 0 1px rgba(220, 38, 38, 0.5);
}
.argies-legend-swatch--off {
    background: rgba(34, 211, 238, 0.5);
}

.argies-off-count {
    margin-bottom: 1.25rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--glass-border);
}
.argies-off-count h4 {
    font-size: 0.9rem;
    margin: 0 0 0.25rem 0;
}
.argies-off-count-value {
    font-size: 1.1rem;
    color: var(--rz-primary);
    margin: 0;
}
