﻿/* === Calm confidence background (subtle, non-distracting) === */
:root {
    --bg-base: #f7f9fc;
    --bg-top: #ffffff;
    --bg-bottom: #eef3f9;
    --bg-accent-1: rgba(30, 90, 160, 0.06);
    --bg-accent-2: rgba(18, 120, 180, 0.04);

    --surface-0: #f8fafc;
    --surface-1: #ffffff;
    --surface-2: #f1f5f9;
    --surface-border-soft: rgba(148, 163, 184, .28);
    --surface-shadow-soft: 0 10px 24px rgba(15, 23, 42, .08);
    --text-strong: #0f172a;
    --text-body: #334155;
    --text-muted-soft: #64748b;
    --accent-primary: #2563eb;
    --accent-primary-soft: rgba(37, 99, 235, .12);
    --live-success: #16a34a;
    --warning-soft: #f59e0b;
    --radius-panel: 1rem;
    --radius-chip: .75rem;
    --motion-fast: 150ms;
    --motion-normal: 220ms;
}

.surface-soft {
    background: linear-gradient(180deg, var(--surface-1) 0%, var(--surface-2) 100%);
    border: 1px solid var(--surface-border-soft);
    border-radius: var(--radius-panel);
    box-shadow: var(--surface-shadow-soft);
}

.subtle-transition {
    transition: transform var(--motion-fast) ease, box-shadow var(--motion-normal) ease, border-color var(--motion-fast) ease, background-color var(--motion-fast) ease;
}

html {
    min-height: 100%;
    background: #f7f8fc;
    background-attachment: fixed;
    background-repeat: no-repeat;
    position: relative;
    overflow: hidden;
}

body {
    background: #f7f8fc !important;
    height: 100dvh;
    overflow: hidden;
}

/* 2) Ensure body & main wrappers don’t repaint over it */
body, .page, main, .app, #app, .container-fluid {
    background: transparent !important;
}



/* ===== Global Theming (edit these) ===== */
:root {
    --sb-size: 12px; /* width/height */
    --sb-radius: 8px; /* thumb rounding */
    --sb-track: #f1f1f1; /* track color */
    --sb-thumb: #c2c2c2; /* thumb color */
    --sb-thumb-hover: #a8a8a8; /* thumb hover/drag */
    --sb-thumb-active: #8e8e8e; /* when actively dragging */
    --sb-corner: #e9e9e9; /* corner when both bars show */
}

/* Disable focus / active outlines everywhere */
*:focus,
*:focus-visible,
*:active {
    outline: none !important;
    box-shadow: none !important;
}


/* ===== Firefox ===== */
/* Global defaults */
* {
    scrollbar-width: thin; /* auto | thin | none */
    scrollbar-color: var(--sb-thumb) var(--sb-track);
}

    /* Per-element (example) */
    /*
.my-scrollbox {
  scrollbar-width: thin;
  scrollbar-color: var(--sb-thumb) var(--sb-track);
}
*/

    /* ===== Chromium / Edge / Safari (WebKit/Blink) ===== */
    *::-webkit-scrollbar {
        width: var(--sb-size);
        height: var(--sb-size);
    }

    *::-webkit-scrollbar-track {
        background: var(--sb-track);
    }

    *::-webkit-scrollbar-thumb {
        background: var(--sb-thumb);
        border-radius: var(--sb-radius);
        /* Optional inner padding look (prevents super-wide “block”) */
        border: 3px solid var(--sb-track);
    }

        *::-webkit-scrollbar-thumb:hover {
            background: var(--sb-thumb-hover);
        }

        *::-webkit-scrollbar-thumb:active {
            background: var(--sb-thumb-active);
        }

    *::-webkit-scrollbar-corner {
        background: var(--sb-corner);
    }

/* ===== Dark mode (optional) ===== */
@media (prefers-color-scheme: dark) {
    :root {
        --sb-track: #1f1f1f;
        --sb-thumb: #4a4a4a;
        --sb-thumb-hover: #5c5c5c;
        --sb-thumb-active: #6e6e6e;
        --sb-corner: #262626;
    }
}

/* ===== High-contrast / accessibility notes =====
   - Ensure contrast between thumb and track (>= 3:1 is friendlier).
   - Consider increasing --sb-size to 14–16px for touch/low-precision devices.
   - macOS may hide scrollbars until scrolling (System Preferences > Show Scroll Bars),
     so styles won’t always appear; iOS Safari doesn’t expose custom styling.
*/

/* ===== Example: only style a specific container =====
.my-scrollbox {
  overflow: auto;
}
.my-scrollbox::-webkit-scrollbar { width: 10px; }
.my-scrollbox { scrollbar-width: thin; scrollbar-color: var(--sb-thumb) var(--sb-track); }
*/

.stage-topbar, .stage-bottombar {
    background-image: url('/_content/VotePool.UI/images/tilex1.png');
    background-repeat: repeat-x;
    position: absolute;
    left: 0;
    right: 0;
    height: 44px;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: 0 .75rem;
    color: #fff;
    backdrop-filter: blur(6px);
}

