/* =========================================================================
   DATABASE TAB — raw table view over the unified store (TCDB / pb_tc_db_v1).
   Same dark, square, monochrome language as the rest of the app; type badges
   carry the only colour. Header sits in the grid like every other panel.
   ========================================================================= */
.db-panel{
  grid-column:1; grid-row:3;
  display:none; flex-direction:column;
  min-height:0; overflow:hidden;
  background:var(--bg);
}
.db-panel.visible{ display:flex; }

/* The two databases are switched from the left nav (Database group); each
   subview owns its own header + scroll, and only the active one is shown. */
.db-subview{ display:none; min-height:0; }
.db-subview.visible{ display:flex; flex-direction:column; flex:1; min-height:0; }

/* Primary action button (Add entry) */
.db-btn-primary{ color:var(--bg); background:var(--accent); border-color:var(--accent); font-weight:600; }
.db-btn-primary:hover{ color:var(--bg); background:var(--accent); border-color:var(--accent); filter:brightness(1.08); }

/* ---- Header / toolbar ---- */
.db-header{
  display:flex; flex-direction:column; gap:8px;
  padding:10px 16px;
  background:var(--panel);
  border-bottom:1px solid var(--line);
}
.db-header-top{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.db-title{
  color:var(--text); font-size:var(--fs-section); font-weight:600;
  display:flex; align-items:center; gap:8px;
}
.db-title svg{ width:17px; height:17px; }
.db-toolbar{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; width:100%; }

/* Type filter — mirrors the projects filter pill group */
.db-filter{ display:inline-flex; gap:2px; background:var(--card); border:1px solid var(--line); padding:2px; }
.db-filter-btn{
  appearance:none; border:0; background:transparent; cursor:pointer;
  color:var(--muted); font-size:var(--fs-small); font-weight:500;
  padding:4px 10px; line-height:1.4;
  transition:background var(--t-snap) var(--ease), color var(--t-snap) var(--ease);
}
.db-filter-btn:hover{ color:var(--text); background:var(--card-hover); }
.db-filter-btn.active{ color:var(--bg); background:var(--accent); font-weight:600; }

/* Search box */
.db-search{
  display:inline-flex; align-items:center; gap:6px;
  background:var(--card); border:1px solid var(--line);
  padding:0 8px; height:30px; min-width:200px;
}
.db-search svg{ width:14px; height:14px; color:var(--faint); flex:none; }
.db-search input{
  appearance:none; border:0; background:transparent; outline:none;
  color:var(--text); font-size:var(--fs-small); width:100%; height:100%;
}
.db-search input::placeholder{ color:var(--faint); }

/* Archived toggle + small buttons */
.db-archived-toggle{
  display:inline-flex; align-items:center; gap:6px;
  color:var(--muted); font-size:var(--fs-small); cursor:pointer; user-select:none;
}
.db-archived-toggle input{ accent-color:var(--accent); }
.db-btn{
  appearance:none; cursor:pointer;
  background:var(--card); border:1px solid var(--line); color:var(--muted);
  font-size:var(--fs-small); font-weight:500; padding:5px 10px; height:30px;
  transition:background var(--t-snap) var(--ease), color var(--t-snap) var(--ease), border-color var(--t-snap) var(--ease);
}
.db-btn:hover{ color:var(--text); background:var(--card-hover); border-color:var(--line-bright); }

/* Summary line */
.db-summary{ color:var(--muted); font-size:var(--fs-small); }
.db-summary b{ color:var(--text); font-weight:600; }
.db-summary .db-sep{ color:var(--faint); margin:0 2px; }

/* ---- Scroll + table ---- */
.db-scroll{ flex:1; min-height:0; overflow:auto; }
.db-table{
  border-collapse:separate; border-spacing:0;
  width:100%; min-width:max-content;
  font-size:var(--fs-small); color:var(--text);
}
.db-table th{
  position:sticky; top:0; z-index:2;
  text-align:left; white-space:nowrap;
  padding:8px 12px;
  background:var(--panel-2);
  color:var(--muted); font-weight:600;
  border-bottom:1px solid var(--line);
  cursor:pointer; user-select:none;
}
.db-table th:hover{ color:var(--text); background:var(--card-hover); }
.db-sortarrow{ color:var(--accent); margin-left:4px; font-size:9px; }
.db-table td{
  padding:7px 12px;
  border-bottom:1px solid var(--line-soft);
  white-space:nowrap; vertical-align:top;
  max-width:340px; overflow:hidden; text-overflow:ellipsis;
}
.db-row:hover td{ background:var(--card-hover); }
.db-row.is-archived{ opacity:.5; }

.c-title{ font-weight:500; color:var(--text); }
.c-star{ text-align:center; }
.c-id code, .db-orphan{ font-family:var(--font-mono); }
.c-id code{ color:var(--faint); font-size:var(--fs-caption); }

/* Cell adornments */
.db-dash{ color:var(--faint); }
.db-date{ color:var(--muted); font-variant-numeric:tabular-nums; }
.db-status{ color:var(--text); }
.db-yes{ color:var(--good); font-weight:600; }
.db-star{ color:var(--warn); }
.db-ref{ color:var(--accent2-soft); border-bottom:1px dotted var(--line-bright); }
.db-orphan{ color:var(--danger); font-size:var(--fs-caption); border-bottom:1px dotted rgba(var(--danger-rgb),.5); }

/* Type badges — the only colour in the grid */
.db-badge{
  display:inline-block; padding:1px 7px;
  font-size:var(--fs-caption); font-weight:600;
  text-transform:uppercase; letter-spacing:.04em;
  border:1px solid;
}
.db-badge-project{ color:var(--accent2-soft); border-color:rgba(var(--accent2-rgb),.45); background:rgba(var(--accent2-rgb),.12); }
.db-badge-action{ color:var(--good); border-color:rgba(var(--good-rgb),.45); background:rgba(var(--good-rgb),.12); }
.db-badge-micro{ color:var(--muted); border-color:var(--line-bright); background:rgba(var(--text-rgb),.05); }
.db-badge-sprint{ color:var(--warn); border-color:rgba(var(--warn-rgb),.45); background:rgba(var(--warn-rgb),.12); }

/* Delete column — trailing × button, mirrors the Dates Database's .dates-del */
.c-db-del{ width:34px; text-align:center; padding:4px; }
.db-del{
  appearance:none; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
  width:24px; height:24px; padding:0;
  background:transparent; border:1px solid transparent; color:var(--faint);
  font-size:15px; line-height:1;
  transition:color var(--t-snap) var(--ease), background var(--t-snap) var(--ease), border-color var(--t-snap) var(--ease);
}
.db-del:hover{ color:var(--danger); background:rgba(var(--danger-rgb),.10); border-color:rgba(var(--danger-rgb),.4); }

/* Empty state */
.db-empty{
  display:flex; align-items:center; justify-content:center;
  height:100%; min-height:200px;
  color:var(--faint); font-size:var(--fs-body);
}

/* ---- Dates Database — editable inline cells ---- */
.dates-table td{ vertical-align:middle; }
.dates-table .c-dates-title{ min-width:200px; }
.dates-table .c-dates-date{ width:150px; }
.dates-table .c-dates-cat{ width:160px; }
.dates-table .c-dates-notes{ min-width:240px; }
.dates-table .c-dates-del{ width:34px; text-align:center; }

.dates-input{
  appearance:none; width:100%;
  background:transparent; border:1px solid transparent; outline:none;
  color:var(--text); font-family:inherit; font-size:var(--fs-small);
  padding:4px 6px;
  transition:background var(--t-snap) var(--ease), border-color var(--t-snap) var(--ease);
}
.dates-input::placeholder{ color:var(--faint); }
.dates-input:hover{ border-color:var(--line-soft); }
.dates-input:focus{ background:var(--card); border-color:var(--accent); }
.dates-input[type="date"]{ color:var(--muted); font-variant-numeric:tabular-nums; }
/* Make the native date-picker icon visible on the dark theme */
.dates-input[type="date"]::-webkit-calendar-picker-indicator{ filter:invert(.7); cursor:pointer; }

.dates-del{
  appearance:none; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
  width:24px; height:24px; padding:0;
  background:transparent; border:1px solid transparent; color:var(--faint);
  font-size:15px; line-height:1;
  transition:color var(--t-snap) var(--ease), background var(--t-snap) var(--ease), border-color var(--t-snap) var(--ease);
}
.dates-del:hover{ color:var(--danger); background:rgba(var(--danger-rgb),.10); border-color:rgba(var(--danger-rgb),.4); }

/* ---- Habit columns ---- */
/* Suppress sticky + pointer on dates table headers (no sort) */
.dates-table th{ cursor:default; }
.dates-table th:hover{ color:var(--muted); background:var(--panel-2); }

/* Group header row (Morning / Evening / Other labels) — not sticky, scrolls away */
.dates-group-row th{
  position:static;
  text-align:center; font-size:10px; letter-spacing:.07em; text-transform:uppercase;
  padding:3px 4px; border-bottom:none; color:transparent; cursor:default;
}
.dates-group-row th.c-habit-group{ color:var(--faint); border-bottom:1px solid var(--line-soft); }

/* Narrow habit columns */
.c-habit{ width:46px; text-align:center; padding:4px 2px; }
.dates-table .c-dates-mood,
.dates-table .c-dates-cortisol{ width:70px; text-align:center; }
.dates-table .c-dates-successful,
.dates-table .c-dates-proactive{ width:110px; }
.dates-table .c-dates-taskcompleted,
.dates-table .c-dates-archived-micros{ width:118px; text-align:center; }
.dates-table .c-dates-badhabits{ min-width:160px; }
.dates-table .c-dates-jtext{ width:200px; vertical-align:top; padding:4px 6px; }
.dates-table .c-dates-journal-yn{ width:80px; text-align:center; }
/* Legacy journal columns remain in each row/copy-export but no longer widen
   the operating view; briefing journal content is also in Daily details. */
.dates-table td.c-dates-badhabits,
.dates-table td.c-dates-jtext{ display:none; }

.dates-num{ text-align:center; -moz-appearance:textfield; }
.dates-num::-webkit-inner-spin-button,
.dates-num::-webkit-outer-spin-button{ -webkit-appearance:none; margin:0; }

.dates-select{ cursor:pointer; }

/* Journal textarea cells */
.dates-textarea{
  resize:vertical;
  min-height:64px;
  height:80px;
  width:100%;
  vertical-align:top;
  line-height:1.5;
  white-space:pre-wrap;
}
.c-dates-tracking-json{ min-width:260px; max-width:360px; }
.dates-tracking-details{ min-width:240px; }
.dates-tracking-details>summary{ padding:6px 8px; color:var(--muted); cursor:pointer; font-size:11px; white-space:nowrap; }
.dates-tracking-details[open]>summary{ color:var(--text); }
.dates-tracking-details .dates-textarea{ width:330px; min-height:220px; margin:4px 6px 8px; font-family:var(--font-mono); font-size:10px; line-height:1.45; }
.c-dates-energy,.c-dates-focus,.c-dates-stress,.c-dates-sleep,.c-dates-work-quality,.c-dates-meditation,.c-dates-sales,.c-dates-counter{ min-width:82px; }

/* Journal Yes/No badge */
.dates-journal-yn{
  display:inline-block;
  font-size:var(--fs-caption); font-weight:600; letter-spacing:.04em;
  color:var(--faint);
}
.dates-journal-yn.is-yes{ color:var(--good); }

/* Section the briefing marked N/A - no editable number for that day */
.dates-na{
  display:inline-block; font-size:var(--fs-caption); font-weight:600;
  letter-spacing:.06em; color:var(--faint); opacity:.75;
}

/* Habit toggle button */
.dates-habit{
  appearance:none; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
  width:30px; height:26px; padding:0;
  background:transparent; border:1px solid var(--line-soft);
  color:var(--faint); font-size:11px; font-weight:700; line-height:1;
  transition:color var(--t-snap) var(--ease), background var(--t-snap) var(--ease), border-color var(--t-snap) var(--ease);
}
.dates-habit:hover{ border-color:var(--line-bright); color:var(--muted); }
.dates-habit.is-done{
  color:var(--good); background:rgba(var(--good-rgb),.12); border-color:rgba(var(--good-rgb),.45);
}
.dates-habit.is-done:hover{ background:rgba(var(--good-rgb),.22); }

/* ---- Qualitative Database — read-only cards over Briefing / Weekly Review text ---- */
.qualdb-section-label{
  padding:12px 16px 6px;
  color:var(--faint); font-size:var(--fs-caption); font-weight:600;
  text-transform:uppercase; letter-spacing:.06em;
}
.qualdb-card{
  margin:6px 16px;
  background:var(--card); border:1px solid var(--line);
}
.qualdb-card > summary{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:9px 12px; cursor:pointer; list-style:none;
  color:var(--text); font-size:var(--fs-small); font-weight:600;
}
.qualdb-card > summary::-webkit-details-marker{ display:none; }
.qualdb-card > summary:hover{ background:var(--card-hover); }
.qualdb-card[open] > summary{ border-bottom:1px solid var(--line); }
.qualdb-card-title{ font-variant-numeric:tabular-nums; }
.qualdb-card-count{ color:var(--accent2-soft); font-weight:500; font-size:var(--fs-caption); }
.qualdb-card-empty{ color:var(--faint); font-weight:500; font-size:var(--fs-caption); }
.qualdb-card-body{ padding:4px 14px 10px; display:flex; flex-direction:column; gap:10px; }
.qualdb-group-title{
  color:var(--muted); font-size:var(--fs-caption); font-weight:600;
  text-transform:uppercase; letter-spacing:.05em;
  margin:8px 0 4px;
}
.qualdb-field{ padding:4px 0; border-top:1px solid var(--line-soft); }
.qualdb-field:first-of-type{ border-top:none; }
.qualdb-field-label{ color:var(--faint); font-size:var(--fs-caption); margin-bottom:2px; }
.qualdb-field-value{ color:var(--text); font-size:var(--fs-small); white-space:pre-wrap; line-height:1.5; }
