body {
    background-color: #05070a;
    color: #f1f5f9;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Top nav */
.lw-nav {
    background: radial-gradient(circle at 0 0, #1f2933 0, #020409 55%);
    border-bottom: 1px solid rgba(148, 163, 184, 0.3);
}

.fw-bold {
    font-weight: 700 !important;
    color: white;
}

.small, small {
    font-size: .875em;
    color: whitesmoke;
}

/* Cards */
.lw-card {
    background: linear-gradient(135deg, #0b1018 0, #04060a 60%, #050709 100%);
    border: 1px solid rgba(148, 163, 184, 0.25);
    border-radius: 0.75rem;
    box-shadow:
        0 18px 35px rgba(0, 0, 0, 0.7),
        0 0 40px rgba(15, 23, 42, 0.8);
}

/* Pills in tables */
.kill-pill,
.loss-pill,
.isk-pill {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    min-width: 3rem;
    padding: 0.15rem 0.4rem;
    border-radius: 999px;
    font-size: 0.75rem;
}

.kill-pill {
    background: rgba(34, 197, 94, 0.12);
    color: #22c55e;
}

.loss-pill {
    background: rgba(248, 113, 113, 0.12);
    color: #f97373;
}

.isk-pill {
    background: rgba(56, 189, 248, 0.12);
    color: #38bdf8;
}

/* Badges */
/* Shared look for all “sec split” badges */
.badge-sec {
    font-size: 0.7rem;
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
    letter-spacing: 0.03em;
}

/* Optional: if you want HS/NS to match the custom style too */
.badge-hs {
    @extend .badge-sec; /* or just copy the rules if you don’t use a preprocessor */
}
.badge-ns {
    @extend .badge-sec;
}

/* Lowsec: more saturated amber + border + subtle glow for contrast on dark bg */
.badge-ls {
    background-color: rgba(255, 193, 7, 0.25);  /* deeper amber */
    color: #ffe9a3;                              /* lighter text */
    border: 1px solid rgba(255, 193, 7, 0.75);   /* crisp edge */
    box-shadow: 0 0 4px rgba(0, 0, 0, 0.9);      /* separates from dark card */
    font-size: 0.7rem;
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
    text-transform: uppercase;
}
/* Override Bootstrap subtle colours with slightly stronger ones */
.badge.bg-success-subtle.text-success {
    background-color: rgba(34, 197, 94, 0.2);
    color: #bbf7d0;
    border: 1px solid rgba(34, 197, 94, 0.7);
}

.badge.bg-danger-subtle.text-danger {
    background-color: rgba(248, 113, 113, 0.22);
    color: #fecaca;
    border: 1px solid rgba(248, 113, 113, 0.75);
}

.badge.bg-warning-subtle.text-warning {
    background-color: rgba(251, 191, 36, 0.22);
    color: #fde68a;
    border: 1px solid rgba(251, 191, 36, 0.75);
}


.killer-badge {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    padding: 0.1rem 0.35rem;
    border-radius: 999px;
    background: rgba(250, 204, 21, 0.1);
    color: #facc15;
    border: 1px solid rgba(234, 179, 8, 0.35);
}

.gank-badge {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    padding: 0.1rem 0.35rem;
    border-radius: 999px;
    background: rgba(248, 113, 113, 0.08);
    color: #f97373;
    border: 1px solid rgba(248, 113, 113, 0.35);
}

/* Portraits */
.pilot-portrait {
    border-radius: 999px;
    box-shadow:
        0 0 0 1px rgba(148, 163, 184, 0.4),
        0 0 18px rgba(15, 23, 42, 0.9);
}

/* Filter labels */
.filter-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: .12em;
}

/* Modal tweaks */
.modal-content {
    border-radius: 0.9rem;
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: radial-gradient(circle at 0 0, #020617 0, #020617 55%, #000000 100%);
}

/* ===========================
   EVE FITTING PANEL (FINAL)
   =========================== */

/* Square panel, always a real circle */

/* Wrapper keeps the panel from stretching weirdly in the grid */
.fit-panel-wrapper {
/*     max-width: 420px; */
    min-height: 260px;
}

/* True circle panel */
.fit-panel {
    position: relative;
    width: 100%;
    max-width: 360px;     /* tune to taste */
    aspect-ratio: 1 / 1;          /* <- force perfect square */
    margin: 0 auto;
    display: block; 
}

/* Dark circular background */
.fit-panel-bg {
    position: absolute;
    inset: 0;
    border-radius: 50%;           /* <- make it a circle */
    background: radial-gradient(circle at 30% 20%, #29303b 0, #06070a 70%, #010103 100%);
    box-shadow:
        0 0 24px rgba(0, 0, 0, 0.9),
        0 0 60px rgba(0, 0, 0, 1);
}

/* Ship image in the centre */
.fit-ship-img {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 52%;
    height: 52%;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    box-shadow:
        0 0 10px rgba(0, 0, 0, 0.8),
        0 0 25px rgba(0, 0, 0, 0.9);
    object-fit: cover;
}

/* Slot bubbles */
.slot-icon {
    position: absolute;
    width: 13%;
    height: 13%;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: radial-gradient(circle at 30% 20%, #3f4b5b 0, #151921 70%, #050608 100%);
    border: 1px solid rgba(255, 255, 255, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow:
        0 0 6px rgba(0, 0, 0, 0.8),
        0 0 14px rgba(0, 0, 0, 0.9);
    overflow: hidden;
}

/* Base icon size */
.slot-icon img {
    width: 45px;
    height: 45px;
}

/* Drones: a bit smaller */
.slot-icon.slot-drone{
    width: 10%;
    height: 10%;
}

.slot-icon.slot-drone img {
    width: 26px;
    height: 26px;
}

/* Charges: smaller and sitting “under” the module */
.slot-charge-high img,
.slot-charge-mid img,
.slot-charge-low img,
.slot-charge-rig img,
.slot-charge-drone img {
    width: 22px;
    height: 22px;
    opacity: 0.95;
}

.slot-charge-high {
    width: 5%;
    height: 5%;
}
.slot-charge-mid {
    width: 5%;
    height: 5%;
}
.slot-charge-low {
    width: 5%;
    height: 5%;
}
.slot-charge-rig,
.slot-charge-drone {
    box-shadow: 0 0 3px rgba(0, 0, 0, 0.85);
    border-radius: 20%;
}

.slot-icon.slot-subsys {
    width: 11%;
    height: 11%;
}

th.sortable-col {
    cursor: pointer;
}

th.sortable-col.sort-asc::after {
    content: " ▲";
    font-size: 0.7rem;
}

th.sortable-col.sort-desc::after {
    content: " ▼";
    font-size: 0.7rem;
}

.corp-fit-pre {
    background: #05070c;
    border-radius: 0.5rem;
    border: 1px solid rgba(148, 163, 184, 0.35);
    padding: 0.75rem 1rem;
    color: #e5e7eb;
    font-family: "JetBrains Mono", "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", monospace;
    white-space: pre;
    overflow: auto;
}

/* Highlight selected corp fit row */
.corp-fit-row.table-active td {
    background-color: rgba(59, 130, 246, 0.15) !important;
}

.card-header:first-child {
    color: white;
}

.km-meta-value {
    color: antiquewhite;
}

.fw-semibold {
    color: ghostwhite;
}

.mb-1 {
    color: navajowhite;
}

/* Rounded containers for pilot modal tables */
.lw-rounded {
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,0.08);
    background: rgba(15,18,25,0.95);
}

.lw-rounded table {
    margin-bottom: 0;
}

.lw-rounded thead {
    background: rgba(255,255,255,0.04);
}

/* Skills modal – column alignment */
.skills-table th:nth-child(2),
.skills-table td:nth-child(2) {
    width: 70px;
    text-align: center;
    white-space: nowrap;
}

.skills-table th:nth-child(3),
.skills-table td:nth-child(3) {
    width: 110px;
    text-align: right;
    white-space: nowrap;
}

