/* =========================================================
   Email Assistant — Gmail (Material 3) Design System
   ========================================================= */
:root{
  /* Material 3 / Gmail Surfaces */
  --bg:#F6F8FC;
  --surface:#FFFFFF;
  --surface-2:#F2F6FC;
  --surface-3:#EAF1FB;
  --ink:#1F1F1F;
  --ink-2:#3C4043;
  --ink-3:#444746;
  --line:#E1E5EA;
  --line-row:#E9EEF6;
  --line-strong:#C4C7C5;

  /* Google / Gmail Brand Tokens */
  --brand-950:#041E49;
  --brand-900:#062E6F;
  --brand-800:#0B57D0;
  --brand-700:#1B6EF3;
  --accent:#0B57D0;
  --accent-dark:#0842A0;
  --accent-soft:#D3E3FD;
  --compose-bg:#C2E7FF;
  --compose-hover:#B3DFFC;
  --compose-ink:#001D35;
  --mint:#A8C7FA;
  --mint-ink:#D3E3FD;

  /* Semantic Signals (WCAG AA+ contrast on light fills) */
  --amber:#8F4900;
  --amber-soft:#FEF3D6;
  --red:#B3261E;
  --red-soft:#FCE8E6;
  --green:#137333;
  --green-soft:#E6F4EA;
  --gmail:#C5221F;
  --outlook:#006CBE;

  /* Typography */
  --font-ui:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-display:"Lexend","Public Sans",system-ui,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;

  /* Radii & Elevation */
  --r-sm:8px;
  --r-md:12px;
  --r-lg:16px;
  --r-xl:24px;
  --shadow-xs:0 1px 2px rgba(31,31,31,.06);
  --shadow-sm:0 1px 3px rgba(31,31,31,.08),0 4px 10px rgba(31,31,31,.05);
  --shadow-md:0 2px 6px rgba(31,31,31,.08),0 12px 28px rgba(31,31,31,.09);
  --shadow-lg:0 4px 12px rgba(31,31,31,.1),0 24px 48px rgba(31,31,31,.14);
  --ease:cubic-bezier(.2,0,0,1);
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:4.5rem;caret-color:var(--accent)}
body{
  margin:0;
  font-family:var(--font-ui);
  font-size:14px;
  line-height:1.5;
  color:var(--ink);
  background:var(--bg);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
h1,h2{
  font-family:var(--font-display);
  font-weight:600;
  letter-spacing:-.02em;
  text-wrap:balance;
  margin:0;
}
h1{font-size:2.5rem;line-height:1.12}
h2{font-size:1.5rem;line-height:1.2}
h3{font-size:.95rem;font-weight:600;letter-spacing:-.01em;margin:0}
p{margin:0}
a{color:var(--accent);text-underline-offset:3px}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--accent-soft);color:var(--brand-950)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#C4C7C5;border-radius:999px}
::-webkit-scrollbar-thumb:hover{background:#8E918F}

/* ---------- Brand ---------- */
.brand{
  display:inline-flex;
  align-items:center;
  gap:.65rem;
  font-family:var(--font-display);
  font-weight:600;
  font-size:1.2rem;
  letter-spacing:-.02em;
  color:var(--ink-2);
  white-space:nowrap;
}
.brand-mark{width:2rem;height:2rem;flex:none;border-radius:8px}
.brand.small{font-size:1.15rem;color:#444746}
.brand.small .brand-mark{width:1.85rem;height:1.85rem}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  min-height:2.25rem;
  padding:.4rem .95rem;
  border:1px solid var(--line-strong);
  border-radius:999px;
  background:var(--surface);
  font-weight:500;
  font-size:.875rem;
  text-decoration:none;
  color:var(--ink-2);
  cursor:pointer;
  white-space:nowrap;
  transition:background-color .15s var(--ease),border-color .15s var(--ease),box-shadow .15s var(--ease);
}
.btn svg{width:1.05rem;height:1.05rem;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
.btn:hover{background:var(--surface-2);border-color:#8E918F;color:var(--ink)}
.btn:active{background:var(--surface-3)}
.btn.primary{
  background:var(--accent);
  border-color:var(--accent);
  color:#FFFFFF;
  font-weight:500;
}
.btn.primary:hover{
  background:var(--accent-dark);
  border-color:var(--accent-dark);
  box-shadow:var(--shadow-xs);
}
.btn.ghost{
  border-color:transparent;
  background:transparent;
  box-shadow:none;
  color:var(--accent);
  font-weight:500;
}
.btn.ghost:hover{background:var(--surface-3);border-color:transparent}
.btn.small{min-height:1.95rem;padding:.25rem .7rem;font-size:.8rem}
.icon-btn{
  display:inline-grid;
  place-items:center;
  width:2.35rem;
  height:2.35rem;
  min-height:2.35rem;
  padding:0;
  border:0;
  border-radius:50%;
  background:transparent;
  color:var(--ink-3);
  cursor:pointer;
  transition:background-color .15s var(--ease),color .15s var(--ease);
}
.icon-btn svg{width:1.2rem;height:1.2rem;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.icon-btn:hover{background:rgba(60,64,67,.08);color:var(--ink)}
.icon-btn.small{width:1.85rem;height:1.85rem;min-height:1.85rem}
.icon-btn.small svg{width:1rem;height:1rem}

.error{color:var(--red);min-height:1.1em;font-size:.84rem;font-weight:500}
.error:empty{min-height:0}
.hint{color:var(--ink-3);font-size:.86rem;line-height:1.5}
.fineprint{color:var(--ink-3);font-size:.78rem;text-align:center}

/* ---------- Pills, tags, badges ---------- */
.pill{
  display:inline-flex;
  align-items:center;
  gap:.25rem;
  font-size:.75rem;
  font-weight:500;
  padding:.14rem .52rem;
  border-radius:6px;
  background:var(--surface-3);
  color:var(--ink-2);
  font-variant-numeric:tabular-nums;
  max-width:100%;
  white-space:nowrap;
}
.pill.hot{background:var(--red-soft);color:var(--red);font-weight:600}
.pill.warm{background:var(--amber-soft);color:var(--amber);font-weight:600}
.pill.ai{background:var(--accent-soft);color:var(--brand-950)}
.pill.calendar{background:#E6F4EA;color:var(--green);overflow:hidden;text-overflow:ellipsis}
.tag{
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.03em;
  padding:.14rem .45rem;
  border-radius:4px;
  color:#FFFFFF;
  text-transform:uppercase;
}
.tag.gmail{background:var(--gmail)}
.tag.outlook{background:var(--outlook)}
.count{
  display:inline-grid;
  place-items:center;
  min-width:1.4rem;
  height:1.35rem;
  padding:0 .4rem;
  border-radius:999px;
  font-size:.75rem;
  font-weight:600;
  font-variant-numeric:tabular-nums;
  color:var(--ink-2);
}
.score{
  display:inline-flex;
  align-items:center;
  font-family:var(--font-mono);
  font-size:.75rem;
  font-weight:500;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
  padding:.16rem .48rem;
  border-radius:6px;
  background:var(--surface-3);
  color:var(--brand-950);
  border:1px solid #C2D7FA;
}
.score.hot{background:var(--red-soft);color:var(--red);border-color:#F5C2BE}
.score.warm{background:var(--amber-soft);color:var(--amber);border-color:#F5D89A}

/* =========================================================
   Auth & Google Workspace Onboarding
   ========================================================= */
.auth-wrap{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  min-height:100vh;
  background:var(--bg);
}
.auth-left{
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  padding:3.25rem 3.5rem;
  background:var(--brand-950);
  color:#EAF1FB;
}
.auth-left .brand{color:#FFFFFF}
.auth-left h1{
  margin:auto 0 1rem;
  padding-top:2.5rem;
  font-size:2.45rem;
  font-weight:600;
  line-height:1.12;
  letter-spacing:-.02em;
  color:#FFFFFF;
}
.auth-left .lede{max-width:34rem;font-size:1rem;line-height:1.6;color:#C2D7FA}
.proof{display:grid;gap:0;margin:1.75rem 0 0;padding:0;list-style:none;max-width:32rem}
.proof li{
  display:grid;
  gap:.15rem;
  padding:.75rem 0;
  border-top:1px solid rgba(255,255,255,.14);
  color:#C2D7FA;
  font-size:.9rem;
}
.proof strong{color:#FFFFFF;font-weight:600}
.preview{
  margin-top:1.75rem;
  max-width:30rem;
  padding:1rem;
  border-radius:var(--r-lg);
  background:var(--brand-900);
  border:1px solid rgba(255,255,255,.12);
}
.pv-head{
  display:flex;
  align-items:center;
  gap:.55rem;
  margin-bottom:.65rem;
  font-size:.82rem;
  font-weight:500;
  color:#D3E3FD;
}
.pv-dot{width:8px;height:8px;border-radius:50%;background:#7CACF8}
.pv-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  margin-bottom:.4rem;
  padding:.55rem .75rem;
  border-radius:8px;
  background:rgba(255,255,255,.08);
  font-size:.84rem;
  color:#FFFFFF;
}
.pv-row:last-child{margin-bottom:0}
.pv-row b{font-family:var(--font-mono);font-size:.75rem;font-weight:500;font-variant-numeric:tabular-nums;color:#A8C7FA}
.pv-row.hot b{color:#F6AEA9}
.pv-row.dim{opacity:.72}

.auth-card{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:2.5rem 2rem;
  background:var(--bg);
}
.auth-card form{
  display:grid;
  gap:.9rem;
  width:100%;
  max-width:28rem;
  padding:2.25rem;
  border-radius:var(--r-xl);
  background:var(--surface);
  border:1px solid var(--line);
  box-shadow:var(--shadow-sm);
}
.auth-card form>h2{margin-bottom:.25rem;color:var(--ink)}
.auth-card label{display:grid;gap:.35rem;font-size:.84rem;font-weight:500;color:var(--ink-2)}
.auth-card .btn.primary{width:100%;min-height:2.75rem;font-size:.92rem}
.auth-links-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem}
.auth-card input{
  width:100%;
  padding:.65rem .85rem;
  border:1px solid var(--line-strong);
  border-radius:8px;
  background:var(--surface);
  font-size:.92rem;
  color:var(--ink);
  transition:border-color .15s var(--ease);
}
.auth-card input:hover{border-color:var(--ink-2)}
.auth-card input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}
input::placeholder,textarea::placeholder{color:var(--ink-3);opacity:1}

.password-field{position:relative;display:block}
.password-field input{padding-right:2.8rem}
.password-toggle{
  position:absolute;
  right:.3rem;
  top:50%;
  transform:translateY(-50%);
  display:grid;
  place-items:center;
  width:2.1rem;
  height:2.1rem;
  border:0;
  border-radius:50%;
  background:transparent;
  color:var(--ink-3);
  cursor:pointer;
}
.password-toggle:hover{background:var(--surface-2);color:var(--ink)}
.password-toggle svg{width:1.1rem;height:1.1rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.forgot-link{justify-self:start!important;min-height:auto;padding:.15rem .4rem;font-size:.82rem}
.pw-meter{height:4px;border-radius:4px;background:var(--surface-3);overflow:hidden}
#pwBar{height:100%;width:0;background:var(--amber);border-radius:4px;transition:width .25s var(--ease),background-color .25s}
.demo-mail{
  padding:.85rem 1rem;
  border:1px dashed #D99B26;
  border-radius:var(--r-md);
  background:var(--amber-soft);
  font-size:.84rem;
  line-height:1.55;
  color:var(--amber);
}
.demo-mail strong{display:block;color:var(--ink)}
.demo-mail code{
  display:inline-block;
  margin-top:.25rem;
  font-family:var(--font-mono);
  font-size:1.25rem;
  font-weight:600;
  letter-spacing:.25em;
  color:var(--ink);
}
#codeInput{font-family:var(--font-mono);font-size:1.15rem;letter-spacing:.35em;text-align:center}

.choice-row{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}
.choice{
  padding:1rem;
  border:1px solid var(--line-strong);
  border-radius:var(--r-md);
  background:var(--surface);
  font-weight:600;
  cursor:pointer;
  transition:border-color .15s,background-color .15s;
}
.choice:hover{background:var(--surface-2);border-color:var(--accent)}
.choice.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--brand-950)}
.chip-grid{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.55rem}
.chip{
  padding:.38rem .85rem;
  border:1px solid var(--line-strong);
  border-radius:999px;
  background:var(--surface);
  font-size:.84rem;
  cursor:pointer;
  transition:background-color .15s,border-color .15s;
}
.chip:hover{background:var(--surface-2)}
.chip.selected{background:var(--accent);border-color:var(--accent);color:#FFFFFF}
.ai-profile{
  padding:.85rem 1rem;
  border-radius:var(--r-md);
  background:var(--surface-3);
  border:1px solid #C2D7FA;
  font-size:.86rem;
  line-height:1.5;
  color:var(--brand-950);
}

.account-list{display:grid;gap:.45rem}
.acct{
  display:flex;
  align-items:center;
  gap:.55rem;
  padding:.55rem .75rem;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--surface);
  font-size:.85rem;
}
.acct>span:first-child{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.provider-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}
.provider-card{
  display:grid;
  gap:.55rem;
  align-content:start;
  padding:.95rem;
  border:1px solid var(--line);
  border-radius:var(--r-md);
  background:var(--surface-2);
}
.provider-card h3{display:flex;align-items:center;gap:.45rem;font-size:.94rem}
.provider-card h3::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--gmail)}
.outlook-card h3::before{background:var(--outlook)}
.provider-card p,.provider-note{color:var(--ink-3);font-size:.78rem;line-height:1.45}
.provider-link{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:2.35rem;
  border-radius:999px;
  font-weight:500;
  font-size:.84rem;
  text-decoration:none;
  color:#FFFFFF;
  background:var(--outlook);
}
.gmail-card .provider-link{background:var(--gmail)}
.provider-link:hover{filter:brightness(1.06)}
.calendar-connect{
  display:grid;
  gap:.65rem;
  padding:.95rem;
  border:1px solid var(--line);
  border-radius:var(--r-md);
  background:var(--surface-2);
}
.calendar-connect h3{font-size:.92rem}
.calendar-connect h3 span{
  margin-left:.35rem;
  padding:.12rem .45rem;
  border-radius:999px;
  background:var(--surface-3);
  color:var(--ink-3);
  font-size:.75rem;
  font-weight:600;
}
.calendar-connect p{margin-top:.25rem;color:var(--ink-3);font-size:.8rem;line-height:1.45}
.calendar-actions{display:flex;flex-wrap:wrap;gap:.45rem}
.calendar-list{display:grid;gap:.4rem}
.calendar-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  padding:.5rem .7rem;
  border-radius:8px;
  background:var(--surface);
  border:1px solid var(--line);
  font-size:.8rem;
}
.calendar-item span{display:grid;gap:.05rem}
.calendar-item small{color:var(--ink-3)}

/* =========================================================
   Gmail Workspace Shell (#appView)
   ========================================================= */
.gmail-app{
  display:flex;
  flex-direction:column;
  height:100vh;
  overflow:hidden;
  background:var(--bg);
}

/* 1. Top Gmail App Bar */
.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  height:64px;
  padding:8px 16px 8px 12px;
  background:var(--bg);
  flex:none;
}
.topbar-left{
  display:flex;
  align-items:center;
  gap:.4rem;
  min-width:232px;
}
.search-field{
  position:relative;
  display:flex;
  align-items:center;
  flex:1;
  max-width:46rem;
  height:46px;
  padding:4px 8px 4px 15px;
  border-radius:999px;
  background:var(--surface-3);
  border:1px solid transparent;
  transition:background-color .15s var(--ease),box-shadow .15s var(--ease),border-color .15s var(--ease);
}
.search-field:focus-within{
  background:var(--surface);
  border-color:var(--line);
  box-shadow:var(--shadow-sm);
}
.search-field .search-icon{
  width:1.15rem;
  height:1.15rem;
  fill:none;
  stroke:var(--ink-3);
  stroke-width:2;
  stroke-linecap:round;
  flex:none;
}
.search-field input{
  flex:1;
  min-width:0;
  height:100%;
  padding:0 .75rem;
  border:0;
  background:transparent;
  font-size:.95rem;
  color:var(--ink);
}
.search-field input:focus{outline:none}
.search-filter-wrap{
  display:flex;
  align-items:center;
  padding-left:.5rem;
  border-left:1px solid var(--line);
}
#accountFilter{
  padding:.32rem 1.75rem .32rem .65rem;
  border:0;
  border-radius:999px;
  background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23444746' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E") no-repeat right .4rem center/.95rem;
  font-size:.82rem;
  font-weight:500;
  color:var(--ink-2);
  cursor:pointer;
  appearance:none;
}
#accountFilter:hover{background-color:rgba(60,64,67,.06)}

.topbar-right{
  display:flex;
  align-items:center;
  gap:.5rem;
  margin-left:auto;
}
.user-badge{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.25rem .65rem;
  border-radius:999px;
  background:var(--surface-3);
  font-size:.8rem;
  font-weight:500;
  color:var(--ink-2);
}
.user-badge::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green)}
.user-badge:empty{display:none}
.account-button{padding:.25rem .75rem .25rem .3rem;gap:.45rem}
.avatar-circle{
  display:inline-grid;
  place-items:center;
  width:1.75rem;
  height:1.75rem;
  border-radius:50%;
  background:var(--brand-800);
  color:#FFFFFF;
  font-size:.8rem;
  font-weight:600;
}

/* 2. Main 3-Column Body */
.gmail-body{
  display:grid;
  grid-template-columns:248px minmax(0,1fr) 64px;
  flex:1;
  min-height:0;
  padding-bottom:.65rem;
}
.gmail-body.sidebar-collapsed{
  grid-template-columns:0px minmax(0,1fr) 64px;
}
.gmail-body.sidebar-collapsed .gmail-sidebar{
  overflow:hidden;
  padding:0;
  opacity:0;
  pointer-events:none;
}

/* Left Gmail Sidebar */
.gmail-sidebar{
  display:flex;
  flex-direction:column;
  gap:.85rem;
  padding:.25rem .75rem .5rem .5rem;
  overflow-y:auto;
  transition:opacity .18s var(--ease);
}
.gmail-compose-btn{
  display:inline-flex;
  align-items:center;
  gap:.75rem;
  width:fit-content;
  min-width:9.25rem;
  height:54px;
  padding:0 1.35rem 0 1.1rem;
  margin-left:.25rem;
  border:0;
  border-radius:16px;
  background:var(--compose-bg);
  color:var(--compose-ink);
  font-family:var(--font-display);
  font-size:.92rem;
  font-weight:500;
  cursor:pointer;
  box-shadow:var(--shadow-xs);
  transition:background-color .15s var(--ease),box-shadow .15s var(--ease);
}
.gmail-compose-btn svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.gmail-compose-btn:hover{background:var(--compose-hover);box-shadow:var(--shadow-sm)}

.gmail-nav{display:grid;gap:2px}
.gmail-nav-item{
  display:flex;
  align-items:center;
  gap:.75rem;
  width:100%;
  height:36px;
  padding:0 .85rem 0 1rem;
  border:0;
  border-radius:999px;
  background:transparent;
  color:var(--ink-2);
  font-size:.875rem;
  font-weight:400;
  text-align:left;
  cursor:pointer;
  transition:background-color .12s var(--ease);
}
.gmail-nav-item svg{width:1.1rem;height:1.1rem;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none;color:var(--ink-3)}
.gmail-nav-item .nav-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gmail-nav-item:hover{background:rgba(60,64,67,.08)}
.gmail-nav-item.is-active{
  background:var(--accent-soft);
  color:var(--compose-ink);
  font-weight:600;
}
.gmail-nav-item.is-active svg{color:var(--compose-ink);stroke-width:2.2}
.gmail-nav-item.is-active .count{color:var(--compose-ink);font-weight:700}

.sidebar-section{
  padding:.5rem .5rem 0 .75rem;
  border-top:1px solid var(--line);
}
.sidebar-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:.35rem;
  font-size:.76rem;
  font-weight:600;
  color:var(--ink-3);
}
.sidebar-accounts{display:grid;gap:.2rem}
.sidebar-acct-btn{
  display:flex;
  align-items:center;
  gap:.55rem;
  width:100%;
  padding:.38rem .55rem;
  border:0;
  border-radius:8px;
  background:transparent;
  font-size:.8rem;
  color:var(--ink-2);
  text-align:left;
  cursor:pointer;
}
.sidebar-acct-btn:hover{background:rgba(60,64,67,.08)}
.sidebar-acct-btn.is-active{background:var(--surface-3);font-weight:600;color:var(--accent)}
.acct-dot{width:8px;height:8px;border-radius:50%;flex:none}
.acct-dot.gmail{background:var(--gmail)}
.acct-dot.outlook{background:var(--outlook)}
.sidebar-acct-btn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.settings-bar{
  margin-top:auto;
  display:grid;
  gap:.35rem;
  padding:.75rem .85rem;
  margin-left:.25rem;
  border-radius:var(--r-md);
  background:var(--surface);
  border:1px solid var(--line);
  font-size:.78rem;
  color:var(--ink-2);
}
.settings-bar strong{color:var(--ink);font-weight:600;font-size:.8rem;margin-bottom:.1rem}
.settings-bar label{display:flex;align-items:center;gap:.45rem;cursor:pointer;line-height:1.35}
.settings-bar input[type=radio]{accent-color:var(--accent);margin:0}

/* Center White Gmail Sheet */
.gmail-sheet{
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:0;
  background:var(--surface);
  border-radius:var(--r-lg);
  border:1px solid var(--line);
  overflow:hidden;
}

/* Gmail Action Toolbar */
.gmail-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:.4rem .65rem;
  min-height:46px;
  padding:6px 14px;
  border-bottom:1px solid var(--line-row);
  background:var(--surface);
  flex:none;
}
.toolbar-left,.toolbar-right{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem}
.checkbox-wrap{
  display:inline-grid;
  place-items:center;
  width:2rem;
  height:2rem;
  border-radius:4px;
  cursor:pointer;
}
.checkbox-wrap:hover{background:rgba(60,64,67,.08)}
.checkbox-wrap input{width:15px;height:15px;accent-color:var(--accent);cursor:pointer;margin:0}
.toolbar-action{border-color:var(--line);background:var(--surface);font-size:.78rem;padding:.2rem .65rem;min-height:1.85rem}
.toolbar-action[aria-pressed="true"]{background:var(--surface-3);border-color:#C2D7FA;color:var(--accent)}
.focus-next-pill{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.25rem .7rem;
  border:1px solid #C2D7FA;
  border-radius:999px;
  background:var(--surface-3);
  color:var(--brand-950);
  font-size:.78rem;
  font-weight:600;
  cursor:pointer;
  transition:background-color .15s var(--ease),border-color .15s var(--ease);
}
.focus-next-pill:hover{background:var(--accent-soft);border-color:var(--accent)}
.focus-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--accent);
  flex:none;
}
.toolbar-count{
  font-size:.78rem;
  color:var(--ink-3);
  font-variant-numeric:tabular-nums;
  padding-left:.35rem;
}

