:root {
    --avis-ink: #142033;
    --avis-muted: #526176;
    --avis-blue: #164be9;
    --avis-blue-hover: #123ec7;
    --avis-blue-soft: #eaf0ff;
    --avis-canvas: #f8fafd;
    --avis-line: #d9e1ec;
    --avis-sidebar-width: 208px;
    --avis-header-height: 60px;
    --avis-page-inset: 1.5rem;
    --bs-body-color: var(--avis-ink);
    --bs-body-font-size: .9rem;
    --bs-secondary-color: var(--avis-muted);
    --bs-tertiary-bg: #f5f7fb;
    --bs-border-color: var(--avis-line);
    --bs-border-radius: .5rem;
    --bs-primary: var(--avis-blue);
    --bs-primary-rgb: 22, 75, 233;
    --bs-primary-bg-subtle: var(--avis-blue-soft);
    --bs-primary-border-subtle: #c9d6fb;
    --bs-primary-text-emphasis: #123aaf;
    --bs-link-color: var(--avis-blue);
    --bs-link-color-rgb: 22, 75, 233;
    --bs-link-hover-color: var(--avis-blue-hover);
    --bs-link-hover-color-rgb: 18, 62, 199;
}

.avis-app, .avis-standalone { background: var(--avis-canvas); }
.btn-primary {
    --bs-btn-bg: var(--avis-blue);
    --bs-btn-border-color: var(--avis-blue);
    --bs-btn-hover-bg: var(--avis-blue-hover);
    --bs-btn-hover-border-color: var(--avis-blue-hover);
    --bs-btn-active-bg: var(--avis-blue-hover);
    --bs-btn-active-border-color: var(--avis-blue-hover);
    --bs-btn-disabled-bg: var(--avis-blue);
    --bs-btn-disabled-border-color: var(--avis-blue);
}
.btn-outline-primary {
    --bs-btn-color: var(--avis-blue);
    --bs-btn-border-color: #c4d2ef;
    --bs-btn-hover-color: #1039b9;
    --bs-btn-hover-bg: var(--avis-blue-soft);
    --bs-btn-hover-border-color: #a8baf0;
    --bs-btn-active-color: #1039b9;
    --bs-btn-active-bg: var(--avis-blue-soft);
    --bs-btn-active-border-color: #a8baf0;
}
.card {
    --bs-card-cap-bg: #fff;
    --bs-card-border-color: var(--avis-line);
    --bs-card-border-radius: .5rem;
    --bs-card-inner-border-radius: calc(.5rem - 1px);
    margin-bottom: 1rem;
}
.card-header .card-title { margin: 0; font-size: 1rem; font-weight: 650; }
.card-header:has(> .card-tools) { display: flex; align-items: center; justify-content: space-between; gap: .75rem; flex-wrap: wrap; }
.table td, .table th { vertical-align: middle; }
.form-control:focus, .form-select:focus { border-color: #91acf8; box-shadow: 0 0 0 .2rem rgba(22, 75, 233, .12); }
.form-check-input:checked { background-color: var(--avis-blue); border-color: var(--avis-blue); }
.nav-pills { --bs-nav-pills-link-active-bg: var(--avis-blue); }
.pagination {
    --bs-pagination-active-bg: var(--avis-blue);
    --bs-pagination-active-border-color: var(--avis-blue);
}
.min-w-0 { min-width: 0; }

.app-wrapper { min-height: 100vh; }
.app-header {
    position: sticky;
    top: 0;
    z-index: 1020;
    min-height: var(--avis-header-height);
    padding: 0;
    border-bottom: 1px solid var(--avis-line);
}
.app-header > .container-fluid { padding-inline: var(--avis-page-inset); }
.app-header .navbar-nav { align-items: center; }
.avis-nav-toggle { display: grid; place-items: center; width: 38px; height: 38px; padding: 0; font-size: 1.3rem; }
.avis-token-balance { display: inline-flex; align-items: center; gap: .5rem; color: var(--avis-muted); white-space: nowrap; }
.avis-token-balance strong { color: var(--avis-ink); font-variant-numeric: tabular-nums; }
.avis-token-balance.text-danger strong { color: inherit; }
.app-header .avis-account {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin-inline-start: .25rem;
    padding: 0 0 0 .85rem;
    border: 0;
    border-inline-start: 1px solid var(--avis-line);
    color: var(--avis-ink);
}
.avis-account-name { max-width: 12rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.avis-avatar { display: grid; place-items: center; flex: 0 0 32px; width: 32px; height: 32px; border-radius: 50%; background: var(--avis-blue-soft); color: #1845bf; font-weight: 700; }

.avis-app .app-sidebar {
    --bs-offcanvas-width: min(280px, 86vw);
    background: #fff !important;
    border-inline-end: 1px solid var(--avis-line);
}
.sidebar-brand {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: var(--avis-header-height);
    padding: .65rem 1.15rem;
    border-bottom: 1px solid var(--avis-line);
}
.brand-logo-app { display: block; width: 105px; height: 32px; object-fit: contain; object-position: left center; }
.app-sidebar .sidebar-wrapper { display: block; padding: 1rem .65rem; overflow-y: auto; }
.sidebar-menu { gap: .2rem; }
.sidebar-menu .nav-link {
    display: flex;
    align-items: center;
    gap: .65rem;
    min-height: 40px;
    padding: .45rem .65rem;
    border-radius: .4rem;
    color: #243248;
    font-weight: 550;
}
.sidebar-menu .nav-link:hover { color: var(--avis-blue); background: #f4f7ff; }
.sidebar-menu .nav-link.active { color: #123fcb; background: var(--avis-blue-soft); }
.sidebar-menu .nav-link p { display: flex; align-items: center; gap: .35rem; flex: 1; min-width: 0; margin: 0; }
.sidebar-menu .nav-icon { flex: 0 0 1rem; text-align: center; }
.sidebar-menu summary { cursor: pointer; list-style: none; }
.sidebar-menu summary::-webkit-details-marker { display: none; }
.sidebar-menu .nav-arrow { margin-inline-start: auto; font-size: .68rem; }
.sidebar-menu details[open] > summary .nav-arrow { transform: rotate(90deg); }
.sidebar-menu .nav-treeview { display: grid; gap: .15rem; padding-inline-start: .55rem; margin: .15rem 0 .3rem .55rem; border-inline-start: 1px solid var(--avis-line); }
.sidebar-menu .nav-treeview .nav-link { gap: .45rem; min-height: 35px; padding-inline: .45rem; font-size: .82rem; }
.sidebar-menu .nav-badge { margin-inline-start: auto; }

.app-main { min-width: 0; padding: 0 var(--avis-page-inset) 1.75rem; }
.app-content-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.35rem 0; }
.app-content-header h1 { margin: 0; min-width: 0; font-size: 1.75rem; font-weight: 750; overflow-wrap: anywhere; }
.app-content > .container-fluid { padding-inline: 0; }
.brand-positioning-report-card { scroll-margin-top: calc(var(--avis-header-height) + .85rem); }
.avis-new-analysis { flex-shrink: 0; padding: .55rem .9rem; font-size: .875rem; font-weight: 650; }
.raw-response { white-space: pre-wrap; word-break: break-word; max-height: 620px; overflow: auto; }
.question-row textarea { min-height: 82px; }
.model-chip { border: 1px solid var(--bs-border-color); border-radius: 8px; padding: .75rem; height: 100%; }
.grid-pagination-footer { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 1rem; width: 100%; }
.grid-pagination-summary { justify-self: start; min-width: 0; }
.grid-pagination-nav { justify-self: center; }
.grid-page-size { justify-self: end; display: flex; align-items: center; gap: .5rem; white-space: nowrap; }
.grid-page-size .form-select { width: 82px; }
.avis-standalone { display: grid; place-items: center; min-height: 100vh; padding: 1.25rem; }
.avis-standalone .login-box { width: min(100%, 390px); }
.avis-standalone .login-card-body { padding: 1.4rem; }
.avis-standalone .login-box-msg { margin: 0 0 1rem; text-align: center; color: var(--avis-muted); }

@media (min-width: 992px) {
    .app-wrapper {
        display: grid;
        grid-template-columns: var(--avis-sidebar-width) minmax(0, 1fr);
        grid-template-rows: auto 1fr;
        grid-template-areas: "sidebar header" "sidebar main";
    }
    .app-header { grid-area: header; }
    .avis-app .app-sidebar { grid-area: sidebar; position: sticky; top: 0; display: flex; flex-direction: column; height: 100vh; }
    .app-sidebar .sidebar-brand { display: flex; flex: 0 0 auto; }
    .app-sidebar .sidebar-wrapper { min-height: 0; }
    .app-main { grid-area: main; }
}
@media (max-width: 767.98px) {
    :root { --avis-page-inset: .85rem; }
    .grid-pagination-footer { grid-template-columns: minmax(0, 1fr); gap: .5rem; }
    .app-content-header h1 { font-size: 1.35rem; }
    .avis-account-name { max-width: 6rem; }
}
@media (max-width: 359.98px) {
    .avis-account-name { display: none; }
}

/* Compact index lists (Analyses, Interval Analysis) */
.item-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; margin-bottom: 1rem; }
.item-toolbar > .small:first-child { margin-right: auto; }
.item-toolbar > form.item-search:first-child { margin-left: 0; }
.item-toolbar .item-search { flex: 1 1 320px; max-width: 520px; }
.item-list { padding: 0; margin: 0; list-style: none; border: 1px solid var(--avis-line); border-radius: 8px; background: #fff; }
.item-row {
    display: grid;
    grid-template-columns: 40px minmax(0, 1.25fr) minmax(250px, 1.75fr) 112px auto;
    align-items: center;
    gap: .85rem;
    padding: .7rem 1rem;
}
.item-row + .item-row { border-top: 1px solid var(--avis-line); }
.item-row:hover { background: var(--avis-canvas); }
.item-row.is-muted { opacity: .65; }
.item-tile { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 8px; background: var(--avis-blue-soft); color: var(--avis-blue); font-size: 1.1rem; }
.item-main { min-width: 0; }
.item-name { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700; color: var(--avis-ink); text-decoration: none; }
a.item-name:hover { color: var(--avis-blue); }
.item-sub { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--avis-muted); font-size: .8rem; }
.item-facts { display: flex; flex-wrap: wrap; gap: .15rem 1.25rem; margin: 0; font-size: .82rem; }
.item-facts > div { display: flex; flex-direction: column; min-width: 0; }
.item-facts dt { color: var(--avis-muted); font-size: .72rem; font-weight: 600; }
.item-facts dd { margin: 0; font-weight: 650; font-variant-numeric: tabular-nums; white-space: nowrap; }
.item-status { justify-self: start; font-size: .74rem; border-radius: 6px; line-height: 1.3; padding: .28rem .5rem; }
.item-actions { display: flex; align-items: center; justify-content: flex-end; gap: .35rem; }
.item-progress { height: 6px; margin-top: .3rem; background: var(--avis-blue-soft); border-radius: 3px; }
.item-note { font-size: .76rem; color: #a02525; }
@media (max-width: 991.98px) {
    .item-row { grid-template-columns: 40px minmax(0, 1fr) auto; row-gap: .5rem; }
    .item-facts { grid-column: 2 / -1; grid-row: 2; }
    .item-status { grid-column: 3; grid-row: 1; }
    .item-actions { grid-column: 2 / -1; grid-row: 3; justify-content: flex-start; }
}

/* Decorative AVIS line motif behind the page, bottom edge only */
.avis-app::before {
    content: '';
    position: fixed;
    left: var(--avis-sidebar-width);
    right: 0;
    bottom: 0;
    height: min(300px, 36vh);
    z-index: -1;
    background: url('bg-lines.svg') right bottom / cover no-repeat;
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 40%);
    mask-image: linear-gradient(to right, transparent 0, #000 40%);
    pointer-events: none;
}
@media (max-width: 991.98px) { .avis-app::before { left: 0; height: min(220px, 28vh); } }
@media print { .avis-app::before { display: none; } }

/* Widget boxes: a clear shadow so cards, stat tiles and lists stand out from the page */
:root { --avis-shadow: 0 1px 2px rgba(16, 24, 40, .07), 0 8px 22px rgba(16, 24, 40, .10); }
.card, .dashboard-stat, .dashboard-panel, .item-list { box-shadow: var(--avis-shadow); }
.card .card, .modal .card, .dropdown-menu .card { box-shadow: none; }
