:root {
  --ink: #e6eefb;
  --muted: #8fa2c4;
  --accent: #4cc9f0;
  --accent-dark: #2aa6d1;
  --bg: #0b0f1f;
  --card: #0b0f1f;
  --border: rgba(76, 201, 240, 0.15);
  --shadow: 0 18px 40px rgba(0, 0, 0, 0.35);
}

.theme-paper {
  --accent: #ff6b6b;
  --accent-dark: #d94a4a;
  --bg: #1b0b0b;
  --card: #1b0b0b;
  --border: rgba(255, 107, 107, 0.2);
}
body {
  font-family: "Manrope", "Segoe UI", system-ui, sans-serif;
  color: var(--ink);
  background: var(--bg);
}

.app-shell-shell {
  width: min(100%, 1300px);
}

.app-shell-body {
  padding-bottom: 28px;
}

body.app-theme-light {
  --ink: #132033;
  --muted: #5f6b7a;
  --bg: #edf1f5;
  --card: #f7f9fb;
  --border: rgba(17, 24, 39, 0.12);
  --shadow: 0 16px 34px rgba(15, 23, 42, 0.08);
  background: linear-gradient(180deg, #eef2f6 0%, #e7ecf2 100%);
}

body.app-theme-light .hero {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(247, 250, 253, 0.94));
  color: var(--ink);
  border-bottom: 1px solid rgba(17, 24, 39, 0.1);
}

body.app-theme-light .hero .text-muted {
  color: rgba(19, 32, 51, 0.62) !important;
}

body.app-theme-light .text-muted {
  color: rgba(15, 23, 36, 0.7) !important;
}

body.app-theme-light .card,
body.app-theme-light .shadow-soft,
body.app-theme-light .stat-card,
body.app-theme-light .glass {
  box-shadow: var(--shadow) !important;
}

body.app-theme-light .card,
body.app-theme-light .shadow-soft,
body.app-theme-light .stat-card,
body.app-theme-light .glass,
body.app-theme-light .dashboard-widget-option,
body.app-theme-light .dashboard-widget-preview,
body.app-theme-light .widget-preview-live-wrap,
body.app-theme-light .widget-preview-mini-card,
body.app-theme-light .widget-preview-mini-panel {
  background: rgba(247, 249, 251, 0.98);
}

body.app-theme-light .stat-value,
body.app-theme-light .stat-label,
body.app-theme-light .stat-sub,
body.app-theme-light .dashboard-widget-title,
body.app-theme-light .dashboard-widget-sub,
body.app-theme-light .dashboard-widget-preview-head,
body.app-theme-light .dashboard-widget-preview-body,
body.app-theme-light .widget-preview-mini-label,
body.app-theme-light .widget-preview-mini-value,
body.app-theme-light .widget-preview-mini-title,
body.app-theme-light .widget-preview-mini-rows span {
  color: #0f1724 !important;
}

body.app-theme-light .dashboard-widget-option {
  background: rgba(255, 255, 255, 0.96);
  border-color: rgba(17, 24, 39, 0.12);
}

body.app-theme-light .dashboard-widget-option.equipped {
  background: rgba(242, 245, 249, 0.96);
}

body.app-theme-light .dashboard-widget-preview,
body.app-theme-light .widget-preview-live-wrap,
body.app-theme-light .widget-preview-mini-card,
body.app-theme-light .widget-preview-mini-panel {
  border-color: rgba(17, 24, 39, 0.12);
}

body.app-theme-light .table {
  --bs-table-striped-bg: rgba(17, 24, 39, 0.03);
}

body.app-theme-light .table thead th {
  color: #5f6b7a;
}

body.app-theme-light .form-control,
body.app-theme-light .form-select,
body.app-theme-light textarea {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(247, 250, 252, 0.96)),
    #ffffff !important;
  border: 1px solid color-mix(in srgb, var(--accent) 18%, rgba(17, 24, 39, 0.14));
  color: var(--ink) !important;
}

body.app-theme-light .form-control:focus,
body.app-theme-light .form-select:focus,
body.app-theme-light textarea:focus {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 1), rgba(251, 252, 254, 1)),
    #ffffff !important;
  border-color: color-mix(in srgb, var(--accent) 56%, rgba(17, 24, 39, 0.18));
  box-shadow: 0 0 0 0.18rem color-mix(in srgb, var(--accent) 16%, transparent);
  color: var(--ink) !important;
}

body.app-theme-light .form-control::placeholder,
body.app-theme-light textarea::placeholder {
  color: rgba(95, 107, 122, 0.68);
}

body.app-theme-light .btn-outline-light {
  background: rgba(225, 231, 238, 0.92);
  border-color: rgba(17, 24, 39, 0.18);
  color: var(--ink);
}

body.app-theme-light .btn-outline-light:hover,
body.app-theme-light .btn-outline-light:focus-visible {
  background: rgba(210, 217, 226, 0.96);
  border-color: rgba(17, 24, 39, 0.34);
  color: var(--ink);
}

body.app-theme-light .btn-accent,
body.app-theme-light .btn-real,
body.app-theme-light .btn-paper,
body.app-theme-light .day-note-toggle,
body.app-theme-light .day-video-primary,
body.app-theme-light .dayflow-link-primary {
  color: #f8fafc;
  text-shadow: none;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.16), 0 8px 18px rgba(15, 23, 42, 0.22);
}

body.app-theme-light .btn-accent,
body.app-theme-light .btn-real,
body.app-theme-light .day-note-toggle,
body.app-theme-light .day-video-primary,
body.app-theme-light .dayflow-link-primary {
  background: linear-gradient(160deg, color-mix(in srgb, var(--accent) 82%, #1f2937) 0%, color-mix(in srgb, var(--accent) 72%, #0f172a) 100%);
  border-color: color-mix(in srgb, var(--accent) 44%, rgba(15, 23, 42, 0.34));
}

body.app-theme-light .btn-accent::before,
body.app-theme-light .btn-accent::after,
body.app-theme-light .btn-real::before,
body.app-theme-light .btn-real::after,
body.app-theme-light .btn-paper::before,
body.app-theme-light .btn-paper::after {
  opacity: 0.22;
}

body.app-theme-light .nav-tabs .nav-link.active {
  color: color-mix(in srgb, var(--accent) 82%, #132033);
  box-shadow: inset 0 -1px 0 color-mix(in srgb, var(--accent) 42%, transparent), 0 2px 10px color-mix(in srgb, var(--accent) 18%, transparent);
  text-shadow: none;
}

body.app-theme-light .welcome-overlay {
  background: rgba(244, 247, 251, 0.96);
}

body.app-theme-light .welcome-panel {
  border: 1px solid rgba(17, 24, 39, 0.1);
  background: #ffffff;
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.1);
}

body.app-theme-light .calendar-cell {
  background: rgba(255, 255, 255, 0.72);
}

body.app-theme-light .dashboard-widget-remove {
  border-color: rgba(17, 24, 39, 0.14);
  color: #132033;
  background: rgba(255, 255, 255, 0.94);
}

h1, h2, h3, .display-6 {
  font-family: "Space Grotesk", "Manrope", sans-serif;
}

.hero {
  background: var(--bg);
  color: white;
  border-bottom: 1px solid var(--border);
}

.hero .text-muted {
  color: rgba(230, 238, 251, 0.7) !important;
}

.hero-brand {
  gap: 8px;
}

.hero-sign {
  width: min(900px, 96vw);
  max-height: 250px;
  height: auto;
  object-fit: contain;
  mix-blend-mode: screen;
  filter: drop-shadow(0 0 14px rgba(76, 201, 240, 0.46)) drop-shadow(0 0 30px rgba(76, 201, 240, 0.26));
  transition: filter 0.18s ease;
}

.theme-paper .hero-sign {
  filter: hue-rotate(122deg) saturate(1.65) brightness(1.08)
    drop-shadow(0 0 16px rgba(255, 107, 107, 0.58))
    drop-shadow(0 0 34px rgba(255, 107, 107, 0.32));
}


.eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-size: 0.7rem;
  font-weight: 600;
  color: rgba(230, 238, 251, 0.7);
}

.glass {
  background: var(--card);
  border: 1px solid var(--border);
}

.card,
.shadow-soft,
.stat-card {
  background: var(--card) !important;
  border: 1px solid var(--border) !important;
  box-shadow: none !important;
  border-radius: 14px;
}

.stat-card {
  padding: 18px;
  height: 100%;
}

.stat-label {
  font-size: 0.75rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.stat-value {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--ink);
}

.section-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 1rem;
}

.btn-accent {
  background: var(--accent);
  border: none;
  color: #08101f;
  font-weight: 700;
}

.btn-accent:hover {
  background: var(--accent-dark);
  color: #08101f;
}

.btn-outline-light {
  border-color: rgba(255, 255, 255, 0.4);
  color: #fff;
}

.table,
.table-responsive {
  color: var(--ink);
  background: transparent;
}

.table thead th {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--muted);
}

.table-striped tbody tr:nth-of-type(odd) {
  background-color: rgba(255, 255, 255, 0.02);
}

.form-control,
.form-select,
textarea {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.052), rgba(255, 255, 255, 0.024)),
    color-mix(in srgb, var(--accent) 8%, #0b0f1f) !important;
  border: 1px solid color-mix(in srgb, var(--accent) 28%, rgba(143, 162, 196, 0.28));
  color: var(--ink);
  border-radius: 10px;
}

.form-control:focus,
.form-select:focus,
textarea:focus {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.034)),
    color-mix(in srgb, var(--accent) 12%, #0b0f1f) !important;
  border-color: color-mix(in srgb, var(--accent) 68%, rgba(255, 255, 255, 0.18));
  box-shadow: 0 0 0 0.18rem color-mix(in srgb, var(--accent) 22%, transparent);
  color: #fff;
}

input[type="range"],
.form-range {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 10px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(76, 201, 240, 0.32), rgba(143, 162, 196, 0.28));
  border: 1px solid rgba(76, 201, 240, 0.18);
  outline: none;
}

input[type="range"]::-webkit-slider-runnable-track,
.form-range::-webkit-slider-runnable-track {
  height: 10px;
  border-radius: 999px;
  background: transparent;
}

input[type="range"]::-webkit-slider-thumb,
.form-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 18px;
  height: 18px;
  margin-top: -4px;
  border-radius: 50%;
  border: 1px solid rgba(76, 201, 240, 0.7);
  background: #8ee8ff;
  box-shadow: 0 0 0 4px rgba(76, 201, 240, 0.18), 0 0 14px rgba(76, 201, 240, 0.36);
}

input[type="range"]::-moz-range-track,
.form-range::-moz-range-track {
  height: 10px;
  border-radius: 999px;
  background: rgba(143, 162, 196, 0.28);
  border: 1px solid rgba(76, 201, 240, 0.18);
}

input[type="range"]::-moz-range-progress,
.form-range::-moz-range-progress {
  height: 10px;
  border-radius: 999px;
  background: rgba(76, 201, 240, 0.44);
}

input[type="range"]::-moz-range-thumb,
.form-range::-moz-range-thumb {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 1px solid rgba(76, 201, 240, 0.7);
  background: #8ee8ff;
  box-shadow: 0 0 0 4px rgba(76, 201, 240, 0.18), 0 0 14px rgba(76, 201, 240, 0.36);
}

input[type="range"]:focus-visible,
.form-range:focus-visible {
  box-shadow: 0 0 0 3px rgba(76, 201, 240, 0.22);
}
.form-control::placeholder,
textarea::placeholder {
  color: rgba(230, 238, 251, 0.35);
}

.nav-tabs {
  border-bottom: 1px solid var(--border);
}

.main-tabs-rail {
  overflow: visible;
}

.mobile-scroll-tabs {
  flex-wrap: wrap;
}

.nav-tabs .nav-link {
  color: var(--muted);
  border: none;
  border-bottom: 2px solid transparent;
}

.nav-tabs .nav-link.active {
  color: #b8ecff;
  background: transparent;
  border-bottom: 2px solid #4cc9f0;
  box-shadow: inset 0 -1px 0 rgba(76, 201, 240, 0.45), 0 2px 10px rgba(76, 201, 240, 0.34);
  text-shadow: 0 0 8px rgba(76, 201, 240, 0.42);
}

.list-group-item-dark {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--ink);
}

.ticker-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.ticker-grid-rich {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ticker-grid-rich > .ticker-row-full {
  grid-column: 1 / -1;
}

.ticker-top-layout {
  align-items: start;
}

.ticker-panel-stack {
  display: grid;
  gap: 16px;
}

.mobile-stacked-section {
  min-width: 0;
}

.ticker-picture-compact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 16px;
}

.ticker-picture-stat {
  min-width: 0;
  padding-bottom: 10px;
  border-bottom: 1px solid color-mix(in srgb, var(--border) 88%, transparent);
}

.ticker-picture-stat .stat-value {
  font-size: clamp(1rem, 1.8vw, 1.24rem);
  line-height: 1.15;
}

.ticker-picture-stat .stat-sub {
  margin-top: 4px;
}

#tickerPicturePanel .card-body {
  padding: 16px 18px;
}

#tickerInfoNewsRail .card-body {
  padding: 13px 14px;
}

#tickerInfoNewsRail .ticker-grid,
#tickerInfoNewsRail .ticker-grid-rich {
  gap: 10px;
}

#tickerInfoNewsRail .ticker-grid > div,
#tickerInfoNewsRail .ticker-grid-rich > div,
#tickerInfoNewsRail .ticker-grid-rich > .ticker-row-full {
  padding: 8px 10px;
}

#tickerInfoNewsRail .stat-value {
  font-size: clamp(1rem, 1.8vw, 1.24rem);
  line-height: 1.15;
}

#tickerInfoNewsRail .stat-label,
#tickerInfoNewsRail .stat-sub {
  font-size: 0.75rem;
}