a, .btn-link {
    color: #006bb7;
}

.btn-primary {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

/* Base style */
.btn-primary {
    position: relative;
    min-width: 8rem;
    background: linear-gradient( to bottom, rgba(13, 60, 153, 0.9), /* bootstrap primary with opacity */
    rgba(10, 38, 102, 0.9) );
    border: none;
    color: #fff;
    font-weight: 500;
    transition: all 0.3s ease;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
    overflow: hidden;
}

    /* Glossy shine layer */
    .btn-primary::before {
        content: "";
        position: absolute;
        top: -50%;
        left: -75%;
        width: 200%;
        height: 200%;
        background: linear-gradient( 120deg, rgba(255, 255, 255, 0.4) 0%, rgba(255, 255, 255, 0.1) 40%, transparent 60% );
        transform: rotate(25deg);
        transition: transform 0.5s ease;
        pointer-events: none;
    }

    /* Hover animation */
    .btn-primary:hover {
        background: linear-gradient( to bottom, rgba(13, 110, 253, 1), rgba(10, 88, 202, 1) );
        transform: translateY(-2px) scale(1.03);
        box-shadow: 0 6px 15px rgba(0, 0, 0, 0.25);
    }

        /* Shine effect on hover */
        .btn-primary:hover::before {
            transform: translateX(100%) rotate(25deg);
        }


.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

/* Base style for nav-link */
.nav-link {
    position: relative;
    display: inline-block;
    padding: 0.5rem 1rem;
    color: #0d6efd; /* Bootstrap primary color */
    font-weight: 500;
    text-decoration: none;
    transition: all 0.3s ease;
    overflow: hidden;
}

    /* Shine overlay */
    .nav-link::before {
        content: "";
        position: absolute;
        top: -50%;
        left: -75%;
        width: 200%;
        height: 200%;
        background: linear-gradient( 120deg, rgba(255, 255, 255, 0.5) 0%, rgba(255, 255, 255, 0.1) 40%, transparent 60% );
        transform: rotate(25deg);
        transition: transform 0.5s ease;
        pointer-events: none;
    }

    /* Hover effect */
    .nav-link:hover {
        color: #0a58ca; /* darker Bootstrap primary */
        text-shadow: 0 0 6px rgba(13, 110, 253, 0.6);
        transform: translateY(-2px);
    }

        /* Glossy streak animation on hover */
        .nav-link:hover::before {
            transform: translateX(100%) rotate(25deg);
        }


.content {
    padding-top: 1.1rem;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50100;
}

select.form-select , input.form-control {
    height: 3rem !important;
    font-size: 1.5rem;
}

input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 1.2rem !important;
    height: 1.2rem;
    border-radius: 0.35rem;
    cursor: pointer;
    position: relative;
    background: linear-gradient( 135deg, rgba(255,255,255,0.85) 0%, rgba(220,230,235,0.95) 45%, rgba(205,215,220,1) 100% );
    border: 1px solid rgba(255,255,255,0.7);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.7), inset 0 -1px 0 rgba(0,0,0,0.08), 0 1px 3px rgba(0,0,0,0.18);
    transition: background 0.18s ease, box-shadow 0.18s ease, transform 0.12s ease;
}

    input[type="checkbox"]:hover {
        box-shadow: inset 0 1px 0 rgba(255,255,255,0.8), inset 0 -1px 0 rgba(0,0,0,0.08), 0 2px 6px rgba(0,150,255,0.20);
    }

    input[type="checkbox"]:active {
        transform: scale(0.96);
    }

    input[type="checkbox"]:checked {
        background: linear-gradient( 135deg, rgba(40,210,120,0.95) 0%, rgba(0,150,255,0.92) 100% );
        border-color: rgba(255,255,255,0.9);
        box-shadow: inset 0 1px 0 rgba(255,255,255,0.35), inset 0 -1px 0 rgba(0,0,0,0.10), 0 2px 8px rgba(0,150,255,0.28);
    }

        input[type="checkbox"]:checked::after {
            content: "";
            position: absolute;
            left: 0.33rem;
            top: 0.12rem;
            width: 0.28rem;
            height: 0.58rem;
            border: solid white;
            border-width: 0 0.14rem 0.14rem 0;
            transform: rotate(45deg);
        }

    input[type="checkbox"]:focus-visible {
        outline: none;
        box-shadow: 0 0 0 0.18rem rgba(0,150,255,0.18), inset 0 1px 0 rgba(255,255,255,0.7), inset 0 -1px 0 rgba(0,0,0,0.08), 0 1px 3px rgba(0,0,0,0.18);
    }

.btn {
    min-height:3rem !important;
    min-width:3rem !important;
}


.btn-sm {
    min-height: 2rem !important;
    min-width: 2rem !important;
}


.btn-xs {
    min-height: 1rem !important;
    min-width: 1rem !important;
}

