/* ============================================================
   Krykna Mod Planner — layout & component styles
   Loads after gear-builder.css.
   ============================================================ */

/* ── Setup form ───────────────────────────────────────────── */
.kmp-setup-wrap .krykna-gb__setup {
    max-width: 580px;
}

.kmp-stat-hint {
    font-size: 11px;
    color: var(--gb-text-dim);
    margin: 0 0 12px;
}

/* ── Builder right panel — fills 1fr column, scrolls within ── */
.kmp-wrap .krykna-gb__right.kmp-right {
    overflow-y: auto;
    overflow-x: hidden;
    max-height: 85vh;
    padding: 8px;
    gap: 6px;
    min-width: 0;
}

/* ── Left: targets list ───────────────────────────────────── */
.kmp-targets { width: 100%; }

.kmp-target-row {
    display: flex;
    justify-content: space-between;
    padding: 3px 0;
    font-size: 11px;
}
.kmp-target-label { color: var(--gb-text-dim); }
.kmp-target-val   { color: var(--gb-teal); font-weight: 700; }

/* ── Status labels ────────────────────────────────────────── */
.kmp-warning {
    color: var(--gb-warn);
    font-size: 9px;
    font-weight: 600;
    margin-left: 6px;
}
.kmp-ok {
    color: #4caf50;
    font-size: 9px;
    font-weight: 700;
    margin-left: 6px;
}

/* ── Accessories rows ─────────────────────────────────────── */
/* Row 1: ear + 2 implants = 3 cols   Row 2: 2 relics = 2 cols */
.kmp-acc-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 5px;
    margin-bottom: 5px;
}
.kmp-acc-row + .kmp-acc-row {
    grid-template-columns: repeat(2, 1fr);
}

.kmp-acc-slot {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 6px 4px;
    background: var(--gb-slot-empty);
    border: 1px solid var(--gb-slot-border);
    border-radius: 4px;
    transition: border-color .2s;
    text-align: center;
    min-width: 0;
    overflow: hidden;
}
.kmp-acc-slot--filled { background: rgba(76,194,212,.04); }

