html { scroll-behavior: smooth; }
section { scroll-margin-top: 115px; }
.skip-link { position: fixed; top: -100px; left: 12px; z-index: 9999; background: #fff; color: #111; padding: 12px; }
.skip-link:focus { top: 12px; }
:focus-visible { outline: 3px solid #b45309; outline-offset: 3px; }
.logo-button { border: 0; padding: 0; background: transparent; }
.brand-text { text-decoration: none; }
.navbar .nav-link { margin-left: 1rem; }
.navbar .nav-link.active { color: var(--accent-color) !important; }
.service-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1rem; }
.btn-secondary-custom {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    padding: 12px 33px;
    border: 2px solid var(--accent-color);
    border-radius: 50px;
    background: linear-gradient(135deg, var(--secondary-color), #111827);
    color: var(--accent-color);
    font-size: 1rem;
    font-weight: 600;
    text-decoration: none;
    box-shadow: 0 8px 20px rgba(31, 41, 55, .25);
    transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.btn-secondary-custom:hover {
    background: linear-gradient(135deg, #374151, var(--secondary-color));
    border-color: var(--accent-color);
    color: var(--accent-color);
    transform: translateY(-3px);
    box-shadow: 0 12px 28px rgba(31, 41, 55, .35), 0 0 0 1px rgba(251, 191, 36, .2);
}
.btn-secondary-custom:focus-visible { outline: 3px solid #b45309; outline-offset: 3px; color: var(--accent-color); }
.btn-secondary-custom:active { background: #111827; border-color: var(--accent-color); color: var(--accent-color); transform: translateY(-1px); }
.validation-message, .validation-errors { color: #b91c1c; }
.invalid { border-color: #b91c1c; }
.product-image-link { display: block; }
.product-image-link img { height: 210px; object-fit: contain; }
.shop-dialog { width: min(94vw, 860px); max-height: 90vh; overflow-y: auto; border: 0; border-radius: 16px; padding: 24px; box-shadow: 0 20px 70px #0006; }
.shop-dialog::backdrop { background: #000a; }
.quantity-input { width: 90px; }
.video-pause { position: absolute; z-index: 4; bottom: 12px; right: 12px; }
.footer a { color: #fbbf24; }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; }
.footer-details { flex: 1 1 360px; min-width: 0; }
.footer-copyright { margin-bottom: .65rem; }
.footer-links { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; }
.footer-links a { text-underline-offset: .2em; }
.footer-version { color: #d1d5db; margin: .65rem 0 0; }
.footer .footer-credit { display: flex; align-items: center; gap: .85rem; max-width: 100%; padding: .6rem .85rem .6rem .6rem; border: 1px solid #4b5563; border-radius: 14px; background: #111827; color: #f9fafb; text-decoration: none; }
.footer-credit-logo { display: block; flex: 0 0 72px; width: 72px; height: 72px; object-fit: contain; border-radius: 8px; }
.footer-credit-text { min-width: 0; }
.footer-credit-text > span { display: block; color: #e5e7eb; font-size: .8rem; line-height: 1.5; }
.footer-credit-text strong { display: block; color: #d4ff32; font-size: 1.2rem; line-height: 1.4; font-weight: 700; }
.footer .footer-credit:hover { border-color: #d4ff32; color: #f9fafb; }
.footer .footer-credit:focus-visible { outline: 3px solid #d4ff32; outline-offset: 4px; }
@media (max-width: 767px) {
    .footer-bottom { flex-direction: column; text-align: center; }
    .footer-details { flex: 0 1 auto; width: 100%; }
    .footer-links { justify-content: center; }
    .footer-credit-text { text-align: left; }
}
.merch-card .card-text { color: #e5e7eb; }
.admin-page { max-width: 1300px; }
.admin-section { margin-block: 2rem; }
.admin-section th { white-space: nowrap; }
.tracking-page { max-width: 960px; }
.tracking-code { font-family: ui-monospace, Consolas, monospace; letter-spacing: .03em; }
.ticket-status { background: #991b1b; color: #fff; padding: .6rem .8rem; }
.ticket-progress { display: block; width: 100%; height: 24px; margin-top: .5rem; accent-color: #dc2626; }
.ticket-progress::-webkit-progress-bar { background: #e5e7eb; border-radius: 12px; }
.ticket-progress::-webkit-progress-value { background: #dc2626; border-radius: 12px; }
.ticket-timeline { list-style: none; padding-left: 0; }
.ticket-timeline li { border-left: 3px solid #dc2626; margin-block: 1rem; padding: .75rem 1rem; background: #f8fafc; }
.ticket-note { white-space: pre-wrap; overflow-wrap: anywhere; }
#blazor-error-ui { display: none; position: fixed; bottom: 0; background: #fff3cd; color: #111; width: 100%; padding: 15px; z-index: 9998; }
#blazor-error-ui .dismiss { cursor: pointer; margin-left: 1rem; }
.reconnect-panel { position: fixed; inset: auto 12px 12px; padding: 18px; background: #fff3cd; color: #111; border: 2px solid #997404; z-index: 9997; box-shadow: 0 6px 20px #0003; }
.components-reconnect-hide { display: none; }
.components-reconnect-show, .components-reconnect-failed, .components-reconnect-rejected { display: block; }
@media (max-width: 600px) { .navbar-brand .brand-text { white-space: normal; font-size: 1rem; } .navbar-brand .logo-img { height: 48px; } .shop-dialog { padding: 16px; } }
@media (max-width: 575px) { .service-actions .btn { width: 100%; max-width: 360px; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }

/* Four-lift shop floor board */
.lift-board-heading { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; }
.lift-board-heading h1 { font-size:clamp(2rem,4vw,3rem); font-weight:800; letter-spacing:-.04em; }
.lift-eyebrow { font-size:.76rem; font-weight:800; letter-spacing:.13em; color:#991b1b; margin-bottom:.4rem; }
.lift-board-toolbar { display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; padding:1rem 0 1.4rem; }
.lift-board-counts { display:flex; flex-wrap:wrap; gap:1.2rem; }
.lift-board-counts strong { font-size:1.45rem; margin-right:.2rem; }
.lift-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.4rem; }
.lift-card { background:#fff; border:1px solid #d1d5db; border-radius:1.1rem; overflow:hidden; box-shadow:0 8px 24px #1118270c; display:flex; flex-direction:column; }
.lift-card-heading { display:flex; justify-content:space-between; align-items:center; gap:.6rem; padding:1.2rem 1.4rem; background:#1f2937; color:#fff; }
.lift-card-heading h2 { margin:0; font-size:1.2rem; font-weight:800; }
.lift-state { border-radius:2rem; padding:.3rem .75rem; font-size:.8rem; font-weight:700; background:#374151; color:#fff; }
.occupied .lift-state { background:#fbbf24; color:#1f2937; }
.available .lift-state { background:#dcfce7; color:#166534; }
.unavailable .lift-state { background:#fee2e2; color:#991b1b; }
.lift-graphic { display:block; width:100%; height:clamp(180px,24vw,240px); padding:.25rem .4rem 0; background:linear-gradient(180deg,#f8fafc,#fff); }
.lift-work { padding:1rem 1.4rem; flex:1; }
.lift-work h3 { font-size:1.25rem; font-weight:750; margin-bottom:.6rem; }
.lift-vehicle-type { color:#6b7280; font-size:.8rem; font-weight:700; letter-spacing:.02em; margin-bottom:.4rem; }
.lift-service { overflow-wrap:anywhere; color:#4b5563; white-space:pre-wrap; }
.lift-progress-label { display:flex; gap:1rem; align-items:center; justify-content:space-between; flex-wrap:wrap; font-size:.9rem; margin-top:1.2rem; }
.lift-progress { display:block; width:100%; height:12px; margin-top:.6rem; border:0; border-radius:8px; overflow:hidden; background:#e5e7eb; accent-color:#dc2626; }
.lift-progress::-webkit-progress-bar { background:#e5e7eb; border-radius:8px; }
.lift-progress::-webkit-progress-value { background:#dc2626; border-radius:8px; }
.lift-progress::-moz-progress-bar { background:#dc2626; border-radius:8px; }
.lift-actions { display:flex; gap:.5rem; flex-wrap:wrap; padding:0 1.4rem 1.2rem; }
.lift-ticket-link { margin:-.4rem 1.4rem 1.2rem; font-size:.85rem; }
.lift-editor { border-left:4px solid #dc2626; }
@media(min-width:1400px) { .lift-board-page { max-width:1500px; } .lift-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } .lift-graphic { height:190px; padding:.25rem .4rem 0; } }
@media(max-width:640px) { .lift-grid { grid-template-columns:minmax(0,1fr); } .lift-graphic { height:200px; } .lift-board-counts { gap:.8rem; font-size:.9rem; } }

.public-floor-heading{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;margin-bottom:1.5rem}.public-floor-heading .section-title{margin-bottom:.5rem}.public-floor-heading p{margin-bottom:0}.public-lift-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.public-lift-card{overflow:hidden;border:1px solid #d1d5db;border-radius:1rem;background:#fff;box-shadow:0 8px 24px #1118270c}.public-lift-card-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:1rem;background:#1f2937;color:#fff}.public-lift-card-heading h3{font-size:1.1rem;font-weight:800;margin:0}.public-lift-card-heading span{font-size:.8rem;color:#fbd34d}.public-lift-board .lift-graphic{height:190px;padding:.25rem .4rem 0}.public-lift-description{padding:1rem;overflow-wrap:anywhere}.public-lift-description h4{font-size:1.05rem;font-weight:700}.public-lift-description p{font-size:.9rem;margin-bottom:0}@media(max-width:991px){.public-lift-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:575px){.public-lift-grid{grid-template-columns:minmax(0,1fr)}}