.google-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    min-height: 40px;
    padding: 0.625rem 1rem;
    border: 1px solid rgba(148, 163, 184, 0.45);
    border-radius: 0.8rem;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    color: #334155;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1;
    transition: transform .15s ease, background-color .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.google-btn:hover:not(:disabled) {
    background: linear-gradient(180deg, #ffffff 0%, #f1f5f9 100%);
    border-color: rgba(96, 165, 250, 0.65);
    box-shadow: 0 8px 18px rgba(30, 41, 59, .12);
    transform: translateY(-1px);
}

.google-btn:active:not(:disabled) {
    background-color: #f1f3f4;
}

.google-btn:disabled {
    opacity: .65;
    cursor: not-allowed;
}

.google-btn__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.google-btn__text {
    white-space: nowrap;
}

.validation-message {
    color: #e50100;
}

.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."
    }

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

.list-item {
    padding: 0;
    margin: 0;
}


.list {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.list-block {
    border: 2px solid #ddd;
    border-radius: 10px;
    padding: 1rem;
    background: #fafafa;
}

.modal-backdrop{
    height:100% !important;
}
.Organisation-item {
    flex-direction: row;
    align-items: center;
    gap: 1rem;
}
.silver-head {

    /*box-shadow: inset 0 1px 0 rgba(255,255,255,.65), inset 0 -1px 0 rgba(0,0,0,.2), inset 0 12px 24px rgba(255,255,255,.18), inset 0 -14px 28px rgba(0,0,0,.12), 0 3px 6px rgba(0,0,0,.5);
    background-color: #c9ced3;*/
}
.item-label {
    font-weight: 600;
    min-width: 80px;
}

.item-input,
.item-textarea {
    flex: 1;
    padding: 0.5rem;
    border: 1px solid #ccc;
    border-radius: 6px;
}

.item-textarea {
    resize: vertical;
}

.location-line {
    font-size: 1rem;
}

    .location-line a {
        color: #007bff;
        text-decoration: none;
    }

        .location-line a:hover {
            text-decoration: underline;
        }

.item-buttons {
    display: flex;
    justify-content: center;
    margin-top: 0.5rem;
    gap: 0.5rem;
}

.item-btn {
    width: 50px;
    height: 50px;
    border: 1px solid #aaa;
    border-radius: 8px;
    background: #fff;
    cursor: pointer;
    font-size: 1.4rem;
    font-weight: bold;
}

    .item-btn.active {
        background: #007bff;
        color: white;
        border-color: #007bff;
    }

.tri3-container {
    display: block;
}

.tri3-svg {
    width: 100%;
    height: 100%;
    display: block;
}

/* Auth-scoped styling hook (Option A):
   Use these selectors to override fixed-size-page appearance depending on login state.
   Keep the defaults above as the shared baseline.
*/
.app-auth .fixed-size-page {
    /* logged-in overrides go here */
    padding: 0;
    height: calc(100dvh - var(--layout-header, 0px) - var(--layout-footer, 0px) - var(--layout-org, 0px) - 30px);
    overflow-y: auto;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
}

.app-guest .fixed-size-page {
    /* guest overrides go here */
    padding: 0;
    height: calc(100dvh - var(--layout-header, 0px) - var(--layout-footer-guest, 0px));
    overflow-y: auto;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
}


/* Host for the active tab content */
.tab-shell {
    flex: 1 1 auto;
    min-height: 0;
    display: flex; /* column so children can scroll/fill */
    flex-direction: column;
    overflow: hidden; /* only inner panes scroll */
}


/* Scrollable tabs (Resolution/Preferences) */
.tab-pane-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

/* Filling tab (Pyramid): header + canvas fills remainder */
.tab-pane-fill {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.pyramid-canvas {
    flex: 1 1 auto;
    min-height: 0;
}

    .pyramid-canvas svg {
        width: 100%;
        height: 100%;
        display: block;
    }

/* Minor polish */
.nav.nav-tabs {
    margin-bottom: 0 !important;
}

.btn-icon-square {
    width: 2rem;
    height: 2rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* the link itself has NO border/shadow; we only affect the image */
.globe-link {
    /* no border, no box-shadow here */
}

/* the actual globe image: circular + interactive effects */
.globe-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover; /* fill the circle */
    border-radius: 50%; /* true circle */
    transition: filter .2s ease, transform .08s ease, box-shadow .2s ease;
    /* start clean, no border */
}

/* hover: shadow the image (not the container) */
.globe-link:hover .globe-img {
    filter: drop-shadow(0 .25rem .5rem rgba(0,0,0,.35));
}

/* active press: tiny scale for tactile feedback */
.globe-link:active .globe-img {
    transform: scale(.96);
}

/* keyboard focus: ring around the image only */
.globe-link:focus .globe-img,
.globe-link:focus-visible .globe-img {
    outline: 0;
    box-shadow: 0 0 0 .2rem rgba(13,110,253,.35);
}

/* remove default outline on mouse click */
.globe-link:focus {
    outline: none;
}

/* keep focus ring only for keyboard navigation */
.globe-link:focus-visible .globe-img {
    box-shadow: 0 0 0 .2rem rgba(13,110,253,.35);
}

.globe-link:focus:not(:focus-visible) .globe-img {
    box-shadow: none;
}

.icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 999px !important;
    border: 1px solid rgba(255,255,255,.25);
    background: rgba(255,255,255,.08);
    cursor: pointer;
}

    .icon-btn.primary {
        border-color: transparent;
    }

    .icon-btn[disabled] {
        opacity: .5;
        cursor: default;
    }

/* Mic state rings (shared) */
.mic-on {
    box-shadow: 0 0 0 3px rgba(25,135,84,.35) inset;
    background: rgba(13,110,253,.9);
}

.mic-off {
    box-shadow: 0 0 0 1px rgba(220,53,69,.35) inset;
    background: rgba(110,110,110,.9);
}

/* Desktop / larger screens */


.main-article {
    --layout-header: 3.5rem;
    --layout-footer: 0px;
    padding: 0 !important;
}

.debate-pair {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr;
    grid-template-areas: "chat text";
    height: calc(100dvh - 7rem)
}

.res-text-holder {
    grid-area: text;
    max-height: 100%;
}

.res-text {
    height: calc(100dvh - 8.5rem);
    overflow-y: auto;
}

.session-filters {
    gap: 0.7rem;
}

.session-list {
    height: calc(100dvh - var(--layout-header, 0px) - 3rem)
}

.modal {
    --vp-modal-max-height: min(92dvh, calc(100dvh - var(--layout-header, 0px) - 1.2rem));
    --vp-modal-border: rgba(148, 163, 184, 0.27);
    --vp-modal-surface: rgba(255, 255, 255, 0.965);
    --vp-modal-header-surface: linear-gradient(180deg, rgba(255, 255, 255, 0.985) 0%, rgba(248, 250, 252, 0.95) 100%);
    --vp-modal-footer-surface: linear-gradient(180deg, rgba(248, 250, 252, 0.94) 0%, rgba(255, 255, 255, 0.985) 100%);
    --vp-modal-body-surface: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(248, 250, 252, 0.92) 100%);
    --vp-modal-shadow: 0 20px 56px rgba(15, 23, 42, 0.18), 0 4px 14px rgba(15, 23, 42, 0.11);
    --vp-modal-control-h: 2.15rem;
    --vp-modal-control-py: .35rem;
    --vp-modal-control-px: .68rem;
    --vp-modal-input-bg: rgba(248, 250, 252, 0.9);
    --vp-modal-input-bg-focus: rgba(255, 255, 255, 0.97);
    --vp-modal-scroll-size: 9px;
    --vp-modal-scroll-track: rgba(148, 163, 184, .12);
    --vp-modal-scroll-thumb: rgba(100, 116, 139, .34);
    --vp-modal-scroll-thumb-hover: rgba(100, 116, 139, .48);
    --vp-modal-enter-duration: 160ms;
    --vp-modal-enter-ease: cubic-bezier(.2, .8, .2, 1);
    --vp-modal-exit-duration: 180ms;
    --vp-modal-exit-ease: cubic-bezier(.4, 0, .2, 1);

    overflow-y: auto;
    padding: clamp(0.7rem, 1.35vw, 1rem);
    background: rgba(15, 23, 42, 0.4) !important;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);

    animation: vp-modal-backdrop-in var(--vp-modal-enter-duration) var(--vp-modal-enter-ease);
}

