/* OneMind Business Hub — layered on Bootstrap 5.3 */

:root,
[data-bs-theme="light"] {
  --om-brand: #ff5c1a;
  --om-brand-2: #ff8c42;
  --om-brand-soft: #fff1ea;
  --om-ink: #0f172a;
  --om-body: #f5f6fa;
  --om-surface: #ffffff;
  --om-border: #e6e8ef;
  --om-muted: #64748b;
  --om-sidebar: #0a0f1c;
  --om-sidebar-2: #111829;
  --om-sidebar-text: #aebbd2;
  --om-sidebar-active: #ffffff;
  --om-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 4px 16px rgba(15, 23, 42, .04);

  --bs-primary: var(--om-brand);
  --bs-primary-rgb: 255, 92, 26;
  --bs-link-color: #e24a0c;
  --bs-link-color-rgb: 226, 74, 12;
  --bs-link-hover-color: #b83a08;
  --bs-body-bg: var(--om-body);
  --bs-body-color: #1e293b;
  --bs-border-color: var(--om-border);
  --bs-body-font-family: 'DM Sans', 'Segoe UI', system-ui, sans-serif;
  --bs-border-radius: .6rem;
  --bs-border-radius-lg: .9rem;
  --bs-focus-ring-color: rgba(255, 92, 26, .25);
}

[data-bs-theme="dark"] {
  --om-brand-soft: rgba(255, 92, 26, .14);
  --om-ink: #f1f5fb;
  --om-body: #05080f;
  --om-surface: #0d1322;
  --om-border: #1c2538;
  --om-muted: #8a99b5;
  --om-sidebar: #070b15;
  --om-sidebar-2: #0f1626;
  --om-shadow: none;

  --bs-link-color: #ff8c42;
  --bs-link-color-rgb: 255, 140, 66;
  --bs-link-hover-color: #ffb07d;
  --bs-body-bg: var(--om-body);
  --bs-body-color: #dbe3f0;
  --bs-border-color: var(--om-border);
  --bs-secondary-bg: #121a2c;
  --bs-tertiary-bg: #0f1626;
}

body { background: var(--om-body); font-size: .925rem; }
h1, h2, h3, .h1, .h2, .h3, .om-display { font-family: 'Unbounded', 'Segoe UI', sans-serif; letter-spacing: -.01em; color: var(--om-ink); }
h1, .h1 { font-size: 1.35rem; font-weight: 600; }
h2, .h2 { font-size: 1.05rem; font-weight: 600; }
h3, .h3 { font-size: .95rem; font-weight: 600; }
.text-muted, .form-text { color: var(--om-muted) !important; }
.mono { font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: .82em; }

