/* Immediate UI overrides. Kept outside the Vite bundle so a fresh ZIP works without npm install. */
.brand-logo {
    display: block;
    width: auto;
    object-fit: contain;
}

.brand-logo-mobile { height: 2rem; max-width: 66px; }
.brand-logo-sidebar { width: clamp(74px, 31%, 90px); height: auto; max-height: 2.75rem; flex-shrink: 0; }
.brand-logo-guest { height: 3rem; max-width: 98px; }

.sidebar-brand-copy {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
    flex-direction: column;
    font-size: clamp(0.72rem, 0.85vw, 0.9rem);
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: 0.055em;
    text-transform: uppercase;
}

.sidebar-brand-copy .brand-word-primary { color: #0d506d; }
.sidebar-brand-copy .brand-word-accent { margin-top: 0.25rem; color: #e8750b; }
.sidebar-brand-copy-mobile { font-size: clamp(0.66rem, 2.5vw, 0.82rem); }
.guest-brand-copy { flex: 0 1 auto; font-size: clamp(0.82rem, 3.5vw, 1rem); }
.guest-brand-copy .brand-word-primary { color: #0d506d; }
.guest-brand-copy .brand-word-accent { color: #e8750b; }

.auth-shell {
    isolation: isolate;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.82) 0 13%, transparent 13% 42%, rgba(255, 255, 255, 0.34) 42% 56%, transparent 56%),
        linear-gradient(145deg, #ffffff 0%, #edfaff 48%, #fff7ed 100%);
}

.auth-shell::before,
.auth-shell::after {
    content: '';
    position: absolute;
    z-index: -1;
    width: 12rem;
    height: 12rem;
    pointer-events: none;
    opacity: 0.55;
    background-image: radial-gradient(circle, rgba(14, 116, 144, 0.32) 1.1px, transparent 1.2px);
    background-size: 10px 10px;
}

.auth-shell::before {
    top: 0;
    right: 0;
    -webkit-mask-image: linear-gradient(225deg, #000 12%, transparent 76%);
    mask-image: linear-gradient(225deg, #000 12%, transparent 76%);
}

.auth-shell::after {
    bottom: 0;
    left: 0;
    -webkit-mask-image: linear-gradient(45deg, #000 12%, transparent 76%);
    mask-image: linear-gradient(45deg, #000 12%, transparent 76%);
}

.auth-glow {
    z-index: -1;
    filter: blur(1px);
    opacity: 0.42;
}

.auth-glow-one { background: #8ddcf3; }
.auth-glow-two { background: #ffd7a8; }

.auth-card {
    border: 1px solid rgba(14, 165, 233, 0.22);
    background: rgba(255, 255, 255, 0.94) !important;
    box-shadow: 0 28px 70px rgba(13, 80, 109, 0.16);
    backdrop-filter: blur(12px);
}

.auth-card input:not([type='checkbox']) {
    border-color: #cbdce7;
    background: #ffffff;
}

.auth-card input:not([type='checkbox']):focus {
    border-color: #2aaede;
    box-shadow: 0 0 0 3px rgba(42, 174, 222, 0.16);
}

.auth-card .btn-primary {
    background: linear-gradient(90deg, #149fd2, #0b65b1);
    box-shadow: 0 10px 24px rgba(11, 101, 177, 0.2);
}

.auth-card .btn-primary:hover {
    background: linear-gradient(90deg, #0d8fbd, #084f8b);
}

.auth-footer { color: #64748b; }

.admin-sidebar {
    color: #334155;
    background:
        radial-gradient(circle at 12% 2%, rgba(42, 174, 222, 0.32), transparent 14rem),
        radial-gradient(circle at 105% 92%, rgba(255, 142, 26, 0.22), transparent 15rem),
        linear-gradient(180deg, #f7fdff 0%, #e5f7fc 54%, #fff7ed 100%);
    border-right: 1px solid rgba(14, 165, 233, 0.3);
}

.admin-sidebar .sidebar-brand {
    min-height: 5.5rem;
    border-bottom-color: rgba(14, 165, 233, 0.28);
}

.admin-nav-link {
    color: #475569;
}

.admin-nav-link:hover {
    color: #102f46;
    background: rgba(255, 255, 255, 0.78);
}

.admin-nav-link-active {
    color: #102f46;
    background: linear-gradient(90deg, rgba(42, 174, 222, 0.27), rgba(255, 142, 26, 0.16));
    box-shadow: 0 1px 3px rgba(14, 116, 144, 0.12), inset 0 0 0 1px rgba(14, 165, 233, 0.24);
}

.admin-sidebar .sidebar-footer {
    border-top-color: rgba(14, 165, 233, 0.28);
}

.admin-sidebar .sidebar-profile:hover,
.admin-sidebar .sidebar-logout:hover {
    background: rgba(255, 255, 255, 0.76);
}

.admin-sidebar .sidebar-avatar {
    background: linear-gradient(145deg, #2aaede, #0878a8);
    box-shadow: 0 8px 18px rgba(8, 120, 168, 0.2);
}

.compact-panel-form {
    padding-top: 0.25rem !important;
}

.admin-split-grid {
    align-items: start;
}

.right-scroll-panel {
    display: flex;
    min-height: 0;
    flex-direction: column;
}

.right-scroll-panel > .panel-header {
    flex: 0 0 auto;
}

.right-scroll-panel > .panel-scroll-body {
    min-height: 0;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.panel-scroll-body .data-table thead {
    position: sticky;
    top: 0;
    z-index: 5;
}

.user-update-row {
    grid-template-columns: 2.5rem minmax(0, 1fr);
    grid-template-areas:
        'avatar name'
        'role role'
        'save save';
    align-items: start;
}

.user-row-avatar {
    grid-area: avatar;
    margin-top: 1.25rem;
}

.user-row-name { grid-area: name; }
.user-row-role { grid-area: role; }
.user-row-save { grid-area: save; }

.user-dashboard-shell {
    position: relative;
    box-sizing: border-box;
    display: flex;
    width: 100%;
    height: 100vh;
    height: 100svh;
    min-height: 560px;
    isolation: isolate;
    overflow: hidden;
    background:
        radial-gradient(circle at 12% 14%, rgba(125, 211, 252, 0.2) 0, rgba(186, 230, 253, 0.08) 18%, transparent 39%),
        radial-gradient(circle at 88% 84%, rgba(14, 165, 233, 0.12) 0, rgba(186, 230, 253, 0.05) 20%, transparent 42%),
        linear-gradient(155deg, #f9fcff 0%, #edf7fc 54%, #e8f3f9 100%) !important;
}

.user-dashboard-shell::before,
.user-dashboard-shell::after {
    content: '';
    position: absolute;
    z-index: -1;
    width: clamp(12rem, 24vw, 28rem);
    height: clamp(12rem, 24vw, 28rem);
    pointer-events: none;
    border: 1px solid rgba(56, 189, 248, 0.13);
    border-radius: 9999px;
    background: rgba(224, 242, 254, 0.08);
    box-shadow:
        0 0 0 clamp(2rem, 4vw, 4.5rem) rgba(186, 230, 253, 0.055),
        0 0 0 clamp(4rem, 8vw, 9rem) rgba(224, 242, 254, 0.04);
}

.user-dashboard-shell::before {
    top: clamp(-10rem, -12vw, -5rem);
    right: clamp(-10rem, -9vw, -4rem);
}

.user-dashboard-shell::after {
    bottom: clamp(-12rem, -14vw, -6rem);
    left: clamp(-11rem, -10vw, -5rem);
    opacity: 0.72;
}

.user-dashboard-inner {
    position: relative;
    z-index: 1;
    display: flex;
    width: 100%;
    min-width: 0;
    min-height: 0;
    max-width: none !important;
}

.sales-chart-card-minimal {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: 0;
    flex: 1 1 auto;
    flex-direction: column;
    isolation: isolate;
    border-color: rgba(125, 211, 252, 0.48);
    background:
        radial-gradient(circle at 96% 7%, rgba(186, 230, 253, 0.22) 0, rgba(224, 242, 254, 0.08) 15%, transparent 31%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 252, 255, 0.96) 100%);
    box-shadow: 0 22px 55px rgba(14, 84, 120, 0.11);
}

.sales-chart-card-minimal::before {
    content: none;
    display: none;
}

.sales-chart-corner-accent {
    display: none;
}

.sales-chart-card-minimal::after {
    content: '';
    position: absolute;
    z-index: 0;
    inset: 0;
    pointer-events: none;
    border-radius: inherit;
    opacity: 1;
    background:
        radial-gradient(circle at 0 100%, rgba(125, 211, 252, 0.09) 0, transparent 19%),
        linear-gradient(90deg, rgba(14, 165, 233, 0.13), transparent 24%) top left / 100% 1px no-repeat;
}

.sales-chart-card-minimal .chart-scroll {
    position: relative;
    z-index: 1;
    display: flex;
    min-height: 0;
    flex: 1 1 auto;
}

.sales-chart-card-minimal .chart-frame {
    display: flex;
    width: 100%;
    min-height: 0;
    flex: 1 1 auto;
    flex-direction: column;
}

.sales-chart-card-minimal .chart-view {
    height: auto !important;
    min-height: 360px;
    flex: 1 1 auto;
}

.sales-chart-card-minimal .chart-y-axis {
    width: 7rem !important;
    width: clamp(6.25rem, 6vw, 7.5rem) !important;
    padding-right: 1.15rem !important;
    padding-right: clamp(1rem, 1.1vw, 1.35rem) !important;
    color: #334155 !important;
    font-size: 20px !important;
    font-size: clamp(1rem, 1.15vw, 1.35rem) !important;
    font-weight: 900 !important;
}

.sales-chart-card-minimal .chart-bar-column {
    min-width: clamp(3.25rem, 4.2vw, 5.5rem);
    max-width: clamp(4.25rem, 5.25vw, 6.75rem);
}

.sales-chart-card-minimal .chart-bar {
    right: 12px;
    border-radius: 5px 5px 0 0;
    transform: translateZ(0);
    box-shadow:
        inset 6px 0 8px rgba(255, 255, 255, 0.2),
        inset -8px 0 9px rgba(15, 23, 42, 0.18),
        10px 11px 16px rgba(15, 23, 42, 0.22);
}

.sales-chart-card-minimal .chart-bar::before {
    left: 4px;
    right: -8px;
    top: -9px;
    height: 10px;
    border-radius: 2px 4px 0 0;
    clip-path: none;
    transform: skewX(-40deg);
    transform-origin: left bottom;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.72), var(--bar-top) 48%, rgba(255, 255, 255, 0.12));
}

.sales-chart-card-minimal .chart-bar::after {
    right: -12px;
    top: 0;
    width: 12px;
    height: 100%;
    border-radius: 0;
    clip-path: none;
    transform: skewY(-40deg);
    transform-origin: left bottom;
    background: linear-gradient(180deg, var(--bar-side), rgba(15, 23, 42, 0.84));
}

.sales-chart-card-minimal .chart-value {
    font-size: clamp(0.72rem, 0.78vw, 0.95rem) !important;
    line-height: 1;
    text-shadow:
        0 1px 0 rgba(255, 255, 255, 0.95),
        0 0 5px rgba(255, 255, 255, 0.9);
}

.sales-chart-card-minimal .chart-category-label span {
    height: clamp(2.65rem, 4.2vh, 3.25rem);
    min-width: clamp(5.5rem, 6vw, 7rem);
    font-size: clamp(1.4rem, 1.55vw, 1.9rem);
}

.sales-chart-card-minimal .chart-label-space {
    height: clamp(3.75rem, 7vh, 4.75rem) !important;
}

.meeting-dashboard-shell {
    padding: clamp(0.7rem, 1.35vw, 1.65rem) !important;
}

.meeting-dashboard-inner {
    display: block;
    height: 100%;
}

.meeting-dashboard {
    display: grid;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    grid-template-rows: auto auto minmax(210px, 1fr) minmax(225px, 1.05fr);
    gap: clamp(0.45rem, 0.85vh, 0.85rem);
    color: #0b2f5b;
}

.meeting-dashboard-header {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
}

.meeting-dashboard-brand {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: clamp(0.7rem, 1.2vw, 1.35rem);
}

.meeting-dashboard-brand img {
    width: clamp(6rem, 8.2vw, 9.75rem);
    height: clamp(2.7rem, 4.2vw, 4.75rem);
    flex: 0 0 auto;
    object-fit: contain;
}

.meeting-dashboard-brand > span {
    width: 2px;
    height: clamp(2.3rem, 3.7vw, 4rem);
    flex: 0 0 auto;
    border-radius: 9999px;
    background: #0b65b1;
}

.meeting-dashboard-brand h1 {
    overflow: hidden;
    color: #0b2f5b;
    font-size: clamp(1.65rem, 3vw, 3.45rem);
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.035em;
    text-transform: uppercase;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.meeting-dashboard-period {
    display: flex;
    min-width: max-content;
    align-items: center;
    gap: clamp(0.55rem, 0.85vw, 0.9rem);
    border: 2px solid rgba(14, 165, 233, 0.42);
    border-radius: clamp(0.7rem, 1vw, 1rem);
    background: rgba(255, 255, 255, 0.88);
    padding: clamp(0.5rem, 0.7vw, 0.75rem) clamp(0.8rem, 1.2vw, 1.35rem);
    box-shadow: 0 7px 20px rgba(14, 84, 120, 0.06);
}

.meeting-dashboard-period svg {
    width: clamp(1.45rem, 2.1vw, 2.35rem);
    height: clamp(1.45rem, 2.1vw, 2.35rem);
    fill: none;
    stroke: #0b65b1;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.meeting-dashboard-period strong {
    color: #0b2f5b;
    font-size: clamp(0.9rem, 1.35vw, 1.55rem);
    font-weight: 900;
    white-space: nowrap;
}

.meeting-summary-grid {
    display: grid;
    min-width: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(0.55rem, 0.85vw, 0.95rem);
}

.meeting-summary-card {
    overflow: hidden;
    min-width: 0;
    border: 2px solid var(--meeting-card-border);
    border-radius: clamp(0.65rem, 0.85vw, 0.95rem);
    background: var(--meeting-card-background);
    box-shadow: 0 8px 22px rgba(15, 76, 115, 0.07);
}

.meeting-summary-card-blue {
    --meeting-card-accent: #1494f7;
    --meeting-card-accent-dark: #0b65b1;
    --meeting-card-border: rgba(14, 165, 233, 0.55);
    --meeting-card-background: linear-gradient(135deg, rgba(240, 249, 255, 0.98), rgba(255, 255, 255, 0.96));
    --meeting-cell-background: rgba(224, 242, 254, 0.72);
}

.meeting-summary-card-orange {
    --meeting-card-accent: #ff9b13;
    --meeting-card-accent-dark: #e97708;
    --meeting-card-border: rgba(245, 158, 11, 0.48);
    --meeting-card-background: linear-gradient(135deg, rgba(255, 251, 235, 0.98), rgba(255, 255, 255, 0.96));
    --meeting-cell-background: rgba(254, 243, 199, 0.67);
}

.meeting-summary-card-purple {
    --meeting-card-accent: #8b5cf6;
    --meeting-card-accent-dark: #6d3bd1;
    --meeting-card-border: rgba(139, 92, 246, 0.42);
    --meeting-card-background: linear-gradient(135deg, rgba(245, 243, 255, 0.98), rgba(255, 255, 255, 0.96));
    --meeting-cell-background: rgba(237, 233, 254, 0.7);
}

.meeting-summary-card-green {
    --meeting-card-accent: #31ce5d;
    --meeting-card-accent-dark: #13883b;
    --meeting-card-border: rgba(34, 197, 94, 0.48);
    --meeting-card-background: linear-gradient(135deg, rgba(240, 253, 244, 0.98), rgba(255, 255, 255, 0.96));
    --meeting-cell-background: rgba(220, 252, 231, 0.72);
}

.meeting-summary-heading {
    display: flex;
    align-items: center;
    gap: clamp(0.65rem, 0.9vw, 1rem);
    padding: clamp(0.45rem, 0.75vh, 0.7rem) clamp(0.7rem, 1vw, 1rem) clamp(0.3rem, 0.55vh, 0.5rem);
}

.meeting-summary-icon {
    display: flex;
    width: clamp(2.5rem, 3.8vw, 4.4rem);
    height: clamp(2.5rem, 3.8vw, 4.4rem);
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 9999px;
    color: #ffffff;
    background: linear-gradient(145deg, var(--meeting-card-accent), var(--meeting-card-accent-dark));
    padding: 0;
    box-shadow: 0 7px 16px rgba(14, 84, 120, 0.14);
}

.meeting-summary-icon[data-hidden-logout-trigger] {
    cursor: pointer;
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.meeting-summary-icon[data-hidden-logout-trigger]:hover,
.meeting-summary-icon[data-hidden-logout-trigger]:focus-visible {
    box-shadow: 0 0 0 3px rgba(14, 165, 233, 0.2), 0 9px 20px rgba(14, 84, 120, 0.22);
    outline: none;
    transform: translateY(-1px);
}

.meeting-summary-icon svg {
    width: 58%;
    height: 58%;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.meeting-summary-code {
    display: block;
    color: #0b2f5b;
    font-size: clamp(1.7rem, 2.7vw, 3.2rem);
    font-weight: 900;
    line-height: 1;
}

.meeting-summary-values {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.32rem;
    padding: 0 0.38rem 0.38rem;
}

.meeting-summary-values > div {
    min-width: 0;
    border-radius: clamp(0.45rem, 0.6vw, 0.65rem);
    background: var(--meeting-cell-background);
    padding: clamp(0.38rem, 0.7vh, 0.62rem) clamp(0.25rem, 0.45vw, 0.5rem);
    text-align: center;
}

.meeting-summary-values span,
.meeting-summary-values strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.meeting-summary-values span {
    color: #12639c;
    font-size: clamp(0.57rem, 0.72vw, 0.86rem);
    font-weight: 800;
}

.meeting-summary-values strong {
    margin-top: clamp(0.24rem, 0.4vh, 0.4rem);
    color: #0b5794;
    font-size: clamp(0.61rem, 0.84vw, 1rem);
    font-weight: 900;
    font-variant-numeric: tabular-nums;
}

.meeting-comparison-card {
    overflow: hidden;
    min-width: 0;
    border: 1px solid rgba(14, 165, 233, 0.28);
    border-radius: clamp(0.65rem, 0.8vw, 0.9rem);
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 8px 22px rgba(15, 76, 115, 0.06);
}

.meeting-comparison-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-variant-numeric: tabular-nums;
}

.meeting-comparison-table th,
.meeting-comparison-table td {
    overflow: hidden;
    border-right: 1px solid rgba(125, 211, 252, 0.36);
    padding: clamp(0.28rem, 0.62vh, 0.58rem) clamp(0.45rem, 0.8vw, 0.9rem);
    color: #0b4f88;
    font-size: clamp(0.68rem, 0.95vw, 1.08rem);
    font-weight: 800;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.meeting-comparison-table th:last-child,
.meeting-comparison-table td:last-child {
    border-right: 0;
}

.meeting-comparison-table thead th,
.meeting-comparison-table tfoot th,
.meeting-comparison-table tfoot td {
    color: #ffffff;
    background: linear-gradient(180deg, #0878bd, #0965a7);
}

.meeting-comparison-table thead th {
    padding-top: clamp(0.42rem, 0.75vh, 0.7rem);
    padding-bottom: clamp(0.42rem, 0.75vh, 0.7rem);
    font-size: clamp(0.72rem, 1.06vw, 1.22rem);
    font-weight: 900;
    text-align: center;
}

.meeting-comparison-table tbody tr + tr th,
.meeting-comparison-table tbody tr + tr td {
    border-top: 1px solid rgba(186, 230, 253, 0.5);
}

.meeting-comparison-table tbody th,
.meeting-comparison-table tfoot th {
    width: 18%;
    text-align: left;
}

.meeting-comparison-table tbody th {
    color: #0b2f5b;
    font-size: clamp(0.85rem, 1.22vw, 1.4rem);
    font-weight: 900;
}

.meeting-comparison-table tbody tr:nth-child(even) {
    background: rgba(240, 249, 255, 0.48);
}

.meeting-comparison-table tfoot th,
.meeting-comparison-table tfoot td {
    font-weight: 900;
}

.meeting-growth span {
    margin-right: 0.25rem;
}

.meeting-comparison-table tbody .meeting-growth-up { color: #16a34a; }
.meeting-comparison-table tbody .meeting-growth-down { color: #ef4444; }
.meeting-comparison-table tfoot .meeting-growth-up { color: #86efac; }
.meeting-comparison-table tfoot .meeting-growth-down { color: #fecaca; }

.meeting-chart-card {
    display: flex;
    overflow: hidden;
    min-width: 0;
    min-height: 0;
    flex-direction: column;
    border: 2px solid rgba(14, 165, 233, 0.36);
    border-radius: clamp(0.75rem, 0.9vw, 1rem);
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 10px 26px rgba(15, 76, 115, 0.07);
}

.meeting-chart-legend {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: clamp(1.4rem, 4vw, 4.5rem);
    padding: clamp(0.42rem, 0.72vh, 0.7rem) 1rem clamp(0.3rem, 0.5vh, 0.5rem);
    color: #145487;
    font-size: clamp(0.65rem, 0.9vw, 1rem);
    font-weight: 800;
}

.meeting-chart-legend span {
    display: inline-flex;
    align-items: center;
    gap: clamp(0.4rem, 0.6vw, 0.65rem);
    white-space: nowrap;
}

.meeting-chart-legend i {
    display: block;
    width: clamp(1.2rem, 1.8vw, 2rem);
    height: clamp(1.2rem, 1.8vw, 2rem);
    border-radius: 0.35rem;
    box-shadow: inset 2px 2px 4px rgba(255, 255, 255, 0.42), 2px 3px 5px rgba(15, 23, 42, 0.14);
}

.meeting-legend-blue { background: linear-gradient(135deg, #45b8ff, #0873df 65%, #064d9c); }
.meeting-legend-orange { background: linear-gradient(135deg, #ffd36d, #f49308 65%, #c66705); }
.meeting-legend-green { background: linear-gradient(135deg, #72e78b, #20a948 65%, #0d7434); }

.meeting-chart-body {
    display: grid;
    min-width: 0;
    min-height: 0;
    flex: 1 1 auto;
    grid-template-columns: clamp(3.2rem, 4.2vw, 5rem) minmax(0, 1fr);
    padding: clamp(0.7rem, 1.1vh, 1.05rem) clamp(0.55rem, 1.1vw, 1.15rem) clamp(0.35rem, 0.6vh, 0.65rem);
}

.meeting-chart-unit {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    color: #0b5794;
    text-align: center;
}

.meeting-chart-unit strong {
    font-size: clamp(1rem, 1.3vw, 1.5rem);
    font-weight: 900;
    line-height: 1;
}

.meeting-chart-unit small {
    margin-top: 0.15rem;
    font-size: clamp(0.55rem, 0.75vw, 0.82rem);
    font-weight: 800;
}

.meeting-chart-y-axis,
.meeting-chart-plot {
    display: flex;
    min-height: 0;
    flex-direction: column;
}

.meeting-chart-y-scale,
.meeting-chart-scale {
    position: relative;
    min-height: 0;
    flex: 1 1 auto;
}

.meeting-chart-axis-spacer,
.meeting-chart-labels {
    height: clamp(1.8rem, 3.5vh, 2.7rem);
    flex: 0 0 auto;
}

.meeting-chart-y-scale span {
    position: absolute;
    right: clamp(0.45rem, 0.75vw, 0.8rem);
    color: #0b5794;
    font-size: clamp(0.62rem, 0.84vw, 0.95rem);
    font-weight: 900;
    line-height: 1;
}

.meeting-chart-scale {
    border-left: 2px solid #1f6196;
    border-bottom: 2px solid #1f6196;
}

.meeting-chart-grid {
    position: absolute;
    inset: 0;
    display: grid;
    pointer-events: none;
}

.meeting-chart-grid > div {
    border-top: 1px solid rgba(40, 105, 153, 0.28);
}

.meeting-chart-groups {
    position: absolute;
    inset: 0;
    display: grid;
    min-width: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1.2rem, 4vw, 4.5rem);
    padding: 0 clamp(1rem, 3.6vw, 4rem);
}

.meeting-chart-group {
    display: flex;
    min-width: 0;
    height: 100%;
    align-items: flex-end;
    justify-content: center;
    gap: clamp(0.5rem, 1.05vw, 1.2rem);
}

.meeting-chart-bar-column {
    position: relative;
    width: clamp(2.5rem, 4.2vw, 5.1rem);
    height: 100%;
    flex: 0 1 clamp(2.5rem, 4.2vw, 5.1rem);
}

.meeting-chart-value {
    position: absolute;
    z-index: 4;
    bottom: calc(var(--bar-height) + var(--label-lift));
    left: calc(50% - 0.3rem);
    color: #0b2f5b;
    font-size: clamp(0.56rem, 0.8vw, 0.94rem);
    font-weight: 900;
    line-height: 1;
    text-shadow: 0 1px 0 #ffffff, 0 0 5px #ffffff;
    transform: translateX(-50%);
    white-space: nowrap;
}

.meeting-chart-value-blue { color: #0868c7; }
.meeting-chart-value-orange { color: #e87808; }
.meeting-chart-value-green { color: #16883b; }

.meeting-chart-bar {
    position: absolute;
    z-index: 2;
    right: 0.6rem;
    bottom: 0;
    left: 0;
    height: var(--bar-height);
    min-height: 2px;
    border-radius: 0.25rem 0.25rem 0 0;
    background: var(--meeting-bar-front);
    box-shadow:
        inset 5px 0 7px rgba(255, 255, 255, 0.18),
        inset -7px 0 8px rgba(15, 23, 42, 0.14),
        8px 9px 12px rgba(15, 23, 42, 0.18);
}

.meeting-chart-bar::before,
.meeting-chart-bar::after {
    content: '';
    position: absolute;
}

.meeting-chart-bar::before {
    z-index: 2;
    top: -0.48rem;
    right: -0.42rem;
    left: 0.32rem;
    height: 0.52rem;
    border-radius: 0.15rem 0.2rem 0 0;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.75), var(--meeting-bar-top) 48%, rgba(255, 255, 255, 0.12));
    transform: skewX(-40deg);
    transform-origin: left bottom;
}

.meeting-chart-bar::after {
    z-index: 1;
    top: 0;
    right: -0.6rem;
    width: 0.62rem;
    height: 100%;
    background: linear-gradient(180deg, var(--meeting-bar-side), rgba(15, 23, 42, 0.82));
    transform: skewY(-40deg);
    transform-origin: left bottom;
}

.meeting-chart-bar-blue {
    --meeting-bar-front: linear-gradient(90deg, #1494f7, #0873df 62%, #0759b8);
    --meeting-bar-top: #67c5ff;
    --meeting-bar-side: #064d9c;
}

.meeting-chart-bar-orange {
    --meeting-bar-front: linear-gradient(90deg, #ffad24, #f49308 62%, #df7607);
    --meeting-bar-top: #ffd36d;
    --meeting-bar-side: #c66705;
}

.meeting-chart-bar-green {
    --meeting-bar-front: linear-gradient(90deg, #32cf60, #20a948 62%, #16813b);
    --meeting-bar-top: #72e78b;
    --meeting-bar-side: #0d7434;
}

.meeting-chart-bar-empty {
    min-height: 0;
    box-shadow: none;
}

.meeting-chart-bar-empty::before,
.meeting-chart-bar-empty::after {
    display: none;
}

.meeting-chart-labels {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1.2rem, 4vw, 4.5rem);
    padding: 0 clamp(1rem, 3.6vw, 4rem);
}

.meeting-chart-channel {
    align-self: center;
    justify-self: center;
    display: flex;
    min-width: clamp(4.5rem, 7vw, 7.5rem);
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    padding: 0.25rem 1rem;
}

.meeting-chart-channel-blue { background: rgba(14, 165, 233, 0.12); }
.meeting-chart-channel-orange { background: rgba(245, 158, 11, 0.13); }
.meeting-chart-channel-green { background: rgba(34, 197, 94, 0.12); }

.meeting-chart-channel strong {
    align-self: center;
    color: #0b2f5b;
    font-size: clamp(1.15rem, 1.8vw, 2rem);
    font-weight: 900;
    line-height: 1;
    text-align: center;
}

.meeting-chart-channel-orange strong { color: #d86f05; }
.meeting-chart-channel-green strong { color: #16883b; }

.meeting-category-card {
    overflow: hidden;
    min-width: 0;
    min-height: 0;
    border: 2px solid rgba(14, 165, 233, 0.38);
    border-radius: clamp(0.7rem, 0.9vw, 1rem);
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 9px 24px rgba(15, 76, 115, 0.07);
}

.meeting-category-table {
    width: 100%;
    height: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-variant-numeric: tabular-nums;
}

.meeting-category-table th,
.meeting-category-table td {
    overflow: hidden;
    border-right: 1px solid rgba(125, 211, 252, 0.48);
    padding: clamp(0.14rem, 0.35vh, 0.32rem) clamp(0.55rem, 1vw, 1.1rem);
    color: #0b5794;
    font-size: clamp(0.63rem, 0.82vw, 0.96rem);
    font-weight: 800;
    line-height: 1.15;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.meeting-category-table th:last-child,
.meeting-category-table td:last-child {
    border-right: 0;
}

.meeting-category-table thead th {
    color: #ffffff;
    background: linear-gradient(180deg, #0878bd, #0965a7);
    font-size: clamp(0.68rem, 0.94vw, 1.08rem);
    font-weight: 900;
    text-align: center;
}

.meeting-category-table thead th:first-child,
.meeting-category-table tbody th {
    width: 34%;
}

.meeting-category-table tbody th {
    color: #0b4f88;
    font-weight: 800;
    text-align: left;
}

.meeting-category-table tbody tr + tr th,
.meeting-category-table tbody tr + tr td {
    border-top: 1px solid rgba(186, 230, 253, 0.56);
}

.meeting-category-table tbody tr:nth-child(even) {
    background: rgba(224, 242, 254, 0.38);
}

.meeting-category-total-row th,
.meeting-category-total-row td {
    color: #083f72;
    font-weight: 900;
}

.meeting-category-table tbody td:last-child {
    text-align: center;
}

.meeting-category-table .meeting-growth {
    font-weight: 900;
}

.meeting-category-table .meeting-growth-up {
    color: #15803d;
}

.meeting-category-table .meeting-growth-down {
    color: #dc2626;
}

.meeting-category-table .meeting-growth-neutral {
    color: #64748b;
}

.meeting-category-icon {
    display: inline-flex;
    width: clamp(1rem, 1.35vw, 1.45rem);
    height: clamp(1rem, 1.35vw, 1.45rem);
    margin-right: clamp(0.4rem, 0.7vw, 0.75rem);
    align-items: center;
    justify-content: center;
    color: #0b5794;
    vertical-align: middle;
}

.meeting-category-icon svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.meeting-category-empty {
    color: #64748b !important;
    text-align: center !important;
}

@media (max-height: 800px) and (min-width: 901px) {
    .meeting-dashboard-shell { padding: 0.55rem 0.8rem !important; }
    .meeting-dashboard { gap: 0.38rem; }
    .meeting-dashboard-brand img { width: 5.5rem; height: 2.5rem; }
    .meeting-dashboard-brand > span { height: 2.3rem; }
    .meeting-dashboard-brand h1 { font-size: 1.65rem; }
    .meeting-dashboard-period { padding: 0.38rem 0.65rem; }
    .meeting-dashboard-period svg { width: 1.35rem; height: 1.35rem; }
    .meeting-dashboard-period strong { font-size: 0.85rem; }
    .meeting-summary-heading { padding: 0.3rem 0.55rem 0.2rem; }
    .meeting-summary-icon { width: 2rem; height: 2rem; }
    .meeting-summary-code { font-size: 1.55rem; }
    .meeting-summary-values > div { padding: 0.25rem 0.18rem; }
    .meeting-summary-values span { font-size: 0.52rem; }
    .meeting-summary-values strong { margin-top: 0.15rem; font-size: 0.57rem; }
    .meeting-dashboard { grid-template-rows: auto auto minmax(180px, 0.9fr) minmax(205px, 1fr); }
    .meeting-category-table th,
    .meeting-category-table td { padding: 0.11rem 0.45rem; font-size: 0.6rem; }
    .meeting-category-table thead th { font-size: 0.64rem; }
    .meeting-chart-axis-spacer,
    .meeting-chart-labels { height: 1.55rem; }
    .meeting-chart-channel { min-width: 4.2rem; padding: 0.18rem 0.75rem; }
    .meeting-chart-channel strong { font-size: 1rem; }
}

@media (max-width: 900px) {
    .meeting-dashboard-shell {
        height: auto;
        min-height: 100vh;
        min-height: 100svh;
        overflow: auto;
    }

    .meeting-dashboard-inner,
    .meeting-dashboard {
        height: auto;
    }

    .meeting-dashboard {
        grid-template-rows: auto;
    }

    .meeting-dashboard-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .meeting-dashboard-period {
        min-width: 0;
    }

    .meeting-summary-grid {
        grid-template-columns: 1fr;
    }

    .meeting-comparison-card {
        overflow-x: auto;
    }

    .meeting-comparison-table {
        min-width: 720px;
    }

    .meeting-chart-card {
        min-width: 760px;
        min-height: 430px;
    }

    .meeting-category-card {
        overflow-x: auto;
    }

    .meeting-category-table {
        min-width: 720px;
    }
}

.flash-dismissible .flash-close {
    margin-right: -0.25rem;
    display: flex;
    width: 1.75rem;
    height: 1.75rem;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    border-radius: 0.5rem;
    opacity: 0.72;
}

.flash-dismissible .flash-close:hover {
    background: rgba(255, 255, 255, 0.72);
    opacity: 1;
}

.chart-plot {
    border-left: 1.5px solid #64748b;
}

.chart-grid-line {
    border-top: 1.5px dashed rgba(71, 85, 105, 0.68);
}

.chart-axis-line {
    border-top: 1.5px solid #64748b;
}

.chart-bar {
    right: 9px;
    min-height: 2px;
    overflow: visible;
    border-radius: 6px 6px 0 0;
    box-shadow:
        inset 1px 0 rgba(255, 255, 255, 0.3),
        inset -2px 0 rgba(0, 0, 0, 0.08),
        8px 8px 14px rgba(15, 23, 42, 0.14);
}

.chart-bar::before {
    content: '';
    position: absolute;
    z-index: 2;
    left: 0;
    right: -9px;
    top: -7px;
    height: 8px;
    background: var(--bar-top);
    clip-path: polygon(9px 0, 100% 0, calc(100% - 9px) 100%, 0 100%);
    border-radius: 4px 4px 1px 1px;
}

.chart-bar::after {
    content: '';
    position: absolute;
    z-index: 1;
    right: -9px;
    left: auto;
    top: -7px;
    width: 9px;
    height: calc(100% + 7px);
    background: var(--bar-side);
    clip-path: polygon(0 7px, 100% 0, 100% calc(100% - 7px), 0 100%);
    border-radius: 0;
}

.chart-bar-empty {
    min-height: 0;
    box-shadow: none;
}

.chart-bar-empty::before,
.chart-bar-empty::after {
    display: none;
}

.chart-bar-blue {
    --bar-top: #67c5ff;
    --bar-side: #064d9c;
    background: linear-gradient(90deg, #1494f7 0%, #0873df 62%, #0759b8 100%);
}

.chart-bar-orange {
    --bar-top: #ffd36d;
    --bar-side: #c66705;
    background: linear-gradient(90deg, #ffad24 0%, #f49308 62%, #df7607 100%);
}

.chart-bar-green {
    --bar-top: #72e78b;
    --bar-side: #0d7434;
    background: linear-gradient(90deg, #32cf60 0%, #20a948 62%, #16813b 100%);
}

.additional-cost-summary-grid {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 1rem;
}

.additional-cost-summary-card {
    overflow: hidden;
    border: 1px solid #e2e8f0;
    border-radius: 1rem;
    background: #ffffff;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}

.additional-cost-summary-title {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.9rem 1rem 0.75rem;
    border-bottom: 1px solid #f1f5f9;
}

.additional-cost-summary-title strong,
.additional-cost-summary-title small {
    display: block;
}

.additional-cost-summary-title strong {
    color: #334155;
    font-size: 0.875rem;
    font-weight: 900;
}

.additional-cost-summary-title small {
    margin-top: 0.1rem;
    color: #94a3b8;
    font-size: 0.625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.additional-cost-summary-values {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.additional-cost-summary-values > div {
    position: relative;
    min-width: 0;
    padding: 0.75rem 1rem 0.9rem;
}

.additional-cost-summary-values > div + div {
    border-left: 1px solid #f1f5f9;
}

.additional-cost-summary-values p {
    display: inline;
    margin-left: 0.25rem;
    color: #64748b;
    font-size: 0.625rem;
    font-weight: 900;
    text-transform: uppercase;
}

.additional-cost-summary-values strong,
.additional-cost-summary-values small {
    display: block;
}

.additional-cost-summary-values strong {
    margin-top: 0.35rem;
    overflow: hidden;
    color: #0f172a;
    font-size: 0.9rem;
    font-weight: 900;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.additional-cost-summary-values small {
    margin-top: 0.25rem;
    color: #94a3b8;
    font-size: 0.65rem;
    font-weight: 700;
}

.series-dot {
    display: inline-block;
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 9999px;
}

.series-dot-blue { background: #1683f3; }
.series-dot-yellow { background: #f59e0b; }

.amount-input-wrap {
    display: flex;
    overflow: hidden;
    width: 100%;
    border: 1px solid #e2e8f0;
    border-radius: 0.75rem;
    background: #ffffff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    transition: border-color 0.15s, box-shadow 0.15s;
}

.amount-input-wrap:focus-within {
    border-color: #0ea5e9;
    box-shadow: 0 0 0 1px #0ea5e9;
}

.amount-input-wrap > span {
    display: flex;
    align-items: center;
    border-right: 1px solid #e2e8f0;
    background: #f8fafc;
    padding: 0 0.9rem;
    color: #64748b;
    font-size: 0.8rem;
    font-weight: 900;
}

.amount-input-wrap > input {
    min-width: 0;
    flex: 1 1 auto;
    border: 0;
    padding: 0.62rem 0.75rem;
    color: #1e293b;
    font-size: 0.875rem;
    outline: 0;
    box-shadow: none;
}

.additional-cost-form-note {
    border-radius: 0.9rem;
    background: #f8fafc;
    padding: 0.8rem 0.9rem;
    color: #64748b;
    font-size: 0.7rem;
    line-height: 1.5;
}

.additional-cost-form-note strong { color: #334155; }
.additional-cost-warning { color: #b45309 !important; }
.additional-cost-history-table { min-width: 1120px; }

.additional-cost-form-mode,
.additional-cost-voided-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 9999px;
    padding: 0.3rem 0.65rem;
    font-size: 0.6rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.additional-cost-form-mode {
    background: #dbeafe;
    color: #1d4ed8;
}

.additional-cost-voided-badge {
    background: #fee2e2;
    color: #b91c1c;
}

.additional-cost-voided-row {
    background: #f8fafc;
    opacity: 0.72;
}

.additional-cost-voided-amount { text-decoration: line-through; }

.additional-cost-actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.45rem;
}

.additional-cost-edit-button,
.additional-cost-delete-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid;
    border-radius: 0.65rem;
    padding: 0.42rem 0.7rem;
    font-size: 0.7rem;
    font-weight: 900;
    line-height: 1;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.additional-cost-edit-button {
    border-color: #bfdbfe;
    background: #eff6ff;
    color: #1d4ed8;
}

.additional-cost-edit-button:hover { background: #dbeafe; }

.additional-cost-delete-button {
    border-color: #fecaca;
    background: #fff7f7;
    color: #dc2626;
}

.additional-cost-delete-button:hover { background: #fee2e2; }

.cost-series-badge {
    display: inline-flex;
    border-radius: 9999px;
    padding: 0.25rem 0.65rem;
    font-size: 0.6rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.cost-series-blue { background: #dbeafe; color: #1d4ed8; }
.cost-series-yellow { background: #fef3c7; color: #b45309; }

.additional-cost-description {
    display: -webkit-box;
    overflow: hidden;
    max-width: 19rem;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-height: 1.45;
}

.store-master-summary-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.store-master-summary-grid article {
    border: 1px solid #e2e8f0;
    border-radius: 1rem;
    background: #ffffff;
    padding: 0.8rem 1rem;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
}

.store-master-summary-grid span,
.store-master-summary-grid strong {
    display: block;
}

.store-master-summary-grid span {
    color: #94a3b8;
    font-size: 0.625rem;
    font-weight: 900;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.store-master-summary-grid strong {
    margin-top: 0.25rem;
    color: #0f172a;
    font-size: 1.2rem;
    font-weight: 900;
}

.store-filter-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) repeat(3, minmax(7rem, 0.45fr)) auto;
    gap: 0.6rem;
    border-bottom: 1px solid #f1f5f9;
    background: #f8fafc;
    padding: 0.75rem 1.25rem;
}

.store-filter-form .form-control,
.store-filter-form .btn-secondary {
    min-height: 2.35rem;
    padding-top: 0.45rem;
    padding-bottom: 0.45rem;
    font-size: 0.75rem;
}

.store-update-row {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
        'name'
        'channel'
        'status'
        'save';
    align-items: start;
}

.store-row-name { grid-area: name; }
.store-row-channel { grid-area: channel; }
.store-row-status { grid-area: status; }
.store-row-save { grid-area: save; }

@media (min-width: 768px) {
    .additional-cost-summary-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .store-master-summary-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (min-width: 640px) {
    .compact-panel-form { padding-top: 0.25rem !important; }

    .user-update-row {
        grid-template-columns: 2.5rem minmax(0, 1fr) minmax(8.75rem, 11.75rem) auto;
        grid-template-areas: 'avatar name role save';
    }

    .user-row-save {
        width: auto;
        min-width: 5.75rem;
        margin-top: 1.25rem;
    }

    .store-update-row {
        grid-template-columns: minmax(12rem, 1fr) minmax(7.5rem, 9rem) minmax(7rem, 8rem) auto;
        grid-template-areas: 'name channel status save';
    }

    .store-row-save {
        width: auto;
        min-width: 5.75rem;
        margin-top: 1.25rem;
    }
}

@media (max-width: 900px) {
    .store-filter-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .store-filter-form > :first-child {
        grid-column: 1 / -1;
    }
}

@media (min-width: 1280px) {
    .right-scroll-panel {
        max-height: calc(100svh - 12rem);
        overflow: hidden;
    }

    .right-scroll-panel > .panel-scroll-body {
        flex: 1 1 auto;
        overflow-y: auto;
    }

    .admin-viewport-body {
        overflow: hidden;
    }

    .admin-viewport-body .admin-app-root {
        height: 100svh;
        min-height: 0;
        overflow: hidden;
    }

    .admin-viewport-body .admin-content-column {
        display: flex;
        height: 100%;
        min-height: 0;
        flex-direction: column;
    }

    .admin-viewport-body .admin-viewport-header {
        flex: 0 0 auto;
    }

    .admin-viewport-body .admin-viewport-main {
        min-height: 0;
        flex: 1 1 auto;
        overflow: hidden;
    }

    .admin-fit-page {
        box-sizing: border-box;
        height: 100%;
        min-height: 0;
    }

    .admin-fit-inner {
        display: flex;
        height: 100%;
        min-height: 0;
        flex-direction: column;
    }

    .admin-fit-inner > .admin-split-grid {
        min-height: 0;
        flex: 1 1 auto;
    }

    .admin-fit-page .admin-form-panel {
        display: flex;
        max-height: 100%;
        min-height: 0;
        flex-direction: column;
    }

    .admin-fit-page .admin-form-panel > .panel-header {
        flex: 0 0 auto;
    }

    .admin-fit-page .admin-form-panel > .compact-panel-form {
        min-height: 0;
        overflow-y: auto;
    }

    .admin-fit-page .file-drop {
        min-height: 10.5rem;
    }

    .admin-fit-page .right-scroll-panel {
        max-height: 100%;
    }
}
