/* ============================================================
   Kampania: ekran wyboru misji, odprawa, cele w grze, dialogi
   (js/campaign_ui.js)
   ============================================================ */
#campaignScreen, #campBrief { display: flex; align-items: flex-start; justify-content: center; overflow-y: auto; padding: 20px 0; box-sizing: border-box;
  background: radial-gradient(ellipse at center, #2a2318 0%, #110f0b 75%); z-index: 5; }
#campaignScreen > .menu-box, #campBrief > .menu-box { margin: auto; width: min(980px, 94vw); box-sizing: border-box; }
.camp-title { letter-spacing: 6px !important; font-size: 34px !important; }
.camp-main { display: grid; grid-template-columns: 300px 1fr; gap: 16px; min-height: 380px; }
.camp-list { display: flex; flex-direction: column; gap: 6px; }
.camp-item { display: grid; grid-template-columns: 34px 1fr; gap: 8px; align-items: center; padding: 7px 9px; cursor: pointer;
  background: linear-gradient(#3a3125, #2a241b); border: 1px solid var(--edge); border-radius: 3px; }
.camp-item:hover { border-color: var(--gold); }
.camp-item.sel { border-color: var(--gold); background: linear-gradient(#5a4828, #3a2f1c); box-shadow: 0 0 8px #d8b45a55; }
.camp-item.locked { opacity: .45; cursor: not-allowed; }
.camp-num { width: 30px; height: 30px; border-radius: 50%; border: 2px solid var(--edge); display: flex; align-items: center; justify-content: center;
  font-weight: bold; color: var(--gold); background: #1a1611; font-size: 15px; }
.camp-item.done .camp-num { border-color: var(--green); color: #b6f0a4; }
.camp-item.locked .camp-num { color: var(--muted); }
.camp-name { font-size: 15px; line-height: 1.2; }
.camp-state { font-size: 11px; color: var(--muted); }
.camp-item.done .camp-state { color: #9fd88e; }
.camp-detail { background: #1a1611aa; border: 1px solid var(--edge); padding: 12px 16px; border-radius: 3px; font-size: 14px; line-height: 1.5; }
.camp-detail h2 { text-align: left !important; margin: 0 0 2px; font-size: 22px; }
.camp-place { color: var(--muted); font-style: italic; margin-bottom: 10px; }
.camp-detail h4 { color: var(--gold); margin: 12px 0 4px; font-size: 13px; text-transform: uppercase; letter-spacing: 1px; }
.camp-teach { color: #c8d8a8; font-size: 13px; }
.camp-rec { color: var(--muted); font-size: 13px; }
.camp-locked { color: #e0a090; }
.camp-bottom { display: flex; gap: 10px; justify-content: space-between; align-items: flex-end; margin-top: 14px; flex-wrap: wrap; }
.camp-bottom label { flex-direction: row; align-items: center; gap: 8px; }
.camp-bottom .grp { display: flex; gap: 10px; align-items: center; }
.camp-diffdesc { font-size: 12px; color: var(--muted); max-width: 300px; }

/* lista celów (podgląd i panel w grze) */
.sc-objs { list-style: none; margin: 0; padding: 0; }
.sc-objs li { position: relative; padding: 2px 0 2px 20px; }
.sc-objs li::before { content: ''; position: absolute; left: 2px; top: 6px; width: 10px; height: 10px; border: 1px solid var(--gold); background: #0006; }
.sc-objs li.side::before { border-radius: 50%; border-color: #9ab0d0; }
.sc-objs li.done { color: #a8d898; }
.sc-objs li.done::before { background: var(--green); border-color: #b6f0a4; }
.sc-objs li.failed { color: #e8a090; text-decoration: line-through; }
.sc-objs li.failed::before { background: var(--red); border-color: #ffb0a0; }
.sc-objs .prog { color: var(--muted); font-size: 11px; margin-left: 4px; }
.sc-objs .tag { color: #9ab0d0; font-size: 11px; }

/* odprawa */
.brief-lines { display: flex; flex-direction: column; gap: 10px; margin: 10px 0; max-height: 52vh; overflow-y: auto; padding-right: 6px; }
.brief-line { display: grid; grid-template-columns: 72px 1fr; gap: 12px; align-items: start; }
.brief-line .who { font-weight: bold; margin-bottom: 2px; }
.brief-line .txt { line-height: 1.5; }
.sc-portrait { width: 72px; height: 72px; background: radial-gradient(#3a3226, #15130f); border: 1px solid var(--edge); border-radius: 3px; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.sc-portrait canvas { display: block; }

/* panel celów w grze */
#scObj { position: absolute; top: 44px; left: 8px; z-index: 4; background: #0e0c09d8; border: 1px solid var(--edge); border-radius: 3px;
  padding: 6px 10px 8px; font-size: 12px; max-width: 330px; color: var(--text); }
#scObj .hd { display: flex; justify-content: space-between; gap: 10px; color: var(--gold); font-weight: bold; cursor: pointer; margin-bottom: 3px; user-select: none; }
#scObj .hd span:last-child { color: var(--muted); font-weight: normal; }
#scObj.min .sc-objs { display: none; }
#scObj.flash { box-shadow: 0 0 12px #d8b45a; }

/* dialog fabularny */
#scDlg { position: absolute; left: 50%; bottom: 214px; transform: translateX(-50%); z-index: 6; width: min(720px, 92vw);
  background: linear-gradient(#2f281e, #1b1712); border: 2px solid var(--edge); border-radius: 4px; box-shadow: 0 6px 30px #000c;
  display: grid; grid-template-columns: 104px 1fr; gap: 14px; padding: 12px 14px; }
#scDlg .sc-portrait { width: 100px; height: 100px; }
#scDlg .who { font-size: 17px; font-weight: bold; margin-bottom: 4px; }
#scDlg .txt { font-size: 15px; line-height: 1.5; min-height: 46px; }
#scDlg .btns { display: flex; gap: 8px; justify-content: flex-end; margin-top: 8px; align-items: center; }
#scDlg .cnt { color: var(--muted); font-size: 12px; margin-right: auto; }
#scDim { position: absolute; inset: 0; z-index: 5; background: #0005; }

/* ekran końca misji */
.sc-end { font-size: 14px; line-height: 1.5; max-width: 620px; }
.sc-end .reason { font-size: 16px; margin-bottom: 8px; }
.sc-end .outro { margin-top: 10px; display: flex; flex-direction: column; gap: 8px; }
.sc-end .row-btns { margin-top: 14px; }
