:root {
    --navy:#031426;
    --navy-deep:#020d1a;
    --navy-card:#071a2e;
    --red:#ff0014;
    --red-dark:#d60010;
    --white:#ffffff;
    --gray:#d8dde4;
    --muted:#aeb8c5;
}

* {
    box-sizing:border-box;
}

html,
body {
    width:100%;
    max-width:100%;
    min-height:100%;
    margin:0;
    overflow-x:hidden;
}

body {
    background:#f3f4f6;
    font-family:Arial, Helvetica, sans-serif;
}

img {
    display:block;
    max-width:100%;
}

.icon-sprite {
    position:absolute;
    width:0;
    height:0;
    overflow:hidden;
}

.menu-icon {
    flex:0 0 auto;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:6px;
    width:35px;
    height:35px;
}

.menu-icon span {
    display:block;
    width:100%;
    height:3px;
    border-radius:3px;
    background:var(--white);
}


/* HOME PAGE — MOBILE REFERENCE */

.home-page {
    width:calc(100% - 10px);
    max-width:488px;
    min-height:100vh;
    margin:5px auto;
    overflow:hidden;
    background:var(--navy);
    color:var(--white);
    border-radius:8px;
}

.home-shell {
    width:100%;
    max-width:100%;
    margin:0 auto;
}