/* Gemini-in-Gmail AI Morning Brief & Calendar Strip */
.brief-Banner-wrap{
  display:grid;
  gap:.45rem;
  padding:.65rem 1rem;
  background:var(--surface-2);
  border-bottom:1px solid var(--line-row);
  flex:none;
}
.brief{
  position:relative;
  padding:.65rem .9rem .65rem 2.15rem;
  border-radius:var(--r-sm);
  background:var(--surface);
  border:1px solid #C2D7FA;
  color:var(--ink-2);
  font-size:.84rem;
  line-height:1.5;
}
.brief::before{
  content:"";
  position:absolute;
  left:.85rem;
  top:1rem;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--accent);
}
.brief strong{color:var(--ink);font-weight:600}
.brief>strong:first-child{color:var(--accent)}
.calendar-context{
  padding:.55rem .9rem;
  border-radius:var(--r-sm);
  background:var(--green-soft);
  border:1px solid #B7DFC2;
  color:#0D5224;
  font-size:.82rem;
  line-height:1.45;
}
.calendar-context strong{color:#083B18}
.calendar-context span{color:var(--ink-3);font-size:.76rem;margin-left:.35rem}

/* Gmail Category Tabs (1-Line Quiet Tabs) */
.gmail-tabs{
  display:flex;
  align-items:center;
  gap:6px;
  overflow-x:auto;
  padding:8px 12px;
  border-bottom:1px solid var(--line-row);
  background:var(--surface);
  flex:none;
  scrollbar-width:none;
}
.gmail-tab{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding:6px 14px;
  border:1px solid transparent;
  border-radius:8px;
  background:transparent;
  color:var(--ink-3);
  text-align:left;
  cursor:pointer;
  white-space:nowrap;
  transition:background-color .15s var(--ease),color .15s var(--ease),border-color .15s var(--ease);
}
.gmail-tab svg{width:1.05rem;height:1.05rem;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
.gmail-tab:hover{background:var(--surface-2);color:var(--ink)}
.gmail-tab.is-active{
  background:var(--surface-3);
  border-color:#C2D7FA;
  color:var(--accent);
}
.gmail-tab-title{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  font-size:.84rem;
  font-weight:600;
  white-space:nowrap;
}
.tab-badge{
  display:inline-block;
  padding:.05rem .42rem;
  border-radius:999px;
  background:var(--surface-3);
  color:var(--ink-2);
  font-size:.75rem;
  font-weight:600;
  font-variant-numeric:tabular-nums;
}
.tab-badge.hot{background:var(--red-soft);color:var(--red)}
.tab-badge.warm{background:var(--amber-soft);color:var(--amber)}

/* Split Inbox & Reading Pane Area */
.gmail-split{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  flex:1;
  min-height:0;
  overflow:hidden;
}
.gmail-split.has-drawer{
  grid-template-columns:minmax(24rem,1.08fr) minmax(24rem,.92fr);
}
.gmail-list-pane{
  overflow-y:auto;
  overflow-x:hidden;
  min-height:0;
  background:var(--surface);
}

/* Single-Tab vs 3-Lane Board Layout */
.lanes{display:block}
.lanes .lane{display:none}
.lanes .lane.is-active-lane{display:block}
.lane-header{
  display:none;
  align-items:baseline;
  justify-content:space-between;
  gap:.75rem;
  padding:.75rem 1rem .5rem;
  border-bottom:1px solid var(--line-row);
  background:var(--surface-2);
}
.lane-sub{color:var(--ink-3);font-size:.78rem}

/* When 3-Lane Board mode is active */
.lanes.board-mode{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.75rem;
  padding:.85rem;
  align-items:start;
}
.lanes.board-mode .lane{
  display:block;
  border:1px solid var(--line);
  border-radius:var(--r-md);
  background:var(--surface-2);
  overflow:hidden;
}
.lanes.board-mode .lane-header{display:flex;flex-direction:column;gap:.15rem}
.lanes.board-mode .card{
  display:block;
  padding:.75rem .85rem;
  margin:.45rem;
  border:1px solid var(--line);
  border-radius:var(--r-sm);
  background:var(--surface);
}
.lanes.board-mode .card .row-main{display:block}
.lanes.board-mode .card .from{width:auto;margin-bottom:.25rem}
.lanes.board-mode .card .row-content{display:block;white-space:normal}
.lanes.board-mode .card .subj{max-width:none;display:block}
.lanes.board-mode .card .snip{display:block;margin-top:.2rem;white-space:normal}
.lanes.board-mode .card .snip::before{content:""}
.lanes.board-mode .card .meta{margin-top:.55rem;justify-content:flex-start;flex-wrap:wrap}

/* Gmail Message Rows (Default Tabbed List) */
.gmail-row-list{display:flex;flex-direction:column}
.card{
  position:relative;
  display:flex;
  align-items:center;
  gap:.65rem;
  min-height:48px;
  padding:.5rem 1rem .5rem .65rem;
  border-bottom:1px solid var(--line-row);
  background:var(--surface);
  cursor:pointer;
  transition:background-color .1s var(--ease),box-shadow .12s var(--ease);
}
.card.is-read{background:var(--surface-2)}
.card:hover{
  background:#F2F6FC;
  box-shadow:inset 0 -1px 0 var(--line),0 1px 3px rgba(31,31,31,.08);
  z-index:1;
}
.card.is-selected{
  background:var(--accent-soft);
}
.card:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:-2px;
}

.row-controls{
  display:flex;
  align-items:center;
  gap:.2rem;
  flex:none;
}
.row-check{
  width:15px;
  height:15px;
  accent-color:var(--accent);
  cursor:pointer;
  margin:0 .2rem;
}
.star-btn{
  display:inline-grid;
  place-items:center;
  width:1.75rem;
  height:1.75rem;
  padding:0;
  border:0;
  border-radius:50%;
  background:transparent;
  color:#8E918F;
  cursor:pointer;
}
.star-btn svg{width:1.05rem;height:1.05rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.star-btn:hover{background:rgba(60,64,67,.08);color:var(--ink)}
.star-btn.is-starred{color:#E37400}
.star-btn.is-starred svg{fill:#FABB05;stroke:#E37400}

.row-main{
  display:flex;
  align-items:center;
  gap:.75rem;
  flex:1;
  min-width:0;
}
.card .from{
  display:flex;
  align-items:center;
  gap:.45rem;
  width:165px;
  flex:none;
  font-size:.875rem;
  font-weight:700;
  color:var(--ink);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.card.is-read .from{font-weight:500;color:var(--ink-2)}
.card .from-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.row-content{
  display:flex;
  align-items:baseline;
  gap:.45rem;
  flex:1;
  min-width:160px;
  overflow:hidden;
  white-space:nowrap;
}
.card .subj{
  font-size:.875rem;
  font-weight:700;
  color:var(--ink);
  flex-shrink:0;
  max-width:52%;
  overflow:hidden;
  text-overflow:ellipsis;
}
.card.is-read .subj{font-weight:500;color:var(--ink-2)}
.card .snip{
  color:var(--ink-3);
  font-size:.85rem;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.card .snip::before{content:"— ";color:var(--ink-3)}

.card .meta{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.35rem;
  flex:none;
  margin-left:auto;
}

/* Split-Pane Compact 2-Line Row Layout (like Gmail Vertical Split Pane) */
.gmail-split.has-drawer .lanes:not(.board-mode) .card{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  row-gap:.35rem;
  column-gap:.55rem;
  align-items:start;
  padding:.65rem .9rem .65rem .65rem;
}
.gmail-split.has-drawer .lanes:not(.board-mode) .row-controls{
  grid-column:1;
  grid-row:1 / span 2;
  padding-top:.1rem;
}
.gmail-split.has-drawer .lanes:not(.board-mode) .row-main{
  grid-column:2;
  grid-row:1;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:.18rem;
}
.gmail-split.has-drawer .lanes:not(.board-mode) .card .from{
  width:auto;
}
.gmail-split.has-drawer .lanes:not(.board-mode) .row-content{
  min-width:0;
}
.gmail-split.has-drawer .lanes:not(.board-mode) .card .subj{
  max-width:58%;
}
.gmail-split.has-drawer .lanes:not(.board-mode) .card .meta{
  grid-column:2;
  grid-row:2;
  justify-content:flex-start;
  flex-wrap:wrap;
  margin-left:0;
}

.row-actions{
  display:none;
  align-items:center;
  gap:.25rem;
  margin-left:.35rem;
}
.card:hover .row-actions{display:inline-flex}
.row-act-btn{
  display:inline-grid;
  place-items:center;
  width:1.9rem;
  height:1.9rem;
  border:0;
  border-radius:50%;
  background:var(--surface);
  color:var(--ink-2);
  cursor:pointer;
  box-shadow:var(--shadow-xs);
}
.row-act-btn svg{width:.98rem;height:.98rem;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.row-act-btn:hover{background:var(--accent-soft);color:var(--brand-950)}

.empty{
  margin:1.25rem;
  padding:2.25rem 1rem;
  text-align:center;
  color:var(--ink-3);
  font-size:.88rem;
  border:1px dashed var(--line-strong);
  border-radius:var(--r-md);
  background:var(--surface-2);
}

.handled{
  border-top:1px solid var(--line-row);
}

/* ---------- Gmail Split Reading Pane (#drawer) ---------- */
.drawer{
  display:flex;
  flex-direction:column;
  height:100%;
  overflow-y:auto;
  border-left:1px solid var(--line);
  background:var(--surface);
}
.drawer-toolbar{
  position:sticky;
  top:0;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:.55rem 1.25rem;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line-row);
}
.drawer-crumb{
  font-size:.78rem;
  font-weight:500;
  color:var(--ink-3);
}
#drawerBody{
  padding:1.25rem 1.4rem 2rem;
}
.drawer h2{
  margin-bottom:.65rem;
  font-family:var(--font-display);
  font-size:1.3rem;
  font-weight:600;
  line-height:1.28;
  color:var(--ink);
}
.thread-meta-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:.65rem;
  padding:.65rem .85rem;
  margin-bottom:.85rem;
  border-radius:var(--r-sm);
  background:var(--surface-2);
  border:1px solid var(--line-row);
}
.thread-sender{
  display:flex;
  align-items:center;
  gap:.65rem;
}
.sender-avatar{
  display:grid;
  place-items:center;
  width:2.2rem;
  height:2.2rem;
  border-radius:50%;
  background:var(--accent-soft);
  color:var(--brand-950);
  font-weight:700;
  font-size:.9rem;
}
.sender-details{display:flex;flex-direction:column;font-size:.82rem}
.sender-details b{color:var(--ink);font-size:.88rem}
.sender-details span{color:var(--ink-3)}

.priority-math-bar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.35rem;
  margin-bottom:.85rem;
  padding:.5rem .75rem;
  border-radius:var(--r-sm);
  background:var(--surface-3);
  font-family:var(--font-mono);
  font-size:.75rem;
  color:var(--brand-950);
  font-variant-numeric:tabular-nums;
}
.priority-math-bar b{color:var(--accent-dark)}

.drawer .thread-body{
  margin:.75rem 0 1.15rem;
  padding:1rem 1.15rem;
  border-radius:var(--r-md);
  background:var(--surface);
  border:1px solid var(--line);
  white-space:pre-wrap;
  line-height:1.65;
  font-size:.9rem;
  color:var(--ink);
}

.reply-card{
  padding:1rem;
  border-radius:var(--r-md);
  border:1px solid var(--line-strong);
  background:var(--surface);
  box-shadow:var(--shadow-xs);
}
.reply-card-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:.5rem;
  padding-bottom:.6rem;
  margin-bottom:.65rem;
  border-bottom:1px solid var(--line-row);
  font-size:.8rem;
  color:var(--ink-3);
}
.drawer h3{
  font-size:.82rem;
  font-weight:600;
  color:var(--ink-2);
  margin:0;
}
.drawer textarea{
  width:100%;
  min-height:7.5rem;
  padding:.65rem .75rem;
  border:1px solid var(--line);
  border-radius:var(--r-sm);
  background:var(--surface-2);
  font-size:.9rem;
  line-height:1.55;
  color:var(--ink);
  resize:vertical;
}
.drawer textarea:focus{
  outline:2px solid var(--accent);
  background:var(--surface);
}
.drawer .hint{margin-top:.5rem;font-size:.8rem}
.drawer .actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.5rem;
  margin-top:.85rem;
  padding-top:.85rem;
  border-top:1px solid var(--line-row);
}

/* Right Companion Rail */
.gmail-companion{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.65rem;
  padding:.5rem .25rem;
}
.companion-btn{
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.25rem;
  width:2.75rem;
  min-height:2.75rem;
  padding:.35rem;
  border:0;
  border-radius:12px;
  background:transparent;
  color:var(--ink-2);
  cursor:pointer;
  transition:background-color .15s var(--ease),color .15s var(--ease);
}
.companion-btn svg{width:1.2rem;height:1.2rem;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.companion-btn:hover{background:var(--surface-3);color:var(--accent)}
.chat-fab{
  width:3.25rem;
  min-height:3.4rem;
  background:var(--compose-bg);
  color:var(--compose-ink);
  box-shadow:var(--shadow-xs);
}
.chat-fab svg{fill:var(--accent);stroke:var(--accent)}
.chat-fab:hover{background:var(--compose-hover)}
.companion-label{font-size:12px;font-weight:600;line-height:1.1;white-space:nowrap}

/* Toast Notification */
.toast{
  position:fixed;
  bottom:1.25rem;
  left:1.5rem;
  z-index:30;
  max-width:calc(100vw - 3rem);
  padding:.75rem 1.15rem;
  border-radius:8px;
  background:#202124;
  color:#FFFFFF;
  font-size:.875rem;
  box-shadow:var(--shadow-lg);
}

/* AI Chat Panel */
.chat-panel{
  position:fixed;
  right:4.25rem;
  bottom:1rem;
  z-index:25;
  display:flex;
  flex-direction:column;
  width:min(24rem,calc(100vw - 2rem));
  height:min(34rem,78vh);
  overflow:hidden;
  border-radius:var(--r-lg);
  background:var(--surface);
  border:1px solid var(--line);
  box-shadow:var(--shadow-lg);
}
.chat-panel header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:.7rem .85rem .7rem 1rem;
  background:var(--surface-3);
  border-bottom:1px solid var(--line);
}
.chat-title{display:flex;align-items:center;gap:.55rem;font-size:.9rem}
.chat-title .brand-mark{width:1.45rem;height:1.45rem}
.chat-msgs{
  flex:1;
  overflow:auto;
  display:flex;
  flex-direction:column;
  gap:.55rem;
  padding:1rem;
  background:var(--bg);
}
.msg{
  max-width:88%;
  padding:.6rem .85rem;
  border-radius:14px;
  font-size:.85rem;
  line-height:1.5;
  white-space:pre-wrap;
}
.msg.user{
  align-self:flex-end;
  border-bottom-right-radius:4px;
  background:var(--accent);
  color:#FFFFFF;
}
.msg.ai{
  align-self:flex-start;
  border-bottom-left-radius:4px;
  background:var(--surface);
  border:1px solid var(--line);
  color:var(--ink);
}
.chat-chips{
  display:flex;
  gap:.35rem;
  overflow-x:auto;
  padding:.55rem .75rem;
  border-top:1px solid var(--line);
  background:var(--surface);
  scrollbar-width:none;
}
.chat-chips button{
  flex:none;
  padding:.28rem .68rem;
  border:1px solid var(--line-strong);
  border-radius:999px;
  background:var(--surface);
  font-size:.76rem;
  color:var(--ink-2);
  cursor:pointer;
}
.chat-chips button:hover{border-color:var(--accent);color:var(--accent);background:var(--surface-3)}
#chatForm{
  display:flex;
  gap:.45rem;
  padding:.65rem;
  border-top:1px solid var(--line);
  background:var(--surface);
}
#chatForm input{
  flex:1;
  padding:.5rem .75rem;
  border:1px solid var(--line-strong);
  border-radius:999px;
  font-size:.85rem;
}