.modal-dialog {
    margin: clamp(0.75rem, 2.5dvh, 2rem) auto !important;
    width: min(760px, calc(100dvw - 2rem));
    max-width: min(760px, calc(100dvw - 2rem)) !important;
}

.modal-dialog.modal-sm,
.modal-dialog.modal-compact {
    width: min(460px, calc(100dvw - 2rem));
    max-width: min(460px, calc(100dvw - 2rem)) !important;
}

.modal-dialog.modal-lg,
.modal-dialog.modal-standard {
    width: min(900px, calc(100dvw - 2rem));
    max-width: min(900px, calc(100dvw - 2rem)) !important;
}

.modal-dialog.modal-xl,
.modal-dialog.modal-wide {
    width: min(1120px, calc(100dvw - 2rem));
    max-width: min(1120px, calc(100dvw - 2rem)) !important;
}

.modal-content {
    width: 100% !important;
    height: auto;
    max-height: var(--vp-modal-max-height);
    border-radius: .95rem;
    border: 1px solid var(--vp-modal-border);
    box-shadow: var(--vp-modal-shadow);
    background: var(--vp-modal-surface);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.modal-content.free {
    width: min(1200px, calc(100dvw - 2rem)) !important;
    max-height: var(--vp-modal-max-height);
    height: auto !important;
}

.modal-header {
    position: sticky;
    top: 0;
    z-index: 3;
    padding: .72rem .9rem;
    border-bottom: 1px solid rgba(148, 163, 184, 0.2);
    background: var(--vp-modal-header-surface);
}

.modal-title {
    font-size: .95rem;
    font-weight: 600;
    letter-spacing: .01em;
    color: #0f172a;
    line-height: 1.35;
}

.modal-header .btn-close {
    width: 1.65rem;
    height: 1.65rem;
    padding: 0;
    margin: 0;
    border-radius: 0.6rem;
    opacity: .7;
    transition: opacity .16s ease, background-color .16s ease;
}

.modal-header .btn-close:hover {
    opacity: 1;
    background: rgba(15, 23, 42, 0.06);
}

.modal-body {
    height: auto;
    max-height: none;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: .82rem .9rem .86rem;
    background: var(--vp-modal-body-surface);
}

.modal-footer {
    position: sticky;
    bottom: 0;
    z-index: 3;
    display: flex;
    flex-wrap: wrap;
    gap: .42rem;
    justify-content: flex-end;
    padding: .68rem .9rem calc(.68rem + env(safe-area-inset-bottom));
    border-top: 1px solid rgba(148, 163, 184, 0.2);
    background: var(--vp-modal-footer-surface);
}

.modal .form-label {
    margin-bottom: .26rem;
    font-size: .8rem;
    font-weight: 560;
    color: #475569;
}

.modal .form-text {
    margin-top: .28rem;
    font-size: .75rem;
    color: #64748b;
}

.modal .mb-3 {
    margin-bottom: .72rem !important;
}

.modal .mb-2 {
    margin-bottom: .58rem !important;
}

.modal .form-control,
.modal .form-select {
    min-height: var(--vp-modal-control-h);
    height: var(--vp-modal-control-h) !important;
    padding: var(--vp-modal-control-py) var(--vp-modal-control-px);
    font-size: .89rem;
    border-radius: .66rem;
    border: 1px solid rgba(148, 163, 184, 0.31);
    background: var(--vp-modal-input-bg);
    transition: border-color .14s ease, box-shadow .18s ease, background-color .14s ease;
}

.modal textarea.form-control {
    min-height: 6.35rem;
    height: auto !important;
    line-height: 1.4;
    resize: vertical;
}

.modal .form-control:focus,
.modal .form-control:focus-visible,
.modal .form-select:focus,
.modal .form-select:focus-visible {
    border-color: rgba(59, 130, 246, 0.6);
    box-shadow: 0 0 0 0.16rem rgba(37, 99, 235, 0.15) !important;
    background: var(--vp-modal-input-bg-focus);
}

.modal .btn {
    min-height: 2.2rem !important;
    min-width: 2.2rem !important;
    padding: .34rem .78rem;
    border-radius: .66rem;
    font-size: .87rem;
    font-weight: 560;
    transition: transform .14s ease, box-shadow .16s ease, background-color .14s ease, border-color .14s ease;
}

.modal .btn-primary {
    background: #2563eb;
    border-color: #2563eb;
    box-shadow: 0 5px 12px rgba(37, 99, 235, 0.2);
}

.modal .btn-primary::before {
    display: none;
}

.modal .btn-primary:hover:not(:disabled) {
    transform: translateY(-1px);
    background: #1d4ed8;
    border-color: #1d4ed8;
    box-shadow: 0 8px 16px rgba(37, 99, 235, 0.24);
}

.modal .btn:active:not(:disabled) {
    transform: translateY(0);
}

.modal .btn-outline-secondary,
.modal .btn-secondary {
    border-color: rgba(100, 116, 139, 0.5);
    color: #334155;
    background: rgba(255, 255, 255, 0.8);
}

.modal .nav-tabs {
    border-bottom: 1px solid rgba(148, 163, 184, 0.2);
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.94) 0%, rgba(255, 255, 255, 0.92) 100%);
}

