/* ============================================================================
   BOWLINE CHARTERS CO. — "Casco Bay" identity.
   Loaded only for the charters pack; re-skins the shared UI kit into a
   maritime charter-ops product. Language: a soft FOG-WHITE field, a deep
   PILOTHOUSE-NAVY sidebar rail, a HARBOR-TEAL accent (the bay), and a warm
   BRASS pop for deposits-due / weather-cancel / alert states. Spectral
   (editorial, nautical-chart serif) over Inter body, hairline rules.
   Like a freshly varnished helm: salt, brass and deep water.
   ============================================================================ */
:root {
    --accent: #0e6e8c;            /* harbor teal (the bay) */
    --accent-2: #2a9bbb;          /* light teal / shoal water */
    --accent-soft: #d8ebf1;       /* pale tide wash */
    --accent-deep: #0a4e64;       /* deep channel */
    --buoy: #d08a2c;             /* brass / deposit-due pop */
    --buoy-soft: #f6e6cd;
    --bg: #f4f7f8;               /* fog white field */
    --panel: #ffffff;
    --ink: #11313b;              /* deep pilothouse ink */
    --ink-soft: #5e7882;
    --line: #dde8ec;             /* cool hairline */
    --side: #0b2731;             /* pilothouse navy */
    --side-ink: #8aa3ad;
    --side-ink-bright: #ffffff;
    --pos: #1f8a64;
    --neg: #c7503a;
    --display-font: "Spectral", "Georgia", serif;
    --radius: 8px;
    --shadow: 0 1px 2px rgba(17,49,59,.05), 0 18px 40px -26px rgba(14,110,140,.42);
}

body {
    font-family: "Inter", -apple-system, "Segoe UI", sans-serif;
    color: var(--ink);
    background-color: var(--bg);
    background-image:
        radial-gradient(circle at 90% -8%, rgba(14,110,140,.12), transparent 46%),
        radial-gradient(circle at 4% 104%, rgba(42,155,187,.07), transparent 42%);
    background-attachment: fixed;
    letter-spacing: .1px;
}

