/* ============================================================
   Arbeitszeitkalender (AZK) — Modul-Styles, v1 read-only
   Nutzt die Cockpit-Variablen (--brand, --status-*, etc.).
   ============================================================ */

.view[data-view="azk"] { padding: 18px 22px; }

.azk-head { margin-bottom: 12px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.azk-head h2 { display:flex; align-items:center; gap:8px; margin:0; font-size:1.25rem; }
.azk-head h2 .icon { width:20px; height:20px; }
.azk-sub { color: var(--muted, #667); font-size:.85rem; flex-basis:100%; margin-top:2px; }
.azk-sync {
  margin-left:auto; display:inline-flex; align-items:center; gap:6px;
  padding:6px 12px; border:1px solid var(--border,#d6dde6); border-radius:8px;
  background:#fff; cursor:pointer; font-size:.85rem; color:var(--brand-dark,#066);
}
.azk-sync:hover { background:var(--brand-soft,#f0fafe); }
.azk-sync .icon { width:15px; height:15px; }
.azk-sync:disabled { opacity:.6; cursor:default; }
.azk-warn { color:#b45309; font-weight:600; }

.azk-filters { display:flex; gap:10px; margin:10px 0 14px; flex-wrap:wrap; }
.azk-input {
  padding:7px 10px; border:1px solid var(--border,#d6dde6); border-radius:8px;
  font-size:.9rem; background:#fff; min-width:160px;
}
.azk-input[type="search"] { flex:1; min-width:240px; }

/* Liste */
.azk-tbl { width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--border,#e2e8f0); border-radius:10px; overflow:hidden; }
.azk-tbl th, .azk-tbl td { padding:9px 12px; text-align:left; font-size:.88rem; border-bottom:1px solid var(--border,#eef2f6); }
.azk-tbl th { background:var(--brand-soft,#e6f6fb); color:var(--brand-dark,#066); font-weight:600; }
.azk-tbl tbody tr:last-child td { border-bottom:0; }
.azk-row { cursor:pointer; }
.azk-row:hover { background:var(--brand-soft,#f0fafe); }
.azk-bez { font-weight:600; }
.azk-mono { font-family:ui-monospace,Menlo,Consolas,monospace; font-size:.8rem; color:var(--muted,#667); }
.azk-r { text-align:right; }
.azk-empty { text-align:center; color:var(--muted,#889); padding:18px; font-style:italic; }

/* Badges */
.azk-badge { display:inline-block; padding:1px 8px; border-radius:999px; font-size:.72rem; font-weight:600;
  background:#eef2f6; color:#475569; white-space:nowrap; }
.azk-betr  { background:#e0f2fe; color:#075985; }
.azk-bst   { background:#dcfce7; color:#166534; }
.azk-intvl { background:#fef3c7; color:#92400e; }
.azk-std   { color:#166534; font-weight:600; }
.azk-shift { color:#b45309; font-weight:600; }

/* Gültigkeits-Checker */
.azk-st { display:inline-block; padding:1px 8px; border-radius:999px; font-size:.7rem; font-weight:700; white-space:nowrap; }
.azk-st-now    { background:#dcfce7; color:#166534; }
.azk-st-future { background:#e0f2fe; color:#075985; }
.azk-st-past   { background:#f1f5f9; color:#64748b; }
.azk-pasttoggle { display:inline-flex; align-items:center; gap:6px; font-size:.85rem; color:var(--muted,#667); white-space:nowrap; }
.azk-hint-past { color:#94a3b8; font-weight:400; font-size:.72rem; }

/* Baum: Modell → Periode → Wochentage */
.azk-expand { display:inline-flex; align-items:center; padding:6px 9px; border:1px solid var(--border,#d6dde6); border-radius:8px; background:#fff; cursor:pointer; color:var(--muted,#667); }
.azk-expand:hover { background:var(--brand-soft,#f0fafe); }
.azk-expand .icon { width:16px; height:16px; }

.azk-chev { width:15px; height:15px; flex:0 0 auto; color:var(--muted,#889); }
.azk-count { margin-left:auto; color:var(--muted,#889); font-size:.78rem; white-space:nowrap; }
.azk-objnr { font-size:.8rem; color:var(--brand-dark,#066); font-weight:600; }

.azk-tree { display:flex; flex-direction:column; gap:8px; }

/* Baustellen-Knoten (oberste Ebene) */
.azk-bst-node { border:1px solid var(--border,#dbe3ea); border-radius:11px; background:#fff; overflow:hidden; }
.azk-bst-head { display:flex; align-items:center; gap:10px; padding:12px 14px; cursor:pointer; user-select:none; font-weight:700; }
.azk-bst-head:hover { background:var(--brand-soft,#f0fafe); }
.azk-bst-node.open > .azk-bst-head { border-bottom:1px solid var(--border,#e6edf3); background:var(--brand-soft,#eaf7fc); }
.azk-bst-label { display:inline-flex; align-items:center; gap:7px; }
.azk-bicon { width:17px; height:17px; color:var(--brand-dark,#066); }
.azk-bnr { font-family:ui-monospace,Menlo,Consolas,monospace; }
.azk-models { padding:8px 10px 10px; display:flex; flex-direction:column; gap:8px; }

/* Modell-Knoten */
.azk-model { border:1px solid var(--border,#e2e8f0); border-radius:10px; background:#fff; overflow:hidden; }
.azk-model-head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:11px 14px; cursor:pointer; user-select:none; }
.azk-model-head:hover { background:var(--brand-soft,#f6fcfe); }
.azk-model.open > .azk-model-head { border-bottom:1px solid var(--border,#eef2f6); background:var(--brand-soft,#f0fafe); }
.azk-model-bez { font-weight:600; }
.azk-periods { padding:8px 10px 10px; display:flex; flex-direction:column; gap:8px; }

/* Periode-Knoten */
.azk-period { border:1px solid var(--border,#e6edf3); border-radius:8px; background:#fff; overflow:hidden; }
.azk-period-head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:8px 12px; cursor:pointer; user-select:none; }
.azk-period-head:hover { background:#f8fbfd; }
.azk-period.open > .azk-period-head { border-bottom:1px solid var(--border,#eef2f6); background:#f8fbfd; }
.azk-period-head b { font-size:.9rem; }
.azk-period-dates { color:var(--muted,#667); font-size:.8rem; }
.azk-period-meta { display:flex; gap:22px; flex-wrap:wrap; padding:10px 14px; font-size:.85rem; background:#fcfdfe; }
.azk-period-meta label { display:block; color:var(--muted,#889); font-size:.72rem; text-transform:uppercase; letter-spacing:.03em; }

.azk-wd { width:100%; border-collapse:collapse; }
.azk-wd th, .azk-wd td { padding:7px 14px; text-align:left; font-size:.84rem; border-top:1px solid var(--border,#eef2f6); }
.azk-wd th { background:#fafcfe; color:#475569; font-weight:600; }
.azk-wd td:first-child { font-weight:600; }

/* Edit-/Aktions-Buttons im Baum */
.azk-edit-btn { display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; border:1px solid var(--border,#d6dde6); border-radius:7px; background:#fff; cursor:pointer; color:var(--brand-dark,#066); }
.azk-edit-btn:hover { background:var(--brand-soft,#eaf7fc); }
.azk-edit-btn .icon { width:15px; height:15px; }

/* Editor */
.azk-locked { color:#b45309; font-weight:600; flex-basis:100%; }
.azk-edit-sec { border:1px solid var(--border,#e2e8f0); border-radius:10px; background:#fff; padding:12px 14px; margin:0 0 14px; }
.azk-edit-sec h3 { margin:0 0 10px; font-size:1rem; }
.azk-edit-sec-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.azk-edit-sec-head h3 { margin:0; }
.azk-edit-prow { display:flex; gap:14px; flex-wrap:wrap; align-items:flex-end; margin-bottom:10px; }
.azk-edit-prow label { display:flex; flex-direction:column; gap:3px; font-size:.78rem; color:var(--muted,#667); }
.azk-edit-prow input[type=text], .azk-edit-prow input[type=date], .azk-edit-prow input[type=time], .azk-edit-prow select {
  padding:6px 8px; border:1px solid var(--border,#d6dde6); border-radius:7px; font-size:.88rem; color:#0f172a; background:#fff;
}
.azk-edit-prow .azk-grow { flex:1; min-width:220px; }
.azk-edit-prow .azk-grow input { width:100%; }
.azk-edit-lbl { font-size:.78rem; color:var(--muted,#889); align-self:center; }
.azk-chk { flex-direction:row !important; align-items:center; gap:6px; font-size:.85rem !important; color:#0f172a !important; }

.azk-edit-period { border:1px solid var(--border,#e6edf3); border-radius:8px; padding:10px 12px; margin:0 0 10px; background:#fcfdfe; }
.azk-del { margin-left:auto; border:1px solid #fecaca; background:#fff; color:#b91c1c; border-radius:7px; width:30px; height:30px; cursor:pointer; }
.azk-del:hover { background:#fef2f2; }
.azk-del .icon, .azk-add .icon, .azk-save .icon, .azk-cancel .icon { width:15px; height:15px; }
.azk-add { display:inline-flex; align-items:center; gap:6px; padding:5px 10px; border:1px solid var(--border,#d6dde6); border-radius:7px; background:#fff; cursor:pointer; font-size:.84rem; }
.azk-add:hover { background:var(--brand-soft,#eaf7fc); }

.azk-wd-edit input[type=time], .azk-wd-edit .azk-num { padding:4px 6px; border:1px solid var(--border,#d6dde6); border-radius:6px; font-size:.82rem; }
.azk-wd-edit .azk-num { width:72px; }
.azk-wd-edit td { padding:5px 8px; }
.azk-wd-copy { white-space:nowrap; }
.azk-wd-copy button { font-size:.72rem; padding:3px 7px; margin-left:4px; border:1px solid var(--border,#d6dde6); border-radius:6px; background:#fff; cursor:pointer; color:var(--brand-dark,#066); }
.azk-wd-copy button:hover { background:var(--brand-soft,#eaf7fc); }
.azk-new-top { margin-left:6px; color:var(--brand-dark,#066); font-weight:600; }
.azk-locked-val { padding:6px 8px; border:1px dashed var(--border,#d6dde6); border-radius:7px; background:#f8fafc; font-size:.88rem; color:#0f172a; }
.azk-lock { opacity:.6; font-size:.8rem; }

/* Eingebettete AZK-Übersicht im Objekt-Detail */
.azk-embed { font-size:.86rem; }
.azk-embed-empty { color:var(--text-dim,#889); font-style:italic; padding:4px 2px; }
.azk-embed-model { padding:6px 0; border-top:1px solid var(--border,#eef2f6); }
.azk-embed-model:first-child { border-top:0; }
.azk-embed-mhead { display:flex; align-items:center; gap:8px; }
.azk-embed-periods { margin:5px 0 2px; padding-left:18px; }
.azk-embed-periods li { margin:2px 0; }
.azk-embed-meta { color:var(--text-muted,#778); font-size:.8rem; margin-left:6px; }
.azk-save:disabled { opacity:.5; cursor:not-allowed; }
.azk-embed-basis { margin-top:6px; padding-top:8px; border-top:1px dashed var(--border,#d6dde6); background:#fbfdff; border-radius:6px; }
.azk-basis-tag { font-size:.7rem; font-weight:600; color:#075985; background:#e0f2fe; padding:1px 7px; border-radius:999px; }

.azk-edit-footer { display:flex; gap:10px; justify-content:flex-end; margin:14px 0 30px; }
.azk-save { display:inline-flex; align-items:center; gap:6px; background:var(--brand,#0099CC); color:#fff; border:0; padding:9px 18px; border-radius:8px; cursor:pointer; font-weight:600; }
.azk-save:hover { filter:brightness(1.05); }
.azk-cancel { background:#fff; border:1px solid var(--border,#d6dde6); padding:9px 16px; border-radius:8px; cursor:pointer; }