.modal .nav-tabs .nav-link {
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    color: #64748b;
    text-shadow: none;
    transform: none;
}

.modal .nav-tabs .nav-link.active {
    color: #0f172a;
    font-weight: 600;
    background: transparent;
    border-bottom-color: #2563eb;
}

.modal .table-responsive,
.modal .modal-body,
.modal textarea.form-control {
    scrollbar-width: thin;
    scrollbar-color: var(--vp-modal-scroll-thumb) var(--vp-modal-scroll-track);
}

.modal .table-responsive::-webkit-scrollbar,
.modal .modal-body::-webkit-scrollbar,
.modal textarea.form-control::-webkit-scrollbar {
    width: var(--vp-modal-scroll-size);
    height: var(--vp-modal-scroll-size);
}

.modal .table-responsive::-webkit-scrollbar-track,
.modal .modal-body::-webkit-scrollbar-track,
.modal textarea.form-control::-webkit-scrollbar-track {
    background: var(--vp-modal-scroll-track);
    border-radius: 999px;
}

.modal .table-responsive::-webkit-scrollbar-thumb,
.modal .modal-body::-webkit-scrollbar-thumb,
.modal textarea.form-control::-webkit-scrollbar-thumb {
    background: var(--vp-modal-scroll-thumb);
    border-radius: 999px;
    border: 2px solid transparent;
    background-clip: padding-box;
}

.modal .table-responsive::-webkit-scrollbar-thumb:hover,
.modal .modal-body::-webkit-scrollbar-thumb:hover,
.modal textarea.form-control::-webkit-scrollbar-thumb:hover {
    background: var(--vp-modal-scroll-thumb-hover);
    background-clip: padding-box;
}

