:root {
    --oil-ink:#182c35;
    --oil-muted:#596b73;
    --oil-accent:#126452;
    --oil-accent-dark:#094b3d;
    --oil-bg:#f3f5f2;
    --oil-line:#dce3df;
    --oil-soft:#e8f1eb;
    --oil-radius:16px
}
* {
    box-sizing:border-box
}
body {
    margin:0;
    background:var(--oil-bg);
    color:var(--oil-ink);
    font-family:system-ui,-apple-system,"Segoe UI",sans-serif;
    font-size:16px;
    line-height:1.6;
    min-height:100vh;
    display:flex;
    flex-direction:column
}
a {
    color:var(--oil-accent);
    text-underline-offset:3px
}
a:hover {
    color:var(--oil-accent-dark)
}
h1,h2,h3 {
    font-weight:650;
    letter-spacing:-.035em;
    line-height:1.2
}
h1 {
    font-size:clamp(1.8rem,4vw,2.6rem);
    margin-bottom:1rem
}
h2 {
    font-size:1.55rem
}
h3 {
    font-size:1.2rem
}
.app-width {
    width:min(100%,1328px);
    margin-inline:auto;
    padding-inline:32px
}
.app-header {
    background:#fff;
    border-bottom:1px solid var(--oil-line)
}
.navbar {
    padding-block:18px
}
.brand {
    display:flex;
    align-items:center;
    gap:10px;
    font-weight:750;
    color:var(--oil-ink);
    letter-spacing:-.04em;
    margin-right:30px
}
.brand-mark {
    display:grid;
    place-items:center;
    width:36px;
    height:40px;
    background:var(--oil-accent);
    color:#fff;
    border-radius:13px 13px 13px 3px;
    font-size:25px
}
.navbar .nav-link {
    color:var(--oil-muted);
    font-weight:550;
    font-size:.9rem;
    padding:10px 12px!important;
    border-radius:8px;
    white-space:nowrap
}
.navbar .nav-link.active {
    background:var(--oil-soft);
    color:var(--oil-accent-dark)
}
.navbar-toggler {
    border:1px solid var(--oil-line);
    min-height:44px
}
.navbar-toggler-icon {
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%23182c35' stroke-width='2' stroke-linecap='round' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")
}
.support-button {
    font-size:.9rem;
    color:var(--oil-muted);
    white-space:nowrap
}
.account-nav {
    margin-left:8px
}
.workspace-label {
    display:flex;
    align-items:center;
    gap:8px;
    padding-top:28px;
    color:var(--oil-muted);
    font-size:.85rem
}
.status-dot {
    width:7px;
    height:7px;
    border-radius:50%;
    background:var(--oil-accent)
}
.account-name {
    margin-left:auto;
    overflow-wrap:anywhere
}
.app-main {
    flex:1;
    padding-top:32px;
    padding-bottom:64px;
    min-width:0
}
.app-footer {
    display:flex;
    justify-content:space-between;
    gap:16px;
    padding-block:22px;
    border-top:1px solid var(--oil-line);
    color:var(--oil-muted);
    font-size:.85rem
}
.page-heading {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:24px;
    margin-bottom:28px
}
.page-heading h1 {
    margin-bottom:8px
}
.page-heading p {
    margin:0;
    color:var(--oil-muted)
}
.eyebrow {
    text-transform:uppercase;
    letter-spacing:.13em;
    font-size:.75rem;
    font-weight:750;
    color:var(--oil-accent);
    margin-bottom:14px
}
.panel,.card {
    background:#fff;
    border:1px solid var(--oil-line);
    border-radius:var(--oil-radius);
    box-shadow:0 4px 16px #183b3010
}
.panel {
    padding:28px;
    margin-bottom:24px
}
.card-header {
    background:transparent;
    padding:18px 24px;
    border-color:var(--oil-line);
    font-weight:650
}
.card-body {
    padding:24px
}
.empty-state {
    padding:48px 24px;
    text-align:center;
    background:#fff;
    border:1px dashed #b8c9bf;
    border-radius:var(--oil-radius);
    color:var(--oil-muted)
}
.empty-state h2 {
    color:var(--oil-ink);
    margin-bottom:12px
}
.btn {
    border-radius:9px;
    padding:10px 18px;
    font-weight:600;
    min-height:44px;
    line-height:1.4
}
.btn-primary {
    background:var(--oil-accent);
    border-color:var(--oil-accent)
}
.btn-primary:hover,.btn-primary:focus,.btn-primary:active {
    background:var(--oil-accent-dark)!important;
    border-color:var(--oil-accent-dark)!important
}
.btn-outline-secondary {
    border-color:#b4c2bd;
    color:var(--oil-ink);
    background:#fff
}
.btn-outline-secondary:hover {
    background:var(--oil-soft);
    border-color:var(--oil-accent);
    color:var(--oil-accent-dark)
}
.btn-link {
    box-shadow:none
}
.form-label,.control-label {
    font-weight:600;
    margin-bottom:7px
}
.form-control,.form-select,select.form-control {
    min-height:46px;
    border:1px solid #b8c6bf;
    border-radius:9px;
    padding:10px 13px;
    color:var(--oil-ink);
    font-size:16px;
    background-color:#fff
}
.form-group {
    margin-bottom:18px
}
.form-check-input:checked {
    background-color:var(--oil-accent);
    border-color:var(--oil-accent)
}
.form-text {
    color:var(--oil-muted)
}
:focus-visible {
    outline:3px solid #d29220;
    outline-offset:3px
}
.form-control:focus,.form-select:focus {
    border-color:var(--oil-accent);
    box-shadow:0 0 0 3px #12645220
}
.field-validation-error,.validation-summary-errors {
    display:block;
    margin-top:6px;
    color:#a12f2f;
    font-size:.9rem
}
.input-validation-error {
    border-color:#b83e3e
}
.alert {
    border-radius:12px;
    padding:16px 20px;
    overflow-wrap:anywhere
}
.alert-success {
    background:#e9f4ed;
    border-color:#bedbc9;
    color:#205337
}
.alert-danger {
    background:#fff0ee;
    border-color:#efc7bf;
    color:#892d27
}
.table-responsive {
    overflow-x:auto;
    border:1px solid var(--oil-line);
    border-radius:12px;
    background:#fff;
    margin-bottom:24px
}
.table-responsive:focus-visible {
    outline-offset:3px
}
.table {
    width:100%;
    margin:0;
    background:#fff;
    table-layout:auto;
    color:var(--oil-ink);
    font-size:.94rem
}
.table th {
    font-weight:650;
    color:var(--oil-muted);
    font-size:.82rem;
    background:#f7f9f6;
    white-space:nowrap
}
.table td,.table th {
    padding:16px;
    text-align:left;
    vertical-align:middle;
    border-color:var(--oil-line)
}
.table td {
    min-width:100px;
    overflow-wrap:anywhere
}
.table td:first-child,.table th:first-child {
    min-width:40px
}
.table .btn {
    font-size:.85rem;
    white-space:nowrap;
    padding:9px 13px
}
.table tr:last-child td,.table tr:last-child th {
    border-bottom:0
}
.table .table {
    font-size:.87rem
}
.table .table td,.table .table th {
    padding:8px
}
.table form {
    margin:0
}
.table-toolbar {
    display:flex;
    align-items:center;
    gap:16px;
    margin-bottom:20px
}
.table-toolbar .form-control {
    max-width:400px
}
.modal-content {
    border:1px solid var(--oil-line);
    border-radius:var(--oil-radius);
    box-shadow:0 20px 80px #102f3028
}
.modal-header,.modal-footer {
    padding:20px 24px;
    border-color:var(--oil-line)
}
.modal-body {
    padding:24px
}
.support-phone {
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    gap:8px;
    text-decoration:none;
    padding:16px 0;
    border-top:1px solid var(--oil-line)
}
.skip-link {
    position:fixed;
    left:12px;
    top:-100px;
    z-index:9999;
    padding:12px 20px;
    background:#fff;
    border:2px solid var(--oil-accent);
    border-radius:8px
}
.skip-link:focus {
    top:12px
}
.login-shell {
    max-width:1050px;
    min-height:560px;
    margin:32px auto;
    display:grid;
    grid-template-columns:1.1fr 1fr;
    background:#fff;
    border:1px solid var(--oil-line);
    border-radius:24px;
    overflow:hidden;
    box-shadow:0 16px 60px #21382d0c
}
.login-intro {
    background:var(--oil-ink);
    color:#fff;
    padding:60px 44px;
    display:flex;
    flex-direction:column;
    justify-content:space-between
}
.login-intro .eyebrow {
    color:#b5d7bd
}
.login-intro h1 {
    font-size:clamp(2.2rem,5vw,3.7rem);
    letter-spacing:-.06em;
    line-height:1.05;
    max-width:400px
}
.login-intro p {
    color:#ccdad6;
    max-width:320px
}
.intro-note {
    font-size:.85rem;
    border-top:1px solid #ffffff30;
    padding-top:20px;
    margin-top:30px
}
.login-form {
    padding:52px 44px;
    align-self:center
}
.login-form h2 {
    font-size:1.75rem
}
.login-form>p {
    color:var(--oil-muted);
    margin-bottom:30px
}
.login-form .btn-primary {
    width:100%;
    margin-top:20px
}
.login-help {
    font-size:.88rem;
    color:var(--oil-muted);
    margin-top:24px
}
.password-toggle {
    font-size:.8rem;
    min-width:92px
}
.metric-card {
    min-width:220px;
    padding:20px 24px;
    background:var(--oil-soft);
    border-radius:14px
}
.metric-card small {
    display:block;
    color:var(--oil-muted)
}
.metric-card strong {
    font-size:1.2rem
}
.badge {
    font-weight:600;
    white-space:normal
}
.fuel-actions {
    display:flex;
    gap:12px;
    flex-wrap:wrap
}
.qr-card img {
    max-width:100%;
    height:auto
}
.toast-container {
    max-width:100%
}
@media(max-width:1199.98px) {
    .navbar-collapse {
        padding-top:20px
    }
    .navbar .nav-link {
        padding:12px!important
    }
    .account-nav {
        margin:12px 0
    }
    .support-button {
        text-align:left;
        padding-left:12px
    }
    .account-name {
        display:none
    }
}
@media(max-width:767.98px) {
    .app-width {
        padding-inline:18px
    }
    .app-main {
        padding-top:24px;
        padding-bottom:40px
    }
    .navbar {
        padding-block:14px
    }
    .page-heading {
        flex-direction:column;
        gap:16px
    }
    .page-heading .btn {
        width:100%
    }
    .panel {
        padding:20px
    }
    .table td,.table th {
        padding:12px
    }
    .table {
        font-size:.9rem
    }
    .table .btn {
        min-height:44px
    }
    .login-shell {
        grid-template-columns:1fr;
        margin:0 auto
    }
    .login-intro {
        padding:28px
    }
    .login-intro h1 {
        font-size:2.2rem;
        max-width:310px
    }
    .login-intro p,.intro-note {
        display:none
    }
    .login-form {
        padding:28px
    }
    .login-form>p {
        margin-bottom:22px
    }
    .workspace-label {
        padding-top:20px
    }
    .metric-card {
        width:100%;
        min-width:0
    }
    .app-footer {
        font-size:.78rem
    }
    .card-body {
        padding:20px
    }
    .table-toolbar {
        align-items:stretch;
        flex-direction:column
    }
    .table-toolbar .form-control {
        max-width:none
    }
}
@media(prefers-reduced-motion:reduce) {
    *,*::before,*::after {
        scroll-behavior:auto!important;
        transition:none!important;
        animation:none!important
    }
}
