/* ============================================================
   PROMOTION DASHBOARD --- Bronze Squadron
   Page Builder CSS tab
   ============================================================ */

/* ------ FONTS ------------------------------------------------------------------------------------------------------------------------------------------------------------ */
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap');

/* ------ ROOT --------------------------------------------------------------------------------------------------------------------------------------------------------------- */
.promo-dashboard {
    font-family: 'JetBrains Mono', monospace;
    background: #090c10;
    color: #d0d6e0;
    padding: 1.5rem;
    min-height: 100vh;
}

/* ------ HEADER --------------------------------------------------------------------------------------------------------------------------------------------------------- */
.promo-header {
    margin-bottom: 1.5rem;
    border-bottom: 1px dashed #2a3545;
    padding-bottom: 1rem;
}

.promo-header h1 {
    font-size: 1.4rem;
    font-weight: 700;
    color: #c9913a;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin: 0 0 0.25rem 0;
}

.promo-header p {
    font-size: 0.75rem;
    color: #6b7a90;
    margin: 0;
}

/* ------ CONTROLS --------------------------------------------------------------------------------------------------------------------------------------------------- */
.promo-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
    margin-bottom: 1.25rem;
}

.promo-search {
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.8rem;
    background: #111620;
    border: 1px dashed #2a3545;
    color: #d0d6e0;
    padding: 0.45rem 0.75rem;
    border-radius: 4px;
    width: 220px;
    outline: none;
    transition: border-color 0.2s;
}

.promo-search:focus {
    border-color: #c9913a;
}

.promo-search::placeholder {
    color: #3a4555;
}

.promo-branch-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.branch-btn {
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    background: #111620;
    border: 1px dashed #2a3545;
    color: #6b7a90;
    padding: 0.3rem 0.65rem;
    border-radius: 3px;
    cursor: pointer;
    transition: all 0.15s;
}

.branch-btn:hover {
    border-color: #c9913a;
    color: #c9913a;
}

.branch-btn.active {
    background: #1e1408;
    border-color: #c9913a;
    color: #c9913a;
}

/* ------ SUMMARY STRIP ------------------------------------------------------------------------------------------------------------------------------------ */
.promo-summary-strip {
    display: flex;
    gap: 1rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
}

.promo-summary-item {
    background: #111620;
    border: 1px dashed #2a3545;
    border-radius: 4px;
    padding: 0.6rem 1.1rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 100px;
}

.promo-summary-item.highlight-ready {
    border-color: #c9913a;
    background: #1e1408;
}

.promo-summary-num {
    font-size: 1.5rem;
    font-weight: 700;
    color: #c9913a;
    line-height: 1;
}

.promo-summary-label {
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #6b7a90;
    margin-top: 0.2rem;
}

/* ------ TABLE WRAP --------------------------------------------------------------------------------------------------------------------------------------------- */
.promo-table-wrap {
    overflow-x: auto;
}

/* ------ TABLE ------------------------------------------------------------------------------------------------------------------------------------------------------------ */
.promo-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8rem;
}

.promo-table thead th {
    background: #0e1319;
    color: #6b7a90;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 0.65rem 0.85rem;
    border-bottom: 1px dashed #2a3545;
    white-space: nowrap;
    cursor: pointer;
    user-select: none;
}

.promo-table thead th:hover {
    color: #c9913a;
}

.promo-table thead th.sort-asc::after  { content: ' ---'; font-size: 0.6rem; }
.promo-table thead th.sort-desc::after { content: ' ---'; font-size: 0.6rem; }

.promo-table tbody tr {
    border-bottom: 1px solid #141b25;
    transition: background 0.1s;
}

.promo-table tbody tr:hover {
    background: #111620;
}

.promo-table td {
    padding: 0.65rem 0.85rem;
    vertical-align: middle;
}

/* ------ MEMBER CELL ------------------------------------------------------------------------------------------------------------------------------------------ */
.member-links {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.3rem;
    flex-wrap: wrap;
}

.profile-link {
    font-size: 0.68rem;
    color: #4a7abf;
    text-decoration: none;
    letter-spacing: 0.04em;
}

