*{box-sizing:border-box;margin:0;padding:0}
:root{
  /* =====================================================================
     LIGHT THEME — KINNECT (red #E70000 + greys/white/black)
     Token names below were inherited from the original dark theme; their
     VALUES have been remapped so the rest of the stylesheet (which uses
     these tokens) flips to light automatically.
     ===================================================================== */

  /* Base palette */
  --color-red:#E70000;            /* PRIMARY brand color */
  --color-red-hover:#C40000;
  --color-red-deep:#C40000;
  --color-red-soft:rgba(231,0,0,0.06);
  --color-red-medium:rgba(231,0,0,0.12);
  --color-red-strong:rgba(231,0,0,0.20);

  --color-yellow:#E70000;         /* legacy "yellow" token → now red */
  --color-white:#FFFFFF;
  --color-light-grey:#F5F5F5;
  --color-medium-grey:#737373;
  --color-dark-grey:#262626;
  --color-black:#000000;

  /* Text — on light backgrounds */
  --text-on-light:#171717;
  --text-on-yellow:#FFFFFF;       /* legacy: text on yellow → text on red = white */
  --text-on-dark:#171717;         /* legacy "on dark" token re-mapped to dark text on light */
  --text-muted-on-light:#525252;
  --text-muted-on-dark:#525252;   /* same — was for muted on dark, now muted on light */

  /* Surfaces */
  --bg-light:#FFFFFF;
  --bg-soft:#FAFAFA;
  --bg-yellow:#E70000;            /* legacy bg-yellow → red */
  --bg-dark:#FFFFFF;              /* legacy bg-dark token → light */
  --bg-dark-grey:#F5F5F5;
  --bg-elevated:#FFFFFF;
  --bg-elevated-2:#FAFAFA;
  --border-on-dark:rgba(0,0,0,0.08);
  --border-strong-on-dark:rgba(0,0,0,0.16);

  /* ===== KINNECT BRAND tokens — remapped to red ===== */
  --kinnect-yellow:#E70000;
  --kinnect-yellow-light:#E70000;
  --kinnect-yellow-dark:#C40000;
  --kinnect-yellow-deep:#C40000;
  --kinnect-amber:#E70000;
  --kinnect-yellow-bg:rgba(231,0,0,0.10);
  --kinnect-yellow-soft:rgba(231,0,0,0.06);
  /* Solid reds — no pink tint. Lighter end of gradient stays in the
     deep-red zone so it never reads as pink, even at low opacity. */
  --kinnect-grad:linear-gradient(135deg,#E70000 0%,#C40000 100%);
  --kinnect-grad-bright:linear-gradient(135deg,#E70000 0%,#C40000 100%);
  --kinnect-grad-deep:#C40000;
  --kinnect-grad-charcoal:linear-gradient(135deg,#1F1F23 0%,#0F0F12 100%);
  --kinnect-grad-line:linear-gradient(90deg,#E70000 0%,rgba(231,0,0,0) 100%);
  /* Dark accents — for hero cards, executive summary cards, KPI highlights */
  --dark-hero:#1F1F23;
  --dark-hero-2:#0F0F12;
  --dark-grey:#262626;
  --dark-grey-2:#404040;
  --kinnect-ink:#171717;
  --kinnect-shadow-yellow:0 4px 14px rgba(231,0,0,0.18);

  --red:#E70000;
  --red-dark:#C40000;
  --red-bg:rgba(231,0,0,0.10);

  /* Sidebar — light off-white to differentiate from main content */
  /* Sidebar is dark grey (matches the dark sign-in card) — anchors the UI
     and keeps navigation visually quiet against the bright main content. */
  --sidebar:#1A1A1F;
  --sidebar-border:rgba(255,255,255,0.06);
  --sidebar-hover:rgba(255,255,255,0.05);
  --sidebar-active:rgba(231,0,0,0.18);

  /* Main surfaces (the names are confusing legacy — `--white` is the
     primary surface, `--bg` is the page bg) */
  --white:#FFFFFF;
  --bg:#FFFFFF;
  --surface-1:#FFFFFF;
  --surface-2:#FAFAFA;
  --surface-3:#F0F0F0;
  --border-soft:rgba(0,0,0,0.06);
  --border-medium:rgba(0,0,0,0.10);
  --border-strong:rgba(0,0,0,0.18);

  /* Grey scale — STANDARD CONVENTION (gray-50 = lightest, gray-900 =
     darkest). This is the Tailwind ordering most code expects.
     Inverting matters: any rule that says `color: var(--gray-700)` now
     resolves to a readable dark text on a white background. Any rule
     that says `background: var(--gray-50)` resolves to a near-white
     surface, which is correct for the light theme. */
  --gray-50:#FAFAFA;
  --gray-100:#F5F5F5;
  --gray-200:#E5E5E5;
  --gray-300:#D4D4D4;
  --gray-400:#A3A3A3;
  --gray-500:#737373;
  --gray-600:#525252;
  --gray-700:#404040;
  --gray-800:#262626;
  --gray-900:#171717;

  /* Status colors — kept saturated on light bg */
  --blue:#2563EB;        --blue-bg:#EFF6FF;
  --green:#16A34A;       --green-bg:#DCFCE7;
  --amber:#E70000;       --amber-bg:#FFE5E5;
  --purple:#7C3AED;      --purple-bg:#F3E8FF;

  --font:'IBM Plex Sans',sans-serif;
  --mono:'IBM Plex Mono',monospace;
  --radius:6px;
  --radius-lg:10px;
  --radius-xl:14px;
  --shadow:0 1px 3px rgba(0,0,0,0.07),0 4px 12px rgba(0,0,0,0.06);
  --shadow-sm:0 1px 2px rgba(0,0,0,0.05);
  --sidebar-w:232px;
  --sidebar-w-collapsed:56px;
  --topbar-h:52px;
}
html,body{color:#171717;background:#FFFFFF}
html,body{height:100%;font-family:var(--font);font-size:13.5px;color:var(--gray-800);background:var(--bg);-webkit-font-smoothing:antialiased}

/* ===== LAYOUT ===== */
.app{display:flex;height:100vh;overflow:hidden}
.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--sidebar);display:flex;flex-direction:column;height:100vh;overflow-y:auto;z-index:100;transition:width 0.2s ease}

/* ===== SIDEBAR COLLAPSED STATE ===== */
.app.sidebar-collapsed .sidebar{width:var(--sidebar-w-collapsed);overflow-x:hidden}
.app.sidebar-collapsed .sb-brand,
.app.sidebar-collapsed .sb-brand-sub,
.app.sidebar-collapsed .sb-company-row,
.app.sidebar-collapsed .sb-project-label,
.app.sidebar-collapsed .sb-proj-name,
.app.sidebar-collapsed .sb-proj-chevron,
.app.sidebar-collapsed .sb-new-proj,
.app.sidebar-collapsed .sb-proj-dropdown,
.app.sidebar-collapsed .sb-section,
.app.sidebar-collapsed .sb-label,
.app.sidebar-collapsed .sb-badge,
.app.sidebar-collapsed .sb-user-name,
.app.sidebar-collapsed .sb-user-role,
.app.sidebar-collapsed .sb-logout{display:none !important}
.app.sidebar-collapsed .sb-logo{padding:14px 0 12px;text-align:center}
.app.sidebar-collapsed .sb-logo-row{justify-content:center;gap:0}
.app.sidebar-collapsed .sb-project{padding:8px 0;text-align:center;border-bottom:1px solid var(--sidebar-border)}
.app.sidebar-collapsed .sb-project-btn{justify-content:center;padding:7px 0;background:transparent;border-color:transparent}
.app.sidebar-collapsed .sb-project-btn:hover{background:rgba(0,0,0,0.05)}
.app.sidebar-collapsed .sb-proj-status-dot{width:9px;height:9px}
.app.sidebar-collapsed .sb-item{justify-content:center;padding:9px 0;border-left:none;position:relative;font-size:0;color:transparent}
.app.sidebar-collapsed .sb-item.active{border-left:none;background:var(--sidebar-active);box-shadow:inset 3px 0 0 var(--red)}
.app.sidebar-collapsed .sb-item i{width:auto;font-size:14px;margin:0;color:rgba(0,0,0,0.68)}
.app.sidebar-collapsed .sb-item.active i{color:#fff}
.app.sidebar-collapsed .sb-nav{padding:6px 0}
.app.sidebar-collapsed .sb-divider{margin:6px 8px}
.app.sidebar-collapsed .sb-logo-row > div:not(.sb-logo-mark){display:none}
.app.sidebar-collapsed .sb-user-row > div:not(.sb-avatar){display:none}
.app.sidebar-collapsed .sb-bottom{padding:10px 0;text-align:center}
.app.sidebar-collapsed .sb-user-row{justify-content:center;gap:0}

/* ===== TOPBAR TOGGLE BUTTON ===== */
.topbar-toggle{width:32px;height:32px;background:transparent;border:1px solid var(--gray-200);border-radius:var(--radius);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--gray-600);transition:all 0.15s;font-size:13px;flex-shrink:0;font-family:var(--font)}
.topbar-toggle:hover{background:var(--gray-100);color:var(--gray-900);border-color:var(--gray-300)}
.main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}
.topbar{height:var(--topbar-h);background:var(--white);border-bottom:1px solid var(--gray-200);display:flex;align-items:center;padding:0 24px;gap:14px;flex-shrink:0;z-index:50}
.content{flex:1;overflow-y:auto;padding:24px 28px}

/* ===== COMPANY SELECT SCREEN ===== */
.company-overlay{position:fixed;inset:0;background:#F7F7F7;z-index:10000;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:32px}
.company-header{text-align:center}
.company-logo-mark{width:52px;height:52px;background:var(--red);border-radius:12px;display:flex;align-items:center;justify-content:center;margin:0 auto 14px}
.company-logo-mark i{color:#fff;font-size:22px}
.company-title{font-size:26px;font-weight:700;color:#fff;letter-spacing:-0.02em}
.company-sub{font-size:13px;color:rgba(0,0,0,0.62);margin-top:4px;letter-spacing:0.02em}
.company-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:680px;width:100%;padding:0 20px}
.company-card{background:#FFFFFF;border:1px solid rgba(0,0,0,0.08);border-radius:var(--radius-xl);padding:22px 18px;cursor:pointer;transition:all 0.2s;text-align:center}
.company-card:hover{border-color:var(--red);background:#FAFAFA;transform:translateY(-2px)}
.company-card-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;margin:0 auto 12px}
.company-card-name{font-size:13.5px;font-weight:700;color:#fff;margin-bottom:3px}
.company-card-sub{font-size:11px;color:rgba(0,0,0,0.65)}
.company-new{background:transparent;border:1px dashed rgba(0,0,0,0.15);cursor:pointer;transition:all 0.2s}
.company-new:hover{border-color:var(--red);background:rgba(231,0,0,0.06)}
.company-new .company-card-icon{background:rgba(0,0,0,0.05);color:rgba(0,0,0,0.62)}
.company-footer{font-size:11.5px;color:rgba(0,0,0,0.60);text-align:center}

/* ===== LOGIN SCREEN ===== */
.login-overlay{position:fixed;inset:0;background:#F7F7F7;z-index:9999;display:none;align-items:center;justify-content:center;flex-direction:column;gap:24px}
.login-overlay.show{display:flex}
.login-back{font-size:12px;color:rgba(0,0,0,0.65);cursor:pointer;display:flex;align-items:center;gap:5px;transition:color 0.15s}
.login-back:hover{color:rgba(0,0,0,0.7)}
.login-box{background:#FFFFFF;border:1px solid rgba(0,0,0,0.08);border-radius:var(--radius-xl);padding:36px;width:380px}
.login-company-badge{display:flex;align-items:center;gap:10px;background:rgba(0,0,0,0.04);border:1px solid rgba(0,0,0,0.07);border-radius:var(--radius);padding:10px 13px;margin-bottom:24px}
.login-company-icon{width:30px;height:30px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0}
.login-company-name{color:#fff;font-size:13px;font-weight:600}
.login-company-sub{color:rgba(0,0,0,0.65);font-size:10.5px}
.login-title{font-size:18px;font-weight:700;color:#fff;margin-bottom:4px}
.login-desc{font-size:12px;color:rgba(0,0,0,0.62);margin-bottom:24px}
.login-label{font-size:10.5px;font-weight:700;color:rgba(0,0,0,0.62);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:5px;display:block}
.login-input{width:100%;background:rgba(0,0,0,0.05);border:1px solid rgba(0,0,0,0.1);border-radius:var(--radius);padding:10px 13px;font-size:13px;color:#fff;font-family:var(--font);margin-bottom:14px;transition:border-color 0.15s}
.login-input:focus{outline:none;border-color:var(--red)}
.login-input-wrap{position:relative}
.login-input-wrap .login-input{padding-right:42px}
.login-pass-toggle{position:absolute;right:1px;top:1px;bottom:15px;display:flex;align-items:center;justify-content:center;width:38px;background:transparent;border:none;color:rgba(0,0,0,0.65);cursor:pointer;padding:0;font-size:14px;transition:color .15s}
.login-pass-toggle:hover{color:var(--kinnect-yellow,#E70000)}
.login-pass-toggle .fa-eye-slash{color:var(--kinnect-yellow,#E70000)}
.login-pass-toggle:focus-visible{outline:none;color:var(--kinnect-yellow,#E70000)}
.login-btn{width:100%;background:var(--red);color:#fff;border:none;border-radius:var(--radius);padding:11px;font-size:13.5px;font-weight:600;cursor:pointer;font-family:var(--font);transition:background 0.15s;margin-top:4px}
.login-forgot-row{text-align:center;margin-top:14px}
.login-forgot-link{color:var(--text-muted-on-dark,rgba(255,255,255,0.65));font-size:12px;text-decoration:none;border-bottom:1px dotted rgba(255,255,255,0.3);transition:color 0.15s,border-color 0.15s}
.login-forgot-link:hover{color:var(--kinnect-yellow,#E70000);border-bottom-color:var(--kinnect-yellow,#E70000)}
.login-btn:hover{background:var(--red-dark)}
.login-error{color:#A00000;font-size:12px;margin-top:-8px;margin-bottom:10px;display:none}
.login-users{margin-top:20px;padding-top:16px;border-top:1px solid rgba(0,0,0,0.06)}
.login-users-label{font-size:9.5px;color:rgba(0,0,0,0.60);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:8px}
.login-user-row{display:flex;align-items:center;justify-content:space-between;padding:5px 0;font-size:11.5px;color:rgba(0,0,0,0.62)}
.login-user-role{font-size:10px;background:rgba(0,0,0,0.06);padding:2px 6px;border-radius:3px;color:rgba(0,0,0,0.60)}

/* ===== SIDEBAR ===== */
.sb-logo{padding:16px 15px 12px;border-bottom:1px solid var(--sidebar-border)}
.sb-logo-row{display:flex;align-items:center;gap:9px}
.sb-logo-mark{width:28px;height:28px;background:var(--red);border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sb-logo-mark i{color:#fff;font-size:12px}
.sb-brand{color:#fff;font-size:12.5px;font-weight:700;letter-spacing:-0.01em;line-height:1.2}
.sb-brand-sub{color:rgba(0,0,0,0.62);font-size:9px;letter-spacing:0.08em;text-transform:uppercase}
.sb-company-row{display:flex;align-items:center;gap:7px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(0,0,0,0.05)}
.sb-company-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.sb-company-name{color:rgba(0,0,0,0.62);font-size:10px;font-weight:500}

/* Project Switcher */
.sb-project{padding:10px 13px;border-bottom:1px solid var(--sidebar-border)}
.sb-project-label{font-size:9px;color:rgba(0,0,0,0.60);text-transform:uppercase;letter-spacing:0.09em;margin-bottom:5px;padding:0 2px}
.sb-project-btn{width:100%;background:rgba(0,0,0,0.05);border:1px solid rgba(0,0,0,0.09);border-radius:var(--radius);padding:7px 9px;cursor:pointer;display:flex;align-items:center;gap:7px;transition:all 0.15s;text-align:left}
.sb-project-btn:hover{background:rgba(0,0,0,0.08)}
.sb-proj-status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.sb-proj-name{color:#fff;font-size:11px;font-weight:500;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-proj-chevron{color:rgba(0,0,0,0.65);font-size:10px;transition:transform 0.2s}
/* ===========================================================================
   NOTIFICATIONS — bell-icon badge + dropdown panel in topbar
   =========================================================================== */
.notif-wrap{position:relative;display:inline-block}
.notif-btn{position:relative}
.notif-badge{
  position:absolute;top:0;right:0;min-width:16px;height:16px;padding:0 4px;
  background:var(--kinnect-yellow,#E70000);color:#fff;font-size:9.5px;font-weight:700;
  border-radius:8px;display:flex;align-items:center;justify-content:center;
  border:1.5px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,0.25);pointer-events:none
}
.notif-panel{
  display:none;position:absolute;top:calc(100% + 6px);right:0;width:360px;max-height:500px;
  background:#fff;border:1px solid rgba(0,0,0,0.08);border-radius:8px;
  box-shadow:0 12px 32px rgba(0,0,0,0.18);z-index:1500;flex-direction:column;overflow:hidden
}
.notif-panel.open{display:flex}
.notif-panel-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 14px;border-bottom:1px solid rgba(0,0,0,0.06);
  font-size:12px;font-weight:700;color:#171717;background:#FAFAFA;flex-shrink:0
}
.notif-mark-all{
  background:none;border:none;color:var(--kinnect-yellow,#E70000);font-size:11px;
  font-weight:600;cursor:pointer;padding:2px 6px;border-radius:4px
}
.notif-mark-all:hover{background:rgba(231,0,0,0.08)}
.notif-panel-list{flex:1;overflow-y:auto;min-height:0}
.notif-item{
  padding:10px 14px;border-bottom:1px solid rgba(0,0,0,0.04);cursor:pointer;
  display:flex;gap:10px;align-items:flex-start;transition:background 0.1s
}
.notif-item:hover{background:rgba(0,0,0,0.03)}
.notif-item.unread{background:rgba(231,0,0,0.04)}
.notif-item.unread::before{
  content:'';width:6px;height:6px;border-radius:50%;background:var(--kinnect-yellow,#E70000);
  flex-shrink:0;margin-top:6px
}
.notif-item:not(.unread)::before{content:'';width:6px;flex-shrink:0}
.notif-item-body{flex:1;min-width:0}
.notif-item-title{font-size:12px;font-weight:600;color:#171717;line-height:1.3}
.notif-item-sub{font-size:11px;color:rgba(0,0,0,0.55);margin-top:2px;line-height:1.3}
.notif-item-time{font-size:10px;color:rgba(0,0,0,0.45);margin-top:3px}
.notif-empty{padding:30px 14px;text-align:center;color:rgba(0,0,0,0.45);font-size:12px;font-style:italic}

.sb-proj-dropdown{display:none;margin-top:4px;background:rgba(0,0,0,0.03);border:1px solid rgba(0,0,0,0.07);border-radius:var(--radius);overflow:hidden}
.sb-proj-dropdown.open{display:flex;flex-direction:column;max-height:420px}
.sb-proj-search-wrap{position:relative;padding:6px;border-bottom:1px solid rgba(0,0,0,0.06);background:rgba(0,0,0,0.04);flex-shrink:0}
.sb-proj-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:rgba(0,0,0,0.45);font-size:10.5px;pointer-events:none}
.sb-proj-search-input{width:100%;padding:6px 8px 6px 26px;font-size:11.5px;font-family:var(--font);background:#fff;border:1px solid rgba(0,0,0,0.10);border-radius:4px;color:#171717;outline:none}
.sb-proj-search-input:focus{border-color:var(--kinnect-yellow,#E70000);box-shadow:0 0 0 2px rgba(231,0,0,0.15)}
.sb-proj-search-input::placeholder{color:rgba(0,0,0,0.40)}
.sb-proj-list{flex:1;overflow-y:auto;min-height:0}
.sb-proj-empty{padding:14px 12px;font-size:11px;color:rgba(0,0,0,0.50);text-align:center;font-style:italic}
.sb-proj-item{padding:8px 10px;cursor:pointer;border-bottom:1px solid rgba(0,0,0,0.04);transition:background 0.1s;display:flex;align-items:center;gap:7px}
.sb-proj-item:last-child{border-bottom:none}
.sb-proj-item:hover{background:rgba(0,0,0,0.05)}
.sb-proj-item.active{background:rgba(231,0,0,0.12)}
.sb-proj-item-info{flex:1;min-width:0}
.sb-proj-item-name{color:#fff;font-size:11px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-proj-item-type{color:rgba(0,0,0,0.62);font-size:9.5px;margin-top:1px}
.sb-proj-item-pill{font-size:8.5px;font-weight:700;padding:1px 5px;border-radius:3px;flex-shrink:0;text-transform:uppercase;letter-spacing:0.04em}
.pill-pursuit{background:rgba(231,0,0,0.25);color:#404040}
.pill-active{background:rgba(5,150,105,0.25);color:#047857}
.pill-awarded{background:rgba(37,99,235,0.25);color:#1E40AF}
.sb-new-proj{margin-top:5px;width:100%;background:transparent;border:1px dashed rgba(0,0,0,0.12);border-radius:var(--radius);padding:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px;color:rgba(0,0,0,0.65);font-size:10.5px;font-family:var(--font);transition:all 0.15s}
.sb-new-proj:hover{border-color:var(--red);color:var(--red)}

/* Nav */
.sb-nav{padding:6px 0;flex:1}
.sb-section{padding:12px 15px 3px;font-size:9px;color:rgba(0,0,0,0.60);text-transform:uppercase;letter-spacing:0.1em;font-weight:700}
.sb-item{display:flex;align-items:center;gap:8px;padding:6px 15px;cursor:pointer;color:rgba(0,0,0,0.42);font-size:11.5px;font-weight:400;transition:all 0.12s;border-left:2px solid transparent}
.sb-item:hover{color:rgba(0,0,0,0.8);background:var(--sidebar-hover)}
.sb-item.active{color:#171717;background:var(--sidebar-active);border-left-color:var(--red);font-weight:500}
.sb-item i{width:15px;font-size:11.5px;text-align:center;flex-shrink:0;opacity:0.65}
.sb-item.active i{opacity:1}
.sb-item .sb-badge{margin-left:auto;background:var(--red);color:#fff;font-size:8.5px;padding:1px 5px;border-radius:3px;font-weight:700}
.sb-divider{height:1px;background:var(--sidebar-border);margin:4px 0}
.sb-bottom{padding:10px 13px;border-top:1px solid var(--sidebar-border)}
.sb-user-row{display:flex;align-items:center;gap:8px}
.sb-avatar{width:27px;height:27px;border-radius:50%;background:var(--red);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;flex-shrink:0}
.sb-user-name{color:#fff;font-size:11px;font-weight:500;flex:1}
.sb-user-role{color:rgba(0,0,0,0.60);font-size:9.5px}
.sb-logout{background:none;border:none;cursor:pointer;color:rgba(0,0,0,0.62);font-size:12px;padding:4px;transition:color 0.15s}
.sb-logout:hover{color:rgba(0,0,0,0.7)}

/* ===== TOPBAR ===== */
.topbar-title{font-size:14px;font-weight:600;color:var(--gray-900)}
.topbar-breadcrumb{font-size:11.5px;color:var(--gray-400);display:flex;align-items:center;gap:5px}
.topbar-breadcrumb span{color:var(--gray-600)}
.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:8px}
.topbar-sep{color:var(--gray-300)}

/* Status badges - all contexts */
.status-badge{padding:3px 9px;border-radius:20px;font-size:10px;font-weight:700;letter-spacing:0.03em;display:inline-flex;align-items:center;gap:4px}
.status-badge::before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor;opacity:0.7}
.s-pursuit{background:#FFE5E5;color:#404040}
.s-active{background:#ecfdf5;color:#047857}
.s-awarded{background:#eff6ff;color:#1d4ed8}
.s-concept{background:#FFE5E5;color:#404040}
.s-precon{background:#e8f0fe;color:#2563EB}
.s-budget{background:#e6f7ed;color:#166534}
.s-dd{background:#f3f0ff;color:#7C3AED}
.topbar-icon-btn{width:30px;height:30px;background:transparent;border:1px solid var(--gray-200);border-radius:var(--radius);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--gray-400);transition:all 0.15s;font-size:12px}
.topbar-icon-btn:hover{background:var(--gray-50);color:var(--gray-700)}

/* ===== PANELS ===== */
.panel{display:none}
.panel.active{display:block}

/* ===== CARDS ===== */
.card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:20px}
.card-sm{padding:14px 16px}
.card-title{font-size:12px;font-weight:700;color:var(--gray-700);display:flex;align-items:center;gap:7px;margin-bottom:14px;text-transform:uppercase;letter-spacing:0.04em}
.card-title i{color:var(--gray-400);font-size:11.5px}
.card-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.card-title-row .card-title{margin-bottom:0}
.card-action{font-size:11px;color:var(--red);cursor:pointer;display:inline-flex;align-items:center;gap:4px;font-weight:600;background:none;border:none;font-family:var(--font)}
.card-action:hover{text-decoration:underline}

/* ===== COLORED STAT CARDS ===== */
.stat-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:16px 18px;position:relative;overflow:hidden}
.stat-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px}
.stat-card.accent-red::before{background:var(--red)}
.stat-card.accent-blue::before{background:var(--blue)}
.stat-card.accent-green::before{background:var(--green)}
.stat-card.accent-amber::before{background:var(--amber)}
.stat-card.accent-purple::before{background:var(--purple)}
.stat-label{font-size:10px;color:var(--gray-500);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:6px;font-weight:700}
.stat-value{font-size:21px;font-weight:700;color:var(--gray-900);line-height:1;font-family:var(--mono)}
.stat-value-sm{font-size:17px;font-weight:700;color:var(--gray-900);line-height:1;font-family:var(--mono)}
.stat-sub{font-size:11px;color:var(--gray-400);margin-top:5px}
.stat-icon{position:absolute;bottom:12px;right:14px;font-size:22px;opacity:0.07}

/* ===== GRID ===== */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.grid-5{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}

/* ===== TABLES ===== */
.tbl{width:100%;border-collapse:collapse}
.tbl th{font-size:9.5px;font-weight:700;color:var(--gray-400);text-transform:uppercase;letter-spacing:0.08em;padding:7px 12px;text-align:left;border-bottom:2px solid var(--gray-200);white-space:nowrap;background:var(--gray-50)}
.tbl td{padding:10px 12px;border-bottom:1px solid var(--gray-100);font-size:12.5px;color:var(--gray-700);vertical-align:middle}
.tbl tr:last-child td{border-bottom:none}
.tbl tr:hover td{background:var(--gray-50)}
.tbl-link{color:var(--red);cursor:pointer;text-decoration:none;font-weight:600;display:inline-flex;align-items:center;gap:4px;font-size:11.5px}
.tbl-link:hover{text-decoration:underline}

/* ===== TAGS ===== */
.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:4px;font-size:10px;font-weight:700;letter-spacing:0.02em}
.tag-red{background:var(--kinnect-yellow-soft);color:var(--red)}
.tag-blue{background:#eef2ff;color:#2563EB}
.tag-green{background:#ecfdf5;color:#059669}
.tag-yellow{background:#FFE5E5;color:#404040}
.tag-gray{background:var(--gray-100);color:var(--gray-600)}
.tag-purple{background:#faf5ff;color:#7c3aed}
.tag-orange{background:#FFE5E5;color:#404040}

/* ===== BUTTONS ===== */
.btn{display:inline-flex;align-items:center;gap:5px;padding:7px 13px;border-radius:var(--radius);font-size:12px;font-weight:600;cursor:pointer;border:none;font-family:var(--font);transition:all 0.15s;white-space:nowrap}
.btn-primary{background:var(--red);color:#fff}
.btn-primary:hover{background:var(--red-dark)}
.btn-outline{background:var(--white);border:1px solid var(--gray-300);color:var(--gray-700)}
.btn-outline:hover{background:var(--gray-50)}
.btn-ghost{background:transparent;color:var(--gray-500);padding:6px 10px}
.btn-ghost:hover{background:var(--gray-100);color:var(--gray-800)}
.btn-sm{padding:5px 10px;font-size:11px}
.btn-danger{background:var(--kinnect-yellow-soft);color:var(--red);border:1px solid var(--kinnect-yellow-bg)}
.btn-danger:hover{background:var(--kinnect-yellow-bg)}
.btn-blue{background:var(--blue);color:#fff}
.btn-blue:hover{background:#1d4ed8}

/* ===== FORMS ===== */
.form-group{margin-bottom:13px}
.form-label{font-size:10px;font-weight:700;color:var(--gray-500);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:5px;display:block}
.form-input{width:100%;background:var(--white);border:1px solid var(--gray-300);border-radius:var(--radius);padding:8px 11px;font-size:13px;color:var(--gray-800);font-family:var(--font);transition:border-color 0.15s}
.form-input:focus{outline:none;border-color:var(--red)}
.form-select{width:100%;background:var(--white);border:1px solid var(--gray-300);border-radius:var(--radius);padding:8px 11px;font-size:13px;color:var(--gray-800);font-family:var(--font);cursor:pointer}
.form-select:focus{outline:none;border-color:var(--red)}
.form-textarea{width:100%;background:var(--white);border:1px solid var(--gray-300);border-radius:var(--radius);padding:9px 11px;font-size:13px;color:var(--gray-800);font-family:var(--font);resize:vertical;min-height:90px;line-height:1.55}
.form-textarea:focus{outline:none;border-color:var(--red)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}

/* ===== PAGE HEADER ===== */
.page-header{margin-bottom:20px}
.page-title{font-size:19px;font-weight:700;color:var(--gray-900);letter-spacing:-0.02em}
.page-sub{font-size:12px;color:var(--gray-400);margin-top:3px}

/* ===== MISC ===== */
.divider{height:1px;background:var(--gray-200);margin:16px 0}
.section-gap{margin-top:16px}
.text-muted{color:var(--gray-400);font-size:12px}
.text-red{color:var(--red)}
.fw-600{font-weight:600}
.fw-700{font-weight:700}
.note-box{background:#FFE5E5;border:1px solid #404040;border-radius:var(--radius);padding:10px 14px;font-size:12px;color:#404040;display:flex;gap:8px;align-items:flex-start}
.info-box{background:#eff6ff;border:1px solid #bfdbfe;border-radius:var(--radius);padding:10px 14px;font-size:12px;color:#1d4ed8;display:flex;gap:8px;align-items:flex-start}
.empty-state{text-align:center;padding:40px 24px;color:var(--gray-400)}
.empty-state i{font-size:28px;margin-bottom:10px;display:block;opacity:0.3}
.empty-state p{font-size:12.5px}

/* ===== PROG BAR ===== */
.prog-bar{height:5px;background:var(--gray-200);border-radius:3px;overflow:hidden}
.prog-fill{height:100%;border-radius:3px;background:var(--red);transition:width 0.5s}

/* ===== MODAL ===== */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:1000;display:none;align-items:center;justify-content:center;padding:24px}
.modal-overlay.open{display:flex}
.modal{background:var(--white);border-radius:var(--radius-xl);padding:28px;max-width:640px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 24px 60px rgba(0,0,0,0.2)}
.modal-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px}
.modal-title{font-size:15px;font-weight:700;color:var(--gray-900)}
.modal-sub{font-size:12px;color:var(--gray-400);margin-top:2px}
.modal-close{background:none;border:none;cursor:pointer;color:var(--gray-400);font-size:16px;padding:2px}
.modal-close:hover{color:var(--gray-700)}
.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid var(--gray-200)}

/* ===== TOAST ===== */
.toast{position:fixed;bottom:24px;right:24px;background:var(--gray-900);color:#fff;padding:11px 16px;border-radius:var(--radius-lg);font-size:12.5px;z-index:2000;display:flex;align-items:center;gap:8px;box-shadow:0 8px 24px rgba(0,0,0,0.22);transform:translateY(80px);opacity:0;transition:all 0.3s;pointer-events:none}
.toast.show{transform:translateY(0);opacity:1}
.toast i{color:var(--red);font-size:14px}

/* ===== SCROLLBAR ===== */
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:10px}

/* ===== COHESIVE DASHBOARD v4 — cream surface, red accent, gradients ===== */
#panel-dashboard{background:#FAFAFA;margin:-24px -28px;padding:32px 32px 40px;min-height:calc(100vh - 52px)}
.dash-v3{display:flex;flex-direction:column;gap:20px;max-width:1640px;margin:0 auto}
.dash-v3 .dash-row{display:grid;gap:20px}
.dash-grid-12{display:grid;grid-template-columns:repeat(12,1fr);gap:20px}

/* Card — rounded, soft shadow, no hard border */
.dash-widget{background:#fff;border:none;border-radius:20px;padding:26px 28px;position:relative;box-shadow:0 1px 2px rgba(15,17,23,0.04),0 8px 24px rgba(15,17,23,0.05)}
.dash-widget-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.dash-widget-title-text{font-size:14px;font-weight:700;color:var(--gray-900);letter-spacing:-0.01em;text-transform:none}
.dash-widget-action{font-size:12px;color:var(--gray-500);background:var(--gray-50);border:1px solid var(--gray-100);cursor:pointer;font-family:var(--font);font-weight:500;padding:5px 11px;border-radius:14px;display:inline-flex;align-items:center;gap:4px;transition:all 0.15s}
.dash-widget-action:hover{background:var(--gray-100);color:var(--gray-900)}

/* KPI tiles — clean white, but one is the gradient feature card */
.dash-kpi{padding:26px 28px;border-radius:20px;background:#fff;border:none;box-shadow:0 1px 2px rgba(15,17,23,0.04),0 8px 24px rgba(15,17,23,0.05);min-height:148px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.dash-kpi:not(.dash-kpi-feature):not(.dash-kpi-dark)::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:#E70000;z-index:2}
/* All KPI tiles in the dashboard now use SOLID #E70000 with white text +
   subtle white-bubble highlights. Consistency over variety. */
.dash-grid-12 > div .dash-kpi:not(.dash-kpi-feature){
  background:
    radial-gradient(circle 140px at 96% 96%,rgba(255,255,255,0.22) 0%,rgba(255,255,255,0.06) 60%,transparent 80%),
    radial-gradient(circle 90px at 12% 18%,rgba(255,255,255,0.12) 0%,transparent 70%),
    #E70000 !important;
  color:#FFFFFF !important;
  border:1px solid rgba(255,255,255,0.10) !important;
  box-shadow:0 8px 24px rgba(231,0,0,0.22),0 1px 2px rgba(0,0,0,0.10) !important;
}
.dash-grid-12 > div .dash-kpi:not(.dash-kpi-feature)::before{content:none !important}
.dash-grid-12 > div .dash-kpi:not(.dash-kpi-feature) .dash-kpi-label{color:rgba(255,255,255,0.85) !important;letter-spacing:0.10em;font-weight:700}
.dash-grid-12 > div .dash-kpi:not(.dash-kpi-feature) .dash-kpi-value{color:#FFFFFF !important}
.dash-grid-12 > div .dash-kpi:not(.dash-kpi-feature) .dash-kpi-sub{color:rgba(255,255,255,0.92) !important}
.dash-grid-12 > div .dash-kpi:not(.dash-kpi-feature) .dash-kpi-accent{color:#FFFFFF !important;font-weight:700}
.dash-grid-12 > div .dash-kpi:not(.dash-kpi-feature) .dash-kpi-divider{background:rgba(255,255,255,0.22) !important}
/* Removed: dark-grey KPI tile variant (.dash-kpi-dark) and 2nd-child
   override. Both went against the "all solid red" direction. */
.dash-kpi-label{font-size:11.5px;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:0.1em}
.dash-kpi-value{font-size:38px;font-weight:700;color:var(--gray-900);font-family:var(--mono);line-height:1;letter-spacing:-0.03em;margin-top:16px}
.dash-kpi-sub{font-size:12.5px;color:var(--gray-500);margin-top:10px;line-height:1.5}
.dash-kpi-divider{height:1px;background:var(--gray-100);margin:16px 0 12px}
.dash-kpi-accent{color:var(--red);font-weight:600}

/* Feature gradient KPI — full red gradient with white text */
.dash-kpi-feature{background:#E70000;color:#FFFFFF}
.dash-kpi-feature::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at top right,rgba(255,255,255,0.18),transparent 60%);pointer-events:none}
.dash-kpi-feature .dash-kpi-label{color:rgba(255,255,255,0.85);font-weight:700;letter-spacing:0.12em}
.dash-kpi-feature .dash-kpi-value{color:#FFFFFF}
.dash-kpi-feature .dash-kpi-sub{color:rgba(255,255,255,0.92)}
.dash-kpi-feature .dash-kpi-divider{background:rgba(255,255,255,0.22)}
.dash-kpi-feature .dash-kpi-accent{color:#FFFFFF;font-weight:700}
.dash-kpi-feature .dash-kpi-deco{position:absolute;bottom:-30px;right:-30px;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,0.10);pointer-events:none}
.dash-kpi-feature .dash-kpi-deco-2{position:absolute;top:-40px;right:-40px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,0.08);pointer-events:none}

/* Schedule rail — gradient line, glowing active dot */
.dash-schedule-rail{position:relative;padding-left:20px;margin-top:4px}
.dash-schedule-rail::before{content:'';position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:linear-gradient(180deg,rgba(231,0,0,0.6) 0%,rgba(231,0,0,0.2) 50%,var(--gray-200) 100%);border-radius:1px}
.dash-sched-item{position:relative;padding:10px 0 10px 16px}
.dash-sched-item::before{content:'';position:absolute;left:-17px;top:14px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--gray-300);box-sizing:border-box;transition:all 0.2s;z-index:1}
.dash-sched-item.done::before{background:#E70000;border-color:transparent}
.dash-sched-item.active::before{background:#fff;border-color:var(--red);box-shadow:0 0 0 5px rgba(231,0,0,0.15),0 0 16px rgba(231,0,0,0.35)}
.dash-sched-item.active::after{content:'';position:absolute;left:-13px;top:18px;width:4px;height:4px;border-radius:50%;background:var(--red);z-index:2}
.dash-sched-item-label{font-size:13.5px;color:var(--gray-700);font-weight:500}
.dash-sched-item.done .dash-sched-item-label{color:var(--gray-400);text-decoration:line-through;text-decoration-color:var(--gray-300)}
.dash-sched-item.active .dash-sched-item-label{color:var(--gray-900);font-weight:600}
.dash-sched-item-date{font-size:11.5px;color:var(--gray-400);font-family:var(--mono);margin-top:3px;letter-spacing:0.02em}
.dash-sched-item.active .dash-sched-item-date{color:var(--red);font-weight:600}

/* AI Summary widget — soft cream tint to harmonize with page */
.dash-ai-eyebrow{font-size:11px;font-weight:700;color:var(--red);text-transform:uppercase;letter-spacing:0.14em;margin-bottom:16px;display:inline-flex;align-items:center;gap:8px;padding:5px 12px;background:linear-gradient(135deg,rgba(231,0,0,0.08) 0%,rgba(231,0,0,0.02) 100%);border-radius:20px;border:1px solid rgba(231,0,0,0.12)}
.dash-ai-text{font-size:13.5px;color:var(--gray-600);line-height:1.8;font-weight:400}
.dash-ai-text strong{color:var(--gray-900);font-weight:600}

/* Decisions list — quiet typographic rows */
.dash-dec-list{display:flex;flex-direction:column}
.dash-dec-row{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-bottom:1px solid var(--gray-100)}
.dash-dec-row:last-child{border-bottom:none}
.dash-dec-num{font-family:var(--mono);font-size:10.5px;color:var(--red);font-weight:700;letter-spacing:0.06em;flex-shrink:0;min-width:54px;padding:3px 9px;background:rgba(231,0,0,0.06);border-radius:10px;text-align:center;height:fit-content}
.dash-dec-body{flex:1}
.dash-dec-text{font-size:13px;color:var(--gray-800);line-height:1.5;font-weight:500}
.dash-dec-meta{font-size:11px;color:var(--gray-400);margin-top:4px}

/* Coverage list — gradient bars */
.dash-bar-list{display:flex;flex-direction:column;gap:14px;max-height:280px;overflow-y:auto;padding-right:4px}
.dash-bar-row{display:grid;grid-template-columns:1fr 80px;gap:10px;align-items:center;font-size:12.5px}
.dash-bar-label{color:var(--gray-700);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dash-bar-track{height:6px;background:rgba(231,0,0,0.07);border-radius:3px;overflow:hidden;margin-top:6px;grid-column:1/-1}
.dash-bar-fill{height:100%;border-radius:3px;background:#E70000;transition:width 0.5s ease;box-shadow:0 0 8px rgba(231,0,0,0.25)}
.dash-bar-value{font-family:var(--mono);font-weight:600;color:var(--gray-500);text-align:right;font-size:11px}

/* Chart wraps */
.dash-chart-wrap{height:240px;position:relative}
.dash-chart-wrap-sm{height:180px;position:relative}

/* Customize button — small, ghost */
.dash-customize-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:var(--white);border:1px solid var(--gray-200);border-radius:8px;color:var(--gray-600);font-size:12px;font-weight:500;cursor:pointer;font-family:var(--font);transition:all 0.15s}
.dash-customize-btn:hover{border-color:var(--gray-400);color:var(--gray-900)}
.widget-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:11px 13px;border-radius:8px;background:var(--gray-50);border:1px solid var(--gray-200);margin-bottom:6px}
.widget-toggle-row.locked{opacity:0.6}
.widget-toggle-meta{flex:1}
.widget-toggle-name{font-size:13px;font-weight:600;color:var(--gray-800)}
.widget-toggle-desc{font-size:11px;color:var(--gray-500);margin-top:2px}
.widget-toggle-switch{position:relative;width:36px;height:20px;border-radius:10px;background:var(--gray-300);cursor:pointer;transition:background 0.2s;flex-shrink:0}
.widget-toggle-switch::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;transition:left 0.2s;box-shadow:0 1px 3px rgba(0,0,0,0.2)}
.widget-toggle-switch.on{background:var(--red)}
.widget-toggle-switch.on::after{left:18px}
.widget-toggle-reorder{display:flex;flex-direction:column;gap:2px;margin-right:6px}
.widget-reorder-btn{background:var(--white);border:1px solid var(--gray-200);border-radius:4px;width:22px;height:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:9px;color:var(--gray-500);padding:0}
.widget-reorder-btn:hover{background:var(--gray-100);color:var(--gray-900)}
.widget-reorder-btn:disabled{opacity:0.3;cursor:not-allowed}
.widget-size-cell{margin-right:12px;flex-shrink:0}
.widget-size-select{background:var(--white);border:1px solid var(--gray-300);border-radius:6px;padding:5px 9px;font-size:11.5px;font-family:var(--font);color:var(--gray-700);cursor:pointer;min-width:150px}
.widget-size-select:focus{outline:none;border-color:var(--red)}
.widget-size-select:disabled{opacity:0.4;cursor:not-allowed;background:var(--gray-50)}
.widget-size-locked{font-size:11px;color:var(--gray-400);font-style:italic;padding:5px 9px;display:inline-block;min-width:150px;text-align:center}
.widget-autofit-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;background:linear-gradient(135deg,#FFFFFF 0%,#fff 100%);border:1px solid #FFE5E5;border-radius:10px;margin-bottom:14px}


/* ===== DASHBOARD HERO — slim, rounded, gradient-tied ===== */
.dash-header{border-radius:20px;overflow:hidden;position:relative;background:#E70000;min-height:220px;display:flex;align-items:stretch;box-shadow:0 1px 2px rgba(15,17,23,0.04),0 12px 32px rgba(231,0,0,0.22)}
.dash-header-photo{position:absolute;inset:0;object-fit:cover;width:100%;height:100%;opacity:0.22;filter:grayscale(15%)}
.dash-header-overlay{position:absolute;inset:0;background:linear-gradient(95deg,rgba(15,17,23,0.95) 35%,rgba(15,17,23,0.4) 100%),radial-gradient(circle at top right,rgba(231,0,0,0.18),transparent 55%)}
.dash-header-content{position:relative;width:100%;padding:30px 34px;display:flex;align-items:center;justify-content:space-between;gap:30px}
.dash-header-top{display:flex;align-items:flex-start;justify-content:space-between;width:100%;gap:24px}
.dash-proj-eyebrow{font-size:11px;color:rgba(0,0,0,0.62);text-transform:uppercase;letter-spacing:0.12em;font-weight:600;margin-bottom:10px}
.dash-proj-name{font-size:30px;font-weight:700;color:#fff;letter-spacing:-0.025em;line-height:1.1}
.dash-proj-meta{font-size:13px;color:rgba(0,0,0,0.68);margin-top:10px;line-height:1.6}
.dash-header-btn{background:rgba(0,0,0,0.06);border:1px solid rgba(0,0,0,0.12);border-radius:10px;padding:9px 14px;font-size:12px;color:rgba(0,0,0,0.78);cursor:pointer;display:inline-flex;align-items:center;gap:7px;font-family:var(--font);transition:all 0.15s;font-weight:500;backdrop-filter:blur(8px)}
.dash-header-btn:hover{background:linear-gradient(135deg,rgba(231,0,0,0.6) 0%,rgba(231,0,0,0.35) 100%);color:#fff;border-color:rgba(231,0,0,0.5)}
.dash-header-btn input{display:none}
.dash-status-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;background:rgba(0,0,0,0.08);border:1px solid rgba(0,0,0,0.1);border-radius:20px;font-size:11px;color:rgba(0,0,0,0.85);font-weight:500;letter-spacing:0.02em}
.dash-status-chip::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;opacity:0.9}
.dash-status-chip.pursuit{color:#404040}
.dash-status-chip.awarded{color:#1E40AF}
.dash-status-chip.active{color:#047857}

/* ===== DASHBOARD STAT CARDS — dark/charcoal theme, red accents only ===== */
.dash-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:16px}
.dash-stats-4{grid-template-columns:repeat(4,1fr)}

/* ===== DASHBOARD MILESTONES (owner-facing schedule) ===== */
.dash-milestones{display:flex;flex-direction:column;gap:8px}
.dash-mile-row{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:var(--radius);background:var(--gray-50);border:1px solid var(--gray-200);position:relative}
.dash-mile-row.done{background:#f0fdf4;border-color:#bbf7d0}
.dash-mile-row.active{background:var(--kinnect-yellow-soft);border-color:var(--kinnect-yellow-bg)}
.dash-mile-row.upcoming{background:var(--white)}
.dash-mile-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;background:var(--gray-300)}
.dash-mile-row.done .dash-mile-dot{background:var(--green)}
.dash-mile-row.active .dash-mile-dot{background:var(--red);box-shadow:0 0 0 4px rgba(231,0,0,0.18)}
.dash-mile-label{flex:1;font-size:12.5px;color:var(--gray-700);font-weight:500}
.dash-mile-row.done .dash-mile-label{color:var(--gray-500)}
.dash-mile-row.active .dash-mile-label{color:var(--gray-900);font-weight:600}
.dash-mile-date{font-size:11px;color:var(--gray-400);font-family:var(--mono);white-space:nowrap}
.dash-mile-row.done .dash-mile-date{color:var(--green)}
.dash-mile-row.active .dash-mile-date{color:var(--red);font-weight:700}

/* ===== DASHBOARD DECISIONS LIST ===== */
.dash-dec-row{display:flex;align-items:flex-start;gap:10px;padding:9px 0;border-bottom:1px solid var(--gray-100)}
.dash-dec-row:last-child{border-bottom:none}
.dash-dec-tag{flex-shrink:0;padding:2px 8px;border-radius:4px;font-size:9.5px;font-weight:700;letter-spacing:0.04em;text-transform:uppercase}
.dash-dec-tag.rfi{background:var(--kinnect-yellow-soft);color:var(--red)}
.dash-dec-tag.ve{background:#faf5ff;color:#7c3aed}
.dash-dec-text{flex:1;font-size:12px;color:var(--gray-700);line-height:1.45}
.dash-dec-meta{font-size:10.5px;color:var(--gray-400);margin-top:2px}
.dash-stat{border-radius:var(--radius-lg);padding:15px 17px;position:relative;overflow:hidden;transition:transform 0.15s}
.dash-stat:hover{transform:translateY(-1px)}
/* Primary card — dark charcoal */
.dash-stat.ds-primary{background:
  radial-gradient(circle 90px at 92% 92%,rgba(255,255,255,0.18) 0%,rgba(255,255,255,0.04) 60%,transparent 80%),
  #E70000;border:1px solid rgba(255,255,255,0.12);box-shadow:0 6px 18px rgba(231,0,0,0.20)}
.dash-stat.ds-primary .ds-label{color:rgba(255,255,255,0.85);font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.09em;margin-bottom:6px}
.dash-stat.ds-primary .ds-value{color:#FFFFFF;font-size:18px;font-weight:700;font-family:var(--mono);line-height:1}
.dash-stat.ds-primary .ds-sub{color:rgba(255,255,255,0.92);font-size:10.5px;margin-top:5px}
.dash-stat.ds-primary .stat-icon{color:rgba(255,255,255,0.18)}
/* Accent card — red highlight on dark */
.dash-stat.ds-accent{background:
  radial-gradient(circle 90px at 92% 92%,rgba(255,255,255,0.18) 0%,rgba(255,255,255,0.04) 60%,transparent 80%),
  #E70000;border:1px solid rgba(255,255,255,0.12);box-shadow:0 6px 18px rgba(231,0,0,0.20)}
.dash-stat.ds-accent .ds-label{color:rgba(255,255,255,0.85);font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.09em;margin-bottom:6px}
.dash-stat.ds-accent .ds-value{color:#FFFFFF;font-size:18px;font-weight:700;font-family:var(--mono);line-height:1}
.dash-stat.ds-accent .ds-sub{color:rgba(255,255,255,0.92);font-size:10.5px;margin-top:5px}
.dash-stat.ds-accent .stat-icon{color:rgba(255,255,255,0.18)}
/* Light card — white with subtle left border */
.dash-stat.ds-light{background:var(--white);border:1px solid var(--gray-200);border-left:3px solid var(--gray-800)}
.dash-stat.ds-light .ds-label{color:var(--gray-500);font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.09em;margin-bottom:6px}
.dash-stat.ds-light .ds-value{color:var(--gray-900);font-size:18px;font-weight:700;font-family:var(--mono);line-height:1}
.dash-stat.ds-light .ds-sub{color:var(--gray-400);font-size:10.5px;margin-top:5px}
.dash-stat.ds-light .stat-icon{color:rgba(15,17,23,0.05)}
.stat-icon{position:absolute;bottom:10px;right:12px;font-size:24px}

/* ===== AI NARRATIVE — fully blended, no box ===== */
.ai-narrative-wrap{background:transparent;border-radius:var(--radius-lg);padding:0;overflow:hidden;position:relative;display:flex;flex-direction:column}
.ai-narrative-inner{flex:1;padding:20px 22px 14px;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);position:relative;overflow:hidden}
.ai-narrative-inner::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--gray-900),rgba(231,0,0,0.4),transparent)}
.ai-narrative-eyebrow{font-size:9px;color:var(--gray-400);text-transform:uppercase;letter-spacing:0.12em;font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:7px}
.ai-narrative-eyebrow i{color:var(--gray-300);font-size:10px}
.ai-narrative-eyebrow::after{content:'';flex:1;height:1px;background:var(--gray-100)}
.ai-narrative-text{font-size:12.5px;color:var(--gray-600);line-height:1.75;font-weight:400}
.ai-narrative-text strong{color:var(--gray-900);font-weight:700}
.ai-narrative-footer{margin-top:8px;font-size:10px;color:var(--gray-300);display:flex;align-items:center;gap:5px;padding:0 2px}

/* ===== BUDGET CHART CARD ===== */
.budget-chart-wrap{height:190px;position:relative}

/* ===== EST ROWS ===== */
.est-row{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-radius:var(--radius);background:var(--gray-50);margin-bottom:4px;font-size:12px}
.est-row.target{background:var(--kinnect-yellow-soft)}
.est-label{color:var(--gray-600)}
.est-val{font-weight:700;color:var(--gray-900);font-family:var(--mono)}
.est-row.target .est-val{color:var(--red)}

/* ===== AI CHIPS ===== */
.ai-chip{display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:var(--radius);border:1px solid var(--gray-200);background:var(--white);cursor:pointer;transition:all 0.12s;margin-bottom:6px}
.ai-chip:hover{border-color:var(--red);background:var(--red-bg)}
.ai-chip i{color:var(--red);font-size:12px;width:15px;flex-shrink:0}
.ai-chip-label{font-size:12px;color:var(--gray-700);flex:1;font-weight:500}
.ai-chip-sub{font-size:10px;color:var(--gray-400)}
.ai-chip-arrow{font-size:10px;color:var(--gray-300)}

/* ===== AI CHAT ===== */
.chat-container{display:flex;flex-direction:column;height:440px;border:1px solid var(--gray-200);border-radius:var(--radius-lg);overflow:hidden}
.chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;background:var(--gray-50)}
.chat-msg{max-width:84%;padding:10px 13px;border-radius:10px;font-size:12.5px;line-height:1.55}
.chat-msg.user{background:var(--red);color:#fff;align-self:flex-end;border-bottom-right-radius:3px}
.chat-msg.ai{background:var(--white);border:1px solid var(--gray-200);color:var(--gray-800);align-self:flex-start;border-bottom-left-radius:3px}
.chat-msg.ai .chat-sender{font-size:9.5px;font-weight:700;color:var(--red);text-transform:uppercase;letter-spacing:0.07em;margin-bottom:4px}
.chat-input-row{display:flex;gap:8px;padding:10px 12px;background:var(--white);border-top:1px solid var(--gray-200)}
.chat-input{flex:1;border:1px solid var(--gray-300);border-radius:var(--radius);padding:8px 11px;font-size:12.5px;font-family:var(--font);resize:none;line-height:1.4;max-height:90px}
.chat-input:focus{outline:none;border-color:var(--red)}
.chat-send-btn{background:var(--red);color:#fff;border:none;border-radius:var(--radius);padding:0 15px;cursor:pointer;font-size:13px;transition:background 0.15s;flex-shrink:0}
.chat-send-btn:hover{background:var(--red-dark)}
.ai-ctx-bar{background:linear-gradient(90deg,#FFFFFF,#FFFFFF);border-radius:var(--radius-lg);padding:11px 15px;margin-bottom:14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ai-ctx-bar-label{font-size:9px;color:rgba(0,0,0,0.62);text-transform:uppercase;letter-spacing:0.09em;white-space:nowrap;font-weight:700}
.ai-ctx-bar-text{font-size:11.5px;color:rgba(0,0,0,0.65);flex:1}
.ai-ctx-pills{display:flex;flex-wrap:wrap;gap:4px}
.ai-ctx-pill{background:rgba(231,0,0,0.2);color:#A00000;border:1px solid rgba(231,0,0,0.3);padding:2px 7px;border-radius:3px;font-size:9.5px;font-weight:600}

/* ===== AI TABS ===== */
.ai-tabs{display:flex;gap:2px;margin-bottom:18px;background:var(--gray-100);border-radius:var(--radius);padding:3px}
.ai-tab{flex:1;text-align:center;padding:6px 14px;border-radius:5px;font-size:12px;font-weight:500;cursor:pointer;color:var(--gray-500);transition:all 0.15s;border:none;background:none;font-family:var(--font)}
.ai-tab.active{background:var(--white);color:var(--gray-900);box-shadow:var(--shadow-sm);font-weight:700}
.ai-tab-panel{display:none}
.ai-tab-panel.active{display:block}
.ai-response-box{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:16px;min-height:120px;font-size:12.5px;color:var(--gray-700);line-height:1.65;white-space:pre-wrap}
.ai-dot{width:6px;height:6px;border-radius:50%;background:var(--red);animation:pulse 1s infinite;display:inline-block;margin-right:3px}
.ai-dot:nth-child(2){animation-delay:0.2s}
.ai-dot:nth-child(3){animation-delay:0.4s}
@keyframes pulse{0%,100%{opacity:0.2}50%{opacity:1}}

/* ===== DOCUMENTS ===== */
.drawing-set-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:10px}
.drawing-set-header{padding:11px 15px;background:var(--gray-50);border-bottom:1px solid var(--gray-200);display:flex;align-items:center;gap:9px;cursor:pointer}
.drawing-set-name{font-size:12.5px;font-weight:600;color:var(--gray-800);flex:1}
.drawing-set-meta{font-size:11px;color:var(--gray-400)}
.drawing-set-toggle{font-size:11px;color:var(--gray-400);transition:transform 0.2s}
.drawing-set-toggle.open{transform:rotate(180deg)}
.drawing-set-body{padding:14px 15px;display:none}
.drawing-set-body.open{display:block}
.doc-list{display:flex;flex-direction:column;gap:5px}
.doc-item{display:flex;align-items:center;gap:9px;padding:7px 11px;background:var(--gray-50);border-radius:var(--radius);border:1px solid var(--gray-200)}
.doc-icon{width:26px;height:26px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}
.doc-icon.pdf{background:var(--kinnect-yellow-soft);color:var(--red)}
.doc-icon.xls{background:#ecfdf5;color:#059669}
.doc-icon.dwg{background:#eef2ff;color:#2563EB}
.doc-icon.doc{background:#eff6ff;color:#2563eb}
.doc-name{font-size:12px;font-weight:500;color:var(--gray-700);flex:1}
.doc-date{font-size:11px;color:var(--gray-400)}
.doc-del{background:none;border:none;cursor:pointer;color:var(--gray-300);font-size:11px;padding:3px}
.doc-del:hover{color:var(--red)}
.upload-drop{border:2px dashed var(--gray-300);border-radius:var(--radius-lg);padding:18px;text-align:center;cursor:pointer;transition:all 0.15s;margin-top:8px}
.upload-drop:hover{border-color:var(--red);background:var(--red-bg)}
.upload-drop i{font-size:20px;color:var(--gray-300);margin-bottom:5px;display:block}
.upload-drop-text{font-size:12px;color:var(--gray-500);margin-bottom:2px}
.upload-drop-sub{font-size:10.5px;color:var(--gray-400)}
.upload-drop input{display:none}

/* ===== COST HISTORY — Unit Cost Library ===== */
.cost-kpi-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
.cost-kpi-card{background:#fff;border-radius:16px;padding:18px 20px;box-shadow:0 1px 2px rgba(15,17,23,0.04),0 8px 24px rgba(15,17,23,0.05);display:flex;align-items:center;gap:14px;transition:transform 0.15s}
.cost-kpi-card:hover{transform:translateY(-1px)}
.cost-kpi-icon{width:42px;height:42px;border-radius:12px;background:#E70000;color:var(--kinnect-ink);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;box-shadow:0 2px 8px rgba(231,0,0,0.25)}
.cost-kpi-body{flex:1;min-width:0}
.cost-kpi-label{font-size:10.5px;font-weight:700;color:var(--gray-500);text-transform:uppercase;letter-spacing:0.09em}
.cost-kpi-value{font-size:26px;font-weight:700;color:var(--gray-900);font-family:var(--mono);line-height:1;letter-spacing:-0.025em;margin-top:6px}
.cost-kpi-unit{font-size:13px;color:var(--gray-400);font-weight:500;margin-left:2px}
.cost-kpi-sub{font-size:11px;color:var(--gray-500);margin-top:5px}

/* The powerhouse: search card */
.cost-search-card{background:#fff;border-radius:18px;padding:20px 22px;box-shadow:0 1px 2px rgba(15,17,23,0.04),0 8px 24px rgba(15,17,23,0.06);margin-bottom:16px}
.cost-search-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.cost-search-title{font-size:14px;font-weight:700;color:var(--gray-900);display:flex;align-items:center;gap:8px}
.cost-search-title i{color:var(--red)}
.cost-search-count{font-size:11.5px;color:var(--gray-500);font-family:var(--mono)}
.cost-search-controls{display:grid;grid-template-columns:1.5fr repeat(4,auto) auto;gap:8px;margin-bottom:14px;align-items:center}
.cost-search-input{border:1px solid var(--gray-200);background:var(--gray-50);border-radius:10px;padding:10px 14px;font-size:13px;font-family:var(--font);transition:all 0.15s}
.cost-search-input:focus{outline:none;border-color:var(--red);background:#fff;box-shadow:0 0 0 3px rgba(231,0,0,0.08)}
.cost-filter-select{padding:8px 11px;font-size:12px;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:10px;cursor:pointer;font-family:var(--font);width:160px}
.cost-filter-select:focus{outline:none;border-color:var(--red);background:#fff}

.cost-results{display:flex;flex-direction:column;gap:8px;max-height:520px;overflow-y:auto;padding-right:4px}
.cost-result-card{display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--gray-50);border:1px solid var(--gray-100);border-radius:12px;padding:14px 16px;cursor:pointer;transition:all 0.15s}
.cost-result-card:hover{border-color:var(--red);background:#fff;box-shadow:0 4px 14px rgba(15,17,23,0.06);transform:translateY(-1px)}
.cost-result-main{flex:1;min-width:0}
.cost-result-name{font-size:13.5px;font-weight:700;color:var(--gray-900);letter-spacing:-0.005em}
.cost-result-meta{font-size:11px;color:var(--gray-500);margin-top:4px}
.cost-result-recent{font-size:10.5px;color:var(--gray-400);margin-top:3px;font-style:italic}
.cost-result-price{text-align:right;flex-shrink:0}
.cost-result-avg{font-size:22px;font-weight:700;font-family:var(--mono);color:var(--red);line-height:1;letter-spacing:-0.02em}
.cost-result-unit{font-size:12px;color:var(--gray-400);font-weight:500;margin-left:2px}

/* Right-side widgets */
.cost-card{background:#fff;border-radius:16px;padding:20px 22px;box-shadow:0 1px 2px rgba(15,17,23,0.04),0 8px 24px rgba(15,17,23,0.05)}
.cost-card-title{font-size:13px;font-weight:700;color:var(--gray-900);margin-bottom:14px;display:flex;align-items:center;gap:8px}
.cost-card-title i{color:var(--red);font-size:12px}
.cost-projects-list{display:flex;flex-direction:column;gap:2px;max-height:240px;overflow-y:auto}
.cost-proj-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--gray-100)}
.cost-proj-row:last-child{border-bottom:none}
.cost-proj-name{font-size:12.5px;font-weight:600;color:var(--gray-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cost-proj-meta{font-size:10.5px;color:var(--gray-500);margin-top:2px}
.cost-proj-csf{font-family:var(--mono);font-weight:700;color:var(--red);font-size:15px;letter-spacing:-0.02em}

/* Detail modal summary */
.cost-detail-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:6px}
.cost-detail-stat{background:var(--gray-50);border:1px solid var(--gray-100);border-radius:10px;padding:12px 14px}
.cost-detail-stat-label{font-size:10px;font-weight:700;color:var(--gray-500);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:5px}
.cost-detail-stat-value{font-size:18px;font-weight:700;color:var(--gray-900);font-family:var(--mono);letter-spacing:-0.02em}
.cost-detail-stat-unit{font-size:11px;color:var(--gray-400);font-weight:500;margin-left:2px}

/* Legacy CSS retained for any leftover callers */
.cost-filter-btn{padding:4px 12px;border-radius:20px;border:1px solid var(--gray-300);background:var(--white);font-size:11px;color:var(--gray-600);cursor:pointer;font-family:var(--font);transition:all 0.15s}
.cost-filter-btn.active{background:var(--red);color:#fff;border-color:var(--red)}
.cost-filter-btn:hover:not(.active){border-color:var(--gray-400);background:var(--gray-50)}
.chart-wrap{height:210px;position:relative}
.division-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:10px}
.division-item{background:var(--gray-50);border-radius:var(--radius);padding:9px 11px;border:1px solid var(--gray-200)}
.div-label{font-size:10px;color:var(--gray-400);margin-bottom:3px}
.div-val{font-size:13px;font-weight:700;color:var(--gray-800);font-family:var(--mono)}

/* ===== RFI ===== */
.rfi-status{display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:700}
.rfi-open{background:var(--kinnect-yellow-soft);color:var(--red)}
.rfi-sent{background:#FFE5E5;color:#404040}
.rfi-answered{background:#ecfdf5;color:#059669}
.rfi-closed{background:var(--gray-100);color:var(--gray-500)}

/* ===== SMARTBID / BID SOLICITATION ===== */
.bid-num-input{width:58px;border:1px solid var(--gray-300);border-radius:5px;padding:4px 7px;font-size:12px;font-family:var(--font);text-align:center}
.bid-num-input:focus{outline:none;border-color:var(--red)}
.ve-status-select{border:1px solid var(--gray-300);border-radius:var(--radius);padding:3px 7px;font-size:11px;font-family:var(--font);background:var(--white)}

/* ===== PROJECT DATA ===== */
.data-section-title{font-size:10px;font-weight:700;color:var(--gray-400);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:12px;padding-bottom:7px;border-bottom:1px solid var(--gray-200)}

/* ===== ALL PROJECTS ===== */
.proj-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);overflow:hidden;transition:box-shadow 0.15s;position:relative}
.proj-card:hover{box-shadow:var(--shadow)}
.proj-card.active-card{border-color:var(--red)}
.proj-card-header{padding:14px 16px;background:var(--gray-900);position:relative}
.proj-card.active-card .proj-card-header{background:var(--red)}
.proj-card.pursuit .proj-card-header{background:#FFE5E5}
.proj-card.awarded .proj-card-header{background:#DBEAFE}
.proj-card-type{font-size:9.5px;color:rgba(0,0,0,0.68);text-transform:uppercase;letter-spacing:0.07em;margin-bottom:3px;font-weight:600}
.proj-card-name{font-size:13.5px;font-weight:700;color:#171717;line-height:1.2}
.proj-card.active-card:not(.pursuit):not(.awarded) .proj-card-name{color:#FFFFFF}
.proj-card.active-card:not(.pursuit):not(.awarded) .proj-card-type{color:rgba(255,255,255,0.85)}
.proj-card-status{position:absolute;top:12px;right:12px}
.proj-card-body{padding:12px 15px}
.proj-card-meta-row{display:flex;justify-content:space-between;font-size:11.5px;padding:3px 0;border-bottom:1px solid var(--gray-100)}
.proj-card-meta-row:last-child{border-bottom:none}
.proj-card-meta-label{color:var(--gray-400)}
.proj-card-meta-val{color:var(--gray-800);font-weight:600}
.proj-card-footer{display:flex;align-items:center;justify-content:space-between;padding:10px 15px;background:var(--gray-50);border-top:1px solid var(--gray-200)}

/* ===== USER MANAGEMENT ===== */
.user-row{display:flex;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--gray-100)}
.user-row:last-child{border-bottom:none}
.user-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;flex-shrink:0}
.user-name{font-size:13px;font-weight:600;color:var(--gray-800);flex:1}
.user-email{font-size:11px;color:var(--gray-400)}
.role-badge{padding:2px 8px;border-radius:20px;font-size:10px;font-weight:700}
.role-admin{background:var(--kinnect-yellow-soft);color:var(--red)}
.role-pm{background:#ecfdf5;color:#059669}
.role-estimator{background:#eff6ff;color:#2563eb}
.role-architect{background:#faf5ff;color:#7c3aed}
.role-owner{background:#f3f4f6;color:#374151}
.role-sub{background:#ecfeff;color:#0891b2}
.role-super{background:linear-gradient(135deg,#404040,#000);color:#E70000}

/* ===== REVIEW BAR ===== */
.review-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius);margin-top:10px}
.review-label{font-size:12px;color:var(--gray-500);flex:1}
.review-btns{display:flex;gap:5px}
.review-btn{padding:3px 10px;border-radius:4px;font-size:11px;font-weight:600;cursor:pointer;border:1px solid transparent;font-family:var(--font);transition:all 0.15s}
.review-btn.draft{background:#FFE5E5;color:#404040;border-color:#404040}
.review-btn.reviewed{background:#eef3ff;color:#2563EB;border-color:#1E40AF}
.review-btn.approved{background:#ecfdf5;color:#059669;border-color:#a7f3d0}

/* ===== HANDOFF ===== */
.handoff-item{display:flex;align-items:center;gap:10px;padding:9px 13px;border-radius:var(--radius);background:var(--gray-50);border:1px solid var(--gray-200);margin-bottom:5px}
.handoff-item-icon{width:26px;height:26px;border-radius:5px;background:var(--white);border:1px solid var(--gray-200);display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--gray-500);flex-shrink:0}
.handoff-item-label{font-size:12.5px;color:var(--gray-700);flex:1}
.handoff-status{font-size:10px;font-weight:700;padding:2px 7px;border-radius:3px}
.hs-ready{background:#ecfdf5;color:#059669}
.hs-draft{background:#FFE5E5;color:#404040}
.hs-linked{background:#eff6ff;color:#2563eb}
.hs-notready{background:var(--kinnect-yellow-soft);color:var(--red)}

/* ===== INTEGRATION CARDS ===== */
.integration-card{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:var(--radius-lg);border:1px solid var(--gray-200);background:var(--white);margin-bottom:8px}
.int-logo{width:40px;height:40px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.int-name{font-size:13px;font-weight:600;color:var(--gray-900)}
.int-desc{font-size:11.5px;color:var(--gray-400);margin-top:1px}
.int-status{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.int-connected{font-size:11px;color:#047857;font-weight:700;display:flex;align-items:center;gap:4px}

/* ===== SCOPE ===== */
.scope-item-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--gray-100)}
.scope-item-row:last-child{border-bottom:none}
.scope-item-text{font-size:12.5px;color:var(--gray-700);flex:1}
.scope-rm{background:none;border:none;cursor:pointer;color:var(--gray-300);font-size:11px}
.scope-rm:hover{color:var(--red)}
.scope-add-row{display:flex;gap:6px;margin-top:8px}
.scope-add-input{flex:1;border:1px solid var(--gray-300);border-radius:var(--radius);padding:6px 10px;font-size:12px;font-family:var(--font)}
.scope-add-input:focus{outline:none;border-color:var(--red)}

/* ===== TAKEOFF PAGE ===== */
.takeoff-file-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--gray-50);border-radius:var(--radius);border:1px solid var(--gray-200);margin-bottom:5px}
.takeoff-set-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:16px;margin-bottom:12px}

/* ===== SUB-TABS (Takeoff & Bid Solicitation) ===== */
.sub-tabs{display:flex;gap:2px;background:var(--gray-100);border-radius:var(--radius);padding:3px;margin-bottom:18px;overflow-x:auto;flex-wrap:nowrap}
.sub-tab{padding:7px 14px;border-radius:5px;font-size:12px;font-weight:500;cursor:pointer;color:var(--gray-500);transition:all 0.15s;border:none;background:none;font-family:var(--font);white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.sub-tab:hover:not(.active){color:var(--gray-700)}
.sub-tab.active{background:var(--white);color:var(--gray-900);box-shadow:var(--shadow-sm);font-weight:700}
.sub-tab i{font-size:11px;opacity:0.7}
.sub-tab.active i{opacity:1;color:var(--red)}
.sub-tab .count-pill{background:var(--red);color:#fff;font-size:9px;padding:1px 6px;border-radius:8px;font-weight:700;margin-left:3px}
.sub-tab:not(.active) .count-pill{background:var(--gray-300);color:var(--gray-600)}
.sub-tab-panel{display:none}
.sub-tab-panel.active{display:block}

/* ===== RECEIVED BIDS ===== */
.bid-pkg-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:12px}
.bid-pkg-header{padding:12px 16px;background:linear-gradient(90deg,#fafafa,#f5f5f5);border-bottom:1px solid var(--gray-200);display:flex;align-items:center;gap:10px;cursor:pointer}
.bid-pkg-icon{width:32px;height:32px;background:var(--red-bg);border-radius:7px;display:flex;align-items:center;justify-content:center;color:var(--red);font-size:13px;flex-shrink:0}
.bid-pkg-name{font-size:13px;font-weight:700;color:var(--gray-900);flex:1}
.bid-pkg-meta{font-size:11px;color:var(--gray-400);display:flex;gap:10px;align-items:center}
.bid-pkg-count{background:var(--red);color:#fff;font-size:10px;font-weight:700;padding:2px 8px;border-radius:10px;letter-spacing:0.04em}
.bid-pkg-toggle{color:var(--gray-400);font-size:12px;transition:transform 0.2s;margin-left:6px}
.bid-pkg-toggle.open{transform:rotate(180deg)}
.bid-pkg-body{padding:14px 16px;display:none}
.bid-pkg-body.open{display:block}
.bid-table{width:100%;border-collapse:collapse}
.bid-table th{font-size:9.5px;font-weight:700;color:var(--gray-400);text-transform:uppercase;letter-spacing:0.06em;padding:6px 10px;text-align:left;border-bottom:1px solid var(--gray-200);background:var(--gray-50)}
.bid-table td{padding:9px 10px;border-bottom:1px solid var(--gray-100);font-size:12px;color:var(--gray-700);vertical-align:middle}
.bid-table tr:hover td{background:#fafbfc}
.bid-amount{font-family:var(--mono);font-weight:700;color:var(--red);font-size:12.5px}
.bid-low{background:#ecfdf5 !important;border-left:3px solid var(--green) !important}
.bid-low .bid-amount{color:var(--green)}
.bid-low td:first-child::before{content:'★';color:var(--green);margin-right:5px;font-size:11px}
.bid-file-link{font-size:11px;color:var(--blue);cursor:pointer;display:inline-flex;align-items:center;gap:4px;text-decoration:none}
.bid-file-link:hover{text-decoration:underline}
.bid-trade-tag{display:inline-block;padding:2px 7px;border-radius:4px;font-size:10px;font-weight:600;background:var(--blue-bg);color:#1d4ed8;letter-spacing:0.02em}
.bid-rm{background:none;border:none;cursor:pointer;color:var(--gray-300);font-size:11px;padding:3px}
.bid-rm:hover{color:var(--red)}
.bid-summary-bar{display:flex;gap:14px;padding:12px 14px;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius);margin-top:10px;font-size:11.5px;flex-wrap:wrap}
.bid-summary-item{display:flex;flex-direction:column;gap:2px}
.bid-summary-label{font-size:9.5px;color:var(--gray-400);text-transform:uppercase;letter-spacing:0.05em;font-weight:700}
.bid-summary-val{font-size:13px;font-weight:700;color:var(--gray-900);font-family:var(--mono)}
.bid-summary-val.low{color:var(--green)}
.bid-summary-val.high{color:var(--red)}

/* ===== SUBCONTRACTOR DATABASE ===== */
.sub-filter-row{display:flex;gap:8px;margin-bottom:14px;align-items:center;flex-wrap:wrap}
.sub-filter-row .form-input,.sub-filter-row .form-select{padding:6px 10px;font-size:12px}
.sub-search{flex:1;min-width:220px}
.sub-table{width:100%;border-collapse:collapse}
.sub-table th{font-size:9.5px;font-weight:700;color:var(--gray-400);text-transform:uppercase;letter-spacing:0.07em;padding:7px 11px;text-align:left;border-bottom:2px solid var(--gray-200);white-space:nowrap;background:var(--gray-50)}
.sub-table td{padding:9px 11px;border-bottom:1px solid var(--gray-100);font-size:12px;color:var(--gray-700);vertical-align:middle}
.sub-table tr:hover td{background:#fafbfc}
.csi-tag{display:inline-block;padding:2px 7px;border-radius:4px;font-size:9.5px;font-weight:700;background:#eef2ff;color:#2563EB;letter-spacing:0.03em;margin:1px 2px 1px 0}
.loc-tag{display:inline-block;padding:2px 7px;border-radius:4px;font-size:9.5px;font-weight:600;background:var(--gray-100);color:var(--gray-700);letter-spacing:0.03em}
.qual-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:4px;font-size:9.5px;font-weight:700}
.qual-yes{background:#ecfdf5;color:var(--green)}
.qual-no{background:var(--gray-100);color:var(--gray-500)}
.qual-pref{background:var(--kinnect-yellow-soft);color:var(--red)}
.sub-checkbox{width:14px;height:14px;cursor:pointer;accent-color:var(--red)}

/* ===== VE COVER TABLE ===== */
.ve-cover-table{min-width:1280px}
.ve-cover-table th{font-size:9.5px;letter-spacing:0.06em}
.ve-cover-table td{font-size:11.5px;vertical-align:top;line-height:1.45}

/* ===== BID LEVELING — dashboard-style rounded cards ===== */
.bidtab-wrap{display:flex;flex-direction:column;gap:18px}

/* Header card */
.bidtab-header-card{background:#fff;border-radius:20px;padding:24px 28px;box-shadow:0 1px 2px rgba(15,17,23,0.04),0 8px 24px rgba(15,17,23,0.05);display:grid;grid-template-columns:1fr 240px;gap:24px;align-items:start}
.bidtab-header-left{min-width:0}
.bidtab-header-eyebrow{font-size:11px;font-weight:600;color:var(--gray-400);text-transform:uppercase;letter-spacing:0.12em;margin-bottom:8px}
.bidtab-header-title{font-size:24px;font-weight:700;color:var(--gray-900);letter-spacing:-0.02em;margin-bottom:18px;line-height:1.15}
.bidtab-meta-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.bidtab-meta-field{display:flex;flex-direction:column;gap:5px;min-width:0}
.bidtab-meta-field label{font-size:10px;font-weight:700;color:var(--gray-500);text-transform:uppercase;letter-spacing:0.1em}
.bidtab-meta-input{width:100%;background:var(--gray-50);border:1px solid var(--gray-100);border-radius:10px;padding:9px 12px;font-size:13px;font-family:var(--font);color:var(--gray-800);font-weight:600;transition:all 0.15s}
.bidtab-meta-input:focus{outline:none;border-color:var(--red);background:#fff;box-shadow:0 0 0 3px rgba(231,0,0,0.08)}
.bidtab-meta-input.mono{font-family:var(--mono)}
.bidtab-meta-docs{margin-top:18px;padding-top:18px;border-top:1px solid var(--gray-100)}
.bidtab-meta-docs-label{font-size:10px;font-weight:700;color:var(--gray-500);text-transform:uppercase;letter-spacing:0.1em;margin-bottom:8px}
.bidtab-meta-docs-list{display:flex;flex-wrap:wrap;gap:6px}
.bidtab-meta-doc-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;background:rgba(231,0,0,0.06);color:var(--red);border-radius:14px;font-size:11.5px;font-weight:500}
.bidtab-meta-doc-chip i{font-size:10px;opacity:0.7}

/* Scope budget feature tile (top right) */
.bidtab-budget-tile{background:#E70000;color:var(--kinnect-ink);border-radius:16px;padding:20px 22px;position:relative;overflow:hidden}
.bidtab-budget-tile::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at top right,rgba(0,0,0,0.18),transparent 60%);pointer-events:none}
.bidtab-budget-tile-label{font-size:10.5px;font-weight:600;color:rgba(0,0,0,0.7);text-transform:uppercase;letter-spacing:0.1em;position:relative}
.bidtab-budget-tile-input{width:100%;background:transparent;border:none;color:#fff;font-family:var(--mono);font-size:26px;font-weight:700;letter-spacing:-0.02em;padding:0;margin-top:10px;position:relative}
.bidtab-budget-tile-input:focus{outline:none}
.bidtab-budget-tile-input::placeholder{color:rgba(0,0,0,0.62)}
.bidtab-budget-tile-sub{font-size:11.5px;color:rgba(0,0,0,0.78);margin-top:8px;position:relative}
.bidtab-budget-tile-deco{position:absolute;bottom:-30px;right:-30px;width:120px;height:120px;border-radius:50%;background:rgba(0,0,0,0.08);pointer-events:none}

/* Main grid card */
.bidtab-grid-card{background:#fff;border-radius:20px;padding:8px;box-shadow:0 1px 2px rgba(15,17,23,0.04),0 8px 24px rgba(15,17,23,0.05);overflow:hidden}
.bidtab-grid-scroll{overflow-x:auto;border-radius:14px}
.bidtab-grid{width:100%;border-collapse:separate;border-spacing:0;font-size:12px}
.bidtab-grid th, .bidtab-grid td{padding:5px 10px;vertical-align:middle;background:#fff;border-bottom:1px solid var(--gray-100)}
.bidtab-grid thead th{background:transparent;color:var(--gray-700);font-weight:700;font-size:10.5px;letter-spacing:0.08em;text-transform:uppercase;text-align:center;padding:10px 10px 8px;border-bottom:1px solid var(--gray-100)}
.bidtab-grid thead th.col-desc{text-align:left}
.bidtab-grid .col-desc{width:30%;text-align:left}
.bidtab-grid .col-unit{width:54px;text-align:center}
.bidtab-grid .col-bidder{width:auto;text-align:center}
.bidtab-grid .col-notes{width:200px;text-align:left}

/* Section / sub-section rows — stronger contrast for readability */
.bidtab-grid .row-section td{background:rgba(231,0,0,0.1);color:#C40000;font-weight:800;font-size:11.5px;padding:7px 14px;text-transform:uppercase;letter-spacing:0.08em;border-top:1px solid rgba(231,0,0,0.18);border-bottom:1px solid rgba(231,0,0,0.18)}
.bidtab-grid .row-section.lite td{background:var(--gray-100);color:var(--gray-800);text-transform:none;letter-spacing:0;font-size:12px;font-weight:700;border-top:1px solid var(--gray-200);border-bottom:1px solid var(--gray-200)}
.bidtab-grid .row-basebid td{background:#FFE5E5;font-weight:700;font-size:12.5px;color:var(--gray-900);border-bottom:1px solid var(--gray-200)}
.bidtab-grid .row-subtotal td{background:var(--gray-50);font-weight:700;font-size:13px;padding:11px 10px;border-top:1px solid var(--gray-200);border-bottom:1px solid var(--gray-200);color:var(--gray-900)}
.bidtab-grid .row-totalbid td{background:#E70000;color:var(--kinnect-ink);font-weight:700;font-size:14px;padding:12px 10px}
.bidtab-grid .row-totalbid td:first-child{border-top-left-radius:12px;border-bottom-left-radius:12px}
.bidtab-grid .row-totalbid td:last-child{border-top-right-radius:12px;border-bottom-right-radius:12px}
.bidtab-grid tbody tr:hover td.col-bidder, .bidtab-grid tbody tr:hover td.col-desc, .bidtab-grid tbody tr:hover td.col-unit, .bidtab-grid tbody tr:hover td.col-notes{background:#FFFFFF}

/* Bidder column header — pill chip with company name + low-bidder toggle */
.bidtab-bidder-head{padding:10px 8px !important}
.bidtab-bidder-pill{display:inline-flex;flex-direction:column;align-items:center;gap:2px;padding:8px 14px;border-radius:12px;background:var(--gray-50);min-width:120px;position:relative;cursor:pointer;transition:all 0.15s;border:1.5px solid transparent}
.bidtab-bidder-pill:hover{background:var(--gray-100);border-color:var(--gray-200)}
.bidtab-bidder-name{font-size:12px;font-weight:700;color:var(--gray-900);text-transform:none;letter-spacing:-0.01em;line-height:1.2}
.bidtab-bidder-sub{font-size:10px;font-weight:500;color:var(--gray-500);font-family:var(--font)}
.bidtab-bidder-head.bidtab-low .bidtab-bidder-pill{background:#E70000;color:var(--kinnect-ink);border-color:rgba(231,0,0,0.5);cursor:default}
.bidtab-bidder-head.bidtab-low .bidtab-bidder-name{color:#fff}
.bidtab-bidder-head.bidtab-low .bidtab-bidder-sub{color:rgba(0,0,0,0.75)}
.bidtab-low-badge{position:absolute;top:-7px;right:-7px;background:#fff;color:var(--red);font-size:8.5px;font-weight:700;padding:2px 7px;border-radius:8px;letter-spacing:0.06em;box-shadow:0 2px 6px rgba(0,0,0,0.12);white-space:nowrap}
.bidtab-low-hint{font-size:9px;color:var(--gray-400);font-weight:500;margin-top:3px;text-transform:uppercase;letter-spacing:0.07em;opacity:0;transition:opacity 0.15s}
.bidtab-bidder-pill:not(.bidtab-low-pill):hover .bidtab-low-hint{opacity:1}
.bidtab-low-manual-note{position:absolute;bottom:-18px;left:50%;transform:translateX(-50%);font-size:9px;color:var(--gray-500);font-weight:500;white-space:nowrap;display:flex;align-items:center;gap:5px}
.bidtab-low-manual-note button{background:none;border:none;color:var(--red);cursor:pointer;font-size:9px;font-family:var(--font);padding:0;font-weight:600}
.bidtab-low-manual-note button:hover{text-decoration:underline}

/* Cell input styling — compact, single-line amount + inline tag, notes below */
.bt-desc-input{width:100%;border:1px solid transparent;background:transparent;padding:4px 6px;border-radius:6px;font-family:var(--font);font-size:12px;font-weight:500;color:var(--gray-800);transition:all 0.15s}
.bt-desc-input:focus{outline:none;border-color:var(--gray-200);background:var(--gray-50)}
.bt-cell{display:flex;flex-direction:column;gap:1px;padding:0;min-height:0}
.bt-cell-top{display:flex;align-items:center;gap:4px}
.bt-amt{flex:1;min-width:0;border:1px solid transparent;background:transparent;padding:3px 6px;border-radius:6px;font-family:var(--mono);font-size:12px;font-weight:700;text-align:right;color:var(--gray-900);transition:all 0.15s}
.bt-amt:focus{outline:none;border-color:var(--gray-200);background:var(--gray-50)}
.bt-amt::placeholder{color:var(--gray-300);font-weight:500}
.bt-unit-input{width:100%;border:1px solid transparent;background:transparent;padding:3px 4px;border-radius:6px;font-family:var(--mono);font-size:11px;font-weight:600;text-align:center;color:var(--gray-600);transition:all 0.15s}
.bt-unit-input:focus{outline:none;border-color:var(--gray-200);background:var(--gray-50)}
.bt-tag{display:inline-flex;justify-content:center;align-items:center;padding:1px 8px;border-radius:8px;font-size:9.5px;font-weight:700;letter-spacing:0.05em;cursor:pointer;font-family:var(--font);user-select:none;transition:all 0.15s;min-width:32px;flex-shrink:0}
.bt-tag.y{background:#ecfdf5;color:#059669}
.bt-tag.n{background:rgba(231,0,0,0.1);color:var(--red)}
.bt-tag.a{background:#FFE5E5;color:#404040}
.bt-tag.none{background:var(--gray-100);color:var(--gray-400)}
.bt-tag:hover{transform:scale(1.08)}
.bt-notes-cell{width:100%;border:1px solid transparent;background:transparent;padding:1px 6px;border-radius:6px;font-family:var(--font);font-size:10.5px;color:var(--gray-500);resize:none;font-style:italic;min-height:18px;line-height:1.4;transition:all 0.15s}
.bt-notes-cell:focus{outline:none;border-color:var(--gray-200);background:var(--gray-50);font-style:normal;color:var(--gray-700)}
.bt-notes-cell:placeholder-shown{color:var(--gray-300)}

/* Filled-state cell tinting */
.bidtab-grid td.cell-filled-y{background:rgba(5,150,105,0.04)}
.bidtab-grid td.cell-filled-n{background:rgba(231,0,0,0.04)}
.bidtab-grid td.cell-filled-a{background:rgba(231,0,0,0.04)}
.bidtab-grid td.cell-low-bid{background:rgba(231,0,0,0.08) !important;box-shadow:inset 3px 0 0 var(--red)}
.bidtab-grid td.cell-low-bid .bt-amt{color:var(--red)}

/* Quick-add line item row at the bottom of the body */
.bidtab-quickadd-row td{background:var(--gray-50);padding:6px 10px !important;border-bottom:none}
.bidtab-quickadd-input{width:100%;border:1px dashed var(--gray-300);background:#fff;padding:6px 10px;border-radius:8px;font-family:var(--font);font-size:11.5px;color:var(--gray-700);transition:all 0.15s}
.bidtab-quickadd-input:focus{outline:none;border-color:var(--red);border-style:solid;background:#fff;box-shadow:0 0 0 3px rgba(231,0,0,0.06)}
.bidtab-quickadd-input::placeholder{color:var(--gray-400)}

/* Toolbar above the sheet */
.bidtab-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:0;flex-wrap:wrap}
.bidtab-row-controls{display:flex;gap:2px;justify-content:center}
.bidtab-row-controls button{background:transparent;border:none;cursor:pointer;color:var(--gray-300);font-size:10px;padding:4px 6px;border-radius:5px;transition:all 0.15s}
.bidtab-row-controls button:hover{color:var(--red);background:rgba(231,0,0,0.08)}

/* ===== AI ASSISTANT v2 — ChatGPT/Claude-style ===== */
.ai2-shell{max-width:920px;margin:0 auto;display:flex;flex-direction:column;height:calc(100vh - 100px);gap:14px}
.ai2-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.ai2-kb-bar{background:#fff;border-radius:14px;padding:12px 16px;box-shadow:0 1px 2px rgba(15,17,23,0.04),0 4px 14px rgba(15,17,23,0.04)}
.ai2-kb-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ai2-kb-label{font-size:10.5px;font-weight:700;color:var(--gray-500);text-transform:uppercase;letter-spacing:0.09em;margin-right:4px}
.ai2-kb-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:18px;font-size:11.5px;font-weight:500;color:var(--gray-700);background:var(--gray-50);border:1px solid var(--gray-100)}
.ai2-kb-chip i{font-size:10.5px;color:var(--gray-500)}
.ai2-kb-chip.ai2-kb-project{background:rgba(231,0,0,0.05);color:#C40000;border-color:rgba(231,0,0,0.15)}
.ai2-kb-chip.ai2-kb-project i{color:var(--red)}
.ai2-kb-chip.ai2-kb-current{background:linear-gradient(135deg,rgba(231,0,0,0.08),rgba(231,0,0,0.02));color:#C40000;border-color:rgba(231,0,0,0.18)}
.ai2-kb-chip.ai2-kb-current i{color:var(--red)}
.ai2-kb-chip.ai2-kb-est i{color:#059669}
.ai2-kb-chip.ai2-kb-ignored{opacity:0.55}

/* Chat surface */
.ai2-chat{flex:1;overflow-y:auto;padding:8px 4px 8px 4px;display:flex;flex-direction:column;gap:18px;min-height:0}
.ai2-msg{display:flex;gap:12px;align-items:flex-start}
.ai2-msg-user{justify-content:flex-end}
.ai2-avatar{width:30px;height:30px;border-radius:50%;background:#E70000;color:var(--kinnect-ink);display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;box-shadow:0 2px 6px rgba(231,0,0,0.25)}
.ai2-bubble{max-width:78%;background:#fff;border-radius:18px;padding:14px 18px;box-shadow:0 1px 2px rgba(15,17,23,0.04),0 4px 14px rgba(15,17,23,0.05)}
.ai2-bubble-user{background:#E70000;color:var(--kinnect-ink);border-bottom-right-radius:6px}
.ai2-msg-ai .ai2-bubble{border-bottom-left-radius:6px}
.ai2-sender{font-size:10.5px;font-weight:700;color:var(--red);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:6px}
.ai2-text{font-size:13.5px;color:var(--gray-800);line-height:1.7}
.ai2-text strong{color:var(--gray-900);font-weight:700}
.ai2-text em{color:var(--gray-600)}
.ai2-bubble-user .ai2-text{color:#fff}
.ai2-typing{display:inline-flex;gap:4px;padding:6px 2px}
.ai2-typing span{width:7px;height:7px;border-radius:50%;background:var(--red);animation:ai2pulse 1.2s infinite}
.ai2-typing span:nth-child(2){animation-delay:0.2s}
.ai2-typing span:nth-child(3){animation-delay:0.4s}
@keyframes ai2pulse{0%,80%,100%{opacity:0.3;transform:scale(0.85)}40%{opacity:1;transform:scale(1)}}

/* Source citations */
.ai2-sources{margin-top:12px;padding-top:11px;border-top:1px solid var(--gray-100);display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.ai2-sources-label{font-size:10px;font-weight:700;color:var(--gray-500);text-transform:uppercase;letter-spacing:0.08em;margin-right:4px;display:inline-flex;align-items:center;gap:5px}
.ai2-sources-label i{font-size:10px}
.ai2-source-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;background:var(--gray-50);border:1px solid var(--gray-100);border-radius:12px;font-size:10.5px;color:var(--gray-700);font-weight:500}
.ai2-source-chip i{font-size:10px;color:var(--red)}

/* Suggested prompts */
.ai2-suggested{display:flex;flex-direction:column;gap:8px}
.ai2-suggested-label{font-size:10.5px;font-weight:700;color:var(--gray-500);text-transform:uppercase;letter-spacing:0.09em}
.ai2-suggested-row{display:flex;flex-wrap:wrap;gap:7px}
.ai2-suggest-chip{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:20px;border:1px solid var(--gray-200);background:#fff;color:var(--gray-700);font-size:12px;font-family:var(--font);font-weight:500;cursor:pointer;transition:all 0.15s;text-align:left}
.ai2-suggest-chip i{font-size:11px;color:var(--red)}
.ai2-suggest-chip:hover{border-color:var(--red);background:rgba(231,0,0,0.04);color:var(--gray-900);transform:translateY(-1px);box-shadow:0 4px 12px rgba(15,17,23,0.05)}

/* Composer */
.ai2-composer{display:flex;align-items:flex-end;gap:10px;background:#fff;border-radius:22px;padding:10px 10px 10px 18px;box-shadow:0 1px 2px rgba(15,17,23,0.04),0 8px 24px rgba(15,17,23,0.07);border:1px solid var(--gray-100)}
.ai2-composer:focus-within{border-color:rgba(231,0,0,0.3);box-shadow:0 1px 2px rgba(15,17,23,0.04),0 8px 24px rgba(231,0,0,0.1)}
.ai2-input{flex:1;border:none;background:transparent;font-family:var(--font);font-size:13.5px;color:var(--gray-900);resize:none;padding:8px 0;line-height:1.5;max-height:160px;min-height:24px;overflow-y:auto}
.ai2-input:focus{outline:none}
.ai2-input::placeholder{color:var(--gray-400)}
.ai2-send{width:38px;height:38px;border-radius:50%;background:#E70000;border:none;color:var(--kinnect-ink);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;box-shadow:0 2px 8px rgba(231,0,0,0.3);transition:transform 0.15s}
.ai2-send:hover{transform:translateY(-1px) scale(1.04)}
.ai2-send:active{transform:translateY(0) scale(1)}
.ai2-footnote{font-size:10.5px;color:var(--gray-400);text-align:center;line-height:1.5}

/* ===== BID PACKAGE MANAGER CARDS (in Project Info tab) ===== */
.bidpkg-card{background:#fff;border:1px solid var(--gray-200);border-radius:12px;padding:12px 14px;margin-bottom:8px;transition:all 0.15s}
.bidpkg-card.active{border-color:var(--red);box-shadow:0 0 0 2px rgba(231,0,0,0.1);background:linear-gradient(135deg,#FFFFFF 0%,#fff 100%)}
.bidpkg-card-head{display:flex;align-items:flex-start;gap:12px}
.bidpkg-card-status{width:22px;height:22px;border-radius:50%;border:2px solid var(--gray-300);background:#fff;flex-shrink:0;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--gray-400);font-size:10px;margin-top:5px;transition:all 0.15s}
.bidpkg-card-status:hover{border-color:var(--red);color:var(--red)}
.bidpkg-card-status.on{background:var(--red);border-color:var(--red);color:#fff;cursor:default}
.bidpkg-card-name{flex:1;min-width:140px;background:transparent;border:1px solid transparent;border-radius:6px;padding:6px 9px;font-size:13px;font-weight:700;color:var(--gray-900);font-family:var(--font)}
.bidpkg-card-name:focus{outline:none;border-color:var(--gray-200);background:#fff}
.bidpkg-card-num,.bidpkg-card-date{background:transparent;border:1px solid transparent;border-radius:6px;padding:6px 9px;font-size:12px;font-family:var(--mono);font-weight:600;color:var(--gray-700)}
.bidpkg-card-num{width:80px;text-align:center}
.bidpkg-card-date{width:140px}
.bidpkg-card-num:focus,.bidpkg-card-date:focus{outline:none;border-color:var(--gray-200);background:#fff}
.bidpkg-card-desc{width:100%;background:transparent;border:1px solid transparent;border-radius:6px;padding:5px 9px;font-size:11.5px;color:var(--gray-600);font-family:var(--font);margin-top:4px}
.bidpkg-card-desc:focus{outline:none;border-color:var(--gray-200);background:#fff;color:var(--gray-800)}
.bidpkg-card-meta{display:flex;gap:14px;align-items:center;margin-top:6px;padding-left:9px;font-size:11px;color:var(--gray-500);flex-wrap:wrap}
.bidpkg-card-meta i{font-size:10px;margin-right:4px;color:var(--gray-400)}
.bidpkg-active-pill{background:var(--red);color:#fff;font-size:9.5px;font-weight:700;letter-spacing:0.06em;padding:2px 7px;border-radius:8px}

/* Multi-contact rows inside the Add Sub modal */
.sub-contact-row{display:flex;gap:6px;align-items:center}

/* ===== DOCS PAGE SECTION HEADERS ===== */
.docs-section-header{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:24px 0 12px;padding-bottom:10px;border-bottom:1px solid var(--gray-200)}
.docs-section-header:first-of-type{margin-top:6px}
.docs-section-title{font-size:14px;font-weight:700;color:var(--gray-900);letter-spacing:-0.005em}
.docs-section-sub{font-size:11.5px;color:var(--gray-500);margin-top:3px;line-height:1.5}
/* Collapsible Project Documents sections — sections start rolled up; click header to expand */
.docs-section-header.collapsible{cursor:pointer;transition:background 0.12s,padding 0.12s;padding:6px 8px 10px;margin-left:-8px;margin-right:-8px;border-radius:6px 6px 0 0;user-select:none}
.docs-section-header.collapsible:hover{background:rgba(231,0,0,0.04)}
.docs-section-chevron{font-size:14px;color:var(--gray-400);transition:transform 0.2s ease;align-self:center}
.docs-section-header.collapsible.open .docs-section-chevron{transform:rotate(180deg);color:var(--color-yellow)}
.docs-section-body{max-height:0;overflow:hidden;transition:max-height 0.3s ease,margin 0.2s ease;margin:0 -8px}
.docs-section-body.open{max-height:9999px;margin:0 -8px 12px;overflow:visible}

/* ===== SYSTEM FOLDERS + SUBFOLDERS ===== */
.drawing-set-card.system-current{border:1.5px solid rgba(231,0,0,0.35);box-shadow:0 0 0 3px rgba(231,0,0,0.05)}
.drawing-set-card.system-current .drawing-set-header{background:linear-gradient(90deg,rgba(231,0,0,0.07),rgba(231,0,0,0.02))}
.drawing-set-card.system-archive{opacity:0.78}
.drawing-set-card.system-archive .drawing-set-header{background:var(--gray-100)}
.drawing-set-card.system-archive .drawing-set-name,.drawing-set-card.system-archive .drawing-set-meta{color:var(--gray-500)}
.folder-sys-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:10px;font-size:9.5px;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;vertical-align:middle}
.folder-sys-badge-current{background:var(--red);color:#fff}
.folder-sys-badge-archive{background:var(--gray-300);color:var(--gray-700)}
.folder-sys-banner{padding:9px 13px;border-radius:8px;font-size:11.5px;line-height:1.5;margin-bottom:10px;display:flex;align-items:flex-start;gap:8px}
.folder-sys-banner-current{background:rgba(231,0,0,0.06);border:1px solid rgba(231,0,0,0.15);color:#C40000}
.folder-sys-banner-archive{background:var(--gray-50);border:1px solid var(--gray-200);color:var(--gray-600)}

/* Subfolders */
.folder-subfolders-wrap{margin:6px 0 0;padding:0 0 0 14px;border-left:2px dashed var(--gray-200);display:flex;flex-direction:column;gap:6px}
.folder-subfolder{background:var(--gray-50);border:1px solid var(--gray-100);border-radius:8px;overflow:hidden}
.folder-subfolder-header{display:flex;align-items:center;gap:8px;padding:7px 12px;background:#fff;border-bottom:1px solid var(--gray-100)}
.folder-subfolder-name{flex:1;border:1px solid transparent;background:transparent;padding:3px 7px;border-radius:5px;font-family:var(--font);font-size:12px;font-weight:600;color:var(--gray-800);min-width:0}
.folder-subfolder-name:focus{outline:none;border-color:var(--gray-200);background:#fff}
.folder-subfolder-btn{background:transparent;border:1px solid var(--gray-200);border-radius:5px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--gray-500);font-size:10px;padding:0;transition:all 0.12s}
.folder-subfolder-btn:hover{background:#fff;color:var(--red);border-color:var(--red)}
.folder-subfolder-body{padding:6px 10px 8px}

/* File-level Move action button — sits next to the trash button */
.doc-action{background:none;border:none;cursor:pointer;color:var(--gray-300);font-size:11px;padding:3px;transition:color 0.12s}
.doc-action:hover{color:var(--red)}

/* ===== FOLDER ICON PICKER ===== */
.folder-icon-pick{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius);padding:8px 0;cursor:pointer;font-size:14px;color:var(--gray-500);transition:all 0.12s;font-family:var(--font);display:flex;align-items:center;justify-content:center}
.folder-icon-pick:hover{border-color:var(--gray-400);color:var(--gray-700)}
.folder-icon-pick.selected{border-color:var(--red);background:var(--red-bg);color:var(--red)}

/* ===== CSI HIERARCHICAL SCOPES ===== */
.csi-div-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);margin-bottom:6px;overflow:hidden;transition:border-color 0.15s}
.csi-div-card.has-selected{border-color:var(--red);box-shadow:0 0 0 1px rgba(231,0,0,0.08)}
.csi-div-header{display:flex;align-items:stretch;background:var(--gray-50);border-bottom:1px solid transparent}
.csi-div-card.has-selected .csi-div-header{background:var(--red-bg);border-bottom-color:rgba(231,0,0,0.15)}
.csi-div-toggle{display:flex;align-items:center;justify-content:center;padding:0 12px;cursor:pointer;border-right:1px solid var(--gray-200);color:var(--gray-500);font-size:14px;transition:all 0.15s}
.csi-div-toggle:hover{color:var(--red);background:rgba(231,0,0,0.05)}
.csi-div-toggle.selected{color:var(--red)}
.csi-div-expander{flex:1;background:transparent;border:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:10px 14px;text-align:left;font-family:var(--font);font-size:12.5px;font-weight:600;color:var(--gray-800);transition:background 0.1s}
.csi-div-expander:hover{background:rgba(0,0,0,0.03)}
.csi-div-chev{font-size:10px;color:var(--gray-400);transition:transform 0.2s;width:10px}
.csi-div-name{flex:1}
.csi-div-pill{background:var(--red);color:#fff;font-size:9.5px;padding:1px 7px;border-radius:8px;font-weight:700;letter-spacing:0.03em}
.csi-div-body{display:none;padding:8px 12px;background:#fdfdfd;border-top:1px solid var(--gray-100);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:5px}
.csi-div-body.open{display:grid}
.csi-section-chip{display:flex;align-items:center;gap:7px;padding:6px 9px;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);cursor:pointer;font-size:11.5px;color:var(--gray-700);transition:all 0.12s}
.csi-section-chip:hover{border-color:var(--gray-400)}
.csi-section-chip.selected{border-color:var(--red);background:var(--red-bg);color:var(--red)}
.csi-section-chip i{color:var(--gray-400);font-size:11px}
.csi-section-chip.selected i{color:var(--red)}
.csi-section-code{font-family:var(--mono);font-size:10.5px;font-weight:700;color:var(--gray-500);min-width:62px}
.csi-section-chip.selected .csi-section-code{color:var(--red)}
.csi-section-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ===== SCOPES SELECTION ===== */
.scope-pkg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.scope-pkg-chip{display:flex;align-items:center;gap:8px;padding:9px 12px;background:var(--white);border:1.5px solid var(--gray-200);border-radius:var(--radius);cursor:pointer;transition:all 0.15s;font-size:12px;font-weight:600;color:var(--gray-700)}
.scope-pkg-chip:hover{border-color:var(--gray-400)}
.scope-pkg-chip.selected{border-color:var(--red);background:var(--red-bg);color:var(--red)}
.scope-pkg-chip i{font-size:11px;opacity:0.6}
.scope-pkg-chip.selected i{opacity:1}
.scope-pkg-chip input{display:none}
.scope-pkg-count{margin-left:auto;background:var(--gray-100);color:var(--gray-600);font-size:9.5px;padding:1px 6px;border-radius:8px;font-weight:700}
.scope-pkg-chip.selected .scope-pkg-count{background:var(--red);color:#fff}

/* ===== INVITED BIDDERS ===== */
.invited-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:10px}
.invited-header{padding:11px 15px;background:var(--gray-50);border-bottom:1px solid var(--gray-200);display:flex;align-items:center;gap:9px;cursor:pointer}
.invited-trade-name{font-size:12.5px;font-weight:700;color:var(--gray-800);flex:1}
.invited-stats{display:flex;gap:14px;font-size:11px}
.invited-stat{display:flex;align-items:center;gap:5px;color:var(--gray-500)}
.invited-stat i{font-size:10px}
.invited-stat .num{font-weight:700;color:var(--gray-800);font-family:var(--mono)}
.invited-body{padding:0;display:none}
.invited-body.open{display:block}
.invited-sub-row{display:flex;align-items:center;gap:10px;padding:8px 15px;border-bottom:1px solid var(--gray-100);font-size:12px}
.invited-sub-row:last-child{border-bottom:none}
.invited-sub-row:hover{background:var(--gray-50)}
.invited-sub-name{font-weight:600;color:var(--gray-800);flex:1;min-width:0}
.invited-sub-name .sub-co-name{display:block;font-size:12px}
.invited-sub-name .sub-co-loc{display:block;font-size:10px;color:var(--gray-400);margin-top:1px}
.invited-actions-icons{display:flex;gap:4px}
.act-icon{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;background:var(--gray-100);color:var(--gray-300);transition:all 0.15s}
.act-icon.done{background:#ecfdf5;color:var(--green)}
.act-icon.done.email{background:#eff6ff;color:var(--blue)}
.act-icon.done.download{background:var(--kinnect-yellow-soft);color:var(--red)}

/* ===== ACTIVITY TRACKER ===== */
.activity-row{display:flex;align-items:center;gap:10px;padding:9px 13px;border-bottom:1px solid var(--gray-100);font-size:12px}
.activity-row:last-child{border-bottom:none}
.activity-time{font-size:10.5px;color:var(--gray-400);font-family:var(--mono);width:90px;flex-shrink:0}
.activity-icon{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0}
.ai-invite{background:#eff6ff;color:var(--blue)}
.ai-open{background:#FFE5E5;color:#404040}
.ai-download{background:var(--kinnect-yellow-soft);color:var(--red)}
.ai-bid{background:#ecfdf5;color:var(--green)}
.activity-text{flex:1;color:var(--gray-700);line-height:1.45}
.activity-text strong{color:var(--gray-900)}

/* ===== PLAN ROOM ===== */
.planroom-folder{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);margin-bottom:8px;overflow:hidden}
.planroom-folder-header{padding:10px 14px;background:var(--gray-50);display:flex;align-items:center;gap:9px;cursor:pointer;border-bottom:1px solid var(--gray-200)}
.planroom-folder-icon{color:var(--red);font-size:14px}
.planroom-folder-name{font-size:12.5px;font-weight:700;color:var(--gray-800);flex:1}
.planroom-share-btn{padding:3px 10px;background:var(--gray-100);border:1px solid var(--gray-200);border-radius:4px;font-size:10.5px;cursor:pointer;color:var(--gray-700);font-family:var(--font);font-weight:600;display:inline-flex;align-items:center;gap:4px;transition:all 0.15s}
.planroom-share-btn:hover{background:var(--red-bg);color:var(--red);border-color:var(--red)}
.planroom-share-btn.shared{background:#ecfdf5;color:var(--green);border-color:#a7f3d0}
.planroom-folder-body{padding:8px 14px;display:none}
.planroom-folder-body.open{display:block}
.planroom-file{display:flex;align-items:center;gap:8px;padding:6px 9px;font-size:12px;border-radius:5px}
.planroom-file:hover{background:var(--gray-50)}
.planroom-empty{padding:6px 0;font-size:11.5px;color:var(--gray-400);font-style:italic}

/* ===== PROJECT INFO PANEL ===== */
.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.info-field{display:flex;flex-direction:column;gap:3px}
.info-field-label{font-size:9.5px;font-weight:700;color:var(--gray-400);text-transform:uppercase;letter-spacing:0.07em}
.info-field-value{font-size:13px;font-weight:600;color:var(--gray-800)}
.info-field-value.mono{font-family:var(--mono);font-weight:700}

/* ===== TAKEOFFS V2 (ConstructConnect-style) ===== */
.takeoff-page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:12px;gap:14px}
.takeoff-workspace{display:grid;grid-template-columns:240px 1fr 280px;gap:12px;height:calc(100vh - 260px);min-height:520px}
.to-pane{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;min-height:0}
.to-pane-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--gray-200);background:var(--gray-50)}
.to-pane-title{font-size:11px;font-weight:700;color:var(--gray-700);text-transform:uppercase;letter-spacing:0.05em;display:flex;align-items:center;gap:7px}
.to-pane-title i{color:var(--gray-400)}
.to-pane-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.to-btn-icon{background:var(--gray-100);border:1px solid var(--gray-200);border-radius:var(--radius);width:26px;height:26px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--gray-600);font-size:11px;transition:all 0.15s}
.to-btn-icon:hover{background:var(--red-bg);color:var(--red);border-color:var(--red)}
.to-search{margin:10px 12px 6px;width:calc(100% - 24px);border:1px solid var(--gray-300);border-radius:var(--radius);padding:6px 10px;font-size:12px;font-family:var(--font)}
.to-search:focus{outline:none;border-color:var(--red)}
.to-sheet-tree{flex:1;overflow-y:auto;padding:4px 6px 12px;min-height:0}
.to-set{margin-bottom:4px}
.to-set-header{display:flex;align-items:center;gap:7px;padding:7px 8px;border-radius:var(--radius);cursor:pointer;font-size:12px;font-weight:600;color:var(--gray-700);transition:background 0.1s}
.to-set-header:hover{background:var(--gray-100)}
.to-set-header .fa-folder{color:var(--red);font-size:12px}
.to-set-toggle{color:var(--gray-400);font-size:9px;transition:transform 0.15s;width:10px}
.to-set-toggle.open{transform:rotate(90deg)}
.to-set-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.to-set-count{font-size:9.5px;background:var(--gray-100);color:var(--gray-500);padding:1px 6px;border-radius:8px;font-weight:700}
.to-set-body{display:none;padding-left:14px;margin-top:2px}
.to-set-body.open{display:block}
.to-sheet-item{display:flex;align-items:center;gap:7px;padding:6px 9px;border-radius:var(--radius);cursor:pointer;font-size:11.5px;color:var(--gray-600);transition:all 0.1s}
.to-sheet-item i{font-size:11px;color:var(--gray-400);flex-shrink:0}
.to-sheet-item:hover{background:var(--gray-100);color:var(--gray-900)}
.to-sheet-item.active{background:var(--red-bg);color:var(--red);font-weight:600}
.to-sheet-item.active i{color:var(--red)}
.to-sheet-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.to-empty{text-align:center;padding:24px 12px;color:var(--gray-400);font-size:11.5px}
.to-empty i{font-size:20px;margin-bottom:6px;display:block;opacity:0.4}
.to-empty p{font-size:11.5px}

/* Center pane */
.to-toolbar{display:flex;align-items:center;gap:6px;padding:8px 10px;background:var(--gray-50);border-bottom:1px solid var(--gray-200);flex-wrap:wrap}
.to-tool-group{display:flex;gap:2px;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);padding:2px}
.to-tool{background:transparent;border:none;padding:5px 9px;border-radius:4px;font-size:11px;color:var(--gray-600);cursor:pointer;display:inline-flex;align-items:center;gap:5px;font-family:var(--font);font-weight:600;transition:all 0.12s}
.to-tool i{font-size:11px}
.to-tool span{font-size:10px;font-family:var(--mono);font-weight:700}
.to-tool:hover{background:var(--gray-100);color:var(--gray-900)}
.to-tool.active{background:var(--red);color:#fff}
.to-tool.active i,.to-tool.active span{color:#fff}
.to-tool-divider{width:1px;height:22px;background:var(--gray-300)}
.to-tool-readout{font-size:11px;color:var(--gray-500);font-family:var(--mono);padding:4px 10px;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.to-viewer{flex:1;position:relative;overflow:auto;background:#e6e7ea;display:flex;align-items:center;justify-content:center;min-height:0;padding:18px}
.to-canvas{display:block;background:#FAFAFA;width:100%;max-width:1000px;aspect-ratio:1000/700;box-shadow:0 4px 16px rgba(0,0,0,0.08);transform-origin:center center;transition:transform 0.15s}
.to-canvas.tool-active{cursor:crosshair}
.to-canvas.tool-pan{cursor:grab}
.to-watermark{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--gray-400);font-weight:600;pointer-events:none;letter-spacing:0.03em}
.to-status{display:flex;align-items:center;gap:14px;padding:7px 14px;background:var(--gray-900);color:rgba(0,0,0,0.7);font-size:11px;border-top:1px solid var(--gray-200);flex-shrink:0}
.to-status strong{color:#fff;font-family:var(--mono);font-weight:700}
.to-status i{color:rgba(0,0,0,0.62);font-size:10px;margin-right:4px}

/* Right pane */
.to-pane-section{padding:12px 14px;border-bottom:1px solid var(--gray-200)}
.to-pane-section .form-label{font-size:9.5px;margin-bottom:3px}
.to-pane-section .form-input,.to-pane-section .form-select,.to-pane-section .form-textarea{padding:6px 9px;font-size:12px}
.to-pane-section .form-group{margin-bottom:8px}
.to-items-list{flex:1;display:flex;flex-direction:column;min-height:0;padding:12px 14px 0}
.to-count-pill{background:var(--red);color:#fff;font-size:9.5px;padding:1px 7px;border-radius:8px;font-weight:700}
.to-items{flex:1;overflow-y:auto;margin-top:8px;margin-bottom:8px;min-height:0}
.to-item-row{display:grid;grid-template-columns:1fr auto auto auto;gap:6px;align-items:center;padding:7px 9px;border-left:3px solid var(--gray-300);background:var(--gray-50);border-radius:5px;margin-bottom:4px;font-size:11.5px;cursor:pointer;transition:background 0.1s}
.to-item-row:hover{background:var(--gray-100)}
.to-item-name{min-width:0;overflow:hidden}
.to-item-name strong{font-size:11.5px;color:var(--gray-900);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.to-item-sub{font-size:9.5px;color:var(--gray-400);margin-top:1px}
.to-item-qty{font-family:var(--mono);font-weight:700;color:var(--gray-700);font-size:11.5px;white-space:nowrap}
.to-item-unit{font-size:9px;color:var(--gray-400)}
.to-item-cost{font-family:var(--mono);font-weight:700;color:var(--red);font-size:11.5px;white-space:nowrap}
.to-item-del{background:none;border:none;cursor:pointer;color:var(--gray-300);font-size:10px;padding:2px}
.to-item-del:hover{color:var(--red)}
.to-items-total{padding:10px 14px;background:var(--gray-900);color:#fff;font-family:var(--mono);font-weight:700;font-size:12px;text-align:right;border-top:1px solid var(--gray-200)}

/* Modal taller for selection */
.modal-lg{max-width:880px}
.sub-pick-list{max-height:380px;overflow-y:auto;border:1px solid var(--gray-200);border-radius:var(--radius);margin-top:8px}
.sub-pick-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--gray-100);font-size:12px;cursor:pointer;transition:background 0.1s}
.sub-pick-row:last-child{border-bottom:none}
.sub-pick-row:hover{background:var(--gray-50)}
.sub-pick-row.selected{background:var(--kinnect-yellow-soft)}
.sub-pick-name{font-weight:600;color:var(--gray-800)}
.sub-pick-meta{font-size:10.5px;color:var(--gray-400)}

/* ============================================================
   KINNECT BRAND OVERRIDES — contrast + polish on yellow palette
   ============================================================ */
.company-eyebrow{font-size:10.5px;color:var(--kinnect-yellow);text-transform:uppercase;letter-spacing:0.22em;font-weight:700;margin-top:4px}
.company-title{background:var(--kinnect-grad-bright);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:0.02em}
.company-logo-mark{background:var(--kinnect-grad);box-shadow:var(--kinnect-shadow-yellow)}
.company-logo-mark i{color:var(--kinnect-ink)}
.company-card:hover{border-color:var(--kinnect-yellow);background:#FAFAFA;transform:translateY(-2px)}
.company-new:hover{border-color:var(--kinnect-yellow);background:rgba(231,0,0,0.06)}

.login-input:focus{border-color:var(--kinnect-yellow);box-shadow:0 0 0 3px rgba(231,0,0,0.12)}
.login-btn{background:var(--kinnect-grad);color:var(--kinnect-ink);font-weight:700;box-shadow:var(--kinnect-shadow-yellow)}
.login-btn:hover{background:var(--kinnect-grad-bright);color:var(--kinnect-ink)}
.login-error{color:#A00000}

.sb-logo-mark{background:#E70000;box-shadow:0 2px 8px rgba(231,0,0,0.25)}
.sb-logo-mark i{color:#FFFFFF}
.sb-brand{background:var(--kinnect-grad-bright);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:0.04em;font-weight:800}
.sb-brand-sub{color:rgba(231,0,0,0.55)}
.sb-item.active{color:#171717;background:var(--sidebar-active);border-left-color:var(--kinnect-yellow);font-weight:500}
.sb-item.active i{color:var(--kinnect-yellow);opacity:1}
.sb-item .sb-badge{background:var(--kinnect-yellow);color:var(--kinnect-ink)}
.sb-avatar{background:var(--kinnect-grad);color:var(--kinnect-ink)}
.sb-new-proj:hover{border-color:var(--kinnect-yellow);color:var(--kinnect-yellow)}
.sb-proj-item.active{background:rgba(231,0,0,0.14)}

.btn-primary{background:var(--kinnect-grad);color:var(--kinnect-ink);font-weight:700;box-shadow:0 1px 2px rgba(0,0,0,0.06)}
.btn-primary:hover{background:var(--kinnect-grad-bright);color:var(--kinnect-ink)}
.btn-danger{background:var(--kinnect-yellow-soft);color:var(--kinnect-amber);border:1px solid var(--kinnect-yellow-bg)}
.btn-danger:hover{background:var(--kinnect-yellow-bg);color:var(--kinnect-amber)}

.card-action{color:var(--gray-900);font-weight:700}
.card-action:hover{color:var(--kinnect-amber);text-decoration:underline}

.tbl-link{color:var(--gray-900);font-weight:700;border-bottom:2px solid var(--kinnect-yellow-deep);padding-bottom:1px}
.tbl-link:hover{color:var(--kinnect-amber);text-decoration:none;border-bottom-color:var(--kinnect-amber)}

.form-input:focus,.form-select:focus,.form-textarea:focus,.chat-input:focus,.scope-add-input:focus,.bid-num-input:focus{outline:none;border-color:var(--kinnect-yellow);box-shadow:0 0 0 3px rgba(231,0,0,0.18)}

.text-red{color:var(--kinnect-amber)}
.tag-red{background:var(--kinnect-yellow-bg);color:var(--kinnect-amber)}
.tag-yellow{background:var(--kinnect-yellow-soft);color:var(--kinnect-amber)}
.prog-bar{background:var(--gray-700)}
.prog-fill{background:var(--kinnect-grad)}
.toast i{color:var(--kinnect-yellow)}

.dash-header{background:#E70000}
.dash-pursuit-ribbon{background:var(--kinnect-grad);color:var(--kinnect-ink)}
.dash-awarded-ribbon{background:linear-gradient(135deg,#F5F5F5,#525252);color:var(--kinnect-yellow)}

.dash-stat.ds-accent{background:linear-gradient(135deg,#E70000 0%,#C40000 100%);border:1px solid rgba(255,255,255,0.10);box-shadow:0 8px 20px rgba(231,0,0,0.22),0 1px 2px rgba(0,0,0,0.04)}
.dash-stat.ds-accent::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:rgba(255,255,255,0.30)}
.dash-stat.ds-accent .ds-label{color:rgba(255,255,255,0.90);opacity:1}
.dash-stat.ds-accent .stat-icon{color:rgba(255,255,255,0.18)}
.dash-stat.ds-light{border-left:3px solid var(--kinnect-yellow-deep)}

.ai-narrative-inner::before{background:var(--kinnect-grad-line)}

.ai-chip:hover{border-color:var(--kinnect-yellow);background:var(--kinnect-yellow-soft)}
.ai-chip i{color:var(--kinnect-amber)}

.chat-msg.user{background:var(--kinnect-grad);color:var(--kinnect-ink);font-weight:500}
.chat-msg.ai .chat-sender{color:var(--kinnect-amber)}
.chat-send-btn{background:var(--kinnect-grad);color:var(--kinnect-ink)}
.chat-send-btn:hover{background:var(--kinnect-grad-bright);color:var(--kinnect-ink)}

.ai-ctx-bar{background:linear-gradient(90deg,#F7F7F7,#FAFAFA)}
.ai-ctx-pill{background:rgba(231,0,0,0.18);color:var(--kinnect-yellow);border:1px solid rgba(231,0,0,0.3)}

.ai-tab.active{box-shadow:inset 0 -2px 0 var(--kinnect-yellow-deep),var(--shadow-sm)}
.ai-dot{background:var(--kinnect-yellow-deep)}

.cost-filter-btn.active{background:var(--kinnect-grad);color:var(--kinnect-ink);border-color:var(--kinnect-yellow);font-weight:700}

.rfi-open{background:var(--kinnect-yellow-soft);color:var(--kinnect-amber)}

.bid-pkg-icon{background:var(--kinnect-yellow-soft);color:var(--kinnect-amber)}
.bid-pkg-count{background:var(--kinnect-grad);color:var(--kinnect-ink)}
.bid-amount{color:var(--kinnect-amber)}

.sub-tab.active{box-shadow:inset 0 -2px 0 var(--kinnect-yellow-deep),var(--shadow-sm)}
.sub-tab.active i{color:var(--kinnect-amber)}
.sub-tab .count-pill{background:var(--kinnect-yellow-deep);color:#fff}

.scope-pkg-chip.selected{border-color:var(--kinnect-yellow);background:var(--kinnect-yellow-soft);color:var(--kinnect-amber)}
.scope-pkg-chip.selected .scope-pkg-count{background:var(--kinnect-yellow);color:var(--kinnect-ink)}

.sub-checkbox{accent-color:var(--kinnect-yellow)}

.role-admin{background:var(--kinnect-yellow-soft);color:var(--kinnect-amber)}

.doc-icon.pdf{background:var(--kinnect-yellow-soft);color:var(--kinnect-amber)}
.doc-del:hover{color:var(--kinnect-amber)}
.scope-rm:hover{color:var(--kinnect-amber)}
.bid-rm:hover{color:var(--kinnect-amber)}

.activity-icon.ai-download,.ai-download{background:var(--kinnect-yellow-soft);color:var(--kinnect-amber)}
.act-icon.done.download{background:var(--kinnect-yellow-soft);color:var(--kinnect-amber)}
.hs-notready{background:var(--kinnect-yellow-soft);color:var(--kinnect-amber)}
.bid-summary-val.high{color:var(--kinnect-amber)}
.dash-dec-tag.rfi{background:var(--kinnect-yellow-soft);color:var(--kinnect-amber)}

.planroom-folder-icon{color:var(--kinnect-amber)}
.planroom-share-btn:hover{background:var(--kinnect-yellow-soft);color:var(--kinnect-amber);border-color:var(--kinnect-yellow)}

.qual-pref{background:var(--kinnect-yellow-soft);color:var(--kinnect-amber)}

.proj-card.active-card{border-color:var(--kinnect-yellow)}
.proj-card.active-card .proj-card-header{background:var(--kinnect-grad);color:var(--kinnect-ink)}
.proj-card.active-card .proj-card-type{color:rgba(20,20,22,0.55)}
.proj-card.active-card .proj-card-name{color:var(--kinnect-ink)}

.est-row.target{background:var(--kinnect-yellow-soft)}
.est-row.target .est-val{color:var(--kinnect-amber)}

.fw-700.text-red{color:var(--kinnect-amber)}
.stat-card.accent-red::before{background:var(--kinnect-grad)}
.bid-low .bid-amount{color:var(--green)}

.upload-drop:hover{border-color:var(--kinnect-yellow);background:var(--kinnect-yellow-soft)}
.upload-drop:hover i{color:var(--kinnect-amber)}

::-webkit-scrollbar-thumb:hover{background:var(--kinnect-yellow-deep)}

.note-box{background:var(--kinnect-yellow-soft);border-color:var(--kinnect-yellow-bg);color:var(--kinnect-amber)}

.sb-logout:hover{color:var(--kinnect-yellow)}
.modal-close:hover{color:var(--kinnect-amber)}

.status-badge.s-precon{background:var(--kinnect-yellow-soft);color:var(--kinnect-amber)}

.to-count-pill{background:var(--kinnect-yellow);color:var(--kinnect-ink)}
.to-item-cost{color:var(--kinnect-amber)}
.to-item-del:hover{color:var(--kinnect-amber)}

/* v5.3 specific — AI bubble v2 styling */
.ai2-msg-ai .ai2-sender{color:var(--kinnect-yellow)}
.ai2-msg-user .ai2-bubble{background:var(--kinnect-yellow);color:var(--kinnect-ink)}
.ai2-typing span{background:var(--kinnect-yellow)}

/* ============================================================
   KINNECT DARK SURFACES — body, cards, modals, forms, tables
   ============================================================ */
html,body{background:#FFFFFF;color:#525252}

.topbar{background:#FFFFFF;border-bottom:1px solid rgba(0,0,0,0.07)}
.topbar-title{color:#262626}
.topbar-breadcrumb{color:#525252}
.topbar-breadcrumb span{color:#525252}
.topbar-icon-btn{background:transparent;border:1px solid rgba(0,0,0,0.10);color:#525252}
.topbar-icon-btn:hover{background:rgba(0,0,0,0.06);color:var(--kinnect-yellow)}
.topbar-sep{color:rgba(0,0,0,0.15)}

.card,.card-sm{background:#FFFFFF;border:1px solid rgba(0,0,0,0.07);color:#525252;box-shadow:0 1px 2px rgba(0,0,0,0.25)}
.card-title{color:#262626}
.card-title i{color:#525252}

.page-title{color:#262626}
.page-sub{color:#525252}

.divider{background:rgba(0,0,0,0.08)}

.stat-card{background:#FFFFFF;border:1px solid rgba(0,0,0,0.07)}
.stat-label{color:#525252}
.stat-value,.stat-value-sm{color:#262626}
.stat-sub{color:#525252}

.tbl th,.sub-table th,.bid-table th{background:#FAFAFA;color:#525252;border-bottom:1px solid rgba(0,0,0,0.10)}
.tbl td,.sub-table td,.bid-table td{color:#525252;border-bottom:1px solid rgba(0,0,0,0.06)}
.tbl tr:hover td,.sub-table tr:hover td,.bid-table tr:hover td{background:rgba(0,0,0,0.03)}
.fw-700,.fw-600{color:#262626}

.form-label{color:#525252}
.form-input,.form-select,.form-textarea,.chat-input,.scope-add-input,.bid-num-input{background:#F5F5F5;border:1px solid rgba(0,0,0,0.10);color:#262626}
.form-input::placeholder,.form-textarea::placeholder,.chat-input::placeholder,.scope-add-input::placeholder{color:#525252}
.form-input:focus,.form-select:focus,.form-textarea:focus,.chat-input:focus,.scope-add-input:focus,.bid-num-input:focus{border-color:var(--kinnect-yellow);background:#F0F0F0;box-shadow:0 0 0 3px rgba(231,0,0,0.18)}

.btn-outline{background:transparent;border:1px solid rgba(0,0,0,0.14);color:#525252}
.btn-outline:hover{background:rgba(0,0,0,0.06);color:#262626;border-color:rgba(0,0,0,0.60)}
.btn-ghost{color:#525252}
.btn-ghost:hover{background:rgba(0,0,0,0.06);color:#262626}
.btn-blue{background:#2563eb;color:#fff}
.btn-blue:hover{background:#1d4ed8}

.modal{background:#FFFFFF;color:#525252;box-shadow:0 24px 60px rgba(0,0,0,0.6)}
.modal-overlay{background:rgba(0,0,0,0.7)}
.modal-title{color:#262626}
.modal-sub{color:#525252}
.modal-close{color:#525252}
.modal-footer{border-top:1px solid rgba(0,0,0,0.08)}

.toast{background:#FAFAFA;color:#262626;border:1px solid rgba(0,0,0,0.08)}

.note-box{background:rgba(231,0,0,0.08);border:1px solid rgba(231,0,0,0.22);color:var(--kinnect-yellow)}
.info-box{background:rgba(37,99,235,0.10);border:1px solid rgba(37,99,235,0.30);color:#1E40AF}

.empty-state{color:#525252}

.prog-bar{background:rgba(0,0,0,0.08)}
.prog-fill{background:var(--kinnect-yellow)}

.ai-narrative-inner{background:#FFFFFF;border:1px solid rgba(0,0,0,0.07)}
.ai-narrative-eyebrow{color:#525252}
.ai-narrative-eyebrow i{color:#525252}
.ai-narrative-eyebrow::after{background:rgba(0,0,0,0.08)}
.ai-narrative-text{color:#525252}
.ai-narrative-text strong{color:#262626}
.ai-narrative-footer{color:#525252}

.est-row{background:rgba(0,0,0,0.03)}
.est-row.target{background:rgba(231,0,0,0.10)}
.est-label{color:#525252}
.est-val{color:#262626}
.est-row.target .est-val{color:var(--kinnect-yellow)}

.ai-chip{background:#FAFAFA;border:1px solid rgba(0,0,0,0.08);color:#525252}
.ai-chip:hover{background:rgba(231,0,0,0.10);border-color:var(--kinnect-yellow)}
.ai-chip i{color:var(--kinnect-yellow)}
.ai-chip-label{color:#525252}
.ai-chip-sub{color:#525252}
.ai-chip-arrow{color:#525252}

.chat-container{border:1px solid rgba(0,0,0,0.08)}
.chat-messages{background:#FFFFFF}
.chat-msg.ai{background:#FAFAFA;border:1px solid rgba(0,0,0,0.08);color:#525252}
.chat-msg.ai .chat-sender{color:var(--kinnect-yellow)}
.chat-msg.user{background:var(--kinnect-yellow);color:var(--kinnect-ink)}
.chat-input-row{background:#FFFFFF;border-top:1px solid rgba(0,0,0,0.08)}

.ai-tabs{background:#FAFAFA}
.ai-tab{color:#525252}
.ai-tab.active{background:#FFFFFF;color:#262626}
.ai-response-box{background:#FAFAFA;border:1px solid rgba(0,0,0,0.08);color:#525252}

.sub-tabs{background:#FAFAFA}
.sub-tab{color:#525252}
.sub-tab:hover:not(.active){color:#262626}
.sub-tab.active{background:#FFFFFF;color:#262626}
.sub-tab .count-pill{background:rgba(0,0,0,0.12);color:#262626}
.sub-tab.active .count-pill{background:var(--kinnect-yellow);color:var(--kinnect-ink)}

.drawing-set-card,.invited-card,.bid-pkg-card,.planroom-folder,.takeoff-set-card{background:#FFFFFF;border:1px solid rgba(0,0,0,0.07)}
.drawing-set-header,.invited-header,.bid-pkg-header,.planroom-folder-header{background:#FAFAFA;border-bottom:1px solid rgba(0,0,0,0.07)}
.drawing-set-name,.invited-trade-name,.bid-pkg-name,.planroom-folder-name{color:#262626}
.drawing-set-meta,.bid-pkg-meta,.invited-stat{color:#525252}
.doc-item,.takeoff-file-item,.handoff-item{background:#FAFAFA;border:1px solid rgba(0,0,0,0.07)}
.doc-name,.handoff-item-label{color:#525252}
.doc-date{color:#525252}
.doc-del{color:#525252}
.planroom-file:hover{background:rgba(0,0,0,0.04)}
.planroom-empty{color:#525252}
.planroom-share-btn{background:rgba(0,0,0,0.06);border:1px solid rgba(0,0,0,0.10);color:#525252}
.planroom-share-btn.shared{background:rgba(5,150,105,0.18);color:#047857;border-color:rgba(5,150,105,0.32)}

.bid-pkg-header{background:#FAFAFA}
.bid-low{background:rgba(5,150,105,0.10) !important;border-left-color:#10b981 !important}
.bid-summary-bar{background:#FAFAFA;border:1px solid rgba(0,0,0,0.07)}
.bid-summary-label{color:#525252}
.bid-summary-val{color:#262626}

.proj-card{background:#FFFFFF;border:1px solid rgba(0,0,0,0.07)}
.proj-card-header{background:#FAFAFA}
.proj-card.active-card{border-color:var(--kinnect-yellow)}
.proj-card.active-card .proj-card-header{background:var(--kinnect-yellow);color:var(--kinnect-ink)}
.proj-card.pursuit .proj-card-header{background:#FFE5E5}
.proj-card.awarded .proj-card-header{background:#DBEAFE}
.proj-card-name{color:#171717}
.proj-card.active-card .proj-card-name{color:var(--kinnect-ink)}
.proj-card-meta-row{border-bottom:1px solid rgba(0,0,0,0.06)}
.proj-card-meta-label{color:#525252}
.proj-card-meta-val{color:#525252}
.proj-card-footer{background:#FAFAFA;border-top:1px solid rgba(0,0,0,0.07)}

.upload-drop{border:2px dashed rgba(0,0,0,0.14)}
.upload-drop-text{color:#525252}
.upload-drop-sub{color:#525252}
.upload-drop i{color:#525252}
.upload-drop:hover{border-color:var(--kinnect-yellow);background:rgba(231,0,0,0.06)}
.upload-drop:hover i{color:var(--kinnect-yellow)}

.activity-row{border-bottom:1px solid rgba(0,0,0,0.06)}
.activity-time{color:#525252}
.activity-text{color:#525252}
.activity-text strong{color:#262626}

.user-row{border-bottom:1px solid rgba(0,0,0,0.06)}
.user-name{color:#262626}
.user-email{color:#525252}

.integration-card{background:#FFFFFF;border:1px solid rgba(0,0,0,0.07)}
.int-name{color:#262626}
.int-desc{color:#525252}

.scope-item-row{border-bottom:1px solid rgba(0,0,0,0.06)}
.scope-item-text{color:#525252}
.scope-rm{color:#525252}

.sub-pick-list{border:1px solid rgba(0,0,0,0.08)}
.sub-pick-row{border-bottom:1px solid rgba(0,0,0,0.06)}
.sub-pick-row:hover{background:rgba(0,0,0,0.04)}
.sub-pick-row.selected{background:rgba(231,0,0,0.10)}
.sub-pick-name{color:#262626}
.sub-pick-meta{color:#525252}

.division-item{background:#FAFAFA;border:1px solid rgba(0,0,0,0.07)}
.div-label{color:#525252}
.div-val{color:#262626}

.cost-filter-btn{background:#FAFAFA;border:1px solid rgba(0,0,0,0.10);color:#525252}
.cost-filter-btn:hover:not(.active){background:rgba(0,0,0,0.06);color:#262626;border-color:rgba(0,0,0,0.62)}
.cost-filter-btn.active{background:var(--kinnect-yellow);color:var(--kinnect-ink);border-color:var(--kinnect-yellow)}

.dash-header{background:#E70000;border:1px solid rgba(255,255,255,0.12)}

/* Dashboard stat cards — all dark, with overlapping yellow circles */
.dash-stat{position:relative;overflow:hidden;background-repeat:no-repeat;background-position:bottom right}
.dash-stat.ds-primary{background:
  radial-gradient(circle 70px at 92% 92%,rgba(231,0,0,0.16) 0%,rgba(231,0,0,0.05) 55%,transparent 80%),
  radial-gradient(circle 55px at 78% 80%,rgba(231,0,0,0.12) 0%,rgba(231,0,0,0.03) 55%,transparent 80%),
  #FFFFFF;border:1px solid rgba(0,0,0,0.07)}
.dash-stat.ds-primary .ds-label{color:rgba(255,255,255,0.55)}
.dash-stat.ds-primary .ds-value{color:#FFFFFF}
.dash-stat.ds-primary .ds-sub{color:rgba(255,255,255,0.62)}
.dash-stat.ds-primary .stat-icon{color:rgba(0,0,0,0.05)}
.dash-stat.ds-accent{background:
  radial-gradient(circle 80px at 92% 92%,rgba(231,0,0,0.24) 0%,rgba(231,0,0,0.08) 55%,transparent 80%),
  radial-gradient(circle 60px at 75% 80%,rgba(231,0,0,0.16) 0%,rgba(231,0,0,0.04) 55%,transparent 80%),
  #FFFFFF;border:1px solid rgba(231,0,0,0.32);box-shadow:inset 0 0 0 1px rgba(231,0,0,0.10),0 1px 2px rgba(0,0,0,0.25)}
.dash-stat.ds-accent::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--kinnect-yellow);z-index:1}
.dash-stat.ds-accent .ds-label{color:var(--kinnect-yellow)}
.dash-stat.ds-accent .ds-value{color:#262626}
.dash-stat.ds-accent .ds-sub{color:#525252}
.dash-stat.ds-accent .stat-icon{color:rgba(231,0,0,0.12)}
.dash-stat.ds-light{background:
  radial-gradient(circle 65px at 92% 92%,rgba(231,0,0,0.12) 0%,rgba(231,0,0,0.03) 55%,transparent 80%),
  #FFFFFF;border:1px solid rgba(0,0,0,0.07);border-left:3px solid var(--kinnect-yellow)}
.dash-stat.ds-light .ds-label{color:#525252}
.dash-stat.ds-light .ds-value{color:#262626}
.dash-stat.ds-light .ds-sub{color:#525252}
.dash-stat.ds-light .stat-icon{color:rgba(0,0,0,0.05)}

/* KINNECT overlapping yellow circles — reusable utility + applied to key surfaces */
.kinnect-circles{background-image:
  radial-gradient(circle 80px at 92% 88%,rgba(231,0,0,0.20) 0%,rgba(231,0,0,0.06) 55%,transparent 80%),
  radial-gradient(circle 60px at 78% 78%,rgba(231,0,0,0.14) 0%,rgba(231,0,0,0.04) 55%,transparent 80%);
  background-repeat:no-repeat;background-position:bottom right;position:relative;overflow:hidden}
.stat-card{position:relative;overflow:hidden;background:
  radial-gradient(circle 70px at 92% 92%,rgba(231,0,0,0.12) 0%,rgba(231,0,0,0.04) 55%,transparent 80%),
  radial-gradient(circle 50px at 78% 78%,rgba(231,0,0,0.08) 0%,transparent 70%),
  #FFFFFF;border:1px solid rgba(0,0,0,0.07);background-repeat:no-repeat}
.ai-narrative-inner{position:relative;overflow:hidden;background:
  radial-gradient(circle 90px at 95% 92%,rgba(231,0,0,0.14) 0%,rgba(231,0,0,0.04) 55%,transparent 80%),
  radial-gradient(circle 60px at 80% 80%,rgba(231,0,0,0.08) 0%,transparent 70%),
  #FFFFFF;border:1px solid rgba(0,0,0,0.07)}
.login-box{background:
  radial-gradient(circle 120px at 95% 95%,rgba(231,0,0,0.16) 0%,rgba(231,0,0,0.04) 55%,transparent 80%),
  radial-gradient(circle 80px at 78% 80%,rgba(231,0,0,0.10) 0%,transparent 70%),
  #FFFFFF;background-repeat:no-repeat;position:relative;overflow:hidden}
.company-card{position:relative;overflow:hidden;background:
  radial-gradient(circle 70px at 92% 88%,rgba(231,0,0,0.08) 0%,transparent 70%),
  #FFFFFF}
.company-card:hover{background:
  radial-gradient(circle 80px at 92% 88%,rgba(231,0,0,0.16) 0%,rgba(231,0,0,0.04) 55%,transparent 80%),
  radial-gradient(circle 55px at 78% 78%,rgba(231,0,0,0.10) 0%,transparent 70%),
  #FAFAFA;background-repeat:no-repeat}
.modal{position:relative;overflow:hidden;background:
  radial-gradient(circle 140px at 100% 100%,rgba(231,0,0,0.10) 0%,rgba(231,0,0,0.03) 55%,transparent 80%),
  radial-gradient(circle 90px at 85% 85%,rgba(231,0,0,0.06) 0%,transparent 70%),
  #FFFFFF;background-repeat:no-repeat}
.dash-header{background:
  radial-gradient(circle 280px at 95% 95%,rgba(255,255,255,0.18) 0%,rgba(255,255,255,0.05) 55%,transparent 80%),
  radial-gradient(circle 180px at 12% 20%,rgba(255,255,255,0.12) 0%,transparent 70%),
  radial-gradient(circle 120px at 55% 90%,rgba(255,255,255,0.08) 0%,transparent 70%),
  #E70000;background-repeat:no-repeat;background-position:bottom right,top left,bottom center,top left;border:1px solid rgba(255,255,255,0.12)}
/* v5.3 hero tiles get circles too */
.dash-kpi-feature{position:relative;overflow:hidden;background:
  radial-gradient(circle 100px at 95% 95%,rgba(255,255,255,0.18) 0%,rgba(255,255,255,0.04) 55%,transparent 80%),
  radial-gradient(circle 70px at 80% 80%,rgba(255,255,255,0.10) 0%,transparent 70%),
  linear-gradient(135deg,#E70000 0%,#C40000 100%);background-repeat:no-repeat;color:#FFFFFF}
.cost-kpi-card{background:
  radial-gradient(circle 70px at 92% 92%,rgba(231,0,0,0.16) 0%,rgba(231,0,0,0.05) 55%,transparent 80%),
  radial-gradient(circle 50px at 78% 78%,rgba(231,0,0,0.10) 0%,transparent 70%),
  #FFFFFF;background-repeat:no-repeat;border:1px solid rgba(0,0,0,0.07);color:#525252;box-shadow:0 1px 2px rgba(0,0,0,0.25),0 8px 24px rgba(0,0,0,0.20)}
.bidtab-budget-tile{position:relative;overflow:hidden;background:
  radial-gradient(circle 110px at 95% 95%,rgba(20,20,22,0.18) 0%,rgba(20,20,22,0.04) 55%,transparent 80%),
  radial-gradient(circle 75px at 80% 80%,rgba(20,20,22,0.10) 0%,transparent 70%),
  #E70000;background-repeat:no-repeat;color:var(--kinnect-ink)}

/* Toast/elements with old --gray-900 background that's now light — force dark */
.toast{background:#FAFAFA !important}
.to-status{background:#FAFAFA;color:#525252;border-top-color:rgba(0,0,0,0.07)}

/* Bid-tab inclusion tags */
.bt-tag.y{background:rgba(5,150,105,0.18);color:#047857}
.bt-tag.n{background:rgba(231,0,0,0.16);color:var(--kinnect-yellow)}
.bt-tag.a{background:rgba(231,0,0,0.18);color:#404040}
.bt-tag.none{background:rgba(0,0,0,0.06);color:#525252}

/* v5.3 dashboard widget decoration headers */
.dash-widget-header,.dash-card-header{color:#262626}
.dash-widget-title,.dash-kpi-label{color:#525252}
.dash-kpi-value{color:#262626}
.dash-kpi-sub{color:#525252}
.dash-kpi-feature .dash-kpi-label,.dash-kpi-feature .dash-kpi-sub{color:rgba(20,20,22,0.65)}
.dash-kpi-feature .dash-kpi-value{color:var(--kinnect-ink)}
.dash-sched-item-label{color:#525252}
.dash-sched-item-date{color:#525252}
.dash-mile-name,.dash-mile-date{color:#525252}
.dash-decision-row{background:#FAFAFA;border:1px solid rgba(0,0,0,0.06)}
.dash-decision-row .dash-dec-text{color:#525252}

/* v5.3 cost/bid pages headings */
.cost-kpi-label{color:#525252}
.cost-kpi-value{color:#262626}
.cost-kpi-sub{color:#525252}
.cost-card-title{color:#262626}
.bidtab-meta-label{color:#525252}
.bidtab-meta-value{color:#262626}
.bidtab-budget-tile .bidtab-budget-label,.bidtab-budget-tile .bidtab-budget-sub{color:rgba(20,20,22,0.65)}
.bidtab-budget-tile .bidtab-budget-amount{color:var(--kinnect-ink)}

/* AI v2 timestamps and label colors */
.ai2-sender{color:var(--kinnect-yellow)}
.ai2-msg-user .ai2-sender{color:rgba(20,20,22,0.65)}
.ai2-time{color:#525252}
.ai2-text,.ai2-text strong{color:inherit}
.ai2-msg-user .ai2-text{color:var(--kinnect-ink)}

/* Bid-pkg fields */
.bidpkg-card-meta,.bidpkg-card-label{color:#525252}
.bidpkg-trade-tag{background:rgba(37,99,235,0.18);color:#1E40AF}

/* Folder views — child elements */
.folder-subfolder-meta{color:#525252}
.folder-subfolder-icon{color:#525252}

.data-section-title{color:#525252;border-bottom:1px solid rgba(0,0,0,0.08)}

.info-field-label{color:#525252}
.info-field-value{color:#262626}

.text-muted{color:#525252}

.bid-table tr:hover td{background:rgba(0,0,0,0.04)}

.tag-gray{background:rgba(0,0,0,0.08);color:#525252}
.tag-blue{background:rgba(37,99,235,0.18);color:#1E40AF}
.tag-green{background:rgba(5,150,105,0.18);color:#047857}
.tag-yellow{background:rgba(231,0,0,0.14);color:var(--kinnect-yellow)}
.tag-purple{background:rgba(124,58,237,0.18);color:#6B21A8}
.tag-orange{background:rgba(231,0,0,0.18);color:#404040}
.tag-red{background:rgba(231,0,0,0.16);color:var(--kinnect-yellow)}

.s-pursuit{background:rgba(231,0,0,0.20);color:#404040}
.s-active{background:rgba(5,150,105,0.18);color:#047857}
.s-awarded{background:rgba(37,99,235,0.18);color:#1E40AF}
.s-concept{background:rgba(231,0,0,0.18);color:#404040}
.s-precon{background:rgba(231,0,0,0.12);color:var(--kinnect-yellow)}
.s-budget{background:rgba(5,150,105,0.18);color:#047857}
.s-dd{background:rgba(124,58,237,0.18);color:#6B21A8}

.role-admin{background:rgba(231,0,0,0.14);color:var(--kinnect-yellow)}
.role-pm{background:rgba(5,150,105,0.18);color:#047857}
.role-estimator{background:rgba(37,99,235,0.18);color:#1E40AF}
.role-architect{background:rgba(124,58,237,0.18);color:#6B21A8}

.rfi-open{background:rgba(231,0,0,0.14);color:var(--kinnect-yellow)}
.rfi-sent{background:rgba(231,0,0,0.18);color:#404040}
.rfi-answered{background:rgba(5,150,105,0.18);color:#047857}
.rfi-closed{background:rgba(0,0,0,0.06);color:#525252}

.hs-ready{background:rgba(5,150,105,0.18);color:#047857}
.hs-draft{background:rgba(231,0,0,0.18);color:#404040}
.hs-linked{background:rgba(37,99,235,0.18);color:#1E40AF}
.hs-notready{background:rgba(231,0,0,0.14);color:var(--kinnect-yellow)}

.qual-yes{background:rgba(5,150,105,0.18);color:#047857}
.qual-no{background:rgba(0,0,0,0.08);color:#525252}
.qual-pref{background:rgba(231,0,0,0.14);color:var(--kinnect-yellow)}

.csi-tag{background:rgba(37,99,235,0.18);color:#1E40AF}
.loc-tag{background:rgba(0,0,0,0.08);color:#525252}

.act-icon{background:rgba(0,0,0,0.06);color:rgba(0,0,0,0.65)}
.act-icon.done{background:rgba(5,150,105,0.20);color:#047857}
.act-icon.done.email{background:rgba(37,99,235,0.20);color:#1E40AF}
.act-icon.done.download{background:rgba(231,0,0,0.16);color:var(--kinnect-yellow)}

.ai-invite{background:rgba(37,99,235,0.18);color:#1E40AF}
.ai-open{background:rgba(231,0,0,0.18);color:#404040}
.ai-download{background:rgba(231,0,0,0.16);color:var(--kinnect-yellow)}
.ai-bid{background:rgba(5,150,105,0.18);color:#047857}

.doc-icon.pdf{background:rgba(231,0,0,0.16);color:var(--kinnect-yellow)}
.doc-icon.xls{background:rgba(5,150,105,0.18);color:#047857}
.doc-icon.dwg{background:rgba(59,76,202,0.20);color:#a5b4fc}
.doc-icon.doc{background:rgba(37,99,235,0.18);color:#1E40AF}

.bid-file-link{color:#1E40AF}
.bid-trade-tag{background:rgba(37,99,235,0.18);color:#1E40AF}

.review-bar{background:#FAFAFA;border:1px solid rgba(0,0,0,0.07)}
.review-label{color:#525252}
.review-btn.draft{background:rgba(231,0,0,0.18);color:#404040;border-color:rgba(231,0,0,0.32)}
.review-btn.reviewed{background:rgba(37,99,235,0.18);color:#1E40AF;border-color:rgba(37,99,235,0.32)}
.review-btn.approved{background:rgba(5,150,105,0.18);color:#047857;border-color:rgba(5,150,105,0.32)}

::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.12)}
::-webkit-scrollbar-thumb:hover{background:var(--kinnect-yellow)}

.login-error{color:#A00000}

.ai-dot{background:var(--kinnect-yellow)}

.stat-card.accent-blue::before{background:#2563eb}
.stat-card.accent-green::before{background:#10b981}
.stat-card.accent-amber::before{background:#E70000}
.stat-card.accent-purple::before{background:#7c3aed}
.stat-card.accent-red::before{background:var(--kinnect-yellow)}

.stat-card.accent-blue .stat-value,
.stat-card.accent-green .stat-value,
.stat-card.accent-amber .stat-value,
.stat-card.accent-purple .stat-value,
.stat-card.accent-red .stat-value{color:#262626}

/* v5.3-specific extras */
.dash-mile-row{background:#FAFAFA !important;border-color:rgba(0,0,0,0.07) !important}
.dash-mile-row.active{background:rgba(231,0,0,0.10) !important;border-color:rgba(231,0,0,0.30) !important}
.to-items-total{background:#FAFAFA;color:#262626;border-top-color:rgba(0,0,0,0.08)}
.to-item-row{background:#FAFAFA;border-left-color:rgba(0,0,0,0.62)}
.to-item-row:hover{background:#F5F5F5}
.to-item-name strong{color:#262626}
.to-item-sub,.to-item-unit{color:#525252}
.to-item-qty{color:#525252}
.to-item-cost{color:var(--kinnect-yellow)}

/* Dashboard widget cards (v5.3) */
.dash-widget,.dash-kpi{background:#FFFFFF;border:1px solid rgba(0,0,0,0.07);box-shadow:0 1px 2px rgba(0,0,0,0.25),0 8px 24px rgba(0,0,0,0.25)}
.dash-sched-item::before{background:#FFFFFF;border:2px solid #52525b}
.dash-sched-item.active::before{background:#FFFFFF;border-color:var(--kinnect-yellow);box-shadow:0 0 0 5px rgba(231,0,0,0.15),0 0 16px rgba(231,0,0,0.35)}
.dash-sched-item.done .dash-sched-item-label{color:#525252;text-decoration:line-through;text-decoration-color:#52525b}
.widget-toggle-switch::after{background:#fafafa}

/* Cost history (v5.3) */
.cost-kpi-card,.cost-search-card,.cost-card{background:#FFFFFF;border:1px solid rgba(0,0,0,0.07);box-shadow:0 1px 2px rgba(0,0,0,0.25),0 8px 24px rgba(0,0,0,0.20);color:#525252}
.cost-search-input,.cost-filter-select{background:#F5F5F5;border:1px solid rgba(0,0,0,0.10);color:#262626}
.cost-search-input:focus,.cost-filter-select:focus{outline:none;border-color:var(--kinnect-yellow);background:#F0F0F0;box-shadow:0 0 0 3px rgba(231,0,0,0.18)}
.cost-search-input::placeholder{color:#525252}
.cost-result-card{background:#FAFAFA;border:1px solid rgba(0,0,0,0.07);color:#525252}
.cost-result-card:hover{border-color:var(--kinnect-yellow);background:#F5F5F5;box-shadow:0 4px 14px rgba(231,0,0,0.10);transform:translateY(-1px)}

/* Bid-tab (v5.3) */
.bidtab-header-card,.bidtab-grid-card{background:#FFFFFF;border:1px solid rgba(0,0,0,0.07);box-shadow:0 1px 2px rgba(0,0,0,0.25),0 8px 24px rgba(0,0,0,0.20);color:#525252}
.bidtab-meta-input{background:#F5F5F5;border:1px solid rgba(0,0,0,0.10);color:#262626}
.bidtab-meta-input:focus{outline:none;border-color:var(--kinnect-yellow);background:#F0F0F0;box-shadow:0 0 0 3px rgba(231,0,0,0.18)}
.bidtab-grid th,.bidtab-grid td{background:#FFFFFF;border-bottom:1px solid rgba(0,0,0,0.06);color:#525252}
.bidtab-grid th{background:#FAFAFA;color:#525252}
.bidtab-grid tr:hover td{background:rgba(0,0,0,0.03)}
.bidtab-bidder-pill{background:#F5F5F5;border:1px solid rgba(0,0,0,0.10);color:#525252}
.bidtab-bidder-pill:hover{background:rgba(0,0,0,0.06);border-color:rgba(0,0,0,0.62)}
.bidtab-low-badge{background:var(--kinnect-yellow);color:var(--kinnect-ink);box-shadow:0 2px 6px rgba(0,0,0,0.4)}
.bt-desc-input,.bt-amt,.bt-unit-input,.bt-notes-cell{background:transparent;color:#525252;border-color:transparent}
.bt-desc-input:focus,.bt-amt:focus,.bt-unit-input:focus,.bt-notes-cell:focus{outline:none;border-color:var(--kinnect-yellow);background:#F5F5F5;color:#262626}
.bt-amt::placeholder,.bt-notes-cell:placeholder-shown{color:#525252}
.bidtab-quickadd-input{background:#F5F5F5;color:#525252;border:1px dashed rgba(0,0,0,0.14)}
.bidtab-quickadd-input:focus{outline:none;border-color:var(--kinnect-yellow);border-style:solid;background:#F0F0F0;box-shadow:0 0 0 3px rgba(231,0,0,0.18)}
.bidtab-row-controls button{color:#525252}
.bidtab-row-controls button:hover{color:var(--kinnect-yellow)}
.bidtab-grid .row-totalbid td{color:var(--kinnect-ink)}

/* AI v2 chat surface (v5.3) */
.ai2-kb-bar{background:#FFFFFF;border:1px solid rgba(0,0,0,0.07);box-shadow:0 1px 2px rgba(0,0,0,0.25);color:#525252}
.ai2-bubble{background:#FAFAFA;border:1px solid rgba(0,0,0,0.07);color:#525252;box-shadow:0 1px 2px rgba(0,0,0,0.25)}
.ai2-msg-user .ai2-bubble{background:var(--kinnect-yellow);color:var(--kinnect-ink);border-color:transparent}
.ai2-suggest-chip{background:#FAFAFA;border:1px solid rgba(0,0,0,0.08);color:#525252}
.ai2-suggest-chip:hover{background:rgba(231,0,0,0.10);border-color:var(--kinnect-yellow);color:#262626}
.ai2-composer{background:#FFFFFF;border:1px solid rgba(0,0,0,0.10);box-shadow:0 1px 2px rgba(0,0,0,0.25),0 8px 24px rgba(0,0,0,0.25)}
.ai2-input{background:transparent;color:#262626;border:none}
.ai2-input::placeholder{color:#525252}

/* Bid package cards (v5.3) */
.bidpkg-card{background:#FFFFFF;border:1px solid rgba(0,0,0,0.07);color:#525252}
.bidpkg-card-status{background:#FFFFFF;border:2px solid rgba(0,0,0,0.16);color:#525252}
.bidpkg-card-name,.bidpkg-card-num,.bidpkg-card-date,.bidpkg-card-desc{background:transparent;color:#262626;border-color:transparent}
.bidpkg-card-name:focus,.bidpkg-card-num:focus,.bidpkg-card-date:focus,.bidpkg-card-desc:focus{outline:none;border:1px solid var(--kinnect-yellow);background:#F5F5F5;color:#262626}

/* Folder subfolder views (v5.3) */
.folder-subfolder-header{background:#FAFAFA;border-bottom:1px solid rgba(0,0,0,0.07)}
.folder-subfolder-name{background:transparent;color:#262626;border-color:transparent}
.folder-subfolder-name:focus{outline:none;border:1px solid var(--kinnect-yellow);background:#F5F5F5;color:#262626}
.folder-subfolder-btn{background:#F5F5F5;border:1px solid rgba(0,0,0,0.10);color:#525252}
.folder-subfolder-btn:hover{background:rgba(231,0,0,0.10);color:var(--kinnect-yellow);border-color:var(--kinnect-yellow)}
.doc-action{color:#525252}
.doc-action:hover{color:var(--kinnect-yellow)}

/* ===========================================================================
   CONTRAST AUDIT — FINAL PASS
   Rules: yellow bg → black text · dark bg → white/light text
          light bg → dark text · muted-on-dark uses #D6D6D6 not med-grey
   =========================================================================== */
html,body{background:var(--bg-dark);color:var(--text-on-dark)}
.app{background:var(--bg-dark);color:var(--text-on-dark)}
.content{color:var(--text-on-dark)}

.topbar{background:#FFFFFF;color:var(--text-on-dark);border-bottom:1px solid var(--border-on-dark)}
.topbar-title{color:var(--text-on-dark)}
.topbar-breadcrumb{color:var(--text-muted-on-dark)}
.topbar-breadcrumb span{color:var(--text-on-dark)}
.topbar-icon-btn{background:transparent;color:var(--text-muted-on-dark);border:1px solid var(--border-on-dark)}
.topbar-icon-btn:hover{background:rgba(0,0,0,0.06);color:var(--color-yellow)}
.topbar-sep{color:var(--text-muted-on-dark)}

.sidebar{background:var(--sidebar);color:#FFFFFF}
.sb-brand{color:#FFFFFF;-webkit-text-fill-color:#FFFFFF;background:none}
.sb-brand-sub{color:rgba(255,255,255,0.55)}
.sb-section{color:rgba(255,255,255,0.40);font-weight:700}
.sb-item{color:rgba(255,255,255,0.65)}
.sb-item:hover{color:#FFFFFF;background:rgba(255,255,255,0.05)}
.sb-item.active{color:#FFFFFF;background:rgba(231,0,0,0.18);border-left-color:var(--color-red)}
.sb-item.active i{color:#FFFFFF}
.sb-item i{color:rgba(255,255,255,0.55)}
.sb-item .sb-badge{background:var(--color-red);color:#FFFFFF}
.sb-avatar{background:var(--color-red);color:#FFFFFF}
.sb-user-name{color:#FFFFFF}
.sb-user-role{color:rgba(255,255,255,0.55)}
.sb-proj-name,.sb-proj-item-name{color:#FFFFFF}
.sb-divider{background:rgba(255,255,255,0.08)}
.sb-user-name{color:var(--text-on-dark)}
.sb-user-role{color:var(--text-muted-on-dark)}
.sb-logout{color:var(--text-muted-on-dark)}
.sb-logout:hover{color:var(--color-yellow)}
.sb-project-label{color:rgba(0,0,0,0.62)}
.sb-proj-name{color:var(--text-on-dark)}
.sb-proj-chevron{color:var(--text-muted-on-dark)}
.sb-proj-item-name{color:var(--text-on-dark)}
.sb-proj-item-type{color:var(--text-muted-on-dark)}
.sb-new-proj{color:var(--text-muted-on-dark)}
.sb-new-proj:hover{color:var(--color-yellow);border-color:var(--color-yellow)}
.sb-company-name{color:var(--text-muted-on-dark)}

.card,.card-sm{background:var(--bg-elevated);color:var(--text-on-dark);border:1px solid var(--border-on-dark)}
.card-title{color:var(--text-on-dark)}
.card-title i{color:var(--text-muted-on-dark)}
.card-action{color:var(--text-on-dark);font-weight:700;background:none;border:none}
.card-action:hover{color:var(--color-yellow);text-decoration:underline}

.page-title{color:var(--text-on-dark)}
.page-sub{color:var(--text-muted-on-dark)}
.data-section-title{color:var(--text-muted-on-dark);border-bottom:1px solid var(--border-on-dark)}

.divider{background:var(--border-on-dark)}

.btn-primary{background:var(--color-yellow);color:var(--text-on-yellow);font-weight:700}
.btn-primary:hover{background:#E70000;color:var(--text-on-yellow)}
.btn-primary:active{background:#C40000;color:var(--text-on-yellow)}
.btn-primary:focus{outline:2px solid #E70000;outline-offset:2px;color:var(--text-on-yellow)}
.btn-primary:disabled{background:rgba(231,0,0,0.45);color:rgba(0,0,0,0.68);cursor:not-allowed}
.btn-outline{background:transparent;color:var(--text-on-dark);border:1px solid var(--border-strong-on-dark)}
.btn-outline:hover{background:rgba(0,0,0,0.06);color:var(--text-on-dark);border-color:var(--color-yellow)}
.btn-outline:focus{outline:2px solid var(--color-yellow);outline-offset:2px}
.btn-ghost{background:transparent;color:var(--text-muted-on-dark)}
.btn-ghost:hover{background:rgba(0,0,0,0.06);color:var(--text-on-dark)}
.btn-danger{background:rgba(231,0,0,0.10);color:var(--color-yellow);border:1px solid rgba(231,0,0,0.30)}
.btn-danger:hover{background:rgba(231,0,0,0.16);color:var(--color-yellow)}
.btn-blue{background:#2563eb;color:var(--text-on-dark)}
.btn-blue:hover{background:#1d4ed8;color:var(--text-on-dark)}

.form-group label,.form-label{color:var(--text-muted-on-dark)}
.form-input,.form-select,.form-textarea,.chat-input,.scope-add-input,.bid-num-input{background:var(--bg-elevated-2);color:var(--text-on-dark);border:1px solid var(--border-on-dark)}
.form-input::placeholder,.form-textarea::placeholder,.chat-input::placeholder,.scope-add-input::placeholder{color:#8A8A8A}
.form-input:focus,.form-select:focus,.form-textarea:focus,.chat-input:focus,.scope-add-input:focus,.bid-num-input:focus{background:var(--bg-elevated-2);color:var(--text-on-dark);border-color:var(--color-yellow);box-shadow:0 0 0 3px rgba(231,0,0,0.20);outline:none}
.form-input:disabled,.form-select:disabled,.form-textarea:disabled{background:rgba(0,0,0,0.04);color:var(--text-muted-on-dark);cursor:not-allowed}
.login-error{color:#A00000}

.tbl,.sub-table,.bid-table{color:var(--text-on-dark)}
.tbl th,.sub-table th,.bid-table th{background:var(--bg-elevated-2);color:var(--text-muted-on-dark);border-bottom:1px solid var(--border-on-dark)}
.tbl td,.sub-table td,.bid-table td{color:var(--text-on-dark);border-bottom:1px solid rgba(0,0,0,0.06)}
.tbl tr:hover td,.sub-table tr:hover td,.bid-table tr:hover td{background:rgba(0,0,0,0.03)}
.tbl-link{color:var(--text-on-dark);font-weight:700;border-bottom:2px solid var(--color-yellow);padding-bottom:1px}
.tbl-link:hover{color:var(--color-yellow);border-bottom-color:var(--color-yellow);text-decoration:none}
.fw-700,.fw-600{color:var(--text-on-dark)}
.text-red{color:var(--color-yellow)}
.text-muted{color:var(--text-muted-on-dark)}

.ai-tabs,.sub-tabs{background:var(--bg-elevated-2)}
.ai-tab,.sub-tab{color:var(--text-muted-on-dark);background:transparent}
.ai-tab:hover:not(.active),.sub-tab:hover:not(.active){color:var(--text-on-dark)}
.ai-tab.active,.sub-tab.active{background:var(--bg-elevated);color:var(--text-on-dark);box-shadow:inset 0 -2px 0 var(--color-yellow),var(--shadow-sm)}
.sub-tab.active i{color:var(--color-yellow)}
.sub-tab .count-pill{background:rgba(0,0,0,0.12);color:var(--text-on-dark)}
.sub-tab.active .count-pill{background:var(--color-yellow);color:var(--text-on-yellow)}

.tag{color:var(--text-on-dark)}
.tag-gray{background:rgba(0,0,0,0.08);color:var(--text-muted-on-dark)}
.tag-blue{background:rgba(37,99,235,0.18);color:#1E40AF}
.tag-green{background:rgba(5,150,105,0.18);color:#047857}
.tag-yellow{background:rgba(231,0,0,0.14);color:var(--color-yellow)}
.tag-purple{background:rgba(124,58,237,0.18);color:#6B21A8}
.tag-orange{background:rgba(231,0,0,0.18);color:#404040}
.tag-red{background:rgba(231,0,0,0.14);color:var(--color-yellow)}

.status-badge{color:var(--text-on-dark)}
.s-pursuit{background:rgba(231,0,0,0.20);color:#404040}
.s-active{background:rgba(5,150,105,0.18);color:#047857}
.s-awarded{background:rgba(37,99,235,0.18);color:#1E40AF}
.s-concept{background:rgba(231,0,0,0.18);color:#404040}
.s-precon{background:rgba(231,0,0,0.12);color:var(--color-yellow)}
.s-budget{background:rgba(5,150,105,0.18);color:#047857}
.s-dd{background:rgba(124,58,237,0.18);color:#6B21A8}

.dash-stat{position:relative;overflow:hidden}
.dash-stat.ds-primary{background:
  radial-gradient(circle 70px at 92% 92%,rgba(231,0,0,0.16) 0%,rgba(231,0,0,0.05) 55%,transparent 80%),
  radial-gradient(circle 55px at 78% 80%,rgba(231,0,0,0.12) 0%,rgba(231,0,0,0.03) 55%,transparent 80%),
  var(--bg-elevated);border:1px solid var(--border-on-dark)}
.dash-stat.ds-primary .ds-label{color:var(--text-muted-on-dark)}
.dash-stat.ds-primary .ds-value{color:var(--text-on-dark)}
.dash-stat.ds-primary .ds-sub{color:var(--text-muted-on-dark)}
.dash-stat.ds-primary .stat-icon{color:rgba(0,0,0,0.05)}
.dash-stat.ds-accent{background:
  radial-gradient(circle 80px at 92% 92%,rgba(231,0,0,0.24) 0%,rgba(231,0,0,0.08) 55%,transparent 80%),
  radial-gradient(circle 60px at 75% 80%,rgba(231,0,0,0.16) 0%,rgba(231,0,0,0.04) 55%,transparent 80%),
  var(--bg-elevated);border:1px solid rgba(231,0,0,0.32);box-shadow:inset 0 0 0 1px rgba(231,0,0,0.10),0 1px 2px rgba(0,0,0,0.25)}
.dash-stat.ds-accent::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--color-yellow);z-index:1}
.dash-stat.ds-accent .ds-label{color:var(--color-yellow)}
.dash-stat.ds-accent .ds-value{color:var(--text-on-dark)}
.dash-stat.ds-accent .ds-sub{color:var(--text-muted-on-dark)}
.dash-stat.ds-accent .stat-icon{color:rgba(231,0,0,0.12)}
.dash-stat.ds-light{background:
  radial-gradient(circle 65px at 92% 92%,rgba(231,0,0,0.12) 0%,rgba(231,0,0,0.03) 55%,transparent 80%),
  var(--bg-elevated);border:1px solid var(--border-on-dark);border-left:3px solid var(--color-yellow)}
.dash-stat.ds-light .ds-label{color:var(--text-muted-on-dark)}
.dash-stat.ds-light .ds-value{color:var(--text-on-dark)}
.dash-stat.ds-light .ds-sub{color:var(--text-muted-on-dark)}
.dash-stat.ds-light .stat-icon{color:rgba(0,0,0,0.05)}

.stat-card{background:
  radial-gradient(circle 70px at 92% 92%,rgba(231,0,0,0.12) 0%,rgba(231,0,0,0.04) 55%,transparent 80%),
  var(--bg-elevated);border:1px solid var(--border-on-dark);color:var(--text-on-dark)}
.stat-label{color:var(--text-muted-on-dark)}
.stat-value,.stat-value-sm{color:var(--text-on-dark)}
.stat-sub{color:var(--text-muted-on-dark)}
.stat-card.accent-blue::before{background:#2563eb}
.stat-card.accent-green::before{background:#10b981}
.stat-card.accent-amber::before{background:#E70000}
.stat-card.accent-purple::before{background:#7c3aed}
.stat-card.accent-red::before{background:var(--color-yellow)}
.stat-card.accent-blue .stat-value,
.stat-card.accent-green .stat-value,
.stat-card.accent-amber .stat-value,
.stat-card.accent-purple .stat-value,
.stat-card.accent-red .stat-value{color:var(--text-on-dark)}

.modal-overlay{background:rgba(0,0,0,0.7)}
.modal{background:
  radial-gradient(circle 140px at 100% 100%,rgba(231,0,0,0.10) 0%,rgba(231,0,0,0.03) 55%,transparent 80%),
  var(--bg-elevated);color:var(--text-on-dark);box-shadow:0 24px 60px rgba(0,0,0,0.6)}
.modal-title{color:var(--text-on-dark)}
.modal-sub{color:var(--text-muted-on-dark)}
.modal-close{color:var(--text-muted-on-dark)}
.modal-close:hover{color:var(--color-yellow)}
.modal-footer{border-top:1px solid var(--border-on-dark)}

.toast{background:var(--bg-elevated-2);color:var(--text-on-dark);border:1px solid var(--border-on-dark)}
.toast i{color:var(--color-yellow)}

.note-box{background:rgba(231,0,0,0.08);border:1px solid rgba(231,0,0,0.22);color:var(--color-yellow)}
.note-box i{color:var(--color-yellow)}
.info-box{background:rgba(37,99,235,0.10);border:1px solid rgba(37,99,235,0.30);color:#1E40AF}
.info-box i{color:#1E40AF}
.info-box strong{color:var(--text-on-dark)}

.empty-state{color:var(--text-muted-on-dark)}
.empty-state i{color:var(--text-muted-on-dark)}
.empty-state p{color:var(--text-muted-on-dark)}

.company-overlay{background:var(--bg-dark);color:var(--text-on-dark)}
.company-eyebrow{color:var(--color-yellow)}
.company-sub{color:var(--text-muted-on-dark)}
.company-card{background:#FFFFFF;color:var(--text-on-dark);border:1px solid var(--border-on-dark)}
.company-card-name{color:var(--text-on-dark)}
.company-card-sub{color:var(--text-muted-on-dark)}
.company-footer{color:rgba(0,0,0,0.62)}
.company-logo-mark{background:var(--color-yellow)}
.company-logo-mark i{color:var(--text-on-yellow)}

.login-overlay{background:var(--bg-dark);color:var(--text-on-dark)}
.login-back{color:var(--text-muted-on-dark)}
.login-back:hover{color:var(--color-yellow)}
.login-box{background:
  radial-gradient(circle 120px at 95% 95%,rgba(231,0,0,0.16) 0%,rgba(231,0,0,0.04) 55%,transparent 80%),
  #FFFFFF;color:var(--text-on-dark);border:1px solid var(--border-on-dark)}
.login-title{color:var(--text-on-dark)}
.login-desc{color:var(--text-muted-on-dark)}
.login-label{color:var(--text-muted-on-dark)}
.login-input{background:rgba(0,0,0,0.05);color:var(--text-on-dark);border:1px solid var(--border-on-dark)}
.login-input::placeholder{color:#8A8A8A}
.login-input:focus{border-color:var(--color-yellow);box-shadow:0 0 0 3px rgba(231,0,0,0.20);outline:none}
.login-btn{background:var(--color-yellow);color:var(--text-on-yellow);font-weight:700}
.login-btn:hover{background:#E70000;color:var(--text-on-yellow)}
.login-company-badge{background:rgba(0,0,0,0.04);border:1px solid var(--border-on-dark)}
.login-company-name{color:var(--text-on-dark)}
.login-company-sub{color:var(--text-muted-on-dark)}
.login-users-label{color:rgba(0,0,0,0.62)}
.login-user-row{color:var(--text-muted-on-dark)}
.login-user-row span:first-child{color:var(--text-on-dark)}
.login-user-role{background:rgba(0,0,0,0.06);color:var(--text-muted-on-dark)}

.dash-header{background:
  radial-gradient(circle 280px at 95% 95%,rgba(255,255,255,0.18) 0%,rgba(255,255,255,0.05) 55%,transparent 80%),
  radial-gradient(circle 180px at 12% 20%,rgba(255,255,255,0.12) 0%,transparent 70%),
  radial-gradient(circle 120px at 55% 90%,rgba(255,255,255,0.08) 0%,transparent 70%),
  #E70000;border:1px solid rgba(255,255,255,0.12)}
.dash-proj-eyebrow{color:rgba(255,255,255,0.78)}
.dash-proj-name{color:#FFFFFF}
.dash-proj-meta{color:rgba(255,255,255,0.92)}
.dash-header-btn{background:rgba(255,255,255,0.14);border:1px solid rgba(255,255,255,0.22);color:#FFFFFF}
.dash-header-btn:hover{background:#FFFFFF;color:#E70000;border-color:#FFFFFF}
.dash-pursuit-ribbon{background:#FFFFFF;color:#E70000}
.dash-awarded-ribbon{background:#FFFFFF;color:#E70000}

.ai-narrative-inner{background:
  radial-gradient(circle 90px at 95% 92%,rgba(231,0,0,0.14) 0%,rgba(231,0,0,0.04) 55%,transparent 80%),
  var(--bg-elevated);border:1px solid var(--border-on-dark);color:var(--text-on-dark)}
.ai-narrative-inner::before{background:linear-gradient(90deg,var(--color-yellow),rgba(231,0,0,0))}
.ai-narrative-eyebrow{color:var(--text-muted-on-dark)}
.ai-narrative-eyebrow i{color:var(--text-muted-on-dark)}
.ai-narrative-eyebrow::after{background:var(--border-on-dark)}
.ai-narrative-text{color:var(--text-muted-on-dark)}
.ai-narrative-text strong{color:var(--text-on-dark)}
.ai-narrative-footer{color:rgba(0,0,0,0.62)}
.ai-narrative-footer i{color:rgba(0,0,0,0.62)}

.ai-chip{background:var(--bg-elevated-2);color:var(--text-on-dark);border:1px solid var(--border-on-dark)}
.ai-chip:hover{background:rgba(231,0,0,0.10);border-color:var(--color-yellow);color:var(--text-on-dark)}
.ai-chip i{color:var(--color-yellow)}
.ai-chip-label{color:var(--text-on-dark)}
.ai-chip-sub{color:var(--text-muted-on-dark)}
.ai-chip-arrow{color:var(--text-muted-on-dark)}

.chat-container{border:1px solid var(--border-on-dark)}
.chat-messages{background:var(--bg-dark)}
.chat-msg.user{background:var(--color-yellow);color:var(--text-on-yellow)}
.chat-msg.ai{background:var(--bg-elevated-2);color:var(--text-on-dark);border:1px solid var(--border-on-dark)}
.chat-msg.ai .chat-sender{color:var(--color-yellow)}
.chat-input-row{background:var(--bg-elevated);border-top:1px solid var(--border-on-dark)}
.chat-send-btn{background:var(--color-yellow);color:var(--text-on-yellow)}
.chat-send-btn:hover{background:#E70000;color:var(--text-on-yellow)}
.ai-ctx-bar{background:linear-gradient(90deg,var(--bg-dark),var(--bg-elevated));color:var(--text-on-dark)}
.ai-ctx-bar-label{color:rgba(0,0,0,0.62)}
.ai-ctx-bar-text{color:var(--text-muted-on-dark)}
.ai-ctx-pill{background:rgba(231,0,0,0.18);color:var(--color-yellow);border:1px solid rgba(231,0,0,0.30)}
.ai-dot{background:var(--color-yellow)}
.ai-response-box{background:var(--bg-elevated-2);color:var(--text-on-dark);border:1px solid var(--border-on-dark)}

.proj-card{background:var(--bg-elevated);color:var(--text-on-dark);border:1px solid var(--border-on-dark)}
.proj-card-header{background:var(--bg-elevated-2);color:var(--text-on-dark)}
.proj-card-type{color:var(--text-muted-on-dark)}
.proj-card-name{color:var(--text-on-dark)}
.proj-card.active-card{border-color:var(--color-yellow)}
.proj-card.active-card .proj-card-header{background:var(--color-yellow);color:var(--text-on-yellow)}
.proj-card.active-card .proj-card-type{color:rgba(0,0,0,0.65)}
.proj-card.active-card:not(.pursuit):not(.awarded) .proj-card-name{color:var(--text-on-yellow)}
.proj-card.pursuit .proj-card-header{background:#FFE5E5;color:var(--text-on-dark)}
.proj-card.awarded .proj-card-header{background:#DBEAFE;color:var(--text-on-dark)}
.proj-card-meta-row{border-bottom:1px solid rgba(0,0,0,0.06)}
.proj-card-meta-label{color:var(--text-muted-on-dark)}
.proj-card-meta-val{color:var(--text-on-dark)}
.proj-card-footer{background:var(--bg-elevated-2);border-top:1px solid var(--border-on-dark);color:var(--text-on-dark)}

.drawing-set-card,.invited-card,.bid-pkg-card,.planroom-folder,.takeoff-set-card{background:var(--bg-elevated);color:var(--text-on-dark);border:1px solid var(--border-on-dark)}
.drawing-set-header,.invited-header,.bid-pkg-header,.planroom-folder-header{background:var(--bg-elevated-2);color:var(--text-on-dark);border-bottom:1px solid var(--border-on-dark)}
.drawing-set-name,.invited-trade-name,.bid-pkg-name,.planroom-folder-name{color:var(--text-on-dark)}
.drawing-set-meta,.bid-pkg-meta,.invited-stat{color:var(--text-muted-on-dark)}
.drawing-set-toggle,.bid-pkg-toggle{color:var(--text-muted-on-dark)}
.doc-item,.takeoff-file-item,.handoff-item{background:var(--bg-elevated-2);color:var(--text-on-dark);border:1px solid var(--border-on-dark)}
.doc-name,.handoff-item-label{color:var(--text-on-dark)}
.doc-date{color:var(--text-muted-on-dark)}
.doc-del{color:var(--text-muted-on-dark)}
.doc-del:hover{color:var(--color-yellow)}
.doc-icon.pdf{background:rgba(231,0,0,0.16);color:var(--color-yellow)}
.doc-icon.xls{background:rgba(5,150,105,0.18);color:#047857}
.doc-icon.dwg{background:rgba(59,76,202,0.20);color:#a5b4fc}
.doc-icon.doc{background:rgba(37,99,235,0.18);color:#1E40AF}
.bid-pkg-icon{background:rgba(231,0,0,0.16);color:var(--color-yellow)}
.bid-pkg-count{background:var(--color-yellow);color:var(--text-on-yellow)}
.bid-amount{color:var(--color-yellow)}
.bid-low{background:rgba(5,150,105,0.10) !important;border-left:3px solid #10b981 !important}
.bid-low .bid-amount{color:#047857}
.bid-file-link{color:#1E40AF}
.bid-trade-tag{background:rgba(37,99,235,0.18);color:#1E40AF}
.bid-summary-bar{background:var(--bg-elevated-2);border:1px solid var(--border-on-dark)}
.bid-summary-label{color:var(--text-muted-on-dark)}
.bid-summary-val{color:var(--text-on-dark)}
.bid-summary-val.low{color:#047857}
.bid-summary-val.high{color:var(--color-yellow)}
.bid-rm{color:var(--text-muted-on-dark)}
.bid-rm:hover{color:var(--color-yellow)}
.planroom-file{color:var(--text-on-dark)}
.planroom-file:hover{background:rgba(0,0,0,0.04)}
.planroom-empty{color:var(--text-muted-on-dark)}
.planroom-folder-icon{color:var(--color-yellow)}
.planroom-share-btn{background:rgba(0,0,0,0.06);color:var(--text-muted-on-dark);border:1px solid var(--border-on-dark)}
.planroom-share-btn:hover{background:rgba(231,0,0,0.10);color:var(--color-yellow);border-color:var(--color-yellow)}
.planroom-share-btn.shared{background:rgba(5,150,105,0.18);color:#047857;border-color:rgba(5,150,105,0.32)}

.activity-row{border-bottom:1px solid rgba(0,0,0,0.06);color:var(--text-on-dark)}
.activity-time{color:var(--text-muted-on-dark)}
.activity-text{color:var(--text-muted-on-dark)}
.activity-text strong{color:var(--text-on-dark)}
.act-icon{background:rgba(0,0,0,0.06);color:rgba(0,0,0,0.62)}
.act-icon.done{background:rgba(5,150,105,0.20);color:#047857}
.act-icon.done.email{background:rgba(37,99,235,0.20);color:#1E40AF}
.act-icon.done.download{background:rgba(231,0,0,0.16);color:var(--color-yellow)}
.ai-invite{background:rgba(37,99,235,0.18);color:#1E40AF}
.ai-open{background:rgba(231,0,0,0.18);color:#404040}
.ai-download{background:rgba(231,0,0,0.16);color:var(--color-yellow)}
.ai-bid{background:rgba(5,150,105,0.18);color:#047857}

.user-row{border-bottom:1px solid rgba(0,0,0,0.06);color:var(--text-on-dark)}
.user-name{color:var(--text-on-dark)}
.user-email{color:var(--text-muted-on-dark)}
.role-badge{color:var(--text-on-dark)}
.role-admin{background:rgba(231,0,0,0.14);color:var(--color-yellow)}
.role-pm{background:rgba(5,150,105,0.20);color:#047857}
.role-estimator{background:rgba(37,99,235,0.18);color:#1E40AF}
.role-architect{background:rgba(124,58,237,0.18);color:#6B21A8}

.integration-card{background:var(--bg-elevated);border:1px solid var(--border-on-dark);color:var(--text-on-dark)}
.int-name{color:var(--text-on-dark)}
.int-desc{color:var(--text-muted-on-dark)}
.int-connected{color:#047857}

.scope-item-row{border-bottom:1px solid rgba(0,0,0,0.06)}
.scope-item-text{color:var(--text-on-dark)}
.scope-rm{color:var(--text-muted-on-dark)}
.scope-rm:hover{color:var(--color-yellow)}
.scope-pkg-chip{background:var(--bg-elevated-2);color:var(--text-on-dark);border:1.5px solid var(--border-on-dark)}
.scope-pkg-chip:hover{border-color:var(--border-strong-on-dark);color:var(--text-on-dark)}
.scope-pkg-chip.selected{background:rgba(231,0,0,0.12);color:var(--color-yellow);border-color:var(--color-yellow)}
.scope-pkg-count{background:rgba(0,0,0,0.10);color:var(--text-muted-on-dark)}
.scope-pkg-chip.selected .scope-pkg-count{background:var(--color-yellow);color:var(--text-on-yellow)}

.rfi-status{color:var(--text-on-dark)}
.rfi-open{background:rgba(231,0,0,0.14);color:var(--color-yellow)}
.rfi-sent{background:rgba(231,0,0,0.18);color:#404040}
.rfi-answered{background:rgba(5,150,105,0.18);color:#047857}
.rfi-closed{background:rgba(0,0,0,0.06);color:var(--text-muted-on-dark)}

.handoff-status{color:var(--text-on-dark)}
.hs-ready{background:rgba(5,150,105,0.18);color:#047857}
.hs-draft{background:rgba(231,0,0,0.18);color:#404040}
.hs-linked{background:rgba(37,99,235,0.18);color:#1E40AF}
.hs-notready{background:rgba(231,0,0,0.14);color:var(--color-yellow)}

.qual-badge{color:var(--text-on-dark)}
.qual-yes{background:rgba(5,150,105,0.18);color:#047857}
.qual-no{background:rgba(0,0,0,0.08);color:var(--text-muted-on-dark)}
.qual-pref{background:rgba(231,0,0,0.14);color:var(--color-yellow)}

.csi-tag{background:rgba(37,99,235,0.18);color:#1E40AF}
.loc-tag{background:rgba(0,0,0,0.08);color:var(--text-muted-on-dark)}

.review-bar{background:var(--bg-elevated-2);border:1px solid var(--border-on-dark)}
.review-label{color:var(--text-muted-on-dark)}
.review-btn.draft{background:rgba(231,0,0,0.18);color:#404040;border:1px solid rgba(231,0,0,0.32)}
.review-btn.reviewed{background:rgba(37,99,235,0.18);color:#1E40AF;border:1px solid rgba(37,99,235,0.32)}
.review-btn.approved{background:rgba(5,150,105,0.18);color:#047857;border:1px solid rgba(5,150,105,0.32)}

.cost-filter-btn{background:var(--bg-elevated-2);border:1px solid var(--border-on-dark);color:var(--text-muted-on-dark)}
.cost-filter-btn:hover:not(.active){background:rgba(0,0,0,0.06);color:var(--text-on-dark);border-color:var(--border-strong-on-dark)}
.cost-filter-btn.active{background:var(--color-yellow);color:var(--text-on-yellow);border-color:var(--color-yellow)}

.division-item{background:var(--bg-elevated-2);border:1px solid var(--border-on-dark);color:var(--text-on-dark)}
.div-label{color:var(--text-muted-on-dark)}
.div-val{color:var(--text-on-dark)}

.sub-pick-list{border:1px solid var(--border-on-dark)}
.sub-pick-row{border-bottom:1px solid rgba(0,0,0,0.06);color:var(--text-on-dark)}
.sub-pick-row:hover{background:rgba(0,0,0,0.04)}
.sub-pick-row.selected{background:rgba(231,0,0,0.10)}
.sub-pick-name{color:var(--text-on-dark)}
.sub-pick-meta{color:var(--text-muted-on-dark)}
.sub-checkbox{accent-color:var(--color-yellow)}

.invited-sub-row{border-bottom:1px solid rgba(0,0,0,0.06);color:var(--text-on-dark)}
.invited-sub-row:hover{background:rgba(0,0,0,0.04)}
.invited-sub-name .sub-co-name{color:var(--text-on-dark)}
.invited-sub-name .sub-co-loc{color:var(--text-muted-on-dark)}

.upload-drop{border:2px dashed var(--border-strong-on-dark);color:var(--text-muted-on-dark)}
.upload-drop:hover{border-color:var(--color-yellow);background:rgba(231,0,0,0.06)}
.upload-drop i{color:var(--text-muted-on-dark)}
.upload-drop:hover i{color:var(--color-yellow)}
.upload-drop-text{color:var(--text-muted-on-dark)}
.upload-drop-sub{color:rgba(0,0,0,0.62)}

.est-row{background:rgba(0,0,0,0.03);color:var(--text-on-dark)}
.est-row.target{background:rgba(231,0,0,0.10)}
.est-label{color:var(--text-muted-on-dark)}
.est-val{color:var(--text-on-dark)}
.est-row.target .est-val{color:var(--color-yellow)}

.info-field-label{color:var(--text-muted-on-dark)}
.info-field-value{color:var(--text-on-dark)}

.prog-bar{background:rgba(0,0,0,0.08)}
.prog-fill{background:var(--color-yellow)}

::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.12)}
::-webkit-scrollbar-thumb:hover{background:var(--color-yellow)}

/* v5.3 specific KPI feature tiles — yellow surface = black text */
.dash-kpi-feature,.dash-kpi-feature *{color:var(--text-on-yellow)}
.dash-kpi-feature .dash-kpi-label,.dash-kpi-feature .dash-kpi-sub{color:rgba(0,0,0,0.65)}
.bidtab-budget-tile,.bidtab-budget-tile *{color:var(--text-on-yellow)}
.bidtab-budget-tile .bidtab-budget-label,.bidtab-budget-tile .bidtab-budget-sub{color:rgba(0,0,0,0.65)}
.bidtab-grid .row-totalbid td{color:var(--text-on-yellow)}
.bidtab-low-badge{background:var(--color-yellow);color:var(--text-on-yellow)}
.cost-kpi-icon{background:var(--color-yellow);color:var(--text-on-yellow)}
.ai2-avatar{background:var(--color-yellow);color:var(--text-on-yellow)}
.ai2-bubble-user,.ai2-msg-user .ai2-bubble{background:var(--color-yellow);color:var(--text-on-yellow)}
.ai2-msg-user .ai2-bubble *,.ai2-bubble-user *{color:var(--text-on-yellow)}
.ai2-send{background:var(--color-yellow);color:var(--text-on-yellow)}

/* Generic safety nets */
strong,b{color:inherit}
small{color:inherit}
a:not([class]){color:var(--color-yellow)}
a:not([class]):hover{color:#E70000}

/* ===========================================================================
   v5.3 — REMAINING DARK-ON-DARK / LIGHT-ON-LIGHT FIXES
   =========================================================================== */

/* Dashboard milestone rows */
.dash-mile-row{background:var(--bg-elevated-2) !important;border:1px solid var(--border-on-dark) !important;color:var(--text-on-dark)}
.dash-mile-row.done{background:rgba(5,150,105,0.10) !important;border-color:rgba(5,150,105,0.30) !important}
.dash-mile-row.active{background:rgba(231,0,0,0.10) !important;border-color:rgba(231,0,0,0.30) !important}
.dash-mile-row.upcoming{background:var(--bg-elevated-2) !important}
.dash-mile-dot{background:var(--text-muted-on-dark)}
.dash-mile-row.done .dash-mile-dot{background:#6ee7b7}
.dash-mile-row.active .dash-mile-dot{background:var(--color-yellow);box-shadow:0 0 0 4px rgba(231,0,0,0.20)}
.dash-mile-label{color:var(--text-on-dark) !important}
.dash-mile-row.done .dash-mile-label{color:#047857 !important}
.dash-mile-row.active .dash-mile-label{color:var(--color-yellow) !important;font-weight:600}
.dash-mile-date{color:var(--text-muted-on-dark) !important}
.dash-mile-row.done .dash-mile-date{color:#047857 !important}
.dash-mile-row.active .dash-mile-date{color:var(--color-yellow) !important;font-weight:700}

/* Dashboard decision rows */
.dash-dec-row{border-bottom:1px solid rgba(0,0,0,0.06) !important}
.dash-dec-num{color:var(--color-yellow) !important;background:rgba(231,0,0,0.08)}
.dash-dec-text{color:var(--text-on-dark) !important}
.dash-dec-meta{color:var(--text-muted-on-dark) !important}
.dash-dec-tag.rfi{background:rgba(231,0,0,0.16) !important;color:var(--color-yellow) !important}
.dash-dec-tag.ve{background:rgba(124,58,237,0.20) !important;color:#6B21A8 !important}

/* Dashboard status chips */
.dash-status-chip{background:rgba(0,0,0,0.08);color:var(--text-muted-on-dark);border:1px solid var(--border-on-dark)}
.dash-status-chip.pursuit{color:#404040}
.dash-status-chip.awarded{color:#1E40AF}
.dash-status-chip.active{color:#047857}

/* Role pills with light bg in base */
.role-owner{background:rgba(0,0,0,0.08) !important;color:var(--text-on-dark) !important}
.role-sub{background:rgba(8,145,178,0.20) !important;color:#67e8f9 !important}

/* Bid package cards */
.bidpkg-card{background:var(--bg-elevated) !important;color:var(--text-on-dark) !important;border:1px solid var(--border-on-dark) !important}
.bidpkg-card.active{background:rgba(231,0,0,0.06) !important;border-color:var(--color-yellow) !important;box-shadow:0 0 0 2px rgba(231,0,0,0.10)}
.bidpkg-card-status{background:var(--bg-elevated) !important;border:2px solid var(--border-strong-on-dark) !important;color:var(--text-muted-on-dark) !important}
.bidpkg-card-status:hover{border-color:var(--color-yellow) !important;color:var(--color-yellow) !important}
.bidpkg-card-status.on{background:var(--color-yellow) !important;border-color:var(--color-yellow) !important;color:var(--text-on-yellow) !important}
.bidpkg-card-name{color:var(--text-on-dark) !important;background:transparent !important;border:1px solid transparent}
.bidpkg-card-name:focus{outline:none;border:1px solid var(--color-yellow) !important;background:var(--bg-elevated-2) !important;color:var(--text-on-dark) !important}
.bidpkg-card-num,.bidpkg-card-date{color:var(--text-on-dark) !important;background:transparent !important;border:1px solid transparent}
.bidpkg-card-num:focus,.bidpkg-card-date:focus{outline:none;border:1px solid var(--color-yellow) !important;background:var(--bg-elevated-2) !important;color:var(--text-on-dark) !important}
.bidpkg-card-desc{color:var(--text-muted-on-dark) !important;background:transparent !important;border:1px solid transparent}
.bidpkg-card-desc:focus{outline:none;border:1px solid var(--color-yellow) !important;background:var(--bg-elevated-2) !important;color:var(--text-on-dark) !important}
.bidpkg-card-meta,.bidpkg-card-label{color:var(--text-muted-on-dark) !important}

/* Cost result/detail */
.cost-result-card{background:var(--bg-elevated-2) !important;border:1px solid var(--border-on-dark) !important;color:var(--text-on-dark) !important}
.cost-result-card:hover{background:var(--bg-elevated-2) !important;border-color:var(--color-yellow) !important;box-shadow:0 4px 14px rgba(231,0,0,0.12)}
.cost-result-name{color:var(--text-on-dark) !important}
.cost-result-meta{color:var(--text-muted-on-dark) !important}
.cost-result-recent{color:var(--text-muted-on-dark) !important}
.cost-result-avg{color:var(--color-yellow) !important}
.cost-result-unit{color:var(--text-muted-on-dark) !important}
.cost-detail-stat{background:var(--bg-elevated-2) !important;border:1px solid var(--border-on-dark) !important;color:var(--text-on-dark) !important}
.cost-detail-stat-label{color:var(--text-muted-on-dark) !important}
.cost-detail-stat-value{color:var(--text-on-dark) !important}
.cost-detail-stat-unit{color:var(--text-muted-on-dark) !important}

/* AI v2 KB chips */
.ai2-kb-chip{background:var(--bg-elevated-2) !important;color:var(--text-on-dark) !important;border:1px solid var(--border-on-dark) !important}
.ai2-kb-chip:hover{background:rgba(231,0,0,0.10) !important;border-color:var(--color-yellow) !important;color:var(--text-on-dark) !important}
.ai2-kb-chip i{color:var(--color-yellow) !important}
.ai2-kb-chip.ai2-kb-est i{color:#047857 !important}

/* Folder structure */
.folder-subfolder-header{background:var(--bg-elevated-2) !important;border-bottom:1px solid var(--border-on-dark) !important;color:var(--text-on-dark) !important}
.folder-subfolder-name{background:transparent !important;color:var(--text-on-dark) !important;border-color:transparent}
.folder-subfolder-name:focus{outline:none;border:1px solid var(--color-yellow) !important;background:var(--bg-elevated-2) !important;color:var(--text-on-dark) !important}
.folder-subfolder-btn{background:var(--bg-elevated-2) !important;border:1px solid var(--border-on-dark) !important;color:var(--text-muted-on-dark) !important}
.folder-subfolder-btn:hover{background:rgba(231,0,0,0.10) !important;color:var(--color-yellow) !important;border-color:var(--color-yellow) !important}
.folder-subfolder-meta,.folder-subfolder-icon{color:var(--text-muted-on-dark) !important}

/* Bid tag chips */
.bt-tag{color:var(--text-on-dark)}
.bt-tag.y{background:rgba(5,150,105,0.18) !important;color:#047857 !important}
.bt-tag.n{background:rgba(231,0,0,0.16) !important;color:var(--color-yellow) !important}
.bt-tag.a{background:rgba(231,0,0,0.18) !important;color:#404040 !important}
.bt-tag.none{background:rgba(0,0,0,0.06) !important;color:var(--text-muted-on-dark) !important}

/* Bid-tab specific inputs/cells */
.bidtab-meta-input{background:var(--bg-elevated-2) !important;color:var(--text-on-dark) !important;border:1px solid var(--border-on-dark) !important}
.bidtab-meta-input:focus{outline:none;border-color:var(--color-yellow) !important;background:var(--bg-elevated-2) !important;color:var(--text-on-dark) !important;box-shadow:0 0 0 3px rgba(231,0,0,0.20)}
.bidtab-meta-label{color:var(--text-muted-on-dark) !important}
.bidtab-meta-value{color:var(--text-on-dark) !important}
.bidtab-header-card{background:var(--bg-elevated) !important;border:1px solid var(--border-on-dark) !important;color:var(--text-on-dark) !important}
.bidtab-grid-card{background:var(--bg-elevated) !important;border:1px solid var(--border-on-dark) !important;color:var(--text-on-dark) !important}
.bidtab-grid th{background:var(--bg-elevated-2) !important;color:var(--text-muted-on-dark) !important;border-bottom:1px solid var(--border-on-dark) !important}
.bidtab-grid td{background:var(--bg-elevated) !important;border-bottom:1px solid rgba(0,0,0,0.06) !important;color:var(--text-on-dark) !important}
.bidtab-grid tr:hover td{background:var(--bg-elevated-2) !important}
.bidtab-grid .row-totalbid td{background:var(--color-yellow) !important;color:var(--text-on-yellow) !important;border-bottom:none !important}
.bidtab-bidder-pill{background:var(--bg-elevated-2) !important;border:1px solid var(--border-on-dark) !important;color:var(--text-on-dark) !important}
.bidtab-bidder-pill:hover{background:rgba(0,0,0,0.06) !important;color:var(--text-on-dark) !important}
.bidtab-bidder-head.bidtab-low .bidtab-bidder-pill{background:var(--color-yellow) !important;color:var(--text-on-yellow) !important;border-color:var(--color-yellow) !important}
.bidtab-low-badge{background:var(--color-yellow) !important;color:var(--text-on-yellow) !important}
.bt-desc-input,.bt-amt,.bt-unit-input,.bt-notes-cell{background:transparent !important;color:var(--text-on-dark) !important;border:1px solid transparent}
.bt-desc-input:focus,.bt-amt:focus,.bt-unit-input:focus,.bt-notes-cell:focus{outline:none;border-color:var(--color-yellow) !important;background:var(--bg-elevated-2) !important;color:var(--text-on-dark) !important}
.bt-amt::placeholder,.bt-notes-cell:placeholder-shown{color:#8A8A8A !important}
.bidtab-quickadd-input{background:var(--bg-elevated-2) !important;color:var(--text-on-dark) !important;border:1px dashed var(--border-strong-on-dark) !important}
.bidtab-quickadd-input::placeholder{color:#8A8A8A !important}
.bidtab-quickadd-input:focus{outline:none;border-color:var(--color-yellow) !important;border-style:solid !important;background:var(--bg-elevated-2) !important;color:var(--text-on-dark) !important;box-shadow:0 0 0 3px rgba(231,0,0,0.20)}
.bidtab-row-controls button{background:transparent !important;color:var(--text-muted-on-dark) !important;border:none}
.bidtab-row-controls button:hover{color:var(--color-yellow) !important;background:rgba(0,0,0,0.06)}
.bidtab-budget-tile{background:var(--color-yellow) !important;color:var(--text-on-yellow) !important}
.bidtab-budget-label,.bidtab-budget-sub{color:rgba(0,0,0,0.70) !important}
.bidtab-budget-amount{color:var(--text-on-yellow) !important}

/* AI v2 chat surfaces */
.ai2-kb-bar{background:var(--bg-elevated) !important;border:1px solid var(--border-on-dark) !important;color:var(--text-on-dark) !important}
.ai2-bubble{background:var(--bg-elevated-2) !important;border:1px solid var(--border-on-dark) !important;color:var(--text-on-dark) !important}
.ai2-msg-user .ai2-bubble{background:var(--color-yellow) !important;color:var(--text-on-yellow) !important;border-color:transparent}
.ai2-bubble-user{background:var(--color-yellow) !important;color:var(--text-on-yellow) !important}
.ai2-bubble-user *,.ai2-msg-user .ai2-bubble *{color:var(--text-on-yellow) !important}
.ai2-msg-user .ai2-sender{color:rgba(0,0,0,0.65) !important}
.ai2-msg-user .ai2-time{color:rgba(0,0,0,0.68) !important}
.ai2-sender{color:var(--color-yellow) !important}
.ai2-time{color:var(--text-muted-on-dark) !important}
.ai2-text{color:inherit !important}
.ai2-suggest-chip{background:var(--bg-elevated-2) !important;border:1px solid var(--border-on-dark) !important;color:var(--text-on-dark) !important}
.ai2-suggest-chip:hover{background:rgba(231,0,0,0.10) !important;border-color:var(--color-yellow) !important;color:var(--text-on-dark) !important}
.ai2-composer{background:var(--bg-elevated) !important;border:1px solid var(--border-on-dark) !important}
.ai2-input{background:transparent !important;color:var(--text-on-dark) !important;border:none}
.ai2-input::placeholder{color:#8A8A8A !important}
.ai2-avatar{background:var(--color-yellow) !important;color:var(--text-on-yellow) !important}
.ai2-send{background:var(--color-yellow) !important;color:var(--text-on-yellow) !important}

/* Dashboard widgets/KPIs/cards */
.dash-widget,.dash-kpi{background:var(--bg-elevated) !important;border:1px solid var(--border-on-dark) !important;color:var(--text-on-dark)}
.dash-widget-title,.dash-kpi-label{color:var(--text-muted-on-dark) !important}
.dash-kpi-value{color:var(--text-on-dark) !important}
.dash-kpi-sub{color:var(--text-muted-on-dark) !important}
.dash-kpi-feature{background:var(--color-yellow) !important;color:var(--text-on-yellow) !important}
.dash-kpi-feature .dash-kpi-label,.dash-kpi-feature .dash-kpi-sub,.dash-kpi-feature .dash-kpi-value{color:var(--text-on-yellow) !important}
.dash-kpi-feature .dash-kpi-label,.dash-kpi-feature .dash-kpi-sub{color:rgba(0,0,0,0.65) !important}

/* Sched dots */
.dash-sched-item::before{background:var(--bg-elevated) !important;border:2px solid #52525b !important}
.dash-sched-item.active::before{background:var(--bg-elevated) !important;border-color:var(--color-yellow) !important}
.dash-sched-item-label{color:var(--text-on-dark) !important}
.dash-sched-item.done .dash-sched-item-label{color:var(--text-muted-on-dark) !important;text-decoration:line-through;text-decoration-color:#52525b}
.dash-sched-item-date{color:var(--text-muted-on-dark) !important}

/* Cost cards/kpi */
.cost-kpi-card,.cost-search-card,.cost-card{background:var(--bg-elevated) !important;border:1px solid var(--border-on-dark) !important;color:var(--text-on-dark) !important}
.cost-search-input,.cost-filter-select{background:var(--bg-elevated-2) !important;color:var(--text-on-dark) !important;border:1px solid var(--border-on-dark) !important}
.cost-search-input::placeholder{color:#8A8A8A !important}
.cost-search-input:focus,.cost-filter-select:focus{outline:none;border-color:var(--color-yellow) !important;background:var(--bg-elevated-2) !important;box-shadow:0 0 0 3px rgba(231,0,0,0.20)}
.cost-kpi-label{color:var(--text-muted-on-dark) !important}
.cost-kpi-value{color:var(--text-on-dark) !important}
.cost-kpi-sub{color:var(--text-muted-on-dark) !important}
.cost-kpi-icon{background:var(--color-yellow) !important;color:var(--text-on-yellow) !important}
.cost-card-title{color:var(--text-on-dark) !important}

/* Doc action / takeoff items */
.doc-action{background:none;border:none;color:var(--text-muted-on-dark) !important}
.doc-action:hover{color:var(--color-yellow) !important}

/* Takeoff items */
.to-items-total{background:var(--bg-elevated-2) !important;color:var(--text-on-dark) !important;border-top:1px solid var(--border-on-dark) !important}
.to-status{background:var(--bg-elevated-2) !important;color:var(--text-muted-on-dark) !important;border-top:1px solid var(--border-on-dark) !important}
.to-item-row{background:var(--bg-elevated-2) !important;border-left:3px solid var(--border-strong-on-dark) !important}
.to-item-row:hover{background:var(--bg-elevated-2) !important}
.to-item-name strong{color:var(--text-on-dark) !important}
.to-item-sub,.to-item-unit{color:var(--text-muted-on-dark) !important}
.to-item-qty{color:var(--text-on-dark) !important}
.to-item-cost{color:var(--color-yellow) !important}
.to-item-del{color:var(--text-muted-on-dark) !important}
.to-item-del:hover{color:var(--color-yellow) !important}
.to-count-pill{background:var(--color-yellow) !important;color:var(--text-on-yellow) !important}

/* Catch-all safety net: anything on a yellow surface gets dark text */
[style*="background:var(--color-yellow)"] *,
[style*="background:#E70000"] *,
[style*="background: #E70000"] *,
[style*="background-color:#E70000"] *,
[style*="background-color: #E70000"] *{color:var(--text-on-yellow) !important}

/* ===========================================================================
   MODERN SAAS ACCENTS — subtle blueprint feel, premium polish
   =========================================================================== */
.app{position:relative}
.app::before{content:'';position:absolute;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(rgba(0,0,0,0.014) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,0.014) 1px,transparent 1px);background-size:40px 40px;mask-image:linear-gradient(180deg,rgba(0,0,0,0.6),rgba(0,0,0,0.15) 70%,transparent);-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,0.6),rgba(0,0,0,0.15) 70%,transparent)}
.app>.sidebar,.app>.main{position:relative;z-index:1}

.main::before{content:'';position:absolute;left:50%;top:-120px;transform:translateX(-50%);width:600px;height:240px;pointer-events:none;background:radial-gradient(ellipse at center,rgba(231,0,0,0.06),transparent 70%);z-index:0}
.main{position:relative}
.main>.topbar,.main>.content{position:relative;z-index:1}

.topbar{position:relative}
.topbar::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,var(--color-yellow),transparent 45%);opacity:0.55;pointer-events:none}

.page-title{position:relative;padding-left:14px}
.page-title::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:72%;background:var(--color-yellow);border-radius:2px;box-shadow:0 0 8px rgba(231,0,0,0.40)}

.card,.card-sm{transition:transform 0.18s ease,border-color 0.18s ease,box-shadow 0.18s ease,background 0.18s ease;box-shadow:0 1px 2px rgba(0,0,0,0.20),0 1px 1px rgba(0,0,0,0.02) inset}
.card:hover,.card-sm:hover{transform:translateY(-1px);border-color:rgba(0,0,0,0.14);box-shadow:0 10px 28px rgba(0,0,0,0.40),0 1px 1px rgba(0,0,0,0.03) inset}
.integration-card,.invited-card,.bid-pkg-card,.drawing-set-card,.planroom-folder,.takeoff-set-card{transition:transform 0.18s ease,border-color 0.18s ease,box-shadow 0.18s ease}
.integration-card:hover,.invited-card:hover,.bid-pkg-card:hover,.drawing-set-card:hover,.planroom-folder:hover,.takeoff-set-card:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(0,0,0,0.35)}
.proj-card{transition:transform 0.18s ease,border-color 0.18s ease,box-shadow 0.18s ease}
.proj-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,0.40)}
.dash-stat{transition:transform 0.18s ease,border-color 0.18s ease,box-shadow 0.18s ease}
.dash-stat:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(0,0,0,0.30),0 0 0 1px rgba(231,0,0,0.06)}
.dash-stat.ds-accent:hover{box-shadow:0 8px 24px rgba(0,0,0,0.35),0 0 0 1px rgba(231,0,0,0.18),inset 0 0 0 1px rgba(231,0,0,0.10)}

.dash-stat.ds-accent::after,.ai-narrative-inner::after,.login-box::after,.dash-header::after{content:'';position:absolute;top:10px;right:10px;width:12px;height:12px;border-top:1px solid rgba(231,0,0,0.32);border-right:1px solid rgba(231,0,0,0.32);pointer-events:none;z-index:2}

.divider{background:linear-gradient(90deg,transparent,var(--border-on-dark) 25%,var(--border-on-dark) 75%,transparent);position:relative;height:1px}

.btn-primary{box-shadow:inset 0 1px 0 rgba(0,0,0,0.42),0 1px 2px rgba(0,0,0,0.25),0 0 0 0 rgba(231,0,0,0);transition:background 0.15s,box-shadow 0.18s,transform 0.12s}
.btn-primary:hover{box-shadow:inset 0 1px 0 rgba(0,0,0,0.55),0 4px 14px rgba(231,0,0,0.30);transform:translateY(-1px)}
.btn-primary:active{transform:translateY(0);box-shadow:inset 0 1px 0 rgba(0,0,0,0.20),0 1px 2px rgba(0,0,0,0.30)}
.btn-outline,.btn-ghost{transition:background 0.15s,color 0.15s,border-color 0.15s,box-shadow 0.15s,transform 0.12s}
.btn-outline:hover{box-shadow:0 0 0 3px rgba(231,0,0,0.10)}

.form-input:focus,.form-select:focus,.form-textarea:focus,.chat-input:focus,.scope-add-input:focus,.bid-num-input:focus,.login-input:focus{box-shadow:0 0 0 3px rgba(231,0,0,0.22),0 4px 14px rgba(231,0,0,0.10)}

.modal-header{position:relative;padding-bottom:14px}
.modal-header::after{content:'';position:absolute;left:0;bottom:6px;width:36px;height:2px;background:var(--color-yellow);border-radius:1px;box-shadow:0 0 8px rgba(231,0,0,0.35)}

.login-overlay,.company-overlay{position:relative;overflow:hidden}
.login-overlay::before,.company-overlay::before{content:'';position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle,rgba(231,0,0,0.045) 1px,transparent 1.5px);background-size:32px 32px;z-index:0}
.login-overlay::after,.company-overlay::after{content:'';position:absolute;left:50%;top:35%;transform:translateX(-50%);width:560px;height:360px;pointer-events:none;background:radial-gradient(ellipse at center,rgba(231,0,0,0.10),transparent 65%);z-index:0;filter:blur(20px)}
.login-back,.login-box,.company-header,.company-grid,.company-footer{position:relative;z-index:1}

.dash-header::before{content:'';position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(0,0,0,0.025) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,0.025) 1px,transparent 1px);background-size:32px 32px;z-index:1;mask-image:linear-gradient(135deg,rgba(0,0,0,0.4),rgba(0,0,0,0.05) 60%,transparent);-webkit-mask-image:linear-gradient(135deg,rgba(0,0,0,0.4),rgba(0,0,0,0.05) 60%,transparent)}
.dash-header-content,.dash-header-photo,.dash-header-overlay{position:relative;z-index:2}

.tbl tbody tr:nth-child(even) td{background:rgba(0,0,0,0.012)}
.tbl tbody tr:hover td{background:rgba(0,0,0,0.04)}
.tbl tbody tr{transition:background 0.12s}
.tbl th{position:relative}
.tbl th:first-child::before{content:'';position:absolute;left:0;top:6px;bottom:6px;width:2px;background:var(--color-yellow);border-radius:1px}

.sub-tab.active,.ai-tab.active{box-shadow:inset 0 -2px 0 var(--color-yellow),0 0 12px rgba(231,0,0,0.10)}

.sb-item.active{position:relative}
.sb-item.active::after{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--color-yellow);box-shadow:0 0 10px rgba(231,0,0,0.50)}

.sidebar{position:relative}
.sidebar::after{content:'';position:absolute;top:0;bottom:0;right:0;width:1px;background:linear-gradient(180deg,transparent,rgba(231,0,0,0.12) 25%,rgba(231,0,0,0.12) 75%,transparent);pointer-events:none}

.ai-narrative-inner{overflow:hidden}

.note-box{position:relative;padding-left:16px}
.note-box::before{content:'';position:absolute;left:0;top:6px;bottom:6px;width:3px;background:var(--color-yellow);border-radius:2px}
.info-box{position:relative;padding-left:16px}
.info-box::before{content:'';position:absolute;left:0;top:6px;bottom:6px;width:3px;background:#93c5fd;border-radius:2px}

.sub-tab:focus-visible,.ai-tab:focus-visible{outline:2px solid var(--color-yellow);outline-offset:2px;border-radius:5px}
.btn-primary:focus-visible,.btn-outline:focus-visible,.btn-ghost:focus-visible,.btn-danger:focus-visible,.btn-blue:focus-visible{outline:2px solid var(--color-yellow);outline-offset:2px}

.dash-stat.ds-light::after{content:'';position:absolute;left:14px;bottom:10px;width:18px;height:1px;background:linear-gradient(90deg,rgba(231,0,0,0.45),transparent);pointer-events:none}
.dash-stat.ds-primary::after{content:'';position:absolute;left:14px;bottom:10px;width:14px;height:1px;background:linear-gradient(90deg,rgba(0,0,0,0.18),transparent);pointer-events:none}

.proj-card.active-card{box-shadow:0 0 0 1px rgba(231,0,0,0.30),0 6px 16px rgba(231,0,0,0.10)}

@keyframes kinnect-slow-pulse{0%,100%{opacity:0.40}50%{opacity:1}}
.ai-dot{animation:kinnect-slow-pulse 1.8s ease-in-out infinite}

/* ===========================================================================
   OWNER BUDGET WIDGET — signature faint yellow circles + gradient sweep
   High specificity + !important so it wins against every prior cascade.
   =========================================================================== */
.dash-stats .dash-stat.ds-accent,
.dash-stat.ds-accent{
  position:relative !important;
  overflow:hidden !important;
  background-color:var(--bg-elevated) !important;
  background-image:
    radial-gradient(circle at 96% 96%,rgba(231,0,0,0.55) 0,rgba(231,0,0,0.20) 45px,rgba(231,0,0,0.06) 90px,transparent 130px),
    radial-gradient(circle at 80% 78%,rgba(231,0,0,0.40) 0,rgba(231,0,0,0.12) 35px,transparent 90px),
    radial-gradient(circle at 62% 65%,rgba(231,0,0,0.28) 0,rgba(231,0,0,0.06) 25px,transparent 70px),
    radial-gradient(circle at 45% 50%,rgba(231,0,0,0.18) 0,transparent 50px),
    linear-gradient(135deg,rgba(231,0,0,0.10) 0%,transparent 50%,rgba(231,0,0,0.05) 100%) !important;
  background-repeat:no-repeat !important;
  border:1px solid rgba(231,0,0,0.40) !important;
  box-shadow:inset 0 0 0 1px rgba(231,0,0,0.14),0 1px 2px rgba(0,0,0,0.25),0 0 30px rgba(231,0,0,0.08) !important;
}
.dash-stats .dash-stat.ds-accent:hover,
.dash-stat.ds-accent:hover{
  background-image:
    radial-gradient(circle at 96% 96%,rgba(231,0,0,0.65) 0,rgba(231,0,0,0.24) 45px,rgba(231,0,0,0.08) 95px,transparent 140px),
    radial-gradient(circle at 80% 78%,rgba(231,0,0,0.48) 0,rgba(231,0,0,0.16) 40px,transparent 100px),
    radial-gradient(circle at 62% 65%,rgba(231,0,0,0.34) 0,rgba(231,0,0,0.08) 28px,transparent 75px),
    radial-gradient(circle at 45% 50%,rgba(231,0,0,0.22) 0,transparent 55px),
    linear-gradient(135deg,rgba(231,0,0,0.14) 0%,transparent 50%,rgba(231,0,0,0.07) 100%) !important;
  border-color:rgba(231,0,0,0.55) !important;
  box-shadow:0 8px 26px rgba(0,0,0,0.35),0 0 0 1px rgba(231,0,0,0.25),inset 0 0 0 1px rgba(231,0,0,0.16),0 0 44px rgba(231,0,0,0.12) !important;
}
.dash-stat.ds-accent::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:#E70000;z-index:2 !important}
.dash-stat.ds-accent::after{content:'';position:absolute;top:10px;right:10px;width:14px;height:14px;border-top:1.5px solid rgba(231,0,0,0.65) !important;border-right:1.5px solid rgba(231,0,0,0.65) !important;box-shadow:0 0 6px rgba(231,0,0,0.30);pointer-events:none;z-index:3}
.dash-stat.ds-accent .ds-label,
.dash-stat.ds-accent .ds-value,
.dash-stat.ds-accent .ds-sub,
.dash-stat.ds-accent .stat-icon{position:relative;z-index:2}

/* ===========================================================================
   v5.3 OWNER BUDGET TILE — .dash-kpi-feature is the actual widget
   Dark bg + faint yellow circles + gradient sweep (matches dashboard signature)
   =========================================================================== */
.dash-grid-12 .dash-kpi.dash-kpi-feature,
.dash-kpi.dash-kpi-feature,
.dash-kpi-feature{
  position:relative !important;
  overflow:hidden !important;
  background-color:#E70000 !important;
  background-image:
    radial-gradient(circle at 96% 96%,rgba(255,255,255,0.22) 0,rgba(255,255,255,0.10) 60px,rgba(255,255,255,0.04) 120px,transparent 180px),
    radial-gradient(circle at 80% 75%,rgba(255,255,255,0.14) 0,rgba(255,255,255,0.05) 50px,transparent 120px),
    radial-gradient(circle at 60% 60%,rgba(255,255,255,0.10) 0,rgba(255,255,255,0.03) 40px,transparent 100px),
    radial-gradient(circle at 40% 45%,rgba(255,255,255,0.06) 0,transparent 70px),
    linear-gradient(135deg,#E70000 0%,#C40000 70%,#404040 100%) !important;
  background-repeat:no-repeat !important;
  color:#FFFFFF !important;
  border:1px solid rgba(255,255,255,0.10) !important;
  box-shadow:0 8px 24px rgba(231,0,0,0.28),0 1px 2px rgba(0,0,0,0.10) !important;
}
.dash-kpi-feature .dash-kpi-label,
.dash-kpi-feature .dash-kpi-value,
.dash-kpi-feature .dash-kpi-sub,
.dash-kpi-feature .dash-kpi-accent{color:#FFFFFF !important}
.dash-kpi-feature .dash-kpi-label{color:rgba(255,255,255,0.85) !important;letter-spacing:0.10em}
.dash-kpi-feature .dash-kpi-sub{color:rgba(255,255,255,0.92) !important}
.dash-kpi-feature .dash-kpi-divider{background:rgba(255,255,255,0.22) !important}
.dash-kpi-feature::before{
  content:'' !important;
  position:absolute !important;
  inset:auto 0 auto 0 !important;
  top:0 !important;
  height:2px !important;
  background:linear-gradient(90deg,var(--color-yellow),rgba(231,0,0,0.30) 70%,transparent) !important;
  z-index:3 !important;
}
.dash-kpi-feature::after{
  content:'' !important;
  position:absolute !important;
  top:12px !important;
  right:12px !important;
  width:14px !important;
  height:14px !important;
  border-top:1.5px solid rgba(231,0,0,0.65) !important;
  border-right:1.5px solid rgba(231,0,0,0.65) !important;
  box-shadow:0 0 6px rgba(231,0,0,0.30) !important;
  pointer-events:none !important;
  z-index:3 !important;
  background:transparent !important;
}
.dash-kpi-feature:hover{
  background-image:
    radial-gradient(circle at 96% 96%,rgba(231,0,0,0.65) 0,rgba(231,0,0,0.24) 65px,rgba(231,0,0,0.08) 125px,transparent 190px),
    radial-gradient(circle at 80% 75%,rgba(231,0,0,0.50) 0,rgba(231,0,0,0.18) 55px,transparent 130px),
    radial-gradient(circle at 60% 60%,rgba(231,0,0,0.34) 0,rgba(231,0,0,0.08) 42px,transparent 105px),
    radial-gradient(circle at 40% 45%,rgba(231,0,0,0.20) 0,transparent 75px),
    linear-gradient(135deg,rgba(231,0,0,0.14) 0%,transparent 50%,rgba(231,0,0,0.07) 100%) !important;
  border-color:rgba(231,0,0,0.55) !important;
  box-shadow:0 8px 26px rgba(0,0,0,0.35),0 0 0 1px rgba(231,0,0,0.25),inset 0 0 0 1px rgba(231,0,0,0.16),0 0 44px rgba(231,0,0,0.12) !important;
}
/* Re-style the .dash-kpi-deco children as visible yellow outlined rings */
.dash-kpi-feature .dash-kpi-deco{
  position:absolute !important;
  bottom:-50px !important;
  right:-50px !important;
  width:180px !important;
  height:180px !important;
  border-radius:50% !important;
  background:radial-gradient(circle,rgba(231,0,0,0.10) 0%,rgba(231,0,0,0.04) 50%,transparent 80%) !important;
  border:1px solid rgba(231,0,0,0.22) !important;
  pointer-events:none !important;
  z-index:1 !important;
}
.dash-kpi-feature .dash-kpi-deco-2{
  position:absolute !important;
  top:-30px !important;
  right:-30px !important;
  width:110px !important;
  height:110px !important;
  border-radius:50% !important;
  background:radial-gradient(circle,rgba(231,0,0,0.08) 0%,transparent 70%) !important;
  border:1px solid rgba(231,0,0,0.16) !important;
  pointer-events:none !important;
  z-index:1 !important;
}
/* Text inside the tile sits above all decoration */
.dash-kpi-feature .dash-kpi-label{color:var(--color-yellow) !important;position:relative;z-index:2;font-weight:700;letter-spacing:0.12em}
.dash-kpi-feature .dash-kpi-value{color:var(--text-on-dark) !important;position:relative;z-index:2}
.dash-kpi-feature .dash-kpi-sub{color:var(--text-muted-on-dark) !important;position:relative;z-index:2}
.dash-kpi-feature .dash-kpi-divider{background:rgba(231,0,0,0.20) !important;position:relative;z-index:2}
.dash-kpi-feature .dash-kpi-accent{color:var(--color-yellow) !important;position:relative;z-index:2}

/* ===========================================================================
   SUBTLE YELLOW ACCENT — applied sparingly to relevant hero surfaces only.
   Same circle/gradient pattern as Owner Budget tile, dialed down in intensity.
   =========================================================================== */

/* Sibling dashboard KPIs (Bid Coverage, Open Decisions) — secondary intensity */
.dash-grid-12 .dash-kpi:not(.dash-kpi-feature),
.dash-kpi:not(.dash-kpi-feature){
  position:relative !important;
  overflow:hidden !important;
  background-color:var(--bg-elevated) !important;
  background-image:
    radial-gradient(circle at 96% 96%,rgba(231,0,0,0.22) 0,rgba(231,0,0,0.08) 60px,transparent 140px),
    radial-gradient(circle at 80% 78%,rgba(231,0,0,0.14) 0,rgba(231,0,0,0.04) 50px,transparent 110px),
    radial-gradient(circle at 60% 62%,rgba(231,0,0,0.08) 0,transparent 80px) !important;
  background-repeat:no-repeat !important;
  border:1px solid rgba(0,0,0,0.08) !important;
  box-shadow:0 1px 2px rgba(0,0,0,0.20) !important;
  transition:transform 0.18s ease,border-color 0.18s ease,box-shadow 0.18s ease,background-image 0.18s ease !important;
}
.dash-kpi:not(.dash-kpi-feature):hover{
  transform:translateY(-1px) !important;
  border-color:rgba(231,0,0,0.30) !important;
  box-shadow:0 8px 22px rgba(0,0,0,0.30),0 0 0 1px rgba(231,0,0,0.08) !important;
  background-image:
    radial-gradient(circle at 96% 96%,rgba(231,0,0,0.30) 0,rgba(231,0,0,0.10) 65px,transparent 145px),
    radial-gradient(circle at 80% 78%,rgba(231,0,0,0.18) 0,rgba(231,0,0,0.06) 55px,transparent 115px),
    radial-gradient(circle at 60% 62%,rgba(231,0,0,0.10) 0,transparent 85px) !important;
}
.dash-kpi:not(.dash-kpi-feature)::before{
  content:'' !important;
  position:absolute !important;
  top:0 !important;left:0 !important;right:0 !important;
  height:1px !important;
  background:linear-gradient(90deg,rgba(231,0,0,0.45),rgba(231,0,0,0.10) 50%,transparent) !important;
  z-index:3 !important;
  pointer-events:none !important;
}
.dash-kpi:not(.dash-kpi-feature) > *{position:relative;z-index:2}

/* Bid leveling Scope Budget tile — hero-level intensity (same as Owner Budget) */
.bidtab-budget-tile{
  position:relative !important;
  overflow:hidden !important;
  background-color:var(--bg-elevated) !important;
  background-image:
    radial-gradient(circle at 96% 96%,rgba(231,0,0,0.50) 0,rgba(231,0,0,0.18) 60px,rgba(231,0,0,0.06) 120px,transparent 180px),
    radial-gradient(circle at 80% 75%,rgba(231,0,0,0.38) 0,rgba(231,0,0,0.12) 50px,transparent 120px),
    radial-gradient(circle at 58% 60%,rgba(231,0,0,0.24) 0,rgba(231,0,0,0.05) 38px,transparent 100px),
    radial-gradient(circle at 38% 45%,rgba(231,0,0,0.14) 0,transparent 70px),
    linear-gradient(135deg,rgba(231,0,0,0.10) 0%,transparent 50%,rgba(231,0,0,0.05) 100%) !important;
  background-repeat:no-repeat !important;
  color:var(--text-on-dark) !important;
  border:1px solid rgba(231,0,0,0.36) !important;
  box-shadow:inset 0 0 0 1px rgba(231,0,0,0.12),0 1px 2px rgba(0,0,0,0.25),0 0 28px rgba(231,0,0,0.07) !important;
}
.bidtab-budget-tile::before{
  content:'' !important;
  position:absolute !important;
  top:0 !important;left:0 !important;right:0 !important;
  height:2px !important;
  background:linear-gradient(90deg,var(--color-yellow),rgba(231,0,0,0.30) 70%,transparent) !important;
  z-index:3 !important;
}
.bidtab-budget-tile::after{
  content:'' !important;
  position:absolute !important;
  top:12px !important;right:12px !important;
  width:14px !important;height:14px !important;
  border-top:1.5px solid rgba(231,0,0,0.60) !important;
  border-right:1.5px solid rgba(231,0,0,0.60) !important;
  box-shadow:0 0 6px rgba(231,0,0,0.30) !important;
  pointer-events:none !important;
  z-index:3 !important;
  background:transparent !important;
}
.bidtab-budget-tile-deco{
  position:absolute !important;
  bottom:-50px !important;
  right:-50px !important;
  width:180px !important;
  height:180px !important;
  border-radius:50% !important;
  background:radial-gradient(circle,rgba(231,0,0,0.10) 0%,rgba(231,0,0,0.03) 55%,transparent 80%) !important;
  border:1px solid rgba(231,0,0,0.20) !important;
  pointer-events:none !important;
  z-index:1 !important;
}
.bidtab-budget-tile-label{color:var(--color-yellow) !important;position:relative;z-index:2;font-weight:700;letter-spacing:0.10em;text-transform:uppercase}
.bidtab-budget-tile-input{color:var(--text-on-dark) !important;background:transparent !important;border:1px solid transparent !important;position:relative;z-index:2}
.bidtab-budget-tile-input:focus{outline:none;border:1px solid var(--color-yellow) !important;background:rgba(0,0,0,0.18) !important;border-radius:6px}
.bidtab-budget-tile-sub{color:var(--text-muted-on-dark) !important;position:relative;z-index:2}

/* Cost History KPI cards — secondary intensity */
.cost-kpi-card{
  position:relative !important;
  overflow:hidden !important;
  background-color:var(--bg-elevated) !important;
  background-image:
    radial-gradient(circle at 96% 96%,rgba(231,0,0,0.20) 0,rgba(231,0,0,0.06) 60px,transparent 140px),
    radial-gradient(circle at 80% 78%,rgba(231,0,0,0.12) 0,rgba(231,0,0,0.04) 50px,transparent 110px) !important;
  background-repeat:no-repeat !important;
  border:1px solid rgba(0,0,0,0.08) !important;
  box-shadow:0 1px 2px rgba(0,0,0,0.20) !important;
}
.cost-kpi-card::before{
  content:'' !important;
  position:absolute !important;
  top:0 !important;left:0 !important;
  width:24px !important;height:2px !important;
  background:var(--color-yellow) !important;
  border-radius:0 0 2px 0 !important;
  z-index:3 !important;
}
.cost-kpi-card:hover{
  transform:translateY(-1px) !important;
  border-color:rgba(231,0,0,0.28) !important;
  box-shadow:0 8px 22px rgba(0,0,0,0.30),0 0 0 1px rgba(231,0,0,0.06) !important;
}

/* Bid-tab header card — tertiary intensity (light hint) */
.bidtab-header-card{
  position:relative !important;
  overflow:hidden !important;
  background-color:var(--bg-elevated) !important;
  background-image:
    radial-gradient(circle at 96% 90%,rgba(231,0,0,0.14) 0,rgba(231,0,0,0.04) 70px,transparent 160px),
    radial-gradient(circle at 78% 75%,rgba(231,0,0,0.08) 0,transparent 120px) !important;
  background-repeat:no-repeat !important;
  border:1px solid rgba(0,0,0,0.08) !important;
}
.bidtab-header-card::before{
  content:'' !important;
  position:absolute !important;
  top:0 !important;left:0 !important;
  width:40px !important;height:2px !important;
  background:var(--color-yellow) !important;
  z-index:3 !important;
}

/* Bid-tab grid card — barely-there hint */
.bidtab-grid-card{
  position:relative !important;
  overflow:hidden !important;
  background-color:var(--bg-elevated) !important;
  background-image:
    radial-gradient(circle at 99% 5%,rgba(231,0,0,0.08) 0,transparent 100px) !important;
  background-repeat:no-repeat !important;
  border:1px solid rgba(0,0,0,0.08) !important;
}

/* AI narrative card — refined construction-tech feel */
.ai-narrative-inner{
  position:relative !important;
  overflow:hidden !important;
  background-color:var(--bg-elevated) !important;
  background-image:
    radial-gradient(circle at 95% 92%,rgba(231,0,0,0.16) 0,rgba(231,0,0,0.05) 60px,transparent 140px),
    radial-gradient(circle at 78% 78%,rgba(231,0,0,0.08) 0,transparent 100px) !important;
  background-repeat:no-repeat !important;
  border:1px solid rgba(0,0,0,0.08) !important;
}
.ai-narrative-inner::before{
  background:linear-gradient(90deg,var(--color-yellow),rgba(231,0,0,0.30) 50%,transparent) !important;
}

/* AI v2 KB bar (knowledge base in AI chat) — subtle tint */
.ai2-kb-bar{
  position:relative !important;
  overflow:hidden !important;
  background-color:var(--bg-elevated) !important;
  background-image:
    radial-gradient(circle at 96% 95%,rgba(231,0,0,0.12) 0,rgba(231,0,0,0.03) 60px,transparent 130px) !important;
  background-repeat:no-repeat !important;
}
.ai2-kb-bar::before{
  content:'' !important;
  position:absolute !important;
  top:0 !important;left:0 !important;
  width:30px !important;height:2px !important;
  background:var(--color-yellow) !important;
  z-index:3 !important;
}

/* Login box (already has dot field) — refine with corner orb */
.login-box{
  position:relative !important;
  overflow:hidden !important;
  background-color:#FFFFFF !important;
  background-image:
    radial-gradient(circle at 100% 100%,rgba(231,0,0,0.22) 0,rgba(231,0,0,0.06) 80px,transparent 180px),
    radial-gradient(circle at 75% 82%,rgba(231,0,0,0.12) 0,transparent 120px) !important;
  background-repeat:no-repeat !important;
  border:1px solid rgba(0,0,0,0.08) !important;
}

/* Dashboard cover — keep restrained but add a single soft glow */
.dash-header{
  position:relative !important;
  overflow:hidden !important;
}
.dash-header::before{
  content:'' !important;
  position:absolute !important;
  top:0 !important;left:0 !important;right:0 !important;
  height:2px !important;
  background:linear-gradient(90deg,var(--color-yellow),rgba(231,0,0,0.30) 60%,transparent) !important;
  z-index:5 !important;
  pointer-events:none !important;
}

/* Section openers — page header gets subtle gold tick before title */
.page-header{position:relative}

/* Card titles in feature cards get a tiny yellow square accent */
.card.card-feature{position:relative}
.card.card-feature::after{
  content:'' !important;
  position:absolute !important;
  top:12px !important;right:12px !important;
  width:12px !important;height:12px !important;
  border-top:1.5px solid rgba(231,0,0,0.50) !important;
  border-right:1.5px solid rgba(231,0,0,0.50) !important;
  pointer-events:none !important;
}

/* Modal — yellow accent in top-left corner */
.modal{
  position:relative !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
}
.modal::before{
  content:'' !important;
  position:absolute !important;
  top:0 !important;left:0 !important;
  width:36px !important;height:2px !important;
  background:var(--color-yellow) !important;
  z-index:3 !important;
  pointer-events:none !important;
}

/* ===========================================================================
   CUSTOMIZE DASHBOARD PANEL — dark surfaces for readability
   =========================================================================== */
.widget-autofit-banner{
  background:linear-gradient(135deg,rgba(231,0,0,0.10) 0%,var(--bg-elevated-2) 100%) !important;
  border:1px solid rgba(231,0,0,0.25) !important;
  color:var(--text-on-dark) !important;
}
.widget-autofit-banner > div > div:first-child,
.widget-autofit-banner > div > div:first-child *{
  color:var(--text-on-dark) !important;
}
.widget-autofit-banner > div > div:first-child i{
  color:var(--color-yellow) !important;
}
.widget-autofit-banner > div > div:nth-child(2),
.widget-autofit-banner > div > div:last-child:not(.widget-toggle-switch){
  color:var(--text-muted-on-dark) !important;
}

.widget-toggle-row{
  background:var(--bg-elevated-2) !important;
  border:1px solid var(--border-on-dark) !important;
  color:var(--text-on-dark) !important;
}
.widget-toggle-name,
.widget-toggle-name *{color:var(--text-on-dark) !important}
.widget-toggle-name span{color:var(--text-muted-on-dark) !important}
.widget-toggle-meta > div:not(.widget-toggle-name){color:var(--text-muted-on-dark) !important}

.widget-toggle-switch{background:rgba(0,0,0,0.18) !important}
.widget-toggle-switch.on{background:var(--color-yellow) !important}
.widget-toggle-switch::after{background:#fff !important}

.widget-reorder-btn{
  background:var(--bg-elevated) !important;
  border:1px solid var(--border-on-dark) !important;
  color:var(--text-muted-on-dark) !important;
}
.widget-reorder-btn:hover{
  background:rgba(231,0,0,0.10) !important;
  color:var(--color-yellow) !important;
  border-color:rgba(231,0,0,0.35) !important;
}

.widget-size-select{
  background:var(--bg-elevated) !important;
  color:var(--text-on-dark) !important;
  border:1px solid var(--border-on-dark) !important;
}
.widget-size-select:focus{outline:none;border-color:var(--color-yellow) !important;box-shadow:0 0 0 3px rgba(231,0,0,0.20)}
.widget-size-select option{background:var(--bg-elevated) !important;color:var(--text-on-dark) !important}
.widget-size-locked{color:var(--text-muted-on-dark) !important}

/* Project Documents banner — was dark red on faint yellow, now readable */
.folder-sys-banner{padding:10px 14px !important;line-height:1.55 !important}
.folder-sys-banner-current{
  background:rgba(231,0,0,0.10) !important;
  border:1px solid rgba(231,0,0,0.28) !important;
  color:var(--text-on-dark) !important;
}
.folder-sys-banner-current i{color:var(--color-yellow) !important}
.folder-sys-banner-current strong{color:var(--color-yellow) !important}
.folder-sys-banner-secondary{
  background:rgba(37,99,235,0.10) !important;
  border:1px solid rgba(37,99,235,0.30) !important;
  color:var(--text-on-dark) !important;
}
.folder-sys-banner-secondary i{color:#1E40AF !important}
.folder-sys-banner-secondary strong{color:#1E40AF !important}
.folder-sys-banner-archive{
  background:var(--bg-elevated-2) !important;
  border:1px solid var(--border-on-dark) !important;
  color:var(--text-muted-on-dark) !important;
}
.folder-sys-banner-archive i{color:var(--text-muted-on-dark) !important}
.folder-sys-banner-archive strong{color:var(--text-on-dark) !important}

/* ===========================================================================
   RECEIVED BIDS V2 — package cards, drop zones, file rows
   =========================================================================== */
.bidpkg-v2-card{background:var(--bg-elevated);border:1px solid var(--border-on-dark);border-radius:var(--radius-lg);margin-bottom:12px;overflow:hidden;transition:border-color 0.15s,box-shadow 0.15s}
.bidpkg-v2-card:hover{border-color:rgba(231,0,0,0.20)}
.bidpkg-v2-head{display:flex;align-items:center;gap:11px;padding:13px 16px;background:rgba(0,0,0,0.02);border-bottom:1px solid var(--border-on-dark);cursor:pointer;user-select:none;transition:background 0.12s}
.bidpkg-v2-head:hover{background:rgba(231,0,0,0.04)}
.bidpkg-v2-title{flex:1;min-width:0}
.bidpkg-v2-name{font-size:13.5px;font-weight:700;color:var(--text-on-dark);letter-spacing:-0.005em}
.bidpkg-v2-desc{font-size:11px;color:var(--text-muted-on-dark);margin-top:2px}
.bidpkg-v2-meta{display:flex;gap:14px;font-size:11px;color:var(--text-muted-on-dark);flex-wrap:wrap;align-items:center}
.bidpkg-v2-meta i{color:var(--color-yellow);font-size:10.5px;margin-right:4px}
.bidpkg-v2-body{display:none;padding:14px 16px;background:transparent}
.bidpkg-v2-body.open{display:block}

.bidpkg-v2-actions{display:flex;justify-content:space-between;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:14px}
.bidpkg-v2-fields{display:flex;gap:10px;flex-wrap:wrap;flex:1;min-width:0}
.bidpkg-v2-field{display:flex;flex-direction:column;gap:3px;min-width:160px}
.bidpkg-v2-field>span{font-size:9.5px;font-weight:700;color:var(--text-muted-on-dark);letter-spacing:0.08em;text-transform:uppercase}
.bidpkg-v2-input{background:var(--bg-elevated-2);border:1px solid var(--border-on-dark);border-radius:5px;padding:5px 9px;font-size:12px;color:var(--text-on-dark);font-family:var(--font);min-width:160px}
.bidpkg-v2-input:focus{outline:none;border-color:var(--color-yellow);box-shadow:0 0 0 2px rgba(231,0,0,0.18)}

/* Drop zone */
.pkg-drop{border:2px dashed rgba(231,0,0,0.22);border-radius:10px;padding:24px 18px;text-align:center;cursor:pointer;transition:all 0.15s;background:rgba(231,0,0,0.02);margin-bottom:14px}
.pkg-drop:hover{border-color:rgba(231,0,0,0.55);background:rgba(231,0,0,0.06)}
.pkg-drop.pkg-drop-active{border-color:var(--color-yellow);background:rgba(231,0,0,0.10);box-shadow:0 0 0 4px rgba(231,0,0,0.10) inset}
.pkg-drop i{font-size:24px;color:var(--color-yellow);margin-bottom:7px;display:block}
.pkg-drop-title{font-size:13px;font-weight:700;color:var(--text-on-dark);margin-bottom:3px}
.pkg-drop-sub{font-size:11px;color:var(--text-muted-on-dark);line-height:1.5}

/* Files grid */
.bidpkg-v2-files{display:flex;flex-direction:column;gap:1px;background:rgba(0,0,0,0.03);border:1px solid var(--border-on-dark);border-radius:8px;overflow:hidden}
.bidpkg-v2-files-head,.bidpkg-v2-file-row{display:grid;grid-template-columns:minmax(220px,2.2fr) 70px 1fr 1fr 110px 110px 130px;gap:8px;align-items:center;padding:8px 12px}
.bidpkg-v2-files-head{background:var(--bg-elevated-2);font-size:9.5px;font-weight:700;letter-spacing:0.08em;color:var(--text-muted-on-dark);text-transform:uppercase;border-bottom:1px solid var(--border-on-dark)}
.bidpkg-v2-file-row{background:var(--bg-elevated);border-bottom:1px solid rgba(0,0,0,0.04);transition:background 0.1s}
.bidpkg-v2-file-row:last-child{border-bottom:none}
.bidpkg-v2-file-row:hover{background:rgba(231,0,0,0.03)}
.bidpkg-v2-file-name{display:flex;align-items:center;gap:9px;min-width:0}
.bidpkg-v2-file-icon{width:30px;height:30px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:13px}
.bidpkg-v2-canon{font-size:12.5px;font-weight:700;color:var(--text-on-dark);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bidpkg-v2-origname{font-size:10.5px;color:var(--text-muted-on-dark);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bidpkg-v2-cell{background:var(--bg-elevated-2);border:1px solid transparent;border-radius:4px;padding:4px 7px;font-size:11.5px;color:var(--text-on-dark);font-family:var(--font);width:100%;min-width:0}
.bidpkg-v2-cell:hover{border-color:rgba(0,0,0,0.10)}
.bidpkg-v2-cell:focus{outline:none;border-color:var(--color-yellow);box-shadow:0 0 0 2px rgba(231,0,0,0.18)}
.bidpkg-v2-amount{font-family:var(--mono);text-align:right;font-weight:700;color:var(--color-yellow)}
.bidpkg-v2-rowactions{display:flex;gap:3px;align-items:center;justify-content:flex-end}
.bidpkg-v2-iconbtn{background:transparent;border:1px solid transparent;border-radius:4px;color:var(--text-muted-on-dark);width:28px;height:28px;cursor:pointer;font-size:11px;display:inline-flex;align-items:center;justify-content:center;transition:all 0.12s}
.bidpkg-v2-iconbtn:hover:not(:disabled){background:rgba(231,0,0,0.10);border-color:rgba(231,0,0,0.32);color:var(--color-yellow)}
.bidpkg-v2-iconbtn:disabled{opacity:0.35;cursor:not-allowed}
.bidpkg-v2-iconbtn.bidpkg-v2-scopepick{width:auto;min-width:90px;padding:0 7px;font-size:10.5px;background:var(--bg-elevated-2);border:1px solid var(--border-on-dark);color:var(--text-on-dark)}
.bidpkg-v2-iconbtn.bidpkg-v2-scopepick:hover{border-color:var(--color-yellow);color:var(--text-on-dark)}
.bidpkg-empty{padding:18px 12px;text-align:center;font-size:12px;color:var(--text-muted-on-dark);font-style:italic;background:rgba(0,0,0,0.02);border:1px dashed var(--border-on-dark);border-radius:8px}

@media (max-width:900px){
  .bidpkg-v2-files-head,.bidpkg-v2-file-row{grid-template-columns:1fr 60px 1fr 1fr 100px;gap:6px}
  .bidpkg-v2-files-head>span:nth-child(6),.bidpkg-v2-files-head>span:nth-child(7),.bidpkg-v2-file-row>select,.bidpkg-v2-file-row>.bidpkg-v2-rowactions{display:none}
}

/* ===========================================================================
   BID TRACKING worksheet — PDF-style grid of trade tiles, KINNECT dark theme
   =========================================================================== */
.track-pkg-card{background:var(--bg-elevated);border:1px solid var(--border-on-dark);border-radius:var(--radius-lg);padding:18px 20px;margin-bottom:18px;position:relative;overflow:hidden}
.track-pkg-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--color-yellow),rgba(231,0,0,0.30) 70%,transparent);z-index:1}
.track-pkg-head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;border-bottom:1px solid var(--border-on-dark);padding-bottom:12px;margin-bottom:14px;flex-wrap:wrap}
.track-pkg-eyebrow{font-size:10px;font-weight:700;letter-spacing:0.10em;text-transform:uppercase;color:var(--text-muted-on-dark);margin-bottom:3px}
.track-pkg-title{font-size:16px;font-weight:700;color:var(--text-on-dark);letter-spacing:-0.005em}
.track-pkg-sub{font-size:11px;font-weight:600;color:var(--color-yellow);letter-spacing:0.05em;text-transform:uppercase;margin-left:8px;padding:2px 8px;border:1px solid rgba(231,0,0,0.32);border-radius:10px;vertical-align:middle}
.track-pkg-totals{display:flex;gap:18px;flex-wrap:wrap;align-items:flex-end}
.track-tot{display:flex;flex-direction:column;gap:2px;min-width:120px}
.track-tot-lbl{font-size:9.5px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-muted-on-dark)}
.track-tot-val{font-family:var(--mono);font-size:15px;font-weight:700;color:var(--text-on-dark);letter-spacing:-0.02em}
.track-tot-val.sel{color:var(--color-yellow)}
.track-tot-val.neutral{color:var(--text-on-dark)}
.track-tot-val.high{color:#404040}
/* Back-compat: any leftover .low usage now reads as neutral white */
.track-tot-val.low{color:var(--text-on-dark)}

.track-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.track-tile{background:var(--bg-elevated-2);border:1px solid var(--border-on-dark);border-radius:10px;padding:0;display:flex;flex-direction:column;overflow:hidden;position:relative;transition:border-color 0.15s,box-shadow 0.15s,transform 0.15s}
.track-tile:hover{border-color:rgba(231,0,0,0.28);box-shadow:0 6px 16px rgba(0,0,0,0.30);transform:translateY(-1px)}
.track-tile-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;background:rgba(231,0,0,0.04);border-bottom:1px solid var(--border-on-dark)}
.track-tile-trade{font-size:12.5px;font-weight:700;color:var(--text-on-dark);flex:1;letter-spacing:-0.005em;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.track-tile-budget{display:flex;align-items:center;gap:5px;flex-shrink:0}
.track-tile-budget-lbl{font-size:9.5px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-muted-on-dark)}
.track-tile-budget-input{width:88px;background:rgba(0,0,0,0.06);border:1px solid var(--border-on-dark);border-radius:5px;padding:3px 7px;font-size:11.5px;font-family:var(--mono);color:var(--text-on-dark);text-align:right}
.track-tile-budget-input:focus{outline:none;border-color:var(--color-yellow);background:rgba(231,0,0,0.10);box-shadow:0 0 0 2px rgba(231,0,0,0.20)}
.track-tile-budget-input::placeholder{color:var(--text-muted-on-dark)}

.track-tile-headers{display:grid;grid-template-columns:1.3fr 2.2fr;gap:8px;padding:7px 12px 4px;font-size:9px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-muted-on-dark);border-bottom:1px dashed rgba(0,0,0,0.06)}
.track-bid-cells-lbls{display:grid;grid-template-columns:78px 56px 1fr 86px;gap:4px;text-align:right}
.track-bid-cells-lbls span:nth-child(3){text-align:left}

.track-tile-body{display:flex;flex-direction:column;padding:4px 12px}
.track-bidder-row{display:grid;grid-template-columns:1.3fr 2.2fr;gap:8px;align-items:center;padding:5px 0;border-bottom:1px dashed rgba(0,0,0,0.04)}
.track-bidder-row:last-child{border-bottom:none}
.track-bidder-row.track-low{background:linear-gradient(90deg,rgba(231,0,0,0.14),rgba(231,0,0,0.03));border-left:3px solid var(--color-yellow);padding-left:6px;margin-left:-6px;border-radius:4px 0 0 4px}
.track-bidder-row.track-low .track-cell-leveled{color:var(--color-yellow)}
.track-bidder-row.track-low .track-bidder-name::before{content:'★';color:var(--color-yellow);margin-right:5px;font-size:10px}
.track-bidder-name{font-size:11.5px;color:var(--text-on-dark);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:5px}
.track-bid-cells{display:grid;grid-template-columns:78px 56px 1fr 86px;gap:4px;align-items:center}
.track-cell{background:transparent;border:1px solid transparent;border-radius:4px;padding:3px 6px;font-family:var(--mono);font-size:11px;color:var(--text-on-dark);transition:border-color 0.1s,background 0.1s}
.track-cell:hover{border-color:rgba(0,0,0,0.08);background:rgba(0,0,0,0.03)}
.track-cell:focus{outline:none;border-color:var(--color-yellow);background:rgba(231,0,0,0.08);box-shadow:0 0 0 2px rgba(231,0,0,0.16)}
.track-cell-base{text-align:right}
.track-cell-adj{text-align:right;color:#404040}
.track-cell-note{font-family:var(--font);font-size:10.5px;color:var(--text-muted-on-dark);text-align:left}
.track-cell-leveled{font-family:var(--mono);font-size:12px;font-weight:700;text-align:right;padding:3px 6px;background:rgba(0,0,0,0.04);border:1px solid var(--border-on-dark);border-radius:4px;color:var(--text-on-dark)}

.track-tile-foot{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:rgba(0,0,0,0.02);border-top:1px solid var(--border-on-dark);font-size:10.5px}
.track-tile-foot-lbl{font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-muted-on-dark)}
.track-tile-foot-val{font-family:var(--mono);font-weight:700;font-size:12px;color:var(--text-on-dark)}
.track-tile-foot-val.low{color:#047857}
.track-tile-foot-val.high{color:#404040}

.track-late-pill{font-size:8.5px;font-weight:700;letter-spacing:0.07em;text-transform:uppercase;padding:1px 5px;border-radius:3px;background:rgba(231,0,0,0.18);color:#404040;border:1px solid rgba(231,0,0,0.32)}
.track-incl-pill{font-size:8.5px;font-weight:700;letter-spacing:0.07em;text-transform:uppercase;padding:1px 5px;border-radius:3px;background:rgba(37,99,235,0.18);color:#1E40AF;border:1px solid rgba(37,99,235,0.32)}

/* ===========================================================================
   BID TRACKING V2 — PDF-style read-only tile (auto-populates from Received Bids)
   - Trade name + Budget number centered at top
   - Bidder rows = "Name | $ amount" (sorted low → high)
   - Click any amount to edit inline (transparent input)
   =========================================================================== */
.track-tile{background:var(--bg-elevated-2);border:1px solid var(--border-on-dark);border-radius:8px;padding:0;display:flex;flex-direction:column;overflow:hidden;position:relative;transition:transform 0.15s,border-color 0.15s,box-shadow 0.15s;min-height:0}
.track-tile:hover{transform:translateY(-1px);border-color:rgba(231,0,0,0.30);box-shadow:0 6px 16px rgba(0,0,0,0.30)}
.track-tile-auto-bg{background:rgba(0,0,0,0.015)}

.track-tile-head-v2{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:8px 11px 5px;border-bottom:1px solid rgba(0,0,0,0.05);background:rgba(231,0,0,0.04)}
.track-tile-trade-v2{font-size:11.5px;font-weight:700;color:var(--text-on-dark);letter-spacing:-0.005em;line-height:1.25;flex:1;display:flex;align-items:center;gap:5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.track-tile-div{font-size:9.5px;font-weight:600;color:var(--text-muted-on-dark);padding:1px 5px;background:rgba(0,0,0,0.06);border-radius:3px;letter-spacing:0.04em;flex-shrink:0}
.track-tile-auto{font-size:8px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--color-yellow);padding:1px 4px;background:rgba(231,0,0,0.08);border:1px solid rgba(231,0,0,0.20);border-radius:3px;flex-shrink:0}
.track-tile-x{background:transparent;border:none;color:var(--text-muted-on-dark);font-size:10px;padding:2px 4px;cursor:pointer;border-radius:3px;opacity:0;transition:opacity 0.15s}
.track-tile:hover .track-tile-x{opacity:0.75}
.track-tile-x:hover{color:#A00000;opacity:1;background:rgba(255,128,128,0.10)}

/* Budget — centered under trade name (matches PDF layout) */
.track-tile-budget-v2{position:relative;text-align:center;padding:4px 10px 6px;border-bottom:1px solid rgba(0,0,0,0.04);background:rgba(231,0,0,0.025)}
.track-tile-budget-v2-display{display:block;font-family:var(--mono);font-size:12px;font-weight:700;color:var(--color-yellow);letter-spacing:-0.02em;pointer-events:none}
.track-tile-budget-v2-input{position:absolute;inset:0;background:transparent;border:none;color:transparent;caret-color:var(--color-yellow);font-family:var(--mono);font-size:12px;font-weight:700;text-align:center;padding:4px 10px 6px;cursor:pointer;width:100%}
.track-tile-budget-v2-input:focus{outline:none;background:rgba(231,0,0,0.10);color:var(--color-yellow);box-shadow:inset 0 0 0 1px var(--color-yellow)}
.track-tile-budget-v2-input:focus+.track-tile-budget-v2-display,.track-tile-budget-v2-input:not(:placeholder-shown):focus~.track-tile-budget-v2-display{display:none}
/* Hide display when input is focused */
.track-tile-budget-v2:focus-within .track-tile-budget-v2-display{visibility:hidden}

/* Bidder rows */
.track-tile-body-v2{display:flex;flex-direction:column;padding:4px 0;min-height:0}
.track-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 11px;font-size:11.5px;line-height:1.3;transition:background 0.1s;border-left:3px solid transparent}
.track-row:hover{background:rgba(0,0,0,0.03)}
.track-row-name{color:var(--text-on-dark);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;display:flex;align-items:center;gap:5px}
.track-row-amt{background:transparent;border:1px solid transparent;border-radius:4px;color:var(--text-on-dark);font-family:var(--mono);font-size:11.5px;font-weight:600;text-align:right;padding:2px 5px;width:96px;min-width:96px;flex-shrink:0;transition:border-color 0.12s,background 0.12s}
.track-row-amt:hover{border-color:rgba(0,0,0,0.10);background:rgba(0,0,0,0.04)}
.track-row-amt:focus{outline:none;border-color:var(--color-yellow);background:rgba(231,0,0,0.08);box-shadow:0 0 0 2px rgba(231,0,0,0.16)}
.track-row-amt::placeholder{color:var(--text-muted-on-dark)}

/* Selected (manual or auto-low) bidder — highlighted YELLOW to match brand */
.track-row-selected{background:linear-gradient(90deg,rgba(231,0,0,0.16),rgba(231,0,0,0.04));border-left-color:var(--color-yellow)}
.track-row-selected .track-row-name{color:var(--color-yellow);font-weight:700}
.track-row-selected .track-row-amt{color:var(--color-yellow);font-weight:700}

/* Star toggle button on each bid row */
.track-row-star{background:transparent;border:none;color:rgba(0,0,0,0.60);font-size:11px;width:18px;height:18px;border-radius:3px;cursor:pointer;flex-shrink:0;padding:0;display:inline-flex;align-items:center;justify-content:center;transition:color 0.12s,background 0.12s}
.track-row-star:hover{color:rgba(231,0,0,0.55);background:rgba(231,0,0,0.08)}
.track-row-star.auto{color:rgba(231,0,0,0.65)}
.track-row-star.manual{color:var(--color-yellow);text-shadow:0 0 6px rgba(231,0,0,0.55)}
.track-row-star.manual:hover{color:#404040}

.track-row-empty{padding:6px 11px;font-size:10.5px;color:var(--text-muted-on-dark);font-style:italic;text-align:center}

/* Delta cell at the bottom of each scope tile */
.track-tile-delta{border-top:1px solid rgba(0,0,0,0.06);background:rgba(0,0,0,0.02);padding:6px 11px 8px;display:flex;flex-direction:column;gap:2px;font-family:var(--mono)}
.track-delta-row{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:10.5px}
.track-delta-row.delta-row{margin-top:3px;padding-top:4px;border-top:1px dashed rgba(0,0,0,0.06)}
.track-delta-lbl{font-family:var(--font);font-size:9.5px;font-weight:700;letter-spacing:0.07em;text-transform:uppercase;color:var(--text-muted-on-dark)}
.track-delta-val{font-weight:700;color:var(--text-on-dark);letter-spacing:-0.01em}
.track-delta-val.sel{color:var(--color-yellow)}
.track-delta-val.low{color:var(--text-on-dark)}
.track-delta-val.high{color:#404040}

/* Row grid now has 3 columns: star · name · amount */
.track-row{grid-template-columns:18px 1fr auto;display:grid;align-items:center}

/* Bid Tracking view toggles (Show Budget / Show Delta) */
.track-view-toggles{display:flex;gap:6px;align-items:center;margin-left:12px}
.track-toggle{display:inline-flex;align-items:center;gap:6px;background:var(--bg-elevated-2);border:1px solid var(--border-on-dark);border-radius:5px;padding:4px 10px;font-size:11.5px;color:var(--text-muted-on-dark);cursor:pointer;user-select:none;transition:all 0.12s}
.track-toggle:hover{border-color:rgba(231,0,0,0.30);color:var(--text-on-dark)}
.track-toggle input{appearance:none;-webkit-appearance:none;width:26px;height:14px;background:rgba(0,0,0,0.10);border:1px solid var(--border-on-dark);border-radius:8px;position:relative;cursor:pointer;flex-shrink:0;transition:background 0.12s,border-color 0.12s;margin:0}
.track-toggle input::after{content:'';position:absolute;top:1px;left:1px;width:10px;height:10px;border-radius:50%;background:#d4d4d8;transition:left 0.15s,background 0.15s}
.track-toggle input:checked{background:rgba(231,0,0,0.20);border-color:var(--color-yellow)}
.track-toggle input:checked::after{left:13px;background:var(--color-yellow)}
.track-toggle input:checked+span{color:var(--color-yellow)}
.track-toggle:has(input:checked){border-color:rgba(231,0,0,0.40);background:rgba(231,0,0,0.04)}
.track-toggle span i{margin-right:4px;font-size:10.5px}

/* Tighter grid — fits more tiles per row like the PDF reference */
.track-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}

.track-late-pill{font-size:8px;font-weight:700;letter-spacing:0.07em;text-transform:uppercase;padding:1px 5px;border-radius:3px;background:rgba(231,0,0,0.18);color:#404040}
.track-incl-pill{font-size:8px;font-weight:700;letter-spacing:0.07em;text-transform:uppercase;padding:1px 5px;border-radius:3px;background:rgba(37,99,235,0.18);color:#1E40AF}

/* ===========================================================================
   PROJECT HEALTH SNAPSHOT — owner/architect executive view (4-card grid)
   =========================================================================== */
.dash-widget-title-sub{font-size:10.5px;color:var(--text-muted-on-dark);font-weight:500;letter-spacing:0.05em;text-transform:uppercase;display:inline-block;margin-left:8px}
.health-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:6px}
.health-card{position:relative;overflow:hidden;background:var(--bg-elevated-2);border:1px solid var(--border-on-dark);border-radius:10px;padding:18px 20px;display:flex;flex-direction:column;gap:6px;min-height:128px;transition:transform 0.18s ease,border-color 0.18s ease,box-shadow 0.18s ease;background-image:radial-gradient(circle 70px at 92% 92%,rgba(231,0,0,0.08) 0%,rgba(231,0,0,0.02) 55%,transparent 80%);background-repeat:no-repeat}
.health-card:hover{transform:translateY(-1px);border-color:rgba(231,0,0,0.22);box-shadow:0 8px 22px rgba(0,0,0,0.30)}
.health-card-accent{position:absolute;top:0;left:0;width:34px;height:2px;background:#E70000;border-radius:0 0 2px 0}
.health-card-label{font-size:10px;font-weight:700;letter-spacing:0.10em;text-transform:uppercase;color:var(--text-muted-on-dark)}
.health-card-value{font-family:var(--mono);font-size:22px;font-weight:700;color:var(--text-on-dark);letter-spacing:-0.025em;line-height:1.1}
.health-card-value .health-card-unit{font-size:13px;font-weight:600;color:var(--text-muted-on-dark);margin-left:3px}
.health-card-sub{font-size:11px;color:var(--text-muted-on-dark);display:flex;align-items:center;gap:8px;flex-wrap:wrap;line-height:1.4;margin-top:auto}

/* Variance card states */
.health-card-over{border-color:rgba(231,0,0,0.42);background-image:radial-gradient(circle 90px at 92% 92%,rgba(231,0,0,0.20) 0%,rgba(231,0,0,0.05) 55%,transparent 80%)}
.health-card-over .health-card-accent{background:#404040}
.health-card-over .health-card-value-var{color:#404040}
.health-card-over .health-pct-pill{background:rgba(231,0,0,0.18);color:#404040;border-color:rgba(231,0,0,0.36)}
.health-card-over .health-status-label{color:#404040}

.health-card-under{border-color:rgba(231,0,0,0.30);background-image:radial-gradient(circle 80px at 92% 92%,rgba(231,0,0,0.16) 0%,rgba(231,0,0,0.04) 55%,transparent 80%)}
.health-card-under .health-card-accent{background:var(--color-yellow)}
.health-card-under .health-card-value-var{color:var(--color-yellow)}
.health-card-under .health-pct-pill{background:rgba(231,0,0,0.16);color:var(--color-yellow);border-color:rgba(231,0,0,0.32)}
.health-card-under .health-status-label{color:var(--color-yellow)}

.health-card-on .health-card-value-var{color:var(--text-on-dark)}
.health-card-on .health-pct-pill{background:rgba(0,0,0,0.08);color:var(--text-on-dark);border-color:rgba(0,0,0,0.16)}
.health-card-on .health-status-label{color:var(--text-on-dark)}

.health-pct-pill{display:inline-flex;align-items:center;padding:2px 9px;border-radius:10px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:-0.02em;border:1px solid transparent}
.health-status-label{display:inline-flex;align-items:center;gap:5px;font-weight:600;font-size:11px;letter-spacing:0.02em}
.health-status-label i{font-size:10px}

/* Emphasized Budget Position card — larger value, stronger ring */
.health-card-emph{padding:20px 22px;min-height:140px}
.health-card-emph .health-card-value{font-size:25px}
.health-card-emph.health-card-over{box-shadow:0 0 0 1px rgba(231,0,0,0.35) inset,0 8px 22px rgba(0,0,0,0.30),0 0 30px rgba(231,0,0,0.10)}
.health-card-emph.health-card-under{box-shadow:0 0 0 1px rgba(231,0,0,0.35) inset,0 8px 22px rgba(0,0,0,0.30),0 0 30px rgba(231,0,0,0.08)}
.health-card-emph .health-card-accent{height:3px;width:48px}

/* ===========================================================================
   BUDGET vs TARGET — two-row stacked comparison (bars capped at 2/3 width)
   =========================================================================== */
.health-compare{background:var(--bg-elevated-2);border:1px solid var(--border-on-dark);border-radius:10px;padding:18px 22px;margin-top:12px}
.health-compare-title{font-size:11.5px;font-weight:700;letter-spacing:0.10em;text-transform:uppercase;color:var(--text-on-dark);margin-bottom:14px}
.health-compare-rows{display:flex;flex-direction:column;gap:10px}

/* Each row: [Label] [Amount] [Bar (max 2/3 of available width)] [Tag] */
.health-compare-row{display:grid;grid-template-columns:130px 86px minmax(0,1fr) 150px;align-items:center;gap:14px}
.health-compare-row-label{font-size:11.5px;font-weight:600;color:var(--text-muted-on-dark);letter-spacing:0.04em;text-transform:uppercase}
.health-compare-row-amount{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--text-on-dark);letter-spacing:-0.01em}
.health-compare-row-bar-wrap{position:relative;height:14px;background:rgba(0,0,0,0.05);border-radius:7px;overflow:hidden;max-width:66.67%}
.health-compare-row-bar{height:100%;border-radius:7px;transition:width 0.4s ease;box-shadow:inset 0 1px 0 rgba(0,0,0,0.18)}
.health-compare-row-bar.target-bar{background:linear-gradient(90deg,rgba(0,0,0,0.65),rgba(0,0,0,0.95));box-shadow:inset 0 1px 0 rgba(0,0,0,0.30)}
.health-compare-row-bar.current-bar{background:linear-gradient(90deg,#E70000 0%,var(--color-yellow) 100%)}
.health-compare-row-bar.current-bar.over{background:linear-gradient(90deg,#E70000 0%,var(--color-yellow) 65%,#404040 100%);box-shadow:inset 0 1px 0 rgba(0,0,0,0.20),0 0 14px rgba(231,0,0,0.18)}
.health-compare-row-bar.current-bar.under{background:linear-gradient(90deg,#E70000 0%,var(--color-yellow) 100%)}

/* Right-side tag (Over Target / Under Target / On Target) */
.health-compare-row-tag{font-size:11px;font-weight:700;letter-spacing:0.05em;display:inline-flex;align-items:center;gap:5px;padding:2px 0;color:var(--text-muted-on-dark)}
.health-compare-row-tag.tag-over{color:#404040}
.health-compare-row-tag.tag-over i{color:#404040}
.health-compare-row-tag.tag-under{color:var(--color-yellow)}
.health-compare-row-tag.tag-on{color:var(--text-on-dark)}
.health-compare-row-tag.tag-on i{color:var(--color-yellow)}

@media (max-width:760px){
  .health-compare-row{grid-template-columns:1fr;gap:4px}
  .health-compare-row-bar-wrap{max-width:100%}
}

/* Summary callout label prefix */
.health-callout-label{font-size:11px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-muted-on-dark);margin-right:4px}

/* ===========================================================================
   SUMMARY CALLOUT — short sentence beneath the comparison bar
   =========================================================================== */
.health-callout{display:flex;align-items:center;gap:10px;padding:11px 16px;border-radius:8px;font-size:13px;line-height:1.5;margin-top:12px;border:1px solid var(--border-on-dark);background:var(--bg-elevated-2)}
.health-callout i{font-size:14px;flex-shrink:0}
.health-callout-on{border-color:rgba(0,0,0,0.12);color:var(--text-on-dark)}
.health-callout-on i{color:var(--color-yellow)}
.health-callout-over{border-color:rgba(231,0,0,0.40);background:linear-gradient(90deg,rgba(231,0,0,0.10),rgba(231,0,0,0.02));color:var(--text-on-dark)}
.health-callout-over i{color:#404040}
.health-callout-under{border-color:rgba(231,0,0,0.32);background:linear-gradient(90deg,rgba(231,0,0,0.08),rgba(231,0,0,0.02));color:var(--text-on-dark)}
.health-callout-under i{color:var(--color-yellow)}

@media (max-width:1100px){.health-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){
  .health-grid{grid-template-columns:1fr}
  .health-compare-bar{padding-top:34px;padding-bottom:34px}
  .health-compare-target-flag,.health-compare-current-label{font-size:9.5px;padding:2px 7px}
}

/* Clickable file name (opens file in new tab) in Project Documents */
.doc-name-open{cursor:pointer;color:var(--text-on-dark);transition:color 0.12s,text-decoration-color 0.12s;text-decoration:underline transparent;text-underline-offset:3px}
.doc-name-open:hover{color:var(--color-yellow);text-decoration-color:var(--color-yellow)}

/* Live-AI chip in greeting */
.ai2-live-chip{display:inline-flex;align-items:center;gap:6px;margin-left:8px;padding:2px 9px;border-radius:10px;font-size:10px;font-weight:600;letter-spacing:0.04em;background:rgba(5,150,105,0.18);color:#047857;border:1px solid rgba(5,150,105,0.32);vertical-align:middle}
.ai2-live-chip.ai2-live-off{background:rgba(231,0,0,0.18);color:#404040;border-color:rgba(231,0,0,0.30)}
.ai2-live-chip a{color:inherit;text-decoration:underline}

/* New folder badges */
.folder-sys-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:10px;font-size:9.5px;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;vertical-align:middle}
.folder-sys-badge-current{background:var(--color-yellow) !important;color:var(--text-on-yellow) !important}
.folder-sys-badge-secondary{background:rgba(37,99,235,0.22) !important;color:#1E40AF !important;border:1px solid rgba(37,99,235,0.35) !important}
.folder-sys-badge-archive{background:rgba(0,0,0,0.10) !important;color:var(--text-muted-on-dark) !important;border:1px solid var(--border-on-dark) !important}
.folder-sys-badge-primary-user{background:rgba(231,0,0,0.14) !important;color:var(--color-yellow) !important;border:1px solid rgba(231,0,0,0.32) !important}

/* Section card styling on dark theme */
.drawing-set-card.section-primary{border-left:2px solid rgba(231,0,0,0.32) !important}
.drawing-set-card.section-secondary{border-left:2px solid rgba(37,99,235,0.32) !important}
.drawing-set-card.section-archive{border-left:2px solid rgba(0,0,0,0.10) !important;opacity:0.92}
.drawing-set-card.system-current{border:1px solid rgba(231,0,0,0.38) !important;box-shadow:0 0 0 3px rgba(231,0,0,0.06) !important}

/* Knowledge bar chip variants */
.ai2-kb-chip.ai2-kb-secondary{background:rgba(37,99,235,0.10) !important;color:#1E40AF !important;border:1px solid rgba(37,99,235,0.22) !important}
.ai2-kb-chip.ai2-kb-secondary i{color:#1E40AF !important}
.ai2-kb-chip.ai2-kb-current{background:linear-gradient(135deg,rgba(231,0,0,0.18),rgba(231,0,0,0.08)) !important;color:var(--text-on-dark) !important;border:1px solid rgba(231,0,0,0.32) !important}
.ai2-kb-chip.ai2-kb-current i{color:var(--color-yellow) !important}
.ai2-kb-chip.ai2-kb-est i{color:#047857 !important}
.ai2-kb-chip.ai2-kb-ignored{background:rgba(0,0,0,0.04) !important;color:var(--text-muted-on-dark) !important;border:1px solid var(--border-on-dark) !important;opacity:1 !important}

/* v5.3 specific extras */
.dash-widget,.dash-kpi,.cost-kpi-card,.cost-search-card,.cost-card,.bidtab-header-card,.bidtab-grid-card{transition:transform 0.18s ease,border-color 0.18s ease,box-shadow 0.18s ease}
.dash-widget:hover,.dash-kpi:hover,.cost-kpi-card:hover,.cost-result-card:hover,.bidpkg-card:hover{transform:translateY(-1px);box-shadow:0 10px 26px rgba(0,0,0,0.35)}
.bidtab-budget-tile{position:relative;overflow:hidden}
.bidtab-budget-tile::after{content:'';position:absolute;top:10px;right:10px;width:12px;height:12px;border-top:1px solid rgba(0,0,0,0.30);border-right:1px solid rgba(0,0,0,0.30);pointer-events:none}
.dash-kpi-feature{position:relative;overflow:hidden}
.dash-kpi-feature::after{content:'';position:absolute;top:10px;right:10px;width:12px;height:12px;border-top:1px solid rgba(0,0,0,0.30);border-right:1px solid rgba(0,0,0,0.30);pointer-events:none}

/* ===== VE LOG → ESTIMATING DETAIL ===== */
/* Matches .tbl / .form-input dark theme. Wraps the savings input with a $ prefix. */
.lv-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  background:rgba(0,0,0,0.02);
  border:1px solid var(--border-on-dark);
  border-radius:var(--radius);
  overflow:hidden;
  margin-top:6px;
}
.lv-table thead th{
  font-size:9.5px;font-weight:700;
  color:var(--gray-400);
  text-transform:uppercase;letter-spacing:0.07em;
  padding:9px 12px;text-align:left;
  background:rgba(0,0,0,0.03);
  border-bottom:1px solid var(--border-on-dark);
}
.lv-table tbody td{
  padding:7px 10px;
  border-bottom:1px solid rgba(0,0,0,0.05);
  font-size:12px;color:var(--gray-700);
  vertical-align:middle;
}
.lv-table tbody tr:last-child td{border-bottom:none}
.lv-table tbody tr:hover td{background:rgba(231,0,0,0.03)}

/* Inline inputs inside the Estimating Detail table */
.lv-table .lv-row-name,
.lv-table .lv-amt-input,
.lv-table .lv-notes-input{
  width:100%;
  background:var(--surface-2);
  border:1px solid var(--border-on-dark);
  border-radius:5px;
  padding:6px 9px;
  font-size:12px;
  color:var(--gray-800);
  font-family:var(--font);
  transition:border-color 0.12s,background 0.12s;
}
.lv-table .lv-row-name:hover,
.lv-table .lv-amt-input:hover,
.lv-table .lv-notes-input:hover{background:var(--surface-3)}
.lv-table .lv-row-name:focus,
.lv-table .lv-amt-input:focus,
.lv-table .lv-notes-input:focus{
  outline:none;
  border-color:var(--kinnect-yellow);
  background:rgba(231,0,0,0.04);
  box-shadow:0 0 0 2px rgba(231,0,0,0.10);
}
.lv-table .lv-row-name::placeholder,
.lv-table .lv-amt-input::placeholder,
.lv-table .lv-notes-input::placeholder{color:var(--gray-400);font-style:italic}

/* $ savings input — right-align, monospace, with a visible $ prefix */
.lv-table .lv-amt-input{
  text-align:right;
  font-family:var(--mono);
  font-weight:700;
  color:#047857;
  padding-left:22px;
  -moz-appearance:textfield;
}
.lv-table .lv-amt-input::-webkit-outer-spin-button,
.lv-table .lv-amt-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
/* $ prefix on the td containing the savings input (uses :has()) */
.lv-table td:has(> .lv-amt-input){position:relative}
.lv-table td:has(> .lv-amt-input)::before{
  content:'$';
  position:absolute;
  left:18px;
  top:50%;
  transform:translateY(-50%);
  font-family:var(--mono);
  font-weight:700;
  font-size:11.5px;
  color:var(--gray-500);
  pointer-events:none;
  z-index:1;
}
.lv-table td:has(> .lv-amt-input:focus)::before{color:var(--kinnect-yellow)}
/* Fallback for browsers without :has() — repeats the $ inline via attr-marker class on the td */
.lv-amt-cell{position:relative}
.lv-amt-cell::before{content:'$';position:absolute;left:18px;top:50%;transform:translateY(-50%);font-family:var(--mono);font-weight:700;font-size:11.5px;color:var(--gray-500);pointer-events:none}

/* =====================================================================
   PROJECT INTELLIGENCE — Dashboard widget + AI Assistant tab UI
   ===================================================================== */

/* --- Dashboard widget (compact summary) --- */
.pi-dash-card{padding:4px 0;color:var(--gray-800)}
.pi-dash-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.pi-dash-head-l{display:flex;align-items:center;gap:10px}
.pi-dash-head-r{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pi-dash-icon{width:36px;height:36px;background:rgba(231,0,0,0.20);color:var(--color-yellow);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:15px;border:1px solid rgba(231,0,0,0.32)}
.pi-dash-eyebrow{font-size:9.5px;font-weight:700;color:#404040;text-transform:uppercase;letter-spacing:0.08em}
.pi-dash-title{font-size:16px;font-weight:700;color:var(--gray-900);letter-spacing:-0.01em;line-height:1.1}
.pi-status{font-size:10px;font-weight:700;padding:4px 10px;border-radius:20px;background:var(--gray-100);color:var(--gray-700);text-transform:uppercase;letter-spacing:0.05em}
.pi-status.s-needs{background:#FFE5E5;color:#404040}
.pi-status.s-running{background:#dbeafe;color:#1d4ed8}
.pi-status.s-ready{background:rgba(231,0,0,0.18);color:#404040}
.pi-status.s-applied{background:#dcfce7;color:#166534}
.pi-dash-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}
.pi-meta-item{background:var(--gray-50);border:1px solid var(--gray-100);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}
.pi-meta-label{font-size:9.5px;font-weight:700;color:var(--gray-500);text-transform:uppercase;letter-spacing:0.07em}
.pi-meta-val{font-size:12.5px;font-weight:700;color:var(--gray-900)}
.pi-meta-val.mono{font-family:var(--mono)}
.pi-dash-summary{font-size:12px;line-height:1.6;color:var(--gray-700);padding:10px 12px;background:rgba(231,0,0,0.06);border-left:2px solid var(--color-yellow);border-radius:0 6px 6px 0;margin-bottom:12px}
.pi-dash-summary strong{color:var(--gray-900);font-weight:600}
.pi-dash-pills{display:flex;gap:6px;flex-wrap:wrap}
.pi-pill{display:inline-flex;align-items:center;gap:5px;background:var(--gray-50);border:1px solid var(--gray-100);color:var(--gray-700);font-size:11px;padding:4px 9px;border-radius:6px;font-weight:600}
.pi-pill i{font-size:10px;color:var(--gray-500)}
.pi-pill-num{font-family:var(--mono);font-weight:700;color:var(--gray-900)}
.pi-pill-red{background:#fef2f2;border-color:#A00000;color:#b91c1c}
.pi-pill-red i,.pi-pill-red .pi-pill-num{color:#b91c1c}
.pi-pill-amber{background:#FFE5E5;border-color:#404040;color:#404040}
.pi-pill-amber i,.pi-pill-amber .pi-pill-num{color:#404040}

/* --- AI Assistant: Chat | Project Intelligence tab toggle --- */
.ai2-mode-tabs{display:inline-flex;gap:2px;background:var(--gray-100);border-radius:var(--radius);padding:3px;margin-bottom:14px;border:1px solid var(--gray-200)}
.ai2-mode-tab{padding:7px 14px;border-radius:5px;font-size:12px;font-weight:600;cursor:pointer;color:var(--gray-500);transition:all 0.15s;border:none;background:none;font-family:var(--font);display:inline-flex;align-items:center;gap:6px}
.ai2-mode-tab:hover:not(.active){color:var(--gray-800);background:rgba(0,0,0,0.04)}
.ai2-mode-tab.active{background:var(--white);color:var(--gray-900);box-shadow:var(--shadow-sm);font-weight:700}
.ai2-mode-tab.active i{color:var(--color-yellow)}
.ai2-mode-panel{display:none}
.ai2-mode-panel.active{display:block}

/* --- AI Assistant: PI Hero --- */
.pi-hero{display:grid;grid-template-columns:1fr 280px;gap:16px;padding:18px 20px;background:linear-gradient(135deg,var(--white) 0%,var(--gray-50) 100%);border:1px solid var(--gray-200);border-radius:var(--radius-lg);margin-bottom:14px;position:relative;overflow:hidden}
.pi-hero::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--color-yellow),rgba(231,0,0,0.30) 70%,transparent)}
.pi-hero-eyebrow{font-size:9.5px;font-weight:700;color:#404040;text-transform:uppercase;letter-spacing:0.08em;display:inline-flex;align-items:center;gap:6px;margin-bottom:6px}
.pi-hero-title{font-size:20px;font-weight:700;color:var(--gray-900);letter-spacing:-0.02em;margin-bottom:6px}
.pi-hero-desc{font-size:12.5px;color:var(--gray-600);line-height:1.6;margin-bottom:12px;max-width:680px}
.pi-hero-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.pi-hero-meta-item{font-size:11.5px;color:var(--gray-600);display:inline-flex;align-items:center;gap:6px}
.pi-hero-meta-item i{color:var(--gray-400);font-size:10px}
.pi-hero-meta-item strong{color:var(--gray-900);font-weight:600}
.pi-status-badge{font-size:9.5px;font-weight:700;padding:3px 9px;border-radius:20px;background:#FFE5E5;color:#404040;text-transform:uppercase;letter-spacing:0.05em}
.pi-status-badge.s-ready{background:rgba(231,0,0,0.20);color:#404040}
.pi-status-badge.s-applied{background:#dcfce7;color:#166534}
.pi-status-badge.s-running{background:#dbeafe;color:#1d4ed8}
.pi-hero-right{display:flex;flex-direction:column;align-items:stretch;gap:8px}
.pi-hero-cta{font-size:13px;padding:11px 16px;justify-content:center}
.pi-hero-cta:disabled{opacity:0.45;cursor:not-allowed}
.pi-hero-hint{font-size:10.5px;color:var(--gray-500);text-align:center;line-height:1.4}
.pi-hero-hint strong{color:#404040;font-weight:600}

/* --- Disclaimer --- */
.pi-disclaimer{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;background:rgba(231,0,0,0.08);border:1px solid rgba(231,0,0,0.25);border-radius:var(--radius);margin-bottom:14px;font-size:11.5px;color:var(--gray-700);line-height:1.55}
.pi-disclaimer i{color:#404040;font-size:13px;margin-top:1px}

/* --- Progress --- */
.pi-progress{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:18px 20px;margin-bottom:14px}
.pi-progress-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.pi-progress-spinner{width:34px;height:34px;background:rgba(231,0,0,0.18);color:#404040;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:14px}
.pi-progress-title{font-size:14px;font-weight:700;color:var(--gray-900)}
.pi-progress-sub{font-size:12px;color:var(--gray-500);margin-top:2px}
.pi-progress-steps{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.pi-progress-step{display:flex;align-items:center;gap:9px;padding:6px 10px;border-radius:6px;font-size:12px;color:var(--gray-500);background:var(--gray-50)}
.pi-progress-step.active{color:var(--gray-900);background:rgba(231,0,0,0.10)}
.pi-progress-step.done{color:var(--gray-700)}
.pi-progress-step .ps-icon{width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;background:var(--gray-100);color:var(--gray-400);flex-shrink:0}
.pi-progress-step.active .ps-icon{background:var(--color-yellow);color:#000}
.pi-progress-step.done .ps-icon{background:#16a34a;color:#fff}
.pi-progress-bar{height:5px;background:var(--gray-100);border-radius:3px;overflow:hidden}
.pi-progress-fill{height:100%;background:linear-gradient(90deg,var(--color-yellow),#C40000);border-radius:3px;transition:width 0.4s}

/* --- Primary docs list --- */
.pi-doc-list{display:flex;flex-direction:column;gap:6px}
.pi-doc-row{display:flex;align-items:center;gap:10px;padding:9px 12px;background:var(--gray-50);border:1px solid var(--gray-100);border-radius:8px}
.pi-doc-row i.pi-doc-icon{color:var(--color-yellow);font-size:13px;width:18px;text-align:center}
.pi-doc-name{flex:1;font-size:12px;font-weight:600;color:var(--gray-800)}
.pi-doc-meta{font-size:10.5px;color:var(--gray-500)}
.pi-doc-badge{font-size:9.5px;font-weight:700;letter-spacing:0.05em;padding:2px 7px;border-radius:6px;text-transform:uppercase;background:rgba(231,0,0,0.18);color:#404040;border:1px solid rgba(231,0,0,0.30)}

/* --- PI sub-tabs (Executive Summary, Risks, etc.) --- */
/* 14 tabs total — wrap to multiple rows so every tab is always visible
   regardless of viewport width. */
.pi-sub-tabs{display:flex;gap:3px;row-gap:4px;background:var(--gray-100);border-radius:var(--radius);padding:4px;margin-bottom:14px;flex-wrap:wrap;border:1px solid var(--gray-200)}
.pi-sub-tab{padding:6px 11px;border-radius:5px;font-size:11.5px;font-weight:500;cursor:pointer;color:var(--gray-500);transition:all 0.15s;border:none;background:none;font-family:var(--font);white-space:nowrap;display:inline-flex;align-items:center;gap:5px;flex:0 0 auto}
.pi-sub-tab:hover:not(.active){color:var(--gray-800);background:rgba(0,0,0,0.50)}
.pi-sub-tab.active{background:var(--white);color:var(--gray-900);font-weight:700;box-shadow:inset 0 -2px 0 var(--color-yellow),var(--shadow-sm)}
.pi-sub-tab i{font-size:10px;opacity:0.8}
.pi-sub-tab.active i{color:var(--color-yellow)}
.pi-sub-panel{display:none}
.pi-sub-panel.active{display:block}

/* --- Finding cards --- */
.pi-finding{background:var(--white);border:1px solid var(--gray-200);border-radius:8px;padding:12px 14px;margin-bottom:8px;display:flex;flex-direction:column;gap:8px;transition:border-color 0.15s}
.pi-finding:hover{border-color:var(--gray-300)}
.pi-finding.accepted{border-color:#16a34a;background:#f0fdf4}
.pi-finding.rejected{border-color:#A00000;background:#fef2f2;opacity:0.7}
.pi-finding-head{display:flex;align-items:flex-start;gap:10px;justify-content:space-between}
.pi-finding-title{font-size:13px;font-weight:700;color:var(--gray-900);flex:1}
.pi-finding-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.pi-finding-body{font-size:12px;line-height:1.6;color:var(--gray-700);white-space:pre-wrap}
.pi-finding-body strong{color:var(--gray-900)}
.pi-finding-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;margin-top:4px}
.pi-finding-grid .pi-kv{background:var(--gray-50);border:1px solid var(--gray-100);border-radius:6px;padding:6px 9px;display:flex;flex-direction:column;gap:2px}
.pi-kv-label{font-size:9.5px;color:var(--gray-500);font-weight:700;text-transform:uppercase;letter-spacing:0.06em}
.pi-kv-val{font-size:12px;color:var(--gray-900);font-weight:600}
.pi-finding-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px dashed var(--gray-200);padding-top:8px;flex-wrap:wrap}
.pi-finding-src{display:flex;gap:5px;flex-wrap:wrap}
.pi-src-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;background:#eef2ff;border:1px solid #c7d2fe;color:#7C3AED;font-size:10px;border-radius:4px;font-family:var(--mono)}
.pi-src-chip.inferred{background:#faf5ff;border-color:#6B21A8;color:#7C3AED}
.pi-finding-actions{display:flex;gap:5px}
.pi-finding-actions button{padding:4px 9px;font-size:11px;border-radius:5px;border:1px solid var(--gray-300);background:var(--white);color:var(--gray-700);cursor:pointer;display:inline-flex;align-items:center;gap:4px;font-weight:600;font-family:var(--font)}
.pi-finding-actions button:hover{border-color:var(--color-yellow);color:var(--gray-900)}
.pi-finding-actions .pi-act-accept.on{background:#dcfce7;border-color:#16a34a;color:#166534}
.pi-finding-actions .pi-act-reject.on{background:#fee2e2;border-color:#ef4444;color:#b91c1c}

/* --- Confidence + severity badges --- */
.pi-confidence{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;font-size:10px;font-weight:700;border-radius:5px;text-transform:uppercase;letter-spacing:0.05em;background:var(--gray-100);color:var(--gray-600)}
.pi-confidence.high{background:#dcfce7;color:#166534}
.pi-confidence.medium{background:#FFE5E5;color:#404040}
.pi-confidence.low{background:#fee2e2;color:#b91c1c}
.pi-sev{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;font-size:10px;font-weight:700;border-radius:4px;text-transform:uppercase;letter-spacing:0.05em}
.pi-sev.low{background:#dcfce7;color:#166534}
.pi-sev.medium{background:#FFE5E5;color:#404040}
.pi-sev.high{background:#fee2e2;color:#b91c1c}
.pi-impact{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;font-size:10px;font-weight:700;border-radius:4px;background:var(--gray-100);color:var(--gray-600);text-transform:uppercase;letter-spacing:0.05em}
.pi-impact.cost-up{background:#fee2e2;color:#b91c1c}
.pi-impact.cost-down{background:#dcfce7;color:#166534}
.pi-impact.cost-none{background:var(--gray-100);color:var(--gray-600)}
.pi-impact.cost-unknown{background:#faf5ff;color:#7C3AED}

/* --- Results tables, narrative diff, info list --- */
.pi-results-table{width:100%;border-collapse:collapse;margin-top:4px}
.pi-results-table th{font-size:9.5px;font-weight:700;color:var(--gray-500);text-transform:uppercase;letter-spacing:0.07em;padding:8px 10px;text-align:left;border-bottom:1px solid var(--gray-200);background:var(--gray-50)}
.pi-results-table td{padding:9px 10px;border-bottom:1px solid var(--gray-100);font-size:11.5px;color:var(--gray-700);vertical-align:top}
.pi-results-table tr:hover td{background:rgba(231,0,0,0.04)}
.pi-narrative-diff{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}
.pi-narrative-col{background:var(--gray-50);border:1px solid var(--gray-100);border-radius:8px;padding:12px}
.pi-narrative-col.proposed{border-color:rgba(231,0,0,0.40);background:rgba(231,0,0,0.06)}
.pi-narrative-col-label{font-size:9.5px;font-weight:700;color:var(--gray-500);text-transform:uppercase;letter-spacing:0.07em;margin-bottom:8px;display:flex;align-items:center;gap:5px}
.pi-narrative-col.proposed .pi-narrative-col-label{color:#404040}
.pi-narrative-text{font-size:12px;color:var(--gray-700);line-height:1.65;white-space:pre-wrap}
.pi-narrative-textarea{width:100%;min-height:160px;background:var(--white);border:1px solid var(--gray-300);color:var(--gray-900);font-family:var(--font);font-size:12px;padding:10px;border-radius:6px;resize:vertical;line-height:1.6}
.pi-narrative-textarea:focus{outline:none;border-color:var(--color-yellow)}
.pi-info-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.pi-info-field{background:var(--white);border:1px solid var(--gray-200);border-radius:8px;padding:10px 12px}
.pi-info-field.changed{border-color:rgba(231,0,0,0.40);background:rgba(231,0,0,0.06)}
.pi-info-field-label{font-size:9.5px;font-weight:700;color:var(--gray-500);text-transform:uppercase;letter-spacing:0.07em;margin-bottom:4px;display:flex;justify-content:space-between;align-items:center}
.pi-info-field-current{font-size:11px;color:var(--gray-500);font-weight:500;text-decoration:line-through;margin-bottom:2px}
.pi-info-field-proposed{font-size:13px;color:var(--gray-900);font-weight:700}
.pi-info-field-proposed.mono{font-family:var(--mono)}
.pi-info-field-proposed.unknown{color:var(--gray-500);font-weight:500;font-style:italic}
.pi-exec{background:rgba(231,0,0,0.06);border:1px solid rgba(231,0,0,0.25);border-left:3px solid var(--color-yellow);border-radius:0 8px 8px 0;padding:14px 16px;font-size:13px;color:var(--gray-800);line-height:1.7}
.pi-exec strong{color:var(--gray-900)}
.pi-exec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-top:12px}
.pi-exec-stat{background:var(--gray-50);border:1px solid var(--gray-100);border-radius:8px;padding:10px}
.pi-exec-stat-label{font-size:9.5px;font-weight:700;color:var(--gray-500);text-transform:uppercase;letter-spacing:0.07em;margin-bottom:4px}
.pi-exec-stat-val{font-size:16px;font-weight:700;color:var(--gray-900);font-family:var(--mono)}
.pi-exec-stat-sub{font-size:10.5px;color:var(--gray-500);margin-top:2px}
.pi-log-entry{display:flex;gap:10px;padding:10px 12px;border-left:2px solid var(--color-yellow);background:var(--gray-50);border-radius:0 6px 6px 0;margin-bottom:6px}
.pi-log-time{font-size:10.5px;color:var(--gray-500);font-family:var(--mono);min-width:120px}
.pi-log-body{font-size:12px;color:var(--gray-700);line-height:1.5;flex:1}
.pi-log-body strong{color:var(--gray-900)}

/* =====================================================================
   AI VE CANDIDATE GENERATOR — modal doc tree + candidate review cards
   ===================================================================== */
.vegen-doc-tree{border:1px solid var(--gray-300);border-radius:var(--radius);background:var(--gray-50);max-height:280px;overflow-y:auto;padding:6px}
.vegen-folder{margin-bottom:4px;border-radius:6px;overflow:hidden}
.vegen-folder-head{display:flex;align-items:center;gap:9px;padding:8px 10px;background:var(--white);border:1px solid var(--gray-200);border-radius:6px;cursor:pointer;transition:background 0.12s;font-size:12px;font-weight:600;color:var(--gray-900)}
.vegen-folder-head:hover{background:rgba(231,0,0,0.06);border-color:rgba(231,0,0,0.30)}
.vegen-folder-cb{accent-color:var(--color-yellow);width:14px;height:14px;cursor:pointer;flex-shrink:0}
.vegen-folder-name{flex:1;font-weight:700}
.vegen-folder-count{font-size:10.5px;color:var(--gray-500);font-weight:500}
.vegen-folder-files{padding:6px 0 6px 32px;display:flex;flex-direction:column;gap:3px}
.vegen-file{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:5px;cursor:pointer;font-size:11.5px;color:var(--gray-700);transition:background 0.1s}
.vegen-file:hover{background:rgba(231,0,0,0.06);color:var(--gray-900)}
.vegen-file-cb{accent-color:var(--color-yellow);width:13px;height:13px;cursor:pointer;flex-shrink:0}
.vegen-file i{color:var(--color-yellow);font-size:11px;width:14px}
.vegen-templates{display:flex;flex-wrap:wrap;gap:5px}
.vegen-tmpl-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--gray-300);background:var(--white);color:var(--gray-700);font-size:10.5px;font-weight:600;border-radius:5px;cursor:pointer;font-family:var(--font);transition:all 0.12s}
.vegen-tmpl-btn:hover{background:rgba(231,0,0,0.10);border-color:rgba(231,0,0,0.45);color:var(--gray-900)}
.vegen-tmpl-btn i{color:#404040;font-size:10px}
.ve-cand-card{background:var(--white);border:1px solid var(--gray-200);border-radius:8px;padding:12px 14px;margin-bottom:8px;transition:border-color 0.15s}
.ve-cand-card:hover{border-color:rgba(231,0,0,0.35)}
.ve-cand-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px}
.ve-cand-title{flex:1;font-size:13px;font-weight:700;color:var(--gray-900);line-height:1.4}
.ve-cand-savings{font-family:var(--mono);font-size:14px;font-weight:700;color:#166534;background:#dcfce7;border:1px solid #86efac;padding:3px 10px;border-radius:5px;white-space:nowrap}
.ve-cand-meta{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:8px}
.ve-cand-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px;margin-bottom:10px}
.ve-cand-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px dashed var(--gray-200);padding-top:9px;flex-wrap:wrap}

/* --- Responsive --- */
@media (max-width:960px){
  .pi-hero{grid-template-columns:1fr}
  .pi-hero-right{align-items:stretch}
  .pi-dash-meta{grid-template-columns:repeat(2,1fr)}
  .pi-narrative-diff{grid-template-columns:1fr}
}

/* =====================================================================
   DARK-THEME OVERRIDES for AI Assistant → Project Intelligence + AI VE Gen
   (Site runs in dark theme; the original PI rules above used light-theme
    colors. These overrides flip badges/chips/cards to dark-theme tints
    so text stays readable on the dark canvas.)
   ===================================================================== */

/* --- Dashboard widget --- */
.pi-dash-eyebrow,
.pi-hero-eyebrow,
.pi-hero-hint strong,
.pi-narrative-col.proposed .pi-narrative-col-label{color:var(--color-yellow)}
.pi-status{background:rgba(0,0,0,0.06);color:var(--gray-600)}
.pi-status.s-needs{background:rgba(231,0,0,0.18);color:#404040}
.pi-status.s-running{background:rgba(37,99,235,0.18);color:#1E40AF}
.pi-status.s-ready{background:rgba(231,0,0,0.18);color:var(--color-yellow)}
.pi-status.s-applied{background:rgba(5,150,105,0.20);color:#047857}
.pi-meta-item{background:rgba(0,0,0,0.03);border-color:rgba(0,0,0,0.06)}
.pi-dash-summary{background:rgba(231,0,0,0.06);border-left-color:rgba(231,0,0,0.55);color:var(--gray-700)}
.pi-pill{background:rgba(0,0,0,0.05);border-color:rgba(0,0,0,0.08);color:var(--gray-700)}
.pi-pill-red{background:rgba(239,68,68,0.12);border-color:rgba(239,68,68,0.30);color:#A00000}
.pi-pill-red i,.pi-pill-red .pi-pill-num{color:#A00000}
.pi-pill-amber{background:rgba(231,0,0,0.12);border-color:rgba(231,0,0,0.30);color:#404040}
.pi-pill-amber i,.pi-pill-amber .pi-pill-num{color:#404040}

/* --- AI Assistant mode tabs (Chat | Project Intelligence) --- */
.ai2-mode-tabs{background:rgba(0,0,0,0.04);border-color:rgba(0,0,0,0.08)}
.ai2-mode-tab{color:var(--gray-500)}
.ai2-mode-tab:hover:not(.active){color:var(--gray-800);background:rgba(0,0,0,0.04)}
.ai2-mode-tab.active{background:var(--surface-2);color:var(--gray-900);box-shadow:inset 0 -2px 0 var(--color-yellow),var(--shadow-sm)}
.ai2-mode-tab.active i{color:var(--color-yellow)}

/* --- AI Assistant → PI Hero --- */
.pi-hero{background:linear-gradient(135deg,var(--surface-1) 0%,var(--surface-2) 100%);border-color:rgba(0,0,0,0.08)}
.pi-hero-desc{color:var(--gray-500)}
.pi-hero-meta-item{color:var(--gray-500)}
.pi-hero-meta-item i{color:var(--gray-400)}
.pi-hero-meta-item strong{color:var(--gray-800)}
.pi-status-badge{background:rgba(231,0,0,0.20);color:#404040}
.pi-status-badge.s-ready{background:rgba(231,0,0,0.20);color:var(--color-yellow)}
.pi-status-badge.s-applied{background:rgba(5,150,105,0.20);color:#047857}
.pi-status-badge.s-running{background:rgba(37,99,235,0.20);color:#1E40AF}
.pi-hero-hint{color:var(--gray-400)}

/* --- Disclaimer --- */
.pi-disclaimer{background:rgba(231,0,0,0.06);border-color:rgba(231,0,0,0.18);color:var(--gray-500)}
.pi-disclaimer i{color:var(--color-yellow)}

/* --- Progress --- */
.pi-progress{background:var(--surface-1);border-color:rgba(0,0,0,0.08)}
.pi-progress-spinner{background:rgba(231,0,0,0.18);color:var(--color-yellow)}
.pi-progress-title{color:var(--gray-900)}
.pi-progress-step{background:rgba(0,0,0,0.03);color:var(--gray-500)}
.pi-progress-step.active{background:rgba(231,0,0,0.10);color:var(--gray-800)}
.pi-progress-step.done{color:var(--gray-700)}
.pi-progress-step .ps-icon{background:rgba(0,0,0,0.08);color:var(--gray-400)}
.pi-progress-step.active .ps-icon{background:var(--color-yellow);color:#000}
.pi-progress-step.done .ps-icon{background:#16a34a;color:#fff}
.pi-progress-bar{background:rgba(0,0,0,0.08)}

/* --- Primary documents list --- */
.pi-doc-row{background:rgba(0,0,0,0.03);border-color:rgba(0,0,0,0.06)}
.pi-doc-row .pi-doc-name{color:var(--gray-800)}
.pi-doc-row .pi-doc-meta{color:var(--gray-500)}
.pi-doc-badge{background:rgba(231,0,0,0.18);color:var(--color-yellow);border-color:rgba(231,0,0,0.30)}

/* --- PI sub-tabs --- */
.pi-sub-tabs{background:rgba(0,0,0,0.04);border-color:rgba(0,0,0,0.08)}
.pi-sub-tab{color:var(--gray-500)}
.pi-sub-tab:hover:not(.active){color:var(--gray-800);background:rgba(0,0,0,0.04)}
.pi-sub-tab.active{background:var(--surface-2);color:var(--gray-900);box-shadow:inset 0 -2px 0 var(--color-yellow),var(--shadow-sm)}
.pi-sub-tab.active i{color:var(--color-yellow)}

/* --- Finding cards --- */
.pi-finding{background:var(--surface-1);border-color:rgba(0,0,0,0.08)}
.pi-finding:hover{border-color:rgba(0,0,0,0.16)}
.pi-finding.accepted{background:rgba(5,150,105,0.06);border-color:rgba(5,150,105,0.40)}
.pi-finding.rejected{background:rgba(239,68,68,0.04);border-color:rgba(239,68,68,0.30)}
.pi-finding-title{color:var(--gray-900)}
.pi-finding-body{color:var(--gray-600)}
.pi-finding-body strong{color:var(--gray-800)}
.pi-finding-grid .pi-kv{background:rgba(0,0,0,0.03);border-color:rgba(0,0,0,0.06)}
.pi-kv-label{color:var(--gray-400)}
.pi-kv-val{color:var(--gray-800)}
.pi-finding-foot{border-top-color:rgba(0,0,0,0.06)}
.pi-finding-actions button{background:var(--surface-2);border-color:rgba(0,0,0,0.10);color:var(--gray-600)}
.pi-finding-actions button:hover{border-color:var(--color-yellow);color:var(--gray-800)}
.pi-finding-actions .pi-act-accept.on{background:rgba(5,150,105,0.22);border-color:#16a34a;color:#047857}
.pi-finding-actions .pi-act-reject.on{background:rgba(239,68,68,0.22);border-color:#ef4444;color:#A00000}

/* --- Confidence + severity + impact badges --- */
.pi-confidence{background:rgba(0,0,0,0.06);color:var(--gray-500)}
.pi-confidence.high{background:rgba(5,150,105,0.18);color:#047857}
.pi-confidence.medium{background:rgba(231,0,0,0.18);color:#404040}
.pi-confidence.low{background:rgba(239,68,68,0.18);color:#A00000}
.pi-sev.low{background:rgba(5,150,105,0.18);color:#047857}
.pi-sev.medium{background:rgba(231,0,0,0.18);color:#404040}
.pi-sev.high{background:rgba(239,68,68,0.18);color:#A00000}
.pi-impact{background:rgba(0,0,0,0.06);color:var(--gray-500)}
.pi-impact.cost-up{background:rgba(239,68,68,0.16);color:#A00000}
.pi-impact.cost-down{background:rgba(5,150,105,0.18);color:#047857}
.pi-impact.cost-none{background:rgba(0,0,0,0.06);color:var(--gray-500)}
.pi-impact.cost-unknown{background:rgba(124,58,237,0.16);color:#6B21A8}

/* --- Source chips --- */
.pi-src-chip{background:rgba(37,99,235,0.12);border-color:rgba(37,99,235,0.28);color:#1E40AF}
.pi-src-chip.inferred{background:rgba(124,58,237,0.12);border-color:rgba(124,58,237,0.28);color:#6B21A8}

/* --- Tables in PI --- */
.pi-results-table th{color:var(--gray-400);border-bottom-color:rgba(0,0,0,0.10);background:rgba(0,0,0,0.03);padding:7px 8px;font-size:9px}
.pi-results-table td{border-bottom-color:rgba(0,0,0,0.06);color:var(--gray-700);padding:7px 8px;font-size:11px}
.pi-results-table tr:hover td{background:rgba(231,0,0,0.04)}
/* Sub-panels that contain a wide results-table can scroll horizontally if the
   viewport is narrower than the table needs. Tighter cells above mean this
   rarely triggers at desktop widths. */
.pi-sub-panel{overflow-x:auto;-webkit-overflow-scrolling:touch}
/* Compact action buttons inside table rows — icon + short label so 8-9 col
   tables (Open Decisions, VE Opps) fit without overflowing the card. */
.pi-results-table .pi-finding-actions{flex-wrap:nowrap;gap:3px;justify-content:flex-end}
.pi-results-table .pi-finding-actions button{padding:3px 6px;font-size:10px;gap:3px}
.pi-results-table .pi-finding-actions button i{font-size:9px}

/* --- Narrative diff --- */
.pi-narrative-col{background:rgba(0,0,0,0.03);border-color:rgba(0,0,0,0.06)}
.pi-narrative-col.proposed{background:rgba(231,0,0,0.05);border-color:rgba(231,0,0,0.32)}
.pi-narrative-col-label{color:var(--gray-400)}
.pi-narrative-text{color:var(--gray-700)}
.pi-narrative-textarea{background:var(--surface-2);border-color:rgba(0,0,0,0.10);color:var(--gray-800)}
.pi-narrative-textarea:focus{outline:none;border-color:var(--color-yellow)}

/* --- Info field list --- */
.pi-info-field{background:var(--surface-1);border-color:rgba(0,0,0,0.06)}
.pi-info-field.changed{background:rgba(231,0,0,0.05);border-color:rgba(231,0,0,0.32)}
.pi-info-field-label{color:var(--gray-400)}
.pi-info-field-current{color:var(--gray-500)}
.pi-info-field-proposed{color:var(--gray-900)}
.pi-info-field-proposed.unknown{color:var(--gray-500)}

/* --- Executive summary --- */
.pi-exec{background:rgba(231,0,0,0.05);border-color:rgba(231,0,0,0.20);border-left-color:var(--color-yellow);color:var(--gray-700)}
.pi-exec strong{color:var(--gray-900)}
.pi-exec-stat{background:rgba(0,0,0,0.03);border-color:rgba(0,0,0,0.06)}
.pi-exec-stat-label{color:var(--gray-400)}
.pi-exec-stat-val{color:var(--gray-900)}
.pi-exec-stat-sub{color:var(--gray-500)}

/* --- Change log --- */
.pi-log-entry{background:rgba(0,0,0,0.03);border-left-color:var(--color-yellow)}
.pi-log-time{color:var(--gray-400)}
.pi-log-body{color:var(--gray-700)}
.pi-log-body strong{color:var(--gray-900)}

/* --- AI VE Generator: doc tree + candidate cards --- */
.vegen-doc-tree{background:rgba(0,0,0,0.02);border-color:rgba(0,0,0,0.10)}
.vegen-folder-head{background:rgba(0,0,0,0.04);border-color:rgba(0,0,0,0.06);color:var(--gray-800)}
.vegen-folder-head:hover{background:rgba(231,0,0,0.08);border-color:rgba(231,0,0,0.30)}
.vegen-folder-count{color:var(--gray-500)}
.vegen-file{color:var(--gray-600)}
.vegen-file:hover{background:rgba(0,0,0,0.04);color:var(--gray-800)}
.vegen-tmpl-btn{background:var(--surface-2);border-color:rgba(0,0,0,0.10);color:var(--gray-700)}
.vegen-tmpl-btn:hover{background:rgba(231,0,0,0.10);border-color:rgba(231,0,0,0.40);color:var(--gray-900)}
.vegen-tmpl-btn i{color:var(--color-yellow)}

.ve-cand-card{background:var(--surface-1);border-color:rgba(0,0,0,0.08)}
.ve-cand-card:hover{border-color:rgba(231,0,0,0.32)}
.ve-cand-title{color:var(--gray-900)}
.ve-cand-savings{background:rgba(5,150,105,0.18);border:1px solid rgba(5,150,105,0.40);color:#047857}
.ve-cand-foot{border-top-color:rgba(0,0,0,0.06)}

/* --- Empty-state inside PI --- */
#pi-empty-card .empty-state p{color:var(--gray-500)}
#pi-empty-card .empty-state p strong{color:var(--gray-800)}

/* =====================================================================
   PLAN ROOM — folder drop zone (GC-side upload via drag-drop)
   ===================================================================== */
.planroom-dropzone{margin-top:8px;border:2px dashed rgba(0,0,0,0.14);border-radius:8px;padding:18px 14px;text-align:center;cursor:pointer;transition:all 0.15s;background:rgba(0,0,0,0.02)}
.planroom-dropzone:hover{border-color:rgba(231,0,0,0.4);background:rgba(231,0,0,0.04)}
.planroom-dropzone.drag-over{border-color:var(--color-yellow);background:rgba(231,0,0,0.10);transform:scale(1.005)}
.planroom-dropzone i{font-size:22px;color:var(--gray-400);margin-bottom:6px;display:block}
.planroom-dropzone.drag-over i{color:var(--color-yellow)}
.planroom-dropzone-text{font-size:12px;font-weight:600;color:var(--gray-700)}
.planroom-dropzone-sub{font-size:10.5px;color:var(--gray-400);margin-top:2px}

/* =====================================================================
   PUBLIC PLAN ROOM — what subcontractors see when they click the email link.
   Full-screen takeover with branded header. No sidebar, no internal nav.
   ===================================================================== */
.planroom-public-overlay{position:fixed;inset:0;z-index:99999;background:linear-gradient(180deg,#F7F7F7 0%,#FFFFFF 100%);display:none;flex-direction:column;overflow:hidden;color:var(--gray-800)}
.planroom-public-overlay.show{display:flex}
body.planroom-public-active{overflow:hidden}
body.planroom-public-active > .app,
body.planroom-public-active > .company-overlay,
body.planroom-public-active > .login-overlay,
body.planroom-public-active > .modal-overlay,
body.planroom-public-active > .toast{display:none !important}

.pr-header{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;background:#F7F7F7;border-bottom:1px solid rgba(0,0,0,0.08)}
.pr-brand{display:flex;align-items:center;gap:12px}
.pr-brand-mark{width:36px;height:36px;background:var(--color-yellow);border-radius:9px;display:flex;align-items:center;justify-content:center;color:#000;font-size:16px}
.pr-brand-name{font-size:14px;font-weight:700;color:#fff;letter-spacing:-0.01em}
.pr-brand-sub{font-size:10.5px;color:var(--gray-500);letter-spacing:0.04em;text-transform:uppercase}
.pr-secured{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--gray-500);padding:6px 10px;background:rgba(5,150,105,0.10);border:1px solid rgba(5,150,105,0.30);border-radius:6px}
.pr-secured i{color:#047857}

.pr-body{flex:1;overflow-y:auto;padding:28px 32px;max-width:1200px;margin:0 auto;width:100%}
.pr-hero{background:linear-gradient(135deg,var(--surface-1) 0%,var(--surface-2) 100%);border:1px solid rgba(0,0,0,0.08);border-radius:14px;padding:24px 28px;margin-bottom:20px;position:relative;overflow:hidden}
.pr-hero::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-yellow),rgba(231,0,0,0.30) 70%,transparent)}
.pr-hero-eyebrow{font-size:10px;font-weight:700;color:var(--color-yellow);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:6px}
.pr-hero-title{font-size:24px;font-weight:700;color:var(--gray-900);letter-spacing:-0.02em;margin-bottom:6px}
.pr-hero-meta{font-size:12.5px;color:var(--gray-500);line-height:1.6}
.pr-hero-meta strong{color:var(--gray-800)}
.pr-hero-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-top:16px}
.pr-stat{background:rgba(0,0,0,0.03);border:1px solid rgba(0,0,0,0.06);border-radius:8px;padding:10px 12px}
.pr-stat-label{font-size:9.5px;font-weight:700;color:var(--gray-400);text-transform:uppercase;letter-spacing:0.07em}
.pr-stat-val{font-size:14px;font-weight:700;color:var(--gray-900);margin-top:2px;font-family:var(--mono)}
.pr-stat-val.due{color:var(--color-yellow)}

.pr-section{background:var(--surface-1);border:1px solid rgba(0,0,0,0.08);border-radius:12px;padding:20px 22px;margin-bottom:16px}
.pr-section-title{font-size:13px;font-weight:700;color:var(--gray-900);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:14px;display:flex;align-items:center;gap:7px}
.pr-section-title i{color:var(--color-yellow)}
.pr-folder{background:rgba(0,0,0,0.03);border:1px solid rgba(0,0,0,0.06);border-radius:9px;margin-bottom:8px;overflow:hidden}
.pr-folder-head{display:flex;align-items:center;gap:10px;padding:11px 14px;cursor:pointer;background:rgba(0,0,0,0.02)}
.pr-folder-head:hover{background:rgba(231,0,0,0.04)}
.pr-folder-head i.fa-folder{color:var(--color-yellow)}
.pr-folder-name{flex:1;font-size:12.5px;font-weight:700;color:var(--gray-900)}
.pr-folder-count{font-size:10.5px;color:var(--gray-500)}
.pr-folder-body{display:none;padding:4px 14px 12px}
.pr-folder-body.open{display:block}
.pr-file{display:flex;align-items:center;gap:10px;padding:8px 11px;border-radius:6px;background:rgba(0,0,0,0.03);margin-bottom:4px;transition:background 0.12s}
.pr-file:hover{background:rgba(231,0,0,0.06)}
.pr-file-icon{color:#A00000;font-size:14px;width:18px;text-align:center}
.pr-file-icon.xls{color:#047857}
.pr-file-icon.dwg{color:#1E40AF}
.pr-file-icon.doc{color:#1E40AF}
.pr-file-name{flex:1;font-size:12px;color:var(--gray-800);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pr-file-meta{font-size:10.5px;color:var(--gray-500);margin-right:8px}
.pr-file-actions{display:flex;gap:5px}
.pr-file-actions button{padding:4px 9px;font-size:11px;border:1px solid rgba(0,0,0,0.10);background:var(--surface-2);color:var(--gray-700);border-radius:5px;cursor:pointer;font-family:var(--font);font-weight:600;display:inline-flex;align-items:center;gap:4px}
.pr-file-actions button:hover{border-color:var(--color-yellow);color:var(--gray-900)}
.pr-file-actions button.primary{background:var(--color-yellow);color:#000;border-color:var(--color-yellow)}

.pr-scope-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;background:rgba(231,0,0,0.10);border:1px solid rgba(231,0,0,0.25);color:var(--color-yellow);border-radius:6px;font-size:11px;font-weight:700;margin:0 4px 4px 0}

.pr-blocked{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;padding:40px;text-align:center}
.pr-blocked i{font-size:48px;color:#A00000;margin-bottom:14px}
.pr-blocked h2{font-size:20px;font-weight:700;color:var(--gray-900);margin-bottom:8px}
.pr-blocked p{font-size:13px;color:var(--gray-500);max-width:420px;line-height:1.6}

.pr-footer{padding:16px 32px;border-top:1px solid rgba(0,0,0,0.08);background:#F7F7F7;font-size:10.5px;color:var(--gray-500);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}

/* PDF preview modal */
.pr-preview-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.85);z-index:100000;display:none;align-items:center;justify-content:center;padding:24px}
.pr-preview-overlay.show{display:flex}
.pr-preview-frame{background:#fff;width:100%;max-width:960px;height:80vh;border-radius:10px;display:flex;flex-direction:column;overflow:hidden}
.pr-preview-head{display:flex;align-items:center;justify-content:space-between;padding:11px 16px;background:var(--surface-2);border-bottom:1px solid rgba(0,0,0,0.10)}
.pr-preview-title{font-size:12.5px;font-weight:700;color:var(--gray-900)}
.pr-preview-close{background:none;border:none;color:var(--gray-700);cursor:pointer;font-size:18px}
.pr-preview-body{flex:1;display:flex;align-items:center;justify-content:center;background:#FFFFFF;color:var(--gray-500);font-size:13px;text-align:center;padding:30px}


/* =====================================================================
   TAKEOFFS — Professional plan-based takeoff workspace (v2)
   ===================================================================== */

/* Save status pill */
.to-save-status{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--gray-500);padding:4px 9px;background:rgba(0,0,0,0.04);border:1px solid var(--border-on-dark);border-radius:6px}
.to-save-status.saving{color:#404040}
.to-save-status.unsaved{color:#404040}
.to-save-status.saved{color:#047857}

/* Source pill */
.to-source-pill{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;color:var(--gray-500);padding:5px 9px;background:rgba(231,0,0,0.06);border:1px solid rgba(231,0,0,0.20);border-radius:5px;margin-bottom:8px}
.to-source-pill strong{color:var(--gray-800);font-weight:600}

/* Filter row inside left pane */
.to-filter-row{margin:6px 0 8px}
.to-filter{font-size:11px;padding:5px 9px}

/* Right-side tab bar */
.to-tabs{display:flex;gap:2px;background:var(--gray-100);border-radius:var(--radius);padding:3px;margin-bottom:12px;flex-wrap:wrap;border:1px solid var(--gray-200)}
.to-tab{flex:1 0 auto;padding:6px 9px;border-radius:5px;font-size:11px;font-weight:600;cursor:pointer;color:var(--gray-500);transition:all 0.15s;border:none;background:none;font-family:var(--font);white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:0}
.to-tab:hover:not(.active){color:var(--gray-800);background:rgba(0,0,0,0.04)}
.to-tab.active{background:var(--surface-2);color:var(--gray-900);box-shadow:inset 0 -2px 0 var(--color-yellow),var(--shadow-sm)}
.to-tab.active i{color:var(--color-yellow)}
.to-tab i{font-size:10px;opacity:0.85}
.to-tab-panel{display:none}
.to-tab-panel.active{display:block}

/* Sheet scale + status badges in left sheet list */
.to-sheet-item{position:relative}
.to-scale-pill{display:inline-flex;align-items:center;gap:3px;font-size:8.5px;font-weight:700;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:0.04em;background:rgba(231,0,0,0.22);color:#404040;border:1px solid rgba(231,0,0,0.40);margin-left:6px}
.to-scale-pill.set{background:rgba(231,0,0,0.20);color:var(--color-yellow);border-color:rgba(231,0,0,0.40)}
.to-scale-pill.verified{background:rgba(5,150,105,0.22);color:#047857;border-color:rgba(5,150,105,0.40)}
.to-sheet-badges{display:flex;gap:4px;align-items:center;flex-wrap:wrap;margin-top:3px}
.to-sheet-badge{font-size:8.5px;font-weight:700;padding:1px 6px;border-radius:3px;text-transform:uppercase;letter-spacing:0.04em}
.to-sheet-badge.markup-count{background:rgba(37,99,235,0.18);color:#1E40AF}
.to-sheet-badge.in-progress{background:rgba(231,0,0,0.18);color:#404040}
.to-sheet-badge.complete{background:rgba(5,150,105,0.20);color:#047857}
.to-sheet-badge.history{background:rgba(124,58,237,0.16);color:#6B21A8}

/* Snap toggle button */
.to-snap-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 9px !important;font-size:11px;font-weight:600}
.to-snap-btn i{font-size:11px}
.to-snap-btn.snap-off i{color:var(--gray-400)}
.to-snap-btn.snap-corners i{color:#1E40AF}
.to-snap-btn.snap-lines i{color:var(--color-yellow)}
.to-snap-btn span{font-size:10.5px}

/* Properties form */
#to-tab-props .form-group{margin-bottom:9px}
.to-props-divider{height:1px;background:var(--border-on-dark);margin:10px 0}
.to-props-meta{font-size:10px;color:var(--gray-500);background:rgba(0,0,0,0.03);padding:8px 10px;border-radius:6px;line-height:1.6}
.to-props-meta strong{color:var(--gray-700);font-weight:600;display:inline-block;min-width:90px}

/* Results summary */
.to-results-row{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:rgba(0,0,0,0.03);border:1px solid var(--border-on-dark);border-radius:6px;margin-bottom:4px}
.to-results-row .label{font-size:12px;font-weight:600;color:var(--gray-800)}
.to-results-row .meta{font-size:10px;color:var(--gray-500)}
.to-results-row .qty{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--color-yellow)}
.to-results-total{margin-top:8px;padding:9px 11px;background:rgba(231,0,0,0.10);border:1px solid rgba(231,0,0,0.30);border-radius:6px;display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;color:var(--gray-900)}

/* Layers tab */
.to-layer-list{display:flex;flex-direction:column;gap:5px}
.to-layer-row{display:flex;align-items:center;gap:8px;padding:7px 10px;background:rgba(0,0,0,0.03);border:1px solid var(--border-on-dark);border-radius:6px}
.to-layer-row .swatch{width:14px;height:14px;border-radius:3px;flex-shrink:0;border:1px solid rgba(0,0,0,0.15)}
.to-layer-row .name{flex:1;font-size:12px;color:var(--gray-800);font-weight:600}
.to-layer-row .count{font-family:var(--mono);font-size:11px;color:var(--gray-500)}
.to-layer-row button{padding:3px 6px;background:transparent;border:none;color:var(--gray-500);cursor:pointer;font-size:11px;border-radius:4px}
.to-layer-row button:hover{background:rgba(0,0,0,0.06);color:var(--gray-800)}
.to-layer-row.hidden .name{text-decoration:line-through;color:var(--gray-500)}

/* History tab */
.to-hist-entry{background:rgba(0,0,0,0.03);border:1px solid var(--border-on-dark);border-radius:8px;padding:11px 12px;margin-bottom:8px;transition:border-color 0.12s}
.to-hist-entry:hover{border-color:rgba(231,0,0,0.30)}
.to-hist-entry.current{border-color:rgba(231,0,0,0.45);background:rgba(231,0,0,0.04)}
.to-hist-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.to-hist-name{font-size:12.5px;font-weight:700;color:var(--gray-900);flex:1}
.to-hist-badge{font-size:9px;font-weight:700;letter-spacing:0.05em;padding:2px 7px;border-radius:4px;text-transform:uppercase}
.to-hist-badge.current{background:rgba(231,0,0,0.22);color:var(--color-yellow)}
.to-hist-badge.historical{background:rgba(124,58,237,0.16);color:#6B21A8}
.to-hist-badge.superseded{background:rgba(0,0,0,0.06);color:var(--gray-500)}
.to-hist-meta{font-size:10.5px;color:var(--gray-500);line-height:1.55;margin-bottom:8px}
.to-hist-actions{display:flex;gap:5px;flex-wrap:wrap}
.to-hist-actions button{padding:3px 8px;font-size:10.5px;border-radius:4px;border:1px solid var(--border-on-dark);background:var(--surface-2);color:var(--gray-700);cursor:pointer;font-family:var(--font);font-weight:600;display:inline-flex;align-items:center;gap:4px}
.to-hist-actions button:hover{border-color:var(--color-yellow);color:var(--gray-900)}
.to-hist-actions button i{font-size:9.5px}

/* Export tab */
.to-checkbox{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--gray-700);cursor:pointer;user-select:none}
.to-checkbox input{accent-color:var(--color-yellow);width:14px;height:14px;cursor:pointer}

/* Toolbar — slightly more refined */
.to-tool{position:relative}
.to-tool.active{background:rgba(231,0,0,0.20);color:var(--color-yellow);border-color:rgba(231,0,0,0.40)}

/* EXPANDED VIEWER MODE — hides side panes, center fills */
.takeoff-workspace.to-expanded .to-left,
.takeoff-workspace.to-expanded .to-right{display:none}
.takeoff-workspace.to-expanded{grid-template-columns:1fr}
.takeoff-workspace.to-expanded #toCenterPane{grid-column:1}
#to-expand-btn.active i,
.takeoff-workspace.to-expanded #to-expand-btn{color:var(--color-yellow);background:rgba(231,0,0,0.20);border-color:rgba(231,0,0,0.40)}

/* FULL-SCREEN TAKEOFF MODE — viewport-filling */
body.to-fullscreen-active{overflow:hidden}
body.to-fullscreen-active #panel-takeoffs{position:fixed;inset:0;z-index:9000;background:var(--bg);padding:0;margin:0;overflow:hidden}
body.to-fullscreen-active #panel-takeoffs > .takeoff-page-header,
body.to-fullscreen-active #panel-takeoffs > #to-ai-card{display:none}
body.to-fullscreen-active .takeoff-workspace{display:grid !important;grid-template-columns:1fr !important;grid-template-rows:1fr;height:100vh;gap:0;margin:0;border-radius:0;border:none}
body.to-fullscreen-active .to-left,
body.to-fullscreen-active .to-right{display:none}
body.to-fullscreen-active #toCenterPane{border-radius:0;border:none}
body.to-fullscreen-active .to-viewer{flex:1 1 auto}
.to-fs-exit{display:none;position:absolute;top:12px;right:12px;z-index:10;background:rgba(20,20,22,0.92);color:var(--gray-900);border:1px solid rgba(231,0,0,0.40);border-radius:6px;padding:7px 11px;font-size:11.5px;font-weight:600;cursor:pointer;font-family:var(--font);align-items:center;gap:6px;backdrop-filter:blur(8px)}
.to-fs-exit:hover{background:rgba(231,0,0,0.18);color:var(--color-yellow)}
body.to-fullscreen-active .to-fs-exit{display:inline-flex}

/* Watermark — improved layout for the new content */
.to-watermark{display:flex !important;flex-direction:column;align-items:center;justify-content:center;text-align:center}

/* Calibration / verification overlay polish */
.to-calibrate-line{stroke:var(--color-yellow);stroke-width:1.8;stroke-dasharray:6,4}
.to-calibrate-pt{fill:var(--color-yellow);stroke:#000;stroke-width:1}

/* Snap-to-line indicator (vs corner indicator) */
#to-snap-indicator.line-snap{stroke:var(--color-yellow);stroke-dasharray:3,3}


/* =====================================================================
   AI Assistant CHAT LAYOUT — composer pinned to bottom of viewport
   ===================================================================== */
/* The shell was capped at 920px which made the AI Assistant page feel
   narrower than every other panel (Sub Database, Bid Solicitation, etc.).
   Let it grow to fill the panel like the rest of the site. Individual
   chat bubbles are bounded below so paragraphs stay readable. */
.ai2-shell{max-width:none}
/* Make the chat panel itself a flex column so .ai2-chat (flex:1) grows
   and pushes the composer/footnote down to the bottom of the AI shell. */
#ai2-mode-chat.active{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;gap:14px}
#ai2-mode-chat .ai2-chat{flex:1 1 auto;min-height:0}
#ai2-mode-chat .ai2-suggested,
#ai2-mode-chat .ai2-composer,
#ai2-mode-chat .ai2-footnote{flex:0 0 auto}
/* Tighten the footnote so it sits visually attached to the composer */
#ai2-mode-chat .ai2-footnote{margin-top:-4px}
/* Keep chat bubbles at a comfortable reading width even on ultrawide
   monitors — they still align left (AI) / right (user) as usual. */
#ai2-mode-chat .chat-msg{max-width:min(84%,760px)}
#ai2-mode-chat .ai2-bubble{max-width:760px}

/* ===== SUPER ADMIN ===== */
.sa-overlay{position:fixed;inset:0;background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 100%);z-index:9000;display:none;overflow-y:auto;color:#fff}
.sa-overlay.show{display:flex;flex-direction:column}
.sa-overlay.sa-console.show{display:block}

/* Super Admin login */
.sa-login-back{position:absolute;top:24px;left:24px;color:rgba(0,0,0,0.6);cursor:pointer;font-size:12px;font-weight:600}
.sa-login-back:hover{color:#fff}
.sa-login-box{margin:auto;padding:38px;width:min(440px,92vw);background:#FFFFFF;border:1px solid rgba(231,0,0,0.25);border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,0.4)}
.sa-login-badge{display:flex;align-items:center;gap:12px;padding-bottom:18px;border-bottom:1px solid rgba(0,0,0,0.08);margin-bottom:18px}
.sa-login-icon{width:46px;height:46px;border-radius:10px;background:linear-gradient(135deg,#E70000,#E70000);color:#000;display:flex;align-items:center;justify-content:center;font-size:20px}
.sa-login-eyebrow{font-size:10px;font-weight:700;letter-spacing:0.1em;color:#E70000;text-transform:uppercase}
.sa-login-name{font-size:18px;font-weight:700;color:#fff}
.sa-login-desc{font-size:12.5px;color:rgba(0,0,0,0.68);margin-bottom:18px;line-height:1.5}
.sa-login-btn{background:linear-gradient(135deg,#E70000,#E70000) !important;color:#000 !important;font-weight:700}
.sa-login-users{margin-top:18px;background:rgba(231,0,0,0.04);border:1px solid rgba(231,0,0,0.15)}

/* Super Admin entry card on company-select overlay */
.sa-entry-card{margin:32px auto 24px;padding:18px 22px;width:min(640px,92vw);background:linear-gradient(135deg,rgba(231,0,0,0.06),rgba(0,0,0,0.3));border:1px solid rgba(231,0,0,0.3);border-radius:12px;display:flex;align-items:center;gap:16px}
.sa-entry-icon{width:48px;height:48px;border-radius:10px;background:linear-gradient(135deg,#E70000,#E70000);color:#000;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.sa-entry-text{flex:1;min-width:0}
.sa-entry-title{font-size:14px;font-weight:700;color:#fff}
.sa-entry-sub{font-size:11.5px;color:rgba(0,0,0,0.65);margin-top:2px;line-height:1.4}

/* Super Admin console */
.sa-console-topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 28px;background:#FFFFFF;border-bottom:1px solid rgba(0,0,0,0.08);position:sticky;top:0;z-index:10}
.sa-console-brand{display:flex;align-items:center;gap:12px}
.sa-console-mark{width:42px;height:42px;border-radius:9px;background:linear-gradient(135deg,#E70000,#E70000);color:#000;display:flex;align-items:center;justify-content:center;font-size:18px}
.sa-console-eyebrow{font-size:9.5px;font-weight:700;letter-spacing:0.12em;color:#E70000;text-transform:uppercase}
.sa-console-title{font-size:18px;font-weight:700;color:#fff}
.sa-console-user{display:flex;align-items:center;gap:12px}
.sa-console-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#E70000,#E70000);color:#000;display:flex;align-items:center;justify-content:center;font-size:15px}
.sa-console-logout{color:rgba(0,0,0,0.85) !important;border-color:rgba(0,0,0,0.15) !important;background:transparent !important}
.sa-console-logout:hover{background:rgba(0,0,0,0.05) !important}

.sa-console-body{padding:28px;max-width:1200px;margin:0 auto}
.sa-section{background:#FFFFFF;border:1px solid rgba(0,0,0,0.06);border-radius:12px;padding:22px;margin-bottom:20px}
.sa-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}
.sa-section-title{font-size:15px;font-weight:700;color:#fff;margin-bottom:3px}
.sa-section-sub{font-size:11.5px;color:rgba(0,0,0,0.65);line-height:1.5;max-width:560px}

.sa-table-wrap{overflow-x:auto}
.sa-table{width:100%;border-collapse:collapse;font-size:12.5px;color:#fff}
.sa-table thead{background:rgba(0,0,0,0.03)}
.sa-table th{padding:11px 14px;text-align:left;font-size:10px;font-weight:700;letter-spacing:0.06em;color:rgba(0,0,0,0.65);text-transform:uppercase;border-bottom:1px solid rgba(0,0,0,0.08)}
.sa-table td{padding:14px;border-bottom:1px solid rgba(0,0,0,0.04);vertical-align:middle;color:#fff}
.sa-table tr:hover td{background:rgba(0,0,0,0.02)}
.sa-co-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:middle}

.sa-admins-list{display:flex;flex-direction:column;gap:8px}
.sa-admin-row{display:flex;align-items:center;gap:12px;padding:12px 14px;background:rgba(0,0,0,0.02);border:1px solid rgba(0,0,0,0.05);border-radius:8px}
.sa-admin-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#E70000,#E70000);color:#000;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}

.sa-clickable{cursor:pointer;transition:background 0.12s}
.sa-clickable:hover{background:rgba(231,0,0,0.06)}

/* Impersonation banner (top of screen when super admin enters a workspace) */
body.has-sa-banner #mainApp{padding-top:54px}
#superAdminBanner{position:fixed;top:0;left:0;right:0;height:54px;z-index:8500;background:linear-gradient(90deg,#000,#FFFFFF);border-bottom:2px solid #E70000;display:flex;align-items:center;gap:14px;padding:0 22px;box-shadow:0 4px 14px rgba(0,0,0,0.3)}
.sa-banner-icon{width:34px;height:34px;border-radius:8px;background:linear-gradient(135deg,#E70000,#E70000);color:#000;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}
.sa-banner-text{flex:1;min-width:0}
.sa-banner-title{font-size:11px;font-weight:700;color:#E70000;letter-spacing:0.08em;text-transform:uppercase}
.sa-banner-sub{font-size:12px;color:rgba(0,0,0,0.85);margin-top:1px}
.sa-banner-btn{background:#E70000;color:#000;border:none;border-radius:6px;padding:8px 14px;font-size:12px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:6px;font-family:var(--font)}
.sa-banner-btn:hover{background:#fff}

/* Admin/invite pills in console rows */
.sa-admin-pill{display:flex;align-items:center;gap:6px;padding:5px 0;font-size:12px;color:#fff}
.sa-admin-pill.pending{color:rgba(0,0,0,0.7)}
.sa-admin-pill-dot{width:7px;height:7px;border-radius:50%;background:#10b981;flex-shrink:0}
.sa-admin-pill-dot.pending{background:#E70000}
.sa-link-mini{background:transparent;border:1px solid rgba(0,0,0,0.12);color:rgba(0,0,0,0.7);font-size:10px;padding:2px 7px;border-radius:4px;cursor:pointer;font-family:var(--font);margin-left:4px}
.sa-link-mini:hover{background:rgba(0,0,0,0.05);color:#fff}
.sa-link-mini.danger:hover{background:rgba(220,38,38,0.15);color:#A00000;border-color:rgba(220,38,38,0.3)}
.sa-add-admin-btn{background:transparent;border:1px dashed rgba(0,0,0,0.15);color:rgba(0,0,0,0.68);font-size:11px;padding:4px 10px;border-radius:5px;cursor:pointer;font-family:var(--font);margin-top:6px;display:inline-flex;align-items:center;gap:5px}
.sa-add-admin-btn:hover{border-color:rgba(231,0,0,0.5);color:#E70000}

/* Pending invites global list */
.sa-invites-list{display:flex;flex-direction:column;gap:8px}
.sa-invite-row{display:flex;align-items:center;gap:12px;padding:11px 14px;background:rgba(231,0,0,0.05);border:1px solid rgba(231,0,0,0.15);border-radius:8px}

/* Invite acceptance overlay */
.invite-accept-box-wrap{margin:auto;padding:34px;width:min(460px,92vw);background:#FFFFFF;border:1px solid rgba(231,0,0,0.25);border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,0.4)}
.invite-accept-head{padding-bottom:14px;border-bottom:1px solid rgba(0,0,0,0.08);margin-bottom:16px}
.invite-accept-eyebrow{font-size:10px;font-weight:700;letter-spacing:0.1em;color:#E70000;text-transform:uppercase}
.invite-accept-co{font-size:18px;color:#fff;margin-top:6px;display:flex;align-items:center;gap:8px}
.invite-accept-role{margin-top:8px}
.invite-accept-desc{font-size:12.5px;color:rgba(0,0,0,0.6);margin-bottom:16px;line-height:1.5}

/* Pending invites in company user management list */
.pending-invite-header{margin:18px 0 8px;padding:8px 12px;background:rgba(231,0,0,0.08);border-radius:6px;font-size:11px;font-weight:700;color:#404040;letter-spacing:0.06em;text-transform:uppercase;display:flex;align-items:center;gap:6px}
.pending-invite-row{background:rgba(231,0,0,0.03);border-left:3px solid #E70000}

/* Dark theme variant for pending header */
body .panel#panel-usermgmt .pending-invite-header{color:var(--kinnect-yellow);background:rgba(231,0,0,0.10)}

/* =====================================================================
   LIGHT-THEME LEGIBILITY OVERRIDES (cascade-busting)
   The CSS has multiple older theme passes that compete for text colors.
   These rules sit at the end of the file with high specificity so they
   win against every prior rule and guarantee readable text on the new
   light theme.
   ===================================================================== */
body .proj-card.pursuit .proj-card-name,
body .proj-card.pursuit .proj-card-type,
body .proj-card.awarded .proj-card-name,
body .proj-card.awarded .proj-card-type{color:#171717}
body .proj-card.active-card.pursuit .proj-card-name,
body .proj-card.active-card.awarded .proj-card-name{color:#171717}
body .proj-card-name{color:#171717}
body .proj-card.active-card:not(.pursuit):not(.awarded) .proj-card-header{background:var(--red)}
body .proj-card.active-card:not(.pursuit):not(.awarded) .proj-card-name,
body .proj-card.active-card:not(.pursuit):not(.awarded) .proj-card-type{color:#FFFFFF}

/* Anywhere that legacy "white text" rules linger, force dark text on
   light surfaces. Status badges on red bg stay white via their own
   higher-specificity rules. */
body .topbar-breadcrumb,
body .topbar-breadcrumb span,
body .pr-brand-name{color:#171717}
/* Sidebar text — white on dark grey bg */
body .sidebar .sb-brand,
body .sidebar .sb-proj-name,
body .sidebar .sb-proj-item-name,
body .sidebar .sb-user-name{color:#FFFFFF}
body .sidebar .sb-brand-sub,
body .sidebar .sb-user-role{color:rgba(255,255,255,0.55)}
body .sidebar .sb-section{color:rgba(255,255,255,0.40)}
body .sidebar .sb-item{color:rgba(255,255,255,0.65)}
body .sidebar .sb-item:hover{color:#FFFFFF;background:rgba(255,255,255,0.05)}
body .sidebar .sb-item.active{color:#FFFFFF;background:rgba(231,0,0,0.18);border-left-color:var(--color-red)}
body .sidebar .sb-item.active i{color:#FFFFFF}
body .sidebar .sb-item i{color:rgba(255,255,255,0.55)}
body .sidebar .sb-divider{background:rgba(255,255,255,0.08)}
body .sidebar .sb-project{border-bottom:1px solid rgba(255,255,255,0.08)}
body .sidebar .sb-project-label{color:rgba(255,255,255,0.40)}
body .sidebar .sb-project-btn{background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.10);color:#FFFFFF}
body .sidebar .sb-project-btn:hover{background:rgba(255,255,255,0.10)}
body .sidebar .sb-new-proj{color:rgba(255,255,255,0.65);border-color:rgba(255,255,255,0.15)}
body .sidebar .sb-new-proj:hover{color:#FFFFFF;border-color:var(--color-red);background:rgba(231,0,0,0.10)}
body .sidebar .sb-company-row{color:rgba(255,255,255,0.85)}
body .sidebar .sb-proj-dropdown{background:#262626;border:1px solid rgba(255,255,255,0.10)}
body .sidebar .sb-proj-dropdown .sb-proj-item:hover{background:rgba(255,255,255,0.05)}
body .sidebar .sb-bottom{border-top:1px solid rgba(255,255,255,0.08)}
body .sidebar .sb-logout{color:rgba(255,255,255,0.65)}
body .sidebar .sb-logout:hover{color:#FFFFFF}
/* ===================================================================
   Sign-in overlay: dark theme. Dark grey background, dark grey card,
   white text, red Sign In button. Matches the reference screenshot.
   =================================================================== */
body .login-overlay{
  background:#0F0F12 !important;
  color:#FFFFFF !important;
  position:fixed !important;
  inset:0 !important;
  overflow-y:auto !important;
}
body .login-overlay::before{display:none !important}
body .login-overlay::after{
  content:'' !important;
  position:absolute !important;
  left:50% !important;
  top:35% !important;
  transform:translateX(-50%) !important;
  width:560px !important;
  height:360px !important;
  pointer-events:none !important;
  background:radial-gradient(ellipse at center,rgba(231,0,0,0.18),transparent 65%) !important;
  z-index:0 !important;
  filter:blur(24px) !important;
}
body .login-box{
  background:#1A1A1F !important;
  border:1px solid rgba(255,255,255,0.08) !important;
  color:#FFFFFF !important;
}
body .login-company-badge{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08)}
body .login-title{color:#FFFFFF !important}
body .login-desc{color:rgba(255,255,255,0.65) !important}
body .login-label{color:rgba(255,255,255,0.55) !important}
body .login-company-name{color:#FFFFFF !important}
body .login-company-sub{color:rgba(255,255,255,0.55) !important}
body .login-input{
  background:rgba(255,255,255,0.05) !important;
  border:1px solid rgba(255,255,255,0.10) !important;
  color:#FFFFFF !important;
}
body .login-input::placeholder{color:rgba(255,255,255,0.40) !important}
body .login-input:focus{
  border-color:var(--color-red) !important;
  box-shadow:0 0 0 3px rgba(231,0,0,0.20) !important;
  outline:none !important;
}
body .login-pass-toggle{color:rgba(255,255,255,0.55) !important}
body .login-pass-toggle:hover{color:var(--color-red) !important}
body .login-pass-toggle .fa-eye-slash{color:var(--color-red) !important}
body .login-btn{background:var(--color-red) !important;color:#FFFFFF !important}
body .login-btn:hover{background:#C40000 !important}
body .login-error{color:#A00000 !important}
/* Dashboard hero is dark — keep its text white */
body .dash-header .dash-proj-name,
body .dash-header .dash-proj-eyebrow,
body .dash-header .dash-proj-meta{color:#FFFFFF}
body .dash-header .dash-proj-eyebrow{color:rgba(255,255,255,0.55)}
body .dash-header .dash-proj-meta{color:rgba(255,255,255,0.78)}
body .login-input{color:#171717;background:rgba(0,0,0,0.03);border-color:rgba(0,0,0,0.10)}
body .login-input::placeholder{color:rgba(0,0,0,0.62)}

/* =====================================================================
   DASHBOARD-WIDE SOLID-RED OVERRIDE (cascade-busting)
   ALL red KPI / stat tiles use one identical recipe — solid #E70000 base,
   the SAME two white bubble accents (same size, same opacity). Only the
   position of the bubbles varies between tiles for visual rhythm. No
   linear gradients on the base color; no shade variation; no per-tile
   color codes — exactly as the reference screenshot.
   ===================================================================== */
body .dash-stat.ds-primary,
body .dash-stat.ds-accent,
body .dash-kpi-feature,
body .dash-grid-12 .dash-kpi-feature,
body .dash-grid-12 > div .dash-kpi:not(.dash-kpi-feature){
  background-color:#E70000 !important;
  /* Bubble defaults — large bubble upper-right, smaller bubble middle-right.
     Matches the reference image exactly. */
  background-image:
    radial-gradient(circle 110px at 90% 28%,rgba(255,255,255,0.14) 0%,rgba(255,255,255,0.04) 60%,transparent 80%),
    radial-gradient(circle 70px at 98% 72%,rgba(255,255,255,0.12) 0%,rgba(255,255,255,0.03) 60%,transparent 80%) !important;
  background-repeat:no-repeat !important;
  color:#FFFFFF !important;
  border:1px solid rgba(255,255,255,0.10) !important;
  box-shadow:0 8px 24px rgba(231,0,0,0.22),0 1px 2px rgba(0,0,0,0.08) !important;
}
/* Bubble-position variants — same bubble sizes/opacities, just placed
   on different corners. Use these by simply leaving the tiles ordered
   in the grid as they are. */
body .dash-grid-12 > div:nth-child(2) .dash-kpi:not(.dash-kpi-feature){
  background-image:
    radial-gradient(circle 110px at 10% 28%,rgba(255,255,255,0.14) 0%,rgba(255,255,255,0.04) 60%,transparent 80%),
    radial-gradient(circle 70px at 2% 72%,rgba(255,255,255,0.12) 0%,rgba(255,255,255,0.03) 60%,transparent 80%) !important;
}
body .dash-grid-12 > div:nth-child(3) .dash-kpi:not(.dash-kpi-feature){
  background-image:
    radial-gradient(circle 110px at 90% 78%,rgba(255,255,255,0.14) 0%,rgba(255,255,255,0.04) 60%,transparent 80%),
    radial-gradient(circle 70px at 98% 22%,rgba(255,255,255,0.12) 0%,rgba(255,255,255,0.03) 60%,transparent 80%) !important;
}
body .dash-grid-12 > div:nth-child(4) .dash-kpi:not(.dash-kpi-feature){
  background-image:
    radial-gradient(circle 110px at 10% 78%,rgba(255,255,255,0.14) 0%,rgba(255,255,255,0.04) 60%,transparent 80%),
    radial-gradient(circle 70px at 2% 22%,rgba(255,255,255,0.12) 0%,rgba(255,255,255,0.03) 60%,transparent 80%) !important;
}

/* ====================================================================
   AI Project Intelligence widget — text legibility on white bg
   The widget's stat tiles, pills, and narrative text use the inverted
   gray-700/800/900 tokens (which now resolve to LIGHT grey in the
   light theme). Force dark text here.
   ==================================================================== */
body .pi-pill,
body .pi-pill-num,
body .pi-status,
body .pi-status-badge,
body .pi-stat-label,
body .pi-stat-value,
body .pi-banner-text,
body .pi-section-title,
body .pi-card-title,
body .pi-narrative,
body .pi-card-body{color:#262626 !important}
body .pi-pill{background:#F5F5F5 !important;border:1px solid #E5E5E5 !important}
body .pi-pill i{color:#525252 !important}
body .pi-pill-red{background:#FFE5E5 !important;border-color:#A00000 !important;color:#A00000 !important}
body .pi-pill-red i,body .pi-pill-red .pi-pill-num{color:#A00000 !important}
body .pi-pill-amber{background:#FFE5E5 !important;border-color:#A00000 !important;color:#A00000 !important}
body .pi-pill-amber i,body .pi-pill-amber .pi-pill-num{color:#A00000 !important}
body .pi-stat-label,
body [class*="pi-stat"] .label,
body [class*="pi-kpi"] .label{color:#525252 !important;font-weight:700 !important}
body .pi-banner,
body .pi-no-review-banner,
body [class*="pi-banner"]{color:#404040 !important;background:#FAFAFA !important;border:1px solid #E5E5E5 !important}
body .pi-banner *{color:#404040 !important}

/* AI narrative text — should be dark on white */
body .ai-narrative-text,
body .ai-narrative-text *{color:#404040 !important}
body .ai-narrative-text strong{color:#171717 !important;font-weight:700 !important}
body .ai-narrative-eyebrow{color:#525252 !important}
body .ai-narrative-eyebrow i{color:#737373 !important}
body .ai-narrative-footer{color:#525252 !important}

/* Generic widget titles on white surfaces */
body .dash-widget-title,
body .widget-title,
body .dash-section-title{color:#171717 !important}
body .dash-widget-eyebrow,
body .dash-widget-label,
body .widget-eyebrow{color:#525252 !important}
body .dash-stat.ds-primary .ds-label,
body .dash-stat.ds-accent .ds-label,
body .dash-kpi-feature .dash-kpi-label,
body .dash-grid-12 > div .dash-kpi:not(.dash-kpi-feature) .dash-kpi-label{
  color:rgba(255,255,255,0.85) !important;
  font-weight:700 !important;
  letter-spacing:0.10em !important;
}
body .dash-stat.ds-primary .ds-value,
body .dash-stat.ds-accent .ds-value,
body .dash-kpi-feature .dash-kpi-value,
body .dash-grid-12 > div .dash-kpi:not(.dash-kpi-feature) .dash-kpi-value{
  color:#FFFFFF !important;
}
body .dash-stat.ds-primary .ds-sub,
body .dash-stat.ds-accent .ds-sub,
body .dash-kpi-feature .dash-kpi-sub,
body .dash-grid-12 > div .dash-kpi:not(.dash-kpi-feature) .dash-kpi-sub{
  color:rgba(255,255,255,0.92) !important;
}
body .dash-stat.ds-primary .ds-trend,
body .dash-stat.ds-accent .ds-trend,
body .dash-kpi-feature .dash-kpi-accent,
body .dash-grid-12 > div .dash-kpi:not(.dash-kpi-feature) .dash-kpi-accent{
  color:#FFFFFF !important;
  font-weight:700 !important;
}
body .dash-stat.ds-primary .stat-icon,
body .dash-stat.ds-accent .stat-icon{color:rgba(255,255,255,0.20) !important}
body .dash-stat.ds-accent::before,
body .dash-stat.ds-primary::before{display:none !important}
body .dash-stat.ds-accent::after,
body .dash-stat.ds-primary::after{display:none !important}
body .dash-kpi-feature::before{display:none !important}
body .dash-kpi-feature::after{display:none !important}

/* Dashboard hero — dark charcoal (matches the sidebar) for visual rhythm
   with the red KPI tiles below. Subtle red-tinted bubble accents instead
   of white so it feels branded but distinct from the KPI row. */
body .dash-header{
  background-color:#1A1A1F !important;
  background-image:
    radial-gradient(circle 260px at 92% 28%,rgba(231,0,0,0.18) 0%,rgba(231,0,0,0.05) 60%,transparent 80%),
    radial-gradient(circle 160px at 98% 80%,rgba(231,0,0,0.12) 0%,rgba(231,0,0,0.03) 60%,transparent 80%) !important;
  background-repeat:no-repeat !important;
  border:1px solid rgba(255,255,255,0.08) !important;
  box-shadow:0 12px 32px rgba(15,15,18,0.20),0 1px 2px rgba(0,0,0,0.08) !important;
}
body .dash-header .dash-proj-eyebrow{color:rgba(255,255,255,0.80) !important}
body .dash-header .dash-proj-name{color:#FFFFFF !important}
body .dash-header .dash-proj-meta{color:rgba(255,255,255,0.92) !important}
body .dash-header-btn{
  background:rgba(255,255,255,0.14) !important;
  border:1px solid rgba(255,255,255,0.22) !important;
  color:#FFFFFF !important;
}
body .dash-header-btn:hover{
  background:#FFFFFF !important;
  color:#E70000 !important;
  border-color:#FFFFFF !important;
}
body .dash-header-overlay{display:none !important}
body .dash-header::before{display:none !important}
body .dash-header::after{display:none !important}

/* Subtle accent-bubble decoration for other dashboard widgets so they
   feel branded/coherent rather than plain white. Applies to the larger
   widget cards (Project Health, Cost by CSI, AI narrative, etc.) */
body .dash-widget,
body .ai-narrative-inner,
body .dash-row > div > .panel > section{
  position:relative;
  overflow:hidden;
}
body .dash-widget::after,
body .ai-narrative-inner::after{
  content:'';
  position:absolute;
  bottom:-60px;
  right:-60px;
  width:160px;
  height:160px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(231,0,0,0.10) 0%,rgba(231,0,0,0.03) 50%,transparent 75%);
  pointer-events:none;
  z-index:0;
}
body .dash-widget > *,
body .ai-narrative-inner > *{position:relative;z-index:1}

/* ===========================================================================
   PREMIUM REFINEMENT LAYER
   Stylish, restrained polish for a serious construction-SaaS feel.
   - Subtle blueprint/technical accents on backgrounds and headers
   - Layered card shadows + soft hover elevation
   - Tighter, more refined motion
   - Controlled brand-accent usage
   Everything is additive — no functionality changed.
   =========================================================================== */

/* --- 1. Page backgrounds: clean light surface (no grid) ------------------ */
body #mainApp > .main,
body #mainApp .panel,
body #panel-dashboard{
  background-color:#FAFAFA;
  background-image:none;
}

/* --- 1b. Sign-in overlay: angled blueprint backdrop --------------------
   Dark surface + soft red ambient glow + an oversized, rotated
   architectural plan rendered in hair-thin lines via ::before. The
   plan is a residence + auxiliary sheets, original geometry, at very
   low opacity so it reads as drafting texture behind the sign-in card. */
body .login-overlay{
  background-color:#0F0F12 !important;
  background-image:
    radial-gradient(ellipse 720px 480px at 50% 40%,rgba(231,0,0,0.14),transparent 70%) !important;
  background-size:auto !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
  overflow:hidden !important;
}
body .login-overlay::after{display:none !important}
body .login-overlay::before{
  content:'' !important;
  display:block !important;
  position:absolute !important;
  left:-30% !important;
  top:-30% !important;
  width:160% !important;
  height:160% !important;
  background-image:url("login-blueprint.svg?v=13") !important;
  background-repeat:no-repeat !important;
  background-position:center center !important;
  background-size:cover !important;
  transform:rotate(-8deg) !important;
  transform-origin:center center !important;
  pointer-events:none !important;
  z-index:0 !important;
  opacity:1 !important;
}
body .login-overlay > *{position:relative;z-index:1}

/* Replace the previous decorative red bubble on widget cards — too busy.
   Use a clean thin red top-accent bar instead, on key dashboard widgets. */
body .dash-widget::after,
body .ai-narrative-inner::after{display:none !important}

/* --- 2. Premium card system ---------------------------------------------- */
body .dash-widget,
body .ai-narrative-inner,
body .proj-card,
body .bidpkg-card,
body .sub-card,
body .health-card,
body .pi-hero,
body .dash-stat:not(.ds-primary):not(.ds-accent){
  position:relative;
  background:#FFFFFF;
  border:1px solid #ECECEC;
  border-radius:12px;
  box-shadow:
    0 1px 0 rgba(0,0,0,0.02),
    0 1px 3px rgba(15,23,42,0.04),
    0 6px 20px rgba(15,23,42,0.04);
  transition:
    transform .18s cubic-bezier(.2,.7,.3,1),
    box-shadow .18s ease,
    border-color .18s ease;
}
body .dash-widget:hover,
body .ai-narrative-inner:hover,
body .proj-card:hover:not(.active-card),
body .bidpkg-card:hover:not(.active),
body .sub-card:hover,
body .health-card:hover{
  transform:translateY(-2px);
  box-shadow:
    0 1px 0 rgba(0,0,0,0.02),
    0 4px 10px rgba(15,23,42,0.05),
    0 14px 30px rgba(15,23,42,0.07);
  border-color:#E0E0E0;
}

/* Optional thin red top-accent stripe on premium hero widgets.
   Triggered automatically on the main dashboard widgets so they read
   as "branded sections" without a heavy bg. */
body .dash-widget.has-accent::before,
body #dashw-health-snapshot::before,
body #dashw-cost-csi::before,
body #dashw-ai-narrative::before,
body #dashw-project-intel::before{
  content:'';
  position:absolute;
  top:0;left:18px;
  width:38px;
  height:2px;
  background:#E70000;
  border-radius:0 0 2px 2px;
  z-index:2;
}

/* --- 3. Tiny technical "corner tick" marks --------------------------------
   Subtle architectural-drawing detail in the top-right of premium cards.
   Two short red strokes forming a corner bracket — reads as a registration
   mark / drawing detail. Very small, never dominant. */
body .dash-widget::before,
body .ai-narrative-inner::before,
body .pi-hero::before{
  content:'';
  position:absolute;
  top:8px;
  right:10px;
  width:10px;
  height:10px;
  border-top:1.25px solid rgba(231,0,0,0.45);
  border-right:1.25px solid rgba(231,0,0,0.45);
  pointer-events:none;
  z-index:2;
}

/* --- 4. Section dividers with measurement-tick aesthetic ----------------
   Thin horizontal divider with a tiny center notch — looks like a
   technical drawing reference line. */
body .dash-section-divider,
body .panel-divider,
body hr.section-divider{
  border:none;
  height:1px;
  background:linear-gradient(90deg,transparent,#E5E5E5 20%,#E5E5E5 80%,transparent);
  margin:20px 0;
  position:relative;
}
body .dash-section-divider::after,
body .panel-divider::after,
body hr.section-divider::after{
  content:'';
  position:absolute;
  left:50%;
  top:-2px;
  transform:translateX(-50%);
  width:1px;
  height:5px;
  background:#E70000;
}

/* --- 5. Panel page headers — refined eyebrow + title --------------------
   Add a slim red accent rule to the left of the page title in each panel
   to read as "you are in this section". Keeps it understated. */
body .panel > .page-header,
body .panel > h2:first-child,
body .panel-title{
  position:relative;
  padding-left:14px;
}
body .panel > .page-header::before,
body .panel > h2:first-child::before,
body .panel-title::before{
  content:'';
  position:absolute;
  left:0;
  top:6px;
  bottom:6px;
  width:3px;
  border-radius:2px;
  background:linear-gradient(180deg,#E70000 0%,#E70000 60%,rgba(231,0,0,0.4) 100%);
}

/* --- 6. Button polish ---------------------------------------------------- */
body .btn,
body .btn-primary,
body .btn-outline,
body .btn-sm,
body .login-btn,
body .dash-header-btn,
body .sa-link-mini{
  transition:
    background .15s ease,
    border-color .15s ease,
    color .15s ease,
    transform .12s ease,
    box-shadow .15s ease;
}
body .btn-primary{
  background:#E70000;
  color:#FFFFFF;
  border:1px solid #E70000;
  box-shadow:0 1px 2px rgba(231,0,0,0.18),0 4px 12px rgba(231,0,0,0.12);
}
body .btn-primary:hover{
  background:#C40000;
  border-color:#C40000;
  box-shadow:0 2px 4px rgba(231,0,0,0.22),0 8px 20px rgba(231,0,0,0.18);
}
body .btn-primary:active{transform:translateY(1px)}

/* --- 7. Tables: cleaner headers, soft hover, alternating zebra ----------- */
body .tbl,
body table.dash-table,
body .data-table{
  border-collapse:separate;
  border-spacing:0;
  width:100%;
}
body .tbl thead th,
body table.dash-table thead th,
body .data-table thead th{
  background:#FAFAFA;
  border-bottom:1px solid #E5E5E5;
  color:#525252;
  font-weight:700;
  font-size:10.5px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  padding:10px 14px;
  text-align:left;
}
body .tbl tbody tr,
body table.dash-table tbody tr,
body .data-table tbody tr{
  transition:background .12s ease;
}
body .tbl tbody tr:hover,
body table.dash-table tbody tr:hover,
body .data-table tbody tr:hover{
  background:rgba(231,0,0,0.025);
}
body .tbl tbody td,
body table.dash-table tbody td,
body .data-table tbody td{
  padding:12px 14px;
  border-bottom:1px solid #F0F0F0;
  font-size:12.5px;
  color:#262626;
}

/* --- 8. Status pills — refined system ------------------------------------ */
body .status-pill,
body .pill,
body .badge-pill{
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-size:10.5px;
  font-weight:700;
  letter-spacing:0.05em;
  text-transform:uppercase;
  padding:3px 9px;
  border-radius:999px;
  line-height:1.4;
  border:1px solid transparent;
}

/* --- 9. Sidebar nav: refined active state --------------------------------
   Slim red left accent + soft red wash, smoother transition. */
body .sidebar .sb-item{
  transition:
    color .15s ease,
    background .15s ease,
    border-left-color .15s ease;
}
body .sidebar .sb-item.active{
  border-left:2px solid #E70000 !important;
  background:linear-gradient(90deg,rgba(231,0,0,0.18) 0%,rgba(231,0,0,0.04) 100%) !important;
}
body .sidebar .sb-item.active::after{
  content:'';
  position:absolute;
  right:8px;top:50%;
  transform:translateY(-50%);
  width:4px;height:4px;
  border-radius:50%;
  background:#E70000;
}
body .sidebar .sb-item{position:relative}

/* --- 10. Topbar refinement ----------------------------------------------- */
body .topbar{
  background:#FFFFFF;
  border-bottom:1px solid #ECECEC;
  box-shadow:0 1px 0 rgba(0,0,0,0.02);
}

/* --- 11. Empty states ---------------------------------------------------- */
body .empty-state,
body .no-data-state,
body [class*="empty"]:not(input):not(select){
  text-align:center;
  padding:36px 24px;
  color:#737373;
}
body .empty-state i,
body .no-data-state i{
  font-size:28px;
  color:#D4D4D4;
  margin-bottom:10px;
  display:block;
}

/* --- 12. Form input focus ring ------------------------------------------- */
body .form-input:focus,
body .form-select:focus,
body .form-textarea:focus{
  outline:none;
  border-color:#E70000;
  box-shadow:0 0 0 3px rgba(231,0,0,0.12);
}

/* --- 13. Typography polish ----------------------------------------------- */
body h1,body h2,body h3,body .page-title,body .panel-title{
  letter-spacing:-0.015em;
  color:#171717;
}
body .uppercase,body .eyebrow,body [class*="-label"]:not(input){
  letter-spacing:0.08em;
}
body .mono,body .num,body [class*="-value"]:not(input){
  font-family:var(--mono);
  font-variant-numeric:tabular-nums;
  letter-spacing:-0.01em;
}

/* --- 14. Smooth modal/dropdown entry ------------------------------------- */
@keyframes kinnect-fade-up{
  from{opacity:0;transform:translateY(6px)}
  to{opacity:1;transform:translateY(0)}
}
body .modal.open,
body .modal-overlay.show .modal,
body .dropdown.show,
body .sb-proj-dropdown.show,
body .pop-menu.show{
  animation:kinnect-fade-up .18s cubic-bezier(.2,.7,.3,1);
}

/* --- 15. KPI red tiles — tighten the bubble recipe (single source) ------
   Keep the existing solid-red surface but make the bubble overlay slightly
   more refined and consistent everywhere. Pure white at low alpha — no
   gradient/shade variation, only position. */
/* All KPI tiles: solid #E70000 + two subtle overlapping white bubbles.
   Same shape + opacity recipe for all tiles, only the positions differ
   so each tile has a slightly different visual rhythm. */

/* Bubble recipe: each circle is a FLAT TINTED DISC with a sharp
   feathered edge — reads as a defined circular shape, not a soft glow.
   The stop at ~92% holds the disc color flat, then fades fast through
   95% to fully transparent at 100%. Two discs per tile, overlapping. */

/* TILE 1 — OWNER BUDGET (.dash-kpi-feature). Discs right side. */
body .dash-grid-12 .dash-kpi.dash-kpi-feature,
body .dash-grid-12 > div .dash-kpi.dash-kpi-feature,
body .dash-kpi.dash-kpi-feature,
body .dash-kpi-feature{
  background-color:#E70000 !important;
  background-image:
    radial-gradient(circle 120px at 84% 28%,rgba(255,255,255,0.13) 0%,rgba(255,255,255,0.13) 88%,rgba(255,255,255,0.05) 95%,transparent 100%),
    radial-gradient(circle 80px at 98% 82%,rgba(255,255,255,0.13) 0%,rgba(255,255,255,0.13) 88%,rgba(255,255,255,0.05) 95%,transparent 100%) !important;
  background-repeat:no-repeat !important;
  border:1px solid rgba(255,255,255,0.10) !important;
  box-shadow:0 8px 24px rgba(231,0,0,0.22),0 1px 2px rgba(0,0,0,0.08) !important;
}

/* TILE 2 — BID COVERAGE (2nd .dash-kpi). Discs left side. */
body .dash-grid-12 > div:nth-child(2) .dash-kpi:not(.dash-kpi-feature){
  background-image:
    radial-gradient(circle 120px at 16% 28%,rgba(255,255,255,0.13) 0%,rgba(255,255,255,0.13) 88%,rgba(255,255,255,0.05) 95%,transparent 100%),
    radial-gradient(circle 80px at 2% 82%,rgba(255,255,255,0.13) 0%,rgba(255,255,255,0.13) 88%,rgba(255,255,255,0.05) 95%,transparent 100%) !important;
  background-repeat:no-repeat !important;
}

/* TILE 3 — OPEN DECISIONS (3rd .dash-kpi). Discs upper-center + lower-right. */
body .dash-grid-12 > div:nth-child(3) .dash-kpi:not(.dash-kpi-feature){
  background-image:
    radial-gradient(circle 120px at 55% 22%,rgba(255,255,255,0.13) 0%,rgba(255,255,255,0.13) 88%,rgba(255,255,255,0.05) 95%,transparent 100%),
    radial-gradient(circle 80px at 96% 82%,rgba(255,255,255,0.13) 0%,rgba(255,255,255,0.13) 88%,rgba(255,255,255,0.05) 95%,transparent 100%) !important;
  background-repeat:no-repeat !important;
}

/* Health-card "Budget Variance" cards — same bubble recipe but VERY
   light grey on the white card surface. Two overlapping circles, just
   barely visible. Different positions on the "over budget" vs neutral
   variants so it doesn't feel templated. */
body .health-card,
body .health-card-over,
body .health-card-emph{
  background-image:
    radial-gradient(circle 90px at 88% 28%,rgba(0,0,0,0.035) 0%,rgba(0,0,0,0.012) 60%,transparent 80%),
    radial-gradient(circle 60px at 98% 78%,rgba(0,0,0,0.030) 0%,rgba(0,0,0,0.010) 60%,transparent 80%) !important;
  background-repeat:no-repeat !important;
}
body .health-card-over{
  background-image:
    radial-gradient(circle 95px at 12% 30%,rgba(0,0,0,0.040) 0%,rgba(0,0,0,0.014) 60%,transparent 80%),
    radial-gradient(circle 65px at 4% 78%,rgba(0,0,0,0.034) 0%,rgba(0,0,0,0.012) 60%,transparent 80%) !important;
}

