
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  /* Dark theme: deep teal-black background, grey cards, turquoise accent */
  --bg:hsl(200,20%,4%);--surface:hsl(200,15%,10%);--surface-2:hsl(200,15%,14%);
  --border:hsl(200,15%,18%);--border-hover:hsl(174,40%,30%);
  --text:hsl(174,20%,92%);--text-2:hsl(200,12%,70%);--text-3:hsl(200,10%,50%);
  --accent:hsl(174,100%,50%);--accent-hover:hsl(174,100%,65%);
  --accent-bg:hsla(174,100%,50%,.12);--accent-text:hsl(174,100%,60%);
  --danger:#F87171;--danger-bg:hsla(0,75%,55%,.12);
  --success:#4ADE80;--success-bg:hsla(140,70%,50%,.12);
  --warn:#FBBF24;--warn-bg:hsla(40,90%,50%,.12);
  --radius:8px;--radius-lg:12px;--radius-xl:16px;
  --shadow:0 1px 3px rgba(0,0,0,.35),0 1px 2px rgba(0,0,0,.25);
  --shadow-lg:0 10px 25px rgba(0,0,0,.5),0 4px 10px rgba(0,0,0,.35);
  --font:'DM Sans',system-ui,sans-serif;
  --mono:'JetBrains Mono',monospace;
}
html,body{font-family:var(--font);font-size:15px;line-height:1.6;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;min-height:100vh}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
button{font-family:inherit;cursor:pointer}
input,textarea,select{font-family:inherit}
.container{max-width:960px;margin:0 auto;padding:0 24px}
.hidden{display:none!important}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:var(--radius);font-size:14px;font-weight:600;border:none;transition:all .15s;text-decoration:none}
.btn:hover{text-decoration:none}
/* CRT glowing text buttons — Silkscreen pixel font, teal glow, flicker. */
/* One subtle, brief dip per cycle. Kept shallow so it's barely there. */
@keyframes crtFlicker{
  0%,6%,100%{opacity:1}
  3%{opacity:.82}
}
.btn-primary{
  background:rgba(95,231,205,.08);
  color:#5fe7cd;
  border:1px solid rgba(95,231,205,.4);
  font-family:'Silkscreen','JetBrains Mono',monospace;
  text-transform:uppercase;
  letter-spacing:.11em;
  text-shadow:0 0 4px #5fe7cd,0 0 12px rgba(95,231,205,.6),0 0 22px rgba(95,231,205,.35);
}
.btn-primary:hover{
  background:rgba(95,231,205,.16);
  border-color:#5fe7cd;
  color:#8fffe9;
  box-shadow:0 0 18px rgba(95,231,205,.35);
}
@media (prefers-reduced-motion:reduce){.btn-primary{animation:none}}
.btn-secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}
.btn-secondary:hover{border-color:var(--border-hover);background:hsl(200,15%,16%)}
.btn-sm{padding:7px 14px;font-size:13px}
.btn:disabled{opacity:.5;cursor:not-allowed}
/* App-wide teal CRT button theme (Silkscreen, glow, borderless), keeping each
   button's existing size. Excludes destructive buttons — anything red
   (inline color:var(--danger)) and the Delete-team button — so deletes stay
   visually distinct. */
.btn:not([style*="--danger"]):not(.team-delete-btn){
  font-family:'Silkscreen','JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.07em;font-weight:400;
  color:#5fe7cd;background:rgba(95,231,205,.08);border-color:transparent;
  text-shadow:0 0 4px #5fe7cd,0 0 10px rgba(95,231,205,.45)}
.btn:not([style*="--danger"]):not(.team-delete-btn):hover{
  background:rgba(95,231,205,.16);color:#8fffe9;border-color:transparent;box-shadow:0 0 14px rgba(95,231,205,.3)}
.btn-linkedin{background:var(--accent);color:hsl(200,20%,6%);gap:10px}
.btn-linkedin:hover{background:var(--accent-hover);box-shadow:0 0 20px hsla(174,100%,50%,.35)}
.btn-linkedin svg{width:18px;height:18px}
.privacy-content h2{font-size:16px;font-weight:700;margin:28px 0 8px}
.privacy-content p{font-size:14px;color:var(--text-2);line-height:1.8;margin-bottom:12px}
.privacy-content ul{margin:0 0 12px 20px;font-size:14px;color:var(--text-2);line-height:1.8}
.privacy-content li{margin-bottom:4px}
.form-group{margin-bottom:16px}
.form-label{display:block;font-size:13px;font-weight:600;color:var(--text-2);margin-bottom:5px}
.form-input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:14px;color:var(--text);background:var(--surface);outline:none;transition:border .15s}
.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px hsla(174,100%,50%,.15)}
.password-wrap{position:relative}
.password-wrap .form-input{padding-right:42px}
.password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:transparent;border:none;padding:6px;cursor:pointer;color:var(--text-3);display:flex;align-items:center;justify-content:center;border-radius:6px;line-height:0}
.password-toggle:hover{color:var(--text);background:var(--surface-2)}
.password-toggle .eye-hide{display:none}
.password-toggle.shown .eye-show{display:none}
.password-toggle.shown .eye-hide{display:inline-block}
.form-hint{font-size:12px;color:var(--text-3);margin-top:4px}
.form-error{font-size:12px;color:var(--danger);margin-top:4px}
.form-divider{display:flex;align-items:center;gap:12px;margin:20px 0;font-size:12px;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em}
.form-divider::before,.form-divider::after{content:'';flex:1;height:1px;background:var(--border)}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow)}
.nav{position:sticky;top:0;z-index:50;background:hsla(200,20%,4%,.8);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}
.page{display:none;position:relative;z-index:1}.page.active{display:block}

/* Background pixel eyes (logged-in pages) */
.bg-eyes{position:fixed;inset:0;display:none;align-items:center;justify-content:center;gap:96px;pointer-events:none;z-index:0;opacity:.18}
body.has-bg-eyes .bg-eyes{display:flex}
body.on-profile .bg-eyes{display:none}
.bg-eye{display:grid;grid-template-columns:repeat(18,16px);grid-template-rows:repeat(12,16px);gap:2px;filter:drop-shadow(0 0 24px rgba(102,255,230,.15))}
.bg-eye .px{width:16px;height:16px}
/* Inline eyes above the profile-main column */
.profile-main-eyes{display:flex;align-items:center;justify-content:center;gap:56px;pointer-events:none;margin:8px auto 40px;min-height:88px}
.profile-main-eyes .bg-eye{grid-template-columns:repeat(18,7px);grid-template-rows:repeat(12,7px);gap:1px;filter:drop-shadow(0 0 12px rgba(102,255,230,.18))}
.profile-main-eyes .bg-eye .px{width:7px;height:7px}