.profile-link:hover {
    color: #c9913a;
    text-decoration: underline;
}

.enlistment-link {
    color: #5a9a6a;
}

.enlistment-link:hover {
    color: #c9913a;
}

/* ------ INLINE STATUS BADGES (next to name) ------------------------------------------------------------------ */
.status-inline {
    display: inline-block;
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 0.1rem 0.35rem;
    border-radius: 2px;
    margin-left: 0.35rem;
    vertical-align: middle;
}

.loa-inline        { background: #3a3000; color: #f0c040; }
.awol-inline       { background: #3a0000; color: #ff6060; }
.probation-inline  { background: #2a2000; color: #e07b39; }
.reserves-inline   { background: #001a3a; color: #5a9adf; }

/* ------ BRANCH LABEL --------------------------------------------------------------------------------------------------------------------------------------- */
.branch-label {
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    padding: 0.15rem 0.45rem;
    border-radius: 3px;
    border: 1px solid #2a3545;
    white-space: nowrap;
    color: #8a9ab0;
}

.branch-label.branch-navy-enlisted   { border-color: #1a4a7a; color: #5a9adf; }
.branch-label.branch-air-force       { border-color: #1a2a5a; color: #7090df; }
.branch-label.branch-warrant-officer { border-color: #3a2a0a; color: #c9913a; }
.branch-label.branch-navy-officer    { border-color: #0a3a5a; color: #40b0df; }
.branch-label.branch-officer         { border-color: #2a1a4a; color: #9a70df; }

/* ------ RANK PILL ------------------------------------------------------------------------------------------------------------------------------------------------ */
.rank-pill {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #c9913a;
    background: #1e1408;
    border: 1px solid #3a2a0a;
    padding: 0.15rem 0.5rem;
    border-radius: 3px;
}

/* ------ PROGRESS BAR --------------------------------------------------------------------------------------------------------------------------------------- */
.promo-progress {
    width: 100%;
    max-width: 140px;
    height: 4px;
    background: #1b2530;
    border-radius: 2px;
    margin: 0.3rem 0 0.2rem 0;
    overflow: hidden;
}

.promo-progress-fill {
    height: 100%;
    background: #c9913a;
    border-radius: 2px;
    transition: width 0.3s ease;
}

.promo-progress-fill.fill-ready {
    background: #4caf50;
}

.small-note {
    font-size: 0.65rem;
    color: #6b7a90;
}

/* ------ LIFETIME COUNT --------------------------------------------------------------------------------------------------------------------------------- */
.lifetime-count {
    font-size: 0.8rem;
    color: #8a9ab0;
}

/* ------ STATUS BADGES ------------------------------------------------------------------------------------------------------------------------------------ */
.status-badge {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 0.2rem 0.55rem;
    border-radius: 3px;
    white-space: nowrap;
}

.status-ready    { background: #0f2e12; color: #4caf50; border: 1px solid #1a5c20; }
.status-monitor  { background: #1e1408; color: #c9913a; border: 1px solid #3a2a0a; }
.status-missing  { background: #1a1a1a; color: #4a5565; border: 1px solid #2a3040; }
.status-training { background: #001a3a; color: #5a9adf; border: 1px solid #1a3a6a; }

/* ------ NO RESULTS --------------------------------------------------------------------------------------------------------------------------------------------- */
.promo-no-results {
    text-align: center;
    color: #4a5565;
    font-size: 0.8rem;
    padding: 2rem;
    letter-spacing: 0.08em;
}

/* ------ HIDDEN ROW --------------------------------------------------------------------------------------------------------------------------------------------- */
.promo-row.hidden {
    display: none;
}

/* ============================================================
   SERVICE RECORD TOGGLE + TOOLTIP ADDITIONS
   ============================================================ */

/* -- Toggle wrap -------------------------------------------- */
.svc-toggle-wrap {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    user-select: none;
    padding: 0.3rem 0.65rem;
    border: 1px dashed #2a3545;
    border-radius: 3px;
    background: #111620;
    transition: border-color 0.2s;
}

.svc-toggle-wrap:hover {
    border-color: #c9913a;
}

.svc-toggle-wrap.active {
    border-color: #4caf50;
    background: #0f2e12;
}

/* -- Toggle switch ------------------------------------------ */
.svc-toggle-switch {
    position: relative;
    width: 32px;
    height: 18px;
    flex-shrink: 0;
}

.svc-toggle-switch input {
    opacity: 0;
    width: 0;
    height: 0;
    position: absolute;
}

.svc-toggle-slider {
    position: absolute;
    inset: 0;
    background: #2a3545;
    border-radius: 18px;
    transition: background 0.2s;
    cursor: pointer;
}

.svc-toggle-slider::before {
    content: '';
    position: absolute;
    width: 12px;
    height: 12px;
    left: 3px;
    top: 3px;
    background: #6b7a90;
    border-radius: 50%;
    transition: transform 0.2s, background 0.2s;
}

.svc-toggle-switch input:checked + .svc-toggle-slider {
    background: #1a5c20;
}

.svc-toggle-switch input:checked + .svc-toggle-slider::before {
    transform: translateX(14px);
    background: #4caf50;
}

/* -- Toggle labels ------------------------------------------ */
.svc-toggle-label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #6b7a90;
    transition: color 0.2s;
}

.svc-toggle-wrap.active .svc-toggle-label {
    color: #4caf50;
}

.svc-toggle-note {
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.65rem;
    color: #3a4555;
    font-style: italic;
}

/* -- Breakdown info row below progress bar ------------------ */
.svc-breakdown {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    margin-top: 0.3rem;
    cursor: default;
}

.svc-breakdown-icon {
    font-size: 0.7rem;
    color: #3a4f6a;
    line-height: 1;
}

.svc-breakdown-text {
    font-size: 0.62rem;
    color: #3a4f6a;
    letter-spacing: 0.03em;
}

/* -- Tooltip ------------------------------------------------ */
.svc-tooltip {
    display: none;
    position: absolute;
    bottom: calc(100% + 6px);
    left: 0;
    background: #0e1319;
    border: 1px solid #2a3545;
    border-radius: 4px;
    padding: 0.6rem 0.8rem;
    min-width: 180px;
    z-index: 100;
    box-shadow: 0 4px 16px rgba(0,0,0,0.5);
}

.svc-breakdown:hover .svc-tooltip {
    display: block;
}

.svc-tooltip-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    font-size: 0.72rem;
    padding: 0.2rem 0;
    color: #8a9ab0;
    font-family: 'JetBrains Mono', monospace;
}

.svc-tooltip-svc {
    border-top: 1px solid #1b2530;
    margin-top: 0.2rem;
    padding-top: 0.4rem;
}

.svc-tooltip-total {
    border-top: 1px solid #1b2530;
    margin-top: 0.2rem;
    padding-top: 0.4rem;
    color: #c9913a;
    font-weight: 600;
}

.svc-tooltip-note {
    font-size: 0.62rem;
    color: #3a4555;
    font-style: italic;
    margin-top: 0.4rem;
    border-top: 1px solid #1b2530;
    padding-top: 0.4rem;
    font-family: 'JetBrains Mono', monospace;
}

.svc-tooltip-note.counting {
    color: #4caf50;
}

/* -- Lifetime service tint ---------------------------------- */
.lifetime-svc {
    display: block;
    font-size: 0.62rem;
    color: #3a4f6a;
    margin-top: 0.1rem;
}

/* -- Branch colors (updated names) -------------------------- */
.branch-label.branch-us-navy              { border-color: #1a4a7a; color: #5a9adf; }
.branch-label.branch-us-air-force         { border-color: #1a2a5a; color: #7090df; }
.branch-label.branch-us-army              { border-color: #3a2a0a; color: #c9913a; }
.branch-label.branch-us-navy-officer      { border-color: #0a3a5a; color: #40b0df; }
.branch-label.branch-us-air-force-officer { border-color: #2a1a4a; color: #9a70df; }
.branch-label.branch-us-army-officer      { border-color: #1a3a1a; color: #5adf7a; }