.ticker-company-value {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: clamp(1rem, 2vw, 1.35rem);
}

@media (min-width: 992px) {
  .ticker-grid-rich {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.ticker-header-actions {
  flex-wrap: wrap;
}

.ticker-strategy-editor {
  margin-top: 10px;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 10px;
}

.ticker-strategy-add {
  font-weight: 700;
  border-width: 1px;
}

.theme-real .ticker-strategy-add {
  border-color: rgba(76, 201, 240, 0.62);
  color: #c6f2ff;
  box-shadow: 0 0 12px rgba(76, 201, 240, 0.35), inset 0 0 0 1px rgba(76, 201, 240, 0.22);
}

.theme-paper .ticker-strategy-add {
  border-color: rgba(255, 107, 107, 0.62);
  color: #ffd2d2;
  box-shadow: 0 0 12px rgba(255, 107, 107, 0.35), inset 0 0 0 1px rgba(255, 107, 107, 0.22);
}

.ticker-strategy-edit-link {
  border: none;
  background: transparent;
  color: var(--muted);
  text-decoration: underline;
  text-underline-offset: 2px;
  padding: 0 2px;
}

.ticker-strategy-edit-link:hover {
  color: #dbe8ff;
}

.news-card {
  padding: 10px 12px;
  border-radius: 12px;
  background: transparent;
  border: 1px solid var(--border);
  margin-bottom: 10px;
}

.news-card.hidden-news-item {
  margin-top: 0;
}

.news-title {
  font-weight: 700;
  font-size: 0.9rem;
  margin-bottom: 4px;
}

.news-desc {
  color: var(--muted);
  font-size: 0.82rem;
  margin-bottom: 4px;
}

.news-expand-toggle {
  padding: 0;
  margin-top: 2px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--accent);
  font-size: 0.8rem;
  font-weight: 700;
  box-shadow: none;
}

.news-expand-toggle:hover,
.news-expand-toggle:focus-visible {
  background: transparent;
  color: color-mix(in srgb, var(--accent) 78%, white 22%);
  box-shadow: none;
  text-decoration: underline;
}

body.app-theme-light .section-title,
body.app-theme-light .news-title,
body.app-theme-light .news-desc,
body.app-theme-light .table tbody td,
body.app-theme-light .table thead th,
body.app-theme-light .ticker-chip,
body.app-theme-light .ticker-strategy-edit-link,
body.app-theme-light .form-label,
body.app-theme-light .ticker-company-value {
  color: #111827 !important;
}

body.app-theme-light .ticker-chip {
  background: rgba(243, 246, 249, 0.96);
  border-color: rgba(17, 24, 39, 0.12);
}

body.app-theme-light .ticker-chip:hover {
  background: rgba(234, 239, 245, 0.98);
  border-color: rgba(17, 24, 39, 0.22);
}

body.app-theme-light #notes .notes-blob {
  border-color: rgba(17, 24, 39, 0.14) !important;
  background: linear-gradient(165deg, rgba(252, 253, 255, 0.98), rgba(240, 244, 248, 0.98)) !important;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.6) !important;
}

body.app-theme-light #notes .notes-blob-add {
  border-color: rgba(17, 24, 39, 0.12) !important;
  background: linear-gradient(165deg, rgba(247, 249, 252, 0.98), rgba(236, 241, 246, 0.98)) !important;
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.06), inset 0 1px 0 rgba(255, 255, 255, 0.72) !important;
}

body.app-theme-light #notes .notes-blob-date,
body.app-theme-light #notes .notes-blob-text,
body.app-theme-light #notes .notes-blob-empty,
body.app-theme-light #notes .notes-blob-add-label,
body.app-theme-light #notes .notes-blob-add-plus {
  color: #111827 !important;
  text-shadow: none !important;
}

body.app-theme-light .news-card,
body.app-theme-light .ticker-history-card,
body.app-theme-light .ticker-grid > div,
body.app-theme-light .ticker-grid-rich > div,
body.app-theme-light .ticker-grid-rich > .ticker-row-full {
  background: rgba(246, 248, 251, 0.96);
  border-color: rgba(17, 24, 39, 0.12);
}

body.app-theme-light .news-expand-toggle {
  color: var(--accent);
}

body.app-theme-light .ticker-grid > div,
body.app-theme-light .ticker-grid-rich > div,
body.app-theme-light .ticker-grid-rich > .ticker-row-full {
  border-radius: 10px;
  padding: 10px 12px;
}

body.app-theme-light .ticker-picture-stat {
  border-bottom-color: rgba(17, 24, 39, 0.12);
}

.news-link {
  color: var(--accent);
  text-decoration: none;
}

.alert {
  border: 1px solid var(--border);
  background: transparent;
  color: var(--ink);
}

.text-muted {
  color: var(--muted) !important;
}

.calendar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}

.calendar-title-stack {
  display: grid;
  gap: 2px;
}

.calendar-title {
  font-size: 1.2rem;
  font-weight: 700;
}

.calendar-nav-label {
  font-size: 0.76rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.calendar-controls {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
}

.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 10px;
}

.calendar-cell {
  min-height: 90px;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 10px;
  background: transparent;
  position: relative;
}

.calendar-cell.empty {
  border: none;
  background: transparent;
}

.calendar-head {
  min-height: auto;
  text-transform: uppercase;
  font-size: 0.7rem;
  color: var(--muted);
  text-align: center;
}

.calendar-day {
  font-size: 0.9rem;
  margin-bottom: 6px;
  color: var(--muted);
}

.calendar-pl {
  font-weight: 700;
}

.pl-positive {
  border-color: rgba(46, 204, 113, 0.6);
  background: rgba(46, 204, 113, 0.12);
}

.pl-negative {
  border-color: rgba(231, 76, 60, 0.6);
  background: rgba(231, 76, 60, 0.12);
}


.table {
  --bs-table-bg: transparent;
  --bs-table-striped-bg: rgba(255, 255, 255, 0.03);
  --bs-table-color: var(--ink);
}

.table > :not(caption) > * > * {
  background-color: transparent !important;
}

.summary-table-collapse {
  position: relative;
  width: 100%;
  padding-bottom: 38px;
  overflow: visible;
}

.summary-table-collapse .table tbody tr {
  transform-origin: center top;
}

.summary-table-collapse.is-animating {
  pointer-events: none;
}

.summary-table-table-wrap {
  width: 100%;
  overflow: hidden;
  transition: max-height 320ms cubic-bezier(0.4, 0, 0.2, 1);
  will-change: max-height;
}

.summary-table-collapse.summary-table-static {
  padding-bottom: 0;
}

.summary-table-collapse.summary-table-collapsed tbody tr.summary-table-extra-row {
  display: none;
}

.summary-table-collapse.summary-table-expanded tbody tr.summary-table-extra-row,
.summary-table-collapse.is-collapsing tbody tr.summary-table-extra-row {
  display: table-row;
}

.summary-table-collapse.is-expanding tbody tr.summary-table-extra-row {
  animation: summaryRowReveal 300ms cubic-bezier(0.2, 0.82, 0.2, 1) both;
}

.summary-table-collapse.is-collapsing tbody tr.summary-table-extra-row {
  animation: summaryRowHide 180ms ease both;
}

.summary-table-toggle {
  position: absolute;
  left: 50%;
  bottom: 2px;
  display: inline-grid;
  width: 36px;
  height: 28px;
  place-items: center;
  padding: 0;
  border: 1px solid color-mix(in srgb, var(--accent) 62%, rgba(255, 255, 255, 0.28));
  border-radius: 999px;
  color: color-mix(in srgb, var(--accent) 78%, #ffffff);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.04)),
    color-mix(in srgb, var(--accent) 14%, rgba(13, 20, 31, 0.92));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.28),
    0 0 12px color-mix(in srgb, var(--accent) 42%, transparent),
    0 0 26px color-mix(in srgb, var(--accent) 20%, transparent);
  transform: translateX(-50%);
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease, background 0.2s ease;
}

.summary-table-toggle::before {
  position: absolute;
  inset: -8px -14px;
  border-radius: 999px;
  background: radial-gradient(circle, color-mix(in srgb, var(--accent) 22%, transparent), transparent 68%);
  content: "";
  pointer-events: none;
  opacity: 0.72;
  animation: summaryToggleGlow 2.4s ease-in-out infinite;
}

.summary-table-toggle:hover,
.summary-table-toggle:focus-visible {
  border-color: color-mix(in srgb, var(--accent) 88%, #ffffff);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0.06)),
    color-mix(in srgb, var(--accent) 24%, rgba(13, 20, 31, 0.92));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.34),
    0 0 18px color-mix(in srgb, var(--accent) 62%, transparent),
    0 0 40px color-mix(in srgb, var(--accent) 32%, transparent);
  transform: translateX(-50%) translateY(-2px) scale(1.04);
}

.summary-table-collapse.is-animating .summary-table-toggle,
.summary-table-collapse.is-animating .summary-table-toggle:hover,
.summary-table-collapse.is-animating .summary-table-toggle:focus-visible {
  transform: translateX(-50%);
}

.summary-table-toggle-icon {
  display: block;
  width: 9px;
  height: 9px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform 0.18s ease;
}

.summary-table-expanded .summary-table-toggle-icon {
  transform: translateY(2px) rotate(225deg);
}

.summary-table-static .summary-table-toggle {
  display: none;
}

@keyframes summaryRowReveal {
  from {
    opacity: 0;
    filter: blur(1px);
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0);
  }
}

@keyframes summaryRowHide {
  from {
    opacity: 1;
    filter: blur(0);
  }
  to {
    opacity: 0;
    filter: blur(1px);
  }
}

@keyframes summaryToggleGlow {
  0%, 100% {
    opacity: 0.48;
    transform: scale(0.96);
  }
  50% {
    opacity: 0.86;
    transform: scale(1.05);
  }
}

.welcome-card {
  margin-top: 16px;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.welcome-title {
  font-size: 1.1rem;
  font-weight: 700;
}

.calendar-wrap {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 160px;
  gap: 12px;
}

.calendar-months {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
}

.calendar-year-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.calendar-year-card {
  border: 1px solid var(--border);
  border-radius: 12px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.015)),
    var(--card);
  padding: 12px;
  display: grid;
  gap: 10px;
  text-align: left;
  color: var(--ink);
  transition: border-color 0.16s ease, transform 0.16s ease, box-shadow 0.16s ease;
}

.calendar-year-card:hover,
.calendar-year-card:focus-visible {
  border-color: color-mix(in srgb, var(--accent) 44%, var(--border));
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
  transform: translateY(-1px);
}

.calendar-year-card-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}

.calendar-year-card-title {
  font-size: 0.98rem;
  font-weight: 700;
}

.calendar-year-card-recap {
  font-size: 0.84rem;
  font-weight: 700;
}

.calendar-year-card-recap.positive {
  color: #2ecc71;
}

.calendar-year-card-recap.negative {
  color: #e74c3c;
}

.calendar-year-card-recap.flat {
  color: var(--muted);
}

.calendar-mini-weekdays,
.calendar-mini-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 4px;
}

.calendar-mini-weekday {
  text-align: center;
  font-size: 0.62rem;
  text-transform: uppercase;
  color: var(--muted);
}

.calendar-mini-cell {
  min-height: 26px;
  border: 1px solid var(--border);
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.68rem;
  color: var(--muted);
  background: transparent;
}

.calendar-mini-cell.empty {
  border-color: transparent;
  background: transparent;
}

.calendar-mini-cell.no-trades {
  color: rgba(255, 255, 255, 0.44);
}

.calendar-mini-cell.pl-positive {
  border-color: rgba(46, 204, 113, 0.72);
  background: rgba(46, 204, 113, 0.28);
  color: #effff5;
}

.calendar-mini-cell.pl-negative {
  border-color: rgba(231, 76, 60, 0.74);
  background: rgba(231, 76, 60, 0.28);
  color: #fff1f0;
}

.calendar-mini-cell.market-holiday {
  border-color: rgba(255, 214, 122, 0.58);
  background: rgba(255, 214, 122, 0.18);
  color: #fff0c7;
}

.calendar-month-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 160px;
  gap: 12px;
  align-items: start;
}

.weekly-column {
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 10px;
}

.weekly-head {
  font-size: 0.75rem;
  text-transform: uppercase;
  color: var(--muted);
  letter-spacing: 0.08em;
}

.weekly-cell {
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 10px;
  margin-bottom: 10px;
  text-align: center;
  font-weight: 700;
}

.weekly-cell:last-child {
  margin-bottom: 0;
}

.app-content.hidden {
  display: none;
}

.welcome-overlay {
  position: fixed;
  inset: 0;
  background: #121416;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

.welcome-overlay.hidden {
  display: none;
}

.welcome-panel {
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  padding: 32px;
  text-align: center;
  background: #1a1d21;
}

.calendar-board {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.calendar-weekdays {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 10px;
}

.calendar-weekday {
  text-align: center;
  text-transform: uppercase;
  font-size: 0.7rem;
  color: var(--muted);
  letter-spacing: 0.1em;
}

.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  grid-auto-rows: 90px;
  gap: 10px;
}

.weekly-grid {
  display: grid;
  grid-auto-rows: 90px;
  gap: 10px;
}


.calendar-recap {
  font-size: 1.9rem;
  font-weight: 800;
  line-height: 1;
  color: var(--accent);
}

.calendar-recap.monthly-positive {
  color: #2ecc71;
}

.calendar-recap.monthly-negative {
  color: #e74c3c;
}

.calendar-recap.monthly-flat {
  color: var(--muted);
}

.calendar-bottom {
  margin-top: 16px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 12px;
  display: grid;
  gap: 10px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.012)),
    color-mix(in srgb, var(--card) 92%, #05070d);
}

