html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

a, .btn-link {
    color: #006bb7;
}

.btn-primary {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

.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;
}

.content {
    padding-top: 1.1rem;
}

.portal-session-loading {
    display: grid;
    min-height: 100vh;
    place-items: center;
    color: #52616f;
    font-weight: 600;
}

.portal-landing {
    align-items: center;
    background: linear-gradient(135deg, #eef5fb 0%, #f8fafc 52%, #e2edf7 100%);
    display: flex;
    justify-content: center;
    min-height: 100vh;
    padding: 1.5rem;
}

.portal-landing-card {
    background: #fff;
    border: 1px solid #dbe5ee;
    border-radius: 1rem;
    box-shadow: 0 1rem 2.5rem rgba(26, 62, 91, 0.14);
    max-width: 29rem;
    padding: 2.5rem;
    text-align: center;
    width: 100%;
}

.portal-logo {
    display: block;
    margin: 0 auto 1.5rem;
    max-height: 7rem;
    max-width: 100%;
    object-fit: contain;
}

.portal-kicker {
    color: #3573a5;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    margin-bottom: 0.5rem;
    text-transform: uppercase;
}

.portal-landing-card h1 {
    color: #183d5a;
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 1rem;
}

.portal-intro {
    color: #526879;
    margin-bottom: 1.75rem;
}

.portal-help-text {
    color: #6c7d89;
    font-size: 0.875rem;
    margin-top: 1rem;
}

.repair-hours {
    color: #526879;
    font-size: 0.875rem;
}

.repair-hours span {
    margin: 0 0.35rem;
}

.repair-work-performed {
    background: #f6f9fc;
    border-left: 3px solid #82a9ca;
    color: #314b60;
    padding: 0.65rem 0.75rem;
    white-space: pre-wrap;
}

.repair-result-work-items {
    color: #314b60;
    font-size: 0.9rem;
}

.repair-result-work-items span {
    color: #526879;
    font-weight: 600;
}

.repair-result-vehicle {
    color: #314b60;
    font-size: 0.9rem;
}

.repair-result-vehicle span {
    color: #526879;
    font-weight: 600;
}

.payroll-calendar-scroll {
    overflow-x: auto;
    padding-bottom: 0.5rem;
}

.payroll-calendar {
    display: grid;
    grid-template-columns: repeat(7, minmax(170px, 1fr));
    min-width: 1190px;
    border: 1px solid #d8e0e7;
    border-radius: 0.5rem;
    overflow: hidden;
}

.payroll-calendar-day {
    min-height: 235px;
    padding: 0.65rem;
    border-right: 1px solid #d8e0e7;
    border-bottom: 1px solid #d8e0e7;
    background: #fff;
}

.payroll-calendar-day:nth-child(7n) {
    border-right: 0;
}

.payroll-calendar-day-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.35rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid #e8edf1;
}

.payroll-calendar-entries {
    margin-top: 0.5rem;
}

.payroll-calendar-tech {
    margin-bottom: 0.5rem;
    font-size: 0.8rem;
}

.payroll-calendar-tech summary {
    display: flex;
    justify-content: space-between;
    cursor: pointer;
    color: #314b60;
}

.payroll-calendar-tech summary span {
    white-space: nowrap;
}

.payroll-calendar-entry {
    margin: 0.35rem 0 0 0.2rem;
    padding: 0.35rem 0 0.35rem 0.5rem;
    border-left: 2px solid #82a9ca;
    font-size: 0.75rem;
    overflow-wrap: anywhere;
}

.tech-period-days {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.35rem;
}