/* Account Panel */
.account-panel{
  position:fixed;
  right:4.25rem;
  top:4.1rem;
  z-index:26;
  display:grid;
  gap:1rem;
  width:min(25rem,calc(100vw - 2rem));
  padding:1.25rem;
  border-radius:var(--r-xl);
  background:var(--surface-3);
  border:1px solid var(--line);
  box-shadow:var(--shadow-lg);
}
.account-panel-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.account-panel h2{font-size:1.15rem}
.account-panel h3{margin-bottom:.45rem;font-size:.76rem;font-weight:600;color:var(--ink-3)}
.account-profile{
  display:grid;
  gap:.15rem;
  padding:.85rem 1rem;
  border-radius:var(--r-lg);
  background:var(--surface);
}
.account-profile b{font-weight:600;color:var(--ink)}
.account-profile span,.account-profile small{color:var(--ink-3);font-size:.82rem}
.sign-out{justify-self:start;color:var(--red)!important}
.sign-out:hover{background:var(--red-soft)!important}

/* Floating Gmail Compose Window */
.compose-modal{
  position:fixed;
  right:4.5rem;
  bottom:0;
  z-index:28;
  width:min(30rem,calc(100vw - 2rem));
  border-radius:12px 12px 0 0;
  background:var(--surface);
  border:1px solid var(--line);
  box-shadow:var(--shadow-lg);
  overflow:hidden;
}
.compose-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:.55rem .85rem .55rem 1rem;
  background:#F2F6FC;
  border-bottom:1px solid var(--line);
  font-size:.88rem;
}
.compose-body{display:grid;padding:.5rem 1rem 1rem;gap:.35rem}
.compose-row{
  display:flex;
  align-items:center;
  gap:.65rem;
  padding:.35rem 0;
  border-bottom:1px solid var(--line-row);
  font-size:.84rem;
}
.compose-row span{color:var(--ink-3);min-width:3.25rem}
.compose-row input,.compose-row select{
  flex:1;
  border:0;
  background:transparent;
  font-size:.88rem;
  color:var(--ink);
  padding:.2rem 0;
}
.compose-row input:focus,.compose-row select:focus{outline:none}
#composeText{
  width:100%;
  min-height:9rem;
  margin-top:.4rem;
  padding:.5rem 0;
  border:0;
  background:transparent;
  font-size:.9rem;
  line-height:1.55;
  resize:vertical;
}
#composeText:focus{outline:none}
.compose-foot{
  display:flex;
  align-items:center;
  gap:.5rem;
  padding-top:.65rem;
  border-top:1px solid var(--line-row);
}