.calendar-day-detail-card {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.012)),
    color-mix(in srgb, var(--card) 92%, #05070d) !important;
}

.calendar-selected {
  font-weight: 700;
}

.calendar-tickers {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.ticker-chip {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--ink);
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 0.95rem;
}

.link-form {
  display: flex;
  gap: 10px;
  align-items: center;
}

.link-actions {
  display: flex;
  gap: 8px;
  align-items: center;
}

.btn-play {
  background: #ffffff;
  color: #0b0f1f;
  font-weight: 700;
}

.btn-edit {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--ink);
  font-size: 0.95rem;
  padding: 4px 10px;
}

.hidden {
  display: none !important;
}

.calendar-click {
  cursor: pointer;
}

.btn-paper {
  background: #ff6b6b;
  border: none;
  color: #0b0f1f;
  font-weight: 700;
}

.btn-paper:hover {
  background: #d94a4a;
  color: #0b0f1f;
}

.welcome-actions {
  margin-top: 16px;
  display: grid;
  gap: 12px;
}

.mode-form {
  width: 220px;
}

.paper-banner {
  background: rgba(255, 107, 107, 0.2);
  color: #ffb3b3;
  border-bottom: 1px solid rgba(255, 107, 107, 0.4);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-weight: 700;
  font-size: 0.75rem;
  text-align: center;
  padding: 8px 12px;
  transform: translate3d(0, 0, 0);
  transform-origin: top center;
  will-change: transform, opacity, filter;
  contain: paint style;
}

.btn-real {
  background: #4cc9f0;
  border: none;
  color: #08101f;
  font-weight: 700;
}

.btn-real:hover {
  background: #2aa6d1;
  color: #08101f;
}

select.form-select {
  background-color: color-mix(in srgb, var(--accent) 10%, #0b0f1f) !important;
  color: #ffffff !important;
}

.theme-paper select.form-select {
  background-color: color-mix(in srgb, var(--accent) 10%, #1b0b0b) !important;
}

select.form-select option {
  background-color: color-mix(in srgb, var(--accent) 10%, #0b0f1f);
  color: #ffffff;
}

.theme-paper select.form-select option {
  background-color: color-mix(in srgb, var(--accent) 10%, #1b0b0b);
}

.calendar-cell.no-trades {
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(255, 255, 255, 0.06);
  color: var(--muted);
}

.calendar-count {
  font-size: 0.64rem;
  color: var(--muted);
  margin-top: 3px;
}

.stat-sub {
  font-size: 0.75rem;
  color: var(--muted);
  margin-top: 4px;
}

.dashboard-insight-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.dashboard-placement-surface {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 16px;
  align-items: start;
  margin-bottom: 1.5rem;
}

.dashboard-placement-surface.hidden {
  display: none !important;
}

.dashboard-placement-active .dashboard-widget-row {
  display: none !important;
}

.dashboard-placement-item {
  position: relative;
  min-width: 0;
  width: auto;
  max-width: none;
  flex: initial;
  cursor: grab;
}

.dashboard-placement-item[data-dashboard-span="3"] { grid-column: span 3; }
.dashboard-placement-item[data-dashboard-span="4"] { grid-column: span 4; }
.dashboard-placement-item[data-dashboard-span="6"] { grid-column: span 6; }
.dashboard-placement-item[data-dashboard-span="8"] { grid-column: span 8; }
.dashboard-placement-item[data-dashboard-span="12"] { grid-column: span 12; }

.dashboard-placement-item > .row,
.dashboard-placement-item.row {
  margin: 0 !important;
}

.dashboard-placement-item > [class*="col-"],
.dashboard-placement-item.row > [class*="col-"] {
  width: 100%;
  flex: 0 0 100%;
  max-width: 100%;
  padding-left: 0;
  padding-right: 0;
}

.dashboard-placement-item.dashboard-dragging {
  cursor: grabbing;
  z-index: 10000;
}

.dashboard-placement-item * {
  user-select: none;
}

.dashboard-placement-placeholder {
  min-height: 110px;
  border-radius: 8px;
  border: 1px dashed color-mix(in srgb, var(--accent) 78%, rgba(255, 255, 255, 0.18));
  background: color-mix(in srgb, var(--accent) 12%, rgba(20, 22, 28, 0.82));
}

body.dashboard-placement-drag-active {
  user-select: none;
}

.dashboard-placement-item.dashboard-placement-over {
  outline: 2px dashed color-mix(in srgb, var(--accent) 78%, rgba(255, 255, 255, 0.18));
  outline-offset: 6px;
}

.dashboard-board {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 16px;
  align-items: start;
}

.dashboard-board.hidden {
  display: none !important;
}

.dashboard-board-ready .dashboard-widget-row {
  display: none !important;
}

.dashboard-board-ready .dashboard-mini-toolbar,
.dashboard-board-ready #dashboardWidgetRangeControls {
  display: none !important;
}

.dashboard-board-item {
  position: relative;
  min-width: 0;
}

.dashboard-board-item[data-board-span="3"] { grid-column: span 3; }
.dashboard-board-item[data-board-span="4"] { grid-column: span 4; }
.dashboard-board-item[data-board-span="6"] { grid-column: span 6; }
.dashboard-board-item[data-board-span="8"] { grid-column: span 8; }
.dashboard-board-item[data-board-span="12"] { grid-column: span 12; }

.dashboard-board-item > .row,
.dashboard-board-item.row {
  margin: 0 !important;
}

.dashboard-board-item > [class*="col-"],
.dashboard-board-item.row > [class*="col-"] {
  width: 100%;
  flex: 0 0 100%;
  max-width: 100%;
  padding-left: 0;
  padding-right: 0;
}

.dashboard-insight {
  min-height: 112px;
  border: 1px solid rgba(143, 162, 196, 0.2);
  border-radius: 8px;
  padding: 14px;
  background: rgba(255, 255, 255, 0.035);
}

.modal-backdrop.show {
  opacity: 0.74;
  background:
    radial-gradient(circle at 20% 15%, color-mix(in srgb, var(--accent) 24%, transparent), transparent 42%),
    radial-gradient(circle at 80% 90%, rgba(143, 162, 196, 0.16), transparent 38%),
    #030712;
}

.modal-content {
  background:
    radial-gradient(circle at 18% 0%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 36%),
    linear-gradient(160deg, color-mix(in srgb, var(--accent) 8%, #111827), #070b16 70%) !important;
  border: 1px solid color-mix(in srgb, var(--accent) 34%, rgba(255, 255, 255, 0.08)) !important;
  border-radius: 8px;
  box-shadow:
    0 22px 70px rgba(0, 0, 0, 0.52),
    0 0 34px color-mix(in srgb, var(--accent) 18%, transparent);
}

.modal-header {
  border-bottom: 1px solid color-mix(in srgb, var(--accent) 20%, rgba(255, 255, 255, 0.08)) !important;
}

.modal-title {
  color: #f5f9ff;
}

.login-body {
  min-height: 100vh;
}

.login-shell {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
  contain: layout paint style;
  isolation: isolate;
  animation: loginShellIn 420ms cubic-bezier(0.2, 0.82, 0.2, 1) both;
}

.login-card {
  width: min(440px, 100%);
  border-radius: 8px;
  padding: 24px;
  contain: layout paint style;
  backface-visibility: hidden;
  transform: translate3d(0, 0, 0);
  will-change: transform, opacity;
  animation: loginCardIn 460ms cubic-bezier(0.2, 0.82, 0.2, 1) 60ms both;
}

.login-card .btn {
  touch-action: manipulation;
}

.login-card h1 {
  font-size: 1.5rem;
  margin: 8px 0;
}

.login-create-profile {
  border-top: 1px solid rgba(148, 163, 184, 0.16);
  padding-top: 14px;
}

.login-create-profile-toggle {
  width: 100%;
  min-height: 46px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 9px 18px 9px 14px;
  border: 1px solid rgba(148, 163, 184, 0.2);
  border-radius: 8px;
  background: transparent;
  color: #d9e3f3;
  cursor: pointer;
  user-select: none;
  transition: border-color 0.18s ease, background 0.18s ease, color 0.18s ease;
}

.login-create-profile-toggle:hover,
.login-create-profile-toggle:focus-visible {
  border-color: rgba(226, 232, 240, 0.42);
  background: rgba(255, 255, 255, 0.035);
  outline: none;
}

.login-create-profile-arrow {
  position: relative;
  z-index: 1;
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  color: color-mix(in srgb, var(--accent) 42%, #ffffff);
  transform: translate3d(0, 0, 0);
  transition: color 0.18s ease, transform 0.22s cubic-bezier(0.2, 0.82, 0.2, 1);
}

.login-create-profile-arrow::before {
  content: "";
  width: 10px;
  height: 10px;
  border-right: 3px solid currentColor;
  border-bottom: 3px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  filter: drop-shadow(0 0 6px color-mix(in srgb, var(--accent) 76%, transparent));
  transition: transform 0.22s cubic-bezier(0.2, 0.82, 0.2, 1), filter 0.18s ease;
}

.login-create-profile-toggle:hover .login-create-profile-arrow,
.login-create-profile-toggle:focus-visible .login-create-profile-arrow {
  color: #ffffff;
  transform: translate3d(3px, 0, 0);
}

.login-create-profile.is-open .login-create-profile-arrow::before {
  transform: translateY(2px) rotate(225deg);
}

.login-create-profile.is-open .login-create-profile-arrow {
  transform: translate3d(3px, 0, 0);
}

.login-create-profile-panel-wrap {
  display: grid;
  grid-template-rows: 0fr;
  margin-top: 0;
  overflow: hidden;
  opacity: 0;
  transition:
    grid-template-rows 260ms cubic-bezier(0.2, 0.82, 0.2, 1),
    opacity 160ms ease,
    margin-top 260ms cubic-bezier(0.2, 0.82, 0.2, 1);
}

.login-create-profile.is-open .login-create-profile-panel-wrap {
  grid-template-rows: 1fr;
  margin-top: 12px;
  opacity: 1;
}

.login-create-profile-panel {
  min-height: 0;
  display: grid;
  gap: 12px;
  transform: translate3d(0, -8px, 0);
  transition: transform 260ms cubic-bezier(0.2, 0.82, 0.2, 1);
}

.login-create-profile.is-open .login-create-profile-panel {
  transform: translate3d(0, 0, 0);
}

.login-mark {
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.login-loading-overlay {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: grid;
  place-items: center;
  padding: 24px;
  pointer-events: none;
  opacity: 0;
  transform: translate3d(0, 10px, 0);
  transition: opacity 180ms ease, transform 220ms cubic-bezier(0.2, 0.82, 0.2, 1);
  will-change: opacity, transform;
}

.login-loading-panel {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  padding: 10px 16px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 999px;
  background: rgba(16, 21, 30, 0.88);
  color: #f8fbff;
  font-weight: 800;
  box-shadow: 0 18px 46px rgba(0, 0, 0, 0.34);
  transform: translate3d(0, 0, 0);
}

.login-loading-spinner {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.26);
  border-top-color: #ffffff;
  animation: loginSpinner 720ms linear infinite;
}

.login-body.login-is-submitting .login-card {
  opacity: 0.72;
  transform: translate3d(0, -8px, 0) scale(0.985);
  transition: opacity 180ms ease, transform 220ms cubic-bezier(0.4, 0, 0.2, 1);
}

.login-body.login-is-submitting .login-loading-overlay {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.login-body.login-is-submitting .login-card button {
  cursor: progress;
}

@keyframes loginShellIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes loginCardIn {
  from {
    opacity: 0;
    transform: translate3d(0, 18px, 0) scale(0.985);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@keyframes loginSpinner {
  to {
    transform: rotate(360deg);
  }
}

.profile-switch-overlay {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: grid;
  place-items: center;
  padding: 24px;
  pointer-events: none;
  opacity: 0;
  transform: translate3d(0, 10px, 0);
  background:
    radial-gradient(circle at 50% 45%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 34%),
    rgba(12, 17, 24, 0.64);
  transition: opacity 180ms ease, transform 220ms cubic-bezier(0.2, 0.82, 0.2, 1);
  contain: layout paint style;
}

.profile-switch-panel {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  min-width: min(340px, calc(100vw - 48px));
  max-width: calc(100vw - 48px);
  padding: 16px 18px;
  border: 1px solid color-mix(in srgb, var(--accent) 42%, rgba(255, 255, 255, 0.18));
  border-radius: 18px;
  background: rgba(19, 25, 35, 0.94);
  box-shadow:
    0 18px 52px rgba(0, 0, 0, 0.38),
    0 0 34px color-mix(in srgb, var(--accent) 28%, transparent);
  color: #eef4ff;
  transform: translate3d(0, 12px, 0) scale(0.98);
  opacity: 0;
  animation: profileSwitchPanelIn 360ms cubic-bezier(0.2, 0.82, 0.2, 1) both paused;
  will-change: transform, opacity;
}

.profile-switch-ring {
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  border-radius: 999px;
  border: 2px solid color-mix(in srgb, var(--accent) 24%, rgba(255, 255, 255, 0.2));
  border-top-color: var(--accent);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--accent) 18%, transparent),
    0 0 26px color-mix(in srgb, var(--accent) 40%, transparent);
  animation: profileSwitchSpin 760ms linear infinite;
}

.profile-switch-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.profile-switch-eyebrow {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--accent) 72%, #ffffff);
}

.profile-switch-name {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.25;
  color: #f8fbff;
  overflow-wrap: anywhere;
}

body.profile-switch-is-leaving {
  cursor: progress;
}

body.profile-switch-is-leaving .profile-switch-overlay {
  pointer-events: auto;
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

body.profile-switch-is-leaving .profile-switch-panel {
  animation-play-state: running;
}

.profile-switch-target-paper .paper-banner {
  display: block;
  animation: paperBannerFlowDown 360ms cubic-bezier(0.2, 0.82, 0.2, 1) both;
  filter: saturate(1.08);
}

.profile-switch-target-real .paper-banner {
  animation: paperBannerFlowUp 260ms cubic-bezier(0.4, 0, 0.2, 1) both;
  filter: saturate(0.86);
}

.profile-switch-is-leaving .app-shell-root,
.profile-switch-is-leaving .welcome-overlay:not(.hidden) {
  transform: translate3d(0, -8px, 0) scale(0.992);
  transition:
    transform 220ms cubic-bezier(0.4, 0, 0.2, 1),
    opacity 180ms ease,
    filter 180ms ease;
  pointer-events: none;
  will-change: transform, opacity;
}

.profile-switch-is-leaving .welcome-overlay:not(.hidden),
.profile-switch-is-leaving .app-shell-root .hero,
.profile-switch-is-leaving .app-shell-root .app-shell-shell {
  opacity: 0.34;
  filter: saturate(0.86);
}

.profile-switch-is-leaving [data-profile-switch-link] {
  pointer-events: none;
}

@keyframes profileSwitchPanelIn {
  from {
    opacity: 0;
    transform: translate3d(0, 16px, 0) scale(0.975);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@keyframes profileSwitchSpin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes paperBannerFlowDown {
  from {
    opacity: 0;
    transform: translate3d(0, -100%, 0);
    filter: blur(2px) saturate(0.92);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    filter: blur(0) saturate(1.08);
  }
}

@keyframes paperBannerFlowUp {
  from {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    filter: blur(0) saturate(1);
  }
  to {
    opacity: 0;
    transform: translate3d(0, -100%, 0);
    filter: blur(2px) saturate(0.86);
  }
}

@media (prefers-reduced-motion: reduce) {
  .login-shell,
  .login-card,
  .login-loading-spinner,
  .profile-switch-panel,
  .profile-switch-ring,
  .profile-switch-target-paper .paper-banner,
  .profile-switch-target-real .paper-banner {
    animation-duration: 1ms !important;
  }

  .login-loading-overlay,
  .login-create-profile-panel-wrap,
  .login-create-profile-panel,
  .login-create-profile-arrow,
  .login-create-profile-arrow::before,
  .login-body.login-is-submitting .login-card,
  .profile-switch-overlay,
  .profile-switch-is-leaving .app-shell-root,
  .profile-switch-is-leaving .welcome-overlay:not(.hidden) {
    transition-duration: 1ms !important;
  }
}

.login-body.login-theme-dark {
  --accent: #ffffff;
  --accent-dark: #cbd5e1;
  color: #f8fbff;
  background:
    radial-gradient(circle at 16% 14%, rgba(255, 255, 255, 0.08), transparent 30%),
    radial-gradient(circle at 84% 88%, rgba(148, 163, 184, 0.12), transparent 34%),
    linear-gradient(180deg, #10141c 0%, #161b25 54%, #1c222e 100%);
}

.login-body.login-theme-dark .login-card {
  border: 1px solid rgba(255, 255, 255, 0.1);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.025), rgba(255, 255, 255, 0)),
    #171d27;
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.4);
}

.login-body.login-theme-dark .login-mark,
.login-body.login-theme-dark .form-label {
  color: #f8fbff;
}

.login-body.login-theme-dark .text-muted {
  color: #a9b4c3 !important;
}

.login-body.login-theme-dark .form-control {
  background: #202733 !important;
  border-color: rgba(255, 255, 255, 0.1);
  color: #ffffff !important;
  box-shadow: none;
}

.login-body.login-theme-dark .form-control:focus {
  background: #252d39 !important;
  border-color: rgba(255, 255, 255, 0.34);
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.08);
}

.login-body.login-theme-dark .form-control::placeholder {
  color: #8d99aa;
}

.login-body.login-theme-dark .btn-accent {
  background: #ffffff !important;
  border-color: #ffffff !important;
  color: #111827 !important;
  text-shadow: none;
  box-shadow: 0 12px 26px rgba(255, 255, 255, 0.16) !important;
}

.login-body.login-theme-dark .btn-accent:hover {
  box-shadow: 0 16px 32px rgba(255, 255, 255, 0.22) !important;
}

.login-body.login-theme-dark .btn-outline-light {
  border-color: rgba(255, 255, 255, 0.22);
  color: #ffffff;
}

.login-body.login-theme-dark .btn-outline-light:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.5);
  color: #ffffff;
}

.login-body.login-theme-dark .login-create-profile summary {
  color: #d9e3f3;
}

.login-body.login-theme-light {
  --accent: #111827;
  --accent-dark: #020617;
  color: #111827;
  background: linear-gradient(180deg, #ffffff 0%, #f7f9fc 58%, #eef2f7 100%);
}

.login-body.login-theme-light .login-card {
  border: 1px solid rgba(17, 24, 39, 0.1);
  background: #ffffff;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.14);
}

.login-body.login-theme-light .login-mark {
  color: #111827;
}

.login-body.login-theme-light .text-muted {
  color: #64748b !important;
}

.login-body.login-theme-light .form-label {
  color: #1f2937;
}

.login-body.login-theme-light .form-control {
  background: #f8fafc !important;
  border-color: rgba(17, 24, 39, 0.16);
  color: #111827 !important;
  box-shadow: none;
}

.login-body.login-theme-light .form-control:focus {
  background: #ffffff !important;
  border-color: #111827;
  box-shadow: 0 0 0 3px rgba(17, 24, 39, 0.12);
}

.login-body.login-theme-light .form-control::placeholder {
  color: #94a3b8;
}

.login-body.login-theme-light .btn-accent {
  background: linear-gradient(160deg, #334155 0%, #111827 52%, #020617 100%) !important;
  border-color: #111827 !important;
  color: #ffffff !important;
  box-shadow: 0 12px 26px rgba(15, 23, 42, 0.22) !important;
}

.login-body.login-theme-light .btn-accent:hover {
  box-shadow: 0 16px 32px rgba(15, 23, 42, 0.28) !important;
}

.login-body.login-theme-light .btn-outline-light {
  border-color: rgba(17, 24, 39, 0.22);
  color: #111827;
}

.login-body.login-theme-light .btn-outline-light:hover {
  background: #111827;
  border-color: #111827;
  color: #ffffff;
}

.login-body.login-theme-light .login-create-profile {
  border-top-color: rgba(17, 24, 39, 0.1);
}

.login-body.login-theme-light .login-create-profile-toggle {
  color: #111827;
  border-color: rgba(17, 24, 39, 0.14);
  background: #f8fafc;
}

.login-body.login-theme-light .login-create-profile-toggle:hover,
.login-body.login-theme-light .login-create-profile-toggle:focus-visible {
  border-color: rgba(17, 24, 39, 0.32);
  background: #ffffff;
}

.login-body.login-theme-light .login-create-profile-arrow {
  color: #111827;
}

.login-body.login-theme-light .login-create-profile-arrow::before {
  filter: drop-shadow(0 0 5px rgba(15, 23, 42, 0.18));
}

.login-body.login-theme-light .login-create-profile-toggle:hover .login-create-profile-arrow,
.login-body.login-theme-light .login-create-profile-toggle:focus-visible .login-create-profile-arrow {
  color: #111827;
}

.auth-remember-row {
  display: flex;
  align-items: center;
  gap: 9px;
  color: #dce9ff;
  font-size: 0.9rem;
}

.login-body .auth-remember-row {
  color: inherit;
}

.auth-remember-row input {
  accent-color: var(--accent);
}

.login-theme-toggle {
  display: inline-flex;
  gap: 8px;
  flex-wrap: wrap;
}

.login-theme-option {
  position: relative;
  display: inline-flex;
}

.login-theme-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.login-theme-option span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-width: 102px;
  justify-content: center;
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid rgba(143, 162, 196, 0.22);
  background: rgba(255, 255, 255, 0.03);
  color: #dce9ff;
  font-weight: 700;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.login-theme-option input:checked + span {
  border-color: color-mix(in srgb, var(--accent) 60%, rgba(255, 255, 255, 0.2));
  background: color-mix(in srgb, var(--accent) 16%, rgba(255, 255, 255, 0.04));
  color: #ffffff;
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 36%, transparent), 0 0 18px color-mix(in srgb, var(--accent) 26%, transparent);
}

.login-theme-option input:focus-visible + span,
.login-theme-option span:hover {
  border-color: color-mix(in srgb, var(--accent) 44%, rgba(255, 255, 255, 0.2));
}

#setup > .row {
  margin-bottom: 16px !important;
}

#setup > .card.shadow-soft {
  margin-top: 16px;
}

#setup > .row + .row {
  margin-top: 0;
}

#setup .card-body {
  gap: 12px;
}

.setup-layout {
  display: grid;
  gap: 16px;
}

.setup-section-stack {
  display: grid;
  gap: 14px;
}

.setup-import-card {
  align-self: start;
}

.setup-import-body {
  gap: 12px;
}

.setup-import-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 132px;
  gap: 10px;
  align-items: center;
}

