/* Ameriteam OS v304 — shared header + consistent brand
   Visual-only authority layer. No CRM, Bid Room, auth, Gmail, estimating, or data behavior changes. */

:root{
  --amt303-navy:#14265b;
  --amt303-navy-deep:#0b1d4d;
  --amt303-red:#c8102e;
  --amt303-red-deep:#a50d27;
  --amt303-ink:#17233c;
  --amt303-muted:#667085;
  --amt303-line:#dbe3ee;
  --amt303-soft:#f7f9fc;
  --amt303-shadow:0 10px 28px rgba(15,30,70,.09);
}

/* =========================================================
   LOGIN — integrated brand, two fields, nothing decorative
   ========================================================= */
.login-card{
  width:min(430px,calc(100vw - 36px))!important;
  padding:30px 34px 28px!important;
  border:1px solid rgba(255,255,255,.84)!important;
  border-radius:15px!important;
  background:rgba(255,255,255,.975)!important;
  box-shadow:0 26px 72px rgba(2,12,32,.28)!important;
  -webkit-backdrop-filter:blur(16px) saturate(1.04);
  backdrop-filter:blur(16px) saturate(1.04);
}

/* Reconstruct the lockup from the local emblem + live wordmark text.
   This removes the pasted-image-on-a-card effect. */
.login-mobile-brand{
  display:grid!important;
  grid-template-columns:62px minmax(0,1fr)!important;
  grid-template-rows:auto auto!important;
  column-gap:13px!important;
  row-gap:3px!important;
  align-items:center!important;
  justify-items:start!important;
  min-height:68px!important;
  width:max-content!important;
  max-width:100%!important;
  margin:0 auto 20px!important;
  user-select:none!important;
  caret-color:transparent!important;
}
.login-mobile-brand::before{
  content:""!important;
  position:static!important;
  inset:auto!important;
  grid-column:1!important;
  grid-row:1/3!important;
  width:62px!important;
  height:62px!important;
  background:url("/icons/ameriteam-emblem.png") center/contain no-repeat!important;
  filter:none!important;
}
.login-mobile-brand::after{content:none!important;display:none!important}
.login-mobile-brand strong{
  display:block!important;
  grid-column:2!important;
  grid-row:1!important;
  align-self:end!important;
  margin:0!important;
  color:var(--amt303-navy)!important;
  font:italic 950 24px/1 "DM Sans",system-ui,sans-serif!important;
  letter-spacing:.035em!important;
  white-space:nowrap!important;
}
.login-mobile-brand strong span{color:var(--amt303-red)!important}
.login-mobile-brand small{
  display:block!important;
  grid-column:2!important;
  grid-row:2!important;
  align-self:start!important;
  margin:0!important;
  color:#7a879c!important;
  font:900 8px/1.15 "DM Sans",system-ui,sans-serif!important;
  letter-spacing:.25em!important;
  white-space:nowrap!important;
}

.login-heading{margin:0 0 18px!important;text-align:center!important}
.login-heading>span,.login-heading p{display:none!important}
.login-heading h2{
  margin:0!important;
  color:var(--amt303-navy-deep)!important;
  font-size:0!important;
  line-height:1!important;
  letter-spacing:0!important;
}
.login-heading h2::after{
  content:"Welcome Back"!important;
  display:block!important;
  color:var(--amt303-navy-deep)!important;
  font:850 22px/1.15 "DM Sans",system-ui,sans-serif!important;
  letter-spacing:-.035em!important;
}

.login-field{margin:0 0 13px!important}
.login-field>span{
  margin:0 0 6px!important;
  color:#35415a!important;
  font:800 10.5px/1.2 "DM Sans",system-ui,sans-serif!important;
  letter-spacing:.015em!important;
  text-transform:none!important;
}
.login-field:first-of-type>span{font-size:0!important}
.login-field:first-of-type>span::after{
  content:"User"!important;
  font-size:10.5px!important;
}
.login-field input{
  min-height:44px!important;
  border:1px solid #cbd5e2!important;
  border-radius:8px!important;
  background:#fff!important;
  padding:0 13px!important;
  color:#1c2946!important;
  font:650 13px "DM Sans",system-ui,sans-serif!important;
  box-shadow:none!important;
}
.login-field input:focus{
  border-color:#7f91b2!important;
  box-shadow:0 0 0 3px rgba(20,38,91,.10)!important;
}
.login-field:first-of-type input::placeholder{color:transparent!important}
.login-password button{
  color:#647189!important;
  font-size:10.5px!important;
  font-weight:800!important;
}
.login-primary{
  min-height:44px!important;
  margin-top:2px!important;
  border-radius:8px!important;
  background:var(--amt303-red)!important;
  box-shadow:0 7px 17px rgba(200,16,46,.18)!important;
  font-size:12px!important;
  font-weight:900!important;
}
.login-primary:hover{background:var(--amt303-red-deep)!important}
.login-links,.login-footnote{display:none!important}
.login-message{margin-bottom:13px!important}

