/* Job-Börse (jobs.js): Liste, Ausschreibung, Formular, Bewerbungen, Gespräch. Farben und Grundformen aus portal.css und theme.css. */
.job-tabs { margin-top:20px; }

/* Liste */
.job-list { display:grid; gap:12px; }
a.job-card { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:16px; align-items:start; padding:18px 20px; background:var(--surface);
  border:1px solid var(--line); border-radius:var(--radius); color:var(--fg); transition:border-color .15s, transform .15s; }
a.job-card:hover { border-color:rgba(239,35,60,.6); color:var(--fg); transform:translateY(-1px); }
.job-card > .av { margin-top:2px; }
.job-main { display:grid; gap:6px; min-width:0; }
.job-kick { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.job-t { font-size:1.08rem; line-height:1.25; overflow-wrap:anywhere; }
.job-by { color:var(--muted); font-size:.8rem; }
.job-tags { display:flex; flex-wrap:wrap; gap:6px; margin:0; }
.job-side { color:var(--muted); font-size:.75rem; white-space:nowrap; }
.job-pager { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:18px; }

.pill.role { background:rgba(141,153,174,.18); color:var(--fg); }
.pill.comp-volunteer { background:rgba(63,182,122,.18); color:#7be0aa; }
.pill.comp-revenue_share, .pill.comp-paid { background:rgba(239,35,60,.16); color:#ff8a9a; }
.pill.comp-negotiable { background:rgba(141,153,174,.12); color:var(--muted); }
.pill.app-new { background:var(--accent); color:#fff; }
.pill.app-shortlisted { background:rgba(255,190,80,.18); color:#ffcf7a; }
.pill.app-accepted { background:rgba(63,182,122,.18); color:#7be0aa; }
.pill.app-declined, .pill.app-withdrawn { background:rgba(141,153,174,.14); color:var(--muted); }

.job-safety .ticks { margin:0; padding:0; list-style:none; display:grid; gap:10px; font-size:.86rem; color:var(--muted); }
.job-safety .ticks li { position:relative; padding-left:18px; }
.job-safety .ticks li::before { content:""; position:absolute; left:2px; top:.55em; width:6px; height:6px; border-radius:50%; background:var(--accent); }

/* Ausschreibung */
.job-body.box { display:grid; gap:16px; align-content:start; }
.job-body .box-t { margin:8px 0 0; }
.job-h { font-size:clamp(1.9rem, 4vw, 2.8rem); line-height:1.05; margin:0; overflow-wrap:anywhere; }
.job-who { display:flex; gap:12px; align-items:center; }
.job-who > span { display:grid; gap:2px; font-size:.9rem; }
.job-who small { color:var(--muted); font-size:.78rem; }
.job-desc { max-width:none; }
.job-note { margin:0; }
.job-links { list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.job-links a { display:inline-flex; align-items:center; gap:8px; overflow-wrap:anywhere; font-size:.88rem; }
.job-links svg.i { width:15px; height:15px; color:var(--accent); flex:none; }
.job-panel form.stack, .job-panel .stack { max-width:none; }
.job-panel .box-t { margin:0; }
.job-manage { display:grid; gap:12px; }
.job-manage .acts, .panel > .acts, .app-card .acts { display:flex; flex-wrap:wrap; gap:8px; }
.job-mod form.stack { margin-top:4px; }
.job-gate { margin-top:24px; max-width:680px; display:grid; gap:16px; }

/* Formular */
.job-form-wrap { display:grid; grid-template-columns:minmax(0,1fr) minmax(240px,320px); gap:28px; align-items:start; margin-top:24px; }
.job-form-wrap > aside { position:sticky; top:96px; }
.job-form-wrap form.stack { max-width:none; }
.job-form-wrap .acts { display:flex; gap:10px; flex-wrap:wrap; }
textarea.short { min-height:72px; }
fieldset.comp-pick, fieldset.lang-pick { border:0; padding:0; margin:0; display:grid; gap:10px; min-width:0; }
fieldset.comp-pick legend, fieldset.lang-pick legend { padding:0; margin-bottom:6px; font:700 .85rem/1.3 var(--text); text-transform:none; letter-spacing:0; color:var(--fg); }
fieldset legend .hint { font-weight:400; text-transform:none; letter-spacing:0; font-size:.8rem; }
fieldset.comp-pick { grid-template-columns:repeat(2, minmax(0,1fr)); }
fieldset.comp-pick legend { grid-column:1 / -1; }
label.comp-opt { position:relative; display:grid; gap:4px; padding:14px 16px 14px 42px; border-radius:var(--radius); background:var(--card); border:1px solid var(--line);
  text-transform:none; letter-spacing:0; color:var(--fg); cursor:pointer; transition:border-color .15s, box-shadow .15s; }
label.comp-opt:hover { border-color:var(--manatee); }
label.comp-opt input { position:absolute; left:16px; top:16px; width:auto; margin:0; accent-color:var(--accent); }
label.comp-opt b { font-size:.95rem; }
label.comp-opt small { font-weight:400; font-size:.8rem; color:var(--muted); line-height:1.4; }
label.comp-opt:has(input:checked) { border-color:var(--accent); box-shadow:var(--glow); }
fieldset.lang-pick { grid-template-columns:repeat(auto-fill, minmax(130px, 1fr)); gap:8px 14px; }
fieldset.lang-pick legend { grid-column:1 / -1; }
fieldset.lang-pick .check { font-size:.88rem; }

/* Bewerbungen (Team) */
.app-list { display:grid; gap:14px; }
.app-card { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:20px; display:grid; gap:12px; }
.app-h { display:flex; align-items:center; gap:12px; }
.app-h .t { flex:1; min-width:0; display:grid; gap:2px; }
.app-h .t small { color:var(--muted); font-size:.76rem; }
.app-msg { margin:0; max-width:none; }
.job-rows .li { flex-wrap:wrap; }
.job-rows .li .pill { flex:none; }

/* Gespräch */
.conv-box { display:grid; gap:16px; align-content:start; }
.conv { display:grid; gap:12px; max-height:min(60vh, 640px); overflow-y:auto; padding:4px 2px; }
.msg { max-width:min(560px, 88%); justify-self:start; display:grid; gap:6px; padding:12px 14px; border-radius:12px 12px 12px 4px; background:var(--card); border:1px solid var(--line); }
.msg.mine { justify-self:end; border-radius:12px 12px 4px 12px; background:rgba(239,35,60,.12); border-color:rgba(239,35,60,.35); }
.msg-h { display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:.78rem; font-weight:700; }
.msg-h time { color:var(--muted); font-weight:400; margin-left:auto; }
.msg-b { white-space:pre-line; overflow-wrap:anywhere; font-size:.92rem; }
.msg.removed .msg-b { color:var(--muted); font-style:italic; }
button.msg-report { justify-self:start; font-size:.74rem; font-weight:600; color:var(--muted); gap:4px; }
.msg-report svg.i { width:13px; height:13px; }
form.msg-form { max-width:none; gap:10px; }
.msg-form .acts { display:flex; justify-content:flex-end; }
.msg-form .form-msg:empty, #apply-form .form-msg:empty { display:none; }
.job-mini { display:grid; gap:6px; }
.job-mini small { color:var(--muted); font-size:.78rem; }

/* „Open roles“ auf Studio- und Projektseiten */
.open-roles .open-roles-add { margin-top:12px; }
.panel .open-roles .box-t { margin:6px 0 10px; }

@media (max-width:980px) {
  .job-form-wrap { grid-template-columns:minmax(0,1fr); }
  .job-form-wrap > aside { position:static; }
}
@media (max-width:560px) {
  a.job-card { grid-template-columns:auto minmax(0,1fr); padding:16px; }
  .job-side { display:none; }
  fieldset.comp-pick { grid-template-columns:minmax(0,1fr); }
  .msg { max-width:100%; }
}

/* Heller Modus: Farben für Text auf hellem Grund dunkler (Kontrast AA) */
:root[data-theme="light"] .pill.comp-volunteer, :root[data-theme="light"] .pill.app-accepted { color:#1f8a55; background:rgba(31,138,85,.12); }
:root[data-theme="light"] :is(.pill.comp-revenue_share, .pill.comp-paid) { color:#c0002c; background:rgba(239,35,60,.1); }
:root[data-theme="light"] .pill.app-shortlisted { color:#8a5a00; background:rgba(255,170,0,.16); }
:root[data-theme="light"] .pill.role { background:var(--card-2); color:var(--fg); }
:root[data-theme="light"] :is(a.job-card, .app-card) { box-shadow:var(--shadow); }
:root[data-theme="light"] label.comp-opt { background:var(--surface); }
:root[data-theme="light"] .msg { background:var(--card-2); border-color:var(--line); }
:root[data-theme="light"] .msg.mine { background:rgba(239,35,60,.08); border-color:rgba(239,35,60,.3); }
.open-roles h3.box-t { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.open-roles h3.box-t a { font:700 .82rem/1 var(--text); color:var(--muted); }