/* ---------------- Sidebar: pilothouse navy ---------------- */
.side { background: linear-gradient(180deg, #0e3240, #081f28); border-right: 1px solid #061620; }
.brand { border-bottom: 1px solid rgba(255,255,255,.08); margin: -2px -6px 14px; padding: 6px 14px 16px; }
.brand-mark {
    background: var(--accent); border-radius: 12px; box-shadow: 0 0 0 3px rgba(14,110,140,.24);
    font-family: var(--display-font); font-weight: 700; color: #fff;
}
.brand-name { font-family: var(--display-font); font-weight: 700; font-size: 18px; letter-spacing: .1px; }
.brand-pack { text-transform: uppercase; letter-spacing: .22em; font-size: 9px; color: var(--accent-2); opacity: .95; }
.nav-link {
    border-radius: 6px; font-size: 12.5px; font-weight: 500; letter-spacing: .02em;
    color: #97afb9; border-left: 2px solid transparent; padding-left: 10px;
}
.nav-link:hover { background: rgba(255,255,255,.05); color: #fff; }
.nav-link.active {
    background: linear-gradient(90deg, rgba(14,110,140,.34), rgba(14,110,140,.03));
    color: #fff; border-left-color: var(--accent-2);
}
.nav-link.active .nav-ico { color: var(--accent-2); opacity: 1; }
.side-foot { text-transform: uppercase; letter-spacing: .2em; font-size: 9px; }

/* ---------------- Topbar ---------------- */
.topbar { background: var(--panel); border-bottom: 1px solid var(--line); }
.client-id strong { font-family: var(--display-font); font-weight: 700; font-size: 17px; letter-spacing: .1px; }
.client-id .dot { border-radius: 50%; }

/* ---------------- Page header: harbor masthead ---------------- */
.page-head { position: relative; margin-bottom: 24px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.page-head h1 { font-family: var(--display-font); font-weight: 700; font-size: 29px; letter-spacing: .1px; }
.page-head .sub { color: var(--ink-soft); text-transform: uppercase; letter-spacing: .14em; font-size: 11px; }
.page-head .back { font-size: 12px; color: var(--ink-soft); text-decoration: none; }
.page-head .back:hover { color: var(--accent); }

/* display on panel titles + numerals */
.rpanel .panel-h h3 { font-family: var(--display-font); font-weight: 700; font-size: 15.5px; letter-spacing: .1px; }
.kpi-num, .kpi-val { font-family: var(--display-font); font-weight: 700; }
.kpi-lab, .kpi-label { text-transform: uppercase; letter-spacing: .1em; font-size: 10.5px; }

/* buttons */
.btn-primary { background: var(--accent); border-color: var(--accent); color: #fff; }
.btn-primary:hover { background: var(--accent-deep); border-color: var(--accent-deep); }

/* ---------------- Status badge palette ---------------- */
/* neutral / new / queued (slate) */
.badge-none, .badge-draft, .badge-inquiry, .badge-booked, .badge-lead,
.badge-new, .badge-inactive, .badge-pending, .badge-scheduled,
.badge-off-season { background: #e6edef; color: #51666f; }

/* info / in-motion / confirmed (tide wash) */
.badge-confirmed, .badge-quoted, .badge-tentative, .badge-offered,
.badge-signed, .badge-sent, .badge-in-progress, .badge-seasonal,
.badge-active, .badge-website, .badge-viewed { background: var(--accent-soft); color: var(--accent-deep); }

/* deposit-due / awaiting / hold (brass pop) */
.badge-deposit-paid, .badge-deposit, .badge-awaiting, .badge-partial,
.badge-on-hold, .badge-maintenance { background: var(--buoy-soft); color: #9a6519; }

/* done / paid / healthy (sea green) */
.badge-completed, .badge-paid, .badge-redeemed, .badge-won, .badge-balance,
.badge-vip, .badge-complete { background: #def0e6; color: #1c7a54; }

/* alerts (rust red) */
.badge-cancelled, .badge-weather-cancel, .badge-no-show, .badge-lost,
.badge-declined, .badge-expired, .badge-past, .badge-refund,
.badge-sold { background: #f6e0da; color: #b1432c; }

/* type / category info chips (cool slate-teal) */
.badge-fishing-charter, .badge-fishing, .badge-sunset-sail, .badge-lighthouse-tour,
.badge-sightseeing, .badge-private-charter, .badge-private, .badge-lobster-tour,
.badge-lobster, .badge-whale-watch,
.badge-sportfish, .badge-center-console, .badge-sailboat, .badge-catamaran,
.badge-lobster-boat, .badge-pontoon, .badge-downeast-cruiser,
.badge-fareharbor, .badge-viator, .badge-phone, .badge-walk-up, .badge-referral,
.badge-repeat, .badge-google, .badge-tripadvisor, .badge-yelp,
.badge-captain, .badge-first-mate, .badge-deckhand, .badge-office,
.badge-uscg-master-100t, .badge-uscg-master-50t, .badge-oupv-6-pack,
.badge-gear-rental, .badge-fish-cleaning, .badge-catering, .badge-photos,
.badge-extra-hour, .badge-tackle,
.badge-card, .badge-cash, .badge-check, .badge-gift-cert,
.badge-engine, .badge-hull, .badge-electronics, .badge-safety-gear,
.badge-haul-out, .badge-bottom-paint,
.badge-birthday, .badge-anniversary, .badge-bachelor-ette, .badge-corporate,
.badge-family, .badge-tournament,
.badge-email, .badge-social { background: #e2eaed; color: #44606a; }

.ph-pos { color: var(--pos); } .ph-neg { color: var(--neg); }
.ph-money { font-variant-numeric: tabular-nums; }

/* brass "alert" chip helper for custom views (deposit-due / weather / overdue) */
.bw-alert { display:inline-flex; align-items:center; gap:6px; font-weight:700; color:#9a6519;
    text-transform:uppercase; letter-spacing:.08em; font-size:11px; }
.bw-alert::before { content:""; width:8px; height:8px; border-radius:50%; background:var(--buoy); }