/* ---------- Responsive ---------- */
@media (max-width:1100px){
  .gmail-split.has-drawer{grid-template-columns:1fr}
  .drawer{
    position:fixed;
    top:0;
    right:0;
    z-index:29;
    width:min(36rem,100vw);
    height:100vh;
    box-shadow:var(--shadow-lg);
  }
  .lanes.board-mode{grid-template-columns:1fr}
}
@media (max-width:900px){
  .auth-wrap{grid-template-columns:1fr}
  .auth-left{padding:2rem 1.5rem}
  .auth-left h1{margin-top:1.5rem;padding-top:0;font-size:2rem}
  .preview{display:none}
  .gmail-app{height:auto;min-height:100vh;overflow-x:hidden;overflow-y:visible}
  .topbar{flex-wrap:wrap;height:auto;padding:10px 12px;gap:8px}
  .topbar-left{min-width:0}
  .topbar-right{gap:6px}
  .simulate-btn span{font-size:.8rem}
  .search-field{order:3;flex-basis:100%;max-width:none;height:42px}
  .user-badge,.infra-badge,.toolbar-formula,.view-mode-btn{display:none}
  .gmail-body{display:block;padding:0 8px 76px}
  .gmail-sidebar{
    display:none;
    position:fixed;
    top:0;
    left:0;
    bottom:0;
    z-index:27;
    width:270px;
    background:var(--bg);
    box-shadow:var(--shadow-lg);
    padding:1rem .75rem;
  }
  .gmail-body.mobile-sidebar-open .gmail-sidebar{display:flex}
  .gmail-companion{
    position:sticky;
    bottom:10px;
    z-index:24;
    width:fit-content;
    margin:12px auto 0;
    flex-direction:row;
    background:var(--surface);
    padding:6px 12px;
    border-radius:999px;
    border:1px solid var(--line);
    box-shadow:var(--shadow-md);
  }
  .chat-fab{width:auto;min-height:2.5rem;flex-direction:row;padding:0 12px;border-radius:999px}
  .card{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    row-gap:.35rem;
    column-gap:.5rem;
    align-items:start;
    padding:.7rem .85rem;
  }
  .row-controls{grid-column:1;grid-row:1 / span 2;padding-top:2px}
  .row-main{grid-column:2;grid-row:1;display:flex;flex-direction:column;align-items:stretch;gap:.18rem}
  .card .from{width:auto}
  .row-content{min-width:0;white-space:normal;display:block}
  .card .subj{max-width:none;display:block}
  .card .snip{display:block;white-space:normal}
  .card .snip::before{content:""}
  .card .meta{grid-column:2;grid-row:2;justify-content:flex-start;flex-wrap:wrap;margin-left:0}
}
@media (max-width:560px){
  .auth-card{padding:1.25rem 1rem}
  .auth-card form{padding:1.5rem 1.25rem}
  .provider-grid,.choice-row{grid-template-columns:1fr}
  .account-panel,.chat-panel,.compose-modal{right:.75rem;left:.75rem;width:auto}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}

