/*  Edusport on top of Tabler.

    Tabler exposes its palette as CSS custom properties, so the whole brand is applied here rather
    than by recompiling its SCSS — no node, no build step, and Tabler stays a drop-in file we can
    replace with a newer version without re-doing any of this.

    The colours are the same ones the MAUI app uses (Resources/Styles/Colors.xaml). One brand, two
    front ends, and nobody has to eyeball a hex code twice.  */

:root,
[data-bs-theme="light"] {
    --tblr-primary:        #034DA2;   /* Edusport blue */
    --tblr-primary-rgb:    3, 77, 162;
    --tblr-primary-fg:     #ffffff;
    --tblr-success:        #169F49;   /* Edusport green */
    --tblr-success-rgb:    22, 159, 73;
    --tblr-warning:        #E8A621;
    --tblr-warning-rgb:    232, 166, 33;
    --tblr-danger:         #D64545;
    --tblr-danger-rgb:     214, 69, 69;
    --tblr-link-color:     #034DA2;
    --tblr-body-bg:        #F4F7FB;
}

/*  The navbar is the deep blue from the app's page headers, so somebody moving between the phone
    and this screen is obviously in the same product.  */
.navbar-vertical.navbar-dark,
.navbar-vertical.navbar-dark .navbar-brand {
    background: #062E63;
}

.navbar-vertical.navbar-dark .nav-link { color: #C9D8EE; }
.navbar-vertical.navbar-dark .nav-link:hover,
.navbar-vertical.navbar-dark .nav-link.active { color: #ffffff; }

.navbar-brand-text {
    color: #ffffff;
    font-weight: 600;
    letter-spacing: -0.01em;
}

/*  Numbers that mean something. A count of unreachable travellers is not decoration — it is the
    number that decides whether the app works at all — so it gets its own size.  */
.stat-value { font-size: 1.75rem; font-weight: 600; line-height: 1.1; }
.stat-value.is-bad { color: var(--tblr-danger); }
.stat-value.is-good { color: var(--tblr-success); }

/*  Monospace wherever a value is meant to be compared character by character: service keys,
    passenger ids, SQL. Proportional fonts hide the difference between l and 1.  */
.mono, .table td.mono, code, pre { font-family: var(--tblr-font-monospace); }
.mono-sm { font-family: var(--tblr-font-monospace); font-size: 0.8125rem; }

.sql-editor {
    font-family: var(--tblr-font-monospace);
    font-size: 0.875rem;
    min-height: 9rem;
    tab-size: 4;
}

/*  Import previews get wide and long; let them scroll inside the card rather than stretching the
    page and pushing the Apply button off the bottom.  */
.preview-scroll { max-height: 26rem; overflow: auto; }

.table-sm td, .table-sm th { padding: 0.35rem 0.5rem; }

/*  A row the import will change, versus one it will leave alone. Colour is a hint, never the only
    signal — every row also carries a word in its Action column.  */
tr.will-change  { background: rgba(232, 166, 33, 0.10); }
tr.will-create  { background: rgba(22, 159, 73, 0.10); }
tr.will-reject  { background: rgba(214, 69, 69, 0.10); }