.home-hero {
    position:relative;
    overflow:hidden;
    padding:0 15px 35px;
    background:linear-gradient(180deg, #031426 0%, #051a30 42%, #031426 100%);
}

.home-topbar {
    position:relative;
    z-index:1;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    width:calc(100% + 30px);
    height:clamp(240px, 75vw, 430px);
    margin:0 -15px;
    padding:0 20px;
    background:transparent;
}

.home-topbar .menu-icon {
    position:absolute;
    z-index:1;
    top:24px;
    right:8px;
    width:31px;
    margin:0;
}

.home-logo-panel {
    position:absolute;
    top:0;
    left:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    width:min(75vw, 430px);
    max-width:calc(100% - 80px);
    height:auto;
    overflow:visible;
    transform:translateX(-50%);
    background:transparent;
}

.home-logo {
    width:100%;
    max-width:100%;
    height:auto;
    object-fit:contain;
}

.home-hero-copy {
    position:relative;
    z-index:1;
    width:100%;
    max-width:440px;
    margin:22px auto 0;
    text-align:center;
}

.home-hero h1 {
    display:flex;
    flex-direction:column;
    margin:0;
    color:var(--white);
    font-family:Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
    font-size:clamp(2.45rem, 11.8vw, 3.55rem);
    font-weight:900;
    letter-spacing:.015em;
    line-height:.92;
    text-transform:uppercase;
}

.home-hero h1 strong {
    margin:0;
    color:var(--red);
    font-size:1.38em;
    font-weight:inherit;
    letter-spacing:.01em;
    line-height:.9;
    -webkit-text-stroke:1px var(--white);
    text-shadow:0 3px 0 rgba(0,0,0,.3);
}

.home-hero h1::after {
    content:"";
    width:170px;
    height:2px;
    margin:18px auto 17px;
    background:var(--red);
    box-shadow:0 0 7px rgba(237,16,29,.7);
}

.slide-call {
    --slide-x:0px;
    --slide-progress:0;
    --slide-label-opacity:1;
    --slide-chevron-opacity:.46;
    position:relative;
    width:100%;
    max-width:410px;
    height:60px;
    margin:14px auto 0;
    overflow:hidden;
    touch-action:pan-y;
    user-select:none;
    background:rgba(1,10,20,.72);
    border:1px solid rgba(255,32,48,.72);
    border-radius:999px;
    box-shadow:0 0 0 1px rgba(255,0,20,.08), 0 0 15px rgba(214,0,16,.16), inset 0 1px 0 rgba(255,255,255,.06);
}

.slide-call-progress {
    position:absolute;
    top:4px;
    bottom:4px;
    left:4px;
    width:calc(52px + var(--slide-x));
    border-radius:999px;
    background:linear-gradient(90deg, rgba(214,0,16,.64), rgba(255,0,20,.28));
    transition:width .34s cubic-bezier(.22,.8,.3,1);
}

.slide-call-label {
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0 76px;
    color:rgba(255,255,255,.94);
    font-size:.92rem;
    font-weight:900;
    letter-spacing:.12em;
    pointer-events:none;
    opacity:var(--slide-label-opacity);
}

.slide-call-chevrons {
    position:absolute;
    top:50%;
    right:19px;
    display:flex;
    align-items:center;
    gap:4px;
    transform:translateY(-50%);
    pointer-events:none;
    opacity:var(--slide-chevron-opacity);
}

.slide-call-chevrons i {
    display:block;
    width:8px;
    height:8px;
    border-top:2px solid var(--red);
    border-right:2px solid var(--red);
    transform:rotate(45deg);
}

.slide-call-knob {
    position:absolute;
    z-index:2;
    top:4px;
    left:4px;
    display:flex;
    align-items:center;
    justify-content:center;
    width:50px;
    height:50px;
    padding:0;
    transform:translateX(var(--slide-x));
    touch-action:none;
    background:#ffffff;
    border:0;
    border-radius:50%;
    color:var(--navy);
    cursor:grab;
    box-shadow:0 4px 12px rgba(0,0,0,.36), inset 0 0 0 1px rgba(3,20,38,.08);
    transition:transform .34s cubic-bezier(.22,.8,.3,1), box-shadow .2s ease;
}

.slide-call-knob svg {
    width:23px;
    height:23px;
    fill:none;
    stroke:currentColor;
    stroke-width:2.2;
    stroke-linecap:round;
    stroke-linejoin:round;
    pointer-events:none;
}

.slide-call.is-dragging .slide-call-knob,
.slide-call.is-dragging .slide-call-progress {
    transition:none;
}

.slide-call.is-dragging .slide-call-knob {
    cursor:grabbing;
    box-shadow:0 5px 17px rgba(0,0,0,.48), 0 0 0 3px rgba(255,255,255,.12);
}

.slide-call.is-complete {
    border-color:#ff4351;
    box-shadow:0 0 19px rgba(255,0,20,.34), inset 0 1px 0 rgba(255,255,255,.09);
}

.home-services {
    padding:31px 17px 19px;
    background:linear-gradient(180deg, #06172a, #041325);
    border-top:1px solid rgba(255,255,255,.06);
}

.home-service-location {
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:7px;
    margin:0 auto 26px;
    color:var(--white);
    font-size:.96rem;
    font-weight:800;
    letter-spacing:.13em;
    line-height:1.2;
    text-align:center;
}

.home-service-location svg {
    width:22px;
    height:22px;
    fill:none;
    stroke:var(--red);
    stroke-width:1.9;
    stroke-linecap:round;
    stroke-linejoin:round;
    filter:drop-shadow(0 0 6px rgba(255,0,20,.52));
}

.home-section-heading {
    display:flex;
    align-items:center;
    gap:12px;
    margin:0 0 20px;
    text-align:center;
}

.home-section-heading::before,
.home-section-heading::after {
    content:"";
    flex:1;
    height:2px;
    background:var(--red);
}

.home-section-heading p {
    display:none;
}

.home-section-heading h2 {
    flex:0 0 auto;
    margin:0;
    color:var(--white);
    font-size:1.15rem;
    font-weight:900;
    letter-spacing:.025em;
}

.home-service-grid {
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:7px;
}

.home-service-card {
    appearance:none;
    -webkit-appearance:none;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    min-width:0;
    min-height:210px;
    padding:10px 5px;
    overflow:hidden;
    background:linear-gradient(145deg, #081d33, #041426);
    border:1px solid #3e536a;
    border-radius:8px;
    color:inherit;
    font:inherit;
    text-align:center;
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
    transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.home-service-card:focus-visible {
    outline:3px solid var(--white);
    outline-offset:3px;
    border-color:var(--red);
}

.home-service-card:active {
    transform:translateY(1px);
}

.home-service-artwork {
    flex:0 0 auto;
    width:100%;
    max-width:104px;
    height:96px;
    margin:0 auto 7px;
    object-fit:contain;
    object-position:center;
    filter:drop-shadow(0 4px 8px rgba(0,0,0,.28));
}

.home-service-card h3 {
    margin:0;
    color:var(--white);
    font-family:Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
    font-size:.87rem;
    letter-spacing:.015em;
    line-height:1.08;
    text-transform:uppercase;
    overflow-wrap:anywhere;
}

.home-service-card p {
    margin:7px 0 0;
    color:var(--white);
    font-size:.7rem;
    line-height:1.2;
    overflow-wrap:anywhere;
}

.home-contact {
    display:block;
    width:100%;
    padding:17px;
    background:#06172a;
    border-top:1px solid rgba(237,16,29,.65);
    color:var(--white);
    text-decoration:none;
}

.home-contact-inner {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    width:100%;
    max-width:460px;
    min-height:78px;
    padding:11px 16px;
    background:linear-gradient(145deg, rgba(12,39,66,.92), rgba(3,20,38,.96));
    border:1px solid rgba(255,38,53,.52);
    border-radius:16px;
    box-shadow:0 9px 24px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.06), 0 0 18px rgba(214,0,16,.08);
    transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.home-contact-icon-wrap {
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    width:54px;
    height:54px;
    background:linear-gradient(145deg, var(--red), var(--red-dark));
    border:2px solid rgba(255,255,255,.88);
    border-radius:50%;
    box-shadow:0 0 0 4px rgba(255,0,20,.12), 0 7px 16px rgba(0,0,0,.3);
}

.home-contact-icon {
    width:27px;
    height:27px;
    fill:none;
    stroke:var(--white);
    stroke-width:2.2;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.home-contact-copy {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    min-width:0;
    text-align:left;
}

.home-phone {
    display:block;
    color:var(--white);
    font-size:clamp(1.55rem, 7vw, 1.85rem);
    font-weight:900;
    line-height:1.1;
    white-space:nowrap;
}

.home-contact-status {
    display:flex;
    align-items:center;
    gap:6px;
    margin-top:5px;
    color:#dce4ed;
    font-size:.7rem;
    font-weight:800;
    letter-spacing:.055em;
    line-height:1.2;
}

.home-contact-status > span {
    color:var(--red);
    font-size:.9em;
}

.home-contact:focus-visible {
    outline:none;
}

.home-contact:focus-visible .home-contact-inner {
    outline:3px solid var(--white);
    outline-offset:3px;
}

.home-contact:active .home-contact-inner {
    transform:translateY(1px);
}

@media(hover:hover) {
    .home-contact:hover .home-contact-inner {
        transform:translateY(-2px);
        border-color:rgba(255,54,68,.82);
        box-shadow:0 12px 28px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.08), 0 0 22px rgba(214,0,16,.14);
    }
}

.mobile-tow-action {
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    padding:18px 20px 24px;
    background:linear-gradient(180deg, #031426, #06172a);
    border-top:1px solid rgba(255,0,20,.42);
}

.mobile-tow-action-link {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    width:min(320px, 100%);
    min-height:62px;
    padding:11px 20px;
    background:linear-gradient(135deg, var(--red-dark), var(--red));
    border:3px solid var(--navy);
    border-radius:999px;
    color:var(--white);
    font-size:1rem;
    font-weight:900;
    letter-spacing:.025em;
    line-height:1.15;
    text-decoration:none;
    box-shadow:0 8px 22px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.22);
}

.mobile-tow-action-icon {
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
}

.mobile-tow-action-link svg {
    flex:0 0 auto;
    width:30px;
    height:30px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.9;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.mobile-tow-action-text {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:.28em;
}


/* SERVICE DETAILS DIALOG */

body.service-dialog-open {
    overflow:hidden;
}

.service-modal[hidden] {
    display:none;
}

.service-modal {
    position:fixed;
    z-index:120;
    inset:0;
    display:grid;
    place-items:center;
    width:100%;
    max-width:100%;
    height:100vh;
    height:100dvh;
    padding:18px;
}

.service-modal-backdrop {
    position:absolute;
    inset:0;
    background:rgba(1,8,16,.82);
    -webkit-backdrop-filter:blur(4px);
    backdrop-filter:blur(4px);
}

.service-dialog {
    position:relative;
    z-index:1;
    width:100%;
    max-width:440px;
    max-height:calc(100dvh - 36px);
    padding:30px 21px 21px;
    overflow:auto;
    background:linear-gradient(155deg, #092039, #031426 72%);
    border:1px solid rgba(255,31,46,.62);
    border-radius:18px;
    color:var(--white);
    text-align:center;
    box-shadow:0 24px 70px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.07);
    animation:serviceDialogIn .18s ease-out;
}

.service-dialog:focus {
    outline:none;
}

.service-dialog-close {
    position:absolute;
    top:11px;
    right:11px;
    display:flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    padding:0;
    background:rgba(255,255,255,.07);
    border:1px solid rgba(255,255,255,.18);
    border-radius:50%;
    color:var(--white);
    cursor:pointer;
}

.service-dialog-close svg {
    width:21px;
    height:21px;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
}

.service-dialog-close:focus-visible,
.service-dialog-cta:focus-visible {
    outline:3px solid var(--white);
    outline-offset:3px;
}

.service-dialog-artwork {
    display:block;
    width:min(250px, 82%);
    max-width:100%;
    height:auto;
    max-height:225px;
    margin:0 auto 14px;
    object-fit:contain;
    object-position:center;
    filter:drop-shadow(0 10px 18px rgba(0,0,0,.34));
}

.service-dialog h2 {
    margin:0;
    color:var(--white);
    font-family:Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
    font-size:2rem;
    font-weight:900;
    letter-spacing:.025em;
    line-height:1.05;
    text-transform:uppercase;
}

.service-dialog p {
    margin:15px auto 22px;
    color:#d9e0e8;
    font-size:1rem;
    line-height:1.5;
}

.service-dialog-cta {
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:56px;
    padding:11px 16px;
    background:linear-gradient(135deg, var(--red-dark), var(--red));
    border:1px solid #ff3545;
    border-radius:10px;
    color:var(--white);
    font-size:.94rem;
    font-weight:900;
    letter-spacing:.025em;
    line-height:1.2;
    text-decoration:none;
    box-shadow:0 8px 20px rgba(214,0,16,.25);
}

@keyframes serviceDialogIn {
    from {
        opacity:0;
        transform:translateY(10px) scale(.98);
    }

    to {
        opacity:1;
        transform:translateY(0) scale(1);
    }
}

@media(hover:hover) {
    .home-service-card:hover {
        transform:translateY(-2px);
        border-color:rgba(255,34,49,.72);
        box-shadow:0 10px 24px rgba(0,0,0,.24);
    }
}


/* ADMIN PAGE — MOBILE REFERENCE */

.admin-page {
    width:calc(100% - 10px);
    max-width:544px;
    min-height:100vh;
    margin:5px auto;
    overflow:hidden;
    overflow-anchor:none;
    background:#f4f4f4;
    color:#111827;
    border-radius:8px 8px 0 0;
}

.admin-shell {
    width:100%;
    max-width:100%;
    margin:0 auto;
}

.admin-header {
    padding:0 17px 13px;
    background:linear-gradient(135deg, #031326, #061c32);
    color:var(--white);
}

.admin-topbar {
    position:relative;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    width:calc(100% + 34px);
    height:135px;
    margin:0 -17px;
    padding:0 17px;
    background:#031326;
}

.admin-topbar .menu-icon {
    position:relative;
    z-index:1;
    width:30px;
    margin-left:auto;
    margin-top:23px;
}

.admin-logo-panel {
    position:absolute;
    top:0;
    left:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    width:130px;
    max-width:calc(100% - 100px);
    height:auto;
    overflow:visible;
    transform:translateX(-50%);
    background:transparent;
}


/* DISPATCH PHASE 2 — EXISTING ADMIN VISUAL SYSTEM */

.admin-menu-button {
    appearance:none;
    -webkit-appearance:none;
    padding:0;
    background:transparent;
    border:0;
    color:inherit;
    cursor:pointer;
}

.admin-menu-button:focus-visible,
.admin-drawer button:focus-visible,
.admin-drawer a:focus-visible,
.completed-toggle:focus-visible {
    outline:3px solid var(--red);
    outline-offset:3px;
}

.admin-drawer-backdrop {
    position:fixed;
    z-index:1000;
    inset:0;
    width:100%;
    height:100%;
    padding:0;
    background:rgba(0,10,24,.68);
    border:0;
    cursor:pointer;
}

.admin-drawer {
    position:fixed;
    z-index:1001;
    top:0;
    right:0;
    display:flex;
    flex-direction:column;
    width:min(330px, 88vw);
    max-width:100%;
    height:100dvh;
    padding:calc(18px + env(safe-area-inset-top)) 18px calc(18px + env(safe-area-inset-bottom));
    transform:translateX(105%);
    background:linear-gradient(180deg, #061c32, #020c18);
    color:var(--white);
    box-shadow:-14px 0 34px rgba(0,0,0,.35);
    transition:transform .22s ease;
}

.admin-drawer.is-open {
    transform:translateX(0);
}

.admin-drawer-open {
    overflow:hidden;
}

.admin-drawer-header {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding-bottom:17px;
    border-bottom:1px solid rgba(255,255,255,.15);
}

.admin-drawer-header strong {
    font-size:1.15rem;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.admin-drawer-header button {
    width:40px;
    height:40px;
    padding:0;
    background:transparent;
    border:1px solid rgba(255,255,255,.3);
    border-radius:50%;
    color:var(--white);
    font-size:1.7rem;
    line-height:1;
    cursor:pointer;
}

.admin-drawer nav {
    display:grid;
    gap:7px;
    padding:18px 0;
}

.admin-drawer nav a,
.admin-menu-disabled {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    min-height:46px;
    padding:11px 13px;
    border-radius:7px;
    color:var(--white);
    font-size:.96rem;
    font-weight:800;
    text-decoration:none;
}

.admin-drawer nav a:hover,
.admin-drawer nav a[aria-current="page"] {
    background:rgba(226,13,24,.2);
    box-shadow:inset 3px 0 0 var(--red);
}

.admin-menu-disabled {
    color:#92a0b1;
    cursor:not-allowed;
}

.admin-menu-disabled small {
    font-size:.64rem;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.admin-drawer-logout {
    margin-top:auto;
}

.admin-drawer-logout button {
    width:100%;
    min-height:46px;
    padding:10px 14px;
    background:linear-gradient(135deg, var(--red-dark), var(--red));
    border:0;
    border-radius:7px;
    color:var(--white);
    font-size:1rem;
    font-weight:900;
    cursor:pointer;
}

.admin-section {
    min-width:0;
}

.admin-section-heading {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:17px 16px 0;
}

.admin-section-heading h2 {
    margin:0;
    color:#162033;
    font-size:1rem;
    letter-spacing:.05em;
    text-transform:uppercase;
}

.admin-section-heading > span,
.admin-section-heading > a {
    color:#667085;
    font-size:.78rem;
    font-weight:800;
}

.admin-section-heading > a {
    color:#174da8;
    text-underline-offset:3px;
}

.admin-history-search {
    margin:16px 14px 2px;
    padding:13px;
    background:#fff;
    border:1px solid #d7dce2;
    border-radius:8px;
    box-shadow:0 2px 7px rgba(0,0,0,.08);
}

.admin-history-search label {
    display:block;
    margin-bottom:7px;
    color:#303747;
    font-size:.78rem;
    font-weight:900;
    text-transform:uppercase;
}

.admin-history-search > div {
    display:grid;
    grid-template-columns:20px minmax(0, 1fr) auto;
    align-items:center;
    gap:8px;
    min-width:0;
    padding-left:10px;
    border:1px solid #c7cdd6;
    border-radius:6px;
    overflow:hidden;
}

.admin-history-search svg {
    width:18px;
    height:18px;
    fill:none;
    stroke:#5b6574;
    stroke-width:2;
}

.admin-history-search input {
    min-width:0;
    width:100%;
    height:44px;
    padding:8px 0;
    border:0;
    color:#111827;
    font-size:16px;
    outline:0;
}

.admin-history-search button {
    align-self:stretch;
    padding:8px 13px;
    background:var(--navy);
    border:0;
    color:var(--white);
    font-weight:900;
    cursor:pointer;
}

.admin-request-card.request-status-on-the-way-to-pickup {
    border-color:#397dc7;
    box-shadow:inset 4px 0 0 #1264bc, 0 3px 10px rgba(18,100,188,.15);
}

.admin-request-card.request-status-on-site {
    border-color:#d69216;
    box-shadow:inset 4px 0 0 #d69216, 0 3px 10px rgba(167,101,7,.15);
}

.admin-request-card.request-status-en-route-to-drop-off {
    border-color:#244c83;
    box-shadow:inset 4px 0 0 #244c83, 0 3px 10px rgba(19,55,103,.16);
}

.status-on-the-way-to-pickup {
    background:#cce5ff;
    color:#0a4f96;
}

.status-on-site {
    background:#fde2a4;
    color:#7a4600;
}

.status-en-route-to-drop-off {
    background:#d7e3f5;
    color:#173f74;
}

.workflow-quick-actions {
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    gap:7px;
    padding:13px 14px 0;
}

.workflow-link {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    width:100%;
    min-width:0;
    min-height:42px;
    padding:9px 11px;
    border:1px solid #31465d;
    border-radius:6px;
    color:var(--white);
    font-size:.88rem;
    font-weight:900;
    line-height:1.2;
    text-align:center;
    text-decoration:none;
    overflow-wrap:anywhere;
}

.workflow-link svg {
    flex:0 0 auto;
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.workflow-call {
    background:#fff;
    border-color:#b8c2ce;
    color:#174da8;
}

.workflow-navigate,
.workflow-navigate-dropoff {
    background:var(--navy);
}

.workflow-navigate svg,
.workflow-navigate-dropoff svg {
    stroke:var(--red);
}

.workflow-link.is-hidden {
    display:none;
}

.request-extra-details {
    margin:12px 14px 0;
    border:1px solid #d9dee5;
    border-radius:6px;
    background:#f5f7f9;
}

.request-extra-details summary {
    padding:10px 12px;
    color:#273449;
    font-size:.84rem;
    font-weight:900;
    cursor:pointer;
}

.request-extra-content {
    padding:0 12px 12px;
}

.request-notes h3,
.request-photos h3 {
    margin:8px 0 5px;
    color:#273449;
    font-size:.76rem;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.request-notes p {
    margin:0;
    color:#333b48;
    font-size:.86rem;
    line-height:1.45;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
}

.request-photo-grid {
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:8px;
}

.request-photo-grid a {
    display:block;
    min-width:0;
    aspect-ratio:4/3;
    overflow:hidden;
    background:#dce2e8;
    border:1px solid #c7cdd4;
    border-radius:5px;
}

.request-photo-grid .evidence-thumbnail {
    appearance:none;
    -webkit-appearance:none;
    display:block;
    min-width:0;
    width:100%;
    padding:0;
    aspect-ratio:4/3;
    overflow:hidden;
    background:#dce2e8;
    border:1px solid #c7cdd4;
    border-radius:5px;
    cursor:zoom-in;
}

.request-photo-grid .evidence-thumbnail:focus-visible,
.evidence-file-button:focus-within,
.evidence-save-button:focus-visible,
.evidence-selection-remove:focus-visible,
.evidence-lightbox button:focus-visible {
    outline:3px solid var(--red);
    outline-offset:2px;
}

.request-photo-grid img {
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}

.request-evidence {
    display:grid;
    gap:10px;
    margin:13px 14px 0;
}

.evidence-group {
    min-width:0;
    padding:11px;
    background:#f6f8fa;
    border:1px solid #d5dbe2;
    border-radius:7px;
}

.evidence-group.is-hidden,
.evidence-upload-form.is-hidden,
.evidence-empty.is-hidden,
.evidence-signature-status.is-hidden {
    display:none;
}

.evidence-group-heading {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    margin-bottom:9px;
}

.evidence-group-heading h3 {
    min-width:0;
    margin:0;
    color:#202b3b;
    font-size:.76rem;
    font-weight:900;
    letter-spacing:.035em;
    line-height:1.3;
}

.evidence-group-heading span {
    flex:0 0 auto;
    padding:2px 6px;
    background:#e3e8ee;
    border-radius:999px;
    color:#4c5868;
    font-size:.68rem;
    font-weight:900;
}

.evidence-photo-grid {
    align-items:start;
}

.evidence-empty {
    grid-column:1 / -1;
    margin:1px 0;
    color:#6a7481;
    font-size:.79rem;
}

.evidence-upload-form {
    display:grid;
    gap:8px;
    margin-top:10px;
}

.evidence-file-button,
.evidence-save-button {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    width:100%;
    min-width:0;
    min-height:42px;
    padding:9px 11px;
    border-radius:6px;
    font-size:.84rem;
    font-weight:900;
    line-height:1.2;
    text-align:center;
}

.evidence-file-button {
    position:relative;
    background:#fff;
    border:1px solid #aeb9c5;
    color:#182b43;
    cursor:pointer;
}

.evidence-file-button svg,
.evidence-signature-status svg {
    flex:0 0 auto;
    width:19px;
    height:19px;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.evidence-file-button input {
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0 0 0 0);
    clip-path:inset(50%);
    white-space:nowrap;
}

.evidence-selection {
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:6px;
}

.evidence-selection:empty {
    display:none;
}

.evidence-selection-item {
    position:relative;
    min-width:0;
    aspect-ratio:1;
}

.evidence-selection-item img {
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    border-radius:5px;
}

.evidence-selection-remove {
    position:absolute;
    top:3px;
    right:3px;
    display:flex;
    align-items:center;
    justify-content:center;
    width:26px;
    height:26px;
    padding:0;
    background:rgba(8,17,29,.88);
    border:1px solid rgba(255,255,255,.75);
    border-radius:50%;
    color:#fff;
    font-size:1.1rem;
    line-height:1;
    cursor:pointer;
}

.evidence-save-button {
    background:linear-gradient(#244f82, #14385f);
    border:0;
    color:#fff;
    cursor:pointer;
}

.evidence-save-button:disabled {
    opacity:.55;
    cursor:not-allowed;
}

.evidence-upload-form[aria-busy="true"] {
    opacity:.7;
}

.evidence-signature-status {
    display:flex;
    align-items:center;
    gap:8px;
    min-height:42px;
    padding:10px 11px;
    background:#f6f8fa;
    border:1px solid #d5dbe2;
    border-radius:7px;
    color:#4c5868;
    font-size:.82rem;
    font-weight:900;
}

.evidence-lightbox[hidden] {
    display:none !important;
}

.evidence-lightbox {
    position:fixed;
    z-index:1200;
    inset:0;
    display:grid;
    grid-template-columns:44px minmax(0, 1fr) 44px;
    align-items:center;
    gap:6px;
    width:100%;
    height:100dvh;
    padding:calc(54px + env(safe-area-inset-top)) 10px calc(22px + env(safe-area-inset-bottom));
    background:rgba(0,8,18,.94);
}

.evidence-lightbox-open {
    overflow:hidden;
}

.evidence-lightbox-figure {
    min-width:0;
    margin:0;
    text-align:center;
}

.evidence-lightbox-figure img {
    display:block;
    width:auto;
    max-width:100%;
    height:auto;
    max-height:calc(100dvh - 125px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    margin:0 auto;
    object-fit:contain;
    touch-action:pinch-zoom;
    user-select:none;
    -webkit-user-select:none;
}

.evidence-lightbox-figure figcaption {
    min-height:22px;
    padding-top:8px;
    color:#e7edf4;
    font-size:.82rem;
    font-weight:800;
}

.evidence-lightbox-close,
.evidence-lightbox-navigation {
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0;
    background:rgba(16,35,57,.92);
    border:1px solid rgba(255,255,255,.5);
    border-radius:50%;
    color:#fff;
    cursor:pointer;
}

.evidence-lightbox-close {
    position:absolute;
    top:calc(10px + env(safe-area-inset-top));
    right:12px;
    width:42px;
    height:42px;
    font-size:1.8rem;
    line-height:1;
}

.evidence-lightbox-navigation {
    width:42px;
    height:42px;
}

.evidence-lightbox-navigation svg {
    width:22px;
    height:22px;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
}

.evidence-lightbox-previous svg {
    transform:rotate(90deg);
}

.evidence-lightbox-next svg {
    transform:rotate(-90deg);
}

@media(max-width:374px) {
    .evidence-lightbox {
        grid-template-columns:36px minmax(0, 1fr) 36px;
        gap:3px;
        padding-left:5px;
        padding-right:5px;
    }

    .evidence-lightbox-navigation {
        width:36px;
        height:36px;
    }
}

.action-on-site,
.action-on-site:disabled {
    background:linear-gradient(#d89418, #b96d09);
    color:var(--white);
}

.action-en-route,
.action-en-route:disabled {
    background:linear-gradient(#315e97, #173f74);
    color:var(--white);
}

.completed-request-list {
    grid-template-columns:minmax(0, 1fr);
}

.completed-request-card {
    box-shadow:0 2px 6px rgba(0,0,0,.09);
}

.completed-card-summary {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    min-width:0;
    padding:12px 13px;
}

.completed-card-main {
    display:grid;
    grid-template-columns:auto minmax(0, 1fr);
    gap:2px 9px;
    min-width:0;
}

.completed-request-number {
    grid-row:1 / span 2;
    align-self:center;
    color:var(--red);
    font-size:1.05rem;
    font-weight:900;
}

.completed-card-main strong,
.completed-card-main span:last-child {
    min-width:0;
    overflow-wrap:anywhere;
}

.completed-card-main strong {
    color:#172033;
    font-size:.9rem;
}

.completed-card-main span:last-child {
    color:#5f6875;
    font-size:.76rem;
}

.completed-card-meta {
    flex:0 0 auto;
    display:grid;
    grid-template-columns:auto auto;
    align-items:center;
    justify-items:end;
    gap:5px 8px;
}

.completed-card-meta .status-badge {
    min-height:25px;
    padding:5px 7px;
    font-size:.62rem;
}

.completed-card-meta time {
    grid-column:1;
    color:#596273;
    font-size:.68rem;
    font-weight:700;
}

.completed-toggle {
    grid-column:2;
    grid-row:1 / span 2;
    display:flex;
    align-items:center;
    justify-content:center;
    width:36px;
    height:36px;
    padding:0;
    background:#eef1f4;
    border:1px solid #d4dae1;
    border-radius:50%;
    color:#344054;
    cursor:pointer;
}

.completed-toggle svg {
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
    transition:transform .2s ease;
}

.completed-request-card.is-expanded .completed-toggle svg {
    transform:rotate(180deg);
}

.completed-full-details {
    padding-bottom:14px;
    border-top:1px solid #e1e4e8;
}

.request-status-completed [data-admin-actions],
.request-status-completed [data-workflow-links] {
    display:none;
}

@media(max-width:430px) {
    .admin-section-heading {
        padding-left:14px;
        padding-right:14px;
    }

    .completed-card-summary {
        align-items:flex-start;
        gap:8px;
    }

    .completed-card-meta {
        grid-template-columns:minmax(0, 1fr) 34px;
        max-width:49%;
    }

    .completed-card-meta .status-badge {
        max-width:100%;
    }

    .completed-toggle {
        width:34px;
        height:34px;
    }
}

.success-estimate{margin:18px 0;padding:16px;background:rgba(255,255,255,.045);border:1px solid rgba(226,27,43,.36);border-radius:11px;text-align:center}.success-estimate span{display:block;color:#ef4150;font-size:.68rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.success-estimate strong{display:block;margin:5px 0;color:#fff;font-size:1.65rem}.success-estimate p{margin:0;color:#aab5c3;font-size:.7rem;line-height:1.55}

@media(min-width:700px) {
    .admin-section-heading,
    .admin-history-search {
        margin-left:14px;
        margin-right:14px;
    }

    .admin-section-heading {
        padding-top:25px;
    }

    .admin-section-heading h2 {
        font-size:1.15rem;
    }

    .admin-history-search {
        max-width:720px;
    }

    .workflow-quick-actions {
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .request-photo-grid {
        grid-template-columns:repeat(3, minmax(0, 1fr));
    }

    .completed-request-list {
        grid-template-columns:minmax(0, 1fr);
    }

    .completed-card-summary {
        min-height:82px;
        padding:15px 18px;
    }

    .completed-card-main strong {
        font-size:1rem;
    }
}

.admin-logo-panel img {
    width:100%;
    max-width:100%;
    height:auto;
    object-fit:contain;
}

.admin-heading-row {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:10px;
}

.admin-heading-copy {
    min-width:0;
}

.admin-title-row {
    display:flex;
    align-items:center;
    gap:8px;
}

.admin-title-icon {
    flex:0 0 auto;
    width:30px;
    height:30px;
    fill:none;
    stroke:var(--red);
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.admin-title-row h1 {
    margin:0;
    color:var(--white);
    font-family:Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
    font-size:clamp(1.55rem, 6.7vw, 2.25rem);
    font-weight:900;
    letter-spacing:.02em;
    line-height:1;
    text-transform:uppercase;
    white-space:nowrap;
}

.admin-subtitle {
    max-width:255px;
    margin:9px 0 0;
    color:var(--white);
    font-size:.86rem;
    line-height:1.35;
}

.admin-new-request {
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:4px;
    min-height:42px;
    padding:9px 11px;
    border-radius:6px;
    background:linear-gradient(135deg, var(--red-dark), var(--red));
    color:var(--white);
    font-size:.82rem;
    font-weight:900;
    line-height:1.1;
    text-decoration:none;
    box-shadow:0 5px 12px rgba(0,0,0,.18);
}

.admin-new-request svg {
    width:16px;
    height:16px;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.admin-request-list {
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    gap:15px;
    width:100%;
    max-width:100%;
    padding:15px 14px 20px;
}

.admin-request-card {
    width:100%;
    max-width:100%;
    min-width:0;
    overflow:hidden;
    background:#fbfbfb;
    border:1px solid #dedede;
    border-radius:7px;
    box-shadow:0 3px 9px rgba(0,0,0,.12);
    transition:border-color .2s ease, box-shadow .2s ease;
}

.admin-request-card.request-status-accepted {
    border-color:#45a867;
    box-shadow:inset 4px 0 0 #20954b, 0 3px 10px rgba(20,130,57,.15);
}

.admin-request-card.request-status-on-the-way {
    border-color:#397dc7;
    box-shadow:inset 4px 0 0 #1264bc, 0 3px 10px rgba(18,100,188,.15);
}

.request-card-header {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:14px 14px 7px;
}

.request-card-header > div {
    min-width:0;
}

.request-card-eyebrow {
    display:none;
}

.request-card-header h2 {
    margin:0;
    color:#e20d18;
    font-size:1.28rem;
    line-height:1;
}

.status-badge {
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    max-width:55%;
    min-height:29px;
    padding:6px 9px;
    border-radius:5px;
    font-size:.7rem;
    font-weight:900;
    line-height:1.1;
    text-align:center;
    text-transform:uppercase;
    overflow-wrap:anywhere;
}

.status-new,
.status-pending {
    background:#e2e8f0;
    color:#334155;
}

.status-received,
.status-accepted {
    background:#bbf7d0;
    color:#14532d;
}

.status-on-the-way {
    background:#fde36c;
    color:#1f2937;
}

.status-completed {
    background:#b8ee9a;
    color:#16351b;
}

.request-card-details {
    padding:0 14px;
}

.request-detail-row {
    display:grid;
    grid-template-columns:20px minmax(105px, .72fr) minmax(0, 1.3fr);
    align-items:start;
    gap:7px;
    min-width:0;
    padding:7px 0;
    border-bottom:1px solid #d8d8d8;
}

.request-detail-icon {
    width:18px;
    height:18px;
    margin-top:1px;
    fill:none;
    stroke:#474747;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.request-detail-label {
    color:#303030;
    font-size:.84rem;
    line-height:1.35;
}

.request-detail-value {
    min-width:0;
    color:#111111;
    font-size:.88rem;
    font-weight:700;
    line-height:1.35;
    overflow-wrap:anywhere;
    word-break:break-word;
}

.admin-phone-link {
    color:#174da8;
    text-decoration:underline;
    text-underline-offset:2px;
}

.navigate-pickup {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    width:calc(100% - 28px);
    max-width:calc(100% - 28px);
    min-height:42px;
    margin:13px 14px 0;
    padding:9px 12px;
    background:var(--navy);
    border:1px solid #31465d;
    border-radius:6px;
    color:var(--white);
    font-size:.91rem;
    font-weight:900;
    line-height:1.2;
    text-decoration:none;
    box-shadow:0 2px 6px rgba(0,0,0,.15);
}

.navigate-pickup.is-hidden {
    display:none;
}

.navigate-pickup svg {
    width:19px;
    height:19px;
    fill:none;
    stroke:var(--red);
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.admin-actions {
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    gap:6px;
    width:100%;
    max-width:100%;
    padding:15px 14px 14px;
}

.admin-actions form {
    width:100%;
    max-width:100%;
    min-width:0;
    margin:0;
}

.action-button {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    width:100%;
    max-width:100%;
    min-height:40px;
    padding:8px 12px;
    border:none;
    border-radius:5px;
    color:var(--white);
    font-size:.91rem;
    font-weight:900;
    line-height:1.2;
    white-space:normal;
    cursor:pointer;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.13), 0 2px 5px rgba(0,0,0,.11);
}

.action-button svg {
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.action-button.is-confirmed svg {
    display:none;
}

.action-accept,
.action-accept:disabled {
    background:linear-gradient(#279d52, #158239);
    color:var(--white);
}

.action-on-the-way,
.action-on-the-way:disabled {
    background:linear-gradient(#1374d0, #0957aa);
    color:var(--white);
}

.action-complete,
.action-complete:disabled {
    background:linear-gradient(#93a3b3, #708295);
    color:var(--white);
}

.action-button:disabled {
    opacity:.76;
    cursor:not-allowed;
}

.action-button.is-loading {
    opacity:.65;
    cursor:progress;
}

.admin-toast {
    position:fixed;
    z-index:100;
    top:calc(12px + env(safe-area-inset-top));
    left:50%;
    width:calc(100% - 28px);
    max-width:430px;
    padding:12px 15px;
    transform:translate(-50%, -18px);
    background:#16733a;
    border:1px solid rgba(255,255,255,.28);
    border-radius:8px;
    color:var(--white);
    font-size:.91rem;
    font-weight:800;
    line-height:1.35;
    text-align:center;
    opacity:0;
    pointer-events:none;
    box-shadow:0 8px 24px rgba(0,0,0,.25);
    transition:opacity .2s ease, transform .2s ease;
}

.admin-toast.is-visible {
    transform:translate(-50%, 0);
    opacity:1;
}

.admin-toast.admin-toast-error {
    background:#b91c1c;
}

.admin-empty-state {
    margin:15px 14px;
    padding:36px 18px;
    background:var(--white);
    color:#4b5563;
    border-radius:7px;
    text-align:center;
}


/* REQUEST WIZARD AND SUCCESS PAGE */

.request-page,
.success-page {
    min-height:100vh;
    width:100%;
    max-width:100%;
    padding:12px;
    overflow-x:hidden;
    background:
        radial-gradient(circle at 50% 0, rgba(255,0,20,.1), transparent 31%),
        linear-gradient(180deg, var(--navy), var(--navy-deep));
    color:var(--white);
}

.request-shell,
.success-shell {
    width:100%;
    max-width:720px;
    margin:0 auto;
}

.request-header {
    display:flex;
    flex-direction:column;
    align-items:center;
    width:100%;
    padding:0 0 17px;
    text-align:center;
}

.request-logo-link,
.success-logo-link {
    display:block;
    width:min(200px, 64vw);
    max-width:100%;
    overflow:visible;
    background:transparent;
}

.request-logo,
.success-logo {
    width:100%;
    height:auto;
    object-fit:contain;
}

.request-header-copy {
    padding-top:14px;
}

.request-header-copy p,
.request-header-copy span {
    margin:0;
    color:var(--muted);
    font-size:.9rem;
    line-height:1.4;
}

.request-header-copy p {
    color:var(--red);
    font-size:.76rem;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.request-header h1 {
    margin:5px 0 6px;
    color:var(--white);
    font-family:Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
    font-size:clamp(2.05rem, 10vw, 3.2rem);
    letter-spacing:.025em;
    line-height:1;
    text-transform:uppercase;
}

.request-form {
    width:100%;
    max-width:640px;
    margin:0 auto;
}

.admin-login-shell {
    max-width:640px;
}

.request-form .admin-login-card {
    min-height:0;
}

.request-progress {
    width:100%;
    margin:0 0 13px;
}

.progress-meta {
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:7px;
    color:var(--white);
    font-size:.84rem;
    font-weight:800;
}

.progress-container {
    width:100%;
    height:8px;
    overflow:hidden;
    background:#334155;
    border-radius:999px;
}

.progress-bar {
    width:14%;
    height:100%;
    background:linear-gradient(90deg, var(--red-dark), var(--red));
    border-radius:inherit;
    transition:width .25s ease;
}

.form-error-summary {
    margin:0 0 12px;
    padding:11px 13px;
    background:#fee2e2;
    border:1px solid #fecaca;
    border-radius:9px;
    color:#991b1b;
    font-size:.9rem;
    font-weight:700;
    line-height:1.4;
}

.request-form .step {
    display:flex;
    flex-direction:column;
    width:100%;
    max-width:100%;
    min-height:420px;
    padding:20px 17px;
    overflow:hidden;
    background:#ffffff;
    color:#111827;
    border:1px solid rgba(255,255,255,.18);
    border-radius:15px;
    box-shadow:0 15px 36px rgba(0,0,0,.3);
    animation:fadeIn .24s ease;
}

.request-form .step[hidden],
.conditional-field[hidden] {
    display:none !important;
}

.step-heading {
    margin:0 0 20px;
}

.step-heading p {
    margin:0 0 5px;
    color:var(--red-dark);
    font-size:.78rem;
    font-weight:900;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.step-heading h2 {
    margin:0;
    color:#101828;
    font-size:1.5rem;
    line-height:1.15;
}

.step-heading h2:focus {
    outline:none;
}

.step-heading > span {
    display:block;
    margin-top:5px;
    color:#667085;
    font-size:.9rem;
    line-height:1.4;
}

.request-field-grid {
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    gap:0;
}

.form-field {
    min-width:0;
    margin:0 0 12px;
}

.form-field label {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin:0 0 7px;
    color:#1f2937;
    font-size:.92rem;
    font-weight:800;
    line-height:1.3;
}

.form-field label > span:not(.optional-label) {
    color:var(--red-dark);
}

.optional-label {
    color:#667085;
    font-size:.74rem;
    font-weight:700;
    text-transform:uppercase;
}

.vin-input-wrap {
    position:relative;
    display:flex;
    align-items:center;
}

.vin-input-wrap input {
    padding-right:120px;
}

.scan-vin-button {
    position:absolute;
    right:7px;
    top:50%;
    transform:translateY(-50%);
    min-height:38px;
    padding:0 12px;
    border:1px solid rgba(214,0,16,.4);
    border-radius:7px;
    background:linear-gradient(135deg, rgba(214,0,16,.08), rgba(214,0,16,.16));
    color:var(--red-dark);
    font-size:.72rem;
    font-weight:900;
    letter-spacing:.06em;
    text-transform:uppercase;
    cursor:pointer;
}

.form-field input,
.form-field select,
.form-field textarea {
    display:block;
    width:100%;
    max-width:100%;
    min-width:0;
    height:54px;
    margin:0;
    padding:0 15px;
    background:#ffffff;
    border:1px solid #b8c0cc;
    border-radius:9px;
    color:#111827;
    font-family:Arial, Helvetica, sans-serif;
    font-size:16px;
    font-weight:600;
    line-height:1.25;
    box-shadow:none;
}

.form-field select {
    padding-right:44px;
    appearance:none;
    -webkit-appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-position:right 14px center;
    background-repeat:no-repeat;
    background-size:16px;
}

.form-field textarea {
    height:auto;
    min-height:126px;
    padding:14px 15px;
    line-height:1.45;
    resize:vertical;
}

.form-field input[type="file"] {
    height:auto;
    min-height:54px;
    padding:13px;
    font-size:.88rem;
    font-weight:500;
    line-height:1.4;
}

.form-field input::placeholder,
.form-field textarea::placeholder {
    color:#8792a2;
    opacity:1;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
    outline:none;
    border-color:var(--red-dark);
    box-shadow:0 0 0 3px rgba(214,0,16,.13);
}

.form-field .field-invalid,
.form-field [aria-invalid="true"] {
    border-color:var(--red-dark);
    background-color:#fff7f7;
}

.field-error {
    display:block;
    min-height:17px;
    margin:4px 0 0;
    color:#b91c1c;
    font-size:.78rem;
    font-weight:700;
    line-height:1.3;
}

.step-actions {
    display:grid;
    grid-template-columns:minmax(0, .75fr) minmax(0, 1.25fr);
    gap:9px;
    width:100%;
    margin-top:auto;
    padding-top:10px;
}

.step-actions-single {
    grid-template-columns:minmax(0, 1fr);
}

.request-form .request-primary-button,
.request-form .request-secondary-button {
    width:100%;
    min-height:50px;
    margin:0;
    padding:11px 13px;
    border-radius:8px;
    font-size:1rem;
    font-weight:900;
    line-height:1.2;
    cursor:pointer;
}

.request-form .request-primary-button {
    border:1px solid #ff3545;
    background:linear-gradient(135deg, var(--red-dark), var(--red));
    color:var(--white);
    box-shadow:0 5px 12px rgba(214,0,16,.2);
}

.request-form .request-secondary-button {
    border:1px solid #64748b;
    background:#ffffff;
    color:var(--navy);
}

.vin-scanner-modal {
    position:fixed;
    inset:0;
    z-index:1000;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:18px;
    background:rgba(15,23,42,.7);
}

.vin-scanner-modal[hidden] {
    display:none;
}

.vin-scanner-panel {
    width:min(100%, 480px);
    background:#fff;
    border-radius:18px;
    box-shadow:0 30px 55px rgba(15,23,42,.32);
    overflow:hidden;
}

.vin-scanner-header {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:16px 18px;
    border-bottom:1px solid #edf2f7;
}

.vin-scanner-header h3 {
    margin:0;
    color:#111827;
    font-size:1.1rem;
}

.vin-close-button {
    border:none;
    background:transparent;
    color:#475569;
    font-weight:700;
    cursor:pointer;
}

.vin-camera-stage {
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:290px;
    background:#0f172a;
}

.vin-scanner-modal.is-fallback .vin-camera-stage {
    min-height:150px;
    height:auto;
    padding:28px 18px;
    background:#f8fafc;
}

.vin-scanner-modal.is-fallback .vin-camera-overlay {
    display:none;
}

.vin-scanner-modal.is-fallback .vin-scanner-status {
    position:static;
    padding:0;
    background:transparent;
    color:#334155;
    font-size:.9rem;
    line-height:1.45;
}

.vin-camera-stage video {
    width:100%;
    height:100%;
    object-fit:cover;
    background:#0f172a;
}

.vin-camera-overlay {
    position:absolute;
    inset:18px;
    border:2px solid rgba(255,255,255,.8);
    border-radius:16px;
    box-shadow:inset 0 0 0 100vmax rgba(15,23,42,.28);
}

.vin-scanner-status {
    position:absolute;
    left:16px;
    right:16px;
    bottom:16px;
    z-index:2;
    padding:9px 12px;
    border-radius:999px;
    background:rgba(15,23,42,.7);
    color:#fff;
    font-size:.8rem;
    font-weight:700;
    text-align:center;
}

.vin-camera-actions {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    padding:16px 18px 10px;
}

.vin-fallback-row {
    padding:0 18px 18px;
}

.vin-fallback-button {
    width:100%;
    min-height:48px;
    border:1px solid #94a3b8;
    background:#f8fafc;
    border-radius:9px;
    color:#0f172a;
    font-size:.95rem;
    font-weight:800;
    cursor:pointer;
}

.request-summary-card {
    padding:24px 18px;
    background:#f8fafc;
    border:1px solid #d7dde5;
    border-radius:11px;
    text-align:center;
}

.request-summary-card p,
.request-summary-card span {
    margin:0;
    color:#667085;
    font-size:.9rem;
    line-height:1.4;
}

.request-summary-card strong {
    display:block;
    margin:8px 0;
    color:var(--red-dark);
    font-family:Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
    font-size:2.4rem;
    letter-spacing:.02em;
}

.success-page {
    display:flex;
    align-items:flex-start;
    justify-content:center;
}

.success-shell {
    display:flex;
    flex-direction:column;
    align-items:center;
}

.success-logo-link {
    margin-bottom:18px;
}

.success-card {
    width:100%;
    max-width:530px;
    padding:28px 20px 24px;
    background:#ffffff;
    border-radius:15px;
    color:#111827;
    text-align:center;
    box-shadow:0 16px 38px rgba(0,0,0,.3);
}

.success-check {
    width:66px;
    height:66px;
    margin:0 auto 12px;
    fill:none;
    stroke:#159447;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.success-eyebrow {
    margin:0 0 7px;
    color:var(--red-dark);
    font-size:.8rem;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.success-card h1 {
    margin:0;
    color:var(--navy);
    font-family:Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
    font-size:clamp(2rem, 9.2vw, 3.1rem);
    letter-spacing:.02em;
    line-height:1.02;
    text-transform:uppercase;
}

.success-message {
    max-width:430px;
    margin:14px auto 22px;
    color:#526071;
    font-size:1rem;
    line-height:1.5;
}

.success-actions {
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    gap:9px;
}

.success-call-button,
.success-home-button {
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:58px;
    padding:10px 14px;
    border-radius:9px;
    font-weight:900;
    text-decoration:none;
}

.success-call-button {
    gap:12px;
    background:linear-gradient(135deg, var(--red-dark), var(--red));
    color:var(--white);
}

.success-call-button svg {
    width:27px;
    height:27px;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.success-call-button span {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    line-height:1.15;
}

.success-call-button small {
    margin-top:3px;
    font-size:.95rem;
}

.success-home-button {
    border:1px solid #64748b;
    background:#ffffff;
    color:var(--navy);
}

.success-availability {
    margin:17px 0 0;
    color:#667085;
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.025em;
    text-transform:uppercase;
}

@keyframes fadeIn {
    from {
        opacity:0;
        transform:translateY(15px);
    }

    to {
        opacity:1;
        transform:translateY(0);
    }
}


/* SMALL PHONES */

@media(max-width:699px) {
    .home-page {
        padding-bottom:calc(148px + env(safe-area-inset-bottom));
    }

    .mobile-tow-action {
        position:fixed;
        z-index:80;
        left:50%;
        bottom:0;
        align-items:flex-start;
        width:min(calc(100% - 10px), 488px);
        height:calc(64px + env(safe-area-inset-bottom));
        padding:0 14px env(safe-area-inset-bottom);
        transform:translateX(-50%);
        background:rgba(3,20,38,.98);
        border-top:1px solid rgba(255,0,20,.72);
        box-shadow:0 -5px 18px rgba(0,0,0,.25);
    }

    .mobile-tow-action-link {
        flex-direction:column;
        gap:5px;
        width:108px;
        min-height:120px;
        padding:10px 8px 12px;
        transform:translateY(-58px);
        border-width:4px;
        border-radius:56px 56px 25px 25px;
        font-size:.78rem;
        letter-spacing:.08em;
        box-shadow:0 13px 30px rgba(0,0,0,.48), inset 0 0 0 1px rgba(255,255,255,.24);
    }

    .mobile-tow-action-icon {
        width:59px;
        height:59px;
        background:rgba(3,20,38,.2);
        border:1px solid rgba(255,255,255,.28);
        border-radius:50%;
        box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
    }

    .mobile-tow-action-link svg {
        width:45px;
        height:45px;
        stroke-width:2;
    }

    .mobile-tow-action-text {
        flex-direction:column;
        gap:0;
        line-height:1.02;
    }
}

@media(max-width:359px) {
    .home-hero {
        padding-left:12px;
        padding-right:12px;
    }

    .home-logo-panel {
        max-width:calc(100% - 90px);
    }

    .home-hero h1 {
        font-size:2.3rem;
    }

    .home-service-card {
        padding-left:3px;
        padding-right:3px;
    }

    .home-service-card h3 {
        font-size:.77rem;
    }

    .home-service-card p {
        font-size:.62rem;
    }

    .home-service-artwork {
        max-width:96px;
        height:88px;
    }

    .home-phone {
        font-size:1.38rem;
    }

    .admin-header {
        padding-left:14px;
        padding-right:14px;
    }

    .admin-title-row h1 {
        font-size:1.7rem;
    }

    .admin-new-request {
        padding-left:8px;
        padding-right:8px;
        font-size:.73rem;
    }

    .request-detail-row {
        grid-template-columns:18px minmax(92px, .68fr) minmax(0, 1.25fr);
        gap:5px;
    }

    .request-detail-label,
    .request-detail-value {
        font-size:.78rem;
    }
}


/* TABLET AND DESKTOP */

@media(min-width:700px) {
    .home-page {
        width:100%;
        max-width:none;
        margin:0;
        overflow:hidden;
        border-radius:0;
    }

    .home-hero {
        width:100%;
        max-width:none;
        margin:0;
        padding-left:36px;
        padding-right:36px;
    }

    .home-hero > .home-shell {
        width:100%;
        max-width:1280px;
    }

    .home-topbar {
        max-width:860px;
        height:clamp(360px, 30vw, 440px);
        margin:0 auto;
    }

    .home-logo-panel {
        width:clamp(360px, 30vw, 440px);
        height:auto;
    }

    .home-logo {
        width:100%;
    }

    .home-hero-copy {
        max-width:820px;
        margin-top:32px;
    }

    .home-hero h1 {
        font-size:clamp(4.8rem, 6vw, 6.15rem);
    }

    .slide-call {
        max-width:600px;
        margin-top:22px;
    }

    .slide-call-label {
        font-size:1.02rem;
    }

    .home-services > .home-shell {
        max-width:1180px;
    }

    .home-services {
        padding:38px 34px 34px;
    }

    .home-service-location {
        margin-bottom:29px;
        font-size:1.05rem;
    }

    .home-service-grid {
        gap:14px;
    }

    .home-service-card {
        min-height:260px;
        padding:20px 12px;
    }

    .home-service-artwork {
        max-width:180px;
        height:160px;
        margin-bottom:14px;
    }

    .home-service-card h3 {
        font-size:1.12rem;
    }

    .home-service-card p {
        font-size:.9rem;
    }

    .home-contact {
        padding:22px 28px;
    }

    .home-contact > .home-contact-inner {
        max-width:640px;
        min-height:88px;
        padding:13px 22px;
    }

    .home-contact-icon-wrap {
        width:60px;
        height:60px;
    }

    .home-contact-icon {
        width:30px;
        height:30px;
    }

    .home-phone {
        font-size:2rem;
    }

    .home-contact-status {
        font-size:.76rem;
    }

    .admin-page {
        max-width:1180px;
        margin:18px auto;
        border-radius:16px;
    }

    .admin-header {
        padding-left:30px;
        padding-right:30px;
        padding-bottom:25px;
    }

    .admin-topbar {
        height:160px;
    }

    .admin-logo-panel {
        width:155px;
        height:auto;
    }

    .admin-logo-panel img {
        width:100%;
    }

    .admin-title-row h1 {
        font-size:3rem;
    }

    .admin-subtitle {
        max-width:440px;
        font-size:1rem;
    }

    .admin-new-request {
        padding:12px 19px;
        font-size:1rem;
    }

    .admin-request-list {
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:22px;
        padding:28px;
    }

    .request-detail-label,
    .request-detail-value {
        font-size:.95rem;
    }

    .request-page,
    .success-page {
        padding:24px;
    }

    .request-header {
        flex-direction:row;
        justify-content:center;
        gap:28px;
        max-width:640px;
        margin:0 auto;
        padding-bottom:24px;
        text-align:left;
    }

    .request-logo-link {
        flex:0 0 220px;
        width:220px;
    }

    .request-header-copy {
        flex:1;
        min-width:0;
        padding-top:0;
    }

    .request-header h1 {
        font-size:3.2rem;
    }

    .request-form .step {
        min-height:460px;
        padding:29px 31px;
    }

    .request-field-grid {
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:0 18px;
    }

    .success-logo-link {
        width:240px;
        margin-bottom:24px;
    }

    .success-card {
        padding:38px 38px 30px;
    }

    .success-actions {
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }
}

@media(max-width:599px) {
    .request-page,
    .success-page {
        padding:10px;
    }

    .request-form .step {
        padding-right:15px;
        padding-left:15px;
    }
}

/* Keep Phase 2 disclosure state authoritative over component display rules. */
.completed-card-summary[hidden],
[data-full-card][hidden] {
    display:none !important;
}

@media(min-width:700px) {
    .admin-request-list.completed-request-list {
        grid-template-columns:minmax(0, 1fr);
    }

    .completed-request-card {
        box-shadow:0 2px 6px rgba(0,0,0,.09);
    }
}


/* ADMIN DASHBOARD — PHASE 1 */

.sr-only {
    position:absolute !important;
    width:1px !important;
    height:1px !important;
    padding:0 !important;
    margin:-1px !important;
    overflow:hidden !important;
    clip:rect(0, 0, 0, 0) !important;
    white-space:nowrap !important;
    border:0 !important;
}

.admin-page {
    display:grid;
    grid-template-columns:248px minmax(0, 1fr);
    width:100%;
    max-width:none;
    min-height:100dvh;
    margin:0;
    overflow:visible;
    background:
        radial-gradient(circle at 82% 0, rgba(197,24,36,.08), transparent 29rem),
        #050d17;
    color:#f8fafc;
    border-radius:0;
}

.admin-sidebar {
    position:sticky;
    z-index:20;
    top:0;
    display:flex;
    flex-direction:column;
    width:248px;
    height:100dvh;
    min-width:0;
    padding:20px 15px 18px;
    background:linear-gradient(180deg, #071728, #030a12 86%);
    border-right:1px solid rgba(148,163,184,.14);
    box-shadow:10px 0 34px rgba(0,0,0,.2);
}

.admin-sidebar-logo {
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:116px;
    margin-bottom:14px;
    text-decoration:none;
}

.admin-sidebar-logo img {
    width:160px;
    max-width:100%;
    height:auto;
    object-fit:contain;
}

.admin-sidebar-profile,
.admin-header-user {
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
}

.admin-sidebar-profile {
    margin:0 5px 18px;
    padding:12px 11px;
    background:rgba(255,255,255,.045);
    border:1px solid rgba(148,163,184,.12);
    border-radius:10px;
}

.admin-sidebar-profile > span,
.admin-header-user > span {
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:center;
    width:34px;
    height:34px;
    background:linear-gradient(135deg, #e21b2b, #9d0d19);
    border-radius:50%;
    color:#fff;
    font-size:.88rem;
    font-weight:900;
}

.admin-sidebar-profile div,
.admin-header-user div {
    display:grid;
    min-width:0;
}

.admin-sidebar-profile strong,
.admin-header-user strong {
    min-width:0;
    overflow:hidden;
    color:#fff;
    font-size:.83rem;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.admin-sidebar-profile small,
.admin-header-user small {
    margin-top:2px;
    color:#8492a6;
    font-size:.66rem;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.admin-sidebar-nav {
    display:grid;
    gap:5px;
}

.admin-sidebar-nav a,
.admin-sidebar-nav > span,
.admin-sidebar-logout button {
    display:grid;
    grid-template-columns:21px minmax(0, 1fr) auto;
    align-items:center;
    gap:10px;
    width:100%;
    min-width:0;
    min-height:43px;
    padding:9px 11px;
    background:transparent;
    border:0;
    border-radius:8px;
    color:#b7c2d0;
    font-size:.79rem;
    font-weight:800;
    line-height:1.2;
    text-decoration:none;
}

.admin-sidebar-nav a:hover,
.admin-sidebar-nav a[aria-current="page"] {
    background:linear-gradient(90deg, rgba(226,27,43,.2), rgba(226,27,43,.06));
    color:#fff;
    box-shadow:inset 3px 0 0 #e21b2b;
}

.admin-sidebar-nav > span {
    color:#59677a;
    cursor:not-allowed;
}

.admin-sidebar-nav small {
    padding:2px 5px;
    background:rgba(148,163,184,.09);
    border-radius:999px;
    font-size:.55rem;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.admin-sidebar-nav svg,
.admin-sidebar-logout svg,
.admin-drawer nav svg {
    width:20px;
    height:20px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.admin-sidebar-logout {
    margin-top:auto;
}

.admin-sidebar-logout button {
    grid-template-columns:21px minmax(0, 1fr);
    color:#d7dee8;
    cursor:pointer;
    text-align:left;
}

.admin-sidebar-logout button:hover {
    background:rgba(226,27,43,.12);
    color:#fff;
}

.admin-shell {
    grid-column:2;
    width:100%;
    max-width:1500px;
    min-width:0;
    margin:0 auto;
    padding:0 30px 42px;
}

.admin-header.dashboard-header {
    margin:0 -30px 0;
    padding:29px 36px 25px;
    background:rgba(5,13,23,.9);
    border-bottom:1px solid rgba(148,163,184,.12);
}

.admin-mobile-topbar {
    display:none;
}

.admin-heading-row {
    align-items:center;
    gap:24px;
}

.admin-title-row {
    gap:11px;
}

.admin-title-icon {
    width:34px;
    height:34px;
    stroke:#eb2635;
}

.admin-title-row h1 {
    font-family:Arial, Helvetica, sans-serif;
    font-size:clamp(1.85rem, 3vw, 2.55rem);
    letter-spacing:-.025em;
    line-height:1;
    text-transform:none;
    white-space:normal;
}

.admin-subtitle {
    max-width:590px;
    margin-top:8px;
    color:#8f9caf;
    font-size:.88rem;
}

.admin-header-actions {
    flex:0 0 auto;
    display:flex;
    align-items:center;
    gap:12px;
}

.admin-header-user {
    padding-right:13px;
    border-right:1px solid rgba(148,163,184,.16);
}

.admin-notification-link {
    position:relative;
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    background:#0b1929;
    border:1px solid rgba(148,163,184,.18);
    border-radius:10px;
    color:#dce3ec;
    text-decoration:none;
}

.admin-notification-link svg {
    width:20px;
    height:20px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
}

.admin-notification-link > span {
    position:absolute;
    top:-5px;
    right:-5px;
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:19px;
    height:19px;
    padding:0 4px;
    background:#e21b2b;
    border:2px solid #050d17;
    border-radius:999px;
    color:#fff;
    font-size:.62rem;
    font-weight:900;
}

.admin-notification-mobile {
    display:none;
}

.admin-new-request {
    min-height:42px;
    padding:10px 15px;
    background:linear-gradient(135deg, #e21b2b, #b40f1d);
    border-radius:9px;
    font-size:.8rem;
    box-shadow:0 8px 22px rgba(180,15,29,.2);
}

.admin-summary-grid {
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:14px;
    margin:25px 0 4px;
}

.admin-summary-card {
    display:flex;
    align-items:center;
    gap:15px;
    min-width:0;
    min-height:112px;
    padding:17px 18px;
    overflow:hidden;
    background:linear-gradient(145deg, #0b1a2a, #07131f);
    border:1px solid rgba(148,163,184,.14);
    border-radius:13px;
    color:#fff;
    text-decoration:none;
    box-shadow:0 13px 30px rgba(0,0,0,.16);
    transition:transform .18s ease, border-color .18s ease;
}

.admin-summary-card:hover {
    transform:translateY(-2px);
    border-color:rgba(226,27,43,.46);
}

.admin-summary-icon {
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:center;
    width:46px;
    height:46px;
    background:rgba(226,27,43,.13);
    border-radius:11px;
    color:#ef3342;
}

.summary-active .admin-summary-icon {
    background:rgba(36,115,193,.15);
    color:#4d9ce9;
}

.summary-completed .admin-summary-icon {
    background:rgba(34,158,82,.14);
    color:#42c876;
}

.admin-summary-icon svg {
    width:24px;
    height:24px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
}

.admin-summary-card > span:last-child {
    display:grid;
    min-width:0;
}

.admin-summary-card small {
    color:#a7b2c1;
    font-size:.67rem;
    font-weight:900;
    letter-spacing:.09em;
    text-transform:uppercase;
}

.admin-summary-card strong {
    margin-top:4px;
    font-size:2rem;
    line-height:1;
}

.admin-summary-card em {
    margin-top:5px;
    overflow:hidden;
    color:#6f7e91;
    font-size:.68rem;
    font-style:normal;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.admin-request-filters,
.admin-history-search {
    display:grid;
    grid-template-columns:minmax(220px, 1fr) minmax(155px, auto) minmax(135px, auto) auto auto;
    align-items:center;
    gap:9px;
    max-width:none;
    margin:21px 0 1px;
    padding:11px;
    background:#091624;
    border:1px solid rgba(148,163,184,.14);
    border-radius:11px;
    box-shadow:none;
}

.admin-filter-search,
.admin-filter-select {
    display:grid;
    grid-template-columns:20px minmax(0, 1fr);
    align-items:center;
    min-width:0;
    min-height:43px;
    padding:0 11px;
    background:#050f1a;
    border:1px solid rgba(148,163,184,.17);
    border-radius:8px;
    color:#77869a;
}

.admin-filter-search svg,
.admin-filter-select svg {
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
}

.admin-filter-search input,
.admin-filter-select select {
    min-width:0;
    width:100%;
    height:41px;
    padding:0 4px 0 8px;
    background:transparent;
    border:0;
    color:#e8edf4;
    font-size:16px;
    outline:0;
}

.admin-filter-select select {
    font-size:.78rem;
}

.admin-request-filters > button {
    min-height:43px;
    padding:9px 15px;
    background:#d7192a;
    border:0;
    border-radius:8px;
    color:#fff;
    font-weight:900;
    cursor:pointer;
}

.admin-request-filters > a,
.admin-history-clear {
    color:#99a9bc;
    font-size:.75rem;
    font-weight:800;
    text-underline-offset:3px;
}

.admin-history-search {
    display:block;
    max-width:760px;
}

.admin-history-search label {
    color:#aeb9c7;
}

.admin-history-search > div {
    background:#050f1a;
    border-color:rgba(148,163,184,.2);
}

.admin-history-search input {
    background:transparent;
    color:#fff;
}

.admin-history-search button {
    background:#d7192a;
}

.admin-history-clear {
    display:inline-block;
    margin-top:10px;
}

.admin-section-heading {
    padding:26px 1px 0;
}

.admin-section-heading > div {
    display:grid;
    gap:4px;
}

.section-kicker {
    color:#d82131;
    font-size:.62rem;
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.admin-section-heading h2 {
    color:#f3f6fa;
    font-size:1.05rem;
    letter-spacing:.035em;
}

.admin-section-heading > span,
.admin-section-heading > a {
    color:#78879a;
}

.admin-request-list,
.admin-request-list.completed-request-list {
    grid-template-columns:minmax(0, 1fr);
    gap:13px;
    padding:15px 0 20px;
}

.admin-request-card,
.completed-request-card {
    overflow:hidden;
    background:linear-gradient(145deg, #0b1a2a, #07131f);
    border:1px solid rgba(148,163,184,.15);
    border-radius:13px;
    color:#e8edf4;
    box-shadow:0 12px 30px rgba(0,0,0,.18);
}

.admin-request-card.request-status-accepted {
    border-color:rgba(47,177,93,.45);
    box-shadow:inset 3px 0 0 #2cad59, 0 12px 30px rgba(0,0,0,.18);
}

.admin-request-card.request-status-on-the-way-to-pickup {
    border-color:rgba(58,139,219,.45);
    box-shadow:inset 3px 0 0 #2d7dca, 0 12px 30px rgba(0,0,0,.18);
}

.admin-request-card.request-status-on-site {
    border-color:rgba(224,159,40,.48);
    box-shadow:inset 3px 0 0 #d79725, 0 12px 30px rgba(0,0,0,.18);
}

.admin-request-card.request-status-en-route-to-drop-off {
    border-color:rgba(71,111,175,.5);
    box-shadow:inset 3px 0 0 #426ba8, 0 12px 30px rgba(0,0,0,.18);
}

.dispatch-card-header {
    padding:17px 18px 11px;
}

.dispatch-card-header > div {
    display:grid;
    grid-template-columns:auto auto;
    align-items:end;
    justify-content:start;
    gap:0 7px;
}

.dispatch-card-header .request-card-eyebrow {
    grid-column:1 / -1;
    color:#6f7d90;
}

.dispatch-card-header h2 {
    color:#f04452;
}

.dispatch-card-header time {
    padding-bottom:2px;
    color:#6f7d90;
    font-size:.66rem;
}

.status-badge {
    border:1px solid transparent;
}

.status-pending,
.status-new {
    background:rgba(226,27,43,.16);
    border-color:rgba(226,27,43,.28);
    color:#ff6975;
}

.status-accepted {
    background:rgba(45,173,89,.17);
    border-color:rgba(45,173,89,.3);
    color:#67de8d;
}

.status-on-the-way-to-pickup {
    background:rgba(45,125,202,.18);
    border-color:rgba(45,125,202,.32);
    color:#69b4fa;
}

.status-on-site {
    background:rgba(215,151,37,.18);
    border-color:rgba(215,151,37,.32);
    color:#f1b84d;
}

.status-en-route-to-drop-off {
    background:rgba(66,107,168,.22);
    border-color:rgba(92,137,205,.34);
    color:#93bff8;
}

.status-completed {
    background:rgba(45,173,89,.17);
    border-color:rgba(45,173,89,.3);
    color:#70dc94;
}

.dispatch-card-overview {
    display:grid;
    grid-template-columns:1.05fr 1.65fr .82fr .72fr;
    gap:0;
    min-width:0;
    margin:0 18px;
    border-top:1px solid rgba(148,163,184,.11);
    border-bottom:1px solid rgba(148,163,184,.11);
}

.dispatch-card-overview > section {
    min-width:0;
    padding:15px 16px;
    border-right:1px solid rgba(148,163,184,.1);
}

.dispatch-card-overview > section:first-child {
    padding-left:0;
}

.dispatch-card-overview > section:last-child {
    padding-right:0;
    border-right:0;
}

.dispatch-overview-label {
    display:flex;
    align-items:center;
    gap:5px;
    margin-bottom:6px;
    color:#6f7f92;
    font-size:.61rem;
    font-weight:900;
    letter-spacing:.07em;
    line-height:1.2;
    text-transform:uppercase;
}

.dispatch-overview-label svg {
    width:13px;
    height:13px;
    fill:none;
    stroke:#d72a38;
    stroke-width:2;
}

.dispatch-identity h3 {
    margin:0 0 3px;
    color:#fff;
    font-size:1rem;
}

.dispatch-identity p,
.dispatch-locations p,
.dispatch-service time,
.dispatch-evidence-preview > p {
    margin:0;
    color:#9aa7b7;
    font-size:.75rem;
    line-height:1.38;
    overflow-wrap:anywhere;
}

.dispatch-identity a {
    display:inline-block;
    margin-top:6px;
    color:#62a9ef;
    font-size:.76rem;
    font-weight:800;
    text-decoration:none;
}

.dispatch-locations {
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:15px;
}

.dispatch-service {
    display:grid;
    align-content:start;
    gap:5px;
}

.dispatch-service strong {
    color:#e6ebf1;
    font-size:.79rem;
    overflow-wrap:anywhere;
}

.dispatch-preview-button {
    position:relative;
    display:block;
    width:100%;
    min-width:0;
    max-width:112px;
    padding:0;
    overflow:hidden;
    background:#050d17;
    border:1px solid rgba(148,163,184,.2);
    border-radius:7px;
    color:#fff;
    cursor:zoom-in;
}

.dispatch-preview-button img {
    width:100%;
    height:54px;
    object-fit:cover;
}

.dispatch-preview-button span {
    display:block;
    padding:4px 5px;
    overflow:hidden;
    font-size:.58rem;
    font-weight:800;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.request-progress {
    display:grid;
    grid-template-columns:repeat(5, minmax(0, 1fr));
    width:100%;
    max-width:800px;
    margin:0 auto;
    padding:17px 18px 14px;
    list-style:none;
}

.request-progress li {
    position:relative;
    display:grid;
    justify-items:center;
    gap:5px;
    min-width:0;
    color:#526174;
    text-align:center;
}

.request-progress li::before {
    content:"";
    position:absolute;
    z-index:0;
    top:14px;
    left:-50%;
    width:100%;
    height:2px;
    background:#253343;
}

.request-progress li:first-child::before {
    display:none;
}

.request-progress li > span {
    position:relative;
    z-index:1;
    display:flex;
    align-items:center;
    justify-content:center;
    width:29px;
    height:29px;
    background:#111f2e;
    border:1px solid #2d3b4c;
    border-radius:50%;
}

.request-progress svg {
    width:14px;
    height:14px;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
}

.request-progress small {
    max-width:90px;
    font-size:.59rem;
    font-weight:800;
    line-height:1.15;
}

.request-progress li.is-complete,
.request-progress li.is-current {
    color:#65d58a;
}

.request-progress li.is-complete::before,
.request-progress li.is-current::before {
    background:#2ca95a;
}

.request-progress li.is-complete > span,
.request-progress li.is-current > span {
    background:rgba(44,169,90,.16);
    border-color:#2ca95a;
}

.request-progress li.is-current {
    color:#fff;
}

.request-progress li.is-current > span {
    box-shadow:0 0 0 4px rgba(44,169,90,.1);
}

.request-quick-toolbar {
    display:grid;
    grid-template-columns:repeat(6, minmax(0, 1fr));
    min-width:0;
    padding:0;
    background:#07121e;
    border-top:1px solid rgba(148,163,184,.12);
}

.request-quick-toolbar a,
.request-quick-toolbar button {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    min-width:0;
    min-height:49px;
    padding:8px 6px;
    background:transparent;
    border:0;
    border-right:1px solid rgba(148,163,184,.1);
    color:#a9b5c4;
    font-size:.65rem;
    font-weight:800;
    line-height:1.1;
    text-decoration:none;
    cursor:pointer;
}

.request-quick-toolbar > :last-child {
    border-right:0;
}

.request-quick-toolbar a:hover,
.request-quick-toolbar button:not(:disabled):hover {
    background:rgba(226,27,43,.09);
    color:#fff;
}

.request-quick-toolbar button:disabled {
    color:#445163;
    cursor:not-allowed;
}

.request-quick-toolbar svg {
    flex:0 0 auto;
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.request-quick-toolbar span {
    display:flex;
    align-items:center;
    gap:3px;
    min-width:0;
}

.request-quick-toolbar small {
    padding:2px 4px;
    background:rgba(226,27,43,.15);
    border-radius:999px;
    font-size:.48rem;
    line-height:1;
    text-transform:uppercase;
}

.request-expanded-details[hidden] {
    display:none !important;
}

.request-expanded-details {
    padding:14px 16px 17px;
    background:#0a1725;
    border-top:1px solid rgba(148,163,184,.14);
}

.request-expanded-heading {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:8px;
}

.request-expanded-heading h3 {
    margin:0;
    color:#fff;
    font-size:.8rem;
    letter-spacing:.07em;
    text-transform:uppercase;
}

.request-expanded-heading button {
    padding:6px 9px;
    background:transparent;
    border:1px solid rgba(148,163,184,.25);
    border-radius:6px;
    color:#aab6c5;
    font-size:.68rem;
    font-weight:800;
    cursor:pointer;
}

.request-expanded-details .request-card-details {
    background:#07131f;
    border-color:rgba(148,163,184,.13);
}

.request-expanded-details .request-detail-row {
    border-color:rgba(148,163,184,.12);
}

.request-expanded-details .request-detail-icon,
.request-expanded-details .request-detail-label {
    color:#8593a5;
    stroke:#8593a5;
}

.request-expanded-details .request-detail-value {
    color:#e6ebf2;
}

.request-expanded-details .request-extra-details,
.request-expanded-details .evidence-group,
.request-expanded-details .evidence-signature-status {
    background:#07131f;
    border-color:rgba(148,163,184,.15);
}

.request-expanded-details .request-extra-details summary,
.request-expanded-details .request-notes h3,
.request-expanded-details .request-photos h3,
.request-expanded-details .evidence-group-heading h3 {
    color:#dbe2ea;
}

.request-expanded-details .request-notes p,
.request-expanded-details .evidence-empty,
.request-expanded-details .evidence-signature-status {
    color:#94a2b3;
}

.request-expanded-details .evidence-group-heading span {
    background:#132235;
    color:#aeb9c6;
}

.request-expanded-details .evidence-file-button {
    background:#0b1c2e;
    border-color:#35455a;
    color:#e5ebf2;
}

.completed-card-summary {
    color:#e6ebf2;
}

.completed-card-main strong {
    color:#fff;
}

.completed-card-main span:last-child,
.completed-card-meta time {
    color:#8391a3;
}

.completed-toggle {
    background:#111f2e;
    border-color:#2a394a;
    color:#c8d1dd;
}

.completed-workspace-link {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:30px;
    padding:5px 9px;
    background:#d52636;
    border-radius:7px;
    color:#fff;
    font-size:.62rem;
    font-weight:900;
    text-decoration:none;
}

.completed-full-details {
    background:#0a1725;
    border-color:rgba(148,163,184,.13);
}

.completed-full-details .request-card-details,
.completed-full-details .evidence-group,
.completed-full-details .evidence-signature-status,
.completed-full-details .request-extra-details {
    background:#07131f;
    border-color:rgba(148,163,184,.15);
}

.completed-full-details .request-detail-row {
    border-color:rgba(148,163,184,.12);
}

.completed-full-details .request-detail-label,
.completed-full-details .request-detail-icon {
    color:#8492a5;
    stroke:#8492a5;
}

.completed-full-details .request-detail-value,
.completed-full-details .request-extra-details summary,
.completed-full-details .evidence-group-heading h3 {
    color:#e5ebf2;
}

.admin-empty-state {
    margin:15px 0;
    background:#091624;
    border:1px solid rgba(148,163,184,.13);
    color:#8190a2;
}

.admin-drawer nav .admin-menu-disabled {
    grid-template-columns:22px minmax(0, 1fr) auto;
}

.admin-drawer nav svg {
    flex:0 0 auto;
}

.admin-mobile-nav {
    display:none;
}

@media(max-width:1099px) and (min-width:900px) {
    .admin-page {
        grid-template-columns:218px minmax(0, 1fr);
    }

    .admin-sidebar {
        width:218px;
    }

    .admin-shell {
        padding-right:20px;
        padding-left:20px;
    }

    .admin-header.dashboard-header {
        margin-right:-20px;
        margin-left:-20px;
        padding-right:24px;
        padding-left:24px;
    }

    .admin-header-user {
        display:none;
    }

    .dispatch-card-overview {
        grid-template-columns:1fr 1.5fr .8fr;
    }

    .dispatch-evidence-preview {
        display:none;
    }

    .dispatch-card-overview > section:nth-child(3) {
        border-right:0;
    }
}

@media(max-width:899px) {
    .admin-page {
        display:block;
        width:100%;
        min-height:100dvh;
        padding-bottom:calc(72px + env(safe-area-inset-bottom));
    }

    .admin-sidebar {
        display:none;
    }

    .admin-shell {
        width:100%;
        max-width:760px;
        margin:0 auto;
        padding:0 14px 28px;
    }

    .admin-header.dashboard-header {
        margin:0 -14px;
        padding:0 16px 20px;
        border-radius:0;
    }

    .admin-mobile-topbar {
        display:flex;
        align-items:center;
        justify-content:space-between;
        width:100%;
        height:108px;
        margin:0;
        padding:0;
        background:transparent;
    }

    .admin-logo-panel {
        position:static;
        display:flex;
        align-items:center;
        justify-content:flex-start;
        width:124px;
        max-width:calc(100% - 64px);
        height:auto;
        overflow:visible;
        transform:none;
        background:transparent;
    }

    .admin-logo-panel img {
        width:100%;
        height:auto;
        object-fit:contain;
    }

    .admin-notification-mobile {
        display:flex;
    }

    .admin-heading-row {
        align-items:flex-end;
        gap:12px;
    }

    .admin-title-row h1 {
        font-size:clamp(1.65rem, 7.5vw, 2.15rem);
    }

    .admin-subtitle {
        max-width:300px;
        font-size:.76rem;
    }

    .admin-header-user,
    .admin-header-actions .admin-notification-link {
        display:none;
    }

    .admin-new-request {
        padding:9px 10px;
        font-size:.69rem;
    }

    .admin-summary-grid {
        gap:7px;
        margin-top:16px;
    }

    .admin-summary-card {
        display:grid;
        justify-items:center;
        gap:7px;
        min-height:105px;
        padding:11px 5px;
        text-align:center;
    }

    .admin-summary-icon {
        width:35px;
        height:35px;
    }

    .admin-summary-icon svg {
        width:19px;
        height:19px;
    }

    .admin-summary-card small {
        font-size:.55rem;
        line-height:1.2;
    }

    .admin-summary-card strong {
        font-size:1.55rem;
    }

    .admin-summary-card em {
        display:none;
    }

    .admin-request-filters {
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:7px;
        margin-top:14px;
        padding:8px;
    }

    .admin-filter-search {
        grid-column:1 / -1;
    }

    .admin-request-filters > button {
        min-height:40px;
    }

    .admin-request-filters > a {
        align-self:center;
        justify-self:center;
    }

    .admin-section-heading {
        margin:0;
        padding-top:22px;
    }

    .admin-request-list,
    .admin-request-list.completed-request-list {
        padding:13px 0 18px;
    }

    .admin-drawer {
        width:min(360px, 90vw);
        background:linear-gradient(180deg, #0b1a2a, #030a12);
    }

    .admin-drawer nav .admin-menu-disabled {
        display:grid;
    }

    .admin-mobile-nav {
        position:fixed;
        z-index:90;
        right:0;
        bottom:0;
        left:0;
        display:grid;
        grid-template-columns:repeat(5, minmax(0, 1fr));
        min-height:calc(65px + env(safe-area-inset-bottom));
        padding:5px 6px env(safe-area-inset-bottom);
        background:rgba(5,14,24,.97);
        border-top:1px solid rgba(148,163,184,.18);
        box-shadow:0 -9px 24px rgba(0,0,0,.28);
        backdrop-filter:blur(14px);
    }

    .admin-mobile-nav a,
    .admin-mobile-nav button {
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        gap:4px;
        min-width:0;
        min-height:55px;
        padding:5px 2px;
        background:transparent;
        border:0;
        border-radius:8px;
        color:#748398;
        font-size:.57rem;
        font-weight:800;
        text-decoration:none;
        cursor:pointer;
    }

    .admin-mobile-nav a[aria-current="page"] {
        background:rgba(226,27,43,.12);
        color:#fff;
    }

    .admin-mobile-nav a[aria-current="page"] svg {
        color:#ed3342;
    }

    .admin-mobile-nav svg {
        width:21px;
        height:21px;
        fill:none;
        stroke:currentColor;
        stroke-width:1.8;
        stroke-linecap:round;
        stroke-linejoin:round;
    }

    .dispatch-card-overview {
        grid-template-columns:minmax(0, 1fr);
        margin:0 14px;
    }

    .dispatch-card-overview > section {
        padding:11px 0;
        border-right:0;
        border-bottom:1px solid rgba(148,163,184,.1);
    }

    .dispatch-card-overview > section:last-child {
        border-bottom:0;
    }

    .dispatch-locations {
        grid-template-columns:minmax(0, 1fr);
        gap:11px;
    }

    .dispatch-service {
        grid-template-columns:minmax(0, 1fr) auto;
        align-items:end;
    }

    .dispatch-service .dispatch-overview-label {
        grid-column:1 / -1;
    }

    .dispatch-evidence-preview {
        display:grid;
        grid-template-columns:minmax(0, 1fr) auto;
        align-items:center;
    }

    .dispatch-evidence-preview .dispatch-overview-label {
        grid-column:1;
        margin:0;
    }

    .dispatch-evidence-preview > p,
    .dispatch-preview-button {
        grid-column:2;
        grid-row:1;
    }

    .dispatch-preview-button {
        width:88px;
    }

    .dispatch-preview-button img {
        height:46px;
    }

    .request-progress {
        padding:15px 9px 12px;
    }

    .request-progress li > span {
        width:27px;
        height:27px;
    }

    .request-progress li::before {
        top:13px;
    }

    .request-progress small {
        max-width:58px;
        font-size:.51rem;
    }

    .request-quick-toolbar a,
    .request-quick-toolbar button {
        flex-direction:column;
        gap:4px;
        min-height:58px;
        padding:7px 2px;
        font-size:.5rem;
    }

    .request-quick-toolbar svg {
        width:19px;
        height:19px;
    }

    .request-quick-toolbar span {
        justify-content:center;
    }

    .request-quick-toolbar small {
        font-size:.41rem;
    }

    .request-expanded-details {
        padding:13px 10px 15px;
    }

    .admin-history-search {
        margin:14px 0 1px;
    }
}

@media(max-width:430px) {
    .admin-shell {
        padding-right:12px;
        padding-left:12px;
    }

    .admin-header.dashboard-header {
        margin-right:-12px;
        margin-left:-12px;
        padding-right:13px;
        padding-left:13px;
    }

    .dispatch-card-header {
        padding-right:14px;
        padding-left:14px;
    }

    .request-progress small {
        font-size:.48rem;
    }

    .request-quick-toolbar a,
    .request-quick-toolbar button {
        font-size:.48rem;
    }
}