/* Live Infrastructure Status Badge & Panel */
.infra-badge{
  gap:.45rem;
  min-height:2.25rem;
  padding:.35rem .75rem;
  border-color:#C4EED0;
  background:#E6F4EA;
  color:#137333;
  font-size:.78rem;
  font-weight:600;
}
.infra-badge:hover{
  background:#CEEAD6;
  border-color:#A8DAB5;
}
.infra-dot{
  width:.5rem;
  height:.5rem;
  border-radius:999px;
  background:#137333;
  box-shadow:0 0 0 3px rgba(19,115,51,.18);
  flex:none;
}
.infra-dot.is-warn{
  background:#B06000;
  box-shadow:0 0 0 3px rgba(176,96,0,.18);
}
.infra-status-box{
  display:grid;
  gap:.45rem;
  padding:.7rem .8rem;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--surface-2);
  font-size:.78rem;
  line-height:1.45;
  color:var(--ink-2);
}
.infra-row{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:.6rem;
}
.infra-row b{
  color:var(--ink);
  font-weight:600;
}
.infra-row code{
  font-family:var(--font-mono);
  font-size:.75rem;
  padding:.1rem .35rem;
  border-radius:4px;
  background:var(--accent-soft);
  color:var(--accent);
}

/* Impeccable Quieter Row & Focus Hierarchy */
.card.is-top-focus{
  background:#F4F8FE;
  box-shadow:inset 0 0 0 1px #C2D7FA;
}
.focus-tag{
  display:inline-flex;
  align-items:center;
  padding:.08rem .42rem;
  border-radius:4px;
  background:var(--accent);
  color:#FFFFFF;
  font-size:.75rem;
  font-weight:600;
  letter-spacing:.01em;
  flex:none;
}
.wait-label{
  font-size:.78rem;
  color:var(--ink-3);
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.wait-label.hot{
  color:var(--red);
  font-weight:600;
}
.connect-gmail-btn{
  border-color:#C2D7FA;
  background:var(--surface);
  color:var(--accent);
  font-size:.82rem;
  font-weight:600;
  padding:.35rem .85rem;
}
.connect-gmail-btn:hover{
  background:var(--surface-3);
  border-color:var(--accent);
}
.connect-gmail-btn.is-live{
  border-color:#B7DFC2;
  background:var(--green-soft);
  color:var(--green);
}

/* Live Gmail Connection Modal */
.modal-backdrop{
  position:fixed;
  inset:0;
  z-index:40;
  display:grid;
  place-items:center;
  padding:1rem;
  background:rgba(4,30,73,.42);
  backdrop-filter:blur(3px);
}
.gmail-modal-card{
  width:min(31rem,100%);
  padding:1.5rem;
  border-radius:var(--r-xl);
  background:var(--surface);
  border:1px solid var(--line);
  box-shadow:var(--shadow-lg);
  display:grid;
  gap:1rem;
}
.gmail-modal-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
}
.gmail-modal-head h2{
  font-size:1.25rem;
  margin-bottom:.25rem;
}
.gmail-modal-section{
  display:grid;
  gap:.55rem;
  padding:1rem;
  border-radius:var(--r-md);
  background:var(--surface-2);
  border:1px solid var(--line);
}
.gmail-modal-section h3{
  font-size:.9rem;
  color:var(--ink);
}
.gmail-modal-section label{
  display:grid;
  gap:.28rem;
  font-size:.82rem;
  font-weight:500;
  color:var(--ink-2);
}
.gmail-modal-section input{
  width:100%;
  padding:.55rem .75rem;
  border:1px solid var(--line-strong);
  border-radius:8px;
  background:var(--surface);
  font-size:.88rem;
}
.gmail-modal-divider{
  display:flex;
  align-items:center;
  gap:.75rem;
  color:var(--ink-3);
  font-size:.75rem;
  font-weight:600;
  letter-spacing:.05em;
}
.gmail-modal-divider::before,
.gmail-modal-divider::after{
  content:"";
  flex:1;
  height:1px;
  background:var(--line);
}
.drawer-context-tags{
  display:flex;
  flex-wrap:wrap;
  gap:.4rem;
  margin-bottom:.65rem;
}