/* no cursor/caret artifacts around non-editable brand elements */
.login-mobile-brand,.login-mobile-brand *,
.header-brand,.header-brand *,
.bid-brand,.bid-brand *{caret-color:transparent!important}

@media(max-width:600px){
  .login-card{padding:26px 23px 24px!important}
  .login-mobile-brand{grid-template-columns:54px minmax(0,1fr)!important;column-gap:11px!important}
  .login-mobile-brand::before{width:54px!important;height:54px!important}
  .login-mobile-brand strong{font-size:21px!important}
}

/* =========================================================
   MAIN HEADER — real SaaS lockup instead of tiny raster logo
   ========================================================= */
.header-brand{
  width:248px!important;
  flex:0 0 248px!important;
  min-height:50px!important;
  display:grid!important;
  grid-template-columns:46px minmax(0,1fr)!important;
  grid-template-rows:auto auto!important;
  column-gap:10px!important;
  row-gap:2px!important;
  align-items:center!important;
  justify-items:start!important;
  overflow:visible!important;
}
.header-brand::before{
  content:""!important;
  position:static!important;
  inset:auto!important;
  grid-column:1!important;
  grid-row:1/3!important;
  width:46px!important;
  height:46px!important;
  background:url("/icons/ameriteam-emblem.png") center/contain no-repeat!important;
}
.header-brand::after{content:none!important;display:none!important}
.header-brand-mark{
  display:block!important;
  grid-column:2!important;
  grid-row:1!important;
  align-self:end!important;
  margin:0!important;
  color:var(--amt303-navy)!important;
  font:italic 950 20px/1 "DM Sans",system-ui,sans-serif!important;
  letter-spacing:.035em!important;
  white-space:nowrap!important;
}
.header-brand-mark>span{color:var(--amt303-red)!important}
.header-brand-sub{
  display:block!important;
  grid-column:2!important;
  grid-row:2!important;
  align-self:start!important;
  margin:0!important;
  color:#71809b!important;
  font:900 7.5px/1.2 "DM Sans",system-ui,sans-serif!important;
  letter-spacing:.235em!important;
  white-space:nowrap!important;
}

.app-header-main{min-height:66px!important}
.header-search{max-width:760px!important}

@media(max-width:1180px){
  .header-brand{width:210px!important;flex-basis:210px!important;grid-template-columns:40px minmax(0,1fr)!important}
  .header-brand::before{width:40px!important;height:40px!important}
  .header-brand-mark{font-size:17px!important}
  .header-brand-sub{font-size:6.5px!important}
}
@media(max-width:760px){
  .header-brand{width:176px!important;flex-basis:176px!important;grid-template-columns:36px minmax(0,1fr)!important;min-height:40px!important}
  .header-brand::before{width:36px!important;height:36px!important}
  .header-brand-mark{font-size:15px!important}
  .header-brand-sub{font-size:6px!important;letter-spacing:.19em!important}
}

/* =========================================================
   BID ROOM NAV — same nav row, no box, no gold/shimmer
   ========================================================= */
.linear-nav .bid-room-nav{
  height:auto!important;
  min-height:100%!important;
  margin:0!important;
  padding:0 14px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  transform:none!important;
  overflow:visible!important;
  font-style:italic!important;
  letter-spacing:.015em!important;
}
.linear-nav .bid-room-nav::before{content:none!important;display:none!important;animation:none!important}
.linear-nav .bid-room-nav::after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:14px!important;
  right:14px!important;
  top:auto!important;
  bottom:0!important;
  height:2px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.linear-nav .bid-room-nav .bid-word{
  color:var(--amt303-red)!important;
  font-size:12px!important;
  font-weight:950!important;
  text-shadow:none!important;
}
.linear-nav .bid-room-nav .room-word{
  color:var(--amt303-navy)!important;
  font-size:12px!important;
  font-weight:950!important;
  text-shadow:none!important;
}
.linear-nav .bid-room-nav:hover,
.linear-nav .bid-room-nav:focus-visible{
  transform:none!important;
  background:#f8fafc!important;
  border:0!important;
  box-shadow:none!important;
}
.linear-nav .bid-room-nav.active{background:transparent!important;border:0!important;box-shadow:none!important}
.linear-nav .bid-room-nav.active::after{background:var(--amt303-red)!important}