.modal .modal-dialog {
    animation: vp-modal-dialog-in calc(var(--vp-modal-enter-duration) + 60ms) cubic-bezier(.18, .84, .24, 1);
    transform-origin: center top;
}

.modal.fade:not(.show),
.modal.vp-modal-exit {
    animation: vp-modal-backdrop-out var(--vp-modal-exit-duration) var(--vp-modal-exit-ease) forwards;
}

.modal.fade:not(.show) .modal-dialog,
.modal.vp-modal-exit .modal-dialog {
    animation: vp-modal-dialog-out var(--vp-modal-exit-duration) var(--vp-modal-exit-ease) forwards;
}

.modal-backdrop.show {
    opacity: .42;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    animation: vp-modal-backdrop-in var(--vp-modal-enter-duration) var(--vp-modal-enter-ease);
}

@keyframes vp-modal-backdrop-in {
    from {
        opacity: 0;
        backdrop-filter: blur(0px);
        -webkit-backdrop-filter: blur(0px);
    }

    to {
        opacity: 1;
        backdrop-filter: blur(6px);
        -webkit-backdrop-filter: blur(6px);
    }
}

@keyframes vp-modal-backdrop-out {
    from {
        opacity: 1;
        backdrop-filter: blur(6px);
        -webkit-backdrop-filter: blur(6px);
    }

    to {
        opacity: 0;
        backdrop-filter: blur(0px);
        -webkit-backdrop-filter: blur(0px);
    }
}

@keyframes vp-modal-dialog-in {
    0% {
        opacity: 0;
        transform: translateY(18px) scale(.965);
        filter: saturate(.92);
    }

    60% {
        opacity: 1;
        transform: translateY(-2px) scale(1.002);
    }

    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
        filter: saturate(1);
    }
}

@keyframes vp-modal-dialog-out {
    from {
        opacity: 1;
        transform: translateY(0) scale(1);
        filter: saturate(1);
    }

    to {
        opacity: 0;
        transform: translateY(14px) scale(.98);
        filter: saturate(.92);
    }
}

.vp-modal-backdrop {
    animation: vp-modal-backdrop-in var(--vp-modal-enter-duration, 160ms) var(--vp-modal-enter-ease, cubic-bezier(.2, .8, .2, 1));
}

.vp-modal {
    animation: vp-modal-dialog-in calc(var(--vp-modal-enter-duration, 160ms) + 60ms) cubic-bezier(.18, .84, .24, 1);
    transform-origin: center top;
}

.vp-modal-backdrop.vp-modal-exit {
    animation: vp-modal-backdrop-out var(--vp-modal-exit-duration, 180ms) var(--vp-modal-exit-ease, cubic-bezier(.4, 0, .2, 1)) forwards;
}

.vp-modal.vp-modal-exit {
    animation: vp-modal-dialog-out var(--vp-modal-exit-duration, 180ms) var(--vp-modal-exit-ease, cubic-bezier(.4, 0, .2, 1)) forwards;
}

.map-container {
    height: calc(100dvh - var(--layout-header, 0px) - 200px);
}
.suggested-locations {
    height: calc(100dvh - var(--layout-header, 0px) - 70px)
}
.suggested-location {
    border: 1px solid black;
}
.res-card-implemented {
    height: calc(100dvh - 10rem);
}
.card-body{
    background: linear-gradient(180deg, rgba(255,255,255,0.86) 0%, rgba(248,250,252,0.8) 100%);
}

.card {
    border: 1px solid rgba(148, 163, 184, 0.28);
    border-radius: 1rem;
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.08);
    overflow: hidden;
}