/* Buttons */
.btn-primary {
  --bs-btn-bg: var(--om-brand); --bs-btn-border-color: var(--om-brand);
  --bs-btn-hover-bg: #ec4d0d; --bs-btn-hover-border-color: #ec4d0d;
  --bs-btn-active-bg: #d64609; --bs-btn-active-border-color: #d64609;
  --bs-btn-disabled-bg: var(--om-brand); --bs-btn-disabled-border-color: var(--om-brand);
  font-weight: 600;
}
.btn-outline-primary {
  --bs-btn-color: #e24a0c; --bs-btn-border-color: var(--om-brand);
  --bs-btn-hover-bg: var(--om-brand); --bs-btn-hover-border-color: var(--om-brand);
  --bs-btn-active-bg: #d64609; --bs-btn-active-border-color: #d64609;
}
.form-check-input:checked { background-color: var(--om-brand); border-color: var(--om-brand); }
.form-control:focus, .form-select:focus, .form-check-input:focus { border-color: #ffb08a; box-shadow: 0 0 0 .2rem var(--bs-focus-ring-color); }

/* Shell */
.om-shell { display: flex; min-height: 100vh; }
.om-sidebar {
  width: 248px; flex-shrink: 0; background: var(--om-sidebar); color: var(--om-sidebar-text);
  position: sticky; top: 0; height: 100vh; overflow-y: auto; display: flex; flex-direction: column;
}
.om-brand { display: flex; align-items: center; gap: .65rem; padding: 1.1rem 1.15rem; color: #fff; text-decoration: none; }
.om-brand img { width: 34px; height: 34px; border-radius: 9px; }
.om-brand-name { font-family: 'Unbounded', sans-serif; font-weight: 600; font-size: .9rem; line-height: 1.1; }
.om-brand-sub { font-size: .7rem; color: var(--om-sidebar-text); letter-spacing: .08em; text-transform: uppercase; }
.om-nav { padding: .25rem .7rem 1rem; flex: 1; }
.om-nav-label { font-size: .68rem; text-transform: uppercase; letter-spacing: .1em; color: #5d6b86; padding: 1rem .6rem .35rem; }
.om-nav a {
  display: flex; align-items: center; gap: .7rem; padding: .5rem .65rem; border-radius: .55rem;
  color: var(--om-sidebar-text); text-decoration: none; font-weight: 500; margin-bottom: 1px;
}
.om-nav a i { font-size: 1.05rem; opacity: .85; }
.om-nav a:hover { background: var(--om-sidebar-2); color: #fff; }
.om-nav a.active { background: linear-gradient(90deg, rgba(255, 92, 26, .22), rgba(255, 92, 26, .06)); color: var(--om-sidebar-active); box-shadow: inset 3px 0 0 var(--om-brand); }
.om-nav a.active i { color: var(--om-brand-2); opacity: 1; }
.om-sidebar-foot { padding: .9rem 1.15rem; font-size: .75rem; color: #5d6b86; border-top: 1px solid #172033; }

.om-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.om-topbar {
  position: sticky; top: 0; z-index: 1020; display: flex; align-items: center; gap: .75rem;
  padding: .6rem 1.5rem; background: color-mix(in srgb, var(--om-surface) 88%, transparent);
  backdrop-filter: blur(10px); border-bottom: 1px solid var(--om-border);
}
.om-search { max-width: 420px; flex: 1; }
.om-search .form-control { background: var(--bs-body-bg); border-color: var(--om-border); padding-left: 2.2rem; }
.om-search { position: relative; }
.om-search > i { position: absolute; left: .8rem; top: 50%; transform: translateY(-50%); color: var(--om-muted); }
.om-icon-btn { position: relative; width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; border-radius: .6rem; border: 1px solid transparent; background: transparent; color: var(--bs-body-color); }
.om-icon-btn:hover { background: var(--bs-tertiary-bg); border-color: var(--om-border); }
.om-dot { position: absolute; top: 5px; right: 5px; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 9px; background: var(--om-brand); color: #fff; font-size: .65rem; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.om-avatar { width: 34px; height: 34px; border-radius: 50%; background: linear-gradient(135deg, var(--om-brand), var(--om-brand-2)); color: #fff; font-weight: 700; font-size: .78rem; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.om-avatar-lg { width: 64px; height: 64px; font-size: 1.3rem; }
.om-content { padding: 1.5rem; max-width: 1400px; width: 100%; }

/* Cards & tables */
.card { border-color: var(--om-border); background: var(--om-surface); box-shadow: var(--om-shadow); }
.card-header { background: transparent; border-bottom-color: var(--om-border); padding: .9rem 1.1rem; }
.table { --bs-table-bg: transparent; margin-bottom: 0; }
.table > thead th { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--om-muted); font-weight: 600; border-bottom-width: 1px; white-space: nowrap; }
.table > :not(caption) > * > * { padding: .7rem 1rem; border-bottom-color: var(--om-border); }
.table-hover > tbody > tr:hover > * { --bs-table-bg-state: var(--om-brand-soft); }

.om-stat { padding: 1.1rem 1.2rem; }
.om-stat-label { font-size: .75rem; color: var(--om-muted); text-transform: uppercase; letter-spacing: .06em; font-weight: 600; }
.om-stat-value { font-family: 'Unbounded', sans-serif; font-size: 1.6rem; font-weight: 600; color: var(--om-ink); line-height: 1.2; margin-top: .25rem; }
.om-stat-icon { width: 40px; height: 40px; border-radius: .7rem; background: var(--om-brand-soft); color: var(--om-brand); display: flex; align-items: center; justify-content: center; font-size: 1.15rem; }

.om-page-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.om-page-head p { margin: .2rem 0 0; color: var(--om-muted); }
.om-empty { text-align: center; padding: 2.5rem 1rem; color: var(--om-muted); }
.om-empty i { font-size: 2rem; color: #c7cede; display: block; margin-bottom: .5rem; }

.badge-soft { background: var(--om-brand-soft); color: #c2410c; font-weight: 600; }
[data-bs-theme="dark"] .badge-soft { color: #ffb07d; }
.badge-role { background: var(--bs-tertiary-bg); color: var(--bs-body-color); border: 1px solid var(--om-border); font-weight: 500; }

.om-timeline { list-style: none; padding: 0; margin: 0; }
.om-timeline li { display: flex; gap: .75rem; padding: .7rem 1.1rem; border-bottom: 1px solid var(--om-border); }
.om-timeline li:last-child { border-bottom: 0; }
.om-timeline .om-tl-icon { width: 30px; height: 30px; border-radius: 50%; background: var(--bs-tertiary-bg); display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--om-muted); }
.om-timeline .om-tl-icon.security { background: #fef2f2; color: #dc2626; }
[data-bs-theme="dark"] .om-timeline .om-tl-icon.security { background: rgba(220, 38, 38, .15); }

.om-perm-module { border: 1px solid var(--om-border); border-radius: .7rem; padding: .9rem 1rem; height: 100%; }
.om-perm-module h3 { font-family: 'DM Sans', sans-serif; font-size: .8rem; text-transform: uppercase; letter-spacing: .07em; color: var(--om-muted); margin-bottom: .6rem; }

pre.om-json { background: var(--bs-tertiary-bg); border: 1px solid var(--om-border); border-radius: .6rem; padding: 1rem; font-size: .8rem; max-height: 480px; }

/* Auth pages */
.om-auth { min-height: 100vh; display: grid; grid-template-columns: 1.05fr 1fr; }
.om-auth-art {
  background: radial-gradient(1200px 600px at 10% 10%, rgba(255, 92, 26, .35), transparent 60%),
              radial-gradient(800px 500px at 90% 90%, rgba(139, 92, 246, .25), transparent 60%), #05080f;
  color: #f1f5fb; padding: 3rem; display: flex; flex-direction: column; justify-content: space-between;
}
.om-auth-art h1 { color: #fff; font-size: 2rem; line-height: 1.2; max-width: 460px; }
.om-auth-art p { color: #aebbd2; max-width: 440px; }
.om-auth-form { display: flex; align-items: center; justify-content: center; padding: 2rem 1.25rem; background: var(--om-surface); }
.om-auth-card { width: 100%; max-width: 400px; }

/* Responsive */
.om-sidebar-backdrop { display: none; }
@media (max-width: 991.98px) {
  .om-sidebar { position: fixed; left: 0; top: 0; z-index: 1045; transform: translateX(-100%); transition: transform .2s ease; }
  .om-shell.nav-open .om-sidebar { transform: none; }
  .om-shell.nav-open .om-sidebar-backdrop { display: block; position: fixed; inset: 0; background: rgba(0, 0, 0, .45); z-index: 1040; }
  .om-content { padding: 1rem; }
  .om-topbar { padding: .6rem 1rem; }
  .om-auth { grid-template-columns: 1fr; }
  .om-auth-art { display: none; }
}
@media (max-width: 575.98px) {
  .table-responsive-stack thead { display: none; }
  .table-responsive-stack tr { display: block; border-bottom: 1px solid var(--om-border); padding: .4rem 0; }
  .table-responsive-stack td { display: flex; justify-content: space-between; gap: 1rem; border: 0 !important; padding: .3rem 1rem !important; }
  .table-responsive-stack td::before { content: attr(data-label); font-weight: 600; color: var(--om-muted); font-size: .78rem; }
}

/* Kanban boards */
.om-board { display: flex; gap: .75rem; overflow-x: auto; padding-bottom: .75rem; align-items: flex-start; }
.om-col { flex: 0 0 272px; background: var(--bs-tertiary-bg); border: 1px solid var(--om-border); border-radius: .8rem; display: flex; flex-direction: column; max-height: calc(100vh - 220px); }
.om-col-head { padding: .65rem .8rem; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--om-border); font-weight: 600; font-size: .82rem; }
.om-col-head .om-col-sum { font-size: .72rem; color: var(--om-muted); font-weight: 500; }
.om-col-body { padding: .5rem; overflow-y: auto; min-height: 80px; display: flex; flex-direction: column; gap: .45rem; }
.om-col.om-drop { outline: 2px dashed var(--om-brand); outline-offset: -2px; }
.om-card { background: var(--om-surface); border: 1px solid var(--om-border); border-radius: .6rem; padding: .6rem .7rem; cursor: grab; font-size: .84rem; box-shadow: var(--om-shadow); }
.om-card:hover { border-color: #ffb08a; }
.om-card.om-dragging { opacity: .45; }
.om-card a { color: inherit; text-decoration: none; }
.om-card .om-card-meta { color: var(--om-muted); font-size: .74rem; display: flex; justify-content: space-between; gap: .4rem; margin-top: .3rem; }
.om-overdue { color: #dc2626 !important; font-weight: 600; }
.om-priority-high, .om-priority-urgent { border-left: 3px solid #ef4444; }

/* Proposal builder */
.om-items input, .om-items select, .om-items textarea { min-width: 70px; }
.om-items td { vertical-align: top; }
.om-totals dt { font-weight: 500; color: var(--om-muted); }
.om-totals dd { text-align: right; margin-bottom: .3rem; font-variant-numeric: tabular-nums; }
.om-totals .om-grand { font-family: 'Unbounded', sans-serif; font-size: 1.1rem; color: var(--om-ink); }
.om-doc-section { white-space: pre-line; }
.om-kv dt { font-weight: 500; color: var(--om-muted); font-size: .82rem; }
.om-kv dd { margin-bottom: .6rem; }
