/* Staff controls: one shape, type size, spacing, and interaction treatment.
   Scoped to staff pages so public storefront buttons retain their own style. */
.admin-interface { --admin-ink:#1f2937; --admin-accent:#fbbf24; }
.admin-interface .btn,
.admin-interface .admin-tab {
    display:inline-flex;
    justify-content:center;
    align-items:center;
    gap:.5rem;
    min-height:44px;
    padding:.6rem 1rem;
    border:1px solid transparent;
    border-radius:8px;
    font-family:inherit;
    font-size:.9375rem;
    font-weight:600;
    line-height:1.4;
    text-align:center;
    text-decoration:none;
    white-space:normal;
    box-shadow:none;
    transition:background-color .15s ease,border-color .15s ease,color .15s ease;
}
.admin-interface .admin-btn-primary { background:#1f2937; border-color:#1f2937; color:#fff; }
.admin-interface .admin-btn-primary:hover,
.admin-interface .admin-btn-primary:active { background:#111827; border-color:#111827; color:#fff; }
.admin-interface .admin-btn-secondary { background:#fff; border-color:#64748b; color:#1f2937; }
.admin-interface .admin-btn-secondary:hover,
.admin-interface .admin-btn-secondary:active { background:#f1f5f9; border-color:#1f2937; color:#111827; }
.admin-interface .admin-btn-danger { background:#fff; border-color:#b91c1c; color:#b91c1c; }
.admin-interface .admin-btn-danger:hover,
.admin-interface .admin-btn-danger:active { background:#b91c1c; border-color:#b91c1c; color:#fff; }
.admin-interface .btn:focus-visible,
.admin-interface .admin-tab:focus-visible { outline:3px solid #b45309; outline-offset:3px; box-shadow:none; }
.admin-interface .btn:disabled,
.admin-interface fieldset:disabled .btn { opacity:.55; cursor:not-allowed; pointer-events:none; }
.admin-heading { display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; margin-bottom:1rem; }
.admin-heading h1 { margin:0; }
.ticket-details-heading:focus { outline:2px solid #b45309; outline-offset:4px; border-radius:2px; }
.admin-version-badge { display:inline-block; padding:.35rem .65rem; border:1px solid #e5e7eb; border-radius:6px; background:#f8fafc; color:#475569; font-size:.8rem; font-weight:600; }
.admin-version { color:#64748b; font-size:.85rem; }
.admin-toolbar,
.admin-actions { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem; }
.admin-toolbar { margin-bottom:1rem; }
.admin-tabs { display:flex; flex-wrap:wrap; gap:.5rem; padding:1rem; border:1px solid #e2e8f0; border-radius:12px; background:#f8fafc; }
.admin-interface .admin-tabs .admin-tab { margin:0; background:#fff; border-color:#cbd5e1; color:#1f2937; }
.admin-interface .admin-tabs .admin-tab:hover { background:#e2e8f0; border-color:#64748b; }
.admin-interface .admin-tabs .admin-tab.active { background:#1f2937; border-color:#1f2937; color:#fbbf24; }
.admin-auth-page { max-width:560px; }
/* Razor staff pages share the same visible shop identity and page frame. */
.staff-shell { display:flex; flex-direction:column; min-height:100vh; min-height:100dvh; margin:0; background:#f4f6fa; color:#1f2937; font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif; line-height:1.55; }
.staff-site-header { background:linear-gradient(135deg,#1f2937,#111827); border-bottom:3px solid #dc2626; box-shadow:0 3px 14px #11182720; }
.staff-brand-wrap { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; width:100%; max-width:1320px; box-sizing:border-box; margin-inline:auto; padding:1rem 1.5rem; }
.staff-site-brand { display:inline-flex; align-items:center; gap:1rem; min-width:0; max-width:100%; color:#fbbf24; font-size:clamp(1.1rem,3vw,1.45rem); font-weight:700; line-height:1.3; text-decoration:none; }
.staff-site-brand img { flex:0 0 64px; width:64px; height:64px; object-fit:contain; }
.staff-site-brand span { min-width:0; overflow-wrap:break-word; }
.staff-site-brand:hover { color:#fde68a; }
.staff-site-brand:focus-visible { outline:3px solid #fbbf24; outline-offset:5px; border-radius:4px; }
.staff-site-label { color:#e2e8f0; font-size:.8rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.staff-shell .admin-auth-page { width:calc(100% - 2rem); box-sizing:border-box; margin:2.5rem auto; padding:2rem; background:#fff; border:1px solid #dbe2ea; border-radius:16px; box-shadow:0 12px 32px #1118270a; }
.staff-shell .admin-page { width:calc(100% - 2rem); margin-inline:auto; }
.staff-site-footer { margin-top:auto; padding:1rem; color:#526174; font-size:.85rem; text-align:center; }
.staff-site-footer p { margin:0 0 .25rem; }
.staff-skip-link { position:absolute; top:0; left:1rem; z-index:10; transform:translateY(-150%); padding:.75rem 1rem; background:#fff; color:#111827; border:2px solid #b45309; border-radius:6px; }
.staff-skip-link:focus { transform:translateY(0); }
@media(max-width:575px) {
    .staff-brand-wrap { padding:1rem; }
    .staff-site-brand { gap:.75rem; }
    .staff-site-brand img { flex-basis:48px; width:48px; height:48px; }
    .staff-site-label { display:none; }
    .staff-shell .admin-auth-page { margin:1.5rem auto; padding:1.25rem; }
}
.vehicle-art-preview { width:100%; max-width:400px; margin:0 0 1rem; padding:.5rem; border:1px solid #d8e1ea; border-radius:10px; background:#fff; }
.vehicle-art-preview img { display:block; width:100%; height:auto; }
.vehicle-art-preview figcaption { padding:.25rem .5rem; color:#475569; font-size:.85rem; }
@media(max-width:575px) {
    .admin-tabs { padding:.75rem; }
    .admin-interface .admin-tab { flex:1 1 140px; }
    .admin-toolbar .btn { flex:1 1 180px; }
}
@media(prefers-reduced-motion:reduce) { .admin-interface .btn,.admin-interface .admin-tab { transition:none; } }

.admin-interface .work-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1rem 0;padding:1rem;background:#f4f5f6;border-radius:8px}.admin-interface .work-summary span,.admin-interface .work-summary strong{display:block}.admin-interface .work-summary strong{font-size:1.15rem;margin-top:.35rem}.admin-interface .ticket-work-panel{padding:1.25rem;border:1px solid #c8cdd2;border-radius:8px}.admin-interface .lift-team{padding:0 1rem 1rem}.admin-interface .lift-team p{font-size:.9rem;margin-bottom:.5rem}.admin-interface .technician-picker input{accent-color:#262a2e}@media(max-width:767px){.admin-interface .work-summary{grid-template-columns:1fr}}

/* Confirmation dialogs share Bootstrap's header/body/footer and button styles. */
.slp-confirm-dialog { width:min(520px,calc(100vw - 2rem)); max-height:calc(100dvh - 2rem); padding:0; border:0; border-radius:14px; color:#1f2937; background:#fff; box-shadow:0 24px 80px rgba(15,23,42,.3); }
.slp-confirm-dialog::backdrop { background:rgba(15,23,42,.58); }
.slp-confirm-dialog .modal-content { border:0; border-radius:14px; }
.slp-confirm-dialog .modal-header,.slp-confirm-dialog .modal-body,.slp-confirm-dialog .modal-footer { padding:1.25rem; }
.slp-confirm-dialog .modal-header { border-bottom:1px solid #e2e8f0; }
.slp-confirm-dialog .modal-footer { border-top:1px solid #e2e8f0; }
.slp-confirm-dialog .modal-title { font-weight:650; line-height:1.4; }
.slp-confirm-dialog .modal-body { line-height:1.6; overflow-wrap:anywhere; }
.slp-confirm-dialog .modal-footer { gap:.5rem; background:#f8fafc; }
.slp-confirm-dialog .btn { min-height:44px; border-radius:8px; font-weight:600; }
.slp-confirm-dialog .btn:focus-visible,.slp-confirm-dialog .btn-close:focus-visible { outline:3px solid #b45309; outline-offset:3px; }
body:has(.slp-confirm-dialog[open]) { overflow:hidden; }
@media(max-width:575px) { .slp-confirm-dialog .modal-footer > .btn,.slp-confirm-dialog .modal-footer > form { flex:1; } .slp-confirm-dialog .modal-footer form .btn { width:100%; } }

/* The administrator landing page keeps daily sections visible and groups secondary tools. */
.admin-workspace-tools { display:flex; flex-wrap:wrap; align-items:center; gap:.75rem; margin:1.25rem 0; }
.admin-interface .admin-updates-link { color:#475569; text-decoration:none; }
.admin-interface .admin-updates-link:hover { background:#e2e8f0; color:#111827; text-decoration:underline; }
.admin-interface .admin-updates-link:focus-visible { outline:3px solid #b45309; outline-offset:3px; }
.admin-section-nav { margin-bottom:1.5rem; }
.admin-more-sections > .admin-tab { width:100%; }
.admin-interface .admin-nav-menu { min-width:16rem; max-width:calc(100vw - 2rem); max-height:calc(100dvh - 2rem); overflow-y:auto; padding:.5rem; border:1px solid #cbd5e1; border-radius:12px; box-shadow:0 12px 30px #0f172a24; }
.admin-interface .admin-nav-menu .dropdown-header { margin:0; padding:.55rem .75rem .3rem; color:#526174; font-size:.75rem; font-weight:700; letter-spacing:.03em; }
.admin-interface .admin-nav-menu .dropdown-item { display:flex; align-items:center; gap:.5rem; min-height:44px; padding:.65rem .75rem; border-radius:7px; color:#1f2937; font-size:.9375rem; font-weight:500; line-height:1.4; white-space:normal; overflow-wrap:break-word; }
.admin-interface .admin-nav-menu .dropdown-item:hover,
.admin-interface .admin-nav-menu .dropdown-item:focus { background:#f1f5f9; color:#111827; }
.admin-interface .admin-nav-menu .dropdown-item:focus-visible { outline:3px solid #b45309; outline-offset:-3px; }
.admin-interface .admin-nav-menu .dropdown-item.active { background:#1f2937; color:#fbbf24; }
.admin-interface .admin-nav-menu .dropdown-item:disabled { opacity:.55; pointer-events:none; }
.admin-interface .admin-nav-menu .dropdown-divider { margin:.4rem 0; }
.admin-list-toolbar { display:flex; flex-wrap:wrap; gap:.75rem; margin:1.5rem 0 -1rem; }
@media(max-width:575px) {
    .admin-workspace-tools > .btn,.admin-workspace-tools > .dropdown { flex:1 1 100%; }
    .admin-workspace-tools > .dropdown > .btn { width:100%; }
    .admin-section-nav > .admin-tab,.admin-section-nav > .admin-more-sections { flex:1 1 140px; min-width:0; }
    .admin-interface .admin-nav-menu { min-width:min(16rem,calc(100vw - 2rem)); }
}

.admin-interface .admin-section-nav .admin-tab:disabled { opacity:.55; cursor:wait; }

/* Service request alerts and staff preferences */
.service-request-alert[hidden] { display:none !important; }
.service-request-alert { overflow-wrap:anywhere; }
.service-request-preferences { border:1px solid #ddd; border-radius:.5rem; padding:1rem; }
.service-request-preferences .form-switch .form-check-input { width:3em; height:1.5em; margin-top:0; cursor:pointer; }
.service-request-notes { white-space:pre-wrap; overflow-wrap:anywhere; }

/* Message history stays readable within the scrolling table on small screens. */
.message-history-table { min-width: 760px; }
.message-history-recipient, .message-history-error { overflow-wrap: anywhere; }
.message-history-body { white-space: pre-wrap; overflow-wrap: anywhere; max-width: 36rem; }
.message-history-table details { max-width: 36rem; }
