:root {
  --bg: #f3f5fa;
  --bg-deep: #e9edf6;
  --surface: rgba(255, 255, 255, .88);
  --surface-solid: #ffffff;
  --surface-2: #f7f8fc;
  --surface-3: #eef1f7;
  --text: #151b2c;
  --text-strong: #0b1020;
  --muted: #70798c;
  --muted-2: #949cad;
  --border: rgba(122, 135, 160, .18);
  --border-strong: rgba(93, 107, 134, .28);
  --accent: #5b6df8;
  --accent-strong: #4355e1;
  --accent-soft: color-mix(in srgb, var(--accent) 11%, white);
  --accent-faint: color-mix(in srgb, var(--accent) 5%, white);
  --danger: #e54f65;
  --danger-soft: #fff0f2;
  --warning: #e29a2d;
  --success: #28a36a;
  --success-soft: #eaf9f2;
  --sidebar: #101628;
  --sidebar-2: #151d33;
  --sidebar-text: #eef2ff;
  --sidebar-muted: #8f9ab4;
  --shadow-sm: 0 7px 22px rgba(31, 42, 68, .06);
  --shadow: 0 22px 55px rgba(25, 34, 57, .11);
  --shadow-lg: 0 35px 90px rgba(17, 23, 42, .23);
  --sidebar-width: 270px;
  --radius-xl: 24px;
  --radius: 18px;
  --radius-md: 14px;
  --radius-sm: 10px;
}

[data-theme="dark"] {
  --bg: #080c15;
  --bg-deep: #050811;
  --surface: rgba(18, 24, 39, .9);
  --surface-solid: #121827;
  --surface-2: #171e2f;
  --surface-3: #20283b;
  --text: #edf1fb;
  --text-strong: #ffffff;
  --muted: #98a3b8;
  --muted-2: #717d94;
  --border: rgba(145, 160, 188, .15);
  --border-strong: rgba(145, 160, 188, .25);
  --accent-soft: color-mix(in srgb, var(--accent) 18%, #111827);
  --accent-faint: color-mix(in srgb, var(--accent) 8%, #111827);
  --danger-soft: #301820;
  --success-soft: #112a21;
  --sidebar: #070a12;
  --sidebar-2: #0d1220;
  --shadow-sm: 0 7px 24px rgba(0, 0, 0, .18);
  --shadow: 0 24px 62px rgba(0, 0, 0, .28);
  --shadow-lg: 0 40px 100px rgba(0, 0, 0, .52);
}

* { box-sizing: border-box; }
html { min-height: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:
    radial-gradient(circle at 82% -10%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 32rem),
    radial-gradient(circle at 18% 105%, color-mix(in srgb, var(--accent) 7%, transparent), transparent 30rem),
    var(--bg);
  color: var(--text);
  -webkit-font-smoothing: antialiased;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .28;
  background-image: linear-gradient(rgba(100,110,140,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(100,110,140,.025) 1px, transparent 1px);
  background-size: 32px 32px;
  z-index: -1;
}
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .42; }
::selection { background: color-mix(in srgb, var(--accent) 25%, transparent); }

.app-shell { display: grid; grid-template-columns: var(--sidebar-width) minmax(0, 1fr); min-height: 100vh; }
.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  padding: 24px 16px 18px;
  background:
    radial-gradient(circle at 15% 8%, color-mix(in srgb, var(--accent) 24%, transparent), transparent 16rem),
    linear-gradient(180deg, var(--sidebar-2), var(--sidebar));
  color: var(--sidebar-text);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  z-index: 10;
}
.sidebar::after {
  content: "";
  position: absolute;
  inset: 0 0 0 auto;
  width: 1px;
  background: rgba(255,255,255,.08);
}
.brand { display: flex; align-items: center; gap: 13px; padding: 0 9px 25px; }
.brand-mark {
  width: 46px; height: 46px; flex: 0 0 auto; display: grid; place-items: center;
  border-radius: 15px; color: white;
  background: linear-gradient(145deg, color-mix(in srgb, var(--accent) 90%, white), var(--accent-strong));
  box-shadow: 0 13px 30px color-mix(in srgb, var(--accent) 32%, transparent), inset 0 1px rgba(255,255,255,.34);
}
.brand-mark svg { width: 27px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.brand-copy strong { display: block; font-size: 18px; letter-spacing: -.025em; }
.brand-copy span { display: block; margin-top: 3px; color: var(--sidebar-muted); font-size: 10px; }
.sidebar-label { padding: 0 12px 9px; color: #66728e; font-size: 9px; font-weight: 850; letter-spacing: .15em; text-transform: uppercase; }
.nav { display: flex; flex-direction: column; gap: 5px; }
.nav-item {
  position: relative; width: 100%; border: 0; background: transparent; color: var(--sidebar-muted);
  padding: 11px 12px; border-radius: 12px; display: flex; align-items: center; gap: 11px;
  text-align: left; font-weight: 680; transition: transform .16s ease, background .16s ease, color .16s ease;
}
.nav-item:hover { background: rgba(255,255,255,.06); color: #fff; transform: translateX(2px); }
.nav-item.active { background: linear-gradient(90deg, color-mix(in srgb, var(--accent) 30%, transparent), color-mix(in srgb, var(--accent) 10%, transparent)); color: #fff; box-shadow: inset 0 0 0 1px rgba(255,255,255,.055); }
.nav-item.active::before { content: ""; position: absolute; left: 0; top: 9px; bottom: 9px; width: 3px; border-radius: 99px; background: color-mix(in srgb, var(--accent) 70%, white); box-shadow: 0 0 15px var(--accent); }
.nav-icon { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 8px; background: rgba(255,255,255,.045); font-size: 15px; }
.nav-item.active .nav-icon { background: color-mix(in srgb, var(--accent) 30%, transparent); }
.sidebar-bottom { margin-top: auto; display: grid; gap: 8px; }
.storage-card { padding: 13px; border: 1px solid rgba(255,255,255,.08); border-radius: 15px; background: rgba(255,255,255,.045); backdrop-filter: blur(12px); }
.storage-status { display: flex; align-items: flex-start; gap: 9px; margin-bottom: 11px; }
.storage-status strong { display: block; font-size: 11px; color: #fff; }
.storage-status small { display: block; margin-top: 2px; color: var(--sidebar-muted); font-size: 9px; line-height: 1.4; }
.status-dot { width: 8px; height: 8px; margin-top: 3px; border-radius: 50%; background: var(--warning); box-shadow: 0 0 0 4px color-mix(in srgb, var(--warning) 16%, transparent); }
.status-dot.connected { background: #49d38b; box-shadow: 0 0 0 4px rgba(73,211,139,.13), 0 0 14px rgba(73,211,139,.35); }
.btn-sidebar { width: 100%; border-color: rgba(255,255,255,.1) !important; background: rgba(255,255,255,.06) !important; color: #dce4f8 !important; }
.version-chip { padding: 6px 12px 0; color: #56617a; font-size: 9px; display: flex; justify-content: space-between; }
.version-chip span { color: #7b87a1; }

.main-area { min-width: 0; }
.topbar {
  position: sticky; top: 0; z-index: 8;
  min-height: 105px; padding: 22px 32px;
  display: flex; justify-content: space-between; align-items: center; gap: 24px;
  background: color-mix(in srgb, var(--bg) 77%, transparent);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(22px) saturate(150%);
}
.page-kicker { margin: 0 0 5px !important; color: var(--accent) !important; font-size: 9px !important; letter-spacing: .14em; font-weight: 850; }
.topbar h1 { margin: 0; color: var(--text-strong); font-size: 27px; line-height: 1.1; letter-spacing: -.035em; }
.topbar p { margin: 5px 0 0; color: var(--muted); font-size: 12px; }
.topbar-actions { display: flex; align-items: center; gap: 10px; }
.search-wrap {
  min-width: 300px; height: 44px; padding: 0 10px 0 13px;
  display: flex; align-items: center; gap: 9px;
  border: 1px solid var(--border); border-radius: 13px; background: var(--surface);
  box-shadow: var(--shadow-sm); transition: .18s ease;
}
.search-wrap:focus-within { border-color: color-mix(in srgb, var(--accent) 55%, var(--border)); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 9%, transparent), var(--shadow-sm); }
.search-wrap input { flex: 1; min-width: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.search-wrap input:focus { box-shadow: none; }
.search-icon { color: var(--muted); font-size: 18px; }
kbd { min-width: 23px; padding: 3px 6px; border: 1px solid var(--border); border-bottom-color: var(--border-strong); border-radius: 6px; background: var(--surface-2); color: var(--muted); font: 700 9px/1.2 inherit; text-align: center; box-shadow: 0 1px 0 var(--border); }
.content { padding: 28px 32px 48px; max-width: 1800px; margin: 0 auto; }

.btn {
  min-height: 40px; padding: 0 15px; border: 1px solid transparent; border-radius: 12px;
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  font-weight: 760; font-size: 12px; transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
}
.btn:hover:not(:disabled) { transform: translateY(-1px); }
.btn-primary { color: white; background: linear-gradient(145deg, color-mix(in srgb, var(--accent) 92%, white), var(--accent-strong)); box-shadow: 0 9px 22px color-mix(in srgb, var(--accent) 23%, transparent), inset 0 1px rgba(255,255,255,.24); }
.btn-primary:hover:not(:disabled) { box-shadow: 0 13px 28px color-mix(in srgb, var(--accent) 29%, transparent), inset 0 1px rgba(255,255,255,.24); }
.btn-secondary { color: var(--text); background: var(--surface-solid); border-color: var(--border); box-shadow: 0 4px 13px rgba(30,40,65,.04); }
.btn-secondary:hover:not(:disabled) { border-color: var(--border-strong); background: var(--surface-2); }
.btn-danger { color: white; background: var(--danger); }
.btn-danger.ghost { color: var(--danger); background: transparent; border-color: color-mix(in srgb, var(--danger) 28%, transparent); }
.btn-small { min-height: 34px; padding: 0 11px; border-radius: 10px; font-size: 10px; }
.icon-btn { width: 44px; padding: 0; font-size: 18px; }
.new-task-button { min-height: 44px; padding-inline: 17px; }
.new-task-button span { font-size: 18px; line-height: 1; }
.text-btn { border: 0; background: transparent; color: var(--accent); font-size: 10px; font-weight: 800; padding: 5px; border-radius: 7px; }
.text-btn:hover { background: var(--accent-soft); }
.icon-action {
  width: 32px; height: 32px; padding: 0; display: grid; place-items: center;
  border: 1px solid transparent; border-radius: 9px; background: transparent; color: var(--muted); transition: .15s ease;
}
.icon-action:hover { color: var(--text); border-color: var(--border); background: var(--surface-2); }

.stats-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; margin-bottom: 20px; }
.stat-card {
  position: relative; overflow: hidden; min-height: 145px; padding: 19px;
  border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface);
  box-shadow: var(--shadow-sm); backdrop-filter: blur(14px); transition: transform .18s ease, box-shadow .18s ease;
}
.stat-card::after { content: ""; position: absolute; right: -32px; top: -42px; width: 120px; height: 120px; border-radius: 50%; background: color-mix(in srgb, var(--accent) 9%, transparent); }
.stat-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.stat-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; background: var(--accent-soft); color: var(--accent); font-size: 18px; }
.stat-label { margin-top: 16px; color: var(--muted); font-size: 10px; font-weight: 760; letter-spacing: .02em; }
.stat-value { margin-top: 3px; color: var(--text-strong); font-size: 28px; font-weight: 850; letter-spacing: -.035em; }
.stat-note { margin-top: 3px; color: var(--muted-2); font-size: 10px; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(290px, .65fr); gap: 18px; }
.panel-stack { display: grid; align-content: start; gap: 15px; }
.panel { border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-sm); overflow: hidden; backdrop-filter: blur(14px); }
.panel-header { min-height: 58px; padding: 14px 17px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--border); }
.panel-header h2, .panel-header h3 { margin: 0; color: var(--text-strong); font-size: 14px; letter-spacing: -.01em; }
.panel-body { padding: 15px; }
.progress-line { height: 7px; background: var(--surface-3); border-radius: 999px; overflow: hidden; margin-top: 11px; }
.progress-line > span { display: block; height: 100%; background: linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 62%, #8ce0ff)); border-radius: inherit; }

.toolbar {
  min-height: 58px; margin-bottom: 16px; padding: 9px 10px;
  display: flex; gap: 10px; align-items: center; justify-content: space-between; flex-wrap: wrap;
  border: 1px solid var(--border); border-radius: 16px; background: var(--surface); box-shadow: var(--shadow-sm);
}
.filter-group { display: flex; gap: 8px; flex-wrap: wrap; }
.filter-group select, .filter-group input { height: 38px; min-width: 145px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text); border-radius: 10px; padding: 0 11px; outline: 0; }
.segmented { display: inline-flex; padding: 3px; border: 1px solid var(--border); background: var(--surface); border-radius: 11px; }
.segmented button { border: 0; background: transparent; color: var(--muted); padding: 7px 11px; border-radius: 8px; }
.segmented button.active { background: var(--accent-soft); color: var(--accent); font-weight: 760; }
.badge { min-height: 24px; padding: 4px 8px; display: inline-flex; align-items: center; gap: 5px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface-2); color: var(--muted); font-size: 9px; font-weight: 760; white-space: nowrap; }
.badge.overdue { border-color: color-mix(in srgb, var(--danger) 25%, transparent); background: var(--danger-soft); color: var(--danger); }
.priority-low { color: #438e73; }
.priority-normal { color: var(--accent); }
.priority-high { color: #d2862d; }
.priority-critical { border-color: color-mix(in srgb, var(--danger) 25%, transparent); background: var(--danger-soft); color: var(--danger); }

.task-list { display: grid; gap: 9px; }
.task-row { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 11px; align-items: center; padding: 11px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface-solid); transition: .16s ease; }
.task-row:hover { border-color: color-mix(in srgb, var(--accent) 35%, var(--border)); transform: translateY(-1px); box-shadow: var(--shadow-sm); }
.task-check { width: 27px; height: 27px; display: grid; place-items: center; border: 1px solid var(--border-strong); border-radius: 9px; background: var(--surface-2); color: white; }
.task-check.completed { border-color: var(--success); background: linear-gradient(145deg, #3abc7f, var(--success)); }
.task-main { min-width: 0; }
.task-title { color: var(--text-strong); font-size: 12px; font-weight: 760; line-height: 1.35; }
.task-title.completed { color: var(--muted); text-decoration: line-through; }
.task-meta { margin-top: 5px; display: flex; align-items: center; flex-wrap: wrap; gap: 6px 9px; color: var(--muted); font-size: 9px; }
.task-actions { display: flex; align-items: center; gap: 5px; }
.phase-mini-actions { display: inline-flex; align-items: center; padding: 2px; border: 1px solid var(--border); border-radius: 9px; background: var(--surface-2); }
.phase-mini-actions .icon-action { width: 26px; height: 26px; border: 0; }

.table-shell { border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-sm); overflow: hidden; }
.tasks-table { width: 100%; border-collapse: collapse; }
.tasks-table th { height: 43px; padding: 0 13px; text-align: left; color: var(--muted-2); background: var(--surface-2); border-bottom: 1px solid var(--border); font-size: 9px; text-transform: uppercase; letter-spacing: .07em; }
.tasks-table td { padding: 12px 13px; border-bottom: 1px solid var(--border); background: transparent; font-size: 11px; }
.tasks-table tr:last-child td { border-bottom: 0; }
.tasks-table tbody tr { transition: background .14s ease; }
.tasks-table tbody tr:hover { background: var(--accent-faint); }
.status-quick-select { min-width: 118px; height: 34px; padding: 0 28px 0 10px; border-radius: 10px; background: var(--surface-2); font-size: 10px; font-weight: 700; }

.kanban { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(285px, 1fr); gap: 14px; overflow-x: auto; padding: 2px 2px 16px; scroll-snap-type: x proximity; }
.kanban::-webkit-scrollbar { height: 10px; }
.kanban::-webkit-scrollbar-thumb { background: var(--border-strong); border: 3px solid transparent; border-radius: 99px; background-clip: padding-box; }
.kanban-column { min-height: 575px; padding: 11px; border: 1px solid var(--border); border-radius: var(--radius); background: color-mix(in srgb, var(--surface-2) 88%, transparent); scroll-snap-align: start; transition: .16s ease; }
.kanban-column.drag-over { border-color: var(--accent); background: var(--accent-faint); box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--accent) 25%, transparent); transform: translateY(-2px); }
.kanban-header { min-height: 45px; padding: 2px 3px 10px; display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 11px; font-weight: 820; }
.kanban-header-main { display: flex; align-items: center; gap: 8px; }
.kanban-status-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 4px var(--accent-soft); }
.kanban-header-actions { display: flex; align-items: center; gap: 6px; }
.kanban-add { width: 25px; height: 25px; border: 1px solid var(--border); border-radius: 8px; background: var(--surface-solid); color: var(--muted); }
.kanban-count { min-width: 25px; height: 25px; padding: 0 7px; border-radius: 999px; display: grid; place-items: center; background: var(--surface-solid); border: 1px solid var(--border); color: var(--muted); font-size: 9px; }
.kanban-list { display: grid; align-content: start; gap: 9px; min-height: 510px; }
.kanban-card { position: relative; padding: 13px; border: 1px solid var(--border); border-radius: 15px; background: var(--surface-solid); box-shadow: 0 6px 19px rgba(28,37,59,.045); transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.kanban-card:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--accent) 30%, var(--border)); box-shadow: var(--shadow-sm); }
.kanban-card.dragging { opacity: .5; transform: rotate(1deg) scale(.98); }
.kanban-card[draggable="true"] { cursor: grab; }
.kanban-card-top { display: flex; justify-content: space-between; gap: 8px; align-items: center; margin-bottom: 8px; }
.drag-handle { color: var(--muted-2); font-size: 15px; letter-spacing: -3px; }
.kanban-card h4 { margin: 0; color: var(--text-strong); font-size: 12px; line-height: 1.4; }
.kanban-card p { margin: 7px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.kanban-card .task-meta { margin-top: 10px; }
.kanban-card-footer { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.card-phase-actions { display: flex; gap: 4px; }
.card-phase-actions button { width: 27px; height: 27px; padding: 0; border: 1px solid var(--border); border-radius: 8px; background: var(--surface-2); color: var(--muted); }
.card-phase-actions button:hover:not(:disabled) { color: var(--accent); border-color: color-mix(in srgb, var(--accent) 30%, var(--border)); }
.board-status-select { min-width: 110px; height: 29px; padding: 0 24px 0 8px; border-radius: 8px; font-size: 9px; }

.calendar-toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
.calendar-toolbar h2 { margin: 0; color: var(--text-strong); font-size: 18px; }
.calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; background: var(--border); gap: 1px; box-shadow: var(--shadow-sm); }
.calendar-head { padding: 11px; background: var(--surface-2); color: var(--muted); font-size: 9px; font-weight: 820; text-align: center; text-transform: uppercase; letter-spacing: .06em; }
.calendar-day { min-height: 132px; background: var(--surface-solid); padding: 9px; }
.calendar-day.outside { opacity: .5; }
.calendar-day.today { box-shadow: inset 0 0 0 2px var(--accent); }
.calendar-day-number { font-size: 10px; font-weight: 820; color: var(--muted); margin-bottom: 7px; }
.calendar-task { border-left: 3px solid var(--accent); background: var(--accent-soft); color: var(--text); border-radius: 7px; padding: 6px 7px; margin-bottom: 5px; font-size: 9px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.project-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 15px; }
.project-card { position: relative; overflow: hidden; min-height: 210px; padding: 18px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-sm); transition: .18s ease; }
.project-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--project-color, var(--accent)); }
.project-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.project-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.project-icon { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 13px; color: var(--project-color, var(--accent)); background: color-mix(in srgb, var(--project-color, var(--accent)) 12%, transparent); font-size: 18px; }
.project-card h3 { margin: 12px 0 0; color: var(--text-strong); font-size: 15px; }
.project-card p { margin: 7px 0 0; color: var(--muted); font-size: 10px; line-height: 1.55; min-height: 32px; }
.project-card-meta { margin-top: 13px; display: flex; flex-wrap: wrap; gap: 6px; }
.project-footer { display: flex; align-items: center; justify-content: space-between; margin-top: 14px; }
.project-progress-label { display: flex; justify-content: space-between; margin-top: 16px; color: var(--muted); font-size: 9px; }
.project-color { width: 11px; height: 11px; border-radius: 4px; display: inline-block; margin-right: 6px; }