/* Landing page — animated pixel eyes + LOGIN button */
#page-landing.active{
  background: hsl(200, 20%, 4%);
  color: hsl(174, 100%, 50%);
  min-height: 100vh;
  width: 100%;
  overflow: hidden;
  font-family: 'Courier New', monospace;
}
#page-landing .cph-container {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  gap: 56px;
}
#page-landing .cph-eyes { display: flex; align-items: center; gap: 48px; }
#page-landing .cph-eye {
  display: grid;
  grid-template-columns: repeat(18, 8px);
  grid-template-rows: repeat(12, 8px);
  gap: 1px;
  filter: drop-shadow(0 0 12px rgba(102, 255, 230, 0.15));
}
#page-landing .cph-eye .px { width: 8px; height: 8px; }
#page-landing .cph-login-btn {
  cursor: pointer;
  border: none;
  background: transparent;
  padding: 16px;
  transition: transform 0.2s, filter 0.3s;
  filter: drop-shadow(0 0 8px rgba(102, 255, 230, 0.15));
}
#page-landing .cph-login-btn:hover { filter: drop-shadow(0 0 20px rgba(102, 255, 230, 0.5)); }
#page-landing .cph-login-btn:active { transform: scale(0.95); }
#page-landing .cph-login-btn:disabled { cursor: not-allowed; opacity: 0.6; }
#page-landing .cph-login-grid {
  display: grid;
  grid-template-columns: repeat(33, 4px);
  grid-template-rows: repeat(7, 4px);
  gap: 1px;
}
#page-landing .cph-login-grid .px { width: 4px; height: 4px; transition: background 0.3s, box-shadow 0.3s; }
#page-landing .cph-login-grid .px.on {
  background: hsl(174, 70%, 30%);
  box-shadow: 0 0 4px rgba(102, 255, 230, 0.3);
}
#page-landing .cph-login-btn:hover .cph-login-grid .px.on {
  background: hsl(174, 100%, 55%);
  box-shadow: 0 0 6px rgba(102, 255, 230, 0.6);
}
#page-landing .cph-error {
  margin-top: 4px;
  font-size: 13px;
  color: #ff7a7a;
  text-align: center;
  font-family: 'Courier New', monospace;
}
#page-landing .cph-legal {
  position: fixed;
  left: 0; right: 0; bottom: 18px;
  display: flex; justify-content: center; gap: 18px;
  font-family: 'Courier New', monospace;
  font-size: 12px;
  letter-spacing: .04em;
  z-index: 2;
}
#page-landing .cph-legal a {
  color: hsl(174, 60%, 55%);
  opacity: .55;
  text-decoration: none;
  transition: opacity .15s, text-shadow .15s;
}
#page-landing .cph-legal a:hover {
  opacity: 1;
  text-shadow: 0 0 6px rgba(102, 255, 230, 0.35);
  text-decoration: underline;
}
#page-landing .cph-legal a.cph-about-link {
  opacity: .85;
  font-weight: 600;
}
.hero{padding:80px 0 60px;text-align:center}
.hero h1{font-size:clamp(32px,5vw,52px);font-weight:700;line-height:1.15;letter-spacing:-.02em;margin-bottom:16px}
.hero h1 span{color:var(--accent)}
.hero p{font-size:18px;color:var(--text-2);max-width:540px;margin:0 auto 32px}
.features{padding:40px 0 80px}
.dash-header{padding:32px 0 24px;display:flex;align-items:center;justify-content:space-between}
.dash-header h2{font-size:22px;font-weight:700}
.dash-section{margin-bottom:36px}
.dash-section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}
.dash-section-head h3{font-size:13px;font-weight:600;color:#5fe7cd;text-transform:uppercase;letter-spacing:.06em;font-family:'Silkscreen','JetBrains Mono',monospace;text-shadow:0 0 4px #5fe7cd,0 0 10px rgba(95,231,205,.45)}
.dash-hero{padding:36px 0 48px;display:flex;align-items:center;gap:16px}
.dash-hero-avatar{width:56px;height:56px;border-radius:50%;background:var(--accent-bg);color:var(--accent-text);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;flex-shrink:0;overflow:hidden}
.dash-hero-text{flex:1;min-width:0}
.dash-hero h2{font-size:24px;font-weight:700;letter-spacing:-.01em;margin-bottom:2px}
.dash-hero p{font-size:14px;color:var(--text-2)}
.dash-hero-btn{display:flex;align-items:center;gap:16px;flex:1;min-width:0;padding:8px 12px;margin:-8px -12px;background:none;border:1px solid transparent;border-radius:var(--radius-lg);font-family:inherit;color:inherit;text-align:left;cursor:pointer;transition:background .12s,border-color .12s}
.dash-hero-btn:hover{background:var(--surface);border-color:var(--border)}
.dash-hero-btn:hover .dash-hero-greeting-row{color:var(--accent)}
.dash-hero-greeting-row{display:inline-flex;align-items:center;gap:8px;transition:color .12s;font-family:'Silkscreen','JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.04em;font-size:20px;color:#5fe7cd;text-shadow:0 0 4px #5fe7cd,0 0 12px rgba(95,231,205,.5)}
.dash-hero-greeting-row svg{opacity:.6}
.settings-card{padding:20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:16px}
.settings-row{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--border)}
.settings-row:last-child{border-bottom:none}
.settings-row-label{font-size:11px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;width:80px;flex-shrink:0}
.settings-row-value{font-size:14px;color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.settings-danger{padding:20px;background:var(--surface);border:1px solid hsla(0,75%,55%,.35);border-radius:var(--radius-lg)}
.settings-danger h3{font-size:14px;font-weight:700;color:var(--danger);margin-bottom:6px}
.settings-danger p{font-size:13px;color:var(--text-2);margin-bottom:14px;line-height:1.5}
.dash-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,280px));gap:12px;margin:20px 0 32px}
.dash-stat{padding:16px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}
.dash-stat-label{font-size:11px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.dash-stat-value{font-size:24px;font-weight:700;color:var(--text);line-height:1}
.dash-stat-sub{font-size:12px;color:var(--text-3);margin-top:4px}
/* ============ Team (main) view — wide dashboard layout ============ */
.team-container{max-width:1400px}
.team-back{display:inline-block;font-size:13px;font-family:'Silkscreen','JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.07em;color:#5fe7cd;text-shadow:0 0 4px #5fe7cd,0 0 10px rgba(95,231,205,.45);padding:26px 0 0}
.team-back:hover{color:var(--text-2)}
/* Hero is a contained header card so the stats read as part of it (not flung
   to a far corner of the page). */
.team-hero{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:20px 24px;margin:14px 0 20px}
.team-hero-id{display:flex;align-items:center;gap:16px;min-width:0}
.team-hero-name{font-size:26px;font-weight:700;letter-spacing:-.01em;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team-stats{display:grid;grid-template-columns:repeat(4,minmax(112px,1fr));gap:12px;flex:1 1 420px;max-width:600px}
.team-stats .dash-stat{padding:12px 16px;background:var(--surface-2)}
.team-lists-panel{margin-bottom:20px}
.team-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}
.team-main,.team-aside{display:flex;flex-direction:column;gap:20px;min-width:0}
/* People + Members: a flat full-width list — one row per entry (no card grid) */
.people-grid .card{background:transparent;border:none;box-shadow:none;padding:0}
.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px;box-shadow:var(--shadow)}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.panel-title{font-size:12px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;margin:0}
.panel-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.panel-sep{width:1px;height:18px;background:var(--border)}
.panel-desc{font-size:13px;color:var(--text-2);margin:-6px 0 14px;line-height:1.5;max-width:760px}
.panel-flatlist .card{background:transparent;border:none;box-shadow:none;padding:0}
.people-dl-label{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-2)}
.people-dl-input{width:64px;padding:6px 8px;font-size:12px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text)}
.people-searchbar{display:flex;gap:8px;margin:14px 0 4px;flex-wrap:wrap}
.people-searchbar .form-input{flex:1;min-width:220px;max-width:560px;padding:8px 12px;font-size:13px}
.people-date-filter{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}
.people-date-filter:empty{display:none}
.people-source-filter{margin-top:8px}
.people-source-filter:empty{display:none}
.team-delete-btn{color:var(--danger)}
@media (max-width:980px){
  .team-grid{grid-template-columns:1fr}
  .team-stats{max-width:none;flex-basis:100%}
}
@media (max-width:560px){
  .team-stats{grid-template-columns:repeat(2,1fr)}
}
/* ============ Workspace sidebar (team + pipeline) ============ */
.ws-sidebar{position:fixed;top:0;left:0;bottom:0;width:236px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px 12px;gap:6px;z-index:60;overflow-y:auto}
.ws-brand{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:1px solid transparent;border-radius:10px;background:none;color:var(--text);cursor:pointer;font:inherit;text-align:left;margin-bottom:8px}
.ws-brand:hover{background:var(--surface-2);border-color:var(--border)}
.ws-team-icon{width:30px;height:30px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;background:var(--accent-bg);color:var(--accent-text);overflow:hidden}
.ws-team-icon img{width:100%;height:100%;object-fit:cover}
.ws-team-name{flex:1;min-width:0;font-size:15px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:'Silkscreen','JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.04em;color:#5fe7cd;text-shadow:0 0 4px #5fe7cd,0 0 10px rgba(95,231,205,.45)}
.ws-brand-chev{color:var(--text-3);flex-shrink:0}
.ws-nav{display:flex;flex-direction:column;gap:2px}
.ws-item{display:flex;align-items:center;gap:11px;width:100%;padding:9px 11px;border:none;border-radius:9px;background:none;color:var(--text-2);cursor:pointer;font:inherit;font-size:14px;font-weight:500;text-align:left}
.ws-item>svg{flex-shrink:0;color:#5fe7cd;filter:drop-shadow(0 0 3px #5fe7cd) drop-shadow(0 0 7px rgba(95,231,205,.45));animation:crtFlicker 9s infinite}
.ws-item.is-active>svg{color:#8fffe9}
.ws-item .ws-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:'Silkscreen','JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.1em;font-size:13px;color:#5fe7cd;text-shadow:0 0 4px #5fe7cd,0 0 11px rgba(95,231,205,.55),0 0 20px rgba(95,231,205,.3);animation:crtFlicker 9s infinite}
.ws-item.is-active .ws-label{color:#8fffe9}
/* Stagger the flicker (label + icon together per item) so the menu doesn't
   blink in lockstep */
/* Spread the single dips evenly across the 9s cycle so no two items ever dip
   at the same moment (each dip is ~0.5s; spacing is 2.25s). */
.ws-nav .ws-item:nth-child(1) .ws-label,.ws-nav .ws-item:nth-child(1)>svg{animation-delay:0s}
.ws-nav .ws-item:nth-child(2) .ws-label,.ws-nav .ws-item:nth-child(2)>svg{animation-delay:2.25s}
.ws-nav .ws-item:nth-child(3) .ws-label,.ws-nav .ws-item:nth-child(3)>svg{animation-delay:4.5s}
.ws-foot .ws-item .ws-label,.ws-foot .ws-item>svg{animation-delay:6.75s}
@media (prefers-reduced-motion:reduce){.ws-item .ws-label,.ws-item>svg{animation:none}}
.ws-brand.is-active{background:var(--surface-2);border-color:var(--border)}
/* Team view: "All teams" link + prominent join-code block at the top */
/* Team view — coherent panel/teal layout */
.team-hero-card{display:flex;align-items:center;gap:16px;margin-bottom:20px}
.team-hero-meta{min-width:0}
.team-hero-name{font-size:24px;font-weight:700;letter-spacing:-.01em;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team-hero-sub{font-size:12.5px;color:var(--text-3);margin-top:3px}
.team-panels{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:820px){.team-panels{grid-template-columns:1fr}}
.ws-item .ws-count{font-size:11px;font-weight:600;color:var(--text-3);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:1px 7px;min-width:20px;text-align:center}
.ws-item .ws-count:empty{display:none}
.ws-item:hover{background:var(--surface-2);color:var(--text)}
.ws-item.is-active{background:var(--accent-bg);color:var(--accent-text)}
.ws-item.is-active .ws-count{color:var(--accent-text);border-color:transparent;background:hsla(174,100%,50%,.16)}
/* Settings sits outside .ws-nav, pinned to the bottom of the sidebar just
   above the ws-foot divider — it takes over the auto top margin that used
   to live on .ws-foot. */
.ws-settings-item{margin-top:auto}
.ws-foot{display:flex;flex-direction:column;gap:4px;margin-top:8px;padding-top:10px;border-top:1px solid var(--border)}
.ws-account{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:1px solid transparent;border-radius:9px;background:none;color:var(--text);cursor:pointer;font:inherit;text-align:left}
.ws-account:hover{background:var(--surface-2);border-color:var(--border)}
.ws-acct-avatar{width:26px;height:26px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;overflow:hidden;background:var(--surface-2);color:var(--text-2)}
.ws-acct-avatar img{width:100%;height:100%;object-fit:cover}
.ws-acct-name{flex:1;min-width:0;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Content offset so pages clear the fixed sidebar */
body.ws-on #page-team, body.ws-on #page-entries{padding-left:236px}
/* Collapse / show the sidebar */
.ws-head{display:flex;justify-content:flex-end;margin-bottom:2px}
.ws-collapse{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid transparent;border-radius:8px;background:none;color:var(--text-3);cursor:pointer;padding:0}
.ws-collapse:hover{background:var(--surface-2);border-color:var(--border);color:var(--text)}
.ws-show-btn{position:fixed;top:14px;left:14px;z-index:70;display:none;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text-2);cursor:pointer;box-shadow:var(--shadow);transition:color .15s ease,border-color .15s ease,box-shadow .15s ease}
.ws-show-btn:hover{border-color:#5fe7cd;color:#5fe7cd;box-shadow:0 0 10px rgba(95,231,205,.2)}
body.ws-collapsed .ws-sidebar{display:none!important}
body.ws-on.ws-collapsed #page-team, body.ws-on.ws-collapsed #page-entries{padding-left:0}
body.ws-on.ws-collapsed .ws-show-btn{display:inline-flex}
body.ws-on.ws-collapsed .ws-content{padding-top:52px}
body.ws-on.ws-collapsed .entries-shell{padding-top:52px}
.ws-content{max-width:none;margin:0 auto;padding:28px clamp(16px,3vw,52px) 64px}
.ws-topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.ws-title{font-size:24px;font-weight:700;margin:0;font-family:'Silkscreen','JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.03em;color:#5fe7cd;text-shadow:0 0 4px #5fe7cd,0 0 12px rgba(95,231,205,.5)}
.ws-subhead{font-size:12px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;margin:30px 0 12px}
.team-view{display:none}
.team-view.active{display:block}
@media (max-width:820px){
  .ws-sidebar{position:static;width:auto;flex-direction:row;flex-wrap:wrap;align-items:center;border-right:none;border-bottom:1px solid var(--border);overflow:visible;padding:10px 12px;gap:4px}
  .ws-brand{width:auto;margin-bottom:0}
  .ws-team-name{max-width:140px}
  .ws-nav{flex-direction:row;flex-wrap:wrap}
  .ws-foot{margin-top:0;margin-left:auto;border-top:none;flex-direction:row;padding-top:0}
  .ws-settings-item{margin-top:0;width:auto}
  .ws-item .ws-count{display:none}
  body.ws-on #page-team, body.ws-on #page-entries{padding-left:0}
}
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.team-card{display:flex;flex-direction:column;padding:18px 20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);transition:all .15s;cursor:pointer;text-align:left;width:100%;font-family:inherit}
.team-card:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-1px)}
.team-card-top{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.team-card-avatar{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;flex-shrink:0;border:1px solid hsla(174,60%,50%,.35);box-shadow:0 0 12px hsla(174,100%,50%,.15)}
.team-card-avatar-img{object-fit:cover;background:var(--surface-2)}
.team-detail-head{display:flex;align-items:center;gap:14px}
.team-icon{position:relative;width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;flex-shrink:0;border:1px solid hsla(174,60%,50%,.35);box-shadow:0 0 14px hsla(174,100%,50%,.15);overflow:hidden}
.team-icon-img{width:100%;height:100%;object-fit:cover;display:block}
.team-icon-edit{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:hsla(0,0%,0%,.55);color:#fff;font-size:10.5px;font-weight:600;cursor:pointer;border:none;padding:0}
.team-icon.is-admin{cursor:pointer}
.team-icon.is-admin:hover .team-icon-edit{display:flex}
.profile-avatar{position:relative;width:56px;height:56px;border-radius:50%;background:var(--accent-bg);color:var(--accent-text);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;flex-shrink:0;overflow:hidden}
.profile-avatar-img{width:100%;height:100%;object-fit:cover;display:block}
.profile-avatar-edit{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:hsla(0,0%,0%,.55);color:#fff;font-size:10.5px;font-weight:600;cursor:pointer;border:none;padding:0}
.profile-avatar.is-self{cursor:pointer}
.profile-avatar.is-self:hover .profile-avatar-edit{display:flex}
.team-card-title{font-size:15px;font-weight:700;color:#fff;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team-role-badge{display:inline-flex;align-items:center;font-size:10.5px;font-weight:600;padding:3px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:.04em}
.team-role-admin{background:var(--accent-bg);color:var(--accent-text)}
.team-role-member{background:var(--surface-2);color:var(--text-2)}
.team-card-meta{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-3);margin-top:auto}
.team-card-pending{border-style:dashed;cursor:default;opacity:.75}
.team-card-pending:hover{border-color:var(--border);transform:none;box-shadow:none}
.team-actions-grid{grid-template-columns:repeat(2,minmax(0,320px));margin-bottom:6px}
@media(max-width:640px){.team-actions-grid{grid-template-columns:1fr}}
.team-card-action{border-color:hsla(174,60%,50%,.32);background:var(--surface)}
.team-card-action:hover{border-color:var(--accent)}
.team-card-avatar-action{background:var(--accent);color:var(--bg)}
.dash-empty{padding:32px 20px;text-align:center;background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius-lg)}
.dash-empty-title{font-size:15px;font-weight:600;margin-bottom:6px}
.dash-empty-sub{font-size:13px;color:var(--text-3);margin-bottom:14px}
/* Dashboard pixel DOWNLOAD button (mirrors the landing LOGIN button) */
.dash-ext-cta{margin-top:368px;display:flex;flex-direction:column;align-items:center;gap:14px;padding:16px 0 80px}
.dash-ext-download-btn{display:inline-flex;align-items:center;gap:10px;cursor:pointer;text-decoration:none;padding:15px 36px;font-size:15px;border-radius:13px;font-family:'Silkscreen','JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.1em;color:#5fe7cd;background:rgba(95,231,205,.1);border:none;text-shadow:0 0 4px #5fe7cd,0 0 14px rgba(95,231,205,.55);transition:background .15s,box-shadow .15s,color .15s}
.dash-ext-download-btn:hover{background:rgba(95,231,205,.18);color:#8fffe9;box-shadow:0 0 24px rgba(95,231,205,.4)}
.dash-ext-download-btn:active{transform:scale(.98)}
.dash-ext-setup-btn{background:none;border:none;padding:4px 10px;font-size:12px;font-weight:500;color:var(--text-3);cursor:pointer;font-family:inherit;letter-spacing:.02em}
.dash-ext-setup-btn:hover{color:var(--accent);text-decoration:underline}
@media(max-width:640px){.dash-stats{grid-template-columns:1fr}.dash-hero{flex-wrap:wrap}}
.invite-code{display:inline-flex;align-items:center;gap:12px;padding:9px 14px;background:rgba(95,231,205,.06);border:1px solid rgba(95,231,205,.32);border-radius:var(--radius);font-family:var(--mono);font-size:15px;font-weight:600;letter-spacing:.14em;color:#5fe7cd;text-shadow:0 0 6px rgba(95,231,205,.45)}
.invite-code button{background:none;border:none;color:#5fe7cd;font-family:'Silkscreen','JetBrains Mono',monospace;text-transform:uppercase;font-size:10px;font-weight:400;letter-spacing:.08em;padding:4px 8px;border-radius:6px;cursor:pointer;text-shadow:0 0 5px rgba(95,231,205,.5)}
.invite-code button:hover{background:rgba(95,231,205,.16)}
.csv-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;background:var(--surface-2);border-radius:var(--radius);font-family:var(--mono);font-size:13px;color:var(--text);border:1px solid var(--border)}
.csv-pill .csv-name{color:var(--text-2);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.csv-pill button{background:none;border:none;color:var(--accent);font-size:12px;font-weight:600;padding:2px 6px;border-radius:4px;cursor:pointer;font-family:inherit}
.csv-pill button:hover:not(:disabled){background:var(--accent-bg)}
.csv-pill button:disabled{color:var(--text-3);cursor:not-allowed}
.csv-pill .csv-sep{width:1px;height:14px;background:var(--border)}

/* Custom date picker — themed alternative to the native browser
   calendar dropdown. Opens via attachDatePicker(input). */
.dp-popover{position:fixed;z-index:10000;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;box-shadow:var(--shadow);width:248px;font-family:var(--font);color:var(--text)}
.dp-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.dp-title{font-weight:600;font-size:13px}
.dp-nav-btn{background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);width:26px;height:26px;border-radius:6px;cursor:pointer;font-family:inherit;font-size:14px;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0}
.dp-nav-btn:hover{background:var(--surface);color:var(--text);border-color:var(--accent)}
.dp-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;font-size:10px;color:var(--text-3);font-weight:600;text-transform:uppercase;letter-spacing:.04em;text-align:center;padding:4px 0;border-bottom:1px solid var(--border);margin-bottom:6px}
.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.dp-day{background:none;border:1px solid transparent;border-radius:6px;padding:6px 0;font-size:12.5px;color:var(--text);cursor:pointer;font-family:inherit;text-align:center;line-height:1.2}
.dp-day:hover:not(:disabled){background:var(--surface-2);border-color:var(--border)}
.dp-day-today{font-weight:700;color:var(--accent)}
.dp-day-selected,.dp-day-selected:hover{background:var(--accent);color:var(--bg);border-color:var(--accent);font-weight:700}
.dp-day-other{color:var(--text-3);opacity:.35;cursor:default}
.dp-day-in-range,.dp-day-in-range:hover{background:var(--accent-bg);border-color:transparent;border-radius:0}
.dp-day-range-start,.dp-day-range-start:hover,.dp-day-range-end,.dp-day-range-end:hover{background:var(--accent);color:var(--bg);border-color:var(--accent);font-weight:700}
.dp-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}
.dp-hint{font-size:11px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dp-footer-actions{display:flex;gap:6px;flex-shrink:0}
.dp-foot-btn{background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);border-radius:6px;padding:4px 10px;font-size:12px;font-family:inherit;cursor:pointer}
.dp-foot-btn:hover{border-color:var(--accent);color:var(--text)}
.dp-foot-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--bg);font-weight:600}
.dp-foot-btn-primary:hover{color:var(--bg);opacity:.9}
.check-mark{appearance:none;-webkit-appearance:none;width:16px;height:16px;border:1.5px solid var(--border);border-radius:4px;background:var(--surface-2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:border-color .12s,background .12s;position:relative;margin:0}
.check-mark:hover{border-color:var(--accent)}
.check-mark:checked{background:var(--accent);border-color:var(--accent)}
.check-mark:checked::after{content:"";position:absolute;width:4px;height:8px;border:solid hsl(200,20%,6%);border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px)}
.check-mark:indeterminate{background:var(--accent);border-color:var(--accent)}
.check-mark:indeterminate::after{content:"";position:absolute;width:8px;height:2px;background:hsl(200,20%,6%);border-radius:1px}
.check-mark:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.member-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);font-size:13px}
.member-row:last-child{border:none}
.review-list{display:flex;flex-direction:column}
.review-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border);flex-wrap:wrap}
.review-row:last-child{border-bottom:none}
.review-row[data-state="confirmed"]{background:transparent}
.review-row[data-state="suggested"]{background:hsla(44,90%,60%,.06)}
.review-row[data-state="pending"]{background:hsla(44,90%,60%,.06)}
.review-row[data-state="unmatched"]{background:hsla(200,20%,50%,.04)}
.review-row[data-state="dismissed"]{background:transparent;opacity:.6}
.review-row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin-left:auto}
.review-badge{display:inline-flex;align-items:center;padding:1px 8px;margin-left:8px;border-radius:999px;font-size:10.5px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;vertical-align:middle;white-space:nowrap}
.review-badge-ok{background:hsla(134,55%,45%,.15);color:hsl(134,55%,38%);border:1px solid hsla(134,55%,45%,.3)}
.review-badge-suggest{background:hsla(44,90%,55%,.18);color:hsl(30,85%,40%);border:1px solid hsla(44,90%,55%,.35)}
.review-badge-dismiss{background:hsla(200,15%,50%,.15);color:var(--text-3);border:1px solid var(--border)}
.review-badge-todo{background:hsla(200,15%,50%,.1);color:var(--text-2);border:1px solid var(--border)}
.review-link-input{flex-shrink:0}
.review-score{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em;white-space:nowrap;cursor:pointer;font-family:inherit}
.review-score:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.review-score-ok{background:hsla(134,55%,45%,.15);color:hsl(134,55%,38%);border:1px solid hsla(134,55%,45%,.3)}
.review-score-warn{background:hsla(44,90%,55%,.18);color:hsl(30,85%,40%);border:1px solid hsla(44,90%,55%,.35)}
.review-score-mid{background:hsla(200,15%,50%,.12);color:var(--text-2);border:1px solid var(--border)}
.review-score-why{font-size:11px;color:var(--text-3);margin-top:2px}
.member-avatar{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0;overflow:hidden}
.member-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.member-name{font-weight:500;flex:1}
.member-role{font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em}
.people-row:hover{background:var(--surface-2)}
/* Name + its tag/marking icons on one line; name ellipsizes, icons stay put. */
.people-name-row{display:flex;align-items:center;gap:6px;min-width:0}
.people-name{font-weight:500;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.people-markings{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}
/* Icon-only marking preview; hover shows the name via the title tooltip. */
/* Nudge up ~1px: the icon box is centered on the line, but the name's
   glyphs sit high in that line, so a raw center reads as slightly low. */
.people-marking-icon{display:inline-flex;align-items:center;cursor:default;position:relative;top:-1px}
.people-marking-icon svg{display:block;width:18px;height:18px}
.people-badge{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);font-size:11px;font-weight:500;color:var(--text-2);white-space:nowrap}
.people-badge-hubspot{color:hsl(18,86%,50%)}
.people-badge-luma{color:var(--text-2)}
.people-badge-gsheet{color:hsl(134,61%,44%)}
.people-badge-verified{background:hsla(134,55%,45%,.12);border-color:hsla(134,55%,45%,.35);color:hsl(134,55%,32%);font-weight:600}
.people-badge-signals{background:transparent;color:var(--text-3)}
.people-badge-conflict{background:hsla(30,90%,55%,.14);border-color:hsla(30,90%,55%,.4);color:hsl(20,85%,38%);font-weight:600}
.people-filter-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);font-size:12px;font-weight:500;color:var(--text-2);cursor:pointer;white-space:nowrap}
.people-filter-chip:hover{border-color:var(--accent);color:var(--text)}
.people-filter-chip.is-selected{background:var(--accent-bg);border-color:var(--accent);color:var(--accent-text)}
.people-mini-avatar{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:9px;font-weight:700;line-height:1;overflow:hidden;box-shadow:0 0 0 1.5px var(--surface-2);flex-shrink:0}
.merge-result-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:8px 10px;background:transparent;border:none;border-radius:8px;cursor:pointer;color:var(--text);font-size:14px}
.merge-result-row:hover{background:var(--surface-2)}
.merge-result-row .people-mini-avatar{width:28px;height:28px;font-size:11px}
.people-mini-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.entry-row{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-bottom:1px solid var(--border)}
.entry-row.is-linked{cursor:pointer}
.entry-row.is-linked:hover{background:var(--surface-2)}
.entry-row:last-child{border:none}
.entry-name-link{font-weight:700;cursor:pointer}
.entry-name-link:hover{color:var(--accent);text-decoration:underline}
.entry-row[data-status="complete"]{opacity:.6}
.entry-row[data-status="rejected"]{opacity:.5}
.entry-row-main{display:flex;align-items:flex-start;gap:10px}
.entry-row-body{flex:1;min-width:0}
.entry-row-name{font-weight:500;font-size:13px}
.entry-row-detail{font-size:12.5px;color:var(--text-2);margin-top:4px;line-height:1.45;white-space:pre-wrap}
.entry-row-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.entry-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text-3);cursor:pointer;font-size:14px;line-height:1;transition:border-color .12s,color .12s}
.entry-icon-btn:hover{border-color:var(--accent);color:var(--text)}
.entry-icon-btn.is-active{color:hsl(44,90%,45%);border-color:hsla(44,90%,55%,.4);background:hsla(44,90%,55%,.1)}
.entry-icon-btn.is-active-complete{color:hsl(134,55%,38%);border-color:hsla(134,55%,45%,.35);background:hsla(134,55%,45%,.1)}
.entry-icon-btn.is-active-reject{color:hsl(0,70%,50%);border-color:hsla(0,70%,55%,.35);background:hsla(0,70%,55%,.1)}
.entry-comments{margin-top:4px;padding-left:46px;display:flex;flex-direction:column;gap:8px}
.entry-comment{font-size:12px;color:var(--text-2);background:var(--surface-2);border-radius:8px;padding:8px 10px}
.entry-comment-meta{font-size:10.5px;color:var(--text-3);margin-bottom:3px}
.entry-comment-form{display:flex;gap:6px;align-items:flex-start}
.entries-shell{max-width:none;margin:0 auto;padding:24px clamp(16px,4vw,48px) 64px;width:100%;box-sizing:border-box}
.entries-nav-back{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:400;font-family:'Silkscreen','JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.07em;color:#5fe7cd;text-decoration:none;padding:7px 13px;border:1px solid transparent;border-radius:8px;background:rgba(95,231,205,.08);text-shadow:0 0 4px #5fe7cd,0 0 10px rgba(95,231,205,.45);transition:color .12s,border-color .12s,background .12s;margin-bottom:16px}
.entries-nav-back:hover{color:#8fffe9;border-color:transparent;background:rgba(95,231,205,.16);box-shadow:0 0 14px rgba(95,231,205,.3)}
.entry-list-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.entry-list-card{display:flex;flex-direction:column;gap:6px;text-align:left;cursor:pointer;transition:border-color .12s}
.entry-list-card:hover{border-color:var(--accent)}
.entry-list-card-name{font-weight:600;font-size:14px;font-family:'Silkscreen','JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.06em;color:#5fe7cd;text-shadow:0 0 4px #5fe7cd,0 0 10px rgba(95,231,205,.45)}
.entry-list-card-meta{font-size:12px;color:var(--text-3)}
/* Team-page horizontal bar of list buttons (replaces the old "People Lists"
   button — each list is its own button, scroll horizontally, create inline) */
.team-lists-bar{display:flex;gap:10px;overflow-x:auto;padding:2px 0 12px;margin:-4px 0 24px;align-items:stretch;scrollbar-width:thin}
.team-list-btn{flex:0 0 auto;display:flex;flex-direction:column;justify-content:center;gap:3px;min-width:170px;max-width:260px;padding:14px 22px;border:1px solid var(--border);border-radius:12px;background:var(--surface,var(--card,#fff));cursor:pointer;text-align:left;font:inherit;color:inherit;transition:border-color .12s,transform .05s}
.team-list-btn:hover{border-color:var(--accent)}
.team-list-btn:active{transform:translateY(1px)}
.team-list-btn-name{font-size:16px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:'Silkscreen','JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.06em;color:#5fe7cd;text-shadow:0 0 4px #5fe7cd,0 0 10px rgba(95,231,205,.45)}
.team-list-btn-meta{font-size:12px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.team-list-btn-new{flex-direction:row;align-items:center;justify-content:center;gap:6px;min-width:auto;color:var(--text-2);font-weight:600;border-style:dashed}
.team-list-btn-new:hover{color:var(--accent)}
.entry-week-section{margin-bottom:18px}
.entry-week-header{display:flex;align-items:center;gap:8px;cursor:pointer;padding:8px 0;font-weight:700;font-size:13px;color:var(--text-2);border-bottom:1px solid var(--border);margin-bottom:4px}
.entry-week-header .caret{font-size:10px;color:var(--text-3)}
.entry-week-count{font-weight:500;color:var(--text-3);font-size:12px}
.entry-dropdown{position:relative;display:inline-block}
.entry-dropdown-panel{position:absolute;top:calc(100% + 4px);left:0;z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:6px;min-width:180px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:1px}
.entry-dropdown-item{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:7px;cursor:pointer;font-size:13px;white-space:nowrap;color:var(--text)}
.entry-dropdown-item:hover{background:var(--surface-2)}
.entry-dropdown-item .check{width:14px;display:inline-block;color:var(--accent)}
#entries-list.pipeline-mode .entry-row[data-status="complete"]{opacity:1}
/* Teal CRT treatment for the list/pipeline buttons + titles, keeping their
   existing sizes. Excludes accept/reject (.entry-icon-btn — not .btn) and the
   Delete list button. */
#entries-detail-view .btn:not(#entries-delete-list-btn),
#entries-pipeline-view .btn{
  font-family:'Silkscreen','JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.07em;
  color:#5fe7cd;background:rgba(95,231,205,.08);border-color:transparent;
  text-shadow:0 0 4px #5fe7cd,0 0 10px rgba(95,231,205,.45)}
#entries-detail-view .btn:not(#entries-delete-list-btn):hover,
#entries-pipeline-view .btn:hover{
  background:rgba(95,231,205,.16);color:#8fffe9;border-color:transparent;box-shadow:0 0 14px rgba(95,231,205,.3)}
#entries-detail-title,#entries-pipeline-title{
  color:#5fe7cd;font-family:'Silkscreen','JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.03em;
  text-shadow:0 0 4px #5fe7cd,0 0 12px rgba(95,231,205,.5)}
/* Pipeline board — a kanban: the stages (Pipeline / Closing / Nurture) sit
   as columns next to each other, each a vertical stack of people cards.
   Unsorted stays as a full-width inbox lane on top. */
.pl-board{display:flex;flex-direction:column;gap:14px}
.pl-lane{border:1px solid var(--border);border-radius:12px;background:var(--surface-2);padding:10px 12px}
.pl-lane-unsorted{border-style:dashed;border-color:var(--accent);background:var(--accent-bg)}
/* The stage columns laid out horizontally — fixed, compact kanban columns
   (~300px) packed left, so cards stay small instead of stretching across a
   full-width board. */
.pl-columns{display:grid;grid-template-columns:repeat(3,minmax(0,600px));gap:48px;align-items:start;justify-content:center}
/* Each column is bounded to the viewport and scrolls its own cards; the lane
   header stays fixed above the scroll area. */
.pl-columns .pl-lane{display:flex;flex-direction:column;max-height:calc(100vh - 230px)}
.pl-columns .pl-lane-head{flex:0 0 auto}
.pl-columns .pl-lane-cards{flex:1 1 auto;min-height:0;overflow-y:auto;padding-right:4px;scrollbar-width:thin}
@media (max-width:680px){
  .pl-columns{grid-template-columns:1fr;justify-content:stretch;gap:14px}
  .pl-columns .pl-lane{max-height:none}
}
.pl-divider{height:1px;background:var(--border);margin:2px 0}
.pl-lane-head{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;font-family:'Silkscreen','JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.06em;color:#5fe7cd;text-shadow:0 0 4px #5fe7cd,0 0 10px rgba(95,231,205,.45);margin-bottom:8px}
.pl-lane-head .pl-count{font-size:11px;font-weight:600;font-family:var(--font);letter-spacing:0;text-shadow:none;color:var(--text-3);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:1px 8px}
.pl-lane-cards{display:flex;flex-direction:column;gap:8px}
.pl-lane-empty{font-size:12px;color:var(--text-3);padding:6px 2px}
.pl-card{width:100%;box-sizing:border-box;background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:8px 9px;display:flex;flex-direction:column;gap:5px;cursor:pointer}
/* Pipeline view toggle (Board | List) — teal CRT segmented control. */
.pl-view-toggle{display:inline-flex;border:1px solid rgba(95,231,205,.4);border-radius:9px;overflow:hidden}
.pl-view-btn{padding:6px 14px;font-size:12px;font-family:'Silkscreen','JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.06em;background:transparent;color:#5fe7cd;border:none;cursor:pointer;opacity:.5;transition:background .12s,opacity .12s}
.pl-view-btn+.pl-view-btn{border-left:1px solid rgba(95,231,205,.3)}
.pl-view-btn:hover{opacity:.85}
.pl-view-btn.is-active{background:rgba(95,231,205,.16);opacity:1;text-shadow:0 0 4px #5fe7cd,0 0 10px rgba(95,231,205,.5)}
/* "List" (straight line) layout: lanes stacked full-width, each entry one row. */
.pl-lanes-stacked{display:flex;flex-direction:column;gap:18px}
/* Grid (not flex) so every row's columns line up regardless of which fields
   are filled: avatar | name | one-liner | status | next steps | badge | stage */
.pl-card-line{display:grid;grid-template-columns:26px 150px 1fr 1fr 1fr 112px 32px;align-items:center;gap:12px;padding:9px 13px}
.pl-card-line .pl-name{font-size:15px;min-width:0}
.pl-card-line .pl-stage{position:relative}
.pl-line-col{min-width:0;display:flex;flex-direction:column;gap:1px}
.pl-line-lbl{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3)}
.pl-line-input{width:100%;min-width:0;border:none;background:transparent;color:var(--text-2);font:inherit;font-size:13px;padding:0;margin:0;outline:none;text-overflow:ellipsis;cursor:text}
.pl-line-input::placeholder{color:var(--text-3)}
.pl-line-input:hover{color:var(--text)}
.pl-line-input:focus{color:var(--text);background:var(--surface-2);border-radius:4px;padding:2px 4px;margin:-2px -4px}
.pl-line-badge{flex:0 0 auto;font-size:11px;color:var(--text-3);border:1px solid var(--border);border-radius:999px;padding:2px 9px;white-space:nowrap}
.pl-line-select{justify-self:center;max-width:100%;border:1px solid transparent;background:transparent;color:var(--text-2);font:inherit;font-size:12px;text-align:center;text-align-last:center;cursor:pointer;outline:none;border-radius:6px;padding:2px 4px}
.pl-line-select:hover{color:var(--text);border-color:var(--border)}
.pl-line-select:focus{color:var(--text);background:var(--surface-2);border-color:var(--border)}
/* Expanded pipeline-card modal header: avatar + clickable name */
.plc-head{display:flex;align-items:center;gap:13px;margin:0 0 18px}
.plc-avatar{width:48px;height:48px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;overflow:hidden;border:1px solid var(--border)}
.plc-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.plc-head-text{min-width:0;display:flex;flex-direction:column;align-items:flex-start}
.plc-name{display:inline-block;max-width:100%;font-size:18px;font-weight:700;color:var(--text);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plc-name-link{cursor:pointer}
.plc-name-link:hover{color:var(--accent);text-decoration:underline}
.plc-profile-btn{display:inline-flex;align-items:center;gap:6px;margin-top:7px;padding:5px 12px;font-size:12px;font-weight:600;color:#5fe7cd;background:rgba(95,231,205,.06);border:1px solid rgba(95,231,205,.32);border-radius:7px;cursor:pointer;font-family:inherit;text-shadow:0 0 5px rgba(95,231,205,.4)}
.plc-profile-btn:hover{background:rgba(95,231,205,.14);border-color:#5fe7cd}
.pl-card:hover{border-color:var(--accent)}
.pl-card-top{display:flex;align-items:center;gap:7px}
.pl-name{font-size:18px;font-weight:600;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
.pl-name:hover{color:var(--accent);text-decoration:underline}
/* Name + its tag/marking icons; name ellipsizes, marks sit right after it. */
.pl-card-nm{display:flex;align-items:center;gap:6px;flex:1 1 auto;min-width:0}
.pl-card-nm .pl-name{flex:0 1 auto}
.pl-line-name-wrap{display:flex;flex-direction:row;align-items:center;gap:6px;min-width:0}
.pl-stage{position:relative;margin-left:auto}
.pl-stage-toggle{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);background:var(--surface-2);border-radius:7px;color:var(--text-2);cursor:pointer;padding:4px 6px}
.pl-stage-toggle:hover{border-color:var(--accent);color:var(--accent)}
.pl-stage-menu{display:none;position:absolute;top:calc(100% + 4px);right:0;z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:4px;min-width:130px;box-shadow:var(--shadow);flex-direction:column;gap:1px}
.pl-stage-menu.open{display:flex}
.pl-stage-item{display:flex;align-items:center;gap:7px;padding:6px 8px;border-radius:6px;cursor:pointer;font-size:12.5px;color:var(--text)}
.pl-stage-item:hover{background:var(--surface-2)}
.pl-stage-item.is-active{color:var(--accent)}
.pl-oneline{padding:6px 8px;border:1px solid var(--border);border-radius:7px;font-size:12.5px;color:var(--text);background:var(--surface-2);outline:none;width:100%;box-sizing:border-box;font-family:inherit}
.pl-note{padding:6px 8px;border:1px solid var(--border);border-radius:7px;font-size:12px;color:var(--text);background:var(--surface-2);outline:none;width:100%;box-sizing:border-box;font-family:inherit;resize:none}
.pl-oneline:focus,.pl-note:focus,.pl-select:focus{border-color:var(--accent)}
.pl-field{display:flex;flex-direction:column;gap:3px}
.pl-field-label{font-size:10px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.03em}
.pl-select{padding:6px 8px;border:1px solid var(--border);border-radius:7px;font-size:12.5px;color:var(--text);background:var(--surface-2);outline:none;cursor:pointer;width:100%;box-sizing:border-box}
.members-toggle{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:6px 10px;background:none;border:none;font-size:12px;font-weight:600;color:var(--text-2);cursor:pointer}
.members-toggle:hover{color:var(--text)}
.members-toggle-chev{transition:transform .15s ease}
.members-toggle[aria-expanded="true"] .members-toggle-chev{transform:rotate(180deg)}
.linkedin-status{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:var(--radius);font-size:13px}
.linkedin-pending{background:var(--warn-bg);color:var(--warn)}
.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;z-index:100;opacity:0;pointer-events:none;transition:opacity .2s}
.modal-overlay.active{opacity:1;pointer-events:all}
.modal{background:var(--surface);border-radius:var(--radius-xl);padding:28px;width:90%;max-width:420px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);transform:translateY(10px);transition:transform .2s}
.modal-overlay.active .modal{transform:translateY(0)}
@keyframes spin{to{transform:rotate(360deg)}}
.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;vertical-align:-2px}
.btn .spinner{margin-right:8px}
.btn.is-syncing{background:var(--warn);border-color:var(--warn);color:hsl(200,20%,6%)}
.btn.is-syncing .spinner{border-color:hsla(200,20%,6%,.35);border-top-color:hsl(200,20%,6%)}
.loading-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;z-index:200;opacity:0;pointer-events:none;transition:opacity .15s}
.loading-overlay.active{opacity:1;pointer-events:all}
.loading-overlay-box{background:var(--surface);padding:18px 24px;border-radius:var(--radius);box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:12px;font-size:13px;color:var(--text)}
.loading-overlay-box .spinner{width:18px;height:18px;border-width:2.5px}
.gsheet-tpl-row{transition:background .12s}
.gsheet-tpl-handle{cursor:grab;color:var(--text-3);user-select:none;padding:4px 6px;font-size:14px;line-height:1;flex-shrink:0;letter-spacing:-1px}
.gsheet-tpl-handle:hover{color:var(--text)}
.gsheet-tpl-row.dragging{opacity:.4}
.gsheet-tpl-row.drag-over-before{box-shadow:0 -2px 0 0 var(--accent) inset}
.gsheet-tpl-row.drag-over-after{box-shadow:0 2px 0 0 var(--accent) inset}
.gsheet-toggle{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;font-size:13px;font-weight:600;color:var(--text);cursor:pointer;font-family:inherit;transition:border-color .12s,background .12s}
.gsheet-toggle:hover{border-color:var(--accent)}
.gsheet-toggle-check{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;border:1.5px solid var(--border);background:var(--surface);color:transparent;font-size:12px;font-weight:700;flex-shrink:0;transition:all .12s}
.gsheet-toggle[aria-pressed="true"]{border-color:var(--accent)}
.gsheet-toggle[aria-pressed="true"] .gsheet-toggle-check{background:var(--accent);border-color:var(--accent);color:#fff}
.modal h3{font-size:18px;font-weight:700;margin-bottom:16px}
.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}
.profile-note{padding:12px 14px;border-bottom:1px solid var(--border)}
.profile-note:last-child{border-bottom:none}
.profile-note-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.profile-note-who{font-weight:600;font-size:13px}
.profile-note-time{font-size:11px;color:var(--text-3);margin-left:auto}
.profile-note-body{font-size:13px;color:var(--text-2);line-height:1.5;white-space:pre-wrap;word-break:break-word}
.profile-note-actions{display:flex;gap:6px;margin-top:8px}
.profile-email-chip{display:inline-flex;align-items:center;gap:8px;padding:4px 10px;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;font-size:12px;font-weight:500;color:var(--text-2);max-width:100%;word-break:break-all}
.profile-email-action{background:none;border:none;padding:0 2px;font-size:13px;color:var(--text-3);cursor:pointer;font-family:inherit;line-height:1}
.profile-email-action:hover{color:var(--accent)}
.card:not(.is-editing) .profile-email-action{display:none}
.card:not(.is-editing) .profile-about-email-input,
.card:not(.is-editing) .profile-about-caption{display:none}
.card:not(.is-editing) .pill-edit-btn{display:none}
/* Person profile page — Facebook-style two-column layout.
   Left sidebar has the big avatar, identity, and facts; right column
   holds the activity feed (notes + outreach). Collapses on narrow screens. */
.profile-container{max-width:1600px}
.profile-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.profile-topbar-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.profile-back-link{display:inline-flex;align-items:center;gap:8px;margin:28px 0 16px;padding:9px 16px;font-size:14px;font-weight:400;font-family:'Silkscreen','JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.07em;color:#5fe7cd;text-decoration:none;background:rgba(95,231,205,.08);border:1px solid transparent;border-radius:10px;text-shadow:0 0 4px #5fe7cd,0 0 10px rgba(95,231,205,.45);transition:color .12s,border-color .12s,background .12s}
.profile-back-link:hover{color:#8fffe9;border-color:transparent;background:rgba(95,231,205,.16);box-shadow:0 0 14px rgba(95,231,205,.3)}
.profile-grid{display:grid;grid-template-columns:340px minmax(0,1fr);gap:22px;align-items:start;padding-bottom:56px}
@media(max-width:880px){.profile-grid{grid-template-columns:1fr}}
.profile-sidebar{display:flex;flex-direction:column;gap:14px;min-width:0}
/* Main area uses the extra width: notes and outreach history sit side by side
   on wide screens, stacking once there's no longer room. */
.profile-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:start;min-width:0}
@media(max-width:1180px){.profile-main{grid-template-columns:minmax(0,1fr)}}
.profile-hero-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:26px 20px 22px}
.profile-hero-avatar{width:120px;height:120px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:42px;font-weight:700;letter-spacing:.02em;margin-bottom:14px;border:2px solid var(--border);box-shadow:var(--shadow)}
.profile-hero-name{font-size:20px;font-weight:700;line-height:1.2;margin:0;word-break:break-word}
.profile-hero-sub{font-size:12.5px;color:var(--text-3);margin-top:4px;word-break:break-all}
.profile-hero-sub a{color:var(--accent);text-decoration:none}
.profile-hero-sub a:hover{text-decoration:underline}
/* Hero markings: team-shared marks by the profile picture (mirrors the
   extension's bottom-right square). Chips = active marks; the tag button
   opens a toggle menu of the team's alternatives. */
.profile-hero-markings{position:relative;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;margin:-6px 0 10px}
.profile-marking-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);font-size:11.5px;font-weight:600;color:var(--text-2);line-height:1}
.profile-marking-chip svg{flex-shrink:0}
.profile-marking-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);color:var(--text-3);cursor:pointer;transition:border-color .15s,color .15s}
.profile-marking-btn:hover{border-color:var(--accent);color:var(--accent)}
.profile-marking-menu{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);z-index:40;min-width:190px;max-width:240px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);display:none;flex-direction:column;gap:2px}
.profile-hero-markings.menu-open .profile-marking-menu{display:flex}
.profile-marking-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:7px;cursor:pointer;text-align:left}
.profile-marking-row:hover{background:var(--surface-2)}
.profile-marking-row-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}
.profile-marking-row-name{flex:1;font-size:12.5px;font-weight:500;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Menu = add-list on top, log entries below (mirrors the extension square) */
.profile-marking-menu-add{display:flex;flex-direction:column;gap:2px;padding-bottom:6px;margin-bottom:6px;border-bottom:1px solid var(--border)}
.profile-marking-menu-log{display:flex;flex-direction:column;gap:2px;max-height:180px;overflow-y:auto}
.profile-me-row{display:flex;align-items:center;gap:7px;padding:4px 8px;border-radius:7px;text-align:left}
.profile-me-label{flex:1;min-width:0;display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--text)}
.profile-me-label svg{flex-shrink:0}
.profile-me-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-me-time{flex-shrink:0;font-size:10.5px;font-weight:500;color:var(--text-3)}
.profile-me-del{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:none;border-radius:4px;background:none;color:var(--text-3);cursor:pointer;flex-shrink:0}
.profile-me-del:hover{color:var(--danger);background:hsla(0,80%,60%,.1)}
.profile-me-empty{font-size:11.5px;font-style:italic;color:var(--text-3);padding:2px 8px}
/* Markings settings panel (Integrations page) — deliberately distinct from
   the connector cards below it: team-owned config, not an external API.
   Accent-tinted panel with the markings shown as the same pills they
   render as on profiles. */
.markings-panel{position:relative;margin-bottom:20px;padding:16px 18px 18px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}
.markings-panel-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.markings-panel-title{font-weight:700;font-size:14px}
.markings-panel-sub{font-size:11.5px;color:var(--text-3);margin-top:2px}
/* Markings list stacks vertically, one pill per row */
.markings-panel-pills{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.markings-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:12.5px;font-weight:600;color:var(--text-2);line-height:1}
.markings-pill-editable{cursor:pointer;transition:border-color .12s,box-shadow .12s}
.markings-pill-editable:hover{border-color:var(--accent);box-shadow:0 0 8px hsla(174,100%,50%,.15)}
.markings-panel-empty{font-size:12.5px;color:var(--text-3)}
/* Label separating the markings panel from the API connector cards */
.markings-connectors-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);margin:0 0 8px 2px}
/* Pipeline stage editor (list create/edit modal): reorder arrows, icon
   picker (reuses .marking-icon-cell), rename input, pinned closed row. */
