/* Round 10a: Abwesenheit, Fahren als Aktivität, Kennzahl „Fahren ohne Voice“.
   Own `ab-` classes only; CSP style-src 'self' (no inline styles). */

/* Status tone "abwesend" (members list dot) */
.r4-dot.away{background:#6cb4ff;box-shadow:0 0 0 3px rgb(108 180 255/.18)}
.r4-card .stats.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.ab-chip{white-space:nowrap}
.ab-dv-hot{color:#f3cf8a}

/* Card shared by "Meine Daten › Abwesenheit" and the leadership record tab */
.ab-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px 20px;display:grid;gap:16px;max-width:920px;min-width:0}
.ab-loading{color:var(--muted);font-size:13px}
.ab-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.ab-head h3{margin:0 0 4px}
.ab-head p{margin:0;color:var(--muted);font-size:13px;line-height:1.5;max-width:640px}
.ab-form{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}
.ab-grid{display:grid;grid-template-columns:minmax(0,1.2fr) repeat(2,minmax(0,1fr));gap:10px 14px}
.ab-form label{display:grid;gap:4px;min-width:0}
.ab-form select,.ab-form input,.ab-form textarea,.ab-extend input{width:100%;box-sizing:border-box;min-height:36px;padding:7px 10px;border-radius:9px;border:1px solid var(--line);background:var(--bg);color:var(--text);font:inherit;font-size:13px;color-scheme:dark}
.ab-form textarea{resize:vertical;min-height:58px}
.ab-sub{display:block;font-size:11px;color:var(--muted)}
.ab-hint{margin:0;color:var(--muted);font-size:11.5px;line-height:1.45}
.ab-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.ab-status{color:var(--muted);font-size:12.5px}
.ab-status.err{color:#ffb4bb}
.ab-status.ok{color:#8de3a3}
.ab-list{display:grid;gap:8px}
.ab-item{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}
.ab-item.active{border-color:#2b4a6d}
.ab-item.deleted,.ab-item.cancelled{opacity:.7}
.ab-item-main{display:grid;gap:4px;min-width:0;flex:1}
.ab-item-main b{font-size:13.5px;color:var(--text)}
.ab-item-main>.r4-b,.ab-head>.r4-b{justify-self:start;width:max-content}
.ab-item-main small,.ab-meta{color:var(--muted);font-size:12px}
.ab-reason-text{margin:2px 0 0;font-size:12.5px;color:var(--text);overflow-wrap:anywhere}
.ab-item-actions{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}
.ab-extend{display:grid;gap:3px}
.ab-extend input{min-height:32px;padding:4px 8px;width:150px}
.r4-btn.sm{height:32px;padding:0 11px;font-size:12.5px}
.r4-btn.danger{border-color:#71101a;color:#ffd2d6}
.ab-history summary{cursor:pointer;color:var(--muted);font-size:13px;padding:4px 0}
.ab-history[open] summary{margin-bottom:8px}
.ab-empty{margin:0;color:var(--muted);font-size:13px}
.ab-events{margin:0;padding-left:18px;display:grid;gap:4px;color:var(--muted);font-size:12.5px}
.ab-events time{color:var(--text);font-variant-numeric:tabular-nums}

/* Record: pause banner below the Discord status block */
.ab-pause{display:grid;gap:8px;margin:12px 0;padding:12px 14px;border:1px solid #2b4a6d;border-radius:12px;background:#111b28}
.ab-pause-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px}
.ab-pause-line small{color:var(--muted)}

/* Record: "Fahren ohne Voice" (leadership only) */
.ab-driving-voice .ab-dv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:8px 0}
.ab-dv-cell{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);justify-items:start}
.ab-dv-cell b{font-size:20px;font-variant-numeric:tabular-nums}
.ab-dv-cell small{color:var(--muted);font-size:12px}

/* Dashboard › Aufmerksamkeit: absent members */
.ab-dashboard{margin-top:12px;display:grid;gap:8px}
.ab-dashboard h3{margin:0;font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}

@media (max-width:720px){
  .ab-card{padding:14px}
  .ab-grid{grid-template-columns:minmax(0,1fr)}
  .ab-driving-voice .ab-dv-grid{grid-template-columns:minmax(0,1fr)}
  .r4-card .stats.four{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ab-item-actions{width:100%}
}
