/* ============================================================
   OFFLOAD — Agenda Cockpit redesign
   Design tokens, two themes, semantic card system, motion.
   (No color-mix() — explicit rgba tints for capture/export safety)
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap');

/* ---------- THEME: DARK (default) ---------- */
:root,
[data-theme="dark"] {
  --bg:          #0a0a0e;
  --bg-2:        #0d0d12;
  --panel:       #14141b;
  --panel-2:     #18181f;
  --header-bg:   #1d1d27;
  --header-bg-2: #202029;
  --border:      rgba(255,255,255,.075);
  --border-2:    rgba(255,255,255,.14);
  --text:        #eaeaf0;
  --text-dim:    #a2a2ad;
  --text-mute:   #6a6a76;
  --rail:        rgba(255,255,255,.06);
  --shadow:      0 1px 0 rgba(255,255,255,.03), 0 14px 30px -18px rgba(0,0,0,.7);
  --head-ink:    #eaeaf0;
  --head-sub:    #8c8c98;
  --glow:        0 0 0 1px rgba(99,102,241,.55), 0 0 22px -2px rgba(99,102,241,.42);
}

/* ---------- THEME: LIGHT (refined, no harsh white) ---------- */
[data-theme="light"] {
  --bg:          #e5e7ee;
  --bg-2:        #ebedf3;
  --panel:       #f8f9fc;
  --panel-2:     #f1f3f8;
  --header-bg:   #1e2330;
  --header-bg-2: #262c3b;
  --border:      #dde1ea;
  --border-2:    #c9cfdb;
  --text:        #1b2030;
  --text-dim:    #5a6377;
  --text-mute:   #98a1b2;
  --rail:        rgba(20,24,40,.05);
  --shadow:      0 1px 2px rgba(20,28,48,.05), 0 16px 34px -20px rgba(20,28,48,.22);
  --head-ink:    #eef1f7;
  --head-sub:    #a7b0c2;
  --glow:        0 0 0 1px rgba(99,102,241,.45), 0 0 18px -2px rgba(99,102,241,.34);
}

/* ---------- QUELLE (steuert Timeline) + BUCKET (steuert Pools) ---------- */
:root {
  --now-line:#c77f96;
  --c-timetable:#64748b; --c-school:#6366f1; --c-project:#10b981; --c-private:#f97316; --c-general:#8b95a8;
  --radius:11px; --radius-sm:8px; --gap:18px; --pad:16px;
  --fs:1rem; --fs-sm:.8125rem; --fs-xs:.6875rem;
  --mono:'JetBrains Mono', ui-monospace, monospace;
  --ease:cubic-bezier(.4,0,.2,1);
}