.settings-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr); gap: 18px; }
.settings-section { padding: 19px; }
.settings-section h3 { margin: 0 0 6px; color: var(--text-strong); font-size: 14px; }
.settings-section > p { margin: 0 0 16px; color: var(--muted); font-size: 10px; line-height: 1.55; }
.setting-row { display: flex; justify-content: space-between; gap: 20px; align-items: center; padding: 14px 0; border-top: 1px solid var(--border); }
.setting-row:first-of-type { border-top: 0; }
.setting-row strong { display: block; font-size: 11px; }
.setting-row small { display: block; color: var(--muted); margin-top: 3px; font-size: 9px; line-height: 1.45; }
.setting-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.toggle { position: relative; width: 45px; height: 25px; flex: 0 0 auto; border-radius: 999px; background: var(--surface-3); border: 1px solid var(--border); }
.toggle::after { content: ""; position: absolute; width: 17px; height: 17px; border-radius: 50%; background: white; top: 3px; left: 3px; transition: .2s ease; box-shadow: 0 2px 7px rgba(0,0,0,.2); }
.toggle.active { background: var(--accent); border-color: var(--accent); }
.toggle.active::after { transform: translateX(20px); }

.modal-backdrop { position: fixed; inset: 0; z-index: 30; padding: 24px; display: grid; place-items: center; background: rgba(7, 11, 20, .68); backdrop-filter: blur(10px) saturate(120%); animation: backdrop-in .16s ease; }
.modal { width: min(960px, 96vw); max-height: 94vh; display: flex; flex-direction: column; overflow: hidden; border: 1px solid color-mix(in srgb, var(--border) 75%, white); border-radius: 24px; background: var(--surface-solid); box-shadow: var(--shadow-lg); animation: modal-in .2s ease; }
.project-modal { width: min(780px, 96vw); }
.modal-header { min-height: 79px; padding: 16px 20px; display: flex; justify-content: space-between; align-items: center; gap: 15px; border-bottom: 1px solid var(--border); background: linear-gradient(180deg, var(--surface-solid), var(--surface-2)); }
.modal-title-wrap { display: flex; align-items: center; gap: 12px; }
.modal-symbol { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; background: var(--accent-soft); color: var(--accent); font-size: 18px; font-weight: 850; }
.project-symbol { border-radius: 14px; }
.modal-header h2 { margin: 0; color: var(--text-strong); font-size: 20px; letter-spacing: -.025em; }
.eyebrow { margin: 0 0 3px; color: var(--accent); font-size: 8px; text-transform: uppercase; letter-spacing: .14em; font-weight: 850; }
.icon-close { width: 37px; height: 37px; border: 1px solid var(--border); border-radius: 11px; background: var(--surface-solid); color: var(--muted); font-size: 19px; transition: .15s ease; }
.icon-close:hover { color: var(--text); border-color: var(--border-strong); transform: rotate(3deg); }
.modal-body { padding: 18px 20px 24px; overflow: auto; display: grid; gap: 13px; }
.modal-footer { min-height: 68px; padding: 13px 20px; display: flex; justify-content: space-between; align-items: center; gap: 12px; border-top: 1px solid var(--border); background: var(--surface-2); }
.modal-footer-right { display: flex; gap: 8px; margin-left: auto; }
.modal-hint { display: flex; align-items: center; gap: 5px; color: var(--muted); font-size: 9px; }
.form-customizer { position: relative; padding: 12px 13px; display: flex; align-items: center; justify-content: space-between; gap: 15px; border: 1px solid color-mix(in srgb, var(--accent) 17%, var(--border)); border-radius: 14px; background: linear-gradient(135deg, var(--accent-faint), var(--surface-2)); }
.form-customizer strong { display: block; color: var(--text-strong); font-size: 10px; }
.form-customizer > div > span { display: block; margin-top: 3px; color: var(--muted); font-size: 9px; }
.form-customizer-actions { display: flex; align-items: center; gap: 8px; }
.preset-switch { display: inline-flex; padding: 3px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-solid); }
.preset-switch button { min-height: 28px; padding: 0 9px; border: 0; border-radius: 7px; background: transparent; color: var(--muted); font-size: 9px; font-weight: 750; }
.preset-switch button.active { background: var(--accent-soft); color: var(--accent); }
.field-picker { position: absolute; top: calc(100% + 8px); right: 0; z-index: 5; width: min(500px, 90vw); padding: 12px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; border: 1px solid var(--border); border-radius: 15px; background: var(--surface-solid); box-shadow: var(--shadow); }
.field-picker label { min-height: 36px; padding: 7px 8px; display: flex; align-items: center; gap: 7px; border: 1px solid var(--border); border-radius: 9px; background: var(--surface-2); cursor: pointer; }
.field-picker label:hover { border-color: color-mix(in srgb, var(--accent) 32%, var(--border)); }
.field-picker label > span { color: var(--text); font-size: 9px; font-weight: 680; }
.field-picker input { width: 15px; height: 15px; accent-color: var(--accent); }
.form-section { padding: 13px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface-2); }
.primary-form-section { padding: 14px; background: var(--surface-solid); }
.title-field input { height: 48px; font-size: 14px; font-weight: 680; background: var(--surface-solid); }
.field-heading { margin-bottom: 9px; display: flex; align-items: center; justify-content: space-between; }
.field-heading > span { color: var(--muted); font-size: 10px; font-weight: 820; }
.field-heading small { color: var(--muted-2); font-size: 8px; }
.phase-selector { display: flex; flex-wrap: wrap; gap: 6px; }
.phase-pill { min-height: 31px; padding: 0 10px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-solid); color: var(--muted); font-size: 9px; font-weight: 760; }
.phase-pill:hover { color: var(--text); border-color: var(--border-strong); }
.phase-pill.active { border-color: color-mix(in srgb, var(--accent) 35%, transparent); background: var(--accent-soft); color: var(--accent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 10%, transparent); }
label { display: grid; gap: 6px; }
label > span { color: var(--muted); font-size: 9px; font-weight: 820; }
input, textarea, select { width: 100%; border: 1px solid var(--border); background: var(--surface-solid); color: var(--text); border-radius: 10px; padding: 9px 10px; outline: none; transition: border-color .15s ease, box-shadow .15s ease, background .15s ease; }
input:hover, textarea:hover, select:hover { border-color: var(--border-strong); }
input:focus, textarea:focus, select:focus { border-color: color-mix(in srgb, var(--accent) 65%, var(--border)); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 9%, transparent); }
input::placeholder, textarea::placeholder { color: var(--muted-2); }
textarea { resize: vertical; line-height: 1.5; }
input[type="color"] { width: 48px; height: 37px; padding: 3px; }
.color-input-wrap { min-height: 44px; padding: 4px 10px 4px 4px; display: flex; align-items: center; gap: 9px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-solid); }
.color-input-wrap input { border: 0; }
.color-input-wrap span { color: var(--muted); font-size: 9px; }
.adaptive-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.span-two { grid-column: span 2; }
.split-editor { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.split-editor section { min-height: 135px; padding: 13px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface-2); }
.section-title-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; margin-bottom: 9px; }
.section-title-row h3 { margin: 0; color: var(--text-strong); font-size: 10px; }
.section-title-row small { display: block; margin-top: 2px; color: var(--muted); font-size: 8px; }
.inline-list { display: grid; gap: 7px; }
.inline-item { display: grid; grid-template-columns: 1fr 30px; gap: 7px; }
.inline-item input { background: var(--surface-solid); }
.remove-inline { border: 0; border-radius: 8px; background: transparent; color: var(--danger); }
.form-field-block.field-hidden { display: none !important; }

.empty-state { min-height: 180px; padding: 30px; display: grid; place-items: center; align-content: center; gap: 6px; border: 1px dashed var(--border-strong); border-radius: var(--radius); background: color-mix(in srgb, var(--surface) 74%, transparent); text-align: center; }
.empty-state::before { content: "✓"; width: 42px; height: 42px; margin-bottom: 6px; display: grid; place-items: center; border-radius: 14px; background: var(--accent-soft); color: var(--accent); font-weight: 850; }
.empty-state strong { color: var(--text-strong); font-size: 13px; }
.empty-state span { color: var(--muted); font-size: 10px; }
.toast-region { position: fixed; right: 20px; bottom: 20px; z-index: 50; display: grid; gap: 9px; }
.toast { min-width: 280px; max-width: 390px; padding: 13px 14px; border: 1px solid var(--border); border-left: 4px solid var(--accent); border-radius: 13px; background: var(--surface-solid); box-shadow: var(--shadow); animation: toast-in .22s ease; }
.toast.error { border-left-color: var(--danger); }
.toast.success { border-left-color: var(--success); }
.toast strong { display: block; color: var(--text-strong); font-size: 11px; }
.toast span { display: block; margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.45; }