.kmp-acc-icon {
    width: 36px; height: 36px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.kmp-acc-icon img { width: 36px; height: 36px; border-radius: 2px; }

.kmp-acc-info {
    display: flex;
    flex-direction: column;
    gap: 1px;
    width: 100%;
    min-width: 0;
}
.kmp-acc-label {
    font-size: 9px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
    max-width: 100%;
}
.kmp-acc-rating { font-size: 8px; color: var(--gb-text-dim); }

.kmp-acc-select {
    width: 100%;
    font-size: 9px;
    padding: 2px 3px;
    background: #06101a;
    border: 1px solid #1b3050;
    color: #4cc2d4;
    border-radius: 2px;
    cursor: pointer;
    min-width: 0;
}

/* ── Impossible messages ──────────────────────────────────── */
.kmp-impossible {
    background: rgba(224,80,80,.08);
    border: 1px solid #5a2020;
    border-radius: 4px;
    padding: 8px 10px;
    margin: 6px 0;
}
.kmp-impossible-msg {
    font-size: 10px;
    color: #e08080;
    margin: 3px 0;
    line-height: 1.5;
}

/* ── Enhancement plan ─────────────────────────────────────── */
.kmp-plan-list {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin-bottom: 8px;
}
.kmp-plan-row {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 5px 6px;
    background: var(--gb-panel-alt);
    border: 1px solid var(--gb-border);
    border-radius: 3px;
    min-width: 0;
}
.kmp-plan-row img { border-radius: 2px; flex-shrink: 0; }
.kmp-plan-row--filler { opacity: .7; }

.kmp-plan-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}
.kmp-plan-name {
    font-size: 10px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.kmp-plan-meta { font-size: 9px; color: var(--gb-text-dim); }
.kmp-plan-count {
    font-size: 16px;
    font-weight: 700;
    color: var(--gb-teal);
    min-width: 22px;
    text-align: right;
    flex-shrink: 0;
}

/* ── Mod slot rows (weapons 2-col, armor 3-col, helmet 1-col) ─ */
.kmp-mod-grid-row {
    display: grid;
    gap: 5px;
    margin-bottom: 5px;
    grid-template-columns: repeat(3, 1fr); /* default */
}
.kmp-mod-grid-row[data-cols="1"] { grid-template-columns: 1fr; }
.kmp-mod-grid-row[data-cols="2"] { grid-template-columns: repeat(2, 1fr); }
.kmp-mod-grid-row[data-cols="3"] { grid-template-columns: repeat(3, 1fr); }

.kmp-mod-slot {
    background: var(--gb-panel-alt);
    border: 1px solid var(--gb-border);
    border-radius: 4px;
    padding: 6px;
    min-width: 0;
    overflow: hidden;
}
.kmp-mod-slot-label {
    font-size: 9px;
    font-weight: 700;
    color: var(--gb-teal);
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.kmp-mod-pieces { display: flex; flex-direction: column; gap: 3px; }

.kmp-mod-piece {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 3px 5px;
    background: var(--gb-slot-empty);
    border: 1px solid var(--gb-slot-border);
    border-radius: 3px;
    min-width: 0;
    overflow: hidden;
}
.kmp-mod-piece--filled { border-width: 1px; }

.kmp-mod-piece-icon {
    width: 24px; height: 24px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.kmp-mod-piece-icon img { width: 24px; height: 24px; border-radius: 2px; }

.kmp-mod-empty-icon {
    display: block;
    width: 20px; height: 20px;
    border: 1px dashed var(--gb-slot-border);
    border-radius: 2px;
    opacity: .4;
}

.kmp-mod-piece-info {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
    flex: 1;
    overflow: hidden;
}
.kmp-mod-type-label {
    font-size: 8px;
    color: var(--gb-text-dim);
    text-transform: uppercase;
    letter-spacing: .06em;
    white-space: nowrap;
}
.kmp-mod-name {
    font-size: 9px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.kmp-mod-rating { font-size: 8px; color: var(--gb-text-dim); }

/* ── Cost box ─────────────────────────────────────────────── */
.kmp-cost-box {
    margin-top: 10px;
    padding: 10px;
    background: rgba(200,168,75,.08);
    border: 1px solid rgba(200,168,75,.3);
    border-radius: 4px;
}
.kmp-cost-detail {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin: 4px 0;
    font-size: 11px;
    color: var(--gb-text-dim);
    flex-wrap: wrap;
    gap: 4px;
}
.kmp-cost-credits {
    font-size: 18px;
    font-weight: 700;
    color: var(--gb-gold);
}
.kmp-credits-label {
    font-size: 10px;
    font-weight: 400;
    color: var(--gb-text-dim);
}
.kmp-cost-note {
    font-size: 9px;
    color: var(--gb-text-dim);
    margin: 4px 0 0;
}

/* ── Responsive ───────────────────────────────────────────── */

/* Tablet: 2-col mod grid, 2-col accessories */
@media (max-width: 767px) {
    .kmp-wrap .krykna-gb__right.kmp-right {
        max-height: none;
    }
    .kmp-mod-grid-row[data-cols="3"] { grid-template-columns: repeat(2, 1fr); }
    .kmp-mod-grid-row[data-cols="2"] { grid-template-columns: repeat(2, 1fr); }
    .kmp-acc-row { grid-template-columns: repeat(3, 1fr); }
    .kmp-acc-row + .kmp-acc-row { grid-template-columns: repeat(2, 1fr); }
}

/* Mobile: everything single column */
@media (max-width: 479px) {
    .kmp-mod-grid-row,
    .kmp-mod-grid-row[data-cols="1"],
    .kmp-mod-grid-row[data-cols="2"],
    .kmp-mod-grid-row[data-cols="3"] {
        grid-template-columns: 1fr;
    }
    .kmp-acc-row,
    .kmp-acc-row + .kmp-acc-row {
        grid-template-columns: 1fr 1fr;
    }
    .kmp-plan-count { font-size: 14px; }
}