/* DARK (default) — luminöse Pastelltöne auf Schiefer */
.src-offload   { --accent:#9aa1ec; --fill:rgba(154,161,236,.12); --edge:rgba(154,161,236,.30); --ink:#c2c7f4; }
.src-recurring { --accent:#5fc2b8; --fill:rgba(95,194,184,.10);  --edge:rgba(95,194,184,.28);  --ink:#a9ddd6; }
.src-external  { --accent:#b49ae0; --fill:rgba(180,154,224,.08); --edge:rgba(180,154,224,.22); --ink:#d4c6f0; }

/* BUCKET / STATUS (steuert Pools) */
.bk-today   { --accent:#9aa1ec; --fill:rgba(154,161,236,.12); --edge:rgba(154,161,236,.30); --ink:#c2c7f4; }
.bk-overdue { --accent:#e6b074; --fill:rgba(230,176,116,.15); --edge:rgba(230,176,116,.40); --ink:#f0cca0; }
.bk-pool    { --accent:#aab3c1; --fill:rgba(170,179,193,.12); --edge:rgba(170,179,193,.26); --ink:#ccd2dc; }

/* LIGHT (Frost) */
[data-theme="light"] .src-offload   { --accent:#6e8fd8; --fill:rgba(110,143,216,.10); --edge:rgba(110,143,216,.25); --ink:#41538f; }
[data-theme="light"] .src-recurring { --accent:#3f9f97; --fill:rgba(63,159,151,.08);  --edge:rgba(63,159,151,.25);  --ink:#2c6b65; }
[data-theme="light"] .src-external  { --accent:#9d83cc; --fill:rgba(157,131,204,.08); --edge:rgba(157,131,204,.25); --ink:#5e4790; }
[data-theme="light"] .bk-today   { --accent:#6e8fd8; --fill:rgba(110,143,216,.10); --edge:rgba(110,143,216,.25); --ink:#3a4a82; }
[data-theme="light"] .bk-overdue { --accent:#e0a062; --fill:rgba(224,160,98,.15);  --edge:rgba(224,160,98,.45);  --ink:#97591f; }
[data-theme="light"] .bk-pool    { --accent:#94a0b2; --fill:rgba(148,160,178,.13); --edge:rgba(148,160,178,.30); --ink:#515c6e; }
[data-theme="light"] { --now-line:#c77f96; }

/* LIGHT Frost-Neutralbasis */
[data-theme="light"] {
  --bg:#e9edf2; --bg-2:#e1e6ee; --panel:#f7f9fc; --panel-2:#eef2f7;
  --border:#dbe1ea; --border-2:#c4cdda;
  --text:#1f2733; --text-dim:#51607a; --text-mute:#8e98aa;
}

/* src-external = gestrichelter border-left (read-only Kennzeichnung) */
.src-external { border-left-style: dashed; }

/* Jetzt-Linie */
.now-line      { color:var(--now-line); }
.now-line .dot { background:var(--now-line); }

/* density */
[data-density="compact"] { --gap:12px; --pad:11px; --fs:.94rem; --fs-sm:.78rem; }
[data-density="comfy"]   { --gap:24px; --pad:22px; --fs:1.06rem; --fs-sm:.85rem; }

* { box-sizing:border-box; margin:0; padding:0; }
body {
  font-family:'Outfit', system-ui, sans-serif;
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  line-height:1.45;
}

/* ============================================================ GRID */
.stage { flex:1; min-height:0; display:grid; grid-template-columns:minmax(330px, 38%) 1fr; gap:var(--gap); padding:var(--gap); }
.right { min-height:0; display:grid; grid-template-rows:auto 1fr; gap:var(--gap); }
.pool  { min-height:0; display:grid; grid-template-columns:1.15fr .85fr; gap:var(--gap); }

/* ============================================================ PANEL */
.panel { background:var(--panel); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow); display:flex; flex-direction:column; min-height:0; overflow:hidden; }
.panel__head { flex:0 0 auto; display:flex; align-items:center; gap:10px; padding:13px 16px; background:linear-gradient(180deg, var(--header-bg), var(--header-bg-2)); border-bottom:1px solid var(--border); color:var(--head-ink); }
.panel__head .tag { display:flex; align-items:center; gap:8px; font:700 .76rem/1 'Outfit'; letter-spacing:.13em; text-transform:uppercase; color:var(--head-ink); white-space:nowrap; }
.panel__head .tag svg { color:#9aa6ff; }
.panel__head .sub { font-size:.74rem; color:var(--head-sub); font-weight:500; letter-spacing:.02em; }
.panel__head .grow { flex:1; }
.icon-btn {
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: var(--head-sub);
  transition: all 0.18s var(--ease);
  cursor: pointer;
}
.icon-btn:hover {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.08);
}
.panel__head .icon-btn {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: var(--head-sub);
}
.panel__head .icon-btn:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.25);
  color: #fff;
}
.panel__body { flex:1; min-height:0; overflow-y:auto; padding:var(--pad); }
.panel__body::-webkit-scrollbar { width:9px; }
.panel__body::-webkit-scrollbar-thumb { background:var(--border-2); border-radius:9px; border:3px solid transparent; background-clip:padding-box; }

/* ---------- PRIORITY (high = subtle right accent) ---------- */
:root {
  --prio-high: #e07a7a;
  --prio-high-edge: rgba(224, 122, 122, 0.55);
  --prio-high-glow: rgba(224, 122, 122, 0.14);
}
[data-theme="light"] {
  --prio-high: #d45c5c;
  --prio-high-edge: rgba(212, 92, 92, 0.5);
  --prio-high-glow: rgba(212, 92, 92, 0.12);
}

.card.prio-high {
  border-right-color: var(--prio-high-edge);
  box-shadow: inset -3px 0 0 var(--prio-high), 0 1px 0 rgba(255,255,255,.03);
}
.card.prio-high::after {
  content: "";
  position: absolute;
  right: 0;
  top: 7px;
  bottom: 7px;
  width: 3px;
  border-radius: 3px;
  background: linear-gradient(180deg, var(--prio-high) 0%, rgba(224, 122, 122, 0.35) 100%);
  pointer-events: none;
}

.agenda-item-card.prio-high {
  position: relative;
  border-right: 2px solid var(--prio-high-edge) !important;
  box-shadow: inset -3px 0 0 var(--prio-high-glow);
}
.agenda-item-card.prio-high::after {
  content: "";
  position: absolute;
  right: 0;
  top: 6px;
  bottom: 6px;
  width: 3px;
  border-radius: 3px 0 0 3px;
  background: var(--prio-high);
  opacity: 0.85;
  pointer-events: none;
}

.project-task-item.prio-high {
  border-right: 2px solid var(--prio-high-edge) !important;
  box-shadow: inset -3px 0 0 var(--prio-high-glow);
}

/* ============================================================ CARDS */
.card {
  --accent:#6366f1; --fill:rgba(99,102,241,.17); --edge:rgba(99,102,241,.44); --ink:#9799f7;
  position:relative; border-radius:var(--radius-sm); padding:11px 13px 11px 16px;
  background:var(--fill); border:1px solid var(--edge);
  display:flex; align-items:center; gap:11px; cursor:grab;
  transition:transform .16s var(--ease), box-shadow .16s var(--ease), opacity .3s var(--ease);
  overflow:visible !important; /* Ensure floating buttons can overflow card top edge */
}
.card::before { content:""; position:absolute; left:0; top:7px; bottom:7px; width:3px; border-radius:3px; background:var(--accent); }
.card:hover { transform:translateY(-1px); box-shadow:0 8px 18px -10px rgba(0,0,0,.5); }

[data-cards="outline"] .card { background:transparent; }
[data-cards="stripe"]  .card { background:var(--panel-2); border-color:var(--border); }

.card .time { font:600 .74rem/1.2 var(--mono); color:var(--ink); white-space:nowrap; }
.card .body { flex:1; min-width:0; }
.card .title { font-weight:600; font-size:var(--fs-sm); color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.card .meta { font-size:var(--fs-xs); color:var(--text-mute); margin-top:2px; display:flex; align-items:center; gap:5px; }
.card .pill { font:600 .62rem/1 'Outfit'; letter-spacing:.06em; text-transform:uppercase; color:var(--ink); background:var(--fill); padding:3px 6px; border-radius:5px; }

.card.src-recurring { padding-left:18px; }
.card.src-recurring::before {
  width: 5px;
  background: linear-gradient(90deg, var(--accent) 0 2px, transparent 2px 4px, var(--accent) 4px 5px);
  border-radius: 2px 0 0 2px;
}
.card.src-recurring .title { color:var(--text-dim); }

.card.src-external {
  opacity: 0.85;
  transition: opacity 0.2s ease, transform 0.16s var(--ease), box-shadow 0.16s var(--ease);
}
.card.src-external:hover {
  opacity: 1;
}
.card.src-external::before {
  width: 3px;
  background: repeating-linear-gradient(180deg, var(--accent) 0 4px, transparent 4px 8px);
}

.card .actions {
  position: absolute;
  top: 0;
  right: 8px;
  display: flex;
  gap: 6px;
  z-index: 20;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  pointer-events: none;
}
.card .actions > * {
  opacity: 0;
  transform: translateY(12px) scale(0.6);
  transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.2s ease, background 0.15s ease, border-color 0.15s ease;
  pointer-events: none;
}
/* Staggering delays for premium micro-animation */
.card .actions .cbx {
  transition-delay: 0s;
}
.card .actions .bolt-btn {
  transition-delay: 0.03s;
}
.card .actions .edit-btn {
  transition-delay: 0.06s;
}
.card .actions .x-btn {
  transition-delay: 0.09s;
}

/* Hover / Focus State - Float out of card upwards */
.card:hover .actions > *,
.card:focus-within .actions > * {
  opacity: 1;
  transform: translateY(-12px) scale(1);
  pointer-events: auto;
}

/* Circular floating buttons styling */
.card .actions .cbx,
.card .actions .bolt-btn,
.card .actions .edit-btn,
.card .actions .x-btn {
  width: 22px;
  height: 22px;
  border-radius: 50% !important;
  background: var(--panel-2) !important;
  border: 1.5px solid var(--border) !important;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.3) !important;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 !important;
  padding: 0 !important;
}

/* Custom styles for checkbox circular button */
.card .actions .cbx {
  appearance: none !important;
  position: relative;
}
.card .actions .cbx::after {
  content: "" !important;
  position: absolute;
  left: 6px !important;
  top: 3px !important;
  width: 4px !important;
  height: 7px !important;
  border: 2px solid var(--text-dim) !important;
  border-top: 0 !important;
  border-left: 0 !important;
  transform: rotate(42deg) !important;
  transition: border-color 0.15s ease;
  background: transparent !important;
  opacity: 1 !important;
}
.card .actions .cbx:hover::after {
  border-color: #10b981 !important;
}
.card .actions .cbx:checked {
  background: #10b981 !important;
  border-color: #10b981 !important;
}
.card .actions .cbx:checked::after {
  border-color: #fff !important;
}

.card .actions .bolt-btn,
.card .actions .edit-btn,
.card .actions .x-btn {
  color: var(--text-dim);
}

.card .actions .cbx:hover {
  border-color: #10b981 !important;
  background: rgba(16, 185, 129, 0.15) !important;
  transform: translateY(-12px) scale(1.15) !important;
}
.card .actions .bolt-btn:hover {
  border-color: #f97316 !important;
  background: rgba(249, 115, 22, 0.15) !important;
  color: #f97316 !important;
  transform: translateY(-12px) scale(1.15) !important;
}
.card .actions .edit-btn:hover {
  border-color: #6366f1 !important;
  background: rgba(99, 102, 241, 0.15) !important;
  color: #6366f1 !important;
  transform: translateY(-12px) scale(1.15) !important;
}
.card .actions .x-btn:hover {
  border-color: #ef4444 !important;
  background: rgba(239, 68, 68, 0.15) !important;
  color: #ef4444 !important;
  transform: translateY(-12px) scale(1.15) !important;
}
.card .actions svg {
  width: 11px !important;
  height: 11px !important;
}
.card.done { opacity:0; transform:translateX(14px); pointer-events:none; }

[data-glow="on"] .card.next-action { box-shadow:var(--glow); border-color:var(--accent); opacity:1 !important; }
[data-glow="on"] #today-undated-checklist:has(.next-action) .card:not(.next-action) { opacity: .55; }

/* ============================================================ MODULE A */
.seg { display:inline-flex; align-items:center; gap:6px; border:1px solid rgba(255,255,255,.16); border-radius:8px; padding:5px 10px; font-size:.74rem; font-weight:600; color:var(--head-sub); background:transparent; cursor:pointer; transition:var(--ease) .18s; }
.seg:hover { color:#fff; background:rgba(255,255,255,.05); }
.seg .sw { color:var(--c-project); }
.daynav { display:flex; align-items:center; gap:6px; }
.daynav .date { font:600 .82rem/1.1 'Outfit'; color:var(--head-ink); text-align:right; }
.daynav .date small { display:block; font:500 .68rem/1 var(--mono); color:var(--head-sub); }
.btn-today { font-size:.72rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; padding:5px 10px; border-radius:7px; color:#5ee0b4; border:1px solid rgba(16,185,129,.4); background:rgba(16,185,129,.14); cursor:pointer; transition:var(--ease) .18s; }
.btn-today:hover { background:rgba(16,185,129,.22); }

#timelineBody { display:flex; flex-direction:column; gap:9px; transition:transform .18s var(--ease), opacity .18s var(--ease); }
#timelineBody.warp-out-next { transform:translateX(-26px); opacity:0; }
#timelineBody.warp-out-prev { transform:translateX(26px); opacity:0; }
#timelineBody.warp-in-next  { animation:inFromRight .18s var(--ease); }
#timelineBody.warp-in-prev  { animation:inFromLeft .18s var(--ease); }
@keyframes inFromRight { from{transform:translateX(26px);opacity:0} to{transform:none;opacity:1} }
@keyframes inFromLeft  { from{transform:translateX(-26px);opacity:0} to{transform:none;opacity:1} }
.gap-rule { display:flex; align-items:center; gap:10px; padding:3px 4px; color:var(--text-mute); font-size:.72rem; font-weight:500; }
.gap-rule::before, .gap-rule::after { content:""; flex:1; height:1px; background:repeating-linear-gradient(90deg, var(--border-2) 0 4px, transparent 4px 8px); }
.empty-state { color:var(--text-mute); font-size:.82rem; text-align:center; padding:30px 10px; }

/* drag & drop */
.card[data-drag] { cursor:grab; }
.card.dragging { opacity:.4; }
.ghost {
  display:flex; align-items:center; gap:10px; padding:10px 14px; border-radius:var(--radius-sm);
  border:1.5px dashed var(--c-school); background:rgba(99,102,241,.1); color:var(--c-school);
  font-size:.78rem; font-weight:600; animation:ghostPulse 1s var(--ease) infinite;
}
.ghost .time { font:600 .74rem var(--mono); }
.ghost .lbl { opacity:.7; }
@keyframes ghostPulse { 0%,100%{opacity:1} 50%{opacity:.6} }
.gap-rule.slot { cursor:copy; transition:color .15s; }
.gap-rule.slot.over { color:var(--c-school); font-weight:700; }
.gap-rule.slot.over::before, .gap-rule.slot.over::after { background:var(--c-school); }
.card .resize { position:absolute; left:14px; right:10px; bottom:-4px; height:9px; cursor:ns-resize; opacity:0; touch-action:none; }
.card .resize::after { content:""; position:absolute; left:50%; bottom:3px; transform:translateX(-50%); width:28px; height:3px; border-radius:3px; background:var(--edge); }
.card:hover .resize { opacity:1; }
.card.resizing { box-shadow:var(--glow); }
body.resizing { cursor:ns-resize; user-select:none; }
.card.just-dropped { animation:justDropped .7s var(--ease); }
@keyframes justDropped { 0%{box-shadow:0 0 0 2px var(--accent); transform:scale(1.015)} 100%{box-shadow:none; transform:none} }

.radar-window { overflow:hidden; display:flex; flex-direction:column; min-height:100px; height: auto; }
.radar-track { display:grid; grid-auto-flow:column; grid-auto-columns:1fr; gap:var(--gap); height: auto; transition:transform .2s var(--ease); align-items: stretch; }
.radar-track.no-anim { transition:none; }
.rcol { display:flex; flex-direction:column; min-width:0; background:var(--panel-2); border:1px solid var(--border); border-radius:var(--radius-sm); overflow:hidden; cursor:default; transition:border-color .18s var(--ease), transform .2s var(--ease), opacity .2s var(--ease); }
.rcol:hover { border-color:var(--border-2); }
.rcol.is-target { border-color:rgba(99,102,241,.55); box-shadow:var(--glow); }
.rcol.warp { transform:scale(1.05); opacity:.5; }
.rcol__head { display:flex; align-items:baseline; justify-content:space-between; padding:9px 11px 7px; border-bottom:1px solid var(--border); }
.rcol__head .wd { font-weight:700; font-size:.82rem; }
.rcol__head .dt { font:500 .68rem/1 var(--mono); color:var(--text-mute); }
.rcol__body { flex:1; padding:8px; display:flex; flex-direction:column; gap:6px; overflow-y:auto; max-height: 304px; }

/* Floating scroll badge indicator at bottom of rcol */
.rcol__scroll-badge {
  position: absolute;
  bottom: 8px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(99, 102, 241, 0.90);
  color: #ffffff;
  font-size: 0.65rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 99px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
  cursor: pointer;
  z-index: 50;
  transition: opacity 0.25s ease, transform 0.25s ease;
  white-space: nowrap;
  pointer-events: auto;
}
.rcol__scroll-badge:hover {
  background: #6366f1;
  transform: translateX(-50%) translateY(-1px);
}
[data-theme="light"] .rcol__scroll-badge {
  background: rgba(99, 102, 241, 0.95);
  box-shadow: 0 3px 8px rgba(99, 102, 241, 0.2);
}
.rcol__body::-webkit-scrollbar { width:4px; }
.rcol__body::-webkit-scrollbar-thumb { background:var(--border-2); border-radius:4px; }
.rcard { --accent:#6366f1; --fill:rgba(99,102,241,.17); --edge:rgba(99,102,241,.44); --ink:#9799f7; position:relative; padding:6px 8px 6px 11px; border-radius:6px; background:var(--fill); border:1px solid var(--edge); font-size:.72rem; font-weight:500; color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; user-select:none; -webkit-user-select:none; }
.rcard::before { content:""; position:absolute; left:0; top:4px; bottom:4px; width:2.5px; border-radius:3px; background:var(--accent); }
.rcard .rt { font:600 .64rem var(--mono); color:var(--ink); margin-right:4px; }
.rcard.compact-radar-task { border-style: dashed; background: transparent; padding: 4px 6px 4px 8px; font-size: .68rem; line-height: 1.2; cursor: grab; }
.rcard.compact-radar-task::before { display: none; }
.rcol .free { margin:auto; color:var(--text-mute); font-size:.72rem; font-style:italic; }

.rcard .radar-edit-btn {
  background: none;
  border: none;
  padding: 0;
  color: var(--text-mute);
  cursor: pointer;
  display: flex;
  align-items: center;
  opacity: 0;
  transition: opacity 0.2s ease;
  margin-left: 4px;
}
.rcard:hover .radar-edit-btn {
  opacity: 0.65;
}
.rcard:hover .radar-edit-btn:hover {
  opacity: 1;
  color: var(--c-school);
}

/* ---------- WEEK-RADAR QUIET NEUTRAL LAYOUT ---------- */
.radar .rcard {
  color: var(--text-dim);
  transition: transform .16s var(--ease), box-shadow .16s var(--ease), opacity .2s var(--ease);
}
.radar .rcard.src-offload {
  --accent: #9aa1ec;
  --fill: rgba(154,161,236,.12);
  --edge: rgba(154,161,236,.26);
  --ink: #c2c7f4;
}
.radar .rcard.src-recurring {
  --accent: #5fc2b8;
  --fill: rgba(95,194,184,.12);
  --edge: rgba(95,194,184,.26);
  --ink: #a9ddd6;
}
.radar .rcard.src-external {
  --accent: #b49ae0;
  --fill: rgba(180,154,224,.08);
  --edge: rgba(180,154,224,.20);
  --ink: #d4c6f0;
}
[data-theme="light"] .radar .rcard.src-offload {
  --accent: #6e8fd8;
  --fill: rgba(110,143,216,.10);
  --edge: rgba(110,143,216,.25);
  --ink: #41538f;
}
[data-theme="light"] .radar .rcard.src-recurring {
  --accent: #3f9f97;
  --fill: rgba(63,159,151,.10);
  --edge: rgba(63,159,151,.25);
  --ink: #2c6b65;
}
[data-theme="light"] .radar .rcard.src-external {
  --accent: #9d83cc;
  --fill: rgba(157,131,204,.08);
  --edge: rgba(157,131,204,.25);
  --ink: #5e4790;
}
/* External read-only indicator = hollow ring */
.radar .rcard.is-external::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 50%;
  transform: translateY(-50%);
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: transparent;
  border: 1.5px solid var(--accent);
}
.radar .rcard.is-external {
  padding-left: 15px;
}

/* ============================================================ MODULE C */
.section-label { display:flex; align-items:center; gap:7px; margin:2px 2px 9px; font:700 .68rem/1 'Outfit'; letter-spacing:.1em; text-transform:uppercase; color:var(--text-dim); }
.section-label svg { width:13px; height:13px; }
.section-label .n { color:var(--text-mute); font-weight:600; }
.subhead { margin:22px 2px 9px; }
.backlog { border:1px solid rgba(249,115,22,.3); background:rgba(249,115,22,.09); border-radius:var(--radius-sm); padding:10px 12px; margin-bottom:18px; }
.backlog__head { display:flex; align-items:center; gap:8px; cursor:pointer; color:#f3a86a; }
[data-theme="light"] .backlog__head { color:#c75c10; }
.backlog__head .lbl { font:700 .7rem/1 'Outfit'; letter-spacing:.09em; text-transform:uppercase; }
.backlog__head .chev { margin-left:auto; transition:transform .25s var(--ease); }
.backlog.collapsed .chev { transform:rotate(-90deg); }
.backlog__items {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 7px;
  margin-top: 10px;
  overflow-y: auto;
  overflow-x: hidden;
  max-height: 245px;
  padding-right: 4px;
  padding-top: 14px; /* extra buffer for floating cards */
  transition: max-height .3s var(--ease), opacity .25s, margin .25s;
}
.backlog__items::-webkit-scrollbar {
  width: 6px;
}
.backlog__items::-webkit-scrollbar-thumb {
  background: var(--border-2);
  border-radius: 6px;
}
.backlog__items .card {
  min-width: 0;
  width: 100%;
  padding: 8px 10px 8px 12px;
  gap: 6px;
  box-sizing: border-box;
  overflow: visible; /* ensure floating action buttons can overflow card top edge */
}
.backlog__items .card .actions {
  position: absolute;
  top: 0;
  right: 8px;
  display: flex;
  gap: 6px;
  z-index: 20;
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
  pointer-events: none;
}
.backlog__items .card .actions > * {
  opacity: 0;
  transform: translateY(12px) scale(0.6);
  transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.2s ease, background 0.15s ease, border-color 0.15s ease;
  pointer-events: none;
}
/* Staggering delays for premium micro-animation */
.backlog__items .card .actions .cbx {
  transition-delay: 0s;
}
.backlog__items .card .actions .bolt-btn {
  transition-delay: 0.04s;
}
.backlog__items .card .actions .x-btn {
  transition-delay: 0.08s;
}

/* Hover / Focus State - Float out of card upwards */
.backlog__items .card:hover .actions > *,
.backlog__items .card:focus-within .actions > * {
  opacity: 1;
  transform: translateY(-12px) scale(1);
  pointer-events: auto;
}

/* Circular floating buttons styling */
.backlog__items .card .actions .cbx,
.backlog__items .card .actions .bolt-btn,
.backlog__items .card .actions .x-btn {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--panel-2);
  border: 1.5px solid var(--border);
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.3);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
}

/* Custom styles for checkbox circular button */
.backlog__items .card .actions .cbx {
  appearance: none;
  position: relative;
}
.backlog__items .card .actions .cbx::after {
  content: "";
  position: absolute;
  left: 6px;
  top: 3px;
  width: 4px;
  height: 7px;
  border: 2px solid var(--text-dim);
  border-top: 0;
  border-left: 0;
  transform: rotate(42deg);
  transition: border-color 0.15s ease;
}
.backlog__items .card .actions .cbx:hover::after {
  border-color: #10b981;
}
.backlog__items .card .actions .cbx:checked {
  background: #10b981;
  border-color: #10b981;
}
.backlog__items .card .actions .cbx:checked::after {
  border-color: #fff;
}

.backlog__items .card .actions .bolt-btn,
.backlog__items .card .actions .x-btn {
  color: var(--text-dim);
}

.backlog__items .card .actions .cbx:hover {
  border-color: #10b981;
  background: rgba(16, 185, 129, 0.15);
  transform: translateY(-12px) scale(1.15) !important;
}
.backlog__items .card .actions .bolt-btn:hover {
  border-color: #f97316;
  background: rgba(249, 115, 22, 0.15);
  color: #f97316;
  transform: translateY(-12px) scale(1.15) !important;
}
.backlog__items .card .actions .x-btn:hover {
  border-color: #ef4444;
  background: rgba(239, 68, 68, 0.15);
  color: #ef4444;
  transform: translateY(-12px) scale(1.15) !important;
}
.backlog.collapsed .backlog__items {
  max-height: 0;
  opacity: 0;
  margin-top: 0;
  overflow: hidden;
}

/* ── edit-btn inside backlog/backburner grid — same floating circle as others ─ */
.backlog__items .card .actions .edit-btn {
  transition-delay: 0.06s;
}
.backlog__items .card .actions .edit-btn {
  width: 22px; height: 22px; border-radius: 50%;
  background: var(--panel-2); border: 1.5px solid var(--border);
  box-shadow: 0 3px 6px rgba(0,0,0,.3);
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  margin: 0; padding: 0; color: var(--text-dim);
}
.backlog__items .card .actions .edit-btn:hover {
  border-color: #6366f1;
  background: rgba(99,102,241,.15);
  color: #6366f1;
  transform: translateY(-12px) scale(1.15) !important;
}

/* ── Backburner variant — Indigo accent instead of amber ─────────────────── */
.backlog--bb {
  border-color: rgba(99,102,241,.30);
  background: rgba(99,102,241,.07);
  margin-bottom: 0;
}
.backlog--bb .backlog__head { color: #818cf8; }
[data-theme="light"] .backlog--bb .backlog__head { color: #4f52d8; }

/* Backburner grid: taller max-height for up to 6 rows */
.backlog__items--bb {
  max-height: 380px;   /* ≈ 6 rows × ~60px + gaps */
}

/* ── Spark card badge ────────────────────────────────────────────────────── */
.pill--spark {
  font: 500 .58rem/1 'Outfit';
  background: rgba(99,102,241,.15);
  border: 1px solid rgba(99,102,241,.30);
  color: #818cf8;
  border-radius: 99px;
  padding: .15rem .45rem;
  display: inline-flex; align-items: center; gap: .2rem;
  white-space: nowrap;
}
[data-theme="light"] .pill--spark { background:rgba(99,102,241,.10); color:#4f52d8; }

/* Spark card: dashed border variant */
.bb-spark-card { border-style: dashed !important; opacity: .9; }
.bb-spark-card:hover { opacity: 1; }

#inboxPreview .day-sep { margin:14px 2px 7px; font:600 .7rem/1 'Outfit'; color:var(--text-mute); letter-spacing:.02em; }
#inboxPreview .day-sep:first-child { margin-top:2px; }
#inboxPreview .horizon-1 { opacity:1; }
#inboxPreview .horizon-2 { opacity:.72; }
#inboxPreview .horizon-3 { opacity:.46; }
#inboxPreview > div > .card { margin-bottom:7px; }

.pins-empty { margin:auto; max-width:230px; text-align:center; color:var(--text-mute); font-size:.8rem; font-style:italic; line-height:1.55; padding:30px 0; }
.pin-group { margin-bottom:16px; }
.pin-group__head { display:flex; align-items:center; gap:7px; margin-bottom:8px; font-weight:700; font-size:.78rem; }
.pin-group__head .dot { width:8px; height:8px; border-radius:3px; }
.pin-group .card { margin-bottom:7px; }

@media (max-width:1100px){
  .stage{ grid-template-columns:1fr; grid-auto-rows:min-content; overflow-y:auto; }
  #app{ height:auto; min-height:100vh; }
}

@keyframes pulse-red {
  0%   { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(239,68,68,0.7); }
  70%  { transform: scale(1);    box-shadow: 0 0 0 6px rgba(239,68,68,0); }
  100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(239,68,68,0); }
}

/* ============================================================ COMPACT MODE
   Fokus + Ueberblick: Tageskopf, Vergangenheits-Block, reichere Karten,
   klickbare Freizeit-Slots, Slot-Picker-Popover.
   ============================================================ */

/* ── Day-head summary ── */
.compact-dayhead {
  display: flex; flex-direction: column; gap: 9px;
  padding: 11px 12px; margin-bottom: 12px;
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}
.compact-dayhead__top { display: flex; align-items: center; gap: 14px; }
.compact-progress { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.compact-progress__label { display: flex; align-items: baseline; gap: 5px; }
.compact-progress__count { font: 700 .9rem/1 var(--mono); color: var(--text); }
.compact-progress__text { font-size: .68rem; color: var(--text-mute); text-transform: uppercase; letter-spacing: .08em; font-weight: 600; }
.compact-progress__bar { height: 6px; border-radius: 6px; background: var(--rail); overflow: hidden; }
.compact-progress__fill { height: 100%; border-radius: 6px; background: linear-gradient(90deg, var(--c-project), #34d399); transition: width .4s var(--ease); }
.compact-dayhead__stats { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; flex-shrink: 0; }
.compact-stat {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: .68rem; font-weight: 600; color: var(--text-dim);
  background: rgba(255,255,255,.04); border: 1px solid var(--border);
  padding: 3px 8px; border-radius: 999px; white-space: nowrap;
}
.compact-stat svg { opacity: .7; }
.compact-stat--warn { color: #f3a86a; background: rgba(249,115,22,.1); border-color: rgba(249,115,22,.3); }
.compact-stat--mute { color: var(--text-mute); }
[data-theme="light"] .compact-stat { background: rgba(20,24,40,.03); }

.compact-next {
  display: flex; align-items: center; gap: 8px;
  padding: 7px 9px; border-radius: var(--radius-sm);
  background: rgba(99,102,241,.1); border: 1px solid rgba(99,102,241,.25);
  font-size: .76rem; min-width: 0;
}
.compact-next__pill {
  flex-shrink: 0; font: 700 .64rem/1 'Outfit'; letter-spacing: .04em; text-transform: uppercase;
  color: #fff; background: var(--c-school); padding: 3px 7px; border-radius: 5px;
}
.compact-next__time { flex-shrink: 0; font: 600 .72rem var(--mono); color: var(--ink, #9799f7); }
.compact-next__label { flex: 1; min-width: 0; font-weight: 600; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ── Collapsible past / done bucket ── */
.compact-past { margin-bottom: 9px; }
.compact-past__head {
  display: flex; align-items: center; gap: 7px; width: 100%;
  background: transparent; border: 1px dashed var(--border-2); border-radius: var(--radius-sm);
  padding: 6px 10px; cursor: pointer; color: var(--text-mute);
  font: 600 .72rem/1 'Outfit'; letter-spacing: .04em; transition: var(--ease) .18s;
}
.compact-past__head:hover { color: var(--text-dim); border-color: var(--border-2); background: rgba(255,255,255,.02); }
.compact-past__head .chev { transition: transform .25s var(--ease); flex-shrink: 0; }
.compact-past:not(.collapsed) .compact-past__head .chev { transform: rotate(90deg); }
.compact-past__items { display: flex; flex-direction: column; gap: 9px; padding-top: 9px; }
.compact-past.collapsed .compact-past__items { display: none; }

/* ── Focus: current & next item ── */
.card.compact-current { border-color: rgba(239,68,68,.5); box-shadow: 0 0 0 1px rgba(239,68,68,.25); }
.card.compact-current::before { background: #ef4444; box-shadow: 0 0 8px rgba(239,68,68,.5); }
[data-glow="on"] .card.compact-task.next-action { box-shadow: var(--glow); border-color: var(--accent); opacity: 1 !important; }

/* ── Richer compact task cards ── */
.compact-task .body { display: flex; flex-direction: column; gap: 2px; }
.compact-title-row { display: flex; align-items: center; gap: 6px; min-width: 0; }
.compact-title-row .title { flex: 1; min-width: 0; }
.compact-recurring { flex-shrink: 0; font-size: .72rem; color: var(--c-school); }
.compact-meta { display: flex; align-items: center; gap: 5px; min-width: 0; }
.compact-proj-dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
.compact-proj-name { font-size: .64rem; font-weight: 600; color: var(--text-mute); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ── Clickable free-time slot ── */
.gap-slot-plan { cursor: pointer; border-radius: 6px; transition: background .15s, color .15s; }
.gap-slot-plan .gap-label { transition: color .15s; }
.gap-slot-plan .gap-plan-hint {
  opacity: 0; flex-shrink: 0; font-size: .64rem; font-weight: 700; letter-spacing: .03em;
  color: var(--c-school); transition: opacity .15s; margin-left: 6px;
}
.gap-slot-plan:hover { background: rgba(99,102,241,.06); color: var(--c-school); }
.gap-slot-plan:hover .gap-label { color: var(--c-school); }
.gap-slot-plan:hover .gap-plan-hint { opacity: 1; }
.gap-slot-plan:focus-visible { outline: 2px solid var(--c-school); outline-offset: 1px; }

/* ── Slot-picker popover ── */
.compact-slot-picker {
  position: fixed; z-index: 10000; width: 260px; max-height: 320px; display: flex; flex-direction: column;
  background: var(--panel); border: 1px solid var(--border-2); border-radius: var(--radius-sm);
  box-shadow: 0 14px 36px -10px rgba(0,0,0,.6); overflow: hidden;
  animation: slotPickerIn .14s var(--ease);
}
@keyframes slotPickerIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.compact-slot-picker__head {
  padding: 9px 12px; font: 700 .72rem/1 'Outfit'; letter-spacing: .03em; color: var(--text);
  border-bottom: 1px solid var(--border); background: var(--panel-2);
}
.compact-slot-picker__list { overflow-y: auto; padding: 6px; display: flex; flex-direction: column; gap: 3px; }
.compact-slot-picker__empty { padding: 14px 10px; text-align: center; color: var(--text-mute); font-size: .76rem; font-style: italic; }
.compact-slot-picker__opt {
  display: flex; align-items: center; gap: 8px; width: 100%; text-align: left;
  background: transparent; border: 1px solid transparent; border-radius: 6px; padding: 7px 8px;
  cursor: pointer; color: var(--text); font-size: .78rem; transition: background .12s, border-color .12s;
}
.compact-slot-picker__opt:hover { background: rgba(99,102,241,.1); border-color: rgba(99,102,241,.3); }
.compact-slot-picker__opt .dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.compact-slot-picker__opt .t { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; }
.compact-slot-picker__opt .b {
  flex-shrink: 0; font-size: .6rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
  color: #f3a86a; background: rgba(249,115,22,.12); border: 1px solid rgba(249,115,22,.3);
  padding: 2px 5px; border-radius: 4px;
}

/* ============================================================
   DEPOT / OFFLOAD TAB — inbox ingress, cards, classification
   Theme- & density-aware (uses agenda tokens, not legacy --color-*)
   ============================================================ */

/* ── Tab navigation ── */
.depot-tabs-nav { display:flex; gap:1.4rem; border-bottom:1px solid var(--border); padding-bottom:.5rem; margin-bottom:1.5rem; }
.depot-tab-btn { background:none; border:none; color:var(--text-mute); font:600 1.02rem/1 'Outfit'; padding:.45rem .6rem; cursor:pointer; display:flex; align-items:center; gap:.45rem; position:relative; transition:color .18s var(--ease); }
.depot-tab-btn svg { width:18px; height:18px; }
.depot-tab-btn:hover { color:var(--text); }
.depot-tab-btn.is-active { color:var(--c-school); }
.depot-tab-btn.is-active::after { content:''; position:absolute; bottom:-.55rem; left:0; right:0; height:3px; background:var(--c-school); border-radius:99px; }
.depot-tab-badge { background:var(--c-school); color:#fff; font:700 .72rem/1 var(--mono); padding:.18rem .45rem; border-radius:99px; }

/* ── Ingress bar ── */
.depot-ingress { display:flex; gap:.7rem; align-items:center; background:var(--panel); border:1px solid var(--border); border-radius:var(--radius); padding:.9rem 1rem; margin-bottom:1.5rem; box-shadow:var(--shadow); }
.depot-ingress input[type="text"] { flex:1; min-width:240px; background:var(--bg-2); border:1px solid var(--border); border-radius:var(--radius-sm); padding:.7rem .9rem; color:var(--text); font:500 var(--fs-sm)/1.4 'Outfit'; transition:border-color .18s var(--ease); }
.depot-ingress input[type="text"]::placeholder { color:var(--text-mute); }
.depot-ingress input[type="text"]:focus { outline:none; border-color:var(--c-school); }
.depot-ingress .btn-add { display:inline-flex; align-items:center; gap:.4rem; background:var(--c-school); color:#fff; border:1px solid var(--c-school); padding:.65rem 1.3rem; border-radius:var(--radius-sm); font:600 var(--fs-sm)/1 'Outfit'; white-space:nowrap; cursor:pointer; transition:transform .18s var(--ease), filter .18s var(--ease); }
.depot-ingress .btn-add svg { width:15px; height:15px; }
.depot-ingress .btn-add:hover { filter:brightness(1.08); transform:translateY(-1px); }
.depot-ingress .btn-add.processing { background:var(--text-mute) !important; border-color:var(--text-mute); cursor:not-allowed; transform:none; filter:none; }
.depot-ingress .btn-add .btn-spin { animation:fab-spin 1s linear infinite; width:15px; height:15px; }
.depot-ingress.is-processing input[type="text"] { opacity:.65; pointer-events:none; }

/* ── Stream ── */
/* Fallback life-area tokens live here (inherited) so the per-card category
   class (.--school/.--project/...) always wins over them. */
.depot-stream { display:flex; flex-direction:column; gap:var(--gap); --accent:#8b95a8; --fill:rgba(139,149,168,.15); --edge:rgba(139,149,168,.40); --ink:#b6bdca; }

/* ── Card ── */
.depot-card {
  position:relative; background:var(--panel); border:1px solid var(--border); border-radius:var(--radius);
  padding:var(--pad) var(--pad) var(--pad) calc(var(--pad) + 6px); box-shadow:var(--shadow);
  display:flex; flex-direction:column; gap:.7rem;
  transition:transform .55s var(--ease), opacity .55s ease, margin-bottom .55s ease, box-shadow .18s var(--ease), border-color .18s var(--ease);
  transform-origin:center right;
}
.depot-card::before { content:""; position:absolute; left:0; top:10px; bottom:10px; width:4px; border-radius:4px; background:var(--accent); }
.depot-card:hover { box-shadow:0 12px 26px -14px rgba(0,0,0,.6); border-color:var(--border-2); }
.depot-card.schwupp-out { transform:translateX(115%) scale(.92); opacity:0; margin-bottom:-170px; pointer-events:none; }
[data-cards="outline"] .depot-card { background:transparent; }
[data-cards="stripe"]  .depot-card { background:var(--panel-2); }

/* head: title + actions */
.depot-card-head { display:flex; align-items:flex-start; gap:.5rem; }
.depot-card-title-input { flex:1; min-width:0; font:700 1.08rem/1.3 'Outfit'; color:var(--text); background:none; border:1px dashed transparent; padding:.25rem .35rem; border-radius:var(--radius-sm); transition:all .18s var(--ease); }
.depot-card-title-input:focus { border-color:var(--c-school); outline:none; background:var(--bg-2); }
.depot-card-notes-input { font:400 var(--fs-sm)/1.5 'Outfit'; color:var(--text-dim); background:none; border:1px dashed transparent; width:100%; padding:.25rem .35rem; border-radius:var(--radius-sm); resize:none; min-height:36px; transition:all .18s var(--ease); }
.depot-card-notes-input:focus { border-color:var(--c-school); outline:none; background:var(--bg-2); color:var(--text); }

.depot-card-actions { display:flex; align-items:center; gap:.35rem; flex-shrink:0; }
.depot-icon-btn { display:grid; place-items:center; width:1.95rem; height:1.95rem; border-radius:8px; background:var(--bg-2); border:1px solid var(--border); color:var(--text-mute); cursor:pointer; transition:all .18s var(--ease); }
.depot-icon-btn svg { width:15px; height:15px; }
.depot-icon-btn:hover { color:var(--text); border-color:var(--border-2); }
.depot-icon-btn--danger:hover { color:#ef4444; border-color:rgba(239,68,68,.45); background:rgba(239,68,68,.07); }

/* transcript + confidence */
.depot-meta-row { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
.depot-transcript-block { flex:1; min-width:0; display:flex; gap:.5rem; align-items:flex-start; background:var(--bg-2); border-left:3px solid var(--ink); padding:.55rem .8rem; border-radius:0 var(--radius-sm) var(--radius-sm) 0; font:italic 400 var(--fs-sm)/1.45 'Outfit'; color:var(--text-mute); }
.depot-transcript-block svg { flex:0 0 auto; width:14px; height:14px; margin-top:3px; color:var(--ink); }
.depot-confidence { display:inline-flex; align-items:center; gap:.3rem; font:600 .64rem/1 var(--mono); letter-spacing:.03em; padding:.22rem .5rem; border-radius:6px; color:var(--text-mute); background:var(--bg-2); border:1px solid var(--border); white-space:nowrap; }
.depot-confidence svg { width:12px; height:12px; }
.depot-confidence.is-low { color:#fbbf24; border-color:rgba(251,191,36,.4); background:rgba(251,191,36,.08); }

/* footer: pills + schwupp */
.depot-card-footer { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.7rem; border-top:1px solid var(--border); padding-top:.75rem; }
.depot-pills-row { display:flex; flex-wrap:wrap; gap:.45rem; align-items:center; }
.depot-pill { font:600 .74rem/1 'Outfit'; padding:.34rem .65rem; border-radius:99px; cursor:pointer; display:inline-flex; align-items:center; gap:.35rem; border:1px solid var(--border); background:var(--bg-2); color:var(--text-dim); transition:all .18s var(--ease); user-select:none; }
.depot-pill svg { width:13px; height:13px; }
.depot-pill:hover { border-color:var(--border-2); color:var(--text); }
.depot-pill.is-active { border-color:var(--c-school); color:var(--c-school); background:rgba(99,102,241,.08); }
.depot-pill .dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
/* category pill uses its own life-area color via --cat-color set inline */
.depot-pill--cat { color:var(--cat-color, var(--text-dim)); border-color:var(--border); }
.depot-pill--cat .dot { background:var(--cat-color, var(--text-mute)); }
.depot-pill--cat:hover { border-color:var(--cat-color, var(--border-2)); color:var(--cat-color, var(--text)); }

.btn-schwupp { width:2.2rem; height:2.2rem; border-radius:50%; background:var(--c-school); color:#fff; border:none; display:grid; place-items:center; cursor:pointer; box-shadow:0 4px 12px -3px rgba(99,102,241,.6); transition:transform .18s var(--ease), filter .18s var(--ease); flex-shrink:0; }
.btn-schwupp svg { width:17px; height:17px; }
.btn-schwupp:hover { transform:translateX(3px) scale(1.05); filter:brightness(1.08); }
.btn-schwupp:active { transform:scale(.95); }

/* trays */
.depot-tray-container { width:100%; overflow:hidden; max-height:0; opacity:0; transition:max-height .35s var(--ease), opacity .3s ease, padding .3s ease; }
.depot-tray-container.is-expanded { max-height:170px; opacity:1; padding-top:.55rem; }
.depot-tray-slider { display:flex; align-items:center; gap:.45rem; flex-wrap:wrap; }
.mini-tray-btn { font:600 .74rem/1 'Outfit'; padding:.3rem .6rem; border-radius:99px; cursor:pointer; border:1px solid var(--border); background:var(--panel-2); color:var(--text); transition:all .18s var(--ease); display:inline-flex; align-items:center; gap:.3rem; }
.mini-tray-btn svg { width:12px; height:12px; }
.mini-tray-btn .dot { width:7px; height:7px; border-radius:50%; }
.mini-tray-btn:hover { border-color:var(--c-school); }
.mini-tray-btn.is-selected { background:var(--c-school); border-color:var(--c-school); color:#fff; }
.mini-picker-row { display:flex; align-items:center; gap:.45rem; flex-wrap:wrap; }
.mini-picker-row input[type="date"], .mini-picker-row input[type="time"] { padding:.3rem .5rem; font:500 .74rem/1 var(--mono); border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--panel-2); color:var(--text); }
.mini-picker-row button { font:600 .74rem/1 'Outfit'; padding:.34rem .6rem; border-radius:var(--radius-sm); cursor:pointer; border:1px solid var(--border); background:var(--panel-2); color:var(--text); }
.mini-picker-row button.btn-apply { background:var(--c-school); border-color:var(--c-school); color:#fff; }

/* empty state */
.depot-empty { padding:3.5rem 2rem; text-align:center; background:var(--panel); border:1px dashed var(--border-2); border-radius:var(--radius); }
.depot-empty__icon { display:grid; place-items:center; width:54px; height:54px; margin:0 auto 1rem; border-radius:50%; background:var(--bg-2); color:var(--c-project); }
.depot-empty__icon svg { width:26px; height:26px; }
.depot-empty h3 { font:700 1.1rem/1.3 'Outfit'; margin-bottom:.4rem; color:var(--text); }
.depot-empty p { font-size:var(--fs-sm); color:var(--text-mute); }

/* ── Depot Exit Log ── */
.depot-exit-log { margin-top:.75rem; }
.depot-exit-toggle { display:flex; align-items:center; justify-content:space-between; width:100%; background:none; border:none; cursor:pointer; padding:0 .2rem .3rem; gap:.4rem; user-select:none; }
.depot-exit-toggle:hover .depot-exit-log-label { opacity:1; }
.depot-exit-log-label { font:600 .68rem/1 'Outfit'; letter-spacing:.06em; text-transform:uppercase; color:var(--text-mute); opacity:.7; transition:opacity .15s; }
.depot-exit-chevron { width:13px; height:13px; flex-shrink:0; color:var(--text-mute); transition:transform .22s var(--ease); }
.depot-exit-toggle[aria-expanded="true"] .depot-exit-chevron { transform:rotate(0deg); }
.depot-exit-toggle[aria-expanded="false"] .depot-exit-chevron { transform:rotate(-90deg); }
.depot-exit-list { display:flex; flex-direction:column; gap:.3rem; overflow:hidden; max-height:0; transition:max-height .28s ease; }
.depot-exit-list.is-open { max-height:600px; }
.depot-exit-chip { display:flex; align-items:center; gap:.5rem; padding:.35rem .5rem; border-radius:var(--radius-sm); border:1px solid var(--border); background:var(--panel); transition:border-color .15s; }
.depot-exit-chip:hover { border-color:var(--border-2); }
.depot-exit-chip-body { flex:1; min-width:0; display:flex; flex-wrap:wrap; align-items:center; gap:.35rem; }
.depot-exit-chip-title { font:500 .78rem/1.2 'Outfit'; color:var(--text-dim); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:180px; }
.depot-exit-chip-meta { display:flex; align-items:center; gap:.3rem; flex-wrap:wrap; }
.dep-badge { font:600 .66rem/1 'Outfit'; padding:.18rem .45rem; border-radius:99px; white-space:nowrap; }
.dep-badge--schwupp { background:rgba(99,102,241,.12); color:var(--c-school); }
.dep-badge--del { background:rgba(239,68,68,.10); color:#ef4444; }
.dep-badge--loc { background:var(--bg-2); color:var(--text-dim); border:1px solid var(--border); }
.dep-time { font:400 .66rem/1 var(--mono); color:var(--text-mute); margin-left:.1rem; }
.depot-exit-undo-btn { flex-shrink:0; width:1.7rem; height:1.7rem; border-radius:var(--radius-sm); border:1px solid var(--border); background:var(--bg-2); color:var(--text-dim); display:grid; place-items:center; cursor:pointer; transition:all .15s var(--ease); padding:0; }
.depot-exit-undo-btn svg { width:13px; height:13px; }
.depot-exit-undo-btn:hover { border-color:var(--c-school); color:var(--c-school); background:rgba(99,102,241,.08); }

/* ── Floating voice FAB ── */
.fab-container { position:fixed; bottom:2rem; right:2rem; z-index:100; }
.fab-btn { width:3.7rem; height:3.7rem; border-radius:50%; background:var(--c-school); color:#fff; border:none; box-shadow:0 10px 24px -6px rgba(99,102,241,.6); display:grid; place-items:center; cursor:pointer; transition:transform .18s var(--ease), filter .18s var(--ease); }
.fab-btn svg { width:24px; height:24px; }
.fab-btn:hover { transform:translateY(-2px) scale(1.03); filter:brightness(1.08); }
.fab-btn:active { transform:translateY(0) scale(.98); }
.fab-btn.recording { background:#ef4444 !important; box-shadow:0 0 0 0 rgba(239,68,68,.7); animation:fab-pulse 1.2s infinite cubic-bezier(.66,0,0,1); }
@keyframes fab-pulse { to { box-shadow:0 0 0 18px rgba(239,68,68,0); } }
.fab-btn.processing { background:var(--text-mute) !important; cursor:not-allowed; }
.fab-btn .fab-spin { animation:fab-spin 1s linear infinite; }
@keyframes fab-spin { to { transform:rotate(360deg); } }

/* ── Turnus & Archiv Overlays ── */
#turnus-overlay, #archiv-overlay {
    position: fixed;
    inset: 0;
    background: var(--bg);
    z-index: 3000;
    display: none;
    flex-direction: column;
    animation: overlayFadeIn 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
#turnus-overlay.is-open, #archiv-overlay.is-open {
    display: flex;
}

@keyframes overlayFadeIn {
    from { opacity: 0; transform: scale(0.99); }
    to { opacity: 1; transform: scale(1); }
}

.t-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1.5rem;
    border-bottom: 1px solid var(--border);
    background: var(--panel);
    flex-shrink: 0;
}
.t-header-left {
    display: flex;
    flex-direction: column;
}
.t-title {
    font: 800 1.1rem/1.2 'Outfit', sans-serif;
    color: var(--text);
    letter-spacing: 0.02em;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.t-subtitle {
    font: 500 0.72rem/1 'Outfit', sans-serif;
    color: var(--text-mute);
    margin-top: 0.25rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.t-header-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

/* Split Pane Layout for Turnus */
.t-content {
    display: flex;
    flex: 1;
    overflow: hidden;
    height: calc(100vh - 60px);
}
.t-matrix-pane {
    flex: 1;
    overflow: auto;
    padding: 1.5rem;
    background: var(--bg);
    border-right: 1px solid var(--border);
    position: relative;
}
.t-registry-pane {
    width: 420px;
    display: flex;
    flex-direction: column;
    background: var(--panel);
    flex-shrink: 0;
    overflow: hidden;
}

/* Week Matrix Grid */
.t-matrix-wrap {
    min-width: 600px;
}
.t-matrix-header {
    display: grid;
    grid-template-columns: 60px repeat(5, 1fr);
    border-bottom: 1px solid var(--border);
    position: sticky;
    top: 0;
    background: var(--panel);
    z-index: 10;
    height: 40px;
    align-items: center;
}
.t-matrix-header.show-weekend {
    grid-template-columns: 60px repeat(7, 1fr);
}
.t-matrix-day-label {
    text-align: center;
    font: 700 0.78rem/1 'Outfit', sans-serif;
    color: var(--text-dim);
}
.t-matrix-body {
    display: grid;
    grid-template-columns: 60px repeat(5, 1fr);
    position: relative;
    height: 1280px;
}
.t-matrix-body.show-weekend {
    grid-template-columns: 60px repeat(7, 1fr);
}
.t-time-col {
    display: flex;
    flex-direction: column;
    position: relative;
    border-right: 1px solid var(--border);
}
.t-time-label {
    position: absolute;
    right: 8px;
    font: 600 0.7rem/1 var(--mono);
    color: var(--text-mute);
    transform: translateY(-50%);
}
.t-day-col {
    position: relative;
    border-right: 1px solid var(--border);
    height: 100%;
}
.t-day-col:last-child {
    border-right: none;
}
.t-day-col.drag-over {
    background: rgba(99, 102, 241, 0.05);
}
.t-day-col::before {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(to bottom, transparent, transparent 79px, var(--border) 80px);
    pointer-events: none;
}
.t-day-col::after {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(to bottom, transparent, transparent 39px, rgba(255, 255, 255, 0.03) 40px);
    pointer-events: none;
}
[data-theme="light"] .t-day-col::after {
    background: repeating-linear-gradient(to bottom, transparent, transparent 39px, rgba(0, 0, 0, 0.02) 40px);
}

/* Blocks */
.t-block {
    position: absolute;
    left: 4px;
    right: 4px;
    border-radius: var(--radius-sm);
    padding: 0.4rem 0.6rem;
    cursor: grab;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 0.15rem;
    transition: opacity 0.15s, box-shadow 0.15s;
    user-select: none;
    box-sizing: border-box;
    overflow: visible;
    box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}
.t-block:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
    filter: brightness(1.03);
}
.t-block:active {
    cursor: grabbing;
}
.t-block-name {
    font: 700 0.74rem/1.2 'Outfit', sans-serif;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.t-block-time {
    font: 600 0.62rem/1 var(--mono);
    opacity: 0.8;
}
.t-block-resize-handle {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 6px;
    cursor: ns-resize;
    background: rgba(0, 0, 0, 0.1);
    opacity: 0;
    transition: opacity 0.15s;
}
.t-block:hover .t-block-resize-handle {
    opacity: 1;
}

/* Registry Side Pane */
.t-registry-head {
    padding: 1.25rem;
    border-bottom: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.t-registry-tabs {
    display: flex;
    background: var(--bg-2);
    border-radius: var(--radius-sm);
    padding: 2px;
}
.t-registry-tab-btn {
    flex: 1;
    padding: 0.4rem 0.5rem;
    background: none;
    border: none;
    color: var(--text-dim);
    font: 600 0.72rem/1 'Outfit', sans-serif;
    cursor: pointer;
    border-radius: calc(var(--radius-sm) - 2px);
    transition: all 0.15s;
}
.t-registry-tab-btn.active {
    background: var(--panel);
    color: var(--text);
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}
.t-registry-list {
    flex: 1;
    overflow-y: auto;
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

/* Routine item card */
.t-routine-card {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.t-routine-card:hover {
    border-color: var(--border-2);
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.t-routine-card-top {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    justify-content: space-between;
}
.t-routine-card-info {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}
.t-routine-color-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}
.t-routine-name {
    font: 700 0.82rem/1.2 'Outfit', sans-serif;
    color: var(--text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.t-routine-meta {
    font: 500 0.68rem/1 'Outfit', sans-serif;
    color: var(--text-mute);
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
}
.t-routine-meta-badge {
    background: rgba(99, 102, 241, 0.1);
    color: var(--c-school);
    padding: 1px 6px;
    border-radius: 4px;
    font-weight: 600;
}
.t-routine-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.t-action-btn {
    background: none;
    border: 1px solid var(--border);
    border-radius: 4px;
    width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--text-dim);
    transition: all 0.15s;
}
.t-action-btn:hover {
    border-color: var(--border-2);
    color: var(--text);
    background: var(--bg-3);
}
.t-action-btn-danger:hover {
    background: rgba(239, 68, 68, 0.08);
    border-color: rgba(239, 68, 68, 0.3);
    color: #ef4444;
}

/* Button Premium styling */
.t-btn-primary {
    background: var(--c-school);
    color: #fff;
    border: none;
    border-radius: var(--radius-sm);
    padding: 0.45rem 0.9rem;
    font: 700 0.76rem/1 'Outfit', sans-serif;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    transition: filter 0.15s, transform 0.1s;
}
.t-btn-primary:hover {
    filter: brightness(1.08);
}
.t-btn-primary:active {
    transform: scale(0.98);
}
.t-btn-secondary {
    background: var(--bg-2);
    color: var(--text);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 0.45rem 0.9rem;
    font: 700 0.76rem/1 'Outfit', sans-serif;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    transition: border-color 0.15s, background 0.15s;
}
.t-btn-secondary:hover {
    border-color: var(--border-2);
    background: var(--bg-3);
}

/* Forms Modal / Container */
.t-modal {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(4px);
    z-index: 4000;
    display: none;
    align-items: center;
    justify-content: center;
    animation: modalIn 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes modalIn {
    from { opacity: 0; transform: scale(0.96); }
    to { opacity: 1; transform: scale(1); }
}
.t-modal-box {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1.5rem;
    width: 100%;
    max-width: 440px;
    box-shadow: 0 12px 36px rgba(0,0,0,0.3);
    max-height: 90vh;
    overflow-y: auto;
}
.t-modal-title {
    font: 800 1.05rem/1.2 'Outfit', sans-serif;
    color: var(--text);
    margin-bottom: 1.25rem;
}
.t-form-row {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    margin-bottom: 0.9rem;
}
.t-form-row label {
    font: 700 0.65rem/1 'Outfit', sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-mute);
}
.t-input {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 0.5rem 0.75rem;
    color: var(--text);
    font: 500 0.8rem 'Outfit', sans-serif;
    transition: border-color 0.15s;
    outline: none;
}
.t-input:focus {
    border-color: var(--c-school);
}
.t-checkbox-label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font: 600 0.75rem 'Outfit', sans-serif;
    color: var(--text-dim);
    cursor: pointer;
    user-select: none;
}
.t-checkbox-label input {
    accent-color: var(--c-school);
}

/* Turnus Day-of-Week Toggle Buttons */
.turnus-dow-btn {
    font-family: 'Outfit', sans-serif;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 0.45rem 0.75rem;
    border: 1px solid var(--border-2);
    border-radius: var(--radius-sm);
    background: var(--bg-2);
    color: var(--text-dim);
    cursor: pointer;
    transition: all 0.15s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.3rem;
    user-select: none;
}
.turnus-dow-btn:hover {
    border-color: var(--text-mute);
    background: var(--panel-2);
    color: var(--text);
}
.turnus-dow-btn.is-active {
    background: var(--c-school);
    border-color: var(--c-school);
    color: #ffffff;
    box-shadow: 0 0 10px rgba(99, 102, 241, 0.2);
}

/* Toggle Switch */
.t-switch {
    position: relative;
    display: inline-block;
    width: 34px;
    height: 20px;
}
.t-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}
.t-slider {
    position: absolute;
    cursor: pointer;
    inset: 0;
    background-color: var(--border-2);
    transition: .2s;
    border-radius: 20px;
}
.t-slider:before {
    position: absolute;
    content: "";
    height: 14px;
    width: 14px;
    left: 3px;
    bottom: 3px;
    background-color: #fff;
    transition: .2s;
    border-radius: 50%;
}
input:checked + .t-slider {
    background-color: var(--c-school);
}
input:checked + .t-slider:before {
    transform: translateX(14px);
}

/* Archiv Overlay Elements */
.a-tabs {
    display: flex;
    gap: 0.5rem;
    margin-left: 2rem;
}
.a-tab-btn {
    padding: 0.4rem 0.9rem;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
    background: var(--bg-2);
    color: var(--text-dim);
    font: 600 0.75rem/1 'Outfit', sans-serif;
    cursor: pointer;
    transition: all 0.15s;
}
.a-tab-btn.active {
    background: #10b981;
    border-color: #10b981;
    color: #fff;
}
.a-content {
    display: flex;
    flex-direction: column;
    flex: 1;
    overflow: hidden;
    padding: 1.5rem;
    height: calc(100vh - 60px);
}
.a-pane {
    display: flex;
    flex-direction: column;
    flex: 1;
    overflow: hidden;
}
.a-controls {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
    flex-shrink: 0;
}
.a-filters {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.a-table-container {
    flex: 1;
    overflow: auto;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--panel);
}
.a-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.78rem;
    text-align: left;
}
.a-table th {
    position: sticky;
    top: 0;
    background: var(--bg-2);
    z-index: 5;
    padding: 0.75rem 0.8rem;
    font-weight: 700;
    border-bottom: 1px solid var(--border);
    color: var(--text-dim);
    user-select: none;
    cursor: pointer;
    white-space: nowrap;
}
.a-table th:hover {
    color: var(--text);
}
.a-table td {
    padding: 0.65rem 0.8rem;
    border-bottom: 1px solid var(--border);
    color: var(--text-dim);
    white-space: nowrap;
}
.a-table tr:hover td {
    background: rgba(255,255,255,0.02);
}
[data-theme="light"] .a-table tr:hover td {
    background: rgba(0,0,0,0.01);
}
.a-trash-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    overflow-y: auto;
    flex: 1;
}
.a-trash-card {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 0.75rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}
.a-trash-card-title {
    font: 700 0.85rem 'Outfit', sans-serif;
    color: var(--text);
}
.a-trash-card-meta {
    font: 500 0.68rem/1 var(--mono);
    color: var(--text-mute);
    margin-top: 0.2rem;
}
.mr-cpick-used-btn { border-radius: var(--radius-sm); border:1px solid var(--border); background:var(--bg-2); cursor:pointer; transition:border-color .12s; text-align:left; width:100%; }
.mr-cpick-used-btn:hover { border-color:var(--border-2); }
.mr-cpick-used-name { font:500 .72rem/1.2 'Outfit'; color:var(--text-dim); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:150px; }
.mr-cpick-custom-row { padding-top:.3rem; border-top:1px solid var(--border); }
.mr-cpick-custom-btn { width:100%; padding:.4rem; border-radius:var(--radius-sm); border:1px solid var(--border); background:none; color:var(--text-mute); font:.72rem 'Outfit'; cursor:pointer; transition:all .12s; }

/* ════════════════════════════════════════════════════════════════════════════
   BACKBURNER POOL — Column 3B  (📦 Unscheduled Queue & Routine Triggers)
   ════════════════════════════════════════════════════════════════════════════ */

/* 2-column compact mini-tile grid, capped at 5 visible rows */
.bb-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5px;
  max-height: calc(5 * (42px + 5px));   /* 5 rows × (tile-height + gap) */
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 2px;
  flex-shrink: 0;
  scrollbar-width: thin;
  scrollbar-color: var(--border-2) transparent;
}
.bb-grid::-webkit-scrollbar { width: 4px; }
.bb-grid::-webkit-scrollbar-thumb { background: var(--border-2); border-radius: 2px; }

/* Base mini-tile card */
.bbtile {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 6px 7px;
  border-radius: 6px;
  border: 1px solid transparent;
  cursor: grab;
  user-select: none;
  min-height: 42px;
  transition: transform .13s var(--ease), box-shadow .13s var(--ease), opacity .15s;
  overflow: hidden;
}
.bbtile:hover {
  transform: translateY(-1px);
  box-shadow: 0 3px 10px rgba(0,0,0,.18);
  z-index: 2;
}
.bbtile:active { cursor: grabbing; transform: scale(.97); }
.bbtile.is-drag-over { outline: 2px dashed rgba(99,102,241,.7); }

/* Category pastel fill + 1px sharp border — Dark theme */
.bbtile--schule   { background: rgba(99,102,241,.18);  border-color: rgba(99,102,241,.45); }
.bbtile--projekt  { background: rgba(16,185,129,.15);  border-color: rgba(16,185,129,.42); }
.bbtile--privat   { background: rgba(249,115,22,.16);  border-color: rgba(249,115,22,.45); }
.bbtile--allgemein{ background: rgba(139,149,168,.14); border-color: rgba(139,149,168,.40); }

/* Light theme overrides */
[data-theme="light"] .bbtile--schule    { background: rgba(99,102,241,.10);  border-color: rgba(99,102,241,.35); }
[data-theme="light"] .bbtile--projekt   { background: rgba(16,185,129,.09);  border-color: rgba(16,185,129,.32); }
[data-theme="light"] .bbtile--privat    { background: rgba(249,115,22,.10);  border-color: rgba(249,115,22,.36); }
[data-theme="light"] .bbtile--allgemein { background: rgba(139,149,168,.09); border-color: rgba(139,149,168,.32); }

/* Spark-specific accent dot in top-right corner */
.bbtile--spark::after {
  content: '';
  position: absolute;
  top: 5px;
  right: 5px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
  opacity: .55;
}
.bbtile--spark.bbtile--schule::after    { background: #818cf8; }
.bbtile--spark.bbtile--projekt::after   { background: #34d399; }
.bbtile--spark.bbtile--privat::after    { background: #fb923c; }
.bbtile--spark.bbtile--allgemein::after { background: #94a3b8; }

.bbtile__icon { display: flex; align-items: center; opacity: .6; margin-bottom: 1px; }
.bbtile__title {
  font: 600 .70rem/1.25 'Outfit';
  color: var(--text);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  word-break: break-word;
}
.bbtile__meta {
  font: 400 .60rem/1 'Outfit';
  color: var(--text-mute);
  margin-top: 1px;
}
.bbtile__actions {
  position: absolute;
  bottom: 4px;
  right: 4px;
  display: none;
}
.bbtile:hover .bbtile__actions { display: flex; }
.bbtile__actions .cbx { width: 12px; height: 12px; cursor: pointer; accent-color: var(--c-school); }

/* Empty state (spans 2 columns) */
.bb-empty {
  grid-column: span 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .4rem;
  padding: 1.5rem .5rem;
  color: var(--text-mute);
  font-size: .70rem;
  font-style: italic;
  text-align: center;
}

/* Divider between upper grid and lower archives */
.bb-divider {
  height: 1px;
  background: var(--border);
  margin: .6rem 0;
  flex-shrink: 0;
}

/* Lower half: Pinned Archives placeholder */
.bb-archives {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: .4rem;
}
.bb-archives__head {
  display: flex;
  align-items: center;
  gap: .35rem;
  font: 700 .62rem/1 'Outfit';
  letter-spacing: .10em;
  text-transform: uppercase;
  color: var(--text-mute);
  flex-shrink: 0;
}
.bb-archives__empty {
  font-size: .68rem;
  color: var(--text-mute);
  font-style: italic;
  padding: .3rem .2rem;
  line-height: 1.4;
}

/* ── Drag-over state for week-radar columns & timeline gaps (backburner) ─── */
.is-dragging-bb-item .rcol { border-style: dashed !important; }
.is-dragging-bb-item .timeline-interstitial-gap { border-color: rgba(99,102,241,.35) !important; }
.mr-cpick-custom-btn:hover { border-color:var(--c-school); color:var(--c-school); }


/* ── Terminspeicher Database View ─────────────────────────────────────────── */
.mr-db-row {
  border-bottom: 1px solid var(--border);
  transition: background-color 0.15s ease;
}
.mr-db-row:hover {
  background-color: rgba(255, 255, 255, 0.035) !important;
}
[data-theme="light"] .mr-db-row:hover {
  background-color: rgba(20, 24, 40, 0.03) !important;
}
.mr-db-row td {
  padding: 0.6rem 0.8rem;
  border-bottom: 1px solid var(--border);
}
.mr-db-table th {
  padding: 0.6rem 0.8rem;
  background: var(--bg-2);
  border-bottom: 1px solid var(--border);
}
.sort-icon {
  margin-left: 4px;
  font-size: 0.7rem;
  opacity: 0.4;
  transition: opacity 0.15s, color 0.15s;
}

.t-block-actions {
  position: absolute;
  top: 0;
  right: 8px;
  display: flex;
  gap: 6px;
  z-index: 20;
  pointer-events: none;
}
.t-block-actions > * {
  opacity: 0;
  transform: translateY(12px) scale(0.6);
  transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.2s ease, background 0.15s ease, border-color 0.15s ease;
  pointer-events: none;
}
.t-block:hover .t-block-actions > * {
  opacity: 1;
  transform: translateY(-8px) scale(1);
  pointer-events: auto;
}
.t-block-act-btn {
  width: 22px;
  height: 22px;
  border-radius: 50% !important;
  background: var(--panel-2, #2d3748) !important;
  border: 1.5px solid var(--border) !important;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.3) !important;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 !important;
  color: var(--text-dim) !important;
  font-size: 0.75rem;
  line-height: 1;
  transition: all 0.15s ease;
}
[data-theme="light"] .t-block-act-btn {
  background: var(--bg-2, #ffffff) !important;
  color: var(--text-dim) !important;
}
.t-block-act-btn:hover {
  background: var(--c-school, #6366f1) !important;
  color: #fff !important;
  border-color: var(--c-school, #6366f1) !important;
  transform: translateY(-8px) scale(1.1) !important;
}
.t-block-act-btn-danger:hover {
  background: #ef4444 !important;
  border-color: #ef4444 !important;
  color: #fff !important;
}

.t-registry-group-title {
  font: 700 0.72rem/1 'Outfit', sans-serif;
  color: var(--c-school, #6366f1);
  background: rgba(99, 102, 241, 0.05);
  padding: 0.35rem 0.75rem;
  margin-top: 0.75rem;
  margin-bottom: 0.25rem;
  border-radius: var(--radius-sm);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.t-registry-group-title:first-child {
  margin-top: 0;
}

.t-routine-meta-badge {
  padding: 1px 6px;
  border-radius: 4px;
  font-weight: 600;
  font-size: 0.62rem;
  border: none;
  cursor: pointer;
  transition: all 0.15s ease;
}
.t-routine-meta-badge.active {
  background: rgba(16, 185, 129, 0.12) !important;
  color: #10b981 !important;
}
[data-theme="dark"] .t-routine-meta-badge.active {
  background: rgba(16, 185, 129, 0.2) !important;
  color: #34d399 !important;
}
.t-routine-meta-badge.inactive {
  background: var(--bg-3, rgba(255, 255, 255, 0.05)) !important;
  color: var(--text-mute) !important;
  border: 1px dashed var(--border) !important;
}

.t-color-grid {
  display: grid;
  grid-template-columns: repeat(10, 1fr);
  gap: 0.25rem;
  margin-top: 0.25rem;
}
.t-color-swatch {
  width: 100%;
  aspect-ratio: 1;
  padding: 0;
  border-radius: var(--radius-sm, 4px);
  border: 2px solid transparent;
  cursor: pointer;
  transition: all 0.15s ease;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.t-color-swatch:hover {
  transform: scale(1.08);
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}
.t-color-swatch.selected {
  border-color: var(--text);
  transform: scale(1.05);
  box-shadow: 0 0 0 2px var(--bg), 0 0 0 4px var(--c-school, #6366f1);
}
.t-color-swatch.has-label {
  font-size: 7px;
  font-weight: 700;
  line-height: 1;
  word-wrap: break-word;
  overflow-wrap: break-word;
  white-space: normal;
  overflow: hidden;
  padding: 1px;
}

.t-studio-tab-btn:hover {
  color: var(--text) !important;
}
.t-studio-tab-btn.active {
  color: var(--text) !important;
}
.t-block-readonly {
  opacity: 0.9;
  cursor: pointer;
  border-style: dashed !important;
}
.t-block-readonly:hover {
  transform: none !important;
  box-shadow: none !important;
}
.t-pool-tile {
  transition: all 0.15s ease;
}
.t-pool-tile:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-sm);
  filter: brightness(1.05);
}

/* Non-recurring to-dos styling: Pastel Orange concept (Concept 3) */
.non-recurring-todo {
  --accent: #f0965a !important;
  --fill: rgba(240, 150, 90, 0.48) !important;
  --edge: rgba(240, 150, 90, 0.70) !important;
  --ink: #ffcda3 !important;
}
[data-theme="light"] .non-recurring-todo {
  --accent: #d76919 !important;
  --fill: rgba(235, 130, 50, 0.35) !important;
  --edge: rgba(215, 105, 25, 0.65) !important;
  --ink: #8c4505 !important;
}

/* Force backgrounds to be solid (override transparent backgrounds on compact tasks) */
.card.non-recurring-todo,
.rcard.non-recurring-todo {
  background: var(--fill) !important;
}

/* Hide the left indicator bar and adjust padding for symmetry */
.card.non-recurring-todo::before,
.rcard.non-recurring-todo::before,
.non-recurring-todo::before {
  display: none !important;
}
.card.non-recurring-todo {
  padding-left: 12px !important;
}
.rcard.non-recurring-todo {
  padding-left: 8px !important;
}

/* 1. Untimed (unterminiert): Ghost Card (borderless, no shadow) */
.card.non-recurring-todo.todo-untimed,
.rcard.non-recurring-todo.todo-untimed,
.todo-untimed {
  border: none !important;
  box-shadow: none !important;
}

/* 2. Date only: Dotted border */
.card.non-recurring-todo.todo-date-only,
.rcard.non-recurring-todo.todo-date-only,
.todo-date-only {
  border: 1px dotted var(--edge) !important;
}

/* 3. Date and Time: Borderless (Ghost Card style) */
.card.non-recurring-todo.todo-date-time,
.rcard.non-recurring-todo.todo-date-time,
.todo-date-time {
  border: none !important;
  box-shadow: none !important;
}

/* Week-Radar card visual styling updates */
.rcard-time-stacked {
  font-size: 0.62rem;
  font-family: var(--mono);
  font-weight: 700;
  color: var(--text) !important;
  opacity: 0.9;
  flex-shrink: 0;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1.1;
  margin-right: 5px;
}
.rcard-time-stacked span {
  display: block;
  text-align: center;
}

.rcard-title-wrap {
  flex: 1;
  min-width: 0;
  font-size: 0.66rem !important; /* Text of items in smaller font */
  line-height: 1.25 !important;
  font-weight: 500;
  color: var(--text);
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  line-clamp: 2 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: normal !important; /* Allow wrapping */
  word-break: normal !important;
  overflow-wrap: break-word !important;
  hyphens: auto !important;
  -webkit-hyphens: auto !important;
  -ms-hyphens: auto !important;
}

/* Stundenplaner slot items coloring in Week-Radar */
.rcard.rcard-timetable-slot {
  background: rgb(251, 228, 242) !important;
  border: 1px solid rgb(244, 175, 215) !important;
  border-left: 4px solid rgb(223, 32, 143) !important;
  color: rgb(112, 16, 72) !important;
}
.rcard.rcard-timetable-slot .rcard-title-wrap,
.rcard.rcard-timetable-slot .rcard-time-stacked,
.rcard.rcard-timetable-slot .rcard-time-stacked span {
  color: rgb(112, 16, 72) !important;
}
.rcard.rcard-timetable-slot::before {
  display: none !important;
}

/* External Google Calendar events coloring in Week-Radar (Pastel Green) */
.rcard.rcard-external-event {
  background: rgb(235, 247, 239) !important;
  border: 1px solid rgb(196, 237, 213) !important;
  border-left: 4px solid rgb(46, 184, 114) !important;
  color: rgb(15, 87, 49) !important;
}
.rcard.rcard-external-event .rcard-title-wrap,
.rcard.rcard-external-event .rcard-time-stacked,
.rcard.rcard-external-event .rcard-time-stacked span {
  color: rgb(15, 87, 49) !important;
}
.rcard.rcard-external-event::before {
  display: none !important;
}

[data-theme="dark"] .rcard.rcard-external-event {
  background: rgb(20, 54, 34) !important;
  border: 1px solid rgb(30, 84, 52) !important;
  border-left: 4px solid rgb(46, 184, 114) !important;
  color: rgb(210, 245, 225) !important;
}
[data-theme="dark"] .rcard.rcard-external-event .rcard-title-wrap,
[data-theme="dark"] .rcard.rcard-external-event .rcard-time-stacked,
[data-theme="dark"] .rcard.rcard-external-event .rcard-time-stacked span {
  color: rgb(210, 245, 225) !important;
}

/* Flexible (all-day) external calendar events in Week-Radar */
.rcard.rcard-external-event-flexible {
  background: rgb(235, 247, 239) !important;
  border: none !important;
  box-shadow: none !important;
  color: rgb(15, 87, 49) !important;
  padding-left: 8px !important;
}
.rcard.rcard-external-event-flexible .rcard-title-wrap {
  color: rgb(15, 87, 49) !important;
}
.rcard.rcard-external-event-flexible::before {
  display: none !important;
}

[data-theme="dark"] .rcard.rcard-external-event-flexible {
  background: rgb(20, 54, 34) !important;
  color: rgb(210, 245, 225) !important;
}
[data-theme="dark"] .rcard.rcard-external-event-flexible .rcard-title-wrap {
  color: rgb(210, 245, 225) !important;
}

/* Enable wrapping up to 2 lines and truncate beyond that for cards in Column 3A and 3B */
#pool-column-3a .card .title,
#pool-column-3b .card .title {
  white-space: normal !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  line-clamp: 2 !important;
  word-break: break-word !important;
  line-height: 1.25 !important;
}