.hidden { display: none !important; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.muted { color: var(--muted); }
.small { font-size: 9px; }
@keyframes backdrop-in { from { opacity: 0; } }
@keyframes modal-in { from { opacity: 0; transform: translateY(10px) scale(.985); } }
@keyframes toast-in { from { transform: translateY(9px); opacity: 0; } }

@media (max-width: 1180px) {
  .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-grid, .settings-grid { grid-template-columns: 1fr; }
  .search-wrap { min-width: 230px; }
  .adaptive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 880px) {
  :root { --sidebar-width: 88px; }
  .sidebar { padding-inline: 12px; }
  .brand { justify-content: center; padding-inline: 0; }
  .brand-copy, .sidebar-label, .nav-item > span:last-child, .storage-card, .version-chip { display: none; }
  .nav-item { justify-content: center; padding-inline: 0; }
  .nav-item:hover { transform: none; }
  .topbar { padding: 18px 21px; }
  .content { padding: 22px 21px 40px; }
  .field-picker { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .app-shell { display: block; }
  .sidebar { position: fixed; top: auto; bottom: 0; left: 0; right: 0; width: 100%; height: 68px; padding: 8px 10px; z-index: 20; }
  .brand, .sidebar-label, .sidebar-bottom { display: none; }
  .nav { display: grid; grid-template-columns: repeat(6, 1fr); gap: 3px; }
  .nav-item { padding: 5px 2px; border-radius: 10px; }
  .nav-icon { width: 31px; height: 31px; }
  .nav-item.active::before { left: 50%; right: auto; top: auto; bottom: -3px; width: 18px; height: 2px; transform: translateX(-50%); }
  .main-area { padding-bottom: 70px; }
  .topbar { position: static; min-height: 0; padding: 16px; flex-direction: column; align-items: stretch; }
  .topbar-actions { flex-wrap: wrap; }
  .search-wrap { order: 3; width: 100%; min-width: 0; }
  .search-wrap kbd { display: none; }
  .new-task-button { flex: 1; }
  .content { padding: 16px 16px 32px; }
  .stats-grid { grid-template-columns: 1fr; }
  .form-customizer { align-items: flex-start; flex-direction: column; }
  .form-customizer-actions { width: 100%; justify-content: space-between; }
  .preset-switch { flex: 1; }
  .preset-switch button { flex: 1; }
  .field-picker { left: 0; right: auto; width: 100%; grid-template-columns: 1fr 1fr; }
  .adaptive-grid, .split-editor { grid-template-columns: 1fr; }
  .span-two { grid-column: auto; }
  .modal-backdrop { padding: 0; align-items: end; }
  .modal { width: 100%; max-height: 96vh; border-radius: 22px 22px 0 0; }
  .modal-hint { display: none; }
  .tasks-table { min-width: 790px; }
  .table-shell { overflow-x: auto; }
  .calendar-grid { min-width: 760px; }
  .calendar-toolbar + .calendar-grid { overflow-x: auto; }
}
@media (max-width: 430px) {
  .page-kicker, .topbar #pageSubtitle { display: none; }
  .topbar h1 { font-size: 23px; }
  .field-picker { grid-template-columns: 1fr; }
  .modal-header { padding-inline: 15px; }
  .modal-body { padding-inline: 14px; }
  .modal-footer { padding-inline: 14px; }
  .modal-footer .btn { padding-inline: 12px; }
}

/* Präzise Breiten für kompakte Werkzeugleisten */
.filter-group select,
.filter-group input { width: auto; }

/* FocusTodo v0.3.0 – symmetrische Übersicht und frei verwaltbare Phasen */
.dashboard-grid-balanced {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
}
.dashboard-panel { min-width: 0; height: 100%; }
.dashboard-panel-body { min-height: 250px; }
.dashboard-summary-body { min-height: 250px; display: flex; flex-direction: column; justify-content: space-between; gap: 18px; }
.progress-summary { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; }
.progress-summary > div { display: grid; gap: 4px; }
.progress-summary strong { color: var(--text-strong); font-size: 38px; line-height: 1; letter-spacing: -.045em; }
.progress-summary span:not(.badge) { color: var(--muted); font-size: 10px; }
.dashboard-quick-actions { margin-top: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.toolbar-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }

.settings-grid-balanced { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.settings-span-full { grid-column: 1 / -1; }
.settings-section-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 15px; }
.settings-section-header h3 { margin-bottom: 6px; }
.settings-section-header p { margin: 0; max-width: 820px; color: var(--muted); font-size: 10px; line-height: 1.55; }
.connection-diagnostic { margin-bottom: 12px; padding: 11px 12px; display: flex; align-items: flex-start; gap: 10px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface-2); }
.connection-diagnostic > span { width: 24px; height: 24px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 8px; font-size: 11px; font-weight: 850; }
.connection-diagnostic strong { display: block; color: var(--text-strong); font-size: 10px; }
.connection-diagnostic small { display: block; margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.connection-diagnostic.ok { border-color: color-mix(in srgb, var(--success) 25%, var(--border)); background: var(--success-soft); }
.connection-diagnostic.ok > span { background: var(--success); color: white; }
.connection-diagnostic.warning { border-color: color-mix(in srgb, var(--warning) 30%, var(--border)); background: color-mix(in srgb, var(--warning) 9%, var(--surface-solid)); }
.connection-diagnostic.warning > span { background: var(--warning); color: white; }

.phase-manager-list { display: grid; gap: 9px; }
.phase-manager-row {
  display: grid;
  grid-template-columns: 34px 50px minmax(180px, 1fr) 86px 150px auto;
  align-items: center;
  gap: 10px;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface-solid);
  transition: border-color .16s ease, transform .16s ease, box-shadow .16s ease;
}
.phase-manager-row:hover { border-color: color-mix(in srgb, var(--accent) 28%, var(--border)); transform: translateY(-1px); box-shadow: var(--shadow-sm); }
.phase-order { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 9px; background: var(--surface-2); color: var(--muted); font-size: 9px; font-weight: 850; }
.phase-color-input { width: 44px !important; height: 38px !important; }
.phase-name-field { gap: 4px; }
.phase-name-field input { min-height: 38px; font-weight: 720; }
.phase-task-count { display: grid; justify-items: center; gap: 1px; color: var(--muted); }
.phase-task-count strong { color: var(--text-strong); font-size: 15px; }
.phase-task-count span { font-size: 8px; }
.phase-done-check { min-height: 38px; padding: 0 10px; grid-template-columns: 17px 1fr; align-items: center; gap: 8px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-2); cursor: pointer; }
.phase-done-check input { width: 16px; height: 16px; padding: 0; accent-color: var(--success); }
.phase-done-check span { color: var(--text); font-size: 9px; }
.phase-manager-actions { display: flex; justify-content: flex-end; gap: 3px; }
.danger-action { color: var(--danger); }
.danger-action:hover:not(:disabled) { color: white; border-color: var(--danger); background: var(--danger); }
.phase-manager-note { margin-top: 12px; padding: 10px 12px; border-radius: 11px; background: var(--surface-2); color: var(--muted); font-size: 9px; line-height: 1.5; }
.phase-manager-note strong { color: var(--text); }

.phase-pill { display: inline-flex; align-items: center; gap: 7px; }
.phase-pill-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--phase-color, var(--accent)); box-shadow: 0 0 0 3px color-mix(in srgb, var(--phase-color, var(--accent)) 14%, transparent); }
.phase-pill.active { border-color: color-mix(in srgb, var(--phase-color, var(--accent)) 38%, transparent); background: color-mix(in srgb, var(--phase-color, var(--accent)) 11%, var(--surface-solid)); color: var(--text-strong); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--phase-color, var(--accent)) 10%, transparent); }

@media (max-width: 1180px) {
  .dashboard-grid-balanced, .settings-grid-balanced { grid-template-columns: 1fr; }
  .settings-span-full { grid-column: auto; }
  .phase-manager-row { grid-template-columns: 34px 50px minmax(160px, 1fr) 80px 140px auto; }
}

@media (max-width: 820px) {
  .phase-manager-row { grid-template-columns: 34px 48px minmax(0, 1fr) auto; }
  .phase-task-count, .phase-done-check { grid-column: span 2; }
  .phase-manager-actions { grid-column: 4; grid-row: 1 / span 2; flex-direction: column; }
}

@media (max-width: 680px) {
  .dashboard-quick-actions { grid-template-columns: 1fr; }
  .dashboard-panel-body, .dashboard-summary-body { min-height: 0; }
  .settings-section-header { flex-direction: column; }
  .phase-manager-row { grid-template-columns: 32px 44px minmax(0, 1fr); }
  .phase-manager-actions { grid-column: 1 / -1; grid-row: auto; flex-direction: row; justify-content: flex-end; }
  .phase-task-count, .phase-done-check { grid-column: span 1; }
  .phase-done-check { grid-column: 2 / -1; }
}

/* FocusTodo v0.4.0 – Notizen, Sicherheitscenter und verschlüsselte Sicherungen */
.notes-toolbar > div { display: flex; align-items: center; gap: 10px; }
.notes-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(285px, 1fr)); gap: 16px; }
.note-card {
  position: relative; min-height: 235px; padding: 19px; overflow: hidden; cursor: pointer;
  border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-solid);
  box-shadow: var(--shadow-sm); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.note-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--note-color); }
.note-card::after { content: ""; position: absolute; right: -55px; top: -55px; width: 150px; height: 150px; border-radius: 50%; background: color-mix(in srgb, var(--note-color) 9%, transparent); pointer-events: none; }
.note-card:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--note-color) 35%, var(--border)); box-shadow: var(--shadow); }
.note-card.pinned { border-top-color: color-mix(in srgb, var(--note-color) 48%, var(--border)); }
.note-card-head { display: flex; align-items: center; gap: 8px; min-height: 32px; }
.note-card-head .icon-action { margin-left: auto; }
.note-color-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--note-color); box-shadow: 0 0 0 4px color-mix(in srgb, var(--note-color) 12%, transparent); }
.note-card h3 { margin: 15px 0 9px; color: var(--text-strong); font-size: 16px; letter-spacing: -.025em; }
.note-card p { margin: 0; min-height: 92px; color: var(--muted); font-size: 10px; line-height: 1.65; white-space: pre-line; }
.note-card footer { margin-top: 17px; padding-top: 12px; border-top: 1px solid var(--border); display: flex; justify-content: space-between; gap: 12px; color: var(--muted-2); font-size: 8px; }
.note-tags { margin-top: 13px; display: flex; flex-wrap: wrap; gap: 5px; }
.note-tags span { padding: 4px 7px; border-radius: 999px; background: color-mix(in srgb, var(--note-color) 10%, var(--surface-2)); color: var(--text); font-size: 8px; font-weight: 700; }
.note-modal { max-width: 790px; }
.note-symbol { background: color-mix(in srgb, var(--accent) 18%, var(--surface-2)); }
.check-setting { min-height: 58px; padding: 10px 12px; display: grid; grid-template-columns: 18px 1fr; align-items: center; gap: 10px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface-2); }
.check-setting input { width: 17px; height: 17px; padding: 0; accent-color: var(--accent); }
.check-setting strong, .check-setting small { display: block; }
.check-setting small { margin-top: 2px; color: var(--muted); font-size: 9px; }

.settings-layout { display: grid; grid-template-columns: 235px minmax(0, 1fr); gap: 18px; align-items: start; }
.settings-nav { position: sticky; top: 132px; padding: 10px; display: grid; gap: 5px; }
.settings-nav-title { padding: 9px 9px 14px; border-bottom: 1px solid var(--border); margin-bottom: 3px; }
.settings-nav-title strong { display: block; color: var(--text-strong); font-size: 11px; }
.settings-nav-title span { display: block; margin-top: 4px; color: var(--muted); font-size: 8px; line-height: 1.45; }
.settings-nav-item { width: 100%; min-height: 42px; padding: 7px 9px; border: 1px solid transparent; border-radius: 11px; display: grid; grid-template-columns: 28px 1fr; align-items: center; gap: 8px; text-align: left; color: var(--muted); background: transparent; }
.settings-nav-item > span { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 8px; background: var(--surface-2); }
.settings-nav-item strong { font-size: 9px; }
.settings-nav-item:hover { color: var(--text); background: var(--surface-2); }
.settings-nav-item.active { color: var(--accent); border-color: color-mix(in srgb, var(--accent) 18%, var(--border)); background: var(--accent-soft); }
.settings-nav-item.active > span { color: white; background: var(--accent); }
.settings-content { min-width: 0; }
.settings-group-card { min-height: 520px; }
.settings-group-heading { display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding-bottom: 18px; border-bottom: 1px solid var(--border); margin-bottom: 6px; }
.settings-group-heading > span:first-child { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 14px; color: var(--accent); background: var(--accent-soft); font-size: 19px; }
.settings-group-heading h2 { margin: 0; color: var(--text-strong); font-size: 18px; letter-spacing: -.03em; }
.settings-group-heading p { margin: 4px 0 0; color: var(--muted); font-size: 9px; }
.settings-subsection { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--border); }
.settings-subsection h3 { margin: 0 0 8px; color: var(--text-strong); font-size: 12px; }
.storage-mode-card { margin: 13px 0; padding: 14px; border: 1px solid var(--border); border-radius: 14px; display: flex; align-items: center; justify-content: space-between; gap: 15px; background: var(--surface-2); }
.storage-mode-card > div { display: flex; align-items: flex-start; gap: 10px; }
.storage-mode-card strong, .storage-mode-card small { display: block; }
.storage-mode-card strong { color: var(--text-strong); font-size: 10px; }
.storage-mode-card small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.storage-mode-card.folder-active { border-color: color-mix(in srgb, var(--success) 27%, var(--border)); background: var(--success-soft); }
.security-roadmap { margin: 14px 0; padding: 14px; border: 1px solid color-mix(in srgb, var(--success) 22%, var(--border)); border-radius: 14px; background: var(--success-soft); }
.security-roadmap strong, .security-roadmap span { display: block; }
.security-roadmap strong { color: var(--text-strong); font-size: 10px; }
.security-roadmap span { margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.55; }
.security-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 8px; }
.security-field-grid input:disabled { background: var(--surface-2); color: var(--muted); }

.security-modal { max-width: 570px; }
.security-symbol { color: white; background: linear-gradient(145deg, var(--accent), var(--accent-strong)); }
.security-notice { padding: 13px 14px; display: grid; gap: 4px; border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--border)); border-radius: 13px; background: var(--accent-soft); }
.security-notice strong { color: var(--text-strong); font-size: 10px; }
.security-notice span { color: var(--muted); font-size: 9px; line-height: 1.5; }
.security-notice.compact { margin-top: 13px; }
.field-label { display: block; margin-bottom: 8px; color: var(--text); font-size: 10px; font-weight: 720; }
.backup-targets { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.choice-card { min-height: 70px; padding: 11px; display: grid; grid-template-columns: 18px 1fr; align-items: center; gap: 9px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface-2); cursor: pointer; }
.choice-card:has(input:checked) { border-color: color-mix(in srgb, var(--accent) 42%, var(--border)); background: var(--accent-soft); }
.choice-card input { width: 16px; height: 16px; padding: 0; accent-color: var(--accent); }
.choice-card strong, .choice-card small { display: block; }
.choice-card strong { color: var(--text-strong); font-size: 10px; }
.choice-card small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.storage-lock { max-width: 650px; margin: 70px auto; padding: 42px; text-align: center; }
.storage-lock-icon { width: 66px; height: 66px; margin: 0 auto 16px; display: grid; place-items: center; border-radius: 20px; color: white; background: linear-gradient(145deg, var(--accent), var(--accent-strong)); font-size: 27px; box-shadow: 0 18px 40px color-mix(in srgb, var(--accent) 25%, transparent); }
.storage-lock h2 { margin: 0; color: var(--text-strong); font-size: 21px; }
.storage-lock p { max-width: 500px; margin: 10px auto 22px; color: var(--muted); font-size: 10px; line-height: 1.65; }
.storage-lock .btn { margin: 4px; }

@media (max-width: 980px) {
  .settings-layout { grid-template-columns: 1fr; }
  .settings-nav { position: static; display: flex; overflow-x: auto; }
  .settings-nav-title { display: none; }
  .settings-nav-item { min-width: 145px; }
}
@media (max-width: 680px) {
  .nav { grid-template-columns: repeat(7, 1fr); }
  .notes-grid { grid-template-columns: 1fr; }
  .settings-group-heading { grid-template-columns: 42px 1fr; }
  .settings-group-heading > .badge { grid-column: 2; justify-self: start; }
  .storage-mode-card { align-items: stretch; flex-direction: column; }
  .security-field-grid, .backup-targets { grid-template-columns: 1fr; }
}