.stage-ed-row{display:flex;align-items:center;gap:7px;margin-bottom:6px}
.stage-ed-arrows{display:inline-flex;flex-direction:column;gap:1px;flex-shrink:0}
.stage-ed-arrow{border:none;background:none;padding:0 2px;font-size:8px;line-height:1.1;color:var(--text-3);cursor:pointer}
.stage-ed-arrow:hover:not(:disabled){color:var(--accent)}
.stage-ed-arrow:disabled{opacity:.25;cursor:default}
.stage-ed-lock{display:inline-flex;align-items:center;justify-content:center;width:14px;color:var(--text-3);flex-shrink:0}
.stage-ed-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text-2);cursor:pointer;flex-shrink:0;transition:border-color .12s}
.stage-ed-iconbtn:hover{border-color:var(--accent);color:var(--accent)}
.stage-ed-name{flex:1;min-width:0;padding:6px 10px;font-size:13px}
.stage-ed-tag{font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);border:1px solid var(--border);border-radius:999px;padding:3px 8px;flex-shrink:0}
.stage-ed-del{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:6px;background:none;color:var(--text-3);font-size:15px;line-height:1;cursor:pointer;flex-shrink:0}
.stage-ed-del:hover:not(:disabled){color:var(--danger);background:hsla(0,80%,60%,.1)}
.stage-ed-del:disabled{opacity:.25;cursor:default}
.stage-ed-icons{display:grid;grid-template-columns:repeat(8,1fr);gap:5px;margin:-2px 0 8px 21px;padding:8px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}
/* Marking-option editor (Integrations page): preset icon grid + color swatches */
.marking-icon-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:6px}
.marking-icon-cell{display:flex;align-items:center;justify-content:center;height:34px;padding:0;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);cursor:pointer;color:var(--text-2);transition:border-color .12s}
.marking-icon-cell:hover{border-color:var(--accent)}
.marking-icon-cell.is-selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);color:var(--text)}
.marking-color-row{display:flex;gap:8px;flex-wrap:wrap}
.marking-color-swatch{width:24px;height:24px;padding:0;border-radius:50%;cursor:pointer;border:2px solid transparent;box-sizing:border-box;transition:transform .12s}
.marking-color-swatch:hover{transform:scale(1.12)}
.marking-color-swatch.is-selected{border-color:var(--text);box-shadow:0 0 0 2px var(--bg)}
.profile-card-title{font-size:12px;font-weight:700;color:var(--text);margin:0 0 10px;text-transform:uppercase;letter-spacing:.06em}
.profile-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px}
.profile-card-head .profile-card-title{margin:0}
.profile-card-edit{background:none;border:none;padding:2px 6px;font-size:11px;font-weight:600;color:var(--text-3);cursor:pointer;font-family:inherit;text-transform:uppercase;letter-spacing:.05em;border-radius:6px}
.profile-card-edit:hover{color:var(--text);background:var(--surface-2)}
.profile-card-sub{font-size:12px;color:var(--text-3);margin:0 0 10px;line-height:1.45}
.profile-sidebar .card{padding:18px 18px 20px}
.profile-about-section+.profile-about-section{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
.profile-about-label{font-size:11px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}
.profile-about-caption{font-size:11.5px;color:var(--text-3);margin:8px 0 0;line-height:1.4}
.profile-about-email-input{display:flex;gap:8px;margin-top:8px}
.profile-about-empty{font-size:12.5px;color:var(--text-3);margin:0}
.profile-section-head{font-size:12px;font-weight:700;color:var(--text-3);margin:0 0 10px;text-transform:uppercase;letter-spacing:.06em}
.profile-main-section{display:flex;flex-direction:column;gap:10px}
.profile-note-post-row{display:flex;justify-content:flex-end;margin-top:8px}
.profile-main .profile-outreach-card{padding:4px 16px}
/* Compact pill rows inside the narrow sidebar */
.profile-sidebar .pill-row{gap:6px}
.profile-sidebar .info-pill{max-width:100%;word-break:break-all}
/* Gsheet template pills can have multiple bold/italic/plain segments.
   Without this wrapper, each segment becomes its own flex child and
   the parent's break-all breaks every chunk mid-word in narrow
   sidebars. Wrapping the segments in one inline span makes them
   flow as plain text — break only at word boundaries. */
.info-pill .info-pill-text{display:inline;min-width:0;flex:0 1 auto;word-break:normal;overflow-wrap:break-word}
.pill-row{display:flex;flex-wrap:wrap;gap:8px}
.info-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;font-size:12px;font-weight:600;color:var(--text-2);text-decoration:none}
a.info-pill:hover{border-color:var(--accent)}
.info-pill-badge{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;font-size:9px;font-weight:800;background:var(--accent);color:hsl(200,20%,6%)}
.info-pill-badge.is-image{background:transparent}
.info-pill-badge.is-image img{width:16px;height:16px;display:block;object-fit:contain}
/* Event pill (Luma) — stacked status / name / date for clearer hierarchy */
.info-pill.event-pill{align-items:flex-start;padding:8px 12px;gap:9px}
.event-pill .info-pill-badge{margin-top:2px;flex-shrink:0}
.event-pill-text{display:flex;flex-direction:column;align-items:flex-start;gap:1px;line-height:1.25;min-width:0;flex:1}
.event-pill-status{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3)}
.event-pill-title{font-size:13px;font-weight:700;color:var(--text);word-break:break-word}
.event-pill-date{font-size:10.5px;font-weight:500;color:var(--text-3)}
/* Wrap a pill (or group of pills for one row) with an inline revert
   button that can un-confirm a "may have" decision. Sits to the right
   of the pill so the anchor's click area stays clean. */
