/* WE Container — shared navy palette override. Status colors remain semantic. */
:root {
    --we-ink: #102a4c;
    --we-muted: #6f829d;
    --we-line: #d9e2ef;
    --we-paper: #f3f6fb;
    --we-card: #ffffff;
    --we-navy: #07182f;
    --we-navy-2: #102a4b;
    --we-cyan: #29b6e8;
    --we-shadow: 0 18px 48px rgba(9, 30, 61, .09);
}

body:not(.we-dashboard) {
    --we-ink: #102a4c;
    --we-muted: #6f829d;
    --we-line: #d9e2ef;
    --we-paper: #f3f6fb;
    --we-card: #ffffff;
    --we-navy: #07182f;
    --we-navy-2: #102a4b;
    --we-cyan: #29b6e8;
    --we-shadow: 0 18px 48px rgba(9, 30, 61, .09);
}

body:not(.we-dashboard).dsc-dark {
    --we-ink: #eaf1fb;
    --we-muted: #94a8c3;
    --we-line: #2a4263;
    --we-paper: #091629;
    --we-card: #11243d;
}

body:not(.we-dashboard) > .navbar {
    background:
        radial-gradient(circle at 72% -120%, rgba(41, 182, 232, .32), transparent 42%),
        linear-gradient(110deg, #07182f, #0b3765) !important;
    box-shadow: 0 14px 32px rgba(6, 22, 45, .2);
}

body:not(.we-dashboard) .we-app-brand img {
    background: #0d2b50;
}

body:not(.we-dashboard) .we-page-head,
body:not(.we-dashboard) .we-detail-hero {
    background:
        radial-gradient(circle at 82% 0, rgba(41, 182, 232, .18), transparent 30%),
        linear-gradient(145deg, #07172e, #0c2a4c 64%, #0b3866) !important;
    box-shadow: 0 22px 54px rgba(6, 22, 45, .2);
}

body:not(.we-dashboard) .card-header,
body:not(.we-dashboard) .table thead th {
    background-color: #102a4b;
}

body:not(.we-dashboard) .card-header.bg-primary,
body:not(.we-dashboard) .card-primary > .card-header {
    background: linear-gradient(115deg, #102a4b, #164472) !important;
}

/* Dashboard uses a separate variable namespace; keep both in sync. */
body.we-dashboard {
    --ink: #102a4c;
    --muted: #6f829d;
    --line: #d9e2ef;
    --paper: #f3f6fb;
    --card: #ffffff;
    --navy: #07182f;
    --navy-2: #102a4b;
    --cyan: #29b6e8;
    --cyan-soft: #e1f4fd;
    --we-bg: #f2f5fa;
    --we-navy: #07182f;
    --we-ink: #102a4c;
    --we-teal: #147fb8;
    --we-soft: #e4effa;
}

body.we-dashboard.dsc-dark {
    --ink: #eaf1fb;
    --muted: #94a8c3;
    --line: #2a4263;
    --paper: #091629;
    --card: #11243d;
    --we-bg: #091629;
    --we-paper: #11243d;
    --we-ink: #eaf1fb;
    --we-muted: #94a8c3;
    --we-line: #2a4263;
    --we-teal: #59c5f1;
    --we-soft: #183657;
    background: #091629 !important;
}

.we-dashboard .rail,
.we-dashboard .we-sidebar {
    background: #07182f !important;
}

.we-dashboard .brand,
.we-dashboard .we-brand-mark {
    background: #0d2b50 !important;
}

.we-dashboard .rail-btn:hover,
.we-dashboard .rail-btn.active,
.we-dashboard .we-section-nav a.is-active {
    background: #173c67 !important;
}

.we-dashboard .command-stage,
.we-dashboard .we-command-center {
    background:
        radial-gradient(circle at 76% 5%, rgba(41, 182, 232, .16), transparent 30%),
        linear-gradient(145deg, #07172e, #0c2a4c 62%, #0b3866) !important;
    box-shadow: 0 30px 70px rgba(5, 21, 44, .24);
}

.we-dashboard .world-map,
.we-dashboard #routes-map,
.we-dashboard .map-loading {
    background-color: #0a294b !important;
}

.we-dashboard .world-map .leaflet-tile-pane {
    filter: grayscale(1) brightness(.7) contrast(1.2) !important;
    mix-blend-mode: luminosity;
    opacity: .82;
}

.we-dashboard .world-map .booking-route {
    stroke-linecap: round;
    filter: drop-shadow(0 0 5px rgba(56, 215, 255, .72));
    animation: weBookingRouteFlow 7s linear infinite;
}

.we-dashboard .world-map .booking-route-open-invoice {
    filter: drop-shadow(0 0 6px rgba(188, 233, 75, .85));
    animation-duration: 4.5s;
}

.we-dashboard .world-map .booking-route-glow {
    stroke-linecap: round;
    filter: blur(2px);
}

.we-dashboard .world-map .booking-port-point {
    filter: drop-shadow(0 0 6px rgba(188, 233, 75, .72));
    transform-box: fill-box;
    transform-origin: center;
    animation: weBookingPortPulse 2.6s ease-in-out infinite;
}

@keyframes weBookingRouteFlow {
    to { stroke-dashoffset: -96; }
}

@keyframes weBookingPortPulse {
    50% { opacity: .82; transform: scale(1.16); }
}

@media (prefers-reduced-motion: reduce) {
    .we-dashboard .world-map .booking-route,
    .we-dashboard .world-map .booking-port-point { animation: none; }
}

.we-dashboard .port-panel,
.we-dashboard .we-port-clock {
    background: linear-gradient(160deg, rgba(20, 58, 99, .9), rgba(8, 27, 53, .92)) !important;
}

.we-dashboard .clock,
.we-dashboard .we-port-clock .analog-clock {
    background: radial-gradient(circle, #123962 0 55%, #0c294a 56% 100%) !important;
    border-color: #355d82 !important;
}

.we-dashboard .department-summary,
.we-dashboard .ai-brief {
    background: linear-gradient(135deg, #10365f, #0b2848) !important;
}

.we-dashboard .lane-label,
.we-dashboard .world-map .leaflet-popup-content-wrapper,
.we-dashboard .world-map .leaflet-popup-tip {
    background: #103b65 !important;
}

/* Customer portal */
:root {
    --portal-ink: #102a4c;
    --portal-muted: #6f829d;
    --portal-line: #d9e2ef;
    --portal-paper: #f3f6fb;
    --portal-card: #ffffff;
    --portal-navy: #07182f;
    --portal-navy-2: #102a4b;
    --portal-cyan: #29b6e8;
    --portal-shadow: 0 18px 48px rgba(9, 30, 61, .09);
}

.navbar-portal {
    background:
        radial-gradient(circle at 72% -120%, rgba(41, 182, 232, .32), transparent 42%),
        linear-gradient(110deg, #07182f, #0b3765) !important;
}

.we-portal-brand img,
.we-portal-login-logo {
    background: #0d2b50 !important;
}

.navbar-portal ~ .container-fluid .card-header,
.card-portal .card-header {
    color: #f5fbff !important;
    border-bottom: 1px solid rgba(126, 216, 255, .2) !important;
    background: linear-gradient(115deg, #102a4b 0%, #164f80 100%) !important;
    text-shadow: 0 1px 1px rgba(0, 0, 0, .18);
}

.card-portal > .card-header i {
    margin-left: .4rem;
    color: #66ddff !important;
}

body:has(.login-card) {
    background:
        radial-gradient(circle at 75% 15%, rgba(41, 182, 232, .2), transparent 24rem),
        linear-gradient(145deg, #07172e, #0c2a4c 64%, #0b3866) !important;
}