.setup-import-file,
.setup-import-submit {
  min-height: 42px;
}

.setup-import-file {
  height: 42px;
  padding: 5px 0.7rem;
  line-height: 30px;
}

.setup-import-submit {
  border-radius: 10px;
  box-shadow: none !important;
}

.setup-import-submit:hover,
.setup-import-submit:focus-visible {
  box-shadow: 0 0 16px color-mix(in srgb, var(--accent) 28%, transparent) !important;
}

.setup-divider {
  height: 1px;
  background: var(--border);
  opacity: 0.9;
}

.setup-action-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.ticker-note-form {
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 10px;
  margin-top: 10px;
}

.trade-link {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 180px;
}

.trade-link-actions {
  display: flex;
  gap: 6px;
  align-items: center;
}

.trade-link-input {
  background: #0b0f1f;
  color: var(--ink);
  border: 1px solid var(--border);
}

.paper-banner.hidden {
  display: none;
}


.welcome-actions .welcome-real {
  background: #4cc9f0;
  border-color: #4cc9f0;
  color: #031223;
}
.welcome-actions .welcome-real:hover {
  background: #2aa6d1;
}
.welcome-actions .welcome-paper {
  background: #ff6b6b;
  border-color: #ff6b6b;
  color: #1a0b0b;
}
.welcome-actions .welcome-paper:hover {
  background: #d94a4a;
}


.trade-filter-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
  align-items: start;
}

.trade-filter-actions {
  display: flex;
  align-items: end;
  padding-top: 25px;
}

.trade-filter-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.trade-filter-summary span {
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 0.82rem;
  color: var(--muted);
}

.chart-range {
  margin-top: 10px;
  font-size: 0.82rem;
}

.welcome-chooser {
  width: min(460px, 92vw);
  box-shadow: var(--shadow);
}

.welcome-copy {
  margin-top: 6px;
}


.weekly-value {
  font-weight: 700;
}

.weekly-count {
  margin-top: 4px;
  font-size: 0.66rem;
  color: var(--muted);
}

.trade-filter-search {
  grid-column: 1 / -1;
}

.trade-row {
  cursor: pointer;
}

.trade-row:hover > td {
  background: color-mix(in srgb, var(--accent) 8%, transparent);
}

.trade-row:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: -2px;
}

.trade-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--border);
}

.trade-detail-field {
  min-width: 0;
  padding: 12px 14px;
  background: color-mix(in srgb, var(--card) 96%, #000000);
}

.trade-detail-field span,
.trade-detail-field strong {
  display: block;
}

.trade-detail-field span {
  margin-bottom: 4px;
  color: var(--muted);
  font-size: 0.72rem;
  text-transform: uppercase;
}

.trade-detail-field strong {
  overflow-wrap: anywhere;
  color: var(--text);
  font-size: 0.94rem;
}

.trade-detail-wide {
  grid-column: 1 / -1;
}

@media (max-width: 575.98px) {
  .trade-detail-grid {
    grid-template-columns: 1fr;
  }

  .trade-detail-wide {
    grid-column: auto;
  }
}





.dayflow-table td,
.dayflow-table th {
  white-space: nowrap;
}

.dayflow-pos {
  color: #2ecc71;
  font-weight: 700;
}

.dayflow-neg {
  color: #e74c3c;
  font-weight: 700;
}


/* v0.0.8 visual polish */
.weekly-cell.pl-positive {
  border-color: rgba(46, 204, 113, 0.6);
  background: rgba(46, 204, 113, 0.12);
}

.weekly-cell.pl-negative {
  border-color: rgba(231, 76, 60, 0.6);
  background: rgba(231, 76, 60, 0.12);
}

.btn-outline-light {
  border-color: rgba(143, 162, 196, 0.32);
  color: #d4deee;
}

.btn-outline-light:hover {
  border-color: rgba(143, 162, 196, 0.5);
  color: #e5edf9;
  background: rgba(143, 162, 196, 0.12);
}

input[type="file"]::file-selector-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(143, 162, 196, 0.16) !important;
  color: #d3deef !important;
  border: 1px solid rgba(143, 162, 196, 0.34) !important;
  border-radius: 7px;
  height: 30px;
  padding: 0 0.64rem;
  margin: 0 0.62rem 0 0;
  min-height: 30px;
  line-height: 30px;
  text-align: center;
  transform: translateY(-1px);
  vertical-align: middle;
}

input[type="file"]::file-selector-button:hover {
  background: rgba(143, 162, 196, 0.25);
}

input[type="file"]::-webkit-file-upload-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(143, 162, 196, 0.16) !important;
  color: #d3deef !important;
  border: 1px solid rgba(143, 162, 196, 0.34) !important;
  border-radius: 7px;
  height: 30px;
  padding: 0 0.64rem;
  margin: 0 0.62rem 0 0;
  min-height: 30px;
  line-height: 30px;
  text-align: center;
  transform: translateY(-1px);
  vertical-align: middle;
}