/* =========================================================
   BID ROOM SHELL — white, same family as the main OS header
   ========================================================= */
.bid-command-topbar{
  height:64px!important;
  background:#fff!important;
  color:var(--amt303-ink)!important;
  border-bottom:1px solid var(--amt303-line)!important;
  box-shadow:0 3px 14px rgba(15,30,70,.055)!important;
}
.bid-brand{
  color:var(--amt303-navy)!important;
  font-style:italic!important;
  font-weight:950!important;
  letter-spacing:.035em!important;
  text-shadow:none!important;
}
.bid-brand::before{
  width:34px!important;
  height:34px!important;
  margin-right:10px!important;
  background:url("/icons/ameriteam-emblem.png") center/contain no-repeat!important;
}
.bid-brand span{color:var(--amt303-red)!important}
.bid-command-label{
  color:#647189!important;
  border-left-color:var(--amt303-line)!important;
  font-size:10px!important;
  letter-spacing:.12em!important;
}
.bid-project-switcher,
.bid-command-search input{
  background:#f8fafc!important;
  color:var(--amt303-ink)!important;
  border-color:#d7dfeb!important;
  box-shadow:none!important;
}
.bid-command-search input::placeholder{color:#8995a8!important}
.bid-command-search span{color:#78869b!important}
.bid-command-user>span{
  background:var(--amt303-red)!important;
  color:#fff!important;
}
.bid-command-user strong{color:var(--amt303-navy-deep)!important}
.bid-command-user small{color:#748197!important}
.bid-dashboard-exit{
  background:#fff!important;
  color:var(--amt303-navy)!important;
  border:1px solid #d7dfeb!important;
  box-shadow:none!important;
}
.bid-dashboard-exit:hover{
  background:#f7f9fc!important;
  color:var(--amt303-red-deep)!important;
  border-color:#bdc8d8!important;
}

/* Current v288 Bid Room workspace uses amt195 classes. Match main shell geometry. */
#amt195-bid-room.amt195-page{
  background:#f4f7fb!important;
  color:var(--amt303-ink)!important;
}
#amt195-bid-room .amt195-sidebar{
  background:#fff!important;
  border-right:1px solid var(--amt303-line)!important;
}
#amt195-bid-room .amt195-work{padding-top:22px!important}
#amt195-bid-room .amt195-card,
#amt195-bid-room .amt195-context-strip,
#amt195-bid-room .amt195-tabs,
#amt195-bid-room .amt195-grid-metrics{
  border-color:var(--amt303-line)!important;
  box-shadow:0 4px 14px rgba(15,30,70,.045)!important;
}
#amt195-bid-room .amt195-head h1,
#amt195-bid-room .amt195-card-head h2,
#amt195-bid-room .amt195-side-title strong{
  color:var(--amt303-navy-deep)!important;
}

/* =========================================================
   LOADING — white screen + one quiet spinner, no duplicate toast
   ========================================================= */
.boot-screen,
.bid-entry-screen,
.bid-loading-screen,
.bid-room-loading,
.route-loading{
  background:#fff!important;
  color:transparent!important;
  box-shadow:none!important;
}
.boot-screen>* ,
.bid-entry-screen>*{
  display:none!important;
}
.boot-screen::after,
.bid-entry-screen::after,
.bid-loading-screen::after,
.bid-room-loading::after,
.route-loading::after{
  content:""!important;
  display:block!important;
  width:30px!important;
  height:30px!important;
  border:3px solid #e4e9f0!important;
  border-top-color:var(--amt303-red)!important;
  border-radius:50%!important;
  animation:amt303Spin .72s linear infinite!important;
}
@keyframes amt303Spin{to{transform:rotate(360deg)}}

#amt195-bid-room .amt195-loading{
  min-height:calc(100vh - 130px)!important;
  background:#fff!important;
  color:transparent!important;
}
#amt195-bid-room .amt195-loading>div:not(.amt195-error):not(.amt195-empty){
  display:grid!important;
  place-items:center!important;
  font-size:0!important;
  color:transparent!important;
}
#amt195-bid-room .amt195-loading>div:not(.amt195-error):not(.amt195-empty)>span{
  width:30px!important;
  height:30px!important;
  margin:0!important;
  border:3px solid #e4e9f0!important;
  border-top-color:var(--amt303-red)!important;
  border-radius:50%!important;
  animation:amt303Spin .72s linear infinite!important;
}