.pill-edit-wrap{display:inline-flex;align-items:center;gap:4px;max-width:100%}
.pill-edit-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:var(--surface-2);border:1px solid var(--border);border-radius:50%;color:var(--text-3);cursor:pointer;flex-shrink:0}
.pill-edit-btn:hover{border-color:var(--accent);color:var(--text)}
.pill-edit-btn:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px hsla(174,100%,50%,.2)}
/* Pending-match gsheet pill: dashed border signals "not confirmed yet",
   hedge prefix is a muted italic lead-in, and the trailing Yes/No
   buttons sit alongside the pill the way the revert button does on
   confirmed pills. The buttons are always visible (the .pill-edit-btn
   display gate only applies to edit-mode affordances). */
.info-pill.info-pill-pending{border-style:dashed;color:var(--text-3)}
/* Google Sheets expandable pill — click the whole pill to reveal a detail
   panel below it (mirrors the outreach-note expand UX in the extension).
   Inline label segment is a subtle chip inside the pill text so users
   know which word will expand. */
.gsheet-pill-wrap{display:inline-flex;flex-direction:column;align-items:flex-start;gap:4px;max-width:100%}
.gsheet-pill-wrap .info-pill{max-width:100%}
.info-pill-expandable{cursor:pointer;position:relative}
.info-pill-expandable:hover{border-color:var(--accent);color:var(--text)}
.gsheet-expand-panel{display:block;max-width:100%;padding:8px 10px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;font-size:12px;color:var(--text-2);line-height:1.45;white-space:pre-wrap;word-break:break-word}
.gsheet-expand-panel[hidden]{display:none}
.gsheet-expand-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);margin-bottom:4px}
.gsheet-expand-content{font-weight:500;color:var(--text)}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:10px 20px;border-radius:var(--radius);background:var(--accent);color:hsl(200,20%,6%);font-size:13px;font-weight:500;box-shadow:var(--shadow-lg);opacity:0;transition:opacity .3s;pointer-events:none;z-index:200}
.toast.show{opacity:1}

/* Auth modal — retro monospace vibe, matches the pixel login button */
.auth-modal{max-width:400px}
.auth-title{font-family:'Courier New',Courier,monospace;font-size:16px;letter-spacing:.08em;color:var(--accent);text-transform:uppercase;margin-bottom:20px}
.auth-provider-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%}
.auth-tabs{display:flex;gap:0;margin:0 0 16px 0;border-bottom:1px solid var(--border)}
.auth-tab{flex:1;background:transparent;border:none;padding:10px 0;font-family:'Courier New',Courier,monospace;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);cursor:pointer;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}
.auth-tab:hover{color:var(--text-2)}
.auth-tab.active{color:var(--accent);border-bottom-color:var(--accent)}
.auth-close-wrap{display:flex;justify-content:center;margin-top:14px}
@media(max-width:600px){.dash-header{flex-direction:column;gap:12px;align-items:flex-start}}
/* Hard-refresh flicker guard: while we're still waiting for Supabase
   to resolve the stored session, hide the body so the landing page
   can't flash in before JS routes us to the right place. The
   inline script below sets html.auth-pending synchronously, before
   any HTML body content paints; navigate() removes it once we know
   what to show. */
html.auth-pending body{visibility:hidden}
