﻿/* === Four Suns on a Curved Arc (pure CSS background) === */
:root {
    /* Sky palette */
    --sky-top: #6fb7ff; /* zenith blue */
    --sky-mid: #cfeaff; /* high haze */
    --sky-bottom: #fff4cc; /* warm horizon */
    /* Sun colors */
    --sun-core: #fff3a1; /* bright disk */
    --sun-core-2: #ffd26a; /* warm edge */
    --sun-glow-1: rgba(255,210,110,.52);
    --sun-glow-2: rgba(255,230,160,.36);
    /* Positions (x/y) — forms a gentle left→right arc */
    --s1x: 12%;
    --s1y: 52%; /* left, near vertical middle */
    --s2x: 33%;
    --s2y: 40%; /* left-middle, slightly higher */
    --s3x: 68%;
    --s3y: 50%; /* mid-right, on vertical middle */
    --s4x: 88%;
    --s4y: 64%; /* right, slightly below middle */
    /* Sizes (responsive) */
    --core: 6vmin; /* sun disk radius */
    --glow: 16vmin; /* inner glow radius */
    --halo: 28vmin; /* outer glow radius */
}

/* 1) Put the sky+suns on the html element */
html {
    min-height: 100%;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    background-attachment: fixed; /* keeps it pinned */
    background-image: radial-gradient(150vmax 100vmax at 50% 110%, rgba(255,180,90,.12), transparent 90%), radial-gradient(120vmax 90vmax at 50% -10%, rgba(255,255,255,.18), transparent 90%), radial-gradient(circle 28vmin at 12% 64%, rgba(255,230,160,.1), transparent 90%), radial-gradient(circle 16vmin at 12% 64%, rgba(255,210,110,.15), transparent 90%), radial-gradient(circle 6vmin at 12% 64%, rgba(255, 243, 161, .2), rgba(255,210,106,0) 90%), radial-gradient(circle 28vmin at 33% 50%, rgba(255,230,160,.1), transparent 90%), radial-gradient(circle 16vmin at 33% 50%, rgba(255,210,110,.15), transparent 90%), radial-gradient(circle 6vmin at 33% 50%, rgba(255, 243, 161, .2), rgba(255,210,106,0) 90%), radial-gradient(circle 28vmin at 58% 40%, rgba(255,230,160,.1), transparent 90%), radial-gradient(circle 16vmin at 58% 40%, rgba(255,210,110,.15), transparent 90%), radial-gradient(circle 6vmin at 58% 40%, rgba(255, 243, 161, .2), rgba(255,210,106,0) 90%), radial-gradient(circle 28vmin at 78% 52%, rgba(255,230,160,.1), transparent 90%), radial-gradient(circle 16vmin at 78% 52%, rgba(255,210,110,.15), transparent 90%), radial-gradient(circle 6vmin at 78% 52%, rgba(255, 243, 161, .2), rgba(255,210,106,0) 90%), linear-gradient(to bottom, rgba(111, 183, 255, .35), rgba(207, 234, 255, .35) 45%, rgba(50,255,50,0.07) 100%);
}

/* 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 */
}

/* ===== 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;
}

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


.Organisation-item {
    flex-direction: row;
    align-items: center;
    gap: 1rem;
}

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

/* Viewport-sized page section (subtract a layout header if you have one—see note) */
.fixed-size-page {
    padding: 0;
    height: calc(100dvh - var(--layout-header, 0px) - var(--layout-footer, 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;
}

.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 */
.custom-modal {
    height: 80dvh; /* 80% of viewport height */
    max-height: 80dvh;
    min-height: 80dvh;
}

    .custom-modal .modal-content {
        height: 100%;
    }

    .custom-modal .modal-body {
        overflow-y: auto; /* scroll only the body */
    }

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

.debate-pair {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr;
    grid-template-areas :"chat text";
}

.res-text-holder {
    grid-area: text;
    max-height: auto;
    overflow-y: auto;
}
.session-filters {
    gap: 0.7rem;
}
.session-list {
    height: calc(100dvh - var(--layout-header, 0px) - 3rem)
}
/* Mobile / small screens */
@media (max-width: 767.98px) {
    .session-list {
        height: calc(100dvh - var(--layout-header, 0px) - var(--layout-footer, 0px) - 3.5rem)
    }
    .session-filters{
        gap:0.3rem;
    }
    .custom-modal {
        width: 100%;
        max-width: 100%;
        margin: 0; /* remove Bootstrap margins */
        height: 100dvh; /* full height */
        max-height: 100dvh;
    }

    .res-text-holder {
        grid-area: text;
        max-height: 35dvh;
        overflow-y: auto;
    }

    .debate-pair {
        display: grid;
        grid-template-columns: 1fr;
        grid-template-rows: 1fr 1fr;
        grid-template-areas: 
            "text" 
            "chat";
    }

    .main-article {
        --layout-header: 60px;
        --layout-footer: 50px;
        padding: 0 !important;
    }
    .res-text-holder {
        margin-top: 5px
    }

    .mobile-shrink {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        min-height: auto !important;
    }

    .custom-modal .modal-content {
        height: 100dvh;
        border-radius: 0; /* optional: remove rounded corners for mobile look */
    }

    .custom-modal .modal-body {
        overflow-y: auto;
    }
}

.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) scale(0.98);
    }

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

@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 */
.modal {
    width: 100dvw !important;
    height: 100dvh !important;
}

.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, body, .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;
}

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