/* ─── app.css · App-spezifische Overlays fuer bimo-webapp ──────────────
 * dashboard.css bleibt unangetastet (Vanilla-Port-Vorlage).
 * Hier: Login, User-Menu, Manager-Modal, Widget-Row-Actions,
 * Pin-Icon, Priority-Colors, Hero-Fix.
 */

/* ─── Boot-State ───────────────────────────────────────────── */
#app-root[aria-hidden="true"]      { display: none; }
#login-overlay[aria-hidden="true"] { display: none; }

/* ─── Login-Overlay ────────────────────────────────────────── */
.login-overlay {
  position: fixed; inset: 0; z-index: 100;
  display: flex; align-items: center; justify-content: center;
  padding: 2rem;
}
.login-card {
  max-width: 420px; width: 100%;
  padding: 2.2rem 2.4rem; text-align: center;
  border-radius: var(--r-card, 16px);
}
.login-card__brand {
  margin: 0 0 0.4rem; font-size: 1.6rem; font-weight: 600;
  letter-spacing: -0.02em; color: var(--text-hi, #faf9f5);
}
.login-card__text  { margin: 0 0 1.6rem; font-size: 0.92rem; color: var(--text-muted); }
.login-card__btn   { margin: 0 auto; }

/* ─── Search-Input (echter input in der Pill) ──────────────── */
.search-pill__input {
  flex: 1; background: transparent; border: none; outline: none;
  font-family: inherit; font-size: inherit;
  color: var(--text, #e6e4df); padding: 0; min-width: 0;
}
.search-pill__input::placeholder { color: var(--text-muted, rgba(230,228,223,0.5)); }

/* ─── User-Menu (Logout-Dropdown) ──────────────────────────── */
.user-menu {
  position: absolute; top: calc(100% + 6px); right: 0;
  min-width: 140px;
  background: var(--surf-2, #11162a);
  border: 1px solid var(--line-2, rgba(255,255,255,0.06));
  border-radius: 10px; padding: 4px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.4);
  z-index: 50;
}
.user-menu[hidden] { display: none; }
.topbar-right { position: relative; }
.user-menu__item {
  display: block; width: 100%;
  background: transparent; border: none;
  color: var(--text); font-family: inherit; font-size: 0.88rem;
  padding: 0.5rem 0.8rem; border-radius: 6px;
  text-align: left; cursor: pointer; transition: background 0.15s;
}
.user-menu__item:hover { background: rgba(125,211,252,0.08); }

/* ─── Loading + Empty + Toast ──────────────────────────────── */
.loading {
  color: var(--text-dim, rgba(230,228,223,0.35));
  font-size: 0.7rem; letter-spacing: 0.2em;
  padding: 1.2rem 0; text-align: center;
}
.widget-empty {
  color: var(--text-dim, rgba(230,228,223,0.35));
  font-size: 0.82rem; padding: 0.8rem 0; text-align: center;
}
.bimo-toast {
  position: fixed; bottom: 1.4rem; right: 1.4rem;
  background: var(--surf-2, #11162a);
  border: 1px solid var(--line-3, rgba(255,255,255,0.1));
  color: var(--text, #e6e4df);
  padding: 0.7rem 1.1rem; border-radius: 10px;
  font-size: 0.88rem;
  opacity: 0; transform: translateY(6px);
  transition: opacity 0.2s, transform 0.2s;
  pointer-events: none; z-index: 200;
  box-shadow: 0 6px 20px rgba(0,0,0,0.35);
}
.bimo-toast.show { opacity: 1; transform: translateY(0); }
.bimo-toast.err  { border-color: rgba(248,113,113,0.45); }

/* ─── Paperless-Dropzone + Admin-Tint ──────────────────────── */
.pl-dropzone { cursor: pointer; }
.pl-dropzone.dragover {
  border-color: var(--accent, #7dd3fc) !important;
  background: var(--accent-soft-2, rgba(125,211,252,0.08));
}
.nexus-tile.admin .nexus-tile__icon svg {
  stroke: var(--warn, #fbbf24) !important;
}

/* ─── Card-Head: Plus-Button ───────────────────────────────── */
.card__right-group {
  display: inline-flex; align-items: center; gap: 8px;
}
.card__open {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; padding: 0;
  background: rgba(125,211,252,0.08);
  border: 1px solid rgba(125,211,252,0.18);
  border-radius: 6px;
  color: rgba(125,211,252,0.8);
  cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s, transform 0.1s;
}
.card__open:hover {
  background: rgba(125,211,252,0.18);
  border-color: rgba(125,211,252,0.4);
  color: #7dd3fc;
}
.card__open:active { transform: scale(0.92); }

/* ═══════════════════════════════════════════════════════════
 * MANAGER-MODAL
 * ═══════════════════════════════════════════════════════════ */

.manager-overlay {
  position: fixed; inset: 0;
  background: rgba(6,8,13,0.72);
  backdrop-filter: blur(8px);
  display: flex; align-items: center; justify-content: center;
  padding: 2rem;
  z-index: 150;
  animation: manager-fade 0.18s ease-out;
}
@keyframes manager-fade { from { opacity: 0; } to { opacity: 1; } }

.manager {
  width: 100%; max-width: 620px; max-height: 82vh;
  display: flex; flex-direction: column;
  padding: 0; border-radius: 16px; overflow: hidden;
}

/* Head */
.manager__head {
  display: flex; align-items: center; gap: 10px;
  padding: 14px 20px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.manager__title-wrap {
  display: flex; align-items: baseline; gap: 8px;
  flex: 1 1 auto; min-width: 0;
}
.manager__title {
  font-size: 15px; font-weight: 600;
  color: var(--text-hi, #faf9f5);
  letter-spacing: -0.01em;
}
.manager__mode-label {
  color: rgba(125,211,252,0.7);
  font-size: 10.5px; letter-spacing: 0.12em;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  max-width: 260px;
}
.manager__deep-link {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 10px;
  background: rgba(125,211,252,0.08);
  border: 1px solid rgba(125,211,252,0.22);
  border-radius: 6px;
  color: rgba(125,211,252,0.85);
  font-size: 11px; font-family: 'Geist Mono', monospace;
  letter-spacing: 0.08em; text-transform: uppercase;
  text-decoration: none;
  transition: background 0.15s, border-color 0.15s;
}
.manager__deep-link:hover {
  background: rgba(125,211,252,0.18);
  border-color: rgba(125,211,252,0.45);
  color: #7dd3fc;
}
.manager__close {
  flex-shrink: 0;
  background: transparent;
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 6px;
  width: 28px; height: 28px; padding: 0;
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--text-muted, rgba(230,228,223,0.5));
  cursor: pointer; transition: background 0.15s, color 0.15s;
}
.manager__close:hover {
  background: rgba(255,255,255,0.06);
  color: var(--text, #e6e4df);
}

/* Create/Edit-Form */
.manager__create-wrap {
  padding: 14px 18px 12px;
  border-bottom: 1px solid rgba(125,211,252,0.08);
  background: rgba(125,211,252,0.02);
}

.manager__form {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px 12px;
  align-items: start;
}

.manager__field {
  display: flex; flex-direction: column;
  gap: 3px; min-width: 0;
}
.manager__field.span-1    { grid-column: span 1; }
.manager__field.span-2    { grid-column: span 2; }
.manager__field.span-3,
.manager__field.span-full { grid-column: 1 / -1; }
.manager__field.checkbox-row {
  flex-direction: row; align-items: center; gap: 10px;
}

.manager__field-label {
  font-size: 9.5px;
  color: rgba(125,211,252,0.55);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding-left: 2px;
}
.manager__field-label.checkbox-label {
  font-size: 12.5px; letter-spacing: 0;
  color: var(--text, #e6e4df);
  text-transform: none; padding-left: 0;
}

/* Inputs — **hier ist die Wahrheit**, alles drunter vererbt */
.manager__input {
  box-sizing: border-box;
  width: 100%;
  background: rgba(125,211,252,0.04);
  border: 1px solid rgba(125,211,252,0.18);
  border-radius: 7px;
  color: var(--text, #e6e4df);
  font-family: inherit; font-size: 13px;
  padding: 0 10px;
  outline: none;
  transition: border-color 0.15s, background 0.15s;
  color-scheme: dark;
}
.manager__input:focus {
  border-color: rgba(125,211,252,0.55);
  background: rgba(125,211,252,0.08);
  box-shadow: 0 0 0 3px rgba(125,211,252,0.08);
}
.manager__input::placeholder { color: rgba(230,228,223,0.28); }

input.manager__input,
select.manager__input {
  height: 34px;
  line-height: 1.2;
}
.manager__input--textarea {
  height: auto;
  min-height: 66px;
  max-height: 160px;
  padding: 8px 10px;
  resize: vertical;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 12.5px;
  line-height: 1.4;
}

/* Select custom arrow + dark options */
select.manager__input {
  appearance: none;
  padding-right: 26px;
  background:
    rgba(125,211,252,0.04)
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%237dd3fc' d='M0 0l5 6 5-6z'/></svg>")
    no-repeat right 9px center / 9px 5px;
}
select.manager__input option {
  background: #0e1a28; color: #e6e4df;
}
input[type="date"].manager__input::-webkit-calendar-picker-indicator,
input[type="time"].manager__input::-webkit-calendar-picker-indicator {
  filter: invert(78%) sepia(36%) saturate(1160%) hue-rotate(169deg) brightness(100%) contrast(88%);
  opacity: 0.85; cursor: pointer;
}

.manager__checkbox {
  width: 17px; height: 17px; margin: 0;
  accent-color: var(--accent, #7dd3fc);
  cursor: pointer;
}

/* Form-Actions */
.manager__form-actions {
  display: flex; gap: 8px;
  justify-content: flex-end; align-items: center;
  margin-top: 2px;
}
.manager__form-actions.span-full { grid-column: 1 / -1; }

.manager__submit {
  background: linear-gradient(135deg, rgba(125,211,252,0.26), rgba(125,211,252,0.12));
  border: 1px solid rgba(125,211,252,0.4);
  color: #7dd3fc;
  border-radius: 7px;
  padding: 7px 14px;
  font-family: inherit; font-size: 12.5px; font-weight: 500;
  cursor: pointer;
  transition: background 0.15s, transform 0.1s;
}
.manager__submit:hover  { background: linear-gradient(135deg, rgba(125,211,252,0.38), rgba(125,211,252,0.2)); }
.manager__submit:active { transform: scale(0.97); }
.manager__submit:disabled { opacity: 0.5; cursor: not-allowed; }

.manager__cancel {
  background: transparent;
  border: 1px solid rgba(255,255,255,0.1);
  color: var(--text-muted, rgba(230,228,223,0.5));
  border-radius: 7px;
  padding: 7px 12px;
  font-family: inherit; font-size: 12.5px;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}
.manager__cancel:hover { background: rgba(255,255,255,0.05); color: var(--text); }

/* Liste */
.manager__list {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 6px 10px 14px;
  scrollbar-width: thin;
  scrollbar-color: rgba(125,211,252,0.22) transparent;
}
.manager__list::-webkit-scrollbar       { width: 6px; }
.manager__list::-webkit-scrollbar-track { background: transparent; }
.manager__list::-webkit-scrollbar-thumb { background: rgba(125,211,252,0.22); border-radius: 3px; }
.manager__list::-webkit-scrollbar-thumb:hover { background: rgba(125,211,252,0.4); }

/* Gruppen-Header in der Liste (z.B. "Erledigt (7)") */
.manager__group-head {
  padding: 14px 8px 4px;
  font-family: 'Geist Mono', monospace;
  font-size: 10px;
  color: rgba(230,228,223,0.35);
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.manager__row {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 8px;
  border-bottom: 1px solid rgba(255,255,255,0.04);
}
.manager__row:last-child { border-bottom: none; }
.manager__row.done .manager__row-title {
  color: var(--text-dim, rgba(230,228,223,0.4));
  text-decoration: line-through;
}

.manager__row-lead {
  flex: 0 0 auto;
  display: inline-flex; align-items: center; justify-content: center;
}
.manager__row-body {
  flex: 1 1 auto; min-width: 0;
  display: flex; flex-direction: column; gap: 2px;
}
.manager__row-title {
  font-size: 13px;
  color: var(--text, #e6e4df);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.manager__row-sub {
  font-size: 10px;
  color: var(--text-muted, rgba(230,228,223,0.5));
  letter-spacing: 0.05em;
}

.manager__row-actions {
  flex: 0 0 auto;
  display: inline-flex; gap: 4px;
}
.manager__row-edit,
.manager__row-del,
.manager__row-check {
  background: transparent;
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 5px;
  width: 26px; height: 26px; padding: 0;
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--text-dim, rgba(230,228,223,0.4));
  cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.manager__row-edit:hover {
  background: rgba(125,211,252,0.1);
  border-color: rgba(125,211,252,0.35);
  color: #7dd3fc;
}
.manager__row-del:hover {
  background: rgba(248,113,113,0.1);
  border-color: rgba(248,113,113,0.35);
  color: #f87171;
}
.manager__row-check:hover {
  background: rgba(125,211,252,0.08);
  border-color: rgba(125,211,252,0.3);
  color: #7dd3fc;
}
.manager__row-check.done-btn {
  background: rgba(125,211,252,0.15);
  border-color: rgba(125,211,252,0.45);
  color: #7dd3fc;
}
.manager__row-check.done-btn:hover {
  background: rgba(125,211,252,0.22);
}

/* Priority-Strich im Manager (analog zum Dashboard) */
.prio-dot {
  display: inline-block;
  width: 8px; height: 8px; border-radius: 50%;
  margin-right: 6px;
  vertical-align: 0;
}
.prio-dot.prio-high { background: #f87171; }
.prio-dot.prio-mid  { background: #fbbf24; }
.prio-dot.prio-low  { background: #86efac; }

/* ─── Widget-Row-Actions (Dashboard-Widget direkt) ─────────── */
.widget-row-actions {
  display: inline-flex;
  gap: 4px;
  margin-left: auto;
  flex-shrink: 0;
  opacity: 0.25;
  transition: opacity 0.15s;
}
.termine-item:hover .widget-row-actions,
.notizen-item:hover .widget-row-actions,
.todo:hover .widget-row-actions,
.widget-row-actions:focus-within {
  opacity: 1;
}
.widget-row-btn {
  background: transparent;
  border: 1px solid transparent;
  border-radius: 5px;
  width: 22px; height: 22px; padding: 0;
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--text-dim, rgba(230,228,223,0.45));
  cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.widget-row-btn:hover {
  background: rgba(125,211,252,0.1);
  border-color: rgba(125,211,252,0.3);
  color: #7dd3fc;
}
.widget-row-btn.fav-on {
  color: #fbbf24; opacity: 1;
}
.widget-row-btn.fav-on:hover {
  background: rgba(251,191,36,0.12);
  border-color: rgba(251,191,36,0.4);
}
.widget-row-btn.danger:hover {
  background: rgba(248,113,113,0.1);
  border-color: rgba(248,113,113,0.35);
  color: #f87171;
}
.notizen-item.pinned .widget-row-actions { opacity: 0.6; }

/* Widget-Rows als flex */
.termine-item  { display: flex; align-items: flex-start; gap: 12px; }
.termine-when  { flex: 0 0 auto; min-width: 72px; }
.termine-body  { flex: 1 1 auto; min-width: 0; }
.notizen-item  { display: flex; align-items: flex-start; gap: 10px; }
.notizen-body  { flex: 1 1 auto; min-width: 0; }
.todo          { display: flex; align-items: center; gap: 8px; }
.todo__label   { flex: 1 1 auto; min-width: 0; }

/* Clickable Rows -> cursor + Hover-Hint */
.termine-item.clickable,
.notizen-item.clickable,
.todo.clickable {
  cursor: pointer;
  border-radius: 6px;
  padding: 2px 4px;
  margin: 0 -4px;
  transition: background 0.15s;
}
.termine-item.clickable:hover,
.notizen-item.clickable:hover,
.todo.clickable:hover { background: rgba(125,211,252,0.04); }

/* Todo-Checkbox darf nicht mit Hover-Pointer des Row-Click verwechselt werden */
.todo__box { cursor: pointer; }

/* Text auf eine Zeile begrenzen mit Ellipsis */
.termine-title,
.termine-where,
.notizen-title,
.notizen-meta,
.todo__label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Ausgeschriebene Wochentage: lesbar statt caps-mono */
.termine-day {
  text-transform: none !important;
  letter-spacing: 0.02em !important;
  font-size: 11px !important;
  font-family: inherit !important;
  color: var(--text, #e6e4df);
  font-weight: 500;
}
.termine-date {
  font-size: 9.5px;
  color: var(--text-dim, rgba(230,228,223,0.35));
  letter-spacing: 0.14em;
  margin-top: 1px;
}

/* ─── Pin-Icon ─────────────────────────────────────────────── */
.pin-icon {
  display: inline-flex; align-items: center;
  margin-right: 6px;
  color: #fbbf24;
  vertical-align: -1px;
}
.manager__row-title .pin-icon { margin-right: 5px; }
.notizen-item.pinned .notizen-bar.active { background: #fbbf24; }

/* ─── Priority-Farbe in der Todo-Checkbox (Dashboard) ──────── */
.todo__box { transition: border-color 0.15s, background 0.15s; }
.todo__box.prio-high {
  border-color: #f87171;
  box-shadow: inset 0 0 0 1px rgba(248,113,113,0.4);
}
.todo__box.prio-mid {
  border-color: #fbbf24;
  box-shadow: inset 0 0 0 1px rgba(251,191,36,0.4);
}
.todo__box.prio-low {
  border-color: #86efac;
  box-shadow: inset 0 0 0 1px rgba(134,239,172,0.4);
}
.todo.done .todo__box { box-shadow: none; }

/* ─── Hero-Col-Alignment Fix ───────────────────────────────── */
.hero-col--left  { justify-self: end;   }
.hero-col--right { justify-self: start; }

/* ─── SearXNG-Inline-Results ───────────────────────────────── */
.search-results {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  width: 440px;
  max-height: 460px;
  display: flex; flex-direction: column;
  background: rgba(14, 26, 40, 0.92);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border: 1px solid var(--line-3, rgba(255,255,255,0.06));
  border-radius: var(--r-card, 16px);
  box-shadow: 0 14px 40px rgba(0,0,0,0.5), inset 0 1px 0 rgba(255,255,255,0.04);
  z-index: 60;
  overflow: hidden;
  animation: search-fade 0.14s ease-out;
}
.search-results[hidden] { display: none; }
@keyframes search-fade {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}

.search-results__body {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 6px;
  scrollbar-width: thin;
  scrollbar-color: rgba(125,211,252,0.22) transparent;
}
.search-results__body::-webkit-scrollbar       { width: 6px; }
.search-results__body::-webkit-scrollbar-track { background: transparent; }
.search-results__body::-webkit-scrollbar-thumb { background: rgba(125,211,252,0.22); border-radius: 3px; }

.search-result {
  display: block;
  padding: 10px 12px;
  border-radius: 8px;
  text-decoration: none;
  color: inherit;
  transition: background 0.12s;
}
.search-result:hover,
.search-result:focus-visible {
  background: rgba(125,211,252,0.07);
  outline: none;
}
.search-result + .search-result { margin-top: 2px; }

.search-result__title {
  font-size: 13px;
  color: var(--text-hi, #e6f6ff);
  font-weight: 500;
  margin-bottom: 2px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.search-result__meta {
  font-size: 10px;
  color: rgba(125,211,252,0.7);
  letter-spacing: 0.04em;
  margin-bottom: 4px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.search-result__snippet {
  font-size: 12px;
  color: var(--text-soft, rgba(230,228,223,0.7));
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.search-results__empty,
.search-results__loading,
.search-results__error {
  padding: 28px 16px;
  text-align: center;
  font-size: 0.72rem;
  letter-spacing: 0.2em;
}
.search-results__empty,
.search-results__loading {
  color: var(--text-dim, rgba(230,228,223,0.35));
}
.search-results__error {
  color: rgba(248,113,113,0.85);
  letter-spacing: 0.04em;
  font-size: 0.82rem;
}

.search-results__ext {
  flex-shrink: 0;
  display: block;
  padding: 10px 14px;
  border-top: 1px solid var(--line-3, rgba(255,255,255,0.06));
  font-size: 10.5px;
  letter-spacing: 0.14em;
  color: rgba(125,211,252,0.75);
  text-decoration: none;
  text-align: center;
  transition: background 0.12s, color 0.12s;
}
.search-results__ext:hover {
  background: rgba(125,211,252,0.08);
  color: #7dd3fc;
}
