/* Settings — Verwaltung (Lohnlauf-Parameter | Rechte) */
.view[data-view="settings"] { padding: 18px 22px; }

/* Tabs */
.cfg-tabs { display:flex; gap:6px; margin-bottom:16px; border-bottom:2px solid var(--border,#e2e8f0); }
.cfg-tab { display:inline-flex; align-items:center; gap:6px; padding:8px 14px; border:0;
  background:none; cursor:pointer; font-size:.92rem; font-weight:600; color:var(--muted,#667);
  border-bottom:2px solid transparent; margin-bottom:-2px; }
.cfg-tab .icon { width:15px; height:15px; }
.cfg-tab:hover { color:var(--brand-dark,#066); }
.cfg-tab.on { color:var(--brand,#0099CC); border-bottom-color:var(--brand,#0099CC); }

/* Rechte-Matrix */
.rp-wrap { overflow-x:auto; }
.rp-tbl { min-width:720px; }
.rp-tbl th.rp-role { text-align:center; white-space:nowrap; }
.rp-tbl td.rp-c { text-align:center; color:var(--border,#cbd5e1); }
.rp-tbl td.rp-yes { color:#0a7d36; font-weight:700; }
.rp-tbl tr.rp-res td { background:var(--brand-soft,#eaf7fc); color:var(--brand-dark,#066);
  font-weight:600; font-size:.82rem; text-transform:uppercase; letter-spacing:.03em; }
.rp-perm { min-width:220px; }

.cfg-head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
.cfg-head h2 { display:flex; align-items:center; gap:8px; margin:0; font-size:1.25rem; }
.cfg-head h2 .icon { width:20px; height:20px; }
.cfg-sub { flex-basis:100%; color:var(--muted,#667); font-size:.85rem; }
.cfg-warn { color:#b45309; font-weight:600; }

.cfg-save { margin-left:auto; display:inline-flex; align-items:center; gap:6px;
  padding:8px 16px; border:0; border-radius:8px; background:var(--brand,#0099CC); color:#fff;
  font-weight:600; cursor:pointer; }
.cfg-save:hover { filter:brightness(1.05); }
.cfg-save:disabled { opacity:.5; cursor:default; }
.cfg-save .icon { width:15px; height:15px; }
.cfg-addbtn { margin-top:10px; display:inline-flex; align-items:center; gap:6px;
  padding:7px 13px; border:1px dashed var(--border-strong,#cbd5e1); border-radius:8px;
  background:transparent; color:var(--brand,#0099CC); font-weight:600; cursor:pointer; }
.cfg-addbtn:hover { background:var(--brand-soft,#e6f6fc); }
.cfg-addbtn .icon { width:15px; height:15px; }
.cfg-linkbtn { border:0; background:transparent; color:var(--text-dim,#94a3b8); cursor:pointer; font-size:15px; }
.cfg-linkbtn:hover { color:#dc2626; }
.cfg-farbe { display:flex; align-items:center; gap:8px; }
.cfg-swatch { flex:0 0 auto; width:18px; height:18px; border-radius:5px; border:1px solid var(--border-strong,#cbd5e1); }

.cfg-group { margin:0 0 18px; }
.cfg-group h3 { font-size:.95rem; margin:0 0 6px; color:var(--brand-dark,#066); }
.cfg-tbl { width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--border,#e2e8f0); border-radius:10px; overflow:hidden; }
.cfg-tbl th, .cfg-tbl td { padding:8px 12px; text-align:left; font-size:.88rem; border-bottom:1px solid var(--border,#eef2f6); vertical-align:top; }
.cfg-tbl th { background:var(--brand-soft,#eaf7fc); color:var(--brand-dark,#066); font-weight:600; }
.cfg-tbl tbody tr:last-child td { border-bottom:0; }
.cfg-dirty { background:#fffbeb; }
.cfg-desc { font-size:.74rem; color:var(--muted,#889); margin-top:2px; }
.cfg-k { font-family:ui-monospace,Menlo,Consolas,monospace; font-size:.78rem; color:var(--muted,#889); }

.cfg-in { padding:5px 8px; border:1px solid var(--border,#d6dde6); border-radius:6px; font-size:.88rem; }
.cfg-num { width:90px; }
.cfg-in:disabled { background:#f1f5f9; color:#475569; }
.cfg-empty { text-align:center; color:var(--muted,#889); padding:18px; font-style:italic; }

/* ---- SharePoint-Struktur-Tab ---- */
.spx-tbl td { vertical-align: middle; }
.spx-t { font-weight: 600; color: var(--text, #0E1419); }
.spx-u { font-size: 11.5px; color: var(--text-muted, #6b7280); text-decoration: none; }
.spx-u:hover { color: var(--brand-dark, #0b6d8c); text-decoration: underline; }
.spx-off { opacity: .55; }
.spx-sw { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--text-muted, #6b7280); cursor: pointer; }
.spx-sw input { cursor: pointer; }
.spx-tag { display: inline-block; font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 5px; }
.spx-tag.obj { background: #eef1f4; color: #9ca3af; }
.spx-spin { animation: spx-rot 1s linear infinite; }
@keyframes spx-rot { to { transform: rotate(360deg); } }
.spx-tag.sys { background: #fef3c7; color: #92400e; }

/* ---- SharePoint-Baum ---- */
.spx-filter { display:flex; align-items:center; gap:8px; border:1px solid var(--border-strong,#d1d5db); border-radius:8px; padding:7px 12px; margin:10px 0; max-width:420px; }
.spx-filter .icon { width:15px; height:15px; color:var(--text-muted,#6b7280); }
.spx-filter input { flex:1; border:none; outline:none; background:none; font:inherit; font-size:13px; color:var(--text,#0E1419); }
.spx-tree { border:1px solid var(--border,#e5e7eb); border-radius:10px; overflow:hidden; }
.spx-sec + .spx-sec { border-top:1px solid var(--border,#e5e7eb); }
.spx-sechead { display:flex; align-items:center; gap:8px; width:100%; padding:9px 12px; border:none; background:var(--bg,#f2f4f6); cursor:pointer; font:inherit; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--text-dim,#9ca3af); }
.spx-node { display:flex; align-items:center; gap:8px; padding:6px 12px; border-top:1px solid #f4f7fa; font-size:13px; }
.spx-node:hover { background:var(--brand-soft,#e6f6fc); }
.spx-node.spx-off { opacity:.5; }
.spx-car { flex:0 0 auto; width:14px; height:14px; position:relative; cursor:pointer; }
.spx-car:not(.empty)::before { content:""; position:absolute; top:3px; left:4px; border-left:5px solid var(--text-muted,#6b7280); border-top:4px solid transparent; border-bottom:4px solid transparent; transition:transform .12s; }
.spx-car.o::before { transform:rotate(90deg); transform-origin:2px 4px; }
.spx-nt { font-weight:600; color:var(--text,#0E1419); text-decoration:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:340px; }
.spx-nt:hover { color:var(--brand-dark,#0b6d8c); text-decoration:underline; }
.spx-mini { font-size:11px; color:var(--text-dim,#9ca3af); white-space:nowrap; }
.spx-grow { flex:1; }
.spx-lib { display:flex; align-items:center; gap:7px; padding:4px 12px; border-top:1px solid #f7f9fb; font-size:12.5px; }
.spx-lib a { color:var(--text,#0E1419); text-decoration:none; }
.spx-lib a:hover { text-decoration:underline; }
.spx-lib a.spx-dim { color:var(--text-dim,#9ca3af); }
.spx-li { width:13px; height:13px; color:#0b6d8c; }
.spx-tag.num { background:#d6e4f0; color:#2a567e; }
.spx-tag.pers { background:#e8e0f5; color:#5a3fa0; }