@media(prefers-reduced-motion:reduce){
  .boot-screen::after,.bid-entry-screen::after,.bid-loading-screen::after,.bid-room-loading::after,.route-loading::after,
  #amt195-bid-room .amt195-loading>div:not(.amt195-error):not(.amt195-empty)>span{
    animation-duration:1.4s!important;
  }
}

/* Signed-out login should stay intentionally white even if a prior dark preference exists. */
:root[data-theme-resolved="dark"] body:has(.login-screen) .login-card{
  background:rgba(255,255,255,.975)!important;
  color:var(--amt303-ink)!important;
  border-color:rgba(255,255,255,.84)!important;
}
:root[data-theme-resolved="dark"] body:has(.login-screen) .login-heading h2::after,
:root[data-theme-resolved="dark"] body:has(.login-screen) .login-mobile-brand strong{
  color:var(--amt303-navy-deep)!important;
}
:root[data-theme-resolved="dark"] body:has(.login-screen) .login-mobile-brand strong span{color:var(--amt303-red)!important}
:root[data-theme-resolved="dark"] body:has(.login-screen) .login-mobile-brand small,
:root[data-theme-resolved="dark"] body:has(.login-screen) .login-field>span{color:#647189!important}
:root[data-theme-resolved="dark"] body:has(.login-screen) .login-field input{
  background:#fff!important;
  color:#1c2946!important;
  border-color:#cbd5e2!important;
}

/* v304: a single typographic lockup, without a raster tile or background. */
.login-mobile-brand {
  grid-template-columns:minmax(0,1fr)!important;
  row-gap:7px!important;
  justify-items:center!important;
  min-height:60px!important;
}
.login-mobile-brand::before { content:none!important;display:none!important;background:none!important; }
.login-mobile-brand strong {
  grid-column:1!important;
  font-size:clamp(25px,7.5vw,32px)!important;
  letter-spacing:.015em!important;
}
.login-mobile-brand small {
  grid-column:1!important;
  font-size:9px!important;
  letter-spacing:.32em!important;
}
.login-heading h2 { font-size:22px!important;line-height:1.15!important; }
.login-heading h2::after,.login-field:first-of-type>span::after { content:none!important;display:none!important; }
.login-field:first-of-type>span { font-size:10.5px!important; }

/* One brand treatment in the login and the persistent application header. */
.header-brand {
  grid-template-columns:minmax(0,1fr)!important;
  row-gap:5px!important;
  justify-items:start!important;
  width:210px!important;
  flex-basis:210px!important;
}
.header-brand::before { content:none!important;display:none!important;background:none!important; }
.header-brand-mark,.header-brand-sub { grid-column:1!important; }
.header-brand-mark { color:#14265b!important;font-size:24px!important;letter-spacing:.015em!important; }
.header-brand-mark>span,.login-mobile-brand strong span { color:#c8102e!important; }
.login-mobile-brand strong { color:#14265b!important; }
.header-brand-sub,.login-mobile-brand small { color:#667085!important; }
@media(max-width:760px) {
  .header-brand { width:176px!important;flex-basis:176px!important; }
  .header-brand-mark { font-size:21px!important; }
}

/* The same header stays mounted on every route. No estimated pixel offset. */
#amt-bid-room-slot { flex:1 1 0;min-height:0;display:flex;position:relative;overflow:hidden; }
#amt-bid-room-slot > #amt195-bid-room {
  position:relative!important;
  inset:auto!important;
  top:auto!important;
  flex:1 1 0;
  min-width:0;
  min-height:0;
}
#amt-bid-room-slot .amt195-loading { min-height:100%!important; }
body:has(#amt-bid-room-slot) .boot-screen { display:none!important; }
@media print {
  body:has(#amt-bid-room-slot) > #root { display:block!important; }
  body:has(#amt-bid-room-slot) .app-header { display:none!important; }
  body:has(#amt-bid-room-slot) .app,
  body:has(#amt-bid-room-slot) .main,
  #amt-bid-room-slot,
  #amt-bid-room-slot > #amt195-bid-room {
    display:block!important;height:auto!important;overflow:visible!important;
  }
}
/* Permit the shared search row to wrap without overflowing the mobile header. */
@media(max-width:1099px) {
  .app-header-main { height:auto!important;min-height:66px!important; }
  .header-search { min-width:0!important; }
}

:root[data-theme-resolved="dark"] body:has(.login-screen) .login-mobile-brand strong { color:#14265b!important; }
:root[data-theme-resolved="dark"] body:has(.login-screen) .login-mobile-brand small { color:#667085!important; }

.app.shell-enter:has(#amt-bid-room-slot) { animation:none!important;opacity:1!important;transform:none!important; }