.card-header {
    border-bottom: 1px solid rgba(148, 163, 184, 0.25);
}
/* Mobile / small screens */
@media (max-width: 767.98px) {
    .res-card-implemented {
        height: calc(100dvh - 14rem);
    }
    .suggested-locations {
        height: calc(100dvh - var(--layout-header, 0px) - var(--layout-footer, 0px) - 70px)
    }
    .map-container {
        height: calc(100dvh - var(--layout-header, 0px) - var(--layout-footer, 0px) - 240px);
    }
    .session-list {
        height: calc(100dvh - var(--layout-header, 0px) - var(--layout-footer, 0px) - 3.5rem)
    }

    .session-filters {
        gap: 0.3rem;
    }

    .modal {
        padding: 0;
        background: rgba(15, 23, 42, 0.44) !important;
        --vp-modal-control-h: 2.35rem;
    }

    .modal-dialog,
    .modal-dialog.modal-sm,
    .modal-dialog.modal-lg,
    .modal-dialog.modal-xl,
    .modal-dialog.modal-compact,
    .modal-dialog.modal-standard,
    .modal-dialog.modal-wide {
        width: 100dvw;
        max-width: 100dvw !important;
        height: 100dvh;
        min-height: 100dvh;
        margin: 0 !important;
    }

    .modal-content,
    .modal-content.free {
        width: 100dvw !important;
        height: 100dvh !important;
        max-height: 100dvh;
        border-radius: 0;
        border-left: 0;
        border-right: 0;
    }

    .modal-header {
        padding: .7rem .88rem;
    }

    .modal-body {
        padding: .74rem .88rem .94rem;
    }

    .modal-footer {
        padding: .7rem .88rem calc(.7rem + env(safe-area-inset-bottom));
    }

    .modal-footer .btn {
        flex: 1 1 0;
        min-height: 2.6rem !important;
    }

    .res-text-holder {
        grid-area: text;
        margin-top: 0px;
    }

    .res-text {
        height: calc((100dvh - 275px) / 2);
        overflow-y: auto
    }

    .debate-pair {
        display: grid;
        grid-template-columns: 1fr;
        grid-template-rows: calc((100dvh - 225px) / 2) calc((100dvh - 225px) / 2);
        grid-template-areas:
            "text"
            "chat";
    }

    .main-article {
        --layout-header: 60px;
        --layout-org: 60px;
        --layout-footer: 54px;
        --layout-footer-guest: 30px;
        padding: 0 !important;
    }


    .mobile-shrink {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        min-height: auto !important;
    }
    .mobile-compress {
        padding: 0 !important;
        padding-top: 0.3rem !important;
        padding-bottom: 0.3rem !important;
        margin-top: 0.3rem !important;
        font-size: 0.7rem !important;
        min-height: auto !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .modal.fade .modal-dialog,
    .modal.show .modal-dialog,
    .modal .btn,
    .modal .form-control,
    .modal .form-select,
    .modal-header .btn-close {
        transition: none !important;
        animation: none !important;
        transform: none !important;
    }
}

.font-culture-en-GB {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

.font-culture-fa-IR {
    font-family: 'Calibri';
}



@font-face {
    font-family: 'farsi';
    src: url('/_content/VotePool.UI/fonts/B Titr Bold.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'hamase';
    src: url('/_content/VotePool.UI/fonts/A.Hamase.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'arghavan';
    src: url('/_content/VotePool.UI/fonts/A.Arghavan.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'titraj';
    src: url('/_content/VotePool.UI/fonts/A.Titraj.2.Bold.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'yekan';
    src: url('/_content/VotePool.UI/fonts/B Yekan.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'lotus';
    src: url('/_content/VotePool.UI/fonts/B Lotus Bold.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'nazanin';
    src: url('/_content/VotePool.UI/fonts/B Nazanin Bold.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

.btn-square {
    width: 2rem; /* fixed width */
    height: 2rem; /* same as width */
    display: flex;
    padding: 0;
    border: 1px solid #dee2e6;
    align-items: center;
    justify-content: center;
    padding: 0; /* prevent text pushing out */
}

.btn-nav {
    color: rgb(140,150,200);
    margin-left: 0.1rem;
    margin-left: 0.1rem;
    margin-right: 0.1rem;
    text-decoration: none;
    padding: 0.25rem 0.5rem;
    border-radius: 0.375rem;
    text-decoration: none !important;
    transition: background-color 0.2s, color 0.2s;
}

    .btn-nav:hover {
        color: white;
    }

    .btn-nav.active {
        color: #fff !important;
        font-weight: bolder;
        filter: drop-shadow(1px 2px 2px white);
    }

.btn-group {
    direction: ltr !important;
}

.top-row .btn-group .btn:first-child,
.top-row a:first-child {
    margin-left: 0;
}
/* add controlled gap */
[dir="rtl"] .modal-header .btn-close {
    margin-left: 0;
    margin-right: auto;
}

[dir="rtl"] .modal-header {
}

.card, .modal-header, .modal-footer {
    filter: drop-shadow(1px 2px 2px rgba(200,200,200,0.2));
    background: linear-gradient( 135deg, rgba(180, 180, 251, .05) 0%, /* light gray */
    rgba(180, 180, 251, .05) 15%, /* still gray */
    rgba(180, 180, 241, 0) 50%, /* transparent line */
    rgba(211, 180, 241, 0) 70%, /* transparent line */
    rgba(180, 180, 251, .05) 90%, /* back to gray */
    rgba(180, 180, 251, .05) 100% /* gray again */
    );
}

.card {
    background-color: rgba(255,255,255,0.1) !important;
}

/* Enter animation */
@keyframes card-enter {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes card-slide-enter {
    from {
        opacity: 0;
        transform: translateX(70px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes card-slide-enter-slow {
    from {
        opacity: 0;
        transform: translateX(30px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Fade-only entering */
@keyframes card-fade-enter {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

/* Apply with a class */
.slide-enter {
    animation: card-slide-enter 0.4s ease forwards;
    transition: transform 0.4s ease, opacity 0.4s ease;
}

.slide-enter-slow {
    animation: card-slide-enter-slow 0.4s ease forwards;
    transition: transform 0.4s ease, opacity 0.4s ease;
}

.fade-enter, .page-shell {
    animation: card-fade-enter 0.4s ease forwards;
    transition: transform 0.4s ease, opacity 0.4s ease;
}

/* Apply these via JS or Blazor conditional class */

.entering {
    animation: card-enter 0.4s ease forwards;
    transition: transform 0.4s ease, opacity 0.4s ease;
}

[dir="rtl"] .navbar-toggler {
    left: 1rem !important;
    right: auto !important;
}

[dir="ltr"] .navbar-toggler {
    right: 1rem;
}

.drop-shadow {
    filter: drop-shadow(4px 4px 6px rgba(0,0,0,0.5));
}

.drop-shadow-small {
    filter: drop-shadow(1px 1px 1px rgba(0,0,0,0.3));
}
.diagonal-fade{

}
.res-body {
    overflow: hidden;
    background: linear-gradient( 135deg, rgba(180, 180, 251, .2) 0%, /* light gray */
    rgba(180, 180, 251, .2) 15%, /* still gray */
    rgba(180, 180, 241, .1) 50%, /* transparent line */
    rgba(211, 180, 241, .1) 70%, /* transparent line */
    rgba(180, 180, 251, .2) 90%, /* back to gray */
    rgba(180, 180, 251, .2) 100% /* gray again */
    );
}
/* 1) Block text selection app-wide */
html, body, #app {
    -webkit-user-select: none; /* Safari */
    -moz-user-select: none; /* Firefox */
    -ms-user-select: none; /* Old Edge/IE */
    user-select: none;
    -webkit-touch-callout: none; /* iOS long-press menu */
}

/* 2) Re-enable selection where it should be allowed */
input, textarea, pre, code, .selectable, [contenteditable="true"] {
    -webkit-user-select: text;
    -moz-user-select: text;
    -ms-user-select: text;
    user-select: text;
    -webkit-touch-callout: default;
}

/* Optional: prevent image drag “ghosts” */
img {
    -webkit-user-drag: none;
    user-drag: none;
}


.table {
    background-color: transparent !important;
}

    .table > :not(caption) > * > * {
        background-color: transparent !important;
    }

.navbar-brand {
    padding-right: 0 !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}


/* wrapper replacing inline styles */

:root {
    --bg: #ffffff;
    --fg: #111;
    --muted: #555;
    --accent: #0a7;
    --border: #e6e6e6;
    --card: #fafafa;
}

.page-shell {
    padding: 2rem;
    overflow-y: auto;
    max-height: 90vh;
}

/* header */
.site-header {
    border-bottom: 1px solid var(--border);
    padding-bottom: 1rem;
    margin-bottom: 2rem;
}

.site-title {
    margin: 0 0 .5rem;
    font-size: 1.9rem;
}

.small {
    color: var(--muted);
    font-size: .95rem;
}

/* nav (chips) */
.pill-nav {
    margin: 1rem 0 0;
}

.pill-link {
    margin: .25rem .5rem;
    display: inline-block;
    text-decoration: none;
    color: var(--accent);
    border: 1px solid var(--accent);
    padding: .25rem .6rem;
    border-radius: .6rem;
    font-size: .9rem;
}

/* sections as cards */
.card-section {
    background: rgba(255,255,255,.7);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 1rem 1.25rem;
    margin: 1rem 0;
}

/* headings */
.title-2 {
    margin: 0 0 .75rem;
    font-size: 1.35rem;
}

.title-3 {
    margin: 1rem 0 .5rem;
    font-size: 1.1rem;
}

/* lists */
.list {
    padding-inline-start: 1.25rem;
    margin: .5rem 0;
}

.list-item {
    margin: .25rem 0;
}

/* footer */
.site-footer {
    margin-top: 2rem;
    color: var(--muted);
    font-size: .9rem;
    text-align: center;
}

/* callouts & utilities (already class-based) */
.note {
    background: #fff3cd;
    border: 1px solid #ffe69c;
    color: #664d03;
    border-radius: 8px;
    padding: .75rem 1rem;
    margin: .75rem 0;
}

.danger {
    background: #fde2e1;
    border: 1px solid #f5c2c0;
    color: #7a2120;
    border-radius: 8px;
    padding: .75rem 1rem;
    margin: .75rem 0;
}

.ltr {
    direction: ltr;
    unicode-bidi: embed;
}

.btn-load-more {
    position: relative;
    border-radius: .8rem;
    border-width: 1px;
    padding: .55rem 1.15rem;
    font-weight: 600;
    letter-spacing: .01em;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    color: #334155;
    border-color: rgba(100, 116, 139, .38);
    box-shadow: 0 4px 12px rgba(15, 23, 42, .10);
    transition: transform .15s ease, box-shadow .2s ease, border-color .2s ease, color .2s ease;
}

.btn-load-more:hover:not(:disabled) {
    transform: translateY(-1px);
    border-color: rgba(59, 130, 246, .52);
    color: #1d4ed8;
    box-shadow: 0 8px 18px rgba(15, 23, 42, .14);
}

.btn-load-more:active:not(:disabled) {
    transform: translateY(0);
}

.btn-load-more:disabled {
    opacity: .68;
    box-shadow: none;
}

[dir="rtl"] .form-check-label {
    display: flex;
    flex-direction: row-reverse;
    justify-content: flex-end; /* better than 'right' */
    text-align: right;
}
