html, body { height: 100%; margin: 0; font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; }

.garrison-boot-loading {
    height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center;
    background: #1a2332; color: #e8edf4; gap: 16px;
}
.garrison-boot-spinner {
    width: 40px; height: 40px; border-radius: 50%;
    border: 3px solid rgba(232, 237, 244, 0.2); border-top-color: #4a90d9;
    animation: garrison-spin 0.8s linear infinite;
}
.garrison-boot-label { font-size: 1.1rem; letter-spacing: 0.05em; opacity: 0.85; }
@keyframes garrison-spin { to { transform: rotate(360deg); } }

#blazor-error-ui {
    background: #fff4e5; bottom: 0; box-shadow: 0 -1px 8px rgba(0, 0, 0, 0.15);
    display: none; left: 0; padding: 0.8rem 1.25rem 0.6rem 1.25rem; position: fixed; width: 100%; z-index: 1000;
}
#blazor-error-ui .dismiss { cursor: pointer; position: absolute; right: 0.75rem; top: 0.5rem; }

.mud-button-root { min-height: 48px; }
.garrison-big-action { min-height: 64px; font-size: 1.1rem; }
.garrison-page-header { margin-bottom: 1rem; }
.garrison-empty-state { text-align: center; padding: 3rem 1rem; opacity: 0.7; }

/* ── Dock label printing (Brother QL-810W) ───────────────────────────────────
   See Castle.Web's app.css for the full rationale -- identical block so
   labels printed from the crew app match office-printed ones exactly. */
.dock-label-card {
    width: 90mm; min-height: 29mm; border: 1px solid #999; border-radius: 4px;
    padding: 3mm 4mm; margin-bottom: 12px; page-break-inside: avoid;
    font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}
.dock-label-job { font-size: 13pt; font-weight: 700; line-height: 1.15; }
.dock-label-sub { font-size: 8.5pt; opacity: 0.8; margin-top: 1mm; }
.dock-label-product { font-size: 10pt; font-weight: 600; margin-top: 2mm; }
.dock-label-meta { font-size: 8pt; opacity: 0.75; margin-top: 1mm; }

@media print {
    @page { size: 90mm 29mm; margin: 0; }
    body * { visibility: hidden; }
    #dock-label-print-root, #dock-label-print-root * { visibility: visible; }
    #dock-label-print-root { position: absolute; top: 0; left: 0; margin: 0; }
    .dock-label-card { border: none; border-radius: 0; margin-bottom: 0; page-break-after: always; width: 90mm; height: 29mm; }
    .dock-label-no-print { display: none !important; }
}