input[type="file"]::-webkit-file-upload-button:hover {
  background: rgba(143, 162, 196, 0.25);
}

.table thead th {
  color: rgba(143, 162, 196, 0.86);
  border-bottom-color: rgba(143, 162, 196, 0.22);
}

.table tbody td {
  color: #ced9ea;
}

.table > :not(caption) > * > * {
  border-color: rgba(143, 162, 196, 0.18) !important;
}

.ticker-chip {
  color: #c9d5e8;
  border-color: rgba(143, 162, 196, 0.3);
  background: rgba(255, 255, 255, 0.03);
}

.ticker-chip:hover {
  border-color: rgba(143, 162, 196, 0.46);
  background: rgba(143, 162, 196, 0.1);
}

.dayflow-table td,
.dayflow-table th {
  white-space: nowrap;
}

.btn-play {
  background: rgba(143, 162, 196, 0.2);
  color: #dbe6f5;
  border: 1px solid rgba(143, 162, 196, 0.34);
}

.btn-play:hover {
  background: rgba(143, 162, 196, 0.28);
  color: #e8effa;
}

/* v0.0.8 day note polish */
.form-control,
.form-select,
textarea {
  color: #ffffff !important;
}

.ticker-symbol-picker {
  position: relative;
}

.symbol-options {
  display: none;
  width: 100%;
  max-height: 176px;
  overflow-y: auto;
  margin-top: 8px;
  padding: 6px;
  border: 1px solid color-mix(in srgb, var(--accent, #e887bd) 44%, rgba(143, 162, 196, 0.36));
  border-radius: 10px;
  background: rgba(15, 21, 32, 0.98);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.035), 0 0 18px color-mix(in srgb, var(--accent, #e887bd) 18%, transparent);
}

.symbol-options.is-open {
  display: grid;
  gap: 4px;
}

.symbol-option {
  min-height: 38px;
  padding: 0.42rem 0.64rem;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #edf5ff;
  font-weight: 850;
  text-align: left;
}

.symbol-option:hover,
.symbol-option:focus-visible {
  background: color-mix(in srgb, var(--accent, #e887bd) 22%, rgba(255, 255, 255, 0.07));
  color: #ffffff;
}

.tag-suggestions {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: 8px;
}

.tag-suggestions-compact {
  gap: 5px;
  margin-top: 6px;
}

.tag-suggestion-chip {
  min-height: 28px;
  padding: 0.18rem 0.56rem;
  border: 1px solid color-mix(in srgb, var(--accent, #e887bd) 40%, rgba(143, 162, 196, 0.34));
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.045);
  color: #dce8f8;
  font-size: 0.78rem;
  font-weight: 800;
}

.tag-suggestion-chip:hover,
.tag-suggestion-chip:focus-visible {
  background: color-mix(in srgb, var(--accent, #e887bd) 22%, rgba(255, 255, 255, 0.08));
  color: #ffffff;
  box-shadow: 0 0 14px color-mix(in srgb, var(--accent, #e887bd) 28%, transparent);
}

.calendar-note-row {
  display: flex;
  justify-content: flex-start;
}

.day-note-panel {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transform: translateY(-8px);
  transition: max-height 260ms ease, opacity 220ms ease, transform 260ms ease;
}

.day-note-panel.is-open {
  max-height: 260px;
  opacity: 1;
  transform: translateY(0);
}

.day-note-form {
  margin-top: 10px;
  padding: 10px;
  border: 1px solid rgba(143, 162, 196, 0.28);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.035);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.035);
}

.day-note-panel-head {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0.2rem 0.65rem;
  margin-bottom: 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.075);
  color: #eaf2ff;
  font-size: 0.84rem;
  font-weight: 800;
  box-shadow: 0 0 16px rgba(220, 232, 245, 0.24);
}

.day-note-panel textarea {
  min-height: 104px;
  resize: vertical;
}

.day-note-panel-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 8px;
}

.day-note-save {
  min-height: 34px;
  padding: 0.26rem 0.72rem;
  border: 1px solid color-mix(in srgb, var(--accent, #e887bd) 66%, rgba(255, 255, 255, 0.38));
  border-radius: 999px;
  background: color-mix(in srgb, var(--accent, #e887bd) 82%, white 12%);
  color: #0f1018;
  font-weight: 800;
  box-shadow: 0 0 18px color-mix(in srgb, var(--accent, #e887bd) 42%, transparent);
}

.day-note-save:hover,
.day-note-save:focus-visible {
  background: color-mix(in srgb, var(--accent, #e887bd) 72%, white 24%);
  color: #0f1018;
  box-shadow: 0 0 26px color-mix(in srgb, var(--accent, #e887bd) 58%, transparent);
}

.day-note-toggle {
  border: none;
  font-weight: 700;
}

.theme-real .day-note-toggle {
  background: #4cc9f0;
  color: #08101f;
}

.theme-real .day-note-toggle:hover {
  background: #2aa6d1;
  color: #08101f;
}

.theme-paper .day-note-toggle {
  background: #ff6b6b;
  color: #1a0b0b;
}

.theme-paper .day-note-toggle:hover {
  background: #d94a4a;
  color: #1a0b0b;
}

.dayflow-pnl-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}

.dayflow-link-actions {
  display: flex;
  align-items: center;
  gap: 6px;
}

.dayflow-trade-actions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.dayflow-link-edit-inline {
  border: none;
  background: transparent;
  color: #ffffff;
  text-decoration: underline;
  text-underline-offset: 2px;
  font-size: 0.76rem;
  padding: 0 2px;
}

.dayflow-link-edit-inline:hover {
  color: #ffffff;
  text-shadow: 0 0 8px rgba(255, 255, 255, 0.45);
}

.dayflow-strategy-wrap {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.dayflow-strategy-edit {
  border: none;
  background: transparent;
  color: #63bcff;
  font-size: 0.78rem;
  font-weight: 700;
  padding: 0 2px;
  text-decoration: underline;
  text-underline-offset: 2px;
  text-shadow: 0 0 10px rgba(99, 188, 255, 0.52);
}

.dayflow-strategy-edit:hover {
  color: #9dd9ff;
  text-shadow: 0 0 14px rgba(126, 207, 255, 0.74);
}

.dayflow-strategy-remove {
  border: none;
  background: transparent;
  color: #8ebbe0;
  width: 12px;
  height: 12px;
  line-height: 12px;
  font-size: 10px;
  padding: 0;
  border-radius: 99px;
  opacity: 0;
  transform: scale(0.8);
  transition: opacity 0.14s ease, transform 0.14s ease, box-shadow 0.14s ease, color 0.14s ease;
}

.dayflow-strategy-wrap:hover .dayflow-strategy-remove,
.dayflow-strategy-remove:focus-visible {
  opacity: 1;
  transform: scale(1);
}

.dayflow-strategy-remove:hover,
.dayflow-strategy-remove:focus-visible {
  color: #d2efff;
  box-shadow: 0 0 8px rgba(123, 201, 255, 0.7);
}

.dayflow-strategy-add {
  padding: 0.2rem 0.58rem;
}

.dayflow-link-primary {
  border: none;
  font-weight: 700;
  padding: 0.2rem 0.58rem;
}

.trade-meta-action {
  min-height: 34px;
  padding: 0.22rem 0.62rem;
  border: 1px solid rgba(143, 162, 196, 0.34);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.055);
  color: #e7effc;
  font-size: 0.86rem;
  font-weight: 800;
  box-shadow: 0 0 14px rgba(180, 204, 230, 0.14);
}

.trade-meta-action:hover,
.trade-meta-action:focus-visible {
  border-color: color-mix(in srgb, var(--accent, #e887bd) 72%, white 14%);
  background: color-mix(in srgb, var(--accent, #e887bd) 22%, rgba(255, 255, 255, 0.08));
  color: #ffffff;
  box-shadow: 0 0 22px color-mix(in srgb, var(--accent, #e887bd) 38%, transparent);
}

.trade-meta-action.is-filled {
  border-color: color-mix(in srgb, var(--accent, #e887bd) 52%, rgba(143, 162, 196, 0.34));
  color: #ffffff;
  box-shadow: 0 0 18px color-mix(in srgb, var(--accent, #e887bd) 22%, transparent);
}

.trade-symbol-action {
  min-height: 32px;
  padding: 0.15rem 0.45rem;
  border: 1px solid transparent;
  border-radius: 8px;
  color: #e7effc;
  font-weight: 800;
  text-align: left;
  background: transparent;
}

.trade-symbol-action:hover,
.trade-symbol-action:focus-visible {
  border-color: color-mix(in srgb, var(--accent, #e887bd) 58%, rgba(143, 162, 196, 0.3));
  background: color-mix(in srgb, var(--accent, #e887bd) 16%, rgba(255, 255, 255, 0.06));
  color: #ffffff;
  box-shadow: 0 0 18px color-mix(in srgb, var(--accent, #e887bd) 24%, transparent);
}

.trade-link-action {
  min-height: 42px;
  padding-inline: 0.86rem;
}

.theme-real .dayflow-link-primary {
  background: #4cc9f0;
  color: #08101f;
}

.theme-real .dayflow-link-primary:hover {
  background: #2aa6d1;
  color: #08101f;
}

.theme-paper .dayflow-link-primary {
  background: #ff6b6b;
  color: #1a0b0b;
}

.theme-paper .dayflow-link-primary:hover {
  background: #d94a4a;
  color: #1a0b0b;
}

.dayflow-link-edit {
  font-size: 0.72rem;
  padding: 0.16rem 0.48rem;
  border: 1px solid rgba(143, 162, 196, 0.22);
  background: rgba(255, 255, 255, 0.03);
  color: #b9c7df;
}

.dayflow-link-edit:hover {
  border-color: rgba(143, 162, 196, 0.38);
  background: rgba(143, 162, 196, 0.08);
  color: #d7e2f2;
}

.calendar-day-video-wrap {
  width: 100%;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(143, 162, 196, 0.22);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 4px;
}

.day-video-primary {
  border: none;
  font-weight: 700;
  padding: 0.55rem 0.9rem;
  border-radius: 10px;
}

.theme-real .day-video-primary {
  background: #4cc9f0;
  color: #08101f;
}

.theme-real .day-video-primary:hover {
  background: #2aa6d1;
  color: #08101f;
}

.theme-paper .day-video-primary {
  background: #ff6b6b;
  color: #1a0b0b;
}

.theme-paper .day-video-primary:hover {
  background: #d94a4a;
  color: #1a0b0b;
}

.day-video-edit {
  align-self: flex-end;
  padding: 0;
  border: none;
  background: transparent;
  color: #b7c6df;
  font-size: 0.76rem;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.day-video-edit:hover {
  color: #dbe6f5;
  background: transparent;
}

.daily-video-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
}

.daily-video-card {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid rgba(143, 162, 196, 0.22);
  border-radius: 10px;
  background: rgba(13, 18, 28, 0.72);
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.22);
}

.daily-video-head,
.daily-video-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}

.daily-video-date {
  color: #eef5ff;
  font-size: 1.04rem;
  font-weight: 850;
}

.daily-video-sub,
.daily-video-tags {
  color: #9dafc8;
  font-size: 0.84rem;
}

.daily-video-pnl {
  font-size: 1.12rem;
  font-weight: 900;
}

.daily-video-pnl.is-win {
  color: #70e7ae;
}

.daily-video-pnl.is-loss {
  color: #ff8290;
}

.daily-video-pnl.is-flat {
  color: #dce8f8;
}

.daily-video-mini-chart {
  width: 100%;
  min-height: 54px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.025);
}

.daily-video-note-action,
.daily-video-tags-action {
  min-height: 32px;
  padding: 0.22rem 0.66rem;
  border: 1px solid rgba(143, 162, 196, 0.32);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.055);
  color: #e7effc;
  font-size: 0.84rem;
  font-weight: 800;
}

.daily-video-view-day {
  min-height: 34px;
  padding: 0.24rem 0.78rem;
  border: none;
  border-radius: 999px;
  background: color-mix(in srgb, var(--accent, #e887bd) 78%, white 12%);
  color: #0f1018;
  font-size: 0.86rem;
  font-weight: 900;
  box-shadow: 0 0 18px color-mix(in srgb, var(--accent, #e887bd) 46%, transparent);
}

.daily-video-note-action:hover,
.daily-video-tags-action:hover,
.daily-video-note-action:focus-visible,
.daily-video-tags-action:focus-visible {
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
  box-shadow: 0 0 18px rgba(220, 232, 245, 0.22);
}

.daily-video-view-day:hover,
.daily-video-view-day:focus-visible {
  filter: brightness(1.08);
}





/* v0.2 textured buttons */
.btn-accent,
.btn-real,
.btn-paper,
.day-note-toggle,
.day-video-primary,
.dayflow-link-primary,
.welcome-actions .welcome-real,
.welcome-actions .welcome-paper {
  position: relative;
  overflow: hidden;
  z-index: 0;
  border: 1px solid transparent;
  border-radius: 10px;
  color: #ffffff;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.24);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 6px 14px rgba(0, 0, 0, 0.32);
  transition: transform 0.12s ease, box-shadow 0.18s ease, filter 0.18s ease;
}

.btn-accent::before,
.btn-real::before,
.btn-paper::before,
.day-note-toggle::before,
.day-video-primary::before,
.dayflow-link-primary::before,
.welcome-actions .welcome-real::before,
.welcome-actions .welcome-paper::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(130% 85% at 50% -30%, rgba(255, 255, 255, 0.44) 0%, rgba(255, 255, 255, 0) 60%),
    repeating-linear-gradient(130deg, rgba(255, 255, 255, 0.09) 0 2px, rgba(255, 255, 255, 0) 2px 7px);
  opacity: 0.72;
  pointer-events: none;
  z-index: -1;
}

.btn-accent::after,
.btn-real::after,
.btn-paper::after,
.day-note-toggle::after,
.day-video-primary::after,
.dayflow-link-primary::after,
.welcome-actions .welcome-real::after,
.welcome-actions .welcome-paper::after {
  content: "";
  position: absolute;
  inset: -38% -28%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.28) 0%, rgba(255, 255, 255, 0) 60%);
  pointer-events: none;
  opacity: 0.62;
  z-index: -1;
}

.btn-accent,
.btn-real,
.welcome-actions .welcome-real,
.theme-real .day-note-toggle,
.theme-real .day-video-primary,
.theme-real .dayflow-link-primary {
  background: linear-gradient(160deg, #96edff 0%, #4cc9f0 44%, #2276a3 100%);
  border-color: rgba(157, 231, 255, 0.62);
  color: #ffffff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.34), 0 8px 18px rgba(20, 116, 153, 0.44), 0 0 14px rgba(76, 201, 240, 0.36);
}

.btn-paper,
.welcome-actions .welcome-paper,
.theme-paper .day-note-toggle,
.theme-paper .day-video-primary,
.theme-paper .dayflow-link-primary {
  background: linear-gradient(160deg, #ffadad 0%, #ff6b6b 44%, #9f2f2f 100%);
  border-color: rgba(255, 173, 173, 0.58);
  color: #ffffff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 8px 18px rgba(130, 36, 36, 0.42), 0 0 14px rgba(255, 107, 107, 0.34);
}

.btn-accent:hover,
.btn-real:hover,
.btn-paper:hover,
.day-note-toggle:hover,
.day-video-primary:hover,
.dayflow-link-primary:hover,
.welcome-actions .welcome-real:hover,
.welcome-actions .welcome-paper:hover {
  transform: translateY(-1px);
  filter: saturate(1.1) brightness(1.08);
}

.btn-accent:hover,
.btn-real:hover,
.welcome-actions .welcome-real:hover,
.theme-real .day-note-toggle:hover,
.theme-real .day-video-primary:hover,
.theme-real .dayflow-link-primary:hover {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.36), 0 12px 24px rgba(18, 105, 139, 0.46), 0 0 22px rgba(76, 201, 240, 0.46);
}

.btn-paper:hover,
.welcome-actions .welcome-paper:hover,
.theme-paper .day-note-toggle:hover,
.theme-paper .day-video-primary:hover,
.theme-paper .dayflow-link-primary:hover {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.34), 0 12px 24px rgba(120, 30, 30, 0.44), 0 0 22px rgba(255, 107, 107, 0.44);
}

.btn-accent:active,
.btn-real:active,
.btn-paper:active,
.day-note-toggle:active,
.day-video-primary:active,
.dayflow-link-primary:active,
.welcome-actions .welcome-real:active,
.welcome-actions .welcome-paper:active {
  transform: translateY(0);
  filter: brightness(0.98);
}



.news-title {
  font-weight: 700;
  margin-bottom: 6px;
  color: #9ee8ff;
  text-shadow: 0 0 8px rgba(76, 201, 240, 0.38), 0 0 16px rgba(76, 201, 240, 0.24);
}

.news-section-title {
  color: #9ee8ff;
  text-shadow: 0 0 10px rgba(76, 201, 240, 0.42), 0 0 18px rgba(76, 201, 240, 0.24);
}






.calendar-cell.market-holiday,
.calendar-cell.market-holiday.pl-positive,
.calendar-cell.market-holiday.pl-negative {
  border-color: rgba(255, 206, 94, 0.85);
  background: linear-gradient(180deg, rgba(255, 215, 130, 0.24) 0%, rgba(255, 192, 85, 0.16) 100%);
  box-shadow: inset 0 0 0 1px rgba(255, 213, 120, 0.28);
}

.holiday-label {
  margin-top: 4px;
  font-size: 0.62rem;
  color: #ffd89a;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.sortable-header {
  cursor: pointer;
  user-select: none;
}

.sortable-header:hover {
  color: #dbe8ff;
}

.is-active-sort {
  color: #ffffff !important;
}

.intraday-filter {
  width: 220px;
}

@media (max-width: 900px) {
  .calendar-year-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .calendar-month-panel {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .calendar-year-grid {
    grid-template-columns: 1fr;
  }
}

.calendar-note-dot {
  position: absolute;
  top: 9px;
  right: 9px;
  width: 7px;
  height: 7px;
  border-radius: 999px;
}

.theme-real .calendar-note-dot {
  background: #4cc9f0;
  box-shadow: 0 0 0 1px rgba(12, 18, 34, 0.65), 0 0 9px rgba(76, 201, 240, 0.78);
}

.theme-paper .calendar-note-dot {
  background: #ff5a6f;
  box-shadow: 0 0 0 1px rgba(12, 18, 34, 0.65), 0 0 9px rgba(255, 90, 111, 0.78);
}
/* Setup tab: red action buttons in paper mode */
.theme-paper #setup .btn-accent {
  background: linear-gradient(160deg, #ffadad 0%, #ff6b6b 44%, #9f2f2f 100%);
  border-color: rgba(255, 173, 173, 0.58);
  color: #ffffff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 8px 18px rgba(130, 36, 36, 0.42), 0 0 14px rgba(255, 107, 107, 0.34);
}

.theme-paper #setup .btn-accent:hover {
  filter: saturate(1.1) brightness(1.08);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.34), 0 12px 24px rgba(120, 30, 30, 0.44), 0 0 22px rgba(255, 107, 107, 0.44);
}

.theme-paper #setup .btn-accent:active {
  filter: brightness(0.98);
}




/* Local fallback so tabs stay isolated even without Bootstrap CSS */
.tab-content > .tab-pane {
  display: none;
}

.tab-content > .tab-pane.active {
  display: block;
}


.ticker-history-card {
  width: 100%;
}

.ticker-history-wrap {
  width: 100%;
}

.ticker-history-filters {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 170px 220px;
  gap: 8px;
}

@media (max-width: 900px) {
  .ticker-history-filters {
    grid-template-columns: 1fr;
  }
}

.ticker-history-card .table {
  min-width: 0;
}

.holiday-day-bubble {
  margin-top: 12px;
  padding: 30px 18px;
  border-radius: 16px;
  border: 1px solid rgba(255, 206, 94, 0.85);
  background: linear-gradient(180deg, rgba(255, 215, 130, 0.24) 0%, rgba(255, 192, 85, 0.16) 100%);
  box-shadow: inset 0 0 0 1px rgba(255, 213, 120, 0.28);
  color: #ffd89a;
  font-size: 1.18rem;
  font-weight: 700;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}


.dashboard-plus-btn {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  border: 1px solid rgba(126, 228, 255, 0.72);
  background: radial-gradient(circle at 30% 30%, rgba(198, 249, 255, 0.92) 0%, rgba(112, 221, 255, 0.88) 36%, rgba(38, 136, 178, 0.96) 100%);
  color: #ffffff;
  font-size: 1.35rem;
  line-height: 1;
  font-weight: 700;
  padding: 0;
  box-shadow: 0 0 14px rgba(76, 201, 240, 0.56), inset 0 1px 0 rgba(255, 255, 255, 0.42);
}

.dashboard-plus-btn:hover {
  transform: translateY(-1px) scale(1.02);
  box-shadow: 0 0 20px rgba(76, 201, 240, 0.72), inset 0 1px 0 rgba(255, 255, 255, 0.45);
}

.dashboard-widget-list {
  display: grid;
  gap: 9px;
  max-height: 58vh;
  overflow: auto;
  padding-right: 2px;
}

.dashboard-widget-option {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(148, 156, 170, 0.22);
  border-radius: 10px;
  background: rgba(22, 24, 30, 0.94);
  padding: 10px 12px;
}

.dashboard-widget-option.equipped {
  opacity: 0.68;
  background: rgba(54, 58, 66, 0.58);
}

.dashboard-widget-control {
  width: 18px;
  min-width: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.dashboard-widget-equipped-dot {
  width: 8px;
  height: 8px;
  border-radius: 99px;
  background: rgba(194, 204, 224, 0.94);
}

.dashboard-widget-text {
  display: grid;
  gap: 1px;
}

.dashboard-widget-title {
  font-size: 0.94rem;
  color: #dce9ff;
  font-weight: 600;
}

.dashboard-widget-sub {
  font-size: 0.75rem;
  color: #9db0d4;
}

.dashboard-widget-preview {
  display: none;
  position: absolute;
  right: 44px;
  top: 50%;
  transform: translateY(-50%);
  width: 180px;
  border: 1px solid rgba(148, 156, 170, 0.24);
  border-radius: 10px;
  background: rgba(18, 20, 26, 0.98);
  padding: 8px;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.35);
  z-index: 4;
}

.dashboard-widget-option:hover .dashboard-widget-preview {
  display: block;
}

.dashboard-widget-option:focus-within .dashboard-widget-preview {
  display: block;
}

.widget-preview-live-clone {
  max-height: 150px;
  overflow: hidden;
}

.widget-preview-live-clone .card,
.widget-preview-live-clone .stat-card,
.widget-preview-live-clone .dashboard-insight-grid,
.widget-preview-live-clone .dashboard-insight {
  margin: 0 !important;
  border-radius: 8px !important;
  box-shadow: none !important;
}

.widget-preview-live-clone .card-body,
.widget-preview-live-clone .stat-card,
.widget-preview-live-clone .dashboard-insight {
  padding: 8px !important;
}

.widget-preview-live-clone .section-title,
.widget-preview-live-clone .stat-label {
  font-size: 0.62rem !important;
  line-height: 1.15 !important;
  margin-bottom: 4px !important;
}

.widget-preview-live-clone .stat-value {
  font-size: 0.92rem !important;
  line-height: 1.1 !important;
}

.widget-preview-live-clone .stat-sub,
.widget-preview-live-clone td,
.widget-preview-live-clone th {
  font-size: 0.58rem !important;
}

.widget-preview-live-clone table {
  margin-bottom: 0 !important;
}

.widget-preview-live-clone canvas,
.widget-preview-live-clone .chart-range,
.widget-preview-live-clone select,
.widget-preview-live-clone button {
  display: none !important;
}

.widget-preview-live-clone .dashboard-insight-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 5px !important;
}

[data-dashboard-widget] {
  position: relative;
}

[data-dashboard-widget] > .card,
[data-dashboard-widget] > .stat-card,
[data-dashboard-widget] .card,
[data-dashboard-widget] .stat-card {
  position: relative;
}

[data-widget-scope="stats"] > .stat-card,
[data-widget-scope="stats"] .stat-card {
  min-height: 124px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.dashboard-inline-remove {
  position: absolute;
  top: 6px;
  right: 6px;
  z-index: 8;
  width: 20px;
  height: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 50%;
  padding: 0;
  background: transparent;
  color: rgba(244, 249, 255, 0.42);
  font-size: 0.72rem;
  line-height: 1;
  font-weight: 800;
  cursor: pointer;
  box-shadow: none;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.14s ease, color 0.14s ease, border-color 0.14s ease, box-shadow 0.14s ease;
}

[data-dashboard-widget]:hover .dashboard-inline-remove,
[data-dashboard-widget]:focus-within .dashboard-inline-remove {
  opacity: 0.48;
  pointer-events: auto;
}

[data-dashboard-widget]:hover .dashboard-inline-remove:hover,
[data-dashboard-widget]:focus-within .dashboard-inline-remove:focus-visible,
.dashboard-inline-remove:hover,
.dashboard-inline-remove:focus-visible {
  opacity: 1;
  border-color: var(--accent);
  background: transparent;
  color: #fff;
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--accent) 50%, transparent),
    0 0 14px color-mix(in srgb, var(--accent) 70%, transparent),
    0 0 28px color-mix(in srgb, var(--accent) 34%, transparent);
}

.dashboard-widget-preview-head {
  font-size: 0.72rem;
  color: #dce9ff;
  font-weight: 700;
  margin-bottom: 4px;
}

.dashboard-widget-preview-body {
  font-size: 0.68rem;
  color: #97aacf;
  margin-bottom: 6px;
}

.dashboard-widget-preview-bars {
  display: grid;
  gap: 4px;
}

.dashboard-widget-preview-bars span {
  display: block;
  height: 5px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(76, 201, 240, 0.94), rgba(111, 236, 255, 0.44));
}

.dashboard-widget-preview-bars span:nth-child(2) {
  width: 72%;
}

.dashboard-widget-preview-bars span:nth-child(3) {
  width: 54%;
}

.dashboard-widget-remove {
  margin-left: auto;
  width: 24px;
  height: 24px;
  line-height: 1;
  border: 1px solid rgba(189, 206, 230, 0.3);
  border-radius: 999px;
  padding: 0;
  color: #eaf2ff;
  background: rgba(16, 22, 42, 0.78);
}

.dashboard-widget-remove:hover {
  border-color: rgba(233, 245, 255, 0.7);
  box-shadow: 0 0 12px rgba(217, 236, 255, 0.42);
}

.holiday-bulk-panel {
  margin-top: 12px;
  margin-bottom: 14px;
  border: 1px solid rgba(255, 208, 112, 0.42);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(255, 212, 122, 0.15) 0%, rgba(255, 176, 78, 0.08) 100%);
  padding: 10px 12px;
}

.holiday-bulk-head {
  color: #ffe0a5;
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.holiday-bulk-days {
  margin-top: 8px;
  padding: 8px 9px;
  border-radius: 8px;
  border: 1px solid rgba(255, 209, 133, 0.34);
  background: rgba(255, 224, 166, 0.08);
  font-size: 0.78rem;
  color: #f8d89c;
}

.holiday-bulk-actions {
  margin-top: 8px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.holiday-bulk-apply {
  border: 1px solid rgba(255, 214, 122, 0.75);
  color: #30200f;
  background: linear-gradient(180deg, #ffd98f 0%, #ffb85f 100%);
  box-shadow: 0 0 12px rgba(255, 210, 117, 0.36);
}

.holiday-bulk-apply:hover {
  box-shadow: 0 0 16px rgba(255, 210, 117, 0.54);
}

.calendar-cell.holiday-selected {
  outline: 2px solid rgba(123, 213, 255, 0.92);
  box-shadow: 0 0 0 1px rgba(123, 213, 255, 0.42), 0 0 16px rgba(123, 213, 255, 0.33);
}

.issues-list {
  display: grid;
  gap: 10px;
  max-height: 420px;
  overflow: auto;
  padding-right: 2px;
}

.issue-alert-item {
  border: 1px solid rgba(255, 89, 89, 0.84);
  border-radius: 10px;
  background: linear-gradient(180deg, rgba(136, 16, 16, 0.9) 0%, rgba(98, 10, 10, 0.86) 100%);
  padding: 10px 12px;
  color: #ffe4e4;
  box-shadow: inset 0 0 0 1px rgba(255, 121, 121, 0.32), 0 0 16px rgba(255, 72, 72, 0.28);
}

.issue-alert-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 4px;
}

.issue-alert-time {
  font-size: 0.72rem;
  color: #ffc8c8;
}

.issue-alert-text {
  color: #ffe9e9;
  font-size: 0.88rem;
  white-space: pre-wrap;
  word-break: break-word;
}

.issue-alert-close {
  width: 24px;
  height: 24px;
  line-height: 1;
  border-radius: 999px;
  border: 1px solid rgba(255, 169, 169, 0.65);
  padding: 0;
  color: #ffecec;
  background: rgba(91, 10, 10, 0.72);
}

.issue-alert-close:hover {
  box-shadow: 0 0 12px rgba(255, 114, 114, 0.5);
  border-color: rgba(255, 214, 214, 0.9);
}


.dashboard-plus-panels {
  position: relative;
  right: -10px;
}

.dashboard-plus-stats {
  width: 32px;
  height: 32px;
  font-size: 1.25rem;
}

.dashboard-mini-toolbar {
  margin-top: -4px;
}

.dashboard-widget-preview-stat {
  font-size: 0.72rem;
  color: #d4e7ff;
  line-height: 1.45;
}

#holidayBulkBtn.is-active {
  border-color: rgba(255, 221, 146, 0.92);
  color: #ffe8bc;
  box-shadow: 0 0 14px rgba(255, 212, 120, 0.58), inset 0 0 0 1px rgba(255, 225, 152, 0.34);
}

.issues-lined-sheet {
  background:
    repeating-linear-gradient(
      to bottom,
      rgba(173, 198, 245, 0.14) 0,
      rgba(173, 198, 245, 0.14) 1px,
      transparent 1px,
      transparent 28px
    );
  border-radius: 12px;
}

.issue-alert-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.issue-rank-select {
  min-width: 70px;
  height: 28px;
  padding-top: 2px;
  padding-bottom: 2px;
}

.issue-rank-3 {
  transform: scale(1.02);
}

.issue-rank-2 {
  transform: scale(1.04);
}

.issue-rank-1 {
  transform: scale(1.06);
}


/* Latest dashboard/widget preview and issues overrides */
.dashboard-widget-option {
  align-items: center;
}

.dashboard-widget-text {
  min-width: 0;
  flex: 1;
}

.dashboard-widget-preview {
  display: none;
  position: absolute;
  right: 44px;
  top: 50%;
  transform: translateY(-50%);
  width: 228px;
  border: 1px solid rgba(148, 156, 170, 0.24);
  border-radius: 10px;
  background: rgba(18, 20, 26, 0.98);
  padding: 8px;
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.36);
  z-index: 4;
}

.dashboard-widget-option:hover .dashboard-widget-preview,
.dashboard-widget-option:focus-within .dashboard-widget-preview {
  display: block;
}

.widget-preview-live-wrap {
  border-radius: 8px;
  border: 1px solid rgba(148, 156, 170, 0.22);
  overflow: hidden;
  background: rgba(18, 20, 26, 0.92);
}

.widget-preview-live-img {
  width: 100%;
  height: 116px;
  object-fit: cover;
  display: block;
}

.widget-preview-mini-card {
  border: 1px solid rgba(148, 156, 170, 0.22);
  border-radius: 8px;
  background: rgba(22, 24, 30, 0.94);
  padding: 7px;
}

.widget-preview-mini-label {
  font-size: 0.67rem;
  color: #a9c0e7;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.widget-preview-mini-value {
  margin-top: 4px;
  font-size: 0.95rem;
  color: #eaf2ff;
  font-weight: 700;
}

.widget-preview-mini-panel {
  border: 1px solid rgba(148, 156, 170, 0.2);
  border-radius: 8px;
  background: rgba(24, 27, 34, 0.94);
  padding: 7px;
}

.widget-preview-mini-title {
  font-size: 0.66rem;
  color: #b0c7eb;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 6px;
}

.widget-preview-mini-chart {
  display: grid;
  gap: 4px;
}

.widget-preview-mini-chart span {
  display: block;
  height: 5px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(76, 201, 240, 0.94), rgba(111, 236, 255, 0.44));
}

.widget-preview-mini-rows {
  display: grid;
  gap: 3px;
}

.widget-preview-mini-rows span {
  display: block;
  font-size: 0.67rem;
  color: #d7e5fb;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dashboard-plus-panels {
  position: relative;
  right: 0;
  margin-right: 8px;
}

.notes-blob-board {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 14px;
  align-items: stretch;
  padding: 6px 2px 2px;
}

.notes-blob {
  min-height: 176px;
  border: 1px solid rgba(122, 208, 255, 0.78);
  border-radius: 42% 58% 56% 44% / 46% 38% 62% 54%;
  background: radial-gradient(circle at 24% 18%, rgba(168, 232, 255, 0.28), rgba(24, 84, 136, 0.9) 58%, rgba(14, 52, 88, 0.92) 100%);
  color: #e8f6ff;
  padding: 12px 14px;
  box-shadow: inset 0 0 0 1px rgba(173, 231, 255, 0.18), 0 10px 20px rgba(0, 0, 0, 0.26);
  display: flex;
  flex-direction: column;
}

.notes-blob-date {
  font-size: 0.73rem;
  color: #c9ebff;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-weight: 700;
}

.notes-blob-text {
  margin: auto 4px;
  text-align: center;
  font-size: 0.98rem;
  font-weight: 600;
  line-height: 1.34;
  color: #eef9ff;
  white-space: pre-wrap;
  word-break: break-word;
}

.notes-blob-empty {
  margin: auto 4px;
  text-align: center;
  font-size: 0.86rem;
  color: #b9d9ef;
}

.notes-blob-add {
  grid-column: 1 / -1;
  order: 999;
  min-height: 104px;
  border-radius: 18px;
  border-color: rgba(170, 180, 196, 0.48);
  background: radial-gradient(circle at 28% 18%, rgba(208, 214, 226, 0.24), rgba(92, 101, 120, 0.82) 58%, rgba(59, 64, 78, 0.9) 100%);
  color: #eef4ff;
  align-items: center;
  justify-content: center;
  gap: 4px;
  cursor: pointer;
}

.notes-blob-add-plus {
  font-size: 2rem;
  line-height: 1;
  font-weight: 700;
}

.notes-blob-add-label {
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.note-edit-trigger {
  cursor: pointer;
}

.note-edit-trigger:focus-visible {
  outline: 2px solid rgba(167, 223, 255, 0.9);
  outline-offset: 2px;
}

.issues-blob-board {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-flow: dense;
  gap: 14px;
  align-items: stretch;
  padding: 6px 2px 2px;
}

.issues-blob {
  min-height: 180px;
  border: 1px solid rgba(255, 106, 106, 0.82);
  border-radius: 42% 58% 56% 44% / 46% 38% 62% 54%;
  background: radial-gradient(circle at 28% 18%, rgba(255, 173, 173, 0.26), rgba(147, 22, 22, 0.88) 55%, rgba(93, 10, 10, 0.9) 100%);
  color: #ffe8e8;
  padding: 12px 13px;
  box-shadow: inset 0 0 0 1px rgba(255, 156, 156, 0.22), 0 12px 20px rgba(0, 0, 0, 0.26);
  display: flex;
  flex-direction: column;
}

.issue-size-1 {
  grid-column: span 4;
}

.issue-size-2 {
  grid-column: span 2;
}

.issue-size-3 {
  grid-column: span 1;
}

.issues-blob-head {
  display: flex;
  justify-content: flex-end;
}

.issue-blob-close {
  border: none;
  background: transparent;
  color: rgba(255, 230, 230, 0.92);
  padding: 0;
  width: auto;
  height: auto;
  line-height: 1;
  font-size: 1rem;
}

.issue-blob-close:hover {
  color: #ffffff;
  text-shadow: 0 0 8px rgba(255, 136, 136, 0.6);
}

.issues-blob-text {
  margin: auto 8px;
  text-align: center;
  font-size: 1.04rem;
  font-weight: 700;
  line-height: 1.32;
  color: #ffeaea;
  white-space: pre-wrap;
  word-break: break-word;
}

.issues-blob-add {
  cursor: pointer;
  grid-column: 1 / -1;
  order: 999;
  min-height: 106px;
  border-radius: 18px;
  border-color: rgba(170, 180, 196, 0.48);
  background: radial-gradient(circle at 28% 18%, rgba(208, 214, 226, 0.24), rgba(92, 101, 120, 0.82) 58%, rgba(59, 64, 78, 0.9) 100%);
  color: #eef4ff;
  align-items: center;
  justify-content: center;
  gap: 4px;
}

.issues-blob-add-plus {
  font-size: 2rem;
  line-height: 1;
  font-weight: 700;
}

.issues-blob-add-label {
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.issue-blob-float-1 { animation: issueBlobFloat1 6.4s ease-in-out infinite; }
.issue-blob-float-2 { animation: issueBlobFloat2 7.1s ease-in-out infinite; }
.issue-blob-float-3 { animation: issueBlobFloat3 6.8s ease-in-out infinite; }
.issue-blob-float-4 { animation: issueBlobFloat2 7.6s ease-in-out infinite; }
.issue-blob-float-5 { animation: issueBlobFloat1 7.9s ease-in-out infinite; }

@keyframes issueBlobFloat1 {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-5px); }
}

@keyframes issueBlobFloat2 {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-7px); }
}

@keyframes issueBlobFloat3 {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-4px); }
}

@media (max-width: 1100px) {
  .issues-blob-board {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .issue-size-1 {
    grid-column: span 2;
  }

  .issue-size-2,
  .issue-size-3 {
    grid-column: span 1;
  }
}

@media (max-width: 768px) {
  .calendar-month-panel {
    grid-template-columns: 1fr;
  }

  .weekly-column {
    display: none;
  }

  .app-shell-shell {
    width: 100%;
    padding-inline: 4px;
  }

  .app-shell-body {
    padding-top: 18px !important;
  }

  .main-tabs-rail {
    overflow-x: auto;
    overflow-y: hidden;
    margin-inline: -2px;
    padding-bottom: 2px;
    scrollbar-width: none;
    cursor: grab;
    touch-action: pan-x;
  }

  .main-tabs-rail::-webkit-scrollbar {
    display: none;
  }

  .main-tabs-rail.is-dragging {
    cursor: grabbing;
  }

  .mobile-scroll-tabs {
    display: flex;
    flex-wrap: nowrap;
    gap: 4px;
    min-width: max-content;
    padding-inline: 2px;
    scroll-snap-type: x proximity;
  }

  .mobile-scroll-tabs .nav-item {
    flex: 0 0 auto;
    scroll-snap-align: start;
  }

  .mobile-scroll-tabs .nav-link {
    min-height: 42px;
    padding: 8px 12px;
    border-radius: 12px;
    font-size: 0.92rem;
    white-space: nowrap;
  }

  .calendar-header {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .calendar-title-stack {
    gap: 4px;
  }

  .calendar-title {
    font-size: clamp(1.5rem, 5vw, 1.9rem);
  }

  .calendar-recap {
    justify-self: start;
    font-size: clamp(1.5rem, 6vw, 2rem);
  }

  .calendar-controls {
    width: 100%;
    gap: 8px;
    justify-content: flex-start;
  }

  .calendar-controls .btn {
    min-height: 40px;
    padding-inline: 12px;
  }

  .calendar-grid {
    gap: 10px;
    grid-auto-rows: 96px;
  }

  .calendar-cell {
    min-height: 96px;
    padding: 10px;
    border-radius: 16px;
  }

  .calendar-bottom,
  #calendarDayDetails .card-body {
    gap: 12px;
  }

  .dayflow-pnl-wrap {
    align-items: flex-start;
    flex-wrap: nowrap;
    gap: 6px;
  }

  .dayflow-link-actions {
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 4px;
  }

  .dayflow-trade-actions {
    gap: 4px;
  }

  .dayflow-link-primary,
  .dayflow-strategy-add {
    padding: 0.16rem 0.44rem;
    font-size: 0.68rem;
    line-height: 1.2;
  }

  .dayflow-link-edit-inline,
  .dayflow-strategy-edit {
    font-size: 0.68rem;
  }

  .ticker-top-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .ticker-top-layout > [class*="col-"] {
    width: 100%;
    max-width: none;
  }

  .setup-import-form {
    grid-template-columns: 1fr;
  }

  .ticker-picture-compact-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 12px;
  }

  .ticker-panel-stack {
    gap: 12px;
  }

  .ticker-grid,
  .ticker-grid-rich {
    grid-template-columns: 1fr;
  }

  .ticker-grid-rich > .ticker-row-full {
    grid-column: auto;
  }

  #tickerPicturePanel .card-body,
  #tickerInfoNewsRail .card-body {
    padding: 14px;
  }

  .news-card {
    padding: 9px 10px;
  }

  .dashboard-mini-toolbar .col-12 {
    justify-content: stretch !important;
  }

  .dashboard-mini-toolbar .dashboard-plus-btn {
    margin-left: auto;
  }

  .dashboard-insight-grid {
    grid-template-columns: 1fr;
  }

  .dashboard-placement-surface {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .dashboard-placement-item {
    grid-column: span 1 !important;
    width: 100% !important;
    cursor: default;
    margin-inline: 0 !important;
  }

  .dashboard-board {
    grid-template-columns: 1fr;
  }

  .dashboard-board-item {
    grid-column: span 1 !important;
  }

  .dashboard-widget-dnd-item {
    cursor: default;
  }

  .dashboard-inline-remove {
    display: none !important;
  }

  .dashboard-widget-preview {
    left: 14px;
    right: 14px;
    top: auto;
    bottom: calc(100% + 6px);
    transform: none;
    width: auto;
  }

  .widget-preview-live-img {
    height: 100px;
  }

  .notes-blob-board,
  .issues-blob-board {
    grid-template-columns: 1fr;
  }

  .issue-size-1,
  .issue-size-2,
  .issue-size-3 {
    grid-column: span 1;
  }
}

@media (max-width: 430px) {
  .app-shell-shell {
    padding-inline: 0;
  }

  .mobile-scroll-tabs .nav-link {
    min-height: 38px;
    padding: 7px 11px;
    font-size: 0.86rem;
  }

  .calendar-header,
  .calendar-bottom {
    grid-template-columns: 1fr;
  }

  .calendar-controls {
    justify-content: stretch;
  }

  .calendar-controls .btn {
    flex: 1 1 calc(50% - 8px);
  }

  .calendar-grid {
    gap: 8px;
    grid-auto-rows: 84px;
  }

  .dayflow-link-primary,
  .dayflow-strategy-add {
    padding: 0.14rem 0.38rem;
    font-size: 0.64rem;
  }

  .dayflow-link-edit-inline,
  .dayflow-strategy-edit {
    font-size: 0.64rem;
  }

  .calendar-cell {
    min-height: 84px;
    padding: 8px;
  }

  .calendar-day {
    font-size: 0.82rem;
    margin-bottom: 4px;
  }

  .calendar-count,
  .calendar-pl,
  .holiday-label {
    font-size: 0.62rem;
  }

  .calendar-tickers {
    gap: 5px;
  }

  .ticker-chip {
    font-size: 0.82rem;
    padding: 5px 10px;
  }

  .ticker-picture-compact-grid {
    gap: 8px 10px;
  }

  .ticker-picture-stat .stat-value,
  #tickerInfoNewsRail .stat-value {
    font-size: 1rem;
  }

  .dashboard-widget-row > [data-dashboard-widget],
  #dashboardWidgetIntraday,
  #tickerBreakdownRow,
  #dashboardWidgetPerStrategy {
    min-width: 0;
  }

  .card-body.d-flex.align-items-center.justify-content-between,
  .card-body.d-flex.align-items-center.justify-content-between.flex-wrap.gap-2 {
    flex-direction: column;
    align-items: stretch !important;
  }

  .login-theme-toggle {
    grid-template-columns: 1fr;
  }
}

.issue-edit-trigger {
  cursor: pointer;
}

.issue-edit-trigger:focus-visible {
  outline: 2px solid rgba(167, 223, 255, 0.9);
  outline-offset: 2px;
}
/* v0.6.2 modern bubble refresh: notes + issues */
.notes-blob-board,
.issues-blob-board {
  gap: 16px;
  padding: 10px 4px 4px;
  position: relative;
}

.notes-blob-board::before,
.issues-blob-board::before {
  content: "";
  position: absolute;
  inset: -4px;
  pointer-events: none;
  border-radius: 18px;
  background:
    radial-gradient(circle at 12% 18%, rgba(76, 201, 240, 0.14), transparent 44%),
    radial-gradient(circle at 86% 82%, rgba(255, 112, 112, 0.12), transparent 40%);
  filter: blur(6px);
  z-index: 0;
}

.notes-blob,
.issues-blob {
  border-radius: 32px;
  backdrop-filter: blur(8px);
  padding: 14px 16px;
  position: relative;
  overflow: hidden;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
  z-index: 1;
}

.notes-blob {
  border: 1px solid rgba(150, 221, 255, 0.48);
  background:
    radial-gradient(circle at 18% 14%, rgba(177, 232, 255, 0.32), rgba(42, 118, 180, 0.76) 52%, rgba(12, 35, 71, 0.86) 100%);
  box-shadow:
    inset 0 1px 0 rgba(226, 245, 255, 0.16),
    inset 0 0 0 1px rgba(173, 231, 255, 0.14),
    0 14px 30px rgba(0, 0, 0, 0.3);
}

.issues-blob {
  border: 1px solid rgba(255, 153, 153, 0.58);
  background:
    radial-gradient(circle at 24% 16%, rgba(255, 187, 187, 0.28), rgba(164, 28, 28, 0.76) 52%, rgba(71, 8, 8, 0.86) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 240, 240, 0.14),
    inset 0 0 0 1px rgba(255, 156, 156, 0.18),
    0 14px 30px rgba(0, 0, 0, 0.31);
}

.notes-blob::after,
.issues-blob::after {
  content: "";
  position: absolute;
  top: -46%;
  left: -28%;
  width: 76%;
  height: 86%;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  transform: rotate(-20deg);
  pointer-events: none;
}

.notes-blob:hover,
.notes-blob:focus-within {
  transform: translateY(-3px);
  border-color: rgba(174, 232, 255, 0.75);
  box-shadow:
    inset 0 1px 0 rgba(239, 250, 255, 0.22),
    inset 0 0 0 1px rgba(173, 231, 255, 0.18),
    0 18px 38px rgba(0, 0, 0, 0.34);
}

.issues-blob:hover,
.issues-blob:focus-within {
  transform: translateY(-3px);
  border-color: rgba(255, 196, 196, 0.78);
  box-shadow:
    inset 0 1px 0 rgba(255, 246, 246, 0.2),
    inset 0 0 0 1px rgba(255, 186, 186, 0.2),
    0 18px 38px rgba(0, 0, 0, 0.36);
}

.notes-blob-date {
  font-size: 0.71rem;
  color: #d3efff;
  letter-spacing: 0.08em;
  position: relative;
  z-index: 1;
}

.notes-blob-text {
  margin: auto 6px;
  font-size: 1.02rem;
  font-weight: 700;
  line-height: 1.38;
  color: #f3fbff;
  text-wrap: balance;
  position: relative;
  z-index: 1;
}

.notes-blob-empty {
  margin: auto 6px;
  font-size: 0.88rem;
  color: #cae3f4;
  position: relative;
  z-index: 1;
}

.issues-blob-text {
  margin: auto 8px;
  font-size: 1.06rem;
  font-weight: 800;
  line-height: 1.36;
  color: #fff1f1;
  text-wrap: balance;
  position: relative;
  z-index: 1;
}

.notes-blob-add,
.issues-blob-add {
  border-radius: 20px;
  border: 1px dashed rgba(197, 206, 223, 0.65);
  background: linear-gradient(140deg, rgba(132, 145, 171, 0.2), rgba(77, 85, 105, 0.44));
  gap: 6px;
  transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;
}

.notes-blob-add:hover,
.notes-blob-add:focus-visible,
.issues-blob-add:hover,
.issues-blob-add:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(224, 232, 245, 0.86);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.26);
}

/* v0.6.2 sleek card override: remove weird blob shapes */
.notes-blob-board::before,
.issues-blob-board::before,
.notes-blob::after,
.issues-blob::after {
  display: none !important;
}

.issue-blob-float-1,
.issue-blob-float-2,
.issue-blob-float-3,
.issue-blob-float-4,
.issue-blob-float-5 {
  animation: none !important;
}

.notes-blob,
.issues-blob {
  border-radius: 16px !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  padding: 14px 16px !important;
  transform: none;
}

.notes-blob {
  border: 1px solid rgba(148, 160, 182, 0.28) !important;
  background: linear-gradient(165deg, rgba(17, 21, 30, 0.98), rgba(9, 12, 18, 0.98)) !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;
}

.issues-blob {
  border: 1px solid rgba(255, 140, 140, 0.42) !important;
  background: linear-gradient(165deg, rgba(76, 19, 28, 0.98), rgba(36, 10, 14, 0.98)) !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
}

.notes-blob:hover,
.notes-blob:focus-within,
.issues-blob:hover,
.issues-blob:focus-within {
  transform: translateY(-2px);
}

.notes-blob-text {
  color: #eef2f7 !important;
  font-weight: 700;
}

.notes-blob-date,
.notes-blob-empty {
  color: #bac3d0 !important;
}

.issues-blob-text {
  color: #ffeef0 !important;
  font-weight: 800;
}

.notes-blob-add,
.issues-blob-add {
  border-radius: 14px !important;
  border: 1px solid rgba(190, 201, 220, 0.42) !important;
  background: linear-gradient(165deg, rgba(18, 22, 30, 0.96), rgba(10, 13, 19, 0.98)) !important;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.26), inset 0 1px 0 rgba(255, 255, 255, 0.04) !important;
}

.issues-blob-add {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.issues-blob-add::after {
  display: none !important;
}

.issues-blob-add .issues-blob-add-plus {
  width: 52px;
  height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}

.issues-blob-add:hover,
.issues-blob-add:focus-visible {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.issues-blob-add:hover .issues-blob-add-plus,
.issues-blob-add:focus-visible .issues-blob-add-plus {
  background: rgba(255, 118, 118, 0.18);
  box-shadow:
    0 0 0 1px rgba(255, 196, 196, 0.5),
    0 0 24px rgba(255, 105, 105, 0.58),
    0 0 42px rgba(255, 105, 105, 0.28);
  color: #fff8f8;
}

/* day note toggle fallback: less bright */
.day-note-toggle {
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.28) !important;
  filter: saturate(0.88) brightness(0.94) !important;
}

/* dashboard drag and drop */
.dashboard-dnd-row {
  cursor: grab;
  transition: transform 220ms ease, filter 220ms ease, opacity 180ms ease;
  will-change: transform;
}

.dashboard-dnd-row:active {
  cursor: grabbing;
}

.dashboard-dnd-row.dashboard-dnd-dragging {
  opacity: 0.65;
  filter: saturate(0.92);
  transform: scale(0.995);
  z-index: 3;
}

.dashboard-dnd-row.dashboard-dnd-over {
  outline: 2px dashed rgba(76, 201, 240, 0.55);
  outline-offset: 6px;
}

.dashboard-dnd-row .card,
.dashboard-dnd-row .stat-card {
  transition: box-shadow 220ms ease, transform 220ms ease;
}

.dashboard-dnd-row:hover .card,
.dashboard-dnd-row:hover .stat-card {
  transform: translateY(-2px);
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.28);
}

/* dashboard drag top strip */
.dashboard-dnd-row {
  position: relative;
  cursor: default;
  padding-top: 12px;
}

.dashboard-dnd-row::before {
  content: '';
  position: absolute;
  top: 2px;
  left: 10px;
  right: 10px;
  height: 14px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(143, 162, 196, 0.12), rgba(143, 162, 196, 0.28), rgba(143, 162, 196, 0.12));
  opacity: 0.45;
  pointer-events: none;
  transition: opacity 180ms ease, transform 180ms ease;
}

.dashboard-dnd-row::after {
  content: 'Drag from top';
  position: absolute;
  top: 0;
  right: 16px;
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(220, 230, 245, 0.65);
  pointer-events: none;
  transition: opacity 180ms ease;
}

.dashboard-dnd-row:hover::before {
  opacity: 0.78;
  transform: translateY(-1px);
}

.dashboard-dnd-row.dashboard-dnd-dragging::before {
  opacity: 0.95;
}

/* dashboard dnd final polish: remove top bar and ghosted look */
.dashboard-dnd-row {
  padding-top: 0 !important;
  cursor: grab !important;
}

.dashboard-dnd-row::before,
.dashboard-dnd-row::after {
  content: none !important;
  display: none !important;
}

.dashboard-dnd-row.dashboard-dnd-dragging {
  opacity: 1 !important;
  filter: none !important;
  transform: scale(1) !important;
}

/* dashboard widget dnd v2 */
body.dashboard-widget-dnd-active {
  user-select: none;
  cursor: grabbing;
}

.dashboard-widget-dnd-item {
  cursor: grab;
  transition: box-shadow 180ms ease;
  will-change: left, top;
}

.dashboard-widget-dnd-item * {
  -webkit-user-drag: none;
}

.dashboard-widget-dnd-item.dashboard-widget-dnd-over {
  outline: 2px dashed rgba(76, 201, 240, 0.55);
  outline-offset: 5px;
}

.dashboard-widget-dnd-item.dashboard-widget-dnd-source {
  opacity: 1 !important;
  filter: none !important;
  cursor: grabbing !important;
  transform: scale(1.01);
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.36);
  transition: none !important;
}

.dashboard-widget-dnd-placeholder {
  border: 2px dashed rgba(143, 162, 196, 0.45);
  border-radius: 14px;
  background: rgba(143, 162, 196, 0.08);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
  margin: 0.35rem 0;
}

.dashboard-widget-dnd-ghost {
  position: fixed;
  z-index: 9999;
  pointer-events: none;
  opacity: 0.98;
  transform: scale(1.01);
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.38);
}

.dashboard-widget-compact .card {
  height: auto !important;
}