/* Lenvado v0.5.0 – Server Edition */
.hidden { display: none !important; }
.muted { color: var(--muted); }
.row-button { border: 0; background: transparent; text-align: left; color: inherit; padding: 0; }
.danger { color: var(--danger) !important; }
.badge.success { color: var(--success); background: var(--success-soft); }

.brand-logo { background: rgba(255,255,255,.06); box-shadow: inset 0 0 0 1px rgba(255,255,255,.08), 0 12px 28px rgba(0,0,0,.16); }
.brand-logo img { width: 30px; height: 30px; object-fit: contain; }
.settings-logo-preview { width: 52px; height: 52px; object-fit: contain; }

.auth-screen { min-height: 100vh; display: grid; grid-template-columns: minmax(420px, 1.05fr) minmax(430px, .95fr); background: var(--bg); }
.auth-visual { position: relative; min-height: 100vh; padding: 48px clamp(42px, 6vw, 96px); overflow: hidden; color: white; display: flex; flex-direction: column; background: radial-gradient(circle at 25% 14%, color-mix(in srgb, var(--accent) 48%, transparent), transparent 25rem), radial-gradient(circle at 84% 78%, rgba(102, 80, 255, .28), transparent 27rem), linear-gradient(150deg, #0f1730, #080d18 72%); }
.auth-visual::before { content:""; position:absolute; inset:0; opacity:.2; background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px); background-size:42px 42px; mask-image:linear-gradient(to bottom,black,transparent 90%); }
.auth-visual::after { content:""; position:absolute; width:520px; height:520px; right:-220px; top:22%; border:1px solid rgba(255,255,255,.08); border-radius:50%; box-shadow:0 0 0 70px rgba(255,255,255,.025),0 0 0 140px rgba(255,255,255,.018); }
.auth-brand, .auth-message, .auth-version { position:relative; z-index:1; }
.auth-brand { display:flex; align-items:center; gap:14px; }
.auth-brand img { width:52px; height:52px; }
.auth-brand strong { display:block; font-size:22px; letter-spacing:-.04em; }
.auth-brand span { display:block; margin-top:3px; color:#93a1c4; font-size:11px; }
.auth-message { margin:auto 0; max-width:680px; }
.auth-kicker { color:#aab5ff; font-size:10px; font-weight:850; letter-spacing:.18em; }
.auth-message h1 { margin:18px 0 20px; font-size:clamp(43px,5vw,78px); line-height:.98; letter-spacing:-.065em; }
.auth-message > p { max-width:620px; margin:0; color:#aeb8d1; font-size:15px; line-height:1.75; }
.auth-feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:42px; }
.auth-feature-grid article { min-height:126px; padding:17px; display:flex; align-items:flex-start; gap:11px; border:1px solid rgba(255,255,255,.08); border-radius:17px; background:rgba(255,255,255,.045); backdrop-filter:blur(15px); }
.auth-feature-grid article > span { width:32px; height:32px; flex:0 0 auto; display:grid; place-items:center; border-radius:10px; background:rgba(255,255,255,.08); color:#c4cbff; }
.auth-feature-grid strong,.auth-feature-grid small { display:block; }
.auth-feature-grid strong { font-size:11px; }
.auth-feature-grid small { margin-top:5px; color:#93a0bd; font-size:9px; line-height:1.5; }
.auth-version { color:#64708f; font-size:9px; }
.auth-panel { min-height:100vh; padding:44px clamp(28px,5vw,78px); display:grid; place-items:center; background:radial-gradient(circle at 90% 12%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 22rem),var(--bg); }
.auth-card { width:min(510px,100%); padding:11px; border:1px solid var(--border); border-radius:28px; background:var(--surface); box-shadow:var(--shadow-lg); backdrop-filter:blur(20px); }
.auth-tabs { display:grid; grid-template-columns:1fr 1fr; gap:6px; padding:5px; border-radius:15px; background:var(--surface-2); }
.auth-tabs button { min-height:42px; border:0; border-radius:11px; color:var(--muted); background:transparent; font-size:11px; font-weight:780; }
.auth-tabs button.active { color:var(--text-strong); background:var(--surface-solid); box-shadow:var(--shadow-sm); }
.auth-form { padding:34px 28px 26px; display:grid; gap:15px; }
.auth-form-heading { margin-bottom:5px; }
.auth-form-heading > span { color:var(--accent); font-size:9px; font-weight:850; letter-spacing:.13em; text-transform:uppercase; }
.auth-form-heading h2 { margin:7px 0 6px; color:var(--text-strong); font-size:25px; letter-spacing:-.04em; }
.auth-form-heading p { margin:0; color:var(--muted); font-size:10px; line-height:1.6; }
.auth-form label { display:grid; gap:7px; }
.auth-form label > span { color:var(--text); font-size:10px; font-weight:720; }
.auth-submit { width:100%; min-height:47px; }
.auth-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.password-hint { margin-top:-5px; color:var(--muted); font-size:8px; line-height:1.5; }
.auth-consent { margin-top:2px; }
.auth-form .text-btn { justify-self:center; }

.sync-card .btn { margin-top:2px; }
.account-chip { position:relative; width:100%; padding:9px 10px; border:1px solid rgba(255,255,255,.08); border-radius:13px; display:grid; grid-template-columns:34px 1fr auto; align-items:center; gap:9px; color:#fff; text-align:left; background:rgba(255,255,255,.045); }
.account-chip:hover { background:rgba(255,255,255,.075); }
.account-avatar { width:34px; height:34px; display:grid; place-items:center; border-radius:11px; color:white; font-size:12px; font-weight:850; background:linear-gradient(145deg,var(--accent),var(--accent-strong)); }
.account-chip strong,.account-chip small { display:block; }
.account-chip strong { font-size:10px; }
.account-chip small { margin-top:2px; color:var(--sidebar-muted); font-size:8px; }
.account-menu { position:absolute; left:16px; right:16px; bottom:76px; z-index:30; padding:6px; border:1px solid rgba(255,255,255,.1); border-radius:13px; background:#151d33; box-shadow:0 18px 45px rgba(0,0,0,.35); }
.account-menu button { width:100%; padding:10px; border:0; border-radius:9px; color:#dce4f8; text-align:left; background:transparent; font-size:10px; }
.account-menu button:hover { background:rgba(255,255,255,.07); }

.quick-create-menu { position:absolute; right:32px; top:81px; z-index:30; width:270px; padding:8px; border:1px solid var(--border); border-radius:16px; background:var(--surface-solid); box-shadow:var(--shadow-lg); }
.quick-create-menu button { width:100%; padding:10px; border:0; border-radius:11px; display:grid; grid-template-columns:34px 1fr; gap:9px; text-align:left; color:var(--text); background:transparent; }
.quick-create-menu button:hover { background:var(--surface-2); }
.quick-create-menu button > span { width:34px; height:34px; display:grid; place-items:center; border-radius:10px; color:var(--accent); background:var(--accent-soft); }
.quick-create-menu strong,.quick-create-menu small { display:block; }
.quick-create-menu strong { font-size:10px; }
.quick-create-menu small { margin-top:2px; color:var(--muted); font-size:8px; }

.global-search-wrap { position:relative; }
.global-search-results { position:absolute; left:0; right:0; top:51px; z-index:40; max-height:min(640px,70vh); padding:8px; overflow:auto; border:1px solid var(--border); border-radius:17px; background:var(--surface-solid); box-shadow:var(--shadow-lg); }
.global-search-results section + section { margin-top:7px; padding-top:7px; border-top:1px solid var(--border); }
.global-search-results h4 { margin:4px 8px 5px; color:var(--muted); font-size:8px; letter-spacing:.12em; text-transform:uppercase; }
.global-search-results button { width:100%; padding:9px; border:0; border-radius:10px; display:grid; grid-template-columns:30px 1fr; gap:9px; text-align:left; color:var(--text); background:transparent; }
.global-search-results button:hover { background:var(--surface-2); }
.global-search-results button > span { width:30px; height:30px; display:grid; place-items:center; border-radius:9px; color:var(--accent); background:var(--accent-soft); }
.global-search-results strong,.global-search-results small { display:block; }
.global-search-results strong { font-size:10px; }
.global-search-results small { margin-top:2px; overflow:hidden; color:var(--muted); font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
.global-search-empty { padding:24px 15px; text-align:center; }
.global-search-empty strong,.global-search-empty span { display:block; }
.global-search-empty strong { color:var(--text-strong); font-size:11px; }
.global-search-empty span { margin-top:5px; color:var(--muted); font-size:9px; line-height:1.5; }

.sync-banner { margin:14px 32px 0; padding:12px 14px; border:1px solid color-mix(in srgb,var(--warning) 35%,var(--border)); border-radius:14px; display:flex; align-items:center; gap:12px; background:color-mix(in srgb,var(--warning) 10%,var(--surface-solid)); box-shadow:var(--shadow-sm); }
.sync-banner strong { color:var(--text-strong); font-size:10px; }
.sync-banner > span { flex:1; color:var(--muted); font-size:9px; }
.sync-banner > div { display:flex; gap:7px; }
.status-dot.saving { background:var(--accent); animation:pulse 1s infinite; }
.status-dot.offline,.status-dot.conflict { background:var(--danger); }
@keyframes pulse { 50% { opacity:.45; transform:scale(.8); } }

.dashboard-toolbar { margin-bottom:12px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.dashboard-widget-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px; align-items:start; }
.dashboard-widget { position:relative; min-width:0; overflow:visible; }
.dashboard-widget.widget-full { grid-column:1/-1; }
.dashboard-widget.widget-half { grid-column:span 1; }
.dashboard-widget.is-editing,.dashboard-widget-grid.is-editing .dashboard-widget { cursor:grab; }
.widget-drag-handle { position:absolute; right:14px; top:12px; z-index:2; color:var(--muted); font-size:15px; letter-spacing:-3px; cursor:grab; }
.dashboard-widget.dragging { opacity:.45; }
.dashboard-widget.drag-over { outline:2px dashed var(--accent); outline-offset:4px; }
.widget-stats { padding:0; border:0; background:transparent; box-shadow:none; }
.dashboard-stats { margin:0; }
.dashboard-config-panel { margin-bottom:17px; }
.dashboard-config-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.dashboard-config-item { padding:10px; border:1px solid var(--border); border-radius:13px; display:grid; grid-template-columns:minmax(0,1fr) 135px auto; align-items:center; gap:9px; background:var(--surface-2); }
.dashboard-config-item .check-setting { padding:0; min-height:0; border:0; background:transparent; }
.note-mini-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.note-mini { position:relative; min-height:100px; padding:12px; border:1px solid var(--border); border-radius:12px; overflow:hidden; text-align:left; color:var(--text); background:var(--surface-2); }
.note-mini::before { content:""; position:absolute; inset:0 auto 0 0; width:3px; background:var(--note-color); }
.note-mini strong,.note-mini span { display:block; }
.note-mini strong { font-size:10px; }
.note-mini span { margin-top:6px; color:var(--muted); font-size:8px; line-height:1.5; }
.metric-bars { display:grid; gap:10px; }
.metric-bar { display:grid; grid-template-columns:110px minmax(0,1fr) 28px; align-items:center; gap:9px; }
.metric-bar > span { overflow:hidden; color:var(--muted); font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.metric-bar > div { height:7px; overflow:hidden; border-radius:99px; background:var(--surface-3); }
.metric-bar i { display:block; height:100%; min-width:2px; border-radius:99px; background:var(--accent); }
.metric-bar strong { color:var(--text-strong); font-size:10px; text-align:right; }
.project-dot { width:11px; height:11px; border-radius:4px; }

.workflow-board-section + .workflow-board-section { margin-top:28px; padding-top:28px; border-top:1px solid var(--border); }
.workflow-board-heading { margin-bottom:13px; display:flex; justify-content:space-between; align-items:end; }
.workflow-board-heading h2 { margin:4px 0 0; color:var(--text-strong); font-size:17px; }
.kanban-board { display:grid; grid-template-columns:repeat(var(--phase-count),minmax(250px,1fr)); gap:12px; overflow-x:auto; padding-bottom:8px; }
.kanban-column { min-height:390px; padding:10px; border:1px solid var(--border); border-radius:16px; background:color-mix(in srgb,var(--surface-2) 72%,transparent); transition:.16s ease; }
.kanban-column.drop-target { border-color:var(--accent); background:var(--accent-faint); box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 15%,transparent); }
.kanban-column-header { padding:3px 2px 10px; display:flex; align-items:center; justify-content:space-between; }
.kanban-column-header > div { display:flex; align-items:center; gap:7px; }
.phase-dot { width:8px; height:8px; border-radius:50%; }
.count-badge { padding:3px 6px; border-radius:999px; color:var(--muted); background:var(--surface-3); font-size:8px; }
.count-badge.limit-reached { color:var(--danger); background:var(--danger-soft); }
.kanban-cards { display:grid; gap:8px; }
.kanban-card { padding:12px; border:1px solid var(--border); border-radius:13px; background:var(--surface-solid); box-shadow:var(--shadow-sm); }
.kanban-card.dragging { opacity:.45; }
.kanban-card-top,.kanban-card-footer { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.kanban-card-title { width:100%; margin:10px 0; padding:0; border:0; color:var(--text-strong); text-align:left; background:transparent; font-size:11px; font-weight:760; line-height:1.4; }
.kanban-project { display:flex; align-items:center; gap:6px; color:var(--muted); font-size:8px; }
.kanban-project i { width:7px; height:7px; border-radius:3px; }
.kanban-empty { padding:25px 8px; border:1px dashed var(--border); border-radius:11px; color:var(--muted-2); text-align:center; font-size:8px; }

.note-card { display:flex; flex-direction:column; }
.note-card-top,.note-card-footer { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.note-card-body { flex:1; padding:0; border:0; text-align:left; color:inherit; background:transparent; }
.note-card-body h3 { margin:15px 0 9px; }
.note-card-footer { margin-top:17px; padding-top:12px; border-top:1px solid var(--border); }
.note-card-footer small { color:var(--muted-2); font-size:8px; }

.project-card-main { width:100%; padding:0; border:0; text-align:left; color:inherit; background:transparent; }
.project-meta { margin:14px 0 9px; display:flex; justify-content:space-between; gap:10px; color:var(--muted); font-size:8px; }
.project-pill { display:inline-flex; align-items:center; gap:6px; }
.project-pill i { width:8px; height:8px; border-radius:3px; }

.template-sections { display:grid; gap:26px; }
.template-section .section-heading { margin-bottom:10px; display:flex; align-items:center; gap:8px; }
.template-section .section-heading h2 { margin:0; color:var(--text-strong); font-size:15px; }
.template-section .section-heading span { width:23px; height:23px; display:grid; place-items:center; border-radius:8px; color:var(--accent); background:var(--accent-soft); font-size:9px; font-weight:800; }
.template-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:12px; }
.template-card { padding:15px; border:1px solid var(--border); border-radius:16px; display:grid; grid-template-columns:42px 1fr; gap:11px; background:var(--surface-solid); box-shadow:var(--shadow-sm); }
.template-type-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:13px; color:var(--accent); background:var(--accent-soft); font-size:16px; }
.template-card h3 { margin:2px 0 5px; color:var(--text-strong); font-size:12px; }
.template-card p { margin:0; min-height:30px; color:var(--muted); font-size:9px; line-height:1.5; }
.template-card small { color:var(--muted-2); font-size:8px; }
.template-actions { grid-column:1/-1; display:flex; align-items:center; justify-content:flex-end; gap:6px; padding-top:8px; border-top:1px solid var(--border); }
.template-payload-editor { padding-top:12px; border-top:1px solid var(--border); }

.activity-list { display:grid; gap:2px; }
.activity-item { min-height:55px; padding:9px 4px; display:grid; grid-template-columns:34px 1fr auto; align-items:center; gap:10px; border-bottom:1px solid var(--border); }
.activity-item:last-child { border-bottom:0; }
.activity-icon { width:34px; height:34px; display:grid; place-items:center; border-radius:11px; color:var(--accent); background:var(--accent-soft); }
.activity-item strong,.activity-item small { display:block; }
.activity-item strong { color:var(--text-strong); font-size:10px; }
.activity-item small { margin-top:3px; color:var(--muted); font-size:8px; }

.trash-list { display:grid; gap:9px; }
.trash-item { min-height:70px; padding:12px 14px; border:1px solid var(--border); border-radius:14px; display:grid; grid-template-columns:40px 1fr auto; align-items:center; gap:11px; background:var(--surface-solid); box-shadow:var(--shadow-sm); }
.trash-type-icon { width:40px; height:40px; display:grid; place-items:center; border-radius:12px; color:var(--danger); background:var(--danger-soft); }
.trash-item strong,.trash-item small { display:block; }
.trash-item strong { font-size:11px; }
.trash-item small { margin-top:3px; color:var(--muted); font-size:8px; }
.trash-item > div:last-child { display:flex; gap:7px; }

.settings-layout-top { display:block; }
.settings-nav-top { position:sticky; top:104px; z-index:6; margin:-10px 0 18px; padding:9px; display:flex; gap:7px; overflow-x:auto; border:1px solid var(--border); border-radius:17px; background:color-mix(in srgb,var(--bg) 82%,transparent); box-shadow:var(--shadow-sm); backdrop-filter:blur(18px); }
.settings-nav-top .settings-nav-item { min-width:145px; min-height:54px; padding:8px 11px; grid-template-columns:32px 1fr; flex:0 0 auto; }
.settings-nav-top .settings-nav-item > span { width:32px; height:32px; }
.settings-nav-top .settings-nav-item strong { font-size:9px; }
.settings-content { max-width:1280px; }
.settings-form { display:grid; gap:12px; }
.settings-dashboard-list { margin-top:14px; }
.tag-list.large span { padding:6px 9px; }
.danger-zone { border-top-color:color-mix(in srgb,var(--danger) 25%,var(--border)); }

.workflow-tabs { display:flex; gap:7px; overflow-x:auto; padding:8px 0 13px; }
.workflow-tabs button { min-width:135px; min-height:48px; padding:8px 11px; border:1px solid var(--border); border-radius:12px; text-align:left; color:var(--muted); background:var(--surface-2); }
.workflow-tabs button.active { color:var(--accent); border-color:color-mix(in srgb,var(--accent) 35%,var(--border)); background:var(--accent-soft); }
.workflow-tabs span,.workflow-tabs small { display:block; }
.workflow-tabs span { font-size:10px; font-weight:760; }
.workflow-tabs small { margin-top:2px; font-size:7px; }
.workflow-meta-grid { display:grid; grid-template-columns:minmax(250px,1fr) minmax(260px,1fr) auto; align-items:end; gap:10px; }
.workflow-meta-actions { display:flex; gap:7px; }
.workflow-assignment { margin:12px 0; padding:11px 13px; border:1px solid var(--border); border-radius:12px; background:var(--surface-2); }
.workflow-assignment strong,.workflow-assignment span { display:block; }
.workflow-assignment strong { font-size:9px; }
.workflow-assignment span { margin-top:4px; color:var(--muted); font-size:8px; line-height:1.5; }
.phase-manager-header { margin:20px 0 9px; display:flex; justify-content:space-between; align-items:end; }
.phase-manager-header h3 { margin:0; color:var(--text-strong); font-size:13px; }
.phase-manager-header p { margin:4px 0 0; color:var(--muted); font-size:8px; }
.phase-manager { display:grid; gap:8px; }
.phase-manager-row { grid-template-columns:26px 46px 46px minmax(145px,1fr) 92px 92px 92px minmax(150px,.8fr) auto; }
.phase-drag-handle { color:var(--muted); cursor:grab; }
.phase-icon-input { width:44px !important; text-align:center; font-size:15px; }
.phase-limit-field { gap:4px; }
.phase-limit-field input { min-height:38px; }
.mini-check { min-height:38px; padding:6px 8px; border:1px solid var(--border); border-radius:10px; display:flex; align-items:center; gap:6px; background:var(--surface-2); }
.mini-check input { width:15px; height:15px; padding:0; accent-color:var(--accent); }
.mini-check span { font-size:8px; }
.phase-project-visibility { position:relative; }
.phase-project-visibility summary { min-height:38px; padding:10px; border:1px solid var(--border); border-radius:10px; color:var(--muted); background:var(--surface-2); font-size:8px; cursor:pointer; }
.phase-project-visibility > div { position:absolute; right:0; top:43px; z-index:8; min-width:210px; max-height:220px; padding:8px; overflow:auto; border:1px solid var(--border); border-radius:12px; background:var(--surface-solid); box-shadow:var(--shadow); }
.phase-project-visibility label { padding:6px; display:flex; align-items:center; gap:7px; font-size:8px; }
.phase-project-visibility input { width:14px; height:14px; padding:0; }
.phase-row-actions { display:flex; gap:4px; }
.phase-manager-row.drag-over { border-color:var(--accent); box-shadow:inset 0 0 0 2px var(--accent-soft); }

.security-summary-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin:14px 0; }
.security-summary-grid article { padding:12px; border:1px solid var(--border); border-radius:13px; display:flex; gap:10px; background:var(--surface-2); }
.security-summary-grid article > span { width:34px; height:34px; flex:0 0 auto; display:grid; place-items:center; border-radius:10px; color:var(--accent); background:var(--accent-soft); }
.security-summary-grid strong,.security-summary-grid small { display:block; }
.security-summary-grid strong { font-size:9px; }
.security-summary-grid small { margin-top:3px; color:var(--muted); font-size:8px; line-height:1.4; }
.security-list { display:grid; gap:7px; }
.security-list article { min-height:55px; padding:10px 11px; border:1px solid var(--border); border-radius:12px; display:flex; align-items:center; justify-content:space-between; gap:10px; background:var(--surface-2); }
.security-list strong,.security-list small { display:block; }
.security-list strong { color:var(--text-strong); font-size:9px; }
.security-list small { margin-top:3px; color:var(--muted); font-size:8px; }
.security-list.compact article { min-height:48px; }
.empty-inline { padding:14px; color:var(--muted); text-align:center; font-size:8px; }
.status-indicator { width:9px; height:9px; border-radius:50%; }
.status-indicator.success { background:var(--success); }
.status-indicator.error { background:var(--danger); }
.security-action-modal { max-width:610px; }
.security-action-form { display:grid; gap:12px; }
.security-notice.danger { border-color:color-mix(in srgb,var(--danger) 28%,var(--border)); background:var(--danger-soft); }
.twofa-setup { display:grid; justify-items:center; gap:13px; }
.twofa-qr { width:240px; max-width:100%; border-radius:15px; background:white; box-shadow:var(--shadow); }
.secret-code { width:100%; display:grid; gap:5px; }
.secret-code span { color:var(--muted); font-size:8px; }
.secret-code code { padding:10px; overflow-wrap:anywhere; border:1px solid var(--border); border-radius:10px; color:var(--text-strong); background:var(--surface-2); font-size:9px; }
.twofa-setup form { width:100%; display:grid; gap:10px; }
.recovery-code-panel { display:grid; gap:14px; }
.recovery-codes { display:grid; grid-template-columns:repeat(2,1fr); gap:7px; }
.recovery-codes code { padding:9px; border:1px solid var(--border); border-radius:9px; text-align:center; color:var(--text-strong); background:var(--surface-2); font-size:9px; }

.inline-item { grid-template-columns:28px 1fr 30px; }
.inline-done { width:28px; height:28px; border:0; border-radius:9px; color:var(--muted); background:var(--surface-2); }
.inline-done.active { color:white; background:var(--success); }
.modal-footer-left { display:flex; align-items:center; gap:7px; }

.toast { grid-template-columns:34px 1fr auto auto; }
.toast .text-btn { align-self:center; }
.overdue-text { color:var(--danger); }
.priority-critical { background:var(--danger) !important; }
.priority-high { background:var(--warning) !important; }
.priority-normal { background:var(--accent) !important; }
.priority-low { background:var(--success) !important; }

@media (max-width: 1250px) {
  .phase-manager-row { grid-template-columns:26px 42px 42px minmax(140px,1fr) 82px 86px 86px auto; }
  .phase-project-visibility { grid-column:4 / 8; }
  .phase-row-actions { grid-column:8; grid-row:1 / span 2; flex-direction:column; }
  .auth-feature-grid { grid-template-columns:1fr; }
  .auth-feature-grid article { min-height:0; }
}

@media (max-width: 980px) {
  .auth-screen { grid-template-columns:1fr; }
  .auth-visual { min-height:420px; padding:32px; }
  .auth-message { margin:65px 0 40px; }
  .auth-message h1 { font-size:48px; }
  .auth-feature-grid { display:none; }
  .auth-panel { min-height:auto; padding:28px 18px 48px; }
  .settings-nav-top { top:0; }
  .dashboard-widget-grid { grid-template-columns:1fr; }
  .dashboard-widget.widget-half,.dashboard-widget.widget-full { grid-column:1; }
  .workflow-meta-grid { grid-template-columns:1fr; align-items:stretch; }
  .security-summary-grid { grid-template-columns:1fr; }
}

@media (max-width: 760px) {
  .sidebar { overflow-x:auto; }
  .nav { display:flex; min-width:max-content; }
  .nav-item { width:68px; min-width:68px; flex-direction:column; gap:2px; font-size:7px; text-align:center; }
  .nav-item span:last-child { display:block; }
  .topbar-actions { position:relative; }
  .quick-create-menu { right:0; top:52px; }
  .settings-nav-top .settings-nav-item { min-width:125px; }
  .dashboard-config-grid,.dashboard-config-item { grid-template-columns:1fr; }
  .note-mini-grid { grid-template-columns:1fr; }
  .metric-bar { grid-template-columns:90px 1fr 24px; }
  .phase-manager-row { grid-template-columns:24px 40px 40px minmax(120px,1fr); }
  .phase-limit-field,.mini-check,.phase-project-visibility { grid-column:2 / -1; }
  .phase-row-actions { grid-column:1 / -1; grid-row:auto; flex-direction:row; justify-content:flex-end; }
  .auth-grid,.recovery-codes { grid-template-columns:1fr; }
  .trash-item { grid-template-columns:40px 1fr; }
  .trash-item > div:last-child { grid-column:1/-1; justify-content:flex-end; }
  .sync-banner { margin-inline:16px; align-items:flex-start; flex-direction:column; }
  .sync-banner > div { width:100%; }
}


.test-mode-chip {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--accent) 32%, var(--border));
  background: color-mix(in srgb, var(--accent) 10%, var(--panel));
  color: var(--accent-strong);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .02em;
  white-space: nowrap;
}

button:disabled,
.btn:disabled {
  cursor: not-allowed;
  opacity: .55;
}

@media (max-width: 1180px) {
  .test-mode-chip { display: none; }
}

/* =========================================================
   Lenvado v0.5.2 – Layout refinement
   ========================================================= */

/* Einstellungen: kompakte Navigation ohne horizontales Scrollen */
.settings-nav-top {
  position: sticky;
  top: 104px;
  z-index: 6;
  margin: -8px 0 20px;
  padding: 8px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(104px, 1fr));
  gap: 6px;
  overflow: visible;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: color-mix(in srgb, var(--bg) 84%, transparent);
  box-shadow: var(--shadow-sm);
  backdrop-filter: blur(18px);
}
.settings-nav-top .settings-nav-item {
  width: 100%;
  min-width: 0;
  min-height: 43px;
  padding: 6px 8px;
  grid-template-columns: 26px minmax(0, 1fr);
  gap: 7px;
  flex: initial;
  border-radius: 10px;
}
.settings-nav-top .settings-nav-item > span {
  width: 26px;
  height: 26px;
  border-radius: 8px;
  font-size: 12px;
}
.settings-nav-top .settings-nav-item strong {
  overflow: hidden;
  font-size: 8px;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: normal;
}
.settings-content { width: 100%; max-width: none; }
.settings-group-card {
  min-height: 0;
  padding: 26px 28px 30px;
  overflow: visible;
}
.settings-group-heading { margin-bottom: 8px; padding: 0 0 20px; }
.setting-row { min-height: 72px; padding: 17px 4px; }
.setting-row > :last-child { margin-right: 2px; }
.setting-row select,
.setting-row input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
.setting-row .btn { flex: 0 0 auto; }
.settings-subsection { margin-top: 24px; padding: 22px 4px 0; }
.settings-form,
.settings-dashboard-list,
.dashboard-config-grid { margin-inline: 2px; }

/* Projekte: größere, ruhiger aufgebaute Karten */
.project-grid { grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); gap: 20px; }
.project-card {
  min-height: 282px;
  padding: 24px;
  border-radius: 21px;
  display: flex;
  flex-direction: column;
}
.project-card::before { height: 5px; }
.project-card-header { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.project-card-actions { display: flex; align-items: center; gap: 6px; }
.project-card .project-icon { width: 49px; height: 49px; border-radius: 15px; font-size: 21px; }
.project-card-main { margin-top: 17px; }
.project-card h3 { margin: 0; font-size: 18px; line-height: 1.25; }
.project-card p { margin: 9px 0 0; min-height: 52px; max-width: 95%; font-size: 11px; line-height: 1.65; }
.project-meta {
  margin: 18px 0 12px;
  padding: 11px 12px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface-2);
  font-size: 9px;
}
.project-card .progress-line { height: 8px; margin-top: auto; }
.project-card-footer {
  margin-top: 13px;
  padding-top: 13px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-top: 1px solid var(--border);
  color: var(--muted);
  font-size: 9px;
}

/* Kalender: klare Monatsnavigation und zeitliche Abstufung */
.calendar-toolbar {
  min-height: 72px;
  margin-bottom: 14px;
  padding: 12px 14px 12px 18px;
  border: 1px solid var(--border);
  border-radius: 17px;
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}
.calendar-title h2 { margin: 3px 0 0; font-size: 21px; text-transform: capitalize; }
.calendar-controls { display: flex; align-items: center; gap: 7px; }
.calendar-arrow { min-width: 38px; padding-inline: 10px; font-size: 15px; }
.calendar-shell {
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 20px;
  background: var(--surface-solid);
  box-shadow: var(--shadow-sm);
}
.calendar-weekdays {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  border-bottom: 1px solid var(--border);
  background: var(--surface-2);
}
.calendar-weekdays span {
  min-height: 54px;
  padding: 9px 8px;
  display: grid;
  place-content: center;
  text-align: center;
  border-right: 1px solid var(--border);
}
.calendar-weekdays span:last-child { border-right: 0; }
.calendar-weekdays strong,
.calendar-weekdays small { display: block; }
.calendar-weekdays strong { color: var(--text-strong); font-size: 10px; }
.calendar-weekdays small { margin-top: 2px; color: var(--muted-2); font-size: 8px; }
.calendar-weekdays .weekend { background: color-mix(in srgb, var(--surface-3) 62%, transparent); }
.calendar-grid {
  grid-template-columns: repeat(7, minmax(0, 1fr));
  border: 0;
  border-radius: 0;
  box-shadow: none;
  gap: 1px;
  background: var(--border);
}
.calendar-day {
  position: relative;
  min-height: 142px;
  padding: 10px;
  background: var(--surface-solid);
  transition: background .16s ease, box-shadow .16s ease, opacity .16s ease;
}
.calendar-day:hover {
  z-index: 1;
  background: var(--accent-faint);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 25%, var(--border));
}
.calendar-day.past { background: color-mix(in srgb, var(--surface-2) 82%, var(--surface-solid)); }
.calendar-day.past .calendar-day-number,
.calendar-day.past .calendar-day-tasks { opacity: .62; }
.calendar-day.future { background: var(--surface-solid); }
.calendar-day.weekend.future { background: color-mix(in srgb, var(--surface-2) 45%, var(--surface-solid)); }
.calendar-day.outside { opacity: .48; background: var(--surface-3); }
.calendar-day.today {
  z-index: 2;
  background: var(--accent-faint);
  box-shadow: inset 0 0 0 2px var(--accent);
}
.calendar-day.today .calendar-day-number {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  color: white;
  background: var(--accent);
  box-shadow: 0 6px 14px color-mix(in srgb, var(--accent) 24%, transparent);
}
.calendar-day-top {
  min-height: 30px;
  margin-bottom: 7px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 7px;
}
.calendar-day-number { margin: 0; color: var(--text-strong); font-size: 11px; }
.calendar-today-label {
  padding: 3px 6px;
  border-radius: 999px;
  color: var(--accent);
  background: var(--accent-soft);
  font-size: 7px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.calendar-day-tasks { display: grid; gap: 5px; }
.calendar-day-tasks button {
  width: 100%;
  min-width: 0;
  padding: 6px 7px;
  overflow: hidden;
  border: 0;
  border-left: 3px solid var(--task-color, var(--accent));
  border-radius: 7px;
  color: var(--text);
  background: color-mix(in srgb, var(--task-color, var(--accent)) 11%, var(--surface-solid));
  font-size: 8px;
  line-height: 1.25;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.calendar-day-tasks button:hover { background: color-mix(in srgb, var(--task-color, var(--accent)) 18%, var(--surface-solid)); }
.calendar-day-tasks small { padding-left: 5px; color: var(--muted); font-size: 7px; }

/* Board: großzügige Phasen und Ziehen der gesamten Fläche */
.board-pan-hint {
  padding: 7px 10px;
  border: 1px solid var(--border);
  border-radius: 10px;
  color: var(--muted);
  background: var(--surface-2);
  font-size: 8px;
  white-space: nowrap;
}
.workflow-board-section { min-width: 0; }
.workflow-board-heading { margin-bottom: 15px; }
.kanban-board {
  position: relative;
  display: grid;
  grid-template-columns: none;
  grid-auto-flow: column;
  grid-auto-columns: minmax(350px, 390px);
  align-items: start;
  gap: 16px;
  max-width: 100%;
  padding: 4px 4px 16px;
  overflow-x: auto;
  overflow-y: hidden;
  cursor: grab;
  scroll-behavior: smooth;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
  scrollbar-color: var(--border-strong) transparent;
  user-select: none;
}
.kanban-board.is-panning { cursor: grabbing; scroll-behavior: auto; scroll-snap-type: none; }
.kanban-board::-webkit-scrollbar { height: 9px; }
.kanban-board::-webkit-scrollbar-track { background: transparent; }
.kanban-board::-webkit-scrollbar-thumb {
  border: 2px solid transparent;
  border-radius: 99px;
  background: var(--border-strong);
  background-clip: padding-box;
}
.kanban-column {
  min-height: 560px;
  padding: 14px;
  border-radius: 19px;
  scroll-snap-align: start;
  user-select: text;
}
.kanban-column-header { min-height: 50px; padding: 3px 3px 13px; }
.kanban-column-header strong { font-size: 11px; }
.kanban-cards { gap: 10px; }
.kanban-card { padding: 15px; border-radius: 15px; }
.kanban-card-title { margin: 12px 0; font-size: 12px; line-height: 1.5; }
.kanban-project { font-size: 9px; }
.kanban-empty { padding: 34px 10px; font-size: 9px; }

@media (max-width: 1250px) {
  .settings-nav-top { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .project-grid { grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); }
}
@media (max-width: 980px) {
  .settings-nav-top { position: static; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .settings-group-card { padding: 22px; }
  .calendar-day { min-height: 126px; }
  .calendar-weekdays small { display: none; }
  .kanban-board { grid-auto-columns: minmax(325px, 360px); }
  .board-pan-hint { display: none; }
}
@media (max-width: 760px) {
  .settings-nav-top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .settings-nav-top .settings-nav-item { min-width: 0; }
  .settings-group-card { padding: 18px 16px 22px; }
  .setting-row { align-items: flex-start; flex-direction: column; gap: 10px; }
  .setting-row > :last-child { width: 100%; margin-right: 0; }
  .project-grid { grid-template-columns: 1fr; }
  .project-card { min-height: 260px; padding: 21px; }
  .calendar-toolbar { align-items: flex-start; flex-direction: column; gap: 12px; }
  .calendar-controls { width: 100%; }
  .calendar-controls .btn:nth-child(2) { flex: 1; }
  .calendar-shell { overflow-x: auto; }
  .calendar-weekdays,
  .calendar-grid { min-width: 760px; }
  .kanban-board { grid-auto-columns: minmax(300px, calc(100vw - 78px)); }
}


/* =========================================================
   Lenvado v0.5.3 – spacing, settings, dashboard and calendar
   ========================================================= */

:root { --page-gutter: clamp(24px, 2.6vw, 46px); }

/* Einheitliche Seiten- und Kartenabstände */
.topbar { padding-inline: var(--page-gutter); }
.content { padding: 34px var(--page-gutter) 58px; }
.toolbar { padding: 12px 14px; margin-bottom: 20px; }
.panel { border-radius: 21px; }
.panel-header { min-height: 66px; padding: 17px 21px; }
.panel-header h2, .panel-header h3 { font-size: 15px; }
.panel-body { padding: 20px; }
.task-row { padding: 14px; }
.notes-grid, .project-grid, .template-grid { gap: 20px; }
.empty-state { padding: 34px 24px; }

/* Größere und besser lesbare Einstellungen */
.settings-nav-top {
  grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
  gap: 8px;
  padding: 10px;
  margin-bottom: 24px;
}
.settings-nav-top .settings-nav-item {
  min-height: 54px;
  padding: 9px 11px;
  grid-template-columns: 31px minmax(0, 1fr);
  gap: 9px;
  border-radius: 12px;
}
.settings-nav-top .settings-nav-item > span { width: 31px; height: 31px; font-size: 14px; }
.settings-nav-top .settings-nav-item strong { font-size: 10.5px; line-height: 1.3; text-overflow: clip; }
.settings-group-card {
  padding: clamp(26px, 2.25vw, 38px);
  overflow: visible;
}
.settings-group-heading {
  gap: 15px;
  margin-bottom: 10px;
  padding-bottom: 24px;
}
.settings-group-heading h2 { font-size: 21px; }
.settings-group-heading p { max-width: 820px; font-size: 11px; line-height: 1.55; }
.settings-subsection { margin-top: 28px; padding: 26px 8px 0; }
.settings-subsection h3 { margin-bottom: 13px; font-size: 14px; }
.setting-row {
  min-height: 88px;
  gap: 30px;
  padding: 20px 8px;
}
.setting-row > div:first-child { max-width: 760px; }
.setting-row strong { font-size: 13px; line-height: 1.35; }
.setting-row small { margin-top: 5px; font-size: 10.5px; line-height: 1.55; }
.settings-form { gap: 17px; }
.settings-form label > span,
.security-field-grid label > span,
.workflow-meta-grid label > span { display: block; margin-bottom: 7px; color: var(--muted); font-size: 10px; font-weight: 750; }

/* Schöne, kompakte Dropdowns */
.settings-content select,
.dashboard-config-panel select,
.dashboard-config-item select,
.filter-group select,
.modal select {
  min-height: 44px;
  padding: 0 42px 0 14px;
  border: 1px solid var(--border);
  border-radius: 12px;
  appearance: none;
  color: var(--text);
  background-color: var(--surface-solid);
  background-image:
    linear-gradient(45deg, transparent 50%, var(--muted) 50%),
    linear-gradient(135deg, var(--muted) 50%, transparent 50%);
  background-position:
    calc(100% - 18px) calc(50% - 2px),
    calc(100% - 13px) calc(50% - 2px);
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  box-shadow: 0 5px 14px rgba(30, 40, 65, .04);
  font-size: 12px;
  font-weight: 680;
}
.settings-content select:hover,
.dashboard-config-panel select:hover,
.dashboard-config-item select:hover,
.filter-group select:hover,
.modal select:hover { border-color: color-mix(in srgb, var(--accent) 38%, var(--border)); background-color: var(--surface-2); }
.settings-content select:focus,
.dashboard-config-panel select:focus,
.dashboard-config-item select:focus,
.filter-group select:focus,
.modal select:focus { border-color: var(--accent); box-shadow: 0 0 0 4px var(--accent-soft); }
.setting-row select { width: auto; min-width: 190px; max-width: 320px; }
.dashboard-config-item select { width: auto; min-width: 170px; max-width: 220px; }
.settings-content input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
.settings-content textarea { min-height: 44px; padding: 11px 13px; font-size: 12px; }
.settings-content .btn { min-height: 42px; font-size: 11.5px; }

/* Dashboard / Übersicht */
.dashboard-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  margin-bottom: 20px;
  padding: clamp(25px, 2.6vw, 40px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 28px;
  border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--border));
  border-radius: 25px;
  background:
    radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent) 23%, transparent), transparent 18rem),
    linear-gradient(135deg, color-mix(in srgb, var(--surface-solid) 92%, var(--accent)), var(--surface));
  box-shadow: var(--shadow);
}
.dashboard-hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  right: -74px;
  bottom: -112px;
  width: 270px;
  height: 270px;
  border: 44px solid color-mix(in srgb, var(--accent) 9%, transparent);
  border-radius: 50%;
}
.dashboard-hero-copy h2 { margin: 7px 0 8px; color: var(--text-strong); font-size: clamp(24px, 2vw, 34px); line-height: 1.15; letter-spacing: -.045em; }
.dashboard-hero-copy > p { max-width: 760px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.dashboard-hero-metrics { margin-top: 21px; display: flex; flex-wrap: wrap; gap: 9px; }
.dashboard-hero-metrics span { min-height: 35px; padding: 7px 11px; display: inline-flex; align-items: center; gap: 5px; border: 1px solid var(--border); border-radius: 999px; background: color-mix(in srgb, var(--surface-solid) 78%, transparent); color: var(--muted); font-size: 10px; }
.dashboard-hero-metrics strong { color: var(--text-strong); font-size: 12px; }
.dashboard-hero-metrics .attention { color: var(--danger); border-color: color-mix(in srgb, var(--danger) 26%, var(--border)); background: var(--danger-soft); }
.dashboard-hero-metrics .attention strong { color: var(--danger); }
.dashboard-hero-actions { min-width: 145px; display: grid; gap: 9px; }
.dashboard-hero-actions .btn { min-width: 145px; }
.dashboard-toolbar { min-height: 56px; margin-bottom: 18px; padding: 8px 4px; }
.dashboard-toolbar > div { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.dashboard-toolbar-note { color: var(--muted); font-size: 10px; }
.dashboard-widget-grid { gap: 20px; }
.dashboard-widget { border-radius: 21px; }
.dashboard-widget .panel-body { min-height: 120px; }
.dashboard-stats { gap: 18px; margin: 0; }
.dashboard-stats .stat-card { min-height: 160px; padding: 22px; border-radius: 19px; }
.dashboard-stats .stat-label { font-size: 11px; }
.dashboard-stats .stat-value { font-size: 32px; }
.dashboard-stats .stat-note { font-size: 10.5px; }
.dashboard-stats .stat-card:nth-child(1) .stat-icon { color: var(--accent); background: var(--accent-soft); }
.dashboard-stats .stat-card:nth-child(2) .stat-icon { color: var(--danger); background: var(--danger-soft); }
.dashboard-stats .stat-card:nth-child(3) .stat-icon { color: var(--warning); background: color-mix(in srgb, var(--warning) 12%, var(--surface-solid)); }
.dashboard-stats .stat-card:nth-child(4) .stat-icon { color: var(--success); background: var(--success-soft); }

/* Projekte & Phasen: alle Elemente sauber auf einer Grundlinie */
.workflow-tabs { gap: 9px; padding: 12px 0 17px; flex-wrap: wrap; overflow: visible; }
.workflow-tabs button { min-width: 155px; min-height: 58px; padding: 10px 13px; }
.workflow-tabs span { font-size: 11px; }
.workflow-tabs small { font-size: 8px; }
.workflow-meta-grid { gap: 14px; }
.workflow-assignment { margin: 18px 0; padding: 15px 17px; }
.workflow-assignment strong { font-size: 11px; }
.workflow-assignment span { font-size: 10px; }
.phase-manager-header { margin: 27px 0 13px; align-items: center; }
.phase-manager-header h3 { font-size: 15px; }
.phase-manager-header p { font-size: 10px; }
.phase-manager { gap: 12px; }
.phase-manager-row {
  display: grid;
  grid-template-columns: 28px 82px 82px minmax(190px, 1.35fr) 108px 124px 124px minmax(190px, 1fr) 118px;
  grid-template-areas: "drag icon color name limit done default visibility actions";
  align-items: end;
  gap: 10px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: var(--surface-solid);
  transition: .16s ease;
}
.phase-drag-handle { grid-area: drag; align-self: center; width: 28px; height: 44px; display: grid; place-items: center; border-radius: 9px; background: var(--surface-2); font-size: 14px; }
.phase-icon-field { grid-area: icon; }
.phase-color-field { grid-area: color; }
.phase-name-field { grid-area: name; }
.phase-limit-field { grid-area: limit; }
.phase-done-field { grid-area: done; }
.phase-default-field { grid-area: default; }
.phase-visibility-field { grid-area: visibility; }
.phase-actions-field { grid-area: actions; }
.phase-field,
.phase-toggle-field,
.phase-actions-field { min-width: 0; display: grid; gap: 7px; }
.phase-field > span,
.phase-toggle-field > span:first-child,
.phase-actions-field > span { min-height: 13px; color: var(--muted); font-size: 9px; font-weight: 800; line-height: 1.2; }
.phase-manager-row input:not([type="checkbox"]),
.phase-manager-row .mini-check,
.phase-manager-row .phase-project-visibility summary,
.phase-manager-row .phase-row-actions { width: 100%; height: 44px !important; min-height: 44px; }
.phase-icon-input { width: 100% !important; font-size: 16px !important; }
.phase-color-field input[type="color"] { width: 100% !important; padding: 5px; border-radius: 11px; }
.phase-manager-row .mini-check { padding: 0 10px; gap: 8px; }
.phase-manager-row .mini-check span { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.phase-manager-row .phase-project-visibility summary { padding: 0 32px 0 12px; display: flex; align-items: center; font-size: 9px; }
.phase-manager-row .phase-row-actions { padding: 5px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; border: 1px solid var(--border); border-radius: 11px; background: var(--surface-2); }
.phase-manager-row .phase-row-actions .icon-action { width: 100%; height: 32px; }
.phase-project-visibility > div { top: 49px; min-width: 245px; padding: 10px; }
.phase-project-visibility label { font-size: 10px; }

/* Kalender: korrekte Zeitlogik und klar getrennte Wochenenden */
.calendar-toolbar { min-height: 96px; padding: 16px 18px 16px 22px; }
.calendar-title { min-width: 0; }
.calendar-title h2 { font-size: 23px; }
.calendar-legend { margin-top: 11px; display: flex; flex-wrap: wrap; gap: 7px; }
.calendar-legend span { min-height: 25px; padding: 4px 8px; display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--border); border-radius: 999px; color: var(--muted); background: var(--surface-2); font-size: 8px; font-weight: 720; }
.calendar-legend i { width: 8px; height: 8px; border-radius: 50%; background: var(--muted-2); }
.calendar-legend .legend-today i { background: var(--accent); }
.calendar-legend .legend-future i { background: var(--success); }
.calendar-legend .legend-saturday i { background: #4f8de8; }
.calendar-legend .legend-sunday i { background: #e8755f; }
.calendar-weekdays .saturday { color: #397dcc; background: color-mix(in srgb, #4f8de8 10%, var(--surface-2)); }
.calendar-weekdays .sunday { color: #d65f4d; background: color-mix(in srgb, #e8755f 11%, var(--surface-2)); }
.calendar-day { min-height: 148px; padding: 11px; }
.calendar-day.in-month.past { background: color-mix(in srgb, var(--surface-2) 50%, var(--surface-solid)); }
.calendar-day.in-month.past .calendar-day-number,
.calendar-day.in-month.past .calendar-day-tasks { opacity: .68; }
.calendar-day.in-month.future { background: color-mix(in srgb, var(--success) 1.8%, var(--surface-solid)); }
.calendar-day.outside { opacity: 1; background: var(--surface-3); }
.calendar-day.outside .calendar-day-number,
.calendar-day.outside .calendar-day-tasks { opacity: .42; }
.calendar-day.saturday { box-shadow: inset 0 3px 0 color-mix(in srgb, #4f8de8 75%, transparent); }
.calendar-day.sunday { box-shadow: inset 0 3px 0 color-mix(in srgb, #e8755f 78%, transparent); }
.calendar-day.saturday.in-month:not(.today) { background: color-mix(in srgb, #4f8de8 5.5%, var(--surface-solid)); }
.calendar-day.sunday.in-month:not(.today) { background: color-mix(in srgb, #e8755f 5.5%, var(--surface-solid)); }
.calendar-day.saturday.in-month.past,
.calendar-day.sunday.in-month.past { filter: saturate(.72); }
.calendar-day.today { background: var(--accent-faint); box-shadow: inset 0 0 0 2px var(--accent), inset 0 4px 0 var(--accent); }
.calendar-day:hover { filter: none; }

@media (max-width: 1450px) {
  .phase-manager-row {
    grid-template-columns: 28px 82px 82px minmax(190px, 1fr) 110px 118px;
    grid-template-areas:
      "drag icon color name limit actions"
      "drag done default visibility visibility actions";
  }
  .phase-actions-field { align-self: stretch; grid-template-rows: 13px minmax(44px, 1fr); }
  .phase-actions-field .phase-row-actions { height: auto !important; grid-template-columns: 1fr; }
}

@media (max-width: 1100px) {
  :root { --page-gutter: 22px; }
  .dashboard-hero { grid-template-columns: 1fr; }
  .dashboard-hero-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dashboard-hero-actions .btn { min-width: 0; }
  .settings-nav-top { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .phase-manager-row {
    grid-template-columns: 28px minmax(110px, .7fr) minmax(110px, .7fr) minmax(180px, 1.3fr);
    grid-template-areas:
      "drag icon color name"
      "drag limit done default"
      "drag visibility visibility actions";
  }
  .phase-actions-field .phase-row-actions { height: 44px !important; grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 760px) {
  :root { --page-gutter: 16px; }
  .content { padding-top: 20px; }
  .settings-nav-top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .settings-group-card { padding: 22px 18px 26px; }
  .setting-row { padding-inline: 2px; }
  .setting-row select { width: 100%; max-width: none; }
  .dashboard-hero { padding: 22px 18px; }
  .dashboard-hero-actions { grid-template-columns: 1fr; }
  .dashboard-toolbar { align-items: flex-start; flex-direction: column; }
  .dashboard-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .phase-manager-row {
    grid-template-columns: 26px minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas:
      "drag icon color"
      "drag name name"
      "drag limit done"
      "drag default default"
      "drag visibility visibility"
      "drag actions actions";
  }
  .phase-actions-field .phase-row-actions { height: 44px !important; }
  .calendar-toolbar { align-items: stretch; }
  .calendar-legend { display: none; }
}

/* =========================================================
   Lenvado v0.5.4 – Kalenderkorrektur und Dashboard-Settings
   ========================================================= */

/* Keine besondere Wochenend-Markierung und keine Legende mehr. */
.calendar-legend { display: none !important; }
.calendar-weekdays .weekend,
.calendar-weekdays .saturday,
.calendar-weekdays .sunday {
  color: inherit;
  background: transparent;
}
.calendar-day.saturday,
.calendar-day.sunday,
.calendar-day.saturday.in-month:not(.today),
.calendar-day.sunday.in-month:not(.today),
.calendar-day.saturday.in-month.past,
.calendar-day.sunday.in-month.past {
  filter: none;
  box-shadow: none;
}

/* Zeitliche Zustände: Vergangenheit klar abgesetzt, Heute hervorgehoben,
   aktuelle und kommende Tage neutral und gut lesbar. */
.calendar-day.in-month.past {
  background: color-mix(in srgb, var(--muted) 17%, var(--surface-2));
}
.calendar-day.in-month.past .calendar-day-number {
  color: var(--muted);
  opacity: .78;
}
.calendar-day.in-month.past .calendar-day-tasks {
  opacity: .58;
}
.calendar-day.in-month.future,
.calendar-day.in-month:not(.past):not(.today) {
  background: var(--surface-solid);
}
.calendar-day.outside {
  opacity: 1;
  background: var(--surface-2);
}
.calendar-day.outside .calendar-day-number,
.calendar-day.outside .calendar-day-tasks {
  opacity: .42;
}
.calendar-day.outside.past {
  background: color-mix(in srgb, var(--muted) 13%, var(--surface-2));
}
.calendar-day.outside.future {
  background: var(--surface-2);
}
.calendar-day.today {
  background: var(--accent-faint);
  box-shadow: inset 0 0 0 2px var(--accent), inset 0 4px 0 var(--accent);
}
.calendar-day:hover {
  filter: none;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 25%, var(--border));
}
.calendar-day.today:hover {
  box-shadow: inset 0 0 0 2px var(--accent), inset 0 4px 0 var(--accent);
}

/* Dashboard-Einstellungen: jedes Modul erhält genügend Breite. */
.settings-dashboard-list.dashboard-config-grid {
  grid-template-columns: repeat(auto-fit, minmax(390px, 1fr));
  gap: 14px;
}
.settings-dashboard-list .dashboard-config-item {
  min-width: 0;
  padding: 14px;
  grid-template-columns: minmax(180px, 1fr) minmax(150px, 190px) auto;
  gap: 14px;
  overflow: hidden;
}
.settings-dashboard-list .dashboard-config-item > * {
  min-width: 0;
}
.settings-dashboard-list .dashboard-config-item .check-setting {
  overflow: hidden;
}
.settings-dashboard-list .dashboard-config-item .check-setting span {
  min-width: 0;
}
.settings-dashboard-list .dashboard-config-item .check-setting strong,
.settings-dashboard-list .dashboard-config-item .check-setting small {
  overflow-wrap: anywhere;
}
.settings-dashboard-list .dashboard-config-item select {
  width: 100%;
  min-width: 0;
  max-width: none;
}
.settings-dashboard-list .phase-mini-actions {
  flex: 0 0 auto;
}

@media (max-width: 1050px) {
  .settings-dashboard-list.dashboard-config-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .settings-dashboard-list .dashboard-config-item {
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .settings-dashboard-list .dashboard-config-item .check-setting {
    grid-column: 1 / -1;
  }
  .settings-dashboard-list .dashboard-config-item select {
    grid-column: 1;
  }
  .settings-dashboard-list .phase-mini-actions {
    grid-column: 2;
  }
}


/* Feedback und Administration – v0.5.5 */
.admin-nav-label { margin-top: 14px; }
.admin-nav { flex: 0 0 auto; margin-bottom: 10px; }
.admin-nav-item { background: color-mix(in srgb, var(--accent) 13%, transparent); border: 1px solid color-mix(in srgb, var(--accent) 24%, transparent); }

.feedback-hero,
.admin-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 30px 32px;
  margin-bottom: 22px;
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  background: linear-gradient(130deg, var(--surface-solid), var(--accent-faint));
  box-shadow: var(--shadow-sm);
}
.feedback-hero h2,
.admin-hero h2 { margin: 5px 0 8px; font-size: clamp(24px, 3vw, 36px); letter-spacing: -.04em; }
.feedback-hero p,
.admin-hero p { margin: 0; max-width: 760px; color: var(--muted); line-height: 1.65; }
.feedback-hero-badge {
  min-width: 150px;
  padding: 20px;
  display: grid;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--border));
  border-radius: 20px;
  background: var(--surface-solid);
}
.feedback-hero-badge > span { font-size: 25px; color: var(--accent); }
.feedback-hero-badge strong { margin-top: 4px; font-size: 30px; }
.feedback-hero-badge small { color: var(--muted); }
.feedback-layout { display: grid; grid-template-columns: minmax(360px, .9fr) minmax(430px, 1.1fr); gap: 22px; align-items: start; }
.feedback-form-panel,
.feedback-list-panel,
.admin-feedback-panel,
.admin-users-panel,
.system-status-panel,
.resource-panel,
.server-preparation-panel,
.browser-info-panel { padding: 26px; }
.feedback-form { margin-top: 20px; }
.feedback-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.feedback-form-grid label > span,
.rating-field legend { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 750; color: var(--text); }
.rating-field { min-width: 0; padding: 0; margin: 0; border: 0; }
.rating-field legend small { color: var(--muted); font-weight: 500; }
.rating-input { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; gap: 3px; min-height: 48px; align-items: center; }
.rating-input input { position: absolute; opacity: 0; pointer-events: none; }
.rating-input label { font-size: 30px; line-height: 1; color: var(--surface-3); cursor: pointer; transition: transform .15s ease, color .15s ease; }
.rating-input label:hover,
.rating-input label:hover ~ label,
.rating-input input:checked ~ label { color: #f5ad27; transform: translateY(-1px); }
.feedback-form-footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--border); }
.feedback-anonymous { padding: 14px 16px; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface-2); }
.feedback-card-list { display: grid; gap: 14px; margin-top: 18px; }
.feedback-card { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 16px; padding: 18px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-solid); }
.feedback-card-icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 15px; background: var(--accent-soft); color: var(--accent); font-size: 21px; font-weight: 800; }
.feedback-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.feedback-type { display: block; margin-bottom: 4px; color: var(--muted); font-size: 12px; font-weight: 750; text-transform: uppercase; letter-spacing: .06em; }
.feedback-card h3 { margin: 0; font-size: 17px; }
.feedback-card p { margin: 12px 0; color: var(--muted); line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; }
.feedback-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; }
.feedback-card-footer small { color: var(--muted-2); }
.feedback-status { display: inline-flex; align-items: center; min-height: 28px; padding: 5px 10px; border-radius: 999px; font-size: 11px; font-weight: 800; white-space: nowrap; background: var(--surface-3); color: var(--muted); }
.status-new { background: var(--accent-soft); color: var(--accent); }
.status-review { background: color-mix(in srgb, var(--warning) 16%, var(--surface-solid)); color: var(--warning); }
.status-planned { background: color-mix(in srgb, #8b5cf6 16%, var(--surface-solid)); color: #8b5cf6; }
.status-completed { background: var(--success-soft); color: var(--success); }
.status-rejected { background: var(--danger-soft); color: var(--danger); }
.admin-response { margin-top: 14px; padding: 14px 16px; border-left: 3px solid var(--accent); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; background: var(--accent-faint); }
.admin-response strong { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; }
.admin-response p { margin: 6px 0 0; color: var(--text); }
.rating-stars { display: inline-flex; gap: 2px; color: var(--surface-3); }
.rating-stars span.filled { color: #f5ad27; }
.rating-stars.compact { font-size: 14px; }
.danger-text { color: var(--danger) !important; }

.admin-live-state { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: var(--radius-md); background: var(--surface-solid); border: 1px solid var(--border); min-width: 220px; }
.admin-live-state strong,
.admin-live-state small { display: block; }
.admin-live-state small { margin-top: 3px; color: var(--muted); }
.admin-tabs { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 22px; padding: 8px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-solid); box-shadow: var(--shadow-sm); }
.admin-tabs button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 18px; border: 0; border-radius: 12px; background: transparent; color: var(--muted); font-weight: 750; }
.admin-tabs button:hover { background: var(--surface-2); color: var(--text); }
.admin-tabs button.active { background: var(--accent); color: white; box-shadow: 0 8px 20px color-mix(in srgb, var(--accent) 25%, transparent); }
.admin-overview-grid,
.admin-system-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.admin-kpi-grid { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.admin-kpi { min-width: 0; display: flex; gap: 15px; padding: 22px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-solid); box-shadow: var(--shadow-sm); }
.admin-kpi-icon { width: 46px; height: 46px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 14px; background: var(--accent-soft); color: var(--accent); font-size: 19px; }
.admin-kpi small { color: var(--muted); font-weight: 700; }
.admin-kpi strong { display: block; margin: 5px 0 3px; font-size: 28px; letter-spacing: -.04em; }
.admin-kpi p { margin: 0; color: var(--muted-2); font-size: 12px; }
.admin-chart-card,
.admin-quick-card { padding: 26px; }
.admin-quick-card { grid-column: 1 / -1; }
.admin-bar-list { display: grid; gap: 17px; margin-top: 20px; }
.admin-bar-row > div:first-child { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 7px; font-size: 13px; }
.admin-bar-row span { color: var(--muted); }
.admin-bar-track { height: 9px; overflow: hidden; border-radius: 999px; background: var(--surface-3); }
.admin-bar-track span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 60%, #8b5cf6)); }
.admin-quick-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.admin-quick-grid button { display: grid; grid-template-columns: 42px 1fr; grid-template-rows: auto auto; column-gap: 12px; text-align: left; padding: 18px; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface-2); color: var(--text); }
.admin-quick-grid button > span { grid-row: 1 / 3; width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; background: var(--accent-soft); color: var(--accent); }
.admin-quick-grid button small { color: var(--muted); margin-top: 3px; }
.admin-quick-grid button:hover { border-color: color-mix(in srgb, var(--accent) 35%, var(--border)); transform: translateY(-1px); }
.admin-loading { min-height: 240px; display: grid; place-items: center; align-content: center; gap: 14px; }
.loading-ring { width: 34px; height: 34px; border: 3px solid var(--surface-3); border-top-color: var(--accent); border-radius: 50%; animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

.admin-feedback-list { display: grid; gap: 16px; margin-top: 20px; }
.admin-feedback-item { padding: 20px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-2); }
.admin-feedback-head { display: grid; grid-template-columns: 48px minmax(0, 1fr) minmax(145px, 190px); gap: 15px; align-items: start; }
.admin-feedback-head > div > span { color: var(--muted); font-size: 12px; }
.admin-feedback-head h3 { margin: 4px 0 5px; font-size: 18px; }
.admin-feedback-head select { width: 100%; }
.admin-feedback-item > p { margin: 16px 0; padding: 15px; border-radius: var(--radius-sm); background: var(--surface-solid); white-space: pre-wrap; line-height: 1.65; }
.admin-feedback-item > small { display: block; margin-top: 12px; color: var(--muted-2); }
.admin-feedback-response { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 14px; }
.admin-feedback-response label > span { display: block; margin-bottom: 7px; font-weight: 700; font-size: 12px; }

.admin-user-table { margin-top: 20px; overflow-x: auto; }
.admin-user-table-head,
.admin-user-row { min-width: 1040px; display: grid; grid-template-columns: minmax(260px, 1.4fr) 120px 125px 160px 105px minmax(210px, auto); gap: 16px; align-items: center; }
.admin-user-table-head { padding: 0 14px 10px; color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.admin-user-row { padding: 14px; border-top: 1px solid var(--border); }
.admin-user-identity { display: flex; align-items: center; gap: 12px; min-width: 0; }
.admin-user-identity > span { width: 42px; height: 42px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 13px; background: var(--accent-soft); color: var(--accent); font-weight: 850; }
.admin-user-identity strong,
.admin-user-identity small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-user-identity small { color: var(--muted); margin-top: 3px; }
.admin-user-actions { display: flex; gap: 8px; justify-content: flex-end; }
.admin-badge { background: var(--accent-soft); color: var(--accent); }

.system-status-panel,
.server-preparation-panel,
.browser-info-panel { grid-column: 1 / -1; }
.system-health-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 20px; }
.system-metric { display: flex; align-items: flex-start; gap: 12px; padding: 16px; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface-2); }
.system-metric small { color: var(--muted); }
.system-metric strong { display: block; margin: 4px 0; font-size: 17px; }
.system-metric p { margin: 0; color: var(--muted-2); font-size: 12px; line-height: 1.45; }
.status-indicator.neutral { background: var(--muted); }
.status-indicator.warning { background: var(--warning); }
.resource-meter { margin-top: 20px; }
.resource-meter > div:first-child { display: flex; justify-content: space-between; gap: 15px; margin-bottom: 9px; }
.resource-meter > div:first-child span,
.resource-meter small { color: var(--muted); font-size: 12px; }
.resource-track { height: 11px; border-radius: 999px; overflow: hidden; background: var(--surface-3); }
.resource-track span { display: block; height: 100%; border-radius: inherit; background: var(--accent); }
.resource-meter small { display: block; margin-top: 7px; }
.server-placeholder-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; margin-top: 20px; }
.server-placeholder-grid article { display: flex; gap: 11px; padding: 15px; border: 1px dashed var(--border-strong); border-radius: var(--radius-md); background: var(--surface-2); }
.server-placeholder-grid article > span { color: var(--muted-2); }
.server-placeholder-grid strong,
.server-placeholder-grid small { display: block; }
.server-placeholder-grid small { margin-top: 4px; color: var(--muted-2); }
.browser-info-panel code { display: block; margin-top: 18px; padding: 16px; border-radius: var(--radius-md); background: var(--surface-2); color: var(--muted); white-space: pre-wrap; overflow-wrap: anywhere; }

@media (max-width: 1250px) {
  .feedback-layout { grid-template-columns: 1fr; }
  .admin-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .system-health-grid,
  .server-placeholder-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .feedback-hero,
  .admin-hero { align-items: flex-start; flex-direction: column; }
  .feedback-hero-badge,
  .admin-live-state { width: 100%; }
  .admin-overview-grid,
  .admin-system-grid { grid-template-columns: 1fr; }
  .admin-chart-card,
  .admin-quick-card,
  .resource-panel { grid-column: 1; }
  .admin-quick-grid { grid-template-columns: 1fr; }
  .admin-feedback-head { grid-template-columns: 48px minmax(0, 1fr); }
  .admin-feedback-head select { grid-column: 2; }
}
@media (max-width: 620px) {
  .feedback-hero,
  .admin-hero,
  .feedback-form-panel,
  .feedback-list-panel,
  .admin-feedback-panel,
  .admin-users-panel,
  .system-status-panel,
  .resource-panel,
  .server-preparation-panel,
  .browser-info-panel { padding: 20px; }
  .feedback-form-grid,
  .admin-kpi-grid,
  .system-health-grid,
  .server-placeholder-grid { grid-template-columns: 1fr; }
  .feedback-form-grid .span-two { grid-column: auto; }
  .feedback-form-footer { align-items: stretch; flex-direction: column; }
  .feedback-card { grid-template-columns: 1fr; }
  .feedback-card-top { flex-direction: column; }
  .admin-feedback-head { grid-template-columns: 1fr; }
  .admin-feedback-head select { grid-column: auto; }
  .admin-feedback-response { grid-template-columns: 1fr; }
  .admin-tabs button { flex: 1 1 calc(50% - 10px); }
}


/* =========================================================
   Lenvado v0.5.7 – einklappbare Sidebar & Layout-Stabilität
   ========================================================= */

:root { --sidebar-collapsed-width: 88px; }

/* Grundlegende Schutzregeln gegen überlaufende oder überlappende Inhalte. */
.app-shell,
.main-area,
.page-heading,
.topbar-actions,
.content,
.content > *,
.panel,
.panel-body,
.toolbar,
.dashboard-widget,
.project-card,
.note-card,
.template-card,
.settings-content,
.settings-group-card,
.feedback-layout > *,
.admin-overview-grid > *,
.admin-system-grid > * { min-width: 0; }

img, svg, canvas { max-width: 100%; }
input, textarea, select { max-width: 100%; }
.toolbar,
.panel-header,
.modal-footer,
.modal-footer-left,
.modal-footer-right,
.topbar-actions,
.calendar-controls,
.feedback-form-footer { flex-wrap: wrap; }

/* Sidebar-Inhalte bleiben auch bei niedrigen Fenstern erreichbar. */
.sidebar {
  overflow: visible;
  transition: padding .22s ease, width .22s ease;
}
#mainNav {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.16) transparent;
}
#mainNav::-webkit-scrollbar { width: 5px; }
#mainNav::-webkit-scrollbar-thumb { border-radius: 999px; background: rgba(255,255,255,.16); }
#mainNav .nav-item[data-view="feedback"] { margin-top: auto; }
.admin-nav-label,
.admin-nav,
.sidebar-bottom { flex: 0 0 auto; }

.brand { min-height: 46px; }
.sidebar-toggle {
  width: 31px;
  height: 31px;
  margin-left: auto;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 10px;
  color: #cbd5ec;
  background: rgba(255,255,255,.055);
  box-shadow: inset 0 1px rgba(255,255,255,.04);
  transition: transform .18s ease, background .18s ease, color .18s ease;
}
.sidebar-toggle:hover { color: #fff; background: rgba(255,255,255,.1); transform: translateY(-1px); }
.sidebar-toggle span { display: block; font-size: 24px; line-height: 1; transform: translateX(-1px); transition: transform .22s ease; }

@media (min-width: 681px) {
  .app-shell { transition: grid-template-columns .22s ease; }
  .app-shell.sidebar-collapsed { grid-template-columns: var(--sidebar-collapsed-width) minmax(0, 1fr); }
  .app-shell.sidebar-collapsed .sidebar { padding-inline: 12px; }
  .app-shell.sidebar-collapsed .brand {
    padding: 0 0 22px;
    display: grid;
    grid-template-columns: 38px 26px;
    justify-content: center;
    gap: 4px;
  }
  .app-shell.sidebar-collapsed .brand-mark { width: 38px; height: 38px; border-radius: 12px; }
  .app-shell.sidebar-collapsed .brand-logo img { width: 25px; height: 25px; }
  .app-shell.sidebar-collapsed .brand-copy,
  .app-shell.sidebar-collapsed .sidebar-label,
  .app-shell.sidebar-collapsed .nav-item > span:last-child,
  .app-shell.sidebar-collapsed .version-chip { display: none !important; }
  .app-shell.sidebar-collapsed .nav-item { justify-content: center; padding-inline: 0; }
  .app-shell.sidebar-collapsed .nav-item:hover { transform: none; }
  .app-shell.sidebar-collapsed .nav-item.active::before { left: -1px; }
  .app-shell.sidebar-collapsed .sidebar-toggle { width: 26px; height: 30px; border-radius: 9px; }
  .app-shell.sidebar-collapsed .sidebar-toggle span { transform: rotate(180deg) translateX(-1px); }
  .app-shell.sidebar-collapsed .account-chip {
    padding: 8px;
    display: grid;
    grid-template-columns: 34px;
    justify-content: center;
    gap: 0;
  }
  .app-shell.sidebar-collapsed .account-chip > span:nth-child(2),
  .app-shell.sidebar-collapsed .account-chip > span:last-child { display: none; }
  .app-shell.sidebar-collapsed .account-menu {
    left: calc(100% + 10px);
    right: auto;
    bottom: 18px;
    width: 210px;
  }
  .app-shell.sidebar-collapsed .admin-nav-label { display: none !important; }
}

/* Die alte automatische Tablet-Einklappung wird durch den Benutzerzustand ersetzt. */
@media (min-width: 681px) and (max-width: 880px) {
  :root { --sidebar-width: 245px; }
  .sidebar { padding-inline: 14px; }
  .brand { justify-content: flex-start; padding-inline: 5px; }
  .brand-copy { display: block; }
  .sidebar-label { display: block; }
  .nav-item > span:last-child { display: inline; }
  .nav-item { justify-content: flex-start; padding-inline: 12px; }
  .version-chip { display: flex; }
  .app-shell.sidebar-collapsed { grid-template-columns: var(--sidebar-collapsed-width) minmax(0, 1fr); }
  .app-shell.sidebar-collapsed .brand-copy,
  .app-shell.sidebar-collapsed .sidebar-label,
  .app-shell.sidebar-collapsed .nav-item > span:last-child,
  .app-shell.sidebar-collapsed .version-chip { display: none !important; }
  .app-shell.sidebar-collapsed .nav-item { justify-content: center; padding-inline: 0; }
}

/* Kopfbereich bricht kontrolliert um, statt Bedienelemente zu überlagern. */
.page-heading { flex: 1 1 260px; }
.topbar-actions { flex: 0 1 auto; justify-content: flex-end; }
.global-search-wrap { flex: 1 1 270px; max-width: 430px; }

@media (max-width: 1100px) and (min-width: 681px) {
  .topbar { flex-wrap: wrap; align-items: flex-start; }
  .page-heading { flex-basis: 100%; }
  .topbar-actions { width: 100%; justify-content: flex-start; }
  .global-search-wrap { max-width: none; }
}

/* Formulare und Karten bleiben bei langen Texten stabil. */
.setting-row > div,
.check-setting span,
.project-card-copy,
.task-cell-main,
.feedback-card-main,
.admin-feedback-copy { min-width: 0; overflow-wrap: anywhere; }
.setting-row > :last-child { flex: 0 1 auto; }
.modal-footer-left,
.modal-footer-right { min-width: 0; }

@media (max-width: 760px) {
  .sidebar-toggle { display: none; }
  #mainNav { overflow-x: auto; overflow-y: hidden; }
  #mainNav .nav-item[data-view="feedback"] { margin-top: 0; }
  .toolbar > *,
  .panel-header > *,
  .modal-footer-left,
  .modal-footer-right { min-width: 0; }
  .modal-footer-left,
  .modal-footer-right { width: 100%; }
  .modal-footer-right { justify-content: flex-end; }
}

@media (max-width: 520px) {
  .topbar-actions .global-search-wrap { flex-basis: 100%; order: 3; }
  .topbar-actions .new-task-button { flex: 1 1 160px; }
  .modal-footer .btn { flex: 1 1 auto; }
}


/* v0.5.7 Nachprüfung: keine Übergangsüberlappung, stabile Navigation. */
@media (min-width: 681px) {
  .app-shell { transition: none; }
  #mainNav { scroll-snap-type: y proximity; scroll-padding-block: 4px; }
  #mainNav .nav-item { scroll-snap-align: start; }
}

.settings-nav-top .settings-nav-item { min-height: 58px; }
.settings-nav-top .settings-nav-item strong {
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  overflow-wrap: normal;
  word-break: normal;
}

/* Mobile: alle Navigationsbereiche bilden eine einzige horizontale Leiste. */
@media (max-width: 680px) {
  .sidebar {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 0;
    height: 74px;
    padding: 7px 8px;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
  }
  .sidebar::-webkit-scrollbar { display: none; }
  .sidebar::after {
    inset: 0 0 auto 0;
    width: auto;
    height: 1px;
  }
  .sidebar .brand,
  .sidebar .sidebar-label,
  .sidebar .admin-nav-label,
  .sidebar .account-chip,
  .sidebar .account-menu,
  .sidebar .version-chip,
  .sidebar .sidebar-toggle { display: none !important; }
  .sidebar #mainNav,
  .sidebar #adminNav:not(.hidden),
  .sidebar .sidebar-bottom { display: contents !important; }
  .sidebar #adminNav.hidden { display: none !important; }
  .sidebar .nav-item {
    width: 72px;
    min-width: 72px;
    height: 60px;
    flex: 0 0 72px;
    padding: 5px 3px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 3px;
    border-radius: 11px;
    font-size: 7.5px;
    line-height: 1.15;
    text-align: center;
    white-space: nowrap;
  }
  .sidebar .nav-item > span:last-child { display: block !important; max-width: 66px; overflow: hidden; text-overflow: ellipsis; }
  .sidebar .nav-icon { width: 31px; height: 31px; flex: 0 0 31px; }
  .sidebar .nav-item.active::before {
    left: 50%;
    right: auto;
    top: auto;
    bottom: -2px;
    width: 18px;
    height: 2px;
    transform: translateX(-50%);
  }
  #mainNav .nav-item[data-view="feedback"] { margin-top: 0; }
  .main-area { padding-bottom: 76px; }
}

/* Mobile Nachkorrekturen aus der vollständigen Layoutprüfung. */
@media (min-width: 681px) and (max-width: 760px) {
  .sidebar-toggle { display: grid; }
}

@media (max-width: 680px) {
  .page-heading { flex: 0 0 auto; }
  .topbar { gap: 14px; }
  .topbar-actions { width: 100%; flex: 0 0 auto; }
  .settings-group-heading {
    grid-template-columns: 42px minmax(0, 1fr);
    align-items: start;
  }
  .settings-group-heading > .btn {
    grid-column: 1 / -1;
    width: 100%;
    margin-top: 4px;
    justify-self: stretch;
  }
  .settings-group-heading > .badge {
    grid-column: 2;
    width: auto;
    justify-self: start;
  }
}