.request-status-card {
    border: 1px solid #d7e0ea;
    background: linear-gradient(135deg, #fff, #f4f8fc);
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.request-status-card:hover {
    transform: translateY(-1px);
    border-color: #86b7fe;
    box-shadow: 0 .25rem .7rem rgba(20, 55, 90, .12);
}

.tech-period-day {
    display: flex;
    min-height: 65px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 1px solid #d3dde6;
    border-radius: 0.45rem;
    background: #fff;
    color: #314b60;
    line-height: 1.1;
}

.tech-period-day:hover,
.tech-period-day.selected {
    border-color: #0d6efd;
    background: #eaf3ff;
}

.tech-period-day.selected {
    box-shadow: inset 0 0 0 1px #0d6efd;
}

.tech-period-day.today:not(.selected) {
    border-color: #82a9ca;
}

.tech-period-day-name {
    color: #63788a;
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
}

.tech-period-day-number {
    font-size: 1rem;
    font-weight: 700;
}

.tech-period-day-hours {
    margin-top: 0.15rem;
    color: #0d6efd;
    font-size: 0.72rem;
    font-weight: 700;
}

.user-permission-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
}

.user-permission-grid label {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.audit-json {
    max-height: 180px;
    overflow: auto;
    padding: 0.5rem;
    white-space: pre-wrap;
    word-break: break-word;
    background: #f6f9fc;
    font-size: 0.72rem;
}

.admin-dashboard-stat {
    border-left: 4px solid #82a9ca;
}

.tow-map { height: 420px; min-height: 0; max-height: 420px; border-radius: 0.5rem; overflow: hidden; position: relative; }
.tow-map canvas { max-height: 420px !important; }

.card .border-bottom.py-2 { position: relative; min-height: 58px; padding-right: 3.5rem !important; }
.card .border-bottom.py-2 .float-end { position: absolute; top: 0.45rem; right: 0; }
.towing-week-scroll { overflow-x: auto; }
.towing-week { display: grid; grid-template-columns: repeat(7, minmax(180px,1fr)); min-width: 1260px; border: 1px solid #d8e0e7; }
.towing-week-day { min-height: 360px; padding: .6rem; border-right: 1px solid #d8e0e7; }
.towing-calendar-job { width: 100%; margin: 0 0 .5rem; padding: .45rem; text-align: left; border: 0; border-left: 3px solid #0d6efd; background: #f6f9fc; font-size: .78rem; }
.towing-calendar-job.tow-status-scheduled { border-left-color: #6c757d; background: #f6f7f8; }
.towing-calendar-job.tow-status-pickup { border-left-color: #d39e00; background: #fff8df; }
.towing-calendar-job.tow-status-progress { border-left-color: #0d6efd; background: #edf5ff; }
.towing-calendar-job.tow-status-complete { border-left-color: #198754; background: #edf8f2; }
.towing-calendar-job.tow-status-cancelled { border-left-color: #dc3545; background: #fff0f1; }
.tow-dashboard-card { border-left: 4px solid #82a9ca; }
.tow-timeline { border-left: 3px solid #82a9ca; margin-left: .35rem; padding-left: 1rem; }
.tow-timeline-entry { position: relative; padding: 0 0 1rem; }
.tow-timeline-entry::before { background: #1b6ec2; border: 2px solid #fff; border-radius: 50%; content: ""; height: .75rem; left: -1.45rem; position: absolute; top: .3rem; width: .75rem; }
.tow-route-stop { border-left: 3px solid #82a9ca; margin-bottom: .65rem; padding-left: .75rem; }
.tow-route-stop span { color: #63788a; display: block; font-size: .75rem; font-weight: 700; text-transform: uppercase; }
.tow-driver-page { max-width: 760px; }
.overtime-legend { align-items: center; }
.overtime-key { border: 1px solid #cbd5df; border-radius: .2rem; display: inline-block; height: 1rem; margin-right: .3rem; vertical-align: -.15rem; width: 1.4rem; }
.overtime-key.payroll { background: #eaf3ff; border-color: #82a9ca; }
.overtime-key.scheduled { background: #eaf7ef; border-color: #75b78e; }
.overtime-key.context { background: #f6f7f8; }
.overtime-grid-title { background: #314b60; border-radius: .35rem .35rem 0 0; color: #fff; font-size: .75rem; font-weight: 700; padding: .32rem .5rem; }
.overtime-grid-scroll { border: 1px solid #cbd5df; border-top: 0; overflow-x: auto; }
.overtime-grid { display: grid; width: max-content; }
.overtime-grid-cell { align-items: center; background: #fff; border-bottom: 1px solid #dfe5ea; border-right: 1px solid #dfe5ea; display: flex; font-size: .7rem; justify-content: center; min-height: 28px; padding: .1rem; text-align: center; }
.overtime-grid-header { background: #edf1f4; font-weight: 700; }
.overtime-grid-label { background: #f8f9fa; font-size: .68rem; font-weight: 700; justify-content: flex-start; left: 0; padding-left: .4rem; position: sticky; text-align: left; z-index: 3; }
.overtime-grid-total { background: #f8f9fa; font-weight: 700; position: sticky; right: 0; z-index: 2; }
.overtime-grid-date { flex-direction: column; gap: 0; line-height: 1; min-height: 44px; }
.overtime-grid-date span { color: #526879; font-size: .52rem; font-weight: 700; min-height: .55rem; text-transform: uppercase; }
.overtime-grid-date strong { font-size: .78rem; }
.overtime-grid-date small { color: #6c757d; font-size: .5rem; }
.overtime-grid-marker.scheduled { background: #fff36a; }
.overtime-grid-marker.reset { background: #176b2c; }
.overtime-grid-marker.payroll-band.current { background: #2679c8; }
.overtime-grid-marker.payroll-band.prior-1 { background: #36965a; }
.overtime-grid-marker.payroll-band.prior-2 { background: #cf5252; }
.overtime-grid-marker.payroll-band.prior-3 { background: #8b63b8; }
.overtime-grid-marker.payroll-band.no-period { background: #dfe5ea; }
.overtime-grid-value { font-variant-numeric: tabular-nums; }
.overtime-grid-value.regular, .overtime-grid-total.regular { color: #146c43; }
.overtime-grid-value.overtime, .overtime-grid-total.overtime { color: #b02a37; font-weight: 700; }
.overtime-grid-cell.averaging-context { background: #f6f7f8; color: #687783; }
.overtime-grid-cell.payroll-period { box-shadow: inset 0 -3px 0 #4b8fd3; }
.overtime-period-legend { display: flex; flex-wrap: wrap; font-size: .7rem; gap: .35rem .8rem; }
.overtime-period-legend span { align-items: center; display: inline-flex; gap: .25rem; }
.overtime-payroll-swatch { border-radius: .15rem; display: inline-block; height: .65rem; width: 1.15rem; }
.overtime-payroll-swatch.current { background: #2679c8; }
.overtime-payroll-swatch.prior-1 { background: #36965a; }
.overtime-payroll-swatch.prior-2 { background: #cf5252; }
.overtime-payroll-swatch.prior-3 { background: #8b63b8; }
.overtime-segment-total { align-items: center; background: #f8f9fa; border: 1px solid #d8e0e7; border-left: 4px solid #176b2c; border-radius: .35rem; display: flex; flex-wrap: wrap; font-size: .75rem; gap: .35rem .8rem; padding: .45rem .6rem; }

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.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."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.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;
}

/* ICD Time Portal mobile tweaks */

@media (max-width: 768px) {
    body {
        font-size: 15px;
    }

    h1,
    .h1 {
        font-size: 1.45rem;
    }

    h2,
    .h2 {
        font-size: 1.25rem;
    }

    h3,
    .h3 {
        font-size: 1.15rem;
    }

    .container-fluid {
        padding-left: 0.65rem;
        padding-right: 0.65rem;
    }

    .portal-landing {
        padding: 1rem;
    }

    .portal-landing-card {
        padding: 2rem 1.5rem;
    }

    .card {
        border-radius: 0.75rem;
    }

    .card-header {
        font-size: 0.95rem;
        font-weight: 600;
    }

    .btn {
        min-height: 42px;
    }

    .btn-sm {
        min-height: 36px;
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }

    .form-control,
    .form-select {
        min-height: 42px;
        font-size: 16px; /* prevents iPhone zoom */
    }

    .form-control-sm,
    .form-select-sm {
        min-height: 38px;
        font-size: 16px;
    }

    .table {
        font-size: 0.86rem;
    }

        .table th,
        .table td {
            white-space: normal;
        }

    .badge {
        font-size: 0.8rem;
    }

    .mobile-full-width {
        width: 100%;
    }

    .mobile-stack {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    .mobile-stack > * {
        width: 100%;
    }

    .tech-period-days {
        gap: 0.25rem;
    }

    .tech-period-day {
        min-height: 55px;
        padding: 0.2rem;
    }
}

/* Stand-alone time kiosk */
.kiosk-shell { min-height: 100vh; background: #eef2f5; color: #1e2936; }
.kiosk-header { min-height: 74px; background: #102d6b; color: #fff; display: flex; align-items: center; gap: 14px; padding: 10px 22px; box-shadow: 0 2px 6px #0003; }
.kiosk-header img { max-height: 48px; max-width: 100px; object-fit: contain; }
.kiosk-title { font-size: 1.45rem; font-weight: 700; }
.kiosk-subtitle { font-size: .9rem; opacity: .82; }
.kiosk-content { max-width: 1800px; margin: 0 auto; padding: 18px; }
.kiosk-date-switcher { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; max-width: 640px; margin: 0 auto 18px; }
.kiosk-date-button { background: #fff; border: 2px solid #b8c4d1; color: #1e2936; border-radius: 10px; padding: 12px; font-size: 1.05rem; }
.kiosk-date-button strong, .kiosk-date-button span { display: block; }
.kiosk-date-button span { font-size: .85rem; color: #667085; margin-top: 2px; }
.kiosk-date-button.selected { border-color: #1769c2; background: #1769c2; color: #fff; box-shadow: 0 2px 5px #1769c255; }
.kiosk-date-button.selected span { color: #e8f2ff; }
.kiosk-tech-picker { max-width: 1000px; margin: 5vh auto; text-align: center; }
.kiosk-tech-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px; margin-top: 24px; }
.kiosk-tech-button, .kiosk-job-button, .kiosk-line-button, .kiosk-entry-button { border: 1px solid #cbd5e1; border-radius: 10px; background: #fff; text-align: left; padding: 13px; transition: background .15s, border-color .15s; }
.kiosk-tech-button { min-height: 82px; text-align: center; font-size: 1.05rem; font-weight: 600; }
.kiosk-tech-button:hover, .kiosk-job-button:hover, .kiosk-line-button:hover, .kiosk-entry-button:hover, .kiosk-job-button.selected, .kiosk-line-button.selected { border-color: #1769c2; background: #eaf3ff; }
.kiosk-workspace { display: grid; grid-template-columns: minmax(230px, 1fr) minmax(280px, 1.25fr) minmax(260px, 1fr) minmax(220px, .9fr); gap: 14px; }
.kiosk-panel { min-width: 0; background: #fff; border: 1px solid #d9e1e8; border-radius: 10px; padding: 13px; box-shadow: 0 1px 2px #0000000d; }
.kiosk-panel-heading { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 10px; }
.kiosk-panel h2 { margin: 0; font-size: 1.05rem; }
.kiosk-scroll-list { max-height: calc(100vh - 220px); min-height: 230px; overflow: auto; display: flex; flex-direction: column; gap: 8px; }
.kiosk-job-button, .kiosk-line-button, .kiosk-entry-button { width: 100%; }
.kiosk-job-button span, .kiosk-line-button span, .kiosk-entry-button span, .kiosk-job-button small, .kiosk-line-button small, .kiosk-entry-button small { display: block; }
.kiosk-job-button small, .kiosk-line-button small, .kiosk-entry-button small { color: #667085; margin-top: 3px; }
.kiosk-selected-job { padding: 8px; background: #f0f6fd; border-radius: 7px; font-size: .9rem; margin-bottom: 9px; }
.kiosk-empty { color: #667085; padding: 25px 8px; text-align: center; }
.kiosk-hours { font-size: 1.45rem; font-weight: 700; text-align: center; }
.kiosk-flags { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; font-size: .9rem; }
.kiosk-save-button { min-height: 52px; font-size: 1.05rem; }
.kiosk-pin-backdrop { position: fixed; inset: 0; z-index: 2000; background: #07152ccc; display: grid; place-items: center; padding: 18px; }
.kiosk-pin-dialog { width: min(390px, 100%); background: #fff; border-radius: 14px; padding: 25px; box-shadow: 0 16px 45px #0008; }
.kiosk-pin-dialog h2 { margin: 0; }
.kiosk-team-board { margin-top: 18px; background: #fff; border: 1px solid #d9e1e8; border-radius: 10px; padding: 14px; }
.kiosk-team-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.kiosk-tech-summary-card { border: 1px solid #d9e1e8; border-radius: 8px; padding: 10px; min-height: 108px; }
.kiosk-total-pill { background: #e5f2e9; color: #146c43; border-radius: 999px; padding: 2px 7px; white-space: nowrap; font-size: .85rem; font-weight: 700; }
.kiosk-summary-entry-list { margin-top: 8px; border-top: 1px solid #eef1f4; }
.kiosk-summary-entry { display: grid; grid-template-columns: 1fr auto; gap: 1px 8px; padding: 6px 0; font-size: .8rem; border-bottom: 1px solid #eef1f4; }
.kiosk-summary-entry small { grid-column: 1 / -1; color: #667085; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.portal-user-list { max-height: calc(100vh - 265px); overflow-y: auto; }
.portal-user-list .list-group-item { min-height: 58px; }
@media (max-width: 991px) { .portal-user-list { max-height: 310px; } }

/* Stand-alone Protractor history viewer */
.protractor-shell { min-height: 100vh; background: radial-gradient(circle at 50% -20%, #273752 0, #101722 45%, #070b10 100%); color: #e7edf5; }
.protractor-header { min-height: 64px; display: flex; align-items: center; gap: 12px; color: #fff; background: #080d14; border-bottom: 1px solid #2d3b4d; padding: 8px 20px; }
.protractor-header img { height: 50px; max-width: 110px; object-fit: contain; }
.protractor-header strong, .protractor-header small { display: block; }
.protractor-header small { opacity: .75; font-size: .78rem; }
.protractor-login-page { min-height: 100vh; display: grid; place-items: center; padding: 18px; }
.protractor-login-card { width: min(420px, 100%); text-align: center; background: #151e2a; border: 1px solid #34465d; border-radius: 12px; padding: 30px; box-shadow: 0 8px 26px #0008; }
.protractor-login-card img { max-height: 68px; max-width: 160px; object-fit: contain; margin-bottom: 12px; }
.protractor-login-card img.compass-login-image { max-height: none; max-width: 100%; width: 100%; border-radius: 8px; margin-bottom: 18px; }
.protractor-row { cursor: pointer; }
.protractor-row:hover { background: #25344a !important; }
.compass-workorder-card { border: 1px solid #3b526b !important; box-shadow: 0 10px 22px #0005, inset 0 1px #ffffff0d; overflow: hidden; }
.compass-workorder-card thead th { background: linear-gradient(#26384d, #172332); color: #dce9f7; white-space: nowrap; font-size: .78rem; text-transform: uppercase; letter-spacing: .035em; }
.compass-workorder-card .protractor-row { transition: transform .14s ease, box-shadow .14s ease; }
.compass-workorder-card .protractor-row:hover { transform: translateY(-1px); box-shadow: inset 4px 0 #5fa7e8; }
.status-pill { display: inline-block; padding: .32rem .56rem; border-radius: 999px; font-size: .72rem; font-weight: 700; white-space: nowrap; border: 1px solid #ffffff2b; box-shadow: inset 0 1px #ffffff26, 0 1px 3px #0005; }
.status-unassigned { background: #434b57; color: #f4f6f8; }.status-scheduled { background: #19558e; color: #e8f5ff; }.status-inspection { background: #755020; color: #fff0ca; }.status-inspected { background: #684f9e; color: #f0e9ff; }.status-authorized { background: #236d62; color: #d8fff5; }.status-completed { background: #26734c; color: #ddffe9; }.status-default { background: #3e4f63; color: #e7edf5; }
.workorder-money { font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }.labor-money { color: #8ecbff; }.parts-money { color: #ffcf78; }.total-money { color: #8de6b4; font-size: 1.02em; }
.protractor-shell .text-muted { color: #aebbc9 !important; }
.protractor-shell .card, .protractor-shell .list-group-item { background: #151e2a; color: #e7edf5; border-color: #34465d; }
.protractor-shell .card-header { background: #1d2938; color: #f2f6fb; border-color: #34465d; }
.protractor-shell .table { --bs-table-bg: #151e2a; --bs-table-color: #e7edf5; --bs-table-border-color: #34465d; --bs-table-hover-bg: #25344a; --bs-table-hover-color: #fff; }
.protractor-shell .form-control, .protractor-shell .form-select { background: #0e151f; color: #f2f6fb; border-color: #44566d; }
.protractor-shell .form-control::placeholder { color: #92a1b2; }
.protractor-shell .form-control:focus, .protractor-shell .form-select:focus { background: #111b27; color: #fff; border-color: #58a6ff; box-shadow: 0 0 0 .2rem #58a6ff33; }
.protractor-shell .btn-outline-secondary { color: #c7d2df; border-color: #5c6d80; }
.compass-home { max-width: 1100px; margin: 0 auto; padding: 24px 16px; }
.compass-hero { display: block; width: min(420px, 92%); margin: 0 auto 16px; border-radius: 10px; box-shadow: 0 8px 26px #0004; }
.compass-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(235px, 1fr)); gap: 14px; max-width: 900px; margin: 0 auto; }
.compass-link-card { position: relative; overflow: hidden; min-height: 126px; border: 1px solid #54728f; border-radius: 12px; padding: 18px 45px 18px 20px; background: linear-gradient(145deg, #284b70 0%, #162b44 48%, #0c1725 100%); color: #fff; text-align: left; box-shadow: 0 8px 0 #07101a, 0 13px 24px #0009, inset 0 1px #ffffff36; transform: translateY(0); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, filter .18s ease; }
.compass-link-card::before { content: ""; position: absolute; inset: 0; background: linear-gradient(120deg, transparent 20%, #8ecbff2b 48%, transparent 72%); transform: translateX(-125%); transition: transform .55s ease; pointer-events: none; }
.compass-link-card::after { content: "›"; position: absolute; right: 18px; bottom: 12px; color: #84c6ff; font-size: 2rem; line-height: 1; text-shadow: 0 0 12px #57aaff; transition: transform .18s ease, color .18s ease; }
.compass-link-card:hover { border-color: #8fc8f7; filter: brightness(1.12); transform: translateY(-5px); box-shadow: 0 12px 0 #07101a, 0 21px 32px #000a, inset 0 1px #ffffff54, 0 0 20px #3d9ae74d; }
.compass-link-card:hover::before { transform: translateX(125%); }.compass-link-card:hover::after { color: #d7efff; transform: translateX(5px); }.compass-link-card:active { transform: translateY(5px); box-shadow: 0 3px 0 #07101a, 0 7px 14px #0009, inset 0 1px #ffffff2b; }
.compass-link-card strong, .compass-link-card span { display: block; }
.compass-link-card svg { width: 31px; height: 31px; margin-bottom: 7px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 0 6px currentColor); }
.compass-link-card strong { font-size: 1.2rem; margin-bottom: 4px; }
.compass-link-card span { color: #d7e8ff; }
.compass-link-card.card-workorders { background: linear-gradient(145deg,#255f8d,#15334f 55%,#0b1b2c); color:#a5ddff; border-color:#4d98c5; }
.compass-link-card.card-units { background: linear-gradient(145deg,#315878,#203c54 55%,#102331); color:#bce5ff; border-color:#6fa7c9; }
.compass-link-card.card-inspections { background: linear-gradient(145deg,#2e765d,#164333 55%,#0d291f); color:#aeffd3; border-color:#55b987; }
.compass-link-card.card-purchase-orders { background: linear-gradient(145deg,#75533a,#452d20 55%,#271812); color:#ffd0a2; border-color:#bd815b; }
.compass-link-card.card-supplier-invoices { background: linear-gradient(145deg,#77466a,#48263e 55%,#281522); color:#ffc5ee; border-color:#c879b1; }
.compass-link-card.card-inventory { background: linear-gradient(145deg,#526c30,#2f431d 55%,#1a2810); color:#d8ff9e; border-color:#98ba59; }
.compass-link-card.card-losers { background: linear-gradient(145deg,#803b3b,#4b2025 55%,#2a1217); color:#ffb2ae; border-color:#cb6865; }
.compass-link-card.card-counter-sales { background: linear-gradient(145deg,#4a5184,#292d56 55%,#171a35); color:#c7ccff; border-color:#797fc8; }
.compass-link-card.card-invoices { background: linear-gradient(145deg,#725f2c,#453817 55%,#28200c); color:#ffe68c; border-color:#c2a64f; }
.compass-global-header { position: sticky; top: 0; z-index: 20; box-shadow: 0 5px 18px #0008; }
.compass-shop-picker { display:flex; align-items:center; gap:.4rem; color:#b8c8d9; font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; }
.compass-shop-picker .form-select { min-width:150px; background:#142337; color:#fff; border-color:#45627f; }
.compass-header-nav { display:flex; align-items:center; justify-content:center; gap:.35rem; flex:1; }
.compass-header-nav .btn { white-space:nowrap; }
.compass-back-button { box-shadow:0 0 13px #9ed0ff45; font-weight:700; }
.protractor-shell > .protractor-header:not(.compass-global-header) { display:none; }
.protractor-content > .d-flex > select.form-select,
.protractor-content > .d-flex > div:has(> label.form-label.small) { display:none; }
@media (max-width: 980px) { .compass-header-nav .btn:not(.compass-back-button) { display:none; } }
@media (max-width: 700px) { .compass-global-header { gap:8px; } .compass-global-header img { max-width:58px; } .compass-global-header > div:nth-child(2) { display:none; } .compass-shop-picker label { display:none; } .compass-shop-picker .form-select { min-width:126px; } }
.protractor-modal-backdrop { position: fixed; inset: 0; z-index: 2200; background: #0b1529b8; display: grid; place-items: center; padding: 16px; }
.protractor-modal { width: min(610px, 100%); max-height: 90vh; overflow-y: auto; background: #151e2a; color: #e7edf5; border: 1px solid #465c74; border-radius: 12px; padding: 24px; box-shadow: 0 14px 42px #0008; }
.compass-unit-card { min-height: 142px; text-align: left; color: #e7edf5; background: #151e2a; border: 1px solid #3a5069; border-radius: 10px; padding: 15px; }
.compass-unit-card:hover { background: #233750; border-color: #5f9dd8; }
.unit-detail-hero { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: start; gap: 12px; padding: 18px; border-left: 5px solid #5f9dd8; background: #152235; margin-bottom: 16px; border-radius: 8px; }
.workorder-total-card { min-height: 82px; padding: 14px; border-radius: 9px; display: flex; flex-direction: column; justify-content: center; }
.workorder-total-card span { font-size: .82rem; text-transform: uppercase; letter-spacing: .04em; opacity: .85; }.workorder-total-card strong { font-size: 1.25rem; }.workorder-total-card.labor { background: #12365c; border: 1px solid #387fc1; }.workorder-total-card.parts { background: #593912; border: 1px solid #b87923; }.workorder-total-card.tax { background: #3a315f; border: 1px solid #846fc4; }.workorder-total-card.total { background: #174933; border: 1px solid #4ba878; }
.workorder-notes { background: #3d2d12; border: 1px solid #a97924; border-left-width: 5px; border-radius: 8px; padding: 15px; }.workorder-notes h2 { color: #ffd889; }
.service-package-card { border-left-width: 9px !important; }.service-package-card.package-active { border-left-color: #4b98de !important; }.service-package-card.package-completed { border-left-color: #43a879 !important; }.service-package-card.package-deferred { border-left-color: #d59b36 !important; }.package-line.line-labor { border-left: 8px solid #3f8fda !important; background: linear-gradient(90deg, #123458 0%, #151e2a 16%) !important; }.package-line.line-parts { border-left: 8px solid #d79131 !important; background: linear-gradient(90deg, #513311 0%, #151e2a 16%) !important; }
@media (max-width: 700px) { .protractor-header { padding: 8px 12px; } .protractor-content { padding-left: .7rem; padding-right: .7rem; } }

@media (max-width: 1250px) { .kiosk-workspace { grid-template-columns: 1fr 1fr; } .kiosk-scroll-list { max-height: 360px; } }
@media (max-width: 700px) { .kiosk-header { padding: 9px 12px; } .kiosk-header img { max-width: 68px; } .kiosk-title { font-size: 1.1rem; } .kiosk-header .ms-auto strong { display: none; } .kiosk-content { padding: 10px; } .kiosk-workspace { grid-template-columns: 1fr; gap: 10px; } .kiosk-scroll-list { min-height: 160px; max-height: 260px; } .kiosk-tech-grid { grid-template-columns: 1fr 1fr; gap: 9px; } .kiosk-flags { grid-template-columns: 1fr; } }

.inspection-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(310px,1fr)); gap:1rem; }
.inspection-card { background:linear-gradient(145deg,#172334,#0e1723); border:1px solid #30435d; border-left:8px solid #41a5f5; border-radius:11px; padding:1rem; box-shadow:0 7px 17px rgba(0,0,0,.27); overflow:hidden; }
.inspection-card-head { display:flex; justify-content:space-between; gap:.6rem; align-items:center; }.inspection-order-link { color:#8ecbff; font-weight:800; text-decoration:none; }.inspection-order-link:hover { color:#fff; text-decoration:underline; }
.inspection-result { border:1px solid #506177; border-radius:999px; padding:.15rem .55rem; font-size:.72rem; white-space:nowrap; color:#cbd5e1; }.inspection-result-good { color:#b9f6c9; border-color:#28834a; background:#12351f; }.inspection-result-alert { color:#ffc3c3; border-color:#b64a4a; background:#3b171b; }
.inspection-vehicle { display:flex; flex-wrap:wrap; gap:.35rem .7rem; margin:.8rem 0 .55rem; color:#c6d4e5; font-size:.88rem; }.inspection-vehicle strong { color:#fff; }.inspection-package { color:#ffd28b; font-size:.82rem; border-left:3px solid #f5a524; padding-left:.45rem; margin:.5rem 0; }
.inspection-card h2 { font-size:1.03rem; margin:.7rem 0 .5rem; color:#f7fbff; }.inspection-card p { margin:.35rem 0; color:#c7d3e0; font-size:.9rem; white-space:pre-wrap; }.inspection-shop-note { border-top:1px solid #34475e; padding-top:.5rem; color:#ffe0a9 !important; }
.inspection-photos { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.75rem; }.inspection-photos a { display:block; width:90px; height:68px; border:1px solid #4e6886; border-radius:6px; overflow:hidden; background:#08111c; }.inspection-photos img { width:100%; height:100%; object-fit:cover; transition:transform .18s ease; }.inspection-photos a:hover img { transform:scale(1.08); }
.inspection-document-card { grid-column:span 1; }.inspection-document-count { border:1px solid #4a6685; color:#a9d6ff; background:#142941; border-radius:999px; padding:.16rem .55rem; font-size:.72rem; white-space:nowrap; }.inspection-package-group { margin-top:.7rem; }.inspection-check { border-top:1px solid #31455e; padding:.65rem 0; }.inspection-check-main { display:flex; align-items:start; justify-content:space-between; gap:.6rem; color:#f5f9ff; font-size:.9rem; }.inspection-check-note { margin-top:.35rem; color:#c7d3e0; font-size:.84rem; white-space:pre-wrap; }.inspection-result-service { color:#fff1a5; border-color:#aa8c30; background:#3d3310; }.inspection-result-na { color:#d4d8de; border-color:#666f7b; background:#2a3038; }
@media (max-width:575.98px) { .inspection-grid { grid-template-columns:1fr; } .inspection-card { padding:.8rem; border-left-width:6px; } }

/* Compact CompASS density while keeping the table and touch targets readable. */
.compass-links { gap:12px; }.compass-link-card { min-height:96px; padding:16px; }.compass-link-card strong { font-size:1.08rem; }.compass-link-card span { font-size:.88rem; }
.compass-unit-card { min-height:116px; padding:11px; }.compass-workorder-card .table > :not(caption) > * > * { padding:.48rem .58rem; }.compass-workorder-card thead th { font-size:.72rem; }.status-pill { padding:.23rem .45rem; font-size:.66rem; }
.inspection-grid { gap:.7rem; }.inspection-card { padding:.75rem; border-left-width:6px; }.inspection-vehicle { margin:.55rem 0 .4rem; font-size:.82rem; }.inspection-card h2 { font-size:.96rem; margin:.55rem 0 .35rem; }.inspection-card p,.inspection-check-note { font-size:.82rem; }.inspection-check { padding:.48rem 0; }.inspection-photos { margin-top:.5rem; }.inspection-photos a { width:76px; height:57px; }
.unit-history-bubbles { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.42rem; }.unit-history-bubble { border-radius:999px; padding:.35rem .6rem; font-size:.76rem; font-weight:700; white-space:nowrap; }.unit-history-bubble.workorders { background:#1f668e; color:#e5f5ff; }.unit-history-bubble.inspections { background:#67511f; color:#fff1c4; }.unit-history-bubble.invoices { background:#286443; color:#e0ffec; }.unit-link { color:#8ecbff; font-weight:700; text-decoration:none; }.unit-link:hover { color:#fff; text-decoration:underline; }
.unit-card-history { display:flex; flex-wrap:wrap; gap:.35rem; margin-top:.55rem; }.unit-card-history .unit-history-bubble { padding:.23rem .45rem; font-size:.68rem; }
.unit-card-history a.unit-history-bubble { text-decoration:none; }.unit-card-history a.unit-history-bubble:hover { filter:brightness(1.2); transform:translateY(-1px); }
.unit-card-history button.unit-history-bubble { border:0; cursor:pointer; }.unit-card-history button.unit-history-bubble:hover { filter:brightness(1.2); transform:translateY(-1px); }
.inspection-document-link { display:block; color:inherit; text-decoration:none; cursor:pointer; }.inspection-document-link:hover { border-color:#78bfff; background:linear-gradient(145deg,#1d3149,#101c2a); }.inspection-open-hint { color:#8ecbff; font-size:.78rem; font-weight:700; margin-top:.65rem; }.inspection-detail-line { padding:.75rem 1rem !important; }
.loser-stat { min-height:105px; padding:13px; border-radius:10px; display:flex; flex-direction:column; justify-content:center; border:1px solid #456078; box-shadow:0 6px 15px #0005; }.loser-stat span { font-size:.76rem; text-transform:uppercase; letter-spacing:.045em; opacity:.85; }.loser-stat strong { font-size:1.35rem; line-height:1.2; margin:.2rem 0; }.loser-stat small { color:#d4e0eb; }.loser-stat.workorders { background:linear-gradient(135deg,#173d61,#122233); }.loser-stat.invoices { background:linear-gradient(135deg,#18553d,#11271e); }.loser-stat.labor { background:linear-gradient(135deg,#33486c,#182237); }.loser-stat.parts { background:linear-gradient(135deg,#6a4318,#2d1d0d); }.compass-workorder-card .card-header span { float:right; font-size:.75rem; opacity:.72; font-weight:400; }
.loser-filter-bar { display:flex; align-items:end; flex-wrap:wrap; gap:.7rem; padding:.65rem .8rem; background:#121e2d; border:1px solid #344b65; border-radius:9px; }.loser-filter-bar label { display:flex; align-items:center; gap:.5rem; font-size:.84rem; }.loser-filter-bar input { width:125px; }.loser-filter-bar span { font-size:.78rem; color:#aebbc9; }
.company-period { display:flex; align-items:center; gap:.55rem; padding:.6rem .85rem; border-bottom:1px solid #34465d; }.company-period input { width:145px; }.company-period strong { color:#cde8ff; font-size:.9rem; }.company-bars { padding:.5rem .85rem .8rem; }.company-bar-row { display:grid; grid-template-columns:minmax(110px,1fr) minmax(95px,2fr) auto auto; align-items:center; gap:.65rem; padding:.42rem 0; font-size:.84rem; }.company-bar-row > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.company-bar { height:12px; overflow:hidden; border:1px solid #38516b; background:#0a111b; border-radius:999px; }.company-bar i { display:block; height:100%; background:linear-gradient(90deg,#8f3ae2,#e051a4,#ffae57); border-radius:inherit; box-shadow:0 0 8px #e451aa99; }.company-bar-row strong { color:#ffcf8b; white-space:nowrap; }.company-bar-row small { color:#aebbc9; white-space:nowrap; }
.order-hours-summary { display:inline-block; margin-top:.35rem; padding:.22rem .48rem; color:#cfe9ff; background:#173755; border:1px solid #367fb9; border-radius:999px; font-size:.74rem; }.hours-bars { height:130px; display:flex; align-items:end; gap:.45rem; padding:1rem 1rem .5rem; }.hours-bar-column { height:100%; min-width:26px; flex:1; display:flex; flex-direction:column; align-items:center; justify-content:end; gap:.25rem; }.hours-bar-column i { display:block; width:min(32px,100%); background:linear-gradient(180deg,#74c7ff,#397cdb); border-radius:5px 5px 1px 1px; box-shadow:0 0 9px #4da9ef77; }.hours-bar-column strong { font-size:.67rem; color:#d5eaff; }.hours-bar-column small { font-size:.65rem; color:#aebbc9; }
.order-po-summary { display:flex; flex-wrap:wrap; gap:.35rem; margin-top:.45rem; }.order-po-summary a { text-decoration:none; }
.chart-card { min-height:246px; }.donut-wrap { min-height:194px; display:flex; align-items:center; justify-content:center; gap:1.35rem; padding:1rem; }.donut { width:152px; height:152px; flex:0 0 152px; border-radius:50%; display:grid; place-items:center; box-shadow:0 0 0 1px #ffffff21,0 8px 20px #0007; }.donut > div { width:106px; height:106px; border-radius:50%; background:#111c29; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }.donut strong { font-size:.9rem; }.donut small { color:#aebbc9; font-size:.68rem; }.chart-legend { display:flex; flex-direction:column; gap:.55rem; font-size:.84rem; }.legend { display:inline-block; width:10px; height:10px; border-radius:2px; margin-right:.4rem; }.legend.labor { background:#4d9fe8; }.legend.parts { background:#e4a044; }.legend.other { background:#7666b2; }
.radar-wrap { padding:.5rem 1rem .8rem; text-align:center; }.radar-wrap svg { width:min(360px,100%); height:185px; overflow:visible; }.radar-wrap text { fill:#c6d5e5; font-size:10px; font-weight:700; }.radar-grid { fill:#1a2a3d; stroke:#59728c; stroke-width:1; }.radar-grid.inner { fill:none; stroke:#4c6279; stroke-dasharray:3 3; }.radar-wrap line { stroke:#4c6279; stroke-width:1; }.radar-data { fill:#5fa7e866; stroke:#83c7ff; stroke-width:2; filter:drop-shadow(0 0 4px #3a9cf7); }
.rank-list { padding:.35rem .75rem .65rem; }.rank-row { display:grid; grid-template-columns:minmax(130px,1.2fr) minmax(70px,1fr) auto; align-items:center; gap:.7rem; padding:.55rem 0; border-bottom:1px solid #30445c; }.rank-row:last-child { border-bottom:0; }.rank-label { min-width:0; }.rank-label strong,.rank-label a { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.rank-label small { display:block; font-size:.73rem; color:#aebbc9; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.rank-bar { height:9px; overflow:hidden; background:#0a111b; border:1px solid #33475e; border-radius:999px; }.rank-bar i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#4999e7,#8fc9ff); box-shadow:0 0 8px #4b9ce888; }
.unit-spend-chart .card-header span { float:right; font-size:.72rem; opacity:.7; }.unit-chart-body { padding:.45rem .75rem .65rem; }.unit-chart-body svg { width:100%; height:160px; display:block; }.unit-chart-axis { stroke:#40576f; stroke-width:1; }.unit-spend-line { fill:none; stroke:#64b5ff; stroke-width:3; stroke-linejoin:round; stroke-linecap:round; filter:drop-shadow(0 0 4px #359eff99); }.unit-spend-dot { fill:#ffcc72; stroke:#172536; stroke-width:1.5; }.unit-chart-caption { display:flex; justify-content:space-between; gap:1rem; color:#aebbc9; font-size:.72rem; padding:0 .35rem; }
.unit-inspection-dot { fill:#f5942d; stroke:#fff1bd; stroke-width:1.5; filter:drop-shadow(0 0 3px #ed8914); }.chart-inspection-key { display:inline-block; width:8px; height:8px; border-radius:50%; background:#f5942d; margin-right:.25rem; }
.found-work-line-target { outline:3px solid #198754; outline-offset:-3px; background-color:#dff5e8 !important; box-shadow:inset 6px 0 0 #198754,0 0 0 3px rgba(25,135,84,.16); }
tr.found-work-line-target > * { background-color:#dff5e8 !important; }
@media (max-width:575.98px) { .donut-wrap { gap:.8rem; padding:.75rem; }.donut { width:125px; height:125px; flex-basis:125px; }.donut > div { width:85px; height:85px; }.rank-row { grid-template-columns:1fr auto; }.rank-bar { display:none; } }
@media (max-width:575.98px) { .company-bar-row { grid-template-columns:minmax(100px,1fr) auto; }.company-bar { display:none; }.company-bar-row small { display:none; } }
@media (min-width: 992px) {
    .usage-update-card {
        position: sticky;
        top: 1rem;
        z-index: 10;
        scroll-margin-top: 1rem;
    }
}
.work-date-input-not-today {
    color: #6b3d00 !important;
    background-color: #fff3cd !important;
    border: 2px solid #f0ad20 !important;
    font-weight: 700;
}
