:root{
  --bg:#f4f5f2;
  --paper:#ffffff;
  --ink:#111111;
  --muted:#777f89;
  --line:#e8ebe5;
  --soft:#f4f5f2;
  --accent:#047857;
  --accent-soft:#eaf7f0;
  --danger:#b42318;
  --danger-soft:#fee4e2;
  --shadow:0 24px 80px rgba(15,23,42,.08);
}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:radial-gradient(circle at top,#fff 0%,var(--bg) 52%,#ecefea 100%);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink)}
button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.error-banner{position:fixed;left:24px;right:24px;top:18px;z-index:1000;background:var(--danger-soft);color:var(--danger);border:1px solid #fda29b;border-radius:18px;padding:14px 18px;box-shadow:var(--shadow)}
.page{min-height:100vh;display:grid;grid-template-columns:76px minmax(0,1fr);gap:20px;padding:28px}.sidebar{height:calc(100vh - 56px);position:sticky;top:28px;background:rgba(255,255,255,.88);border:1px solid rgba(255,255,255,.95);box-shadow:var(--shadow);border-radius:30px;padding:16px 10px;display:flex;flex-direction:column;align-items:center;gap:12px;backdrop-filter:blur(16px)}.brand{width:42px;height:42px;border-radius:15px;background:var(--ink);color:#fff;text-decoration:none;display:grid;place-items:center;font-weight:800;margin-bottom:16px}.side-btn{width:44px;height:44px;border:0;border-radius:16px;background:transparent;color:#818892;text-decoration:none;display:grid;place-items:center;font-size:18px;transition:.18s ease}.side-btn:hover,.side-btn.active{background:var(--soft);color:var(--ink)}.side-btn.bottom{margin-top:auto}.shell{min-height:calc(100vh - 56px);background:rgba(255,255,255,.74);border:1px solid rgba(255,255,255,.95);border-radius:38px;box-shadow:var(--shadow);padding:34px;backdrop-filter:blur(16px)}.top-nav{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:30px}.wordmark{font-size:20px;font-weight:850;letter-spacing:-.045em;text-decoration:none;color:var(--ink)}.top-actions,.form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dark-btn,.ghost-btn,.text-btn{border:0;border-radius:999px;padding:13px 18px;font-weight:750;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.dark-btn{background:var(--ink);color:#fff}.ghost-btn{background:var(--soft);color:var(--ink)}.text-btn{background:transparent;color:var(--ink);padding:10px 12px}.text-btn:hover{background:var(--soft)}.hero{max-width:930px;margin-bottom:22px}.hero.compact h1{font-size:clamp(42px,7vw,80px)}.eyebrow{margin:0 0 12px;color:var(--muted);font-size:12px;letter-spacing:.13em;text-transform:uppercase;font-weight:800}.hero h1{font-size:clamp(44px,6.8vw,86px);line-height:.92;letter-spacing:-.078em;margin:0 0 18px}.hero-text{font-size:18px;line-height:1.55;max-width:760px}.muted{color:var(--muted)}.small{font-size:13px}.search-section{margin:18px 0 20px}.search-box{width:100%;background:var(--paper);border:1px solid var(--line);border-radius:24px;padding:16px 18px;display:flex;align-items:center;gap:11px}.search-box input{border:0;outline:0;background:transparent;width:100%;font-size:16px}.stats-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:20px 0}.stats-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.stats-grid article{background:var(--paper);border:1px solid rgba(232,235,229,.8);border-radius:26px;padding:20px;min-height:105px}.stats-grid span{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.stats-grid strong{display:block;margin-top:12px;font-size:34px;letter-spacing:-.06em}.filters{display:grid;grid-template-columns:repeat(6,minmax(128px,1fr));gap:10px;margin:20px 0 18px}select,input,textarea{border:1px solid var(--line);outline:0;background:var(--paper);border-radius:18px;padding:13px 14px;color:var(--ink)}textarea{min-height:104px;resize:vertical}.checkline{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;white-space:nowrap}.checkline input{width:auto}.checkline.in-form{border:1px solid var(--line);border-radius:18px;background:var(--paper);padding:13px 14px}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(265px,1fr));gap:16px}.tender-card{background:var(--paper);border:1px solid rgba(232,235,229,.8);border-radius:30px;padding:22px;min-height:270px;display:flex;flex-direction:column;justify-content:space-between;transition:.18s ease}.tender-card:hover{transform:translateY(-3px);box-shadow:0 22px 52px rgba(15,23,42,.08)}.card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.tag,.badge{width:max-content;max-width:100%;background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800}.badge{background:var(--soft);color:var(--muted)}.badge.match{background:var(--accent-soft);color:var(--accent)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.card-value{font-size:38px;letter-spacing:-.07em;font-weight:900;margin:26px 0 16px}.tender-card h3{font-size:20px;line-height:1.12;letter-spacing:-.035em;margin:0 0 8px}.card-meta{color:var(--muted);font-size:13px;line-height:1.5}.card-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:18px}.round-btn{width:42px;height:42px;border:0;border-radius:50%;background:var(--soft);color:var(--ink);font-weight:900}.round-btn.active{background:var(--accent-soft);color:var(--accent)}.apply-btn{border:0;border-radius:999px;background:var(--ink);color:#fff;padding:11px 15px;font-weight:800}.empty-state{background:var(--paper);border:1px solid var(--line);border-radius:30px;padding:42px;text-align:center;color:var(--muted)}.empty-state h3{color:var(--ink);font-size:26px;margin:0 0 8px;letter-spacing:-.04em}.modal{position:fixed;inset:0;z-index:900;display:grid;place-items:center;padding:18px}.modal-backdrop{position:absolute;inset:0;background:rgba(17,17,17,.26);backdrop-filter:blur(7px)}.modal-card{position:relative;width:min(520px,100%);max-height:calc(100vh - 36px);overflow:auto;background:var(--paper);border-radius:32px;padding:30px;box-shadow:var(--shadow)}.modal-card.wide{width:min(760px,100%)}.modal-card h2{font-size:34px;letter-spacing:-.055em;margin:0 0 18px}.modal-card h3{font-size:20px;letter-spacing:-.03em;margin:18px 0 8px}.close-btn{position:absolute;right:18px;top:18px;width:34px;height:34px;border:0;border-radius:50%;background:var(--soft);font-size:18px}.tabs{display:flex;background:var(--soft);border-radius:999px;padding:4px;margin-bottom:14px}.tabs button{flex:1;border:0;background:transparent;border-radius:999px;padding:10px;font-weight:750}.tabs button.active{background:var(--paper);box-shadow:0 10px 24px rgba(15,23,42,.06)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px}.modal-card input,.modal-card select,.form-card input,.form-card select,.form-card textarea{width:100%;margin-bottom:10px}.chip-wrap{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 10px}.chip{border:1px solid var(--line);background:var(--paper);color:var(--muted);border-radius:999px;padding:9px 11px;font-size:12px}.chip.active{background:var(--accent-soft);color:var(--accent);border-color:#ccebdc}.message{min-height:20px}.detail-value{font-size:44px;letter-spacing:-.07em;font-weight:900;margin:18px 0}.admin-layout{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:18px}.form-card,.list-card{background:var(--paper);border:1px solid rgba(232,235,229,.85);border-radius:30px;padding:22px}.form-card h2{font-size:34px;letter-spacing:-.06em;margin:0 0 18px}.full{width:100%;margin-top:8px}.admin-filter-row{display:grid;grid-template-columns:1fr 170px;gap:10px;margin-bottom:14px}.compact-search{border-radius:18px;padding:12px 14px}.admin-list{display:grid;gap:10px}.admin-item{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;border:1px solid var(--line);border-radius:22px;padding:16px}.admin-item strong{display:block;margin-bottom:5px}.admin-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.danger-btn{background:var(--danger-soft);color:var(--danger)}.success-btn{background:var(--accent-soft);color:var(--accent)}
@media(max-width:1120px){.filters{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid,.stats-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-layout{grid-template-columns:1fr}}
@media(max-width:720px){.page{grid-template-columns:1fr;padding:12px}.sidebar{position:fixed;z-index:600;left:12px;right:12px;bottom:12px;top:auto;height:66px;border-radius:24px;flex-direction:row;justify-content:center}.brand{margin:0}.side-btn.bottom{margin-top:0}.shell{min-height:calc(100vh - 24px);border-radius:28px;padding:22px;margin-bottom:78px}.top-nav{flex-direction:column}.top-actions{width:100%}.hero h1{font-size:44px}.stats-grid,.stats-grid.four,.filters,.two-col,.admin-filter-row{grid-template-columns:1fr}.cards-grid{grid-template-columns:1fr}.admin-item{grid-template-columns:1fr}.admin-actions{justify-content:flex-start}}
.crawler-panel{margin-top:22px;display:grid;gap:18px}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.section-heading h2{font-size:34px;letter-spacing:-.06em;margin:0 0 8px}.compact-heading{margin-bottom:12px}.crawler-filters{grid-template-columns:1fr 210px 160px}.crawler-logs-card{margin-top:0}.instruction-list{color:var(--muted);line-height:1.8}.instruction-list code,.empty-state code{background:var(--soft);color:var(--ink);border-radius:8px;padding:2px 6px}.raw-item{border-left:4px solid var(--accent-soft)}button:disabled{opacity:.55;cursor:not-allowed}@media(max-width:920px){.section-heading{flex-direction:column}.crawler-filters{grid-template-columns:1fr}.crawler-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.raw-incomplete{border-left-color:#fda29b;background:linear-gradient(90deg,rgba(254,228,226,.42),#fff 26%)}
#rawMissingFieldsText{color:var(--danger);font-weight:700}
.crawler-stats{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:1120px){.crawler-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* UI refresh: tender cards should prioritise issuer, closing date and source because contract values are often not disclosed. */
.cards-grid{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:18px;align-items:stretch}.tender-card.refined{min-height:330px;padding:24px;border-radius:32px;gap:18px}.tender-card.refined .card-top{align-items:center}.card-body{display:flex;flex-direction:column;gap:10px}.card-kicker{margin:18px 0 0;color:var(--muted);font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:850}.card-title{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;min-height:88px}.issuer-line{min-height:40px;margin-top:2px}.card-info-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.info-chip{width:max-content;max-width:100%;border-radius:999px;padding:8px 10px;background:var(--soft);color:var(--muted);font-size:12px;font-weight:800}.info-chip.closing{background:#fff7ed;color:#9a3412}.info-chip.closing.urgent{background:#fee2e2;color:#b42318}.info-chip.closing.closed{background:#f1f5f9;color:#64748b}.info-chip.value{background:#f8fafc;color:#64748b}.info-chip.value.disclosed{background:var(--accent-soft);color:var(--accent)}.action-group{display:flex;align-items:center;gap:8px}.apply-btn{min-width:82px}.badge.open{background:var(--accent-soft);color:var(--accent)}.badge.closed{background:#f1f5f9;color:#64748b}.badge.awarded{background:#fef3c7;color:#92400e}.badge.draft{background:#f1f5f9;color:#64748b}.detail-value.subtle-value{font-size:22px;letter-spacing:-.035em;background:var(--soft);border-radius:18px;padding:14px 16px;width:max-content;max-width:100%}.filters select{min-height:52px}.stats-grid article{min-height:94px}.stats-grid strong{font-size:30px}@media(max-width:720px){.cards-grid{grid-template-columns:1fr}.tender-card.refined{min-height:auto}.card-title{min-height:auto}}

/* Tenderhive Pro / PayFast subscription additions */
.pro-btn{border:0;border-radius:999px;background:var(--accent);color:#fff;padding:13px 18px;font-weight:850;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 14px 34px rgba(4,120,87,.18)}
.pro-btn:hover{filter:brightness(.96)}
.status-card{border:1px solid var(--line);border-radius:22px;background:var(--soft);padding:16px;margin:0 0 16px;display:grid;gap:8px}.status-card strong{font-size:16px}.status-card span{color:var(--muted);font-size:13px}.status-card.active-pro{background:var(--accent-soft);border-color:#ccebdc;color:var(--accent)}
.pro-status-card{margin:8px 0 12px}.pro-panel{margin:18px 0}.locked-panel,.unlocked-panel{border:1px solid var(--line);border-radius:26px;background:linear-gradient(180deg,#fff,var(--soft));padding:20px}.locked-panel{position:relative;overflow:hidden}.locked-panel:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.2),rgba(244,245,242,.62));pointer-events:none}.locked-panel>*{position:relative}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:18px 0}.feature-grid span{background:var(--soft);border:1px solid var(--line);border-radius:16px;padding:12px;color:var(--ink);font-weight:700;font-size:13px}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:10px 0 18px}.details-grid div{background:var(--soft);border:1px solid var(--line);border-radius:16px;padding:12px}.details-grid span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}.details-grid strong{font-size:13px;font-weight:750;word-break:break-word}.details-grid a{color:var(--accent);text-decoration:none}.checklist{display:grid;gap:8px;padding:0;margin:10px 0 18px;list-style:none}.checklist li{background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:10px 12px;font-size:13px}.checklist li:before{content:"✓";color:var(--accent);font-weight:900;margin-right:8px}.partner-chips{display:flex;gap:8px;flex-wrap:wrap}.partner-choice{cursor:pointer}.email-preview{border:1px solid var(--line);border-radius:18px;background:var(--paper);padding:14px;display:grid;gap:6px}.email-preview span{color:var(--muted);font-size:13px}.locked-action{background:var(--accent)!important}.danger-btn{color:var(--danger)!important}.warning-item{border-color:#fedf89!important;background:#fffbeb!important}.monetisation-panel{margin-top:22px}.admin-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.admin-item{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border:1px solid var(--line);background:var(--paper);border-radius:22px;padding:16px;margin-bottom:10px}.admin-item strong{letter-spacing:-.02em}.admin-list{display:grid;gap:8px}.section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin:0 0 16px}.compact-heading{align-items:center}.crawler-panel{margin-top:24px}.crawler-filters{grid-template-columns:1fr 190px auto}.instruction-list{line-height:1.8;color:var(--muted)}code{background:var(--soft);border:1px solid var(--line);padding:2px 6px;border-radius:8px}
@media(max-width:850px){.feature-grid,.details-grid{grid-template-columns:1fr}.admin-item,.section-heading{display:block}.admin-actions{justify-content:flex-start;margin-top:12px}.crawler-filters{grid-template-columns:1fr}.top-actions{justify-content:flex-start}.pro-btn{padding:11px 14px}.filters,.stats-grid{grid-template-columns:1fr 1fr}.page{grid-template-columns:1fr;padding:14px}.sidebar{height:auto;position:static;flex-direction:row;border-radius:24px}.shell{padding:22px;border-radius:28px}.hero h1{font-size:42px}}

/* Pro modal polish: premium, calmer R49 subscription experience */
.pro-side-btn{
  background:linear-gradient(135deg,#0b0f0d,#047857)!important;
  color:#fff!important;
  box-shadow:0 14px 34px rgba(4,120,87,.20);
}
.pro-nav-btn{
  gap:8px;
  padding:10px 14px 10px 16px;
  background:linear-gradient(135deg,#101513,#047857);
  border:1px solid rgba(255,255,255,.35);
}
.pro-nav-btn small{
  background:rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.20);
  border-radius:999px;
  padding:4px 8px;
  font-size:11px;
  line-height:1;
}
.pro-btn{
  background:linear-gradient(135deg,#101513 0%,#047857 100%);
  box-shadow:0 18px 42px rgba(4,120,87,.18), inset 0 1px 0 rgba(255,255,255,.16);
  letter-spacing:-.01em;
}
.pro-btn:hover{transform:translateY(-1px);filter:none;box-shadow:0 22px 52px rgba(4,120,87,.22), inset 0 1px 0 rgba(255,255,255,.16)}
.pro-modal-card{
  width:min(900px,100%);
  padding:0;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.92);
  background:linear-gradient(180deg,#ffffff 0%,#fbfcfa 100%);
}
.pro-modal-card .close-btn{z-index:4;background:rgba(255,255,255,.82);backdrop-filter:blur(10px)}
.pro-hero-card{
  position:relative;
  display:grid;
  grid-template-columns:1fr auto;
  gap:20px;
  padding:34px 34px 28px;
  background:
    radial-gradient(circle at 88% 20%,rgba(4,120,87,.16),transparent 28%),
    linear-gradient(135deg,#ffffff 0%,#eef8f2 100%);
  border-bottom:1px solid var(--line);
}
.pro-hero-card h2{
  font-size:clamp(34px,5vw,56px);
  line-height:.92;
  letter-spacing:-.075em;
  margin:0 0 14px;
  max-width:560px;
}
.pro-hero-card p{max-width:640px;line-height:1.55;margin:0}.price-lockup{width:138px;height:138px;border-radius:34px;background:#101513;color:#fff;display:grid;place-items:center;align-content:center;box-shadow:0 24px 60px rgba(16,21,19,.18);transform:rotate(2deg)}.price-lockup span{font-size:42px;font-weight:950;letter-spacing:-.07em;line-height:.85}.price-lockup small{font-size:13px;color:rgba(255,255,255,.72);font-weight:750}.pro-feature-showcase{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:24px 34px 12px}.pro-feature-showcase article{position:relative;min-height:142px;border:1px solid var(--line);border-radius:26px;background:#fff;padding:18px;box-shadow:0 12px 28px rgba(15,23,42,.04)}.pro-feature-showcase article:before{content:"";display:block;width:28px;height:28px;border-radius:10px;margin-bottom:14px;background:linear-gradient(135deg,var(--accent-soft),#fff);border:1px solid #ccebdc}.pro-feature-showcase strong{display:block;font-size:16px;letter-spacing:-.035em;margin-bottom:8px}.pro-feature-showcase span{display:block;color:var(--muted);font-size:13px;line-height:1.45}.pro-note-card{margin:12px 34px 0;border:1px solid #ccebdc;background:linear-gradient(135deg,#eaf7f0,#fff);border-radius:24px;padding:18px 20px}.pro-note-card strong{display:block;margin-bottom:6px}.pro-note-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.5}.pro-subscribe-form{padding:24px 34px 34px;margin-top:0}.pro-submit-btn{border:0;border-radius:24px;background:#101513;color:#fff;padding:16px 18px;font-weight:850;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 18px 44px rgba(16,21,19,.16);transition:.18s ease}.pro-submit-btn:hover{transform:translateY(-1px);box-shadow:0 24px 56px rgba(16,21,19,.20)}.pro-submit-btn strong{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:8px 10px;font-size:13px}.mini-feature-row{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.mini-feature-row span{border:1px solid #ccebdc;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:850;border-radius:999px;padding:8px 10px}.pro-lock h3{font-size:24px;letter-spacing:-.05em}.pro-lock p{line-height:1.55}.top-actions .pro-btn{order:3}.top-actions #logoutBtn{order:4}
@media(max-width:850px){
  .pro-hero-card{grid-template-columns:1fr;padding:28px 22px}.price-lockup{width:112px;height:112px;border-radius:28px;transform:none}.price-lockup span{font-size:34px}.pro-feature-showcase{grid-template-columns:1fr;padding:18px 22px 8px}.pro-note-card{margin:10px 22px 0}.pro-subscribe-form{padding:20px 22px 26px}.pro-submit-btn{border-radius:20px;align-items:flex-start;flex-direction:column}.pro-nav-btn small{display:none}
}


/* HOTFIX: polished Pro upgrade button, targeted by ID so it cannot fall back to browser default styling */
#subscribeTopBtn,
.pro-nav-upgrade-btn{
  appearance:none;
  -webkit-appearance:none;
  border:0;
  outline:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:48px;
  padding:8px 14px 8px 10px;
  border-radius:999px;
  background:linear-gradient(135deg,#0b0f0d 0%,#025f45 100%);
  color:#fff;
  font-weight:850;
  line-height:1;
  box-shadow:0 18px 45px rgba(4,120,87,.22), inset 0 1px 0 rgba(255,255,255,.16);
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
#subscribeTopBtn:hover,
.pro-nav-upgrade-btn:hover{
  transform:translateY(-1px);
  box-shadow:0 24px 60px rgba(4,120,87,.28), inset 0 1px 0 rgba(255,255,255,.16);
}
.pro-nav-spark{
  width:32px;
  height:32px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.18);
  color:#f6d884;
  font-size:14px;
}
.pro-nav-copy{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:2px;
}
.pro-nav-copy strong{
  display:block;
  color:#fff;
  font-size:13px;
  letter-spacing:-.02em;
}
.pro-nav-copy small{
  display:block;
  color:rgba(255,255,255,.72);
  font-size:11px;
  font-weight:750;
}
@media(max-width:760px){
  #subscribeTopBtn,.pro-nav-upgrade-btn{min-height:44px;padding:8px 12px;gap:8px}
  .pro-nav-spark{width:28px;height:28px}
  .pro-nav-copy small{display:none}
}

/* PRO MODAL FIT HOTFIX: simple Pro button + always-visible subscription action */
#subscribeTopBtn.pro-nav-upgrade-btn{
  appearance:none;
  -webkit-appearance:none;
  border:0;
  min-height:44px;
  padding:0 20px;
  border-radius:999px;
  background:#101513;
  color:#fff;
  font-weight:900;
  letter-spacing:-.025em;
  box-shadow:0 16px 36px rgba(16,21,19,.14);
}
#subscribeTopBtn.pro-nav-upgrade-btn .pro-nav-copy{
  display:block;
  line-height:1;
}
#subscribeTopBtn.pro-nav-upgrade-btn .pro-nav-copy strong{
  font-size:15px;
  color:#fff;
}
#subscribeTopBtn.pro-nav-upgrade-btn:hover{
  transform:translateY(-1px);
  background:#047857;
  box-shadow:0 20px 44px rgba(4,120,87,.22);
}

.pro-modal-fit-card{
  width:min(760px,calc(100vw - 28px));
  max-height:min(92vh,860px);
  padding:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.pro-modal-fit-card .close-btn{
  position:absolute;
  right:14px;
  top:14px;
  z-index:6;
}
.pro-modal-scroll{
  overflow:auto;
  padding-bottom:0;
}
.pro-hero-compact{
  grid-template-columns:1fr auto;
  gap:18px;
  padding:26px 30px 20px;
}
.pro-hero-compact h2{
  font-size:clamp(30px,4vw,44px);
  line-height:.96;
  margin-bottom:10px;
}
.pro-hero-compact p{
  font-size:14px;
  line-height:1.45;
  max-width:520px;
}
.compact-price{
  width:108px;
  height:108px;
  border-radius:28px;
  transform:none;
}
.compact-price span{
  font-size:34px;
}
.pro-feature-list{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  padding:18px 30px 10px;
}
.pro-feature-list article{
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
  padding:14px 15px;
  box-shadow:0 10px 24px rgba(15,23,42,.035);
}
.pro-feature-list strong{
  display:block;
  font-size:14px;
  letter-spacing:-.025em;
  margin-bottom:6px;
}
.pro-feature-list span{
  display:block;
  color:var(--muted);
  font-size:12.5px;
  line-height:1.35;
}
.compact-pro-note{
  margin:10px 30px 18px;
  padding:14px 16px;
  border-radius:18px;
}
.compact-pro-note p{
  font-size:13px;
}
.pro-subscribe-footer{
  flex:0 0 auto;
  border-top:1px solid var(--line);
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(12px);
  padding:16px 30px 18px;
  margin:0;
  box-shadow:0 -18px 40px rgba(15,23,42,.045);
}
.subscription-details-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  margin-bottom:10px;
}
.subscription-details-header .eyebrow{
  margin-bottom:4px;
}
.subscription-details-header strong{
  font-size:18px;
  letter-spacing:-.035em;
}
.price-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:var(--accent-soft);
  color:var(--accent);
  font-size:13px;
  font-weight:900;
  padding:8px 11px;
  white-space:nowrap;
}
.compact-form-grid{
  gap:8px;
}
.pro-subscribe-footer input{
  margin-bottom:8px;
  min-height:44px;
  padding:10px 12px;
  border-radius:16px;
}
.pro-subscribe-footer .pro-submit-btn{
  min-height:50px;
  border-radius:18px;
  padding:13px 16px;
  margin-top:2px;
}
.pro-subscribe-footer #subscriptionMessage{
  margin:8px 0 0;
  min-height:18px;
}
@media(max-width:760px){
  .pro-modal-fit-card{
    width:calc(100vw - 20px);
    max-height:94vh;
    border-radius:26px;
  }
  .pro-hero-compact{
    grid-template-columns:1fr;
    padding:24px 18px 16px;
  }
  .compact-price{
    width:auto;
    height:auto;
    min-height:58px;
    border-radius:18px;
    display:flex;
    justify-content:center;
    gap:6px;
    transform:none;
  }
  .compact-price span{font-size:30px}
  .pro-feature-list{
    grid-template-columns:1fr;
    padding:14px 18px 8px;
  }
  .compact-pro-note{
    margin:8px 18px 14px;
  }
  .pro-subscribe-footer{
    padding:14px 18px 16px;
  }
  .two-col.compact-form-grid{
    grid-template-columns:1fr;
    gap:0;
  }
}


/* MINIMAL PRO UPSALE REFRESH: understated Pro button and compact modern modal */
.top-pro-pill,
#subscribeTopBtn.top-pro-pill{
  appearance:none;
  -webkit-appearance:none;
  border:1px solid rgba(20,26,23,.12);
  background:rgba(255,255,255,.72);
  color:#101513;
  min-height:40px;
  padding:0 16px;
  border-radius:999px;
  font-size:14px;
  font-weight:780;
  letter-spacing:-.02em;
  box-shadow:0 8px 22px rgba(15,23,42,.04);
  cursor:pointer;
  transition:background .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease;
}
.top-pro-pill:hover,
#subscribeTopBtn.top-pro-pill:hover{
  background:#fff;
  border-color:rgba(4,120,87,.28);
  transform:translateY(-1px);
  box-shadow:0 12px 30px rgba(15,23,42,.07);
}
.pro-side-btn{
  background:rgba(255,255,255,.68) !important;
  color:#101513 !important;
  border:1px solid rgba(20,26,23,.10) !important;
}
.pro-btn{
  background:#fff !important;
  color:#101513 !important;
  border:1px solid rgba(20,26,23,.12) !important;
  box-shadow:0 8px 22px rgba(15,23,42,.04) !important;
}
.pro-btn:hover{
  transform:translateY(-1px);
  border-color:rgba(4,120,87,.25) !important;
  box-shadow:0 12px 30px rgba(15,23,42,.07) !important;
}
.pro-modal-minimal{
  width:min(660px,calc(100vw - 28px));
  max-height:92vh;
  overflow:auto;
  padding:0;
  border-radius:30px;
  background:#fff;
  border:1px solid rgba(20,26,23,.10);
  box-shadow:0 34px 100px rgba(15,23,42,.16);
}
.pro-modal-minimal .close-btn{
  right:18px;
  top:18px;
  background:#f6f6f3;
  color:#101513;
  z-index:5;
}
.pro-minimal-header{
  display:grid;
  grid-template-columns:1fr auto;
  gap:22px;
  align-items:start;
  padding:30px 32px 22px;
  border-bottom:1px solid rgba(20,26,23,.08);
}
.pro-minimal-header h2{
  font-size:clamp(32px,4.4vw,46px);
  line-height:.96;
  letter-spacing:-.07em;
  margin:0 0 10px;
}
.pro-minimal-header p.muted{
  max-width:450px;
  line-height:1.5;
  margin:0;
  font-size:14px;
}
.pro-minimal-price{
  min-width:108px;
  padding:14px 16px;
  border-radius:22px;
  background:#f7f8f5;
  border:1px solid rgba(20,26,23,.08);
  text-align:right;
}
.pro-minimal-price strong{
  display:block;
  font-size:34px;
  line-height:.9;
  letter-spacing:-.07em;
}
.pro-minimal-price span{
  display:block;
  margin-top:6px;
  color:#747c86;
  font-size:12px;
  font-weight:700;
}
.pro-minimal-groups{
  display:grid;
  grid-template-columns:1fr;
  gap:0;
  padding:10px 32px 4px;
}
.pro-minimal-groups article{
  padding:16px 0;
  border-bottom:1px solid rgba(20,26,23,.075);
}
.pro-minimal-groups article:last-child{border-bottom:0}
.pro-minimal-groups h3{
  margin:0 0 6px;
  font-size:17px;
  line-height:1.15;
  letter-spacing:-.035em;
}
.pro-minimal-groups p{
  margin:0;
  color:#747c86;
  line-height:1.48;
  font-size:13.5px;
}
.pro-minimal-form{
  margin:8px 32px 32px;
  padding:18px;
  border-radius:24px;
  background:#f8f8f5;
  border:1px solid rgba(20,26,23,.08);
}
.pro-form-heading{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:flex-start;
  margin-bottom:12px;
}
.pro-form-heading strong{
  display:block;
  font-size:16px;
  letter-spacing:-.03em;
}
.pro-form-heading span{
  color:#747c86;
  font-size:12.5px;
  line-height:1.35;
  text-align:right;
  max-width:240px;
}
.pro-minimal-form input{
  background:#fff;
  border-color:rgba(20,26,23,.10);
  border-radius:16px;
  padding:12px 13px;
}
.pro-minimal-submit{
  border:0;
  background:#101513;
  color:#fff;
  min-height:48px;
  border-radius:999px;
  padding:0 18px;
  font-weight:820;
  letter-spacing:-.02em;
  cursor:pointer;
  box-shadow:0 16px 34px rgba(16,21,19,.14);
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}
.pro-minimal-submit:hover{
  transform:translateY(-1px);
  background:#0b0f0d;
  box-shadow:0 20px 42px rgba(16,21,19,.18);
}
.pro-modal-minimal #subscriptionMessage{
  margin:9px 0 0;
  min-height:18px;
}
@media(max-width:720px){
  .pro-modal-minimal{
    width:calc(100vw - 18px);
    max-height:94vh;
    border-radius:26px;
  }
  .pro-minimal-header{
    grid-template-columns:1fr;
    padding:26px 20px 18px;
    gap:14px;
  }
  .pro-minimal-price{
    text-align:left;
    min-width:0;
    width:max-content;
  }
  .pro-minimal-groups{
    padding:8px 20px 2px;
  }
  .pro-minimal-groups article{
    padding:13px 0;
  }
  .pro-minimal-form{
    margin:8px 20px 20px;
    padding:14px;
    border-radius:20px;
  }
  .pro-form-heading{
    display:block;
  }
  .pro-form-heading span{
    display:block;
    margin-top:4px;
    text-align:left;
  }
  .two-col.compact-form-grid{
    grid-template-columns:1fr;
    gap:0;
  }
}


/* SUBSCRIPTION SALES UPDATE: stronger subscription copy, still premium */
.top-pro-pill,
#subscribeTopBtn.top-pro-pill{
  background:#101513;
  color:#fff;
  border:1px solid #101513;
  min-height:42px;
  padding:0 18px;
  font-weight:850;
  box-shadow:0 12px 30px rgba(16,21,19,.12);
}
.top-pro-pill:hover,
#subscribeTopBtn.top-pro-pill:hover{
  background:#0b0f0d;
  border-color:#0b0f0d;
  box-shadow:0 16px 38px rgba(16,21,19,.16);
}
.pro-side-btn{
  background:#101513 !important;
  color:#fff !important;
  border-color:#101513 !important;
  font-size:14px !important;
  font-weight:900 !important;
}
.pro-modal-minimal{
  width:min(720px,calc(100vw - 28px));
}
.sales-header{
  padding-bottom:18px;
}
.sales-header h2{
  max-width:520px;
}
.sales-copy{
  max-width:540px !important;
  font-size:15px !important;
}
.subscription-pitch{
  margin:18px 32px 4px;
  padding:18px 20px;
  border-radius:22px;
  background:#101513;
  color:#fff;
  box-shadow:0 18px 44px rgba(16,21,19,.12);
}
.subscription-pitch p{
  margin:0;
  font-size:15px;
  line-height:1.55;
  letter-spacing:-.012em;
}
.sales-groups{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  padding:14px 32px 4px;
}
.sales-groups article{
  border:1px solid rgba(20,26,23,.08);
  border-radius:20px;
  padding:16px;
  background:#fff;
}
.sales-groups article:last-child{border-bottom:1px solid rgba(20,26,23,.08)}
.sales-groups h3{font-size:16px;margin-bottom:8px}
.sales-groups p{font-size:13px;line-height:1.42}
.pro-minimal-submit{
  min-height:52px;
  font-size:15px;
}
@media(max-width:720px){
  .subscription-pitch{margin:14px 20px 2px;padding:16px}
  .subscription-pitch p{font-size:14px}
  .sales-groups{grid-template-columns:1fr;padding:12px 20px 2px;gap:8px}
  .sales-groups article{padding:13px 14px}
}

/* =========================================================
   Tenderhive UI Overhaul — premium, calmer, less clunky
   Safe override layer. Does not change Firebase/PayFast logic.
   ========================================================= */
:root{
  --bg:#f7f7f4;
  --paper:#ffffff;
  --ink:#141414;
  --ink-soft:#303436;
  --muted:#7b838c;
  --line:#ecece7;
  --line-strong:#dedfd8;
  --soft:#f3f3ef;
  --accent:#087a5b;
  --accent-dark:#065f46;
  --accent-soft:#edf8f3;
  --warm:#fff7ed;
  --warm-ink:#9a3412;
  --shadow:0 20px 50px rgba(24,29,27,.055);
  --shadow-card:0 14px 34px rgba(24,29,27,.045);
}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  text-rendering:geometricPrecision;
}
body:before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 18% 0%,rgba(8,122,91,.055),transparent 34%),
    radial-gradient(circle at 88% 12%,rgba(20,20,20,.035),transparent 28%);
  z-index:-1;
}
button,input,select,textarea{font-family:inherit}
button{transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}
button:hover{transform:translateY(-1px)}
.page{
  grid-template-columns:64px minmax(0,1fr);
  gap:18px;
  padding:22px;
}
.sidebar{
  top:22px;
  height:calc(100vh - 44px);
  padding:14px 8px;
  border-radius:26px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(222,223,216,.75);
  box-shadow:none;
}
.brand{
  width:38px;
  height:38px;
  border-radius:14px;
  background:#101413;
  font-size:17px;
  letter-spacing:-.04em;
  box-shadow:0 10px 24px rgba(16,20,19,.10);
}
.side-btn{
  width:40px;
  height:40px;
  border-radius:14px;
  color:#8b928e;
  font-size:16px;
}
.side-btn:hover,.side-btn.active{
  background:#f0f1ed;
  color:#161817;
}
.pro-side-btn{
  color:var(--accent);
  background:var(--accent-soft);
}
.shell{
  border:0;
  box-shadow:none;
  background:transparent;
  padding:6px 10px 44px;
  border-radius:0;
  backdrop-filter:none;
}
.top-nav{
  position:sticky;
  top:0;
  z-index:50;
  align-items:center;
  margin:0 0 20px;
  padding:13px 0 16px;
  background:linear-gradient(180deg,rgba(247,247,244,.96),rgba(247,247,244,.82) 72%,rgba(247,247,244,0));
  backdrop-filter:blur(10px);
}
.wordmark{
  font-size:18px;
  font-weight:760;
  letter-spacing:-.045em;
}
.top-actions{gap:8px;justify-content:flex-end}
#authStateLabel{
  max-width:210px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ghost-btn,.dark-btn,.text-btn,.top-pro-pill{
  min-height:42px;
  padding:0 15px;
  border-radius:999px;
  font-size:14px;
  font-weight:700;
}
.ghost-btn{
  background:#fff;
  border:1px solid var(--line);
  color:#262a2d;
}
.dark-btn{
  background:#121514;
  color:#fff;
  box-shadow:0 10px 24px rgba(18,21,20,.10);
}
#subscribeTopBtn,
#subscribeTopBtn.top-pro-pill,
#subscribeTopBtn.pro-nav-upgrade-btn{
  appearance:none;
  min-height:42px;
  padding:0 17px;
  border:1px solid rgba(8,122,91,.18);
  border-radius:999px;
  background:#ffffff;
  color:var(--accent-dark);
  box-shadow:0 8px 20px rgba(8,122,91,.06);
  font-weight:760;
  letter-spacing:-.02em;
}
#subscribeTopBtn:hover{
  background:var(--accent-soft);
  box-shadow:0 12px 28px rgba(8,122,91,.10);
}
.search-section{margin:4px 0 14px}.search-box{
  height:58px;
  border-radius:24px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.88);
  padding:0 18px;
  box-shadow:0 12px 35px rgba(24,29,27,.035);
}
.search-box span{color:#9aa19d;font-size:18px}.search-box input{font-size:15px;color:#171817}.search-box input::placeholder{color:#9aa19d}
.filters{
  display:flex;
  align-items:center;
  gap:10px;
  margin:14px 0 24px;
  overflow-x:auto;
  padding-bottom:4px;
  scrollbar-width:none;
}
.filters::-webkit-scrollbar{display:none}
.filters select{
  flex:0 0 auto;
  min-width:168px;
  height:48px;
  border:1px solid var(--line-strong);
  border-radius:999px;
  background:#fff;
  color:#242727;
  padding:0 42px 0 17px;
  box-shadow:none;
  font-size:14px;
}
.checkline{
  flex:0 0 auto;
  height:48px;
  padding:0 12px;
  border-radius:999px;
  background:transparent;
  color:#7d8580;
  font-size:14px;
}
.checkline input{accent-color:var(--accent)}
.cards-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(315px,1fr));
  gap:18px;
}
.tender-card,
.tender-card.refined{
  position:relative;
  min-height:248px;
  padding:22px;
  border-radius:26px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.88);
  box-shadow:none;
  overflow:hidden;
}
.tender-card:after{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  height:3px;
  background:linear-gradient(90deg,rgba(8,122,91,.16),transparent 70%);
  opacity:0;
  transition:opacity .2s ease;
}
.tender-card:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow-card);
  border-color:#dfdfd7;
}
.tender-card:hover:after{opacity:1}.card-top{align-items:center}.tag,.badge{
  padding:7px 11px;
  border-radius:999px;
  font-size:11px;
  font-weight:760;
  letter-spacing:-.01em;
}
.tag{background:var(--accent-soft);color:var(--accent-dark)}
.badge{background:#f2f2ee;color:#707873}.badge.open,.badge.match{background:var(--accent-soft);color:var(--accent-dark)}.badge.closed,.badge.danger{background:#fff1f0;color:#b42318}
.card-body{padding-top:18px}.card-kicker{
  margin:0 0 13px;
  color:#818991;
  font-size:11px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.card-title,.tender-card h3{
  margin:0 0 13px;
  font-size:22px;
  line-height:1.08;
  letter-spacing:-.055em;
  font-weight:820;
  color:#161616;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.card-meta,.issuer-line{
  color:#7e8791;
  font-size:14px;
  line-height:1.45;
  margin:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.card-info-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:24px;
}
.info-chip{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  border-radius:999px;
  padding:0 12px;
  font-size:13px;
  font-weight:760;
}
.info-chip.closing{background:var(--warm);color:var(--warm-ink)}
.info-chip.value{background:#f3f4f3;color:#687383}
.card-actions{margin-top:24px}.round-btn{
  width:44px;
  height:44px;
  border-radius:999px;
  background:#f4f4f1;
  color:#171918;
  font-size:16px;
  border:1px solid transparent;
}
.round-btn:hover{background:#fff;border-color:var(--line-strong)}.round-btn.active{background:var(--accent-soft);color:var(--accent-dark)}
.action-group{display:flex;align-items:center;gap:8px}.text-action,.details-btn.text-action{
  border:0;
  background:transparent;
  color:#777f89;
  font-weight:760;
  padding:0 10px;
  height:42px;
  border-radius:999px;
}
.text-action:hover{background:#f4f4f1;color:#161817}.apply-btn{
  min-width:74px;
  height:44px;
  border-radius:999px;
  padding:0 18px;
  background:#151716;
  color:#fff;
  font-weight:780;
  box-shadow:0 10px 26px rgba(20,23,22,.10);
}
.apply-btn:hover{background:#050606}.apply-btn.locked-action{
  background:#ffffff;
  color:#151716;
  border:1px solid #dfdfd9;
  box-shadow:none;
}
.apply-btn.locked-action:hover{background:#f3f4f1;border-color:#cfd2ca}.empty-state{
  background:#fff;
  border:1px solid var(--line);
  box-shadow:var(--shadow-card);
}
.modal{padding:18px}.modal-backdrop{background:rgba(16,18,17,.34);backdrop-filter:blur(10px)}.modal-card{
  border-radius:28px;
  border:1px solid rgba(255,255,255,.72);
  box-shadow:0 34px 90px rgba(16,18,17,.18);
}.modal-card h2{font-size:30px;line-height:1.05;letter-spacing:-.055em}.modal-card h3{font-size:17px}.close-btn{background:#f4f4f1;color:#252927}.pro-modal-minimal{
  width:min(680px,calc(100vw - 28px));
  max-height:calc(100vh - 28px);
  overflow:auto;
  padding:28px;
}
.pro-minimal-header.sales-header{
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:flex-start;
  margin-bottom:18px;
  padding-right:38px;
}
.pro-minimal-header h2{margin:0;font-size:34px;letter-spacing:-.06em;max-width:420px}.pro-minimal-price{
  flex:0 0 auto;
  min-width:96px;
  padding:13px 14px;
  border:1px solid var(--line);
  border-radius:22px;
  background:#fafaf8;
  text-align:center;
}.pro-minimal-price strong{display:block;font-size:28px;letter-spacing:-.06em}.pro-minimal-price span{display:block;color:#7e8791;font-size:12px}.pro-minimal-groups.sales-groups{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin:16px 0;
}.pro-minimal-groups article{
  border:1px solid var(--line);
  border-radius:20px;
  padding:15px;
  background:#fff;
}.pro-minimal-groups h3{font-size:15px;margin:0 0 7px;letter-spacing:-.03em}.pro-minimal-groups p{font-size:13px;line-height:1.45;color:#707983;margin:0}.pro-minimal-form{
  margin-top:14px;
  padding:16px;
  border-radius:22px;
  background:#f7f7f4;
  border:1px solid var(--line);
}.pro-form-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-end;margin-bottom:12px}.pro-form-heading strong{font-size:15px}.pro-form-heading span{font-size:12px;color:#7e8791;text-align:right;max-width:250px}.compact-form-grid input{height:44px;border-radius:16px;margin-bottom:8px}.pro-minimal-submit{
  height:48px;
  border:0;
  border-radius:999px;
  background:#121514;
  color:#fff;
  font-weight:820;
  letter-spacing:-.02em;
}.pro-minimal-submit:hover{background:var(--accent-dark)}
.details-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.details-grid div{background:#f7f7f4;border:1px solid var(--line);border-radius:16px;padding:12px}.details-grid span{display:block;color:#7d8580;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:750}.details-grid strong{display:block;margin-top:5px;font-size:14px;line-height:1.35}.pro-panel{border-radius:22px;border:1px solid var(--line);background:#fff;margin-top:18px;padding:18px}.unlocked-panel h3{margin-top:16px}.email-preview{border:1px solid var(--line);border-radius:16px;padding:14px;background:#f7f7f4}.email-preview strong,.email-preview span{display:block}.email-preview span{color:#7e8791;margin-top:5px;font-size:13px}.locked-panel{border:1px solid var(--line);border-radius:20px;background:#fafaf8;padding:16px}.locked-panel h3{margin:0 0 8px}.locked-list{margin:12px 0;padding-left:18px;color:#656e77}.locked-list li{margin:5px 0}.locked-panel .pro-btn,.pro-btn{border:0;border-radius:999px;background:#121514;color:#fff;font-weight:780;padding:12px 16px}.admin-layout .form-card,.admin-layout .list-card,.form-card,.list-card{box-shadow:none;border-color:var(--line)}
@media(max-width:980px){
  .cards-grid{grid-template-columns:repeat(auto-fill,minmax(285px,1fr))}
  .pro-minimal-groups.sales-groups{grid-template-columns:1fr}
  .pro-form-heading{display:block}.pro-form-heading span{text-align:left;display:block;margin-top:4px;max-width:none}
}
@media(max-width:720px){
  .page{display:block;padding:12px}.shell{padding:0 0 92px;margin:0}.top-nav{padding:10px 0 12px;align-items:flex-start}.top-actions{gap:6px}.wordmark{font-size:17px}#authStateLabel{display:none}.ghost-btn,.dark-btn,#subscribeTopBtn{height:39px;min-height:39px;padding:0 12px;font-size:13px}.search-box{height:52px;border-radius:20px}.filters{margin-top:12px}.filters select{height:44px;min-width:158px}.cards-grid{grid-template-columns:1fr;gap:12px}.tender-card,.tender-card.refined{border-radius:24px;padding:20px;min-height:230px}.card-title,.tender-card h3{font-size:21px}.modal{padding:10px}.modal-card,.pro-modal-minimal{border-radius:24px;padding:22px;max-height:calc(100vh - 20px)}.pro-minimal-header.sales-header{display:block;padding-right:34px}.pro-minimal-price{display:inline-block;margin-top:14px}.two-col,.details-grid{grid-template-columns:1fr}.sidebar{left:12px;right:12px;bottom:12px;height:60px;border-radius:22px;padding:8px;gap:6px}.brand,.side-btn{width:38px;height:38px}.side-btn{font-size:15px}.side-btn[title="Admin"]{display:none}}

/* =========================================================
   PREMIUM REFINEMENT V2 — Instagram / modern dashboard calm
   Final override layer. Preserves all existing IDs + JS hooks.
   ========================================================= */
:root{
  --bg:#eeeeeb;
  --paper:#fbfbf8;
  --paper-solid:#ffffff;
  --ink:#161616;
  --ink-soft:#2f302e;
  --muted:#7b8088;
  --muted-2:#9a9fa6;
  --line:#e2e1dc;
  --line-soft:#ebeae5;
  --soft:#f4f3ef;
  --soft-2:#ebe8e1;
  --accent:#6f6a62;
  --accent-dark:#3d3934;
  --accent-soft:#efede7;
  --warm:#f8efe5;
  --warm-ink:#8a4b23;
  --shadow:0 30px 90px rgba(24,24,20,.08);
  --shadow-card:0 18px 45px rgba(24,24,20,.07);
}
html,body{background:var(--bg)!important;color:var(--ink)!important}
body:before{
  background:
    radial-gradient(circle at 15% -10%,rgba(255,255,255,.8),transparent 36%),
    radial-gradient(circle at 95% 5%,rgba(120,116,105,.10),transparent 28%)!important;
}

/* Page shell */
.page{grid-template-columns:72px minmax(0,1fr)!important;gap:20px!important;padding:24px!important}
.shell{background:transparent!important;border:0!important;box-shadow:none!important;padding:0 10px 42px!important}
.sidebar{
  background:rgba(255,255,255,.78)!important;
  border:1px solid rgba(226,225,220,.85)!important;
  box-shadow:0 18px 55px rgba(24,24,20,.06)!important;
  border-radius:28px!important;
}
.brand{background:#22211f!important;color:#fff!important;box-shadow:none!important}
.side-btn{color:#8d918f!important;background:transparent!important}
.side-btn:hover,.side-btn.active{background:#efeee8!important;color:#22211f!important}
.pro-side-btn{background:#efeee8!important;color:#22211f!important;border-color:#e2e1dc!important;font-weight:800!important}

/* Header */
.top-nav{
  background:linear-gradient(180deg,rgba(238,238,235,.97),rgba(238,238,235,.82) 70%,rgba(238,238,235,0))!important;
  padding:14px 0 18px!important;
}
.wordmark{font-weight:820!important;color:#141414!important;letter-spacing:-.045em!important}
#authStateLabel{color:#8b9098!important;font-size:14px!important}
.ghost-btn,.dark-btn,.text-btn,#subscribeTopBtn,.top-pro-pill{
  border-radius:999px!important;
  min-height:40px!important;
  padding:0 15px!important;
  font-size:13.5px!important;
  font-weight:720!important;
  box-shadow:none!important;
}
.ghost-btn{background:#f7f7f4!important;border:1px solid #dfded9!important;color:#2f302e!important}
.dark-btn{background:#2f2d2a!important;border:1px solid #2f2d2a!important;color:#fff!important}
#subscribeTopBtn,
#subscribeTopBtn.top-pro-pill,
#subscribeTopBtn.pro-nav-upgrade-btn{
  background:#f0eee8!important;
  color:#302d29!important;
  border:1px solid #ddd8ce!important;
  font-weight:800!important;
  letter-spacing:-.015em!important;
}
#subscribeTopBtn:hover{background:#e7e2d8!important;border-color:#cfc7bb!important;color:#211f1c!important}

/* Search + filters */
.search-box{
  height:56px!important;
  border-radius:22px!important;
  background:rgba(255,255,255,.82)!important;
  border:1px solid var(--line)!important;
  box-shadow:0 14px 42px rgba(24,24,20,.045)!important;
}
.search-box input{font-size:14.5px!important;color:#222!important}
.search-box span{color:#9a9a93!important}
.filters{gap:10px!important;margin:12px 0 22px!important;padding-bottom:2px!important}
.filters select{
  height:44px!important;
  min-width:155px!important;
  border-radius:999px!important;
  border:1px solid #deddd7!important;
  background:#fdfdfb!important;
  color:#393b39!important;
  font-size:13.5px!important;
  padding-left:16px!important;
}
.checkline{height:44px!important;font-size:13.5px!important;color:#7b8088!important}
.checkline input{accent-color:#6f6a62!important}

/* Premium opportunity cards */
.cards-grid{
  grid-template-columns:repeat(auto-fill,minmax(320px,1fr))!important;
  gap:18px!important;
  align-items:stretch!important;
}
.tender-card,
.tender-card.refined{
  min-height:286px!important;
  height:auto!important;
  padding:24px!important;
  border-radius:28px!important;
  background:rgba(255,255,255,.82)!important;
  border:1px solid rgba(226,225,220,.95)!important;
  box-shadow:none!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  overflow:hidden!important;
}
.tender-card:hover{
  transform:translateY(-2px)!important;
  box-shadow:0 20px 55px rgba(24,24,20,.075)!important;
  border-color:#d9d7cf!important;
}
.tender-card:after{display:none!important}
.card-top{display:flex!important;align-items:center!important;justify-content:space-between!important;margin-bottom:22px!important}
.tag,.badge{
  border-radius:999px!important;
  padding:7px 12px!important;
  font-size:11px!important;
  font-weight:760!important;
  letter-spacing:-.005em!important;
  border:1px solid transparent!important;
}
.tag{background:#eef1ed!important;color:#555f56!important;border-color:#e2e8df!important}
.badge{background:#f0f0ec!important;color:#676d67!important;border-color:#e6e6df!important}
.badge.open,.badge.match{background:#eef1ed!important;color:#555f56!important;border-color:#dfe7dd!important}
.badge.closed,.badge.danger{background:#f5eeee!important;color:#8b4b46!important;border-color:#eadada!important}
.badge.awarded{background:#f5efe2!important;color:#7c5a26!important;border-color:#eadfc8!important}
.card-body{display:flex!important;flex-direction:column!important;flex:1 1 auto!important;gap:0!important;padding:0!important;min-height:0!important}
.card-kicker{
  margin:0 0 12px!important;
  font-size:10.5px!important;
  line-height:1.2!important;
  letter-spacing:.16em!important;
  text-transform:uppercase!important;
  font-weight:780!important;
  color:#8a9098!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.card-title,
.tender-card h3{
  margin:0 0 12px!important;
  font-size:18.5px!important;
  line-height:1.24!important;
  letter-spacing:-.035em!important;
  font-weight:720!important;
  color:#161616!important;
  min-height:0!important;
  max-height:calc(1.24em * 4)!important;
  display:-webkit-box!important;
  -webkit-line-clamp:4!important;
  -webkit-box-orient:vertical!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  overflow-wrap:anywhere!important;
}
.card-meta,.issuer-line{
  color:#858b93!important;
  font-size:13.2px!important;
  line-height:1.45!important;
  min-height:0!important;
  margin:0!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.card-info-row{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px!important;
  margin-top:auto!important;
  padding-top:20px!important;
}
.info-chip{
  min-height:30px!important;
  padding:0 11px!important;
  border-radius:999px!important;
  font-size:12px!important;
  font-weight:720!important;
  letter-spacing:-.01em!important;
  border:1px solid transparent!important;
}
.info-chip.closing{background:#f7efe7!important;color:#8a4b23!important;border-color:#f0e2d3!important}
.info-chip.value{background:#f2f2ef!important;color:#737b86!important;border-color:#ecece7!important}
.info-chip.value.disclosed{background:#efede7!important;color:#5a544b!important;border-color:#e3ded4!important}
.card-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  margin-top:22px!important;
}
.round-btn{
  width:42px!important;height:42px!important;
  border-radius:999px!important;
  background:#f2f2ef!important;
  color:#262724!important;
  border:1px solid transparent!important;
  font-size:16px!important;
}
.round-btn:hover{background:#fff!important;border-color:#deddd7!important}
.round-btn.active{background:#e7e2d8!important;color:#302d29!important;border-color:#d7cfc3!important}
.action-group{display:flex!important;align-items:center!important;gap:8px!important;margin-left:auto!important}
.details-btn.text-action,.text-action{
  height:40px!important;
  padding:0 13px!important;
  border-radius:999px!important;
  background:#f7f7f4!important;
  color:#6d737b!important;
  font-size:13px!important;
  font-weight:720!important;
}
.details-btn.text-action:hover,.text-action:hover{background:#ecebe5!important;color:#242522!important}
.apply-btn{
  height:42px!important;
  min-width:76px!important;
  border-radius:999px!important;
  padding:0 16px!important;
  background:#3a3732!important;
  color:#fff!important;
  border:1px solid #3a3732!important;
  font-size:13.5px!important;
  font-weight:760!important;
  box-shadow:none!important;
}
.apply-btn:hover{background:#262420!important;border-color:#262420!important}
.apply-btn.locked-action{
  background:#e8e3da!important;
  color:#2f2d29!important;
  border-color:#ddd5c9!important;
}
.apply-btn.locked-action:hover{background:#ded7ca!important;border-color:#cfc5b8!important}

/* Modals */
.modal-backdrop{background:rgba(18,18,16,.32)!important;backdrop-filter:blur(12px)!important}
.modal-card{
  background:#fff!important;
  border:1px solid rgba(226,225,220,.98)!important;
  box-shadow:0 34px 100px rgba(24,24,20,.18)!important;
  border-radius:28px!important;
}
.close-btn{background:#f1f0ec!important;color:#3a3a36!important}
.modal-card h2{font-weight:760!important;color:#171717!important}

/* Subscription modal: persuasive, not tacky */
.pro-modal-minimal{
  width:min(700px,calc(100vw - 28px))!important;
  max-height:calc(100vh - 28px)!important;
  overflow:auto!important;
  padding:26px!important;
  border-radius:30px!important;
  background:#fff!important;
}
.pro-minimal-header.sales-header{
  display:flex!important;
  justify-content:space-between!important;
  align-items:flex-start!important;
  gap:20px!important;
  padding:0 42px 18px 0!important;
  margin:0!important;
  border-bottom:1px solid #ededeb!important;
}
.pro-minimal-header h2{
  font-size:34px!important;
  line-height:1.02!important;
  letter-spacing:-.055em!important;
  max-width:440px!important;
}
.pro-minimal-price{
  background:#f2f0ea!important;
  border:1px solid #e4ded2!important;
  color:#25231f!important;
  border-radius:20px!important;
  min-width:96px!important;
  padding:12px 14px!important;
}
.pro-minimal-price strong{font-size:28px!important;color:#25231f!important}
.pro-minimal-price span{color:#777067!important}
.pro-minimal-groups.sales-groups{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
  padding:18px 0 2px!important;
  margin:0!important;
}
.pro-minimal-groups.sales-groups article{
  background:#fbfbf8!important;
  border:1px solid #e6e5df!important;
  border-radius:20px!important;
  padding:15px!important;
}
.pro-minimal-groups h3{font-size:15px!important;color:#171717!important;font-weight:760!important}
.pro-minimal-groups p{font-size:12.8px!important;line-height:1.45!important;color:#747b82!important}
.pro-minimal-form{
  margin:18px 0 0!important;
  padding:16px!important;
  background:#f6f5f1!important;
  border:1px solid #e5e3db!important;
  border-radius:22px!important;
}
.pro-minimal-form input{background:#fff!important;border:1px solid #dfded8!important;height:43px!important;border-radius:14px!important;font-size:13.5px!important}
.pro-minimal-submit{
  background:#3a3732!important;
  color:#fff!important;
  border:1px solid #3a3732!important;
  height:48px!important;
  border-radius:999px!important;
  font-size:14px!important;
  box-shadow:none!important;
}
.pro-minimal-submit:hover{background:#262420!important;border-color:#262420!important}

/* Desktop inspired by attached dashboard reference: calm greys and smaller visual noise */
.empty-state{border-radius:26px!important;background:#fff!important;border-color:#e2e1dc!important;box-shadow:none!important}
.status-card,.pro-status-card{border-radius:20px!important;background:#f7f7f4!important;border:1px solid #e5e4df!important}

@media(max-width:1100px){
  .cards-grid{grid-template-columns:repeat(auto-fill,minmax(285px,1fr))!important}
  .card-title,.tender-card h3{font-size:18px!important}
}
@media(max-width:760px){
  .page{display:block!important;padding:12px!important}
  .shell{padding:0 0 88px!important}
  .cards-grid{grid-template-columns:1fr!important;gap:12px!important}
  .tender-card,.tender-card.refined{min-height:260px!important;padding:20px!important;border-radius:24px!important}
  .card-title,.tender-card h3{font-size:18px!important;line-height:1.25!important;-webkit-line-clamp:4!important;max-height:calc(1.25em * 4)!important}
  .filters select{min-width:148px!important;height:42px!important;font-size:13px!important}
  .top-actions{gap:6px!important}.ghost-btn,.dark-btn,#subscribeTopBtn{height:38px!important;min-height:38px!important;padding:0 11px!important;font-size:12.8px!important}
  .pro-modal-minimal{padding:20px!important;border-radius:24px!important;max-height:calc(100vh - 18px)!important}
  .pro-minimal-header.sales-header{display:block!important;padding-right:38px!important}
  .pro-minimal-header h2{font-size:28px!important}.pro-minimal-price{display:inline-block!important;margin-top:12px!important;text-align:left!important}
  .pro-minimal-groups.sales-groups{grid-template-columns:1fr!important;gap:8px!important;padding-top:14px!important}
  .two-col,.two-col.compact-form-grid{grid-template-columns:1fr!important}
}

/* =========================================================
   Minor polish requested: white dashboard + green Apply CTA
   ========================================================= */
:root{
  --bg:#ffffff!important;
}
html,body{
  background:#ffffff!important;
}
body:before{
  background:none!important;
}
.top-nav{
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(255,255,255,.9) 72%,rgba(255,255,255,0))!important;
}
.shell{
  background:#ffffff!important;
}
.sidebar{
  background:rgba(255,255,255,.94)!important;
}
.tender-card,
.tender-card.refined,
.search-box,
.filters select,
.modal-card{
  background:#ffffff!important;
}
.apply-btn:not(.locked-action){
  background:#087a5b!important;
  border-color:#087a5b!important;
  color:#ffffff!important;
}
.apply-btn:not(.locked-action):hover{
  background:#066849!important;
  border-color:#066849!important;
  color:#ffffff!important;
  box-shadow:0 12px 28px rgba(8,122,91,.18)!important;
}


/* =========================================================
   Final requested polish: green Open badge + black Apply CTA
   Keeps the premium white dashboard styling intact.
   ========================================================= */
.badge.open{
  background:#e7f7ee!important;
  color:#047857!important;
  border:1px solid #c7ead8!important;
}

.apply-btn,
#detailApplyBtn,
button.apply-btn{
  background:#111111!important;
  color:#ffffff!important;
  border:1px solid #111111!important;
  box-shadow:0 10px 24px rgba(17,17,17,.12)!important;
}

.apply-btn:hover,
#detailApplyBtn:hover,
button.apply-btn:hover{
  background:#000000!important;
  color:#ffffff!important;
  border-color:#000000!important;
  transform:translateY(-1px);
  box-shadow:0 14px 32px rgba(17,17,17,.16)!important;
}

/* =========================================================
   Shareable tender detail page
   ========================================================= */
.detail-shell{
  max-width:1100px!important;
}
.tender-detail-page .shell{
  padding-bottom:56px!important;
}
.tender-hero-card{
  margin-top:26px;
  background:#ffffff;
  border:1px solid rgba(17,17,17,.08);
  border-radius:32px;
  padding:32px;
  box-shadow:0 28px 80px rgba(17,17,17,.08);
}
.breadcrumb{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:24px;
  font-size:13px;
  color:var(--muted,#6b7280);
}
.breadcrumb a{
  color:#111111;
  text-decoration:none;
  font-weight:700;
}
.detail-header-row{
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:flex-start;
}
.detail-header-row h1{
  margin:12px 0 10px;
  max-width:820px;
  font-size:clamp(30px,4vw,54px);
  line-height:1.02;
  letter-spacing:-.05em;
}
.detail-issuer{
  font-size:16px;
}
.detail-summary-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:24px 0 30px;
}
.detail-summary-grid div{
  border:1px solid rgba(17,17,17,.08);
  border-radius:20px;
  padding:16px;
  background:#fafafa;
}
.detail-summary-grid span{
  display:block;
  margin-bottom:7px;
  font-size:12px;
  color:#6b7280;
}
.detail-summary-grid strong{
  font-size:14px;
  color:#111111;
}
.content-block{
  margin-top:26px;
  padding-top:22px;
  border-top:1px solid rgba(17,17,17,.08);
}
.content-block h2{
  margin:0 0 10px;
  font-size:19px;
  letter-spacing:-.02em;
}
.content-block p{
  margin:0;
  color:#374151;
  line-height:1.7;
  white-space:pre-wrap;
}
.detail-actions-bar{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  margin-top:26px;
  padding-top:22px;
  border-top:1px solid rgba(17,17,17,.08);
}
.detail-actions-bar .ghost-btn,
.detail-actions-bar .apply-btn,
.inline-link-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}
.tender-loading{
  margin-top:40px;
}
.copy-link-btn{
  white-space:nowrap;
}
.action-group{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  justify-content:flex-end;
}
.action-group .details-btn,
.action-group .copy-link-btn{
  text-decoration:none;
}
@media (max-width:860px){
  .tender-hero-card{padding:22px;border-radius:26px;margin-top:18px}
  .detail-header-row{display:block}
  .detail-header-row h1{font-size:32px}
  .detail-summary-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .detail-summary-grid{grid-template-columns:1fr}
  .detail-actions-bar{display:grid;grid-template-columns:1fr}
  .detail-actions-bar .ghost-btn,.detail-actions-bar .apply-btn{width:100%}
}

/* =========================================================
   Public cards: cleaner View button + no public copy button
   ========================================================= */
.tender-card .action-group{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  flex-wrap:nowrap!important;
  justify-content:flex-end!important;
}

.tender-card .details-btn.text-action{
  height:44px!important;
  min-width:84px!important;
  padding:0 18px!important;
  border-radius:999px!important;
  background:#ffffff!important;
  color:#111111!important;
  border:1px solid #e5e0d6!important;
  box-shadow:0 8px 20px rgba(17,17,17,.04)!important;
  font-size:14px!important;
  font-weight:780!important;
  letter-spacing:-.015em!important;
  text-decoration:none!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}

.tender-card .details-btn.text-action:hover{
  background:#f7f4ef!important;
  border-color:#d8d0c2!important;
  color:#111111!important;
  transform:translateY(-1px)!important;
  box-shadow:0 12px 26px rgba(17,17,17,.07)!important;
}

.tender-card .apply-btn{
  height:44px!important;
  min-width:84px!important;
  padding:0 18px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}

.tender-card .copy-link-btn{
  display:none!important;
}

.admin-actions .copy-link.copied{
  background:#e7f7ee!important;
  color:#047857!important;
  border-color:#c7ead8!important;
}

@media(max-width:520px){
  .tender-card .action-group{
    gap:8px!important;
  }
  .tender-card .details-btn.text-action,
  .tender-card .apply-btn{
    min-width:78px!important;
    padding:0 15px!important;
  }
}

/* =========================================================
   Admin copy-link visibility fix
   ========================================================= */
.admin-actions .admin-copy-link{
  background:#111111!important;
  color:#ffffff!important;
  border:1px solid #111111!important;
  box-shadow:0 10px 22px rgba(17,17,17,.10)!important;
}
.admin-actions .admin-copy-link:hover{
  background:#000000!important;
  border-color:#000000!important;
  transform:translateY(-1px);
}
.admin-actions .admin-copy-link:disabled{
  background:#f4f1eb!important;
  color:#9a948a!important;
  border:1px solid #e5e0d6!important;
  box-shadow:none!important;
  cursor:not-allowed!important;
}
.admin-actions .admin-copy-link.copied{
  background:#e7f7ee!important;
  color:#047857!important;
  border-color:#c7ead8!important;
}

/* =========================================================
   Crawler quality scoring badges
   ========================================================= */
.score-pill{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  border-radius:999px;
  padding:5px 9px;
  margin-right:6px;
  font-size:11px;
  font-weight:850;
  border:1px solid #e5e0d6;
  background:#f4f1eb;
  color:#61584d;
}
.score-simple{
  background:#e7f7ee!important;
  color:#047857!important;
  border-color:#c7ead8!important;
}
.score-medium{
  background:#fff7ed!important;
  color:#9a3412!important;
  border-color:#fed7aa!important;
}
.score-complex{
  background:#f1f5f9!important;
  color:#64748b!important;
  border-color:#e2e8f0!important;
}

/* =========================================================
   Email application workspace update
   ========================================================= */
.route-editor-block{
  margin:14px 0;
  padding:16px;
  border:1px solid #ece6dc;
  border-radius:22px;
  background:#fffdf9;
  display:grid;
  gap:10px;
}
.compact-route-editor{padding:14px;margin:12px 0}
.application-workspace{display:grid;gap:22px}
.application-hero{margin-bottom:8px}
.breadcrumb-row{display:flex;gap:8px;align-items:center;color:#8b8378;font-size:13px;margin:12px 0 4px}
.breadcrumb-row a{color:#111;text-decoration:none;font-weight:700}
.workspace-actions-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px}
.application-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}
.application-card{background:#fff;border:1px solid #eee8df;border-radius:28px;padding:24px;box-shadow:0 24px 70px rgba(17,17,17,.06)}
.application-card h2{margin:4px 0 8px;font-size:22px;letter-spacing:-.03em}
.route-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}
.route-detail-grid div{background:#faf8f4;border:1px solid #eee8df;border-radius:18px;padding:14px}
.route-detail-grid span{display:block;color:#8b8378;font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}
.route-detail-grid strong{font-size:14px;word-break:break-word;color:#111}
.copy-row{display:flex;gap:10px;flex-wrap:wrap}
.document-checklist{display:grid;gap:10px;margin-top:16px}
.document-checkline{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;background:#fbfaf7;border:1px solid #eee8df;border-radius:16px;font-weight:700;color:#201d18}
.document-checkline input{margin-top:3px;accent-color:#111}
.field-label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#8b8378;font-weight:800;margin:16px 0 8px}
.email-draft-card textarea{min-height:260px;font-family:inherit;line-height:1.45}
.instruction-note{background:#f8f4ed;border:1px solid #ece4d6;border-radius:18px;padding:14px 16px;margin:14px 0;color:#40382f}
.instruction-note strong{display:block;margin-bottom:4px;color:#111}
.instruction-note p{margin:0;color:#6d6258}
.inline-link-btn{display:inline-flex;text-decoration:none;align-items:center;justify-content:center;margin-top:12px}
.stacked-form{display:grid;gap:12px}
@media (max-width: 860px){
  .application-grid{grid-template-columns:1fr}
  .route-detail-grid{grid-template-columns:1fr}
  .application-card{padding:18px;border-radius:22px}
}

/* Email extraction review helper */
.email-candidate-box{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:14px 16px;
  border:1px solid #e5e0d6;
  border-radius:18px;
  background:#fffdf8;
  margin:10px 0 14px;
}
.email-candidate-box strong{
  display:block;
  color:#111;
  font-size:.95rem;
  margin-bottom:4px;
  overflow-wrap:anywhere;
}
.email-candidate-box .ghost-btn{
  flex:0 0 auto;
  white-space:nowrap;
}
@media (max-width: 720px){
  .email-candidate-box{flex-direction:column;}
  .email-candidate-box .ghost-btn{width:100%;}
}

/* Hide public admin entry points. Admin remains available by direct URL: /admin.html */
body:not(.admin-body) .side-btn[title="Admin"],
body:not(.admin-body) a[href="admin.html"][title="Admin"]{
  display:none!important;
}

/* =========================================================
   Admin subscriber status switch
   ========================================================= */
.subscriber-status-tool{
  border:1px solid rgba(17,17,17,.08);
}

.subscriber-status-grid{
  display:grid;
  grid-template-columns:minmax(260px, 1fr) auto;
  gap:16px;
  align-items:end;
}

.field-label{
  display:flex;
  flex-direction:column;
  gap:8px;
  color:#6f6a60;
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.02em;
}

.wide-email-field textarea,
#adminEmailInput{
  width:100%;
  min-height:54px;
  font-size:1rem;
  line-height:1.45;
}

.wide-email-field textarea{
  resize:vertical;
  min-height:78px;
  max-height:220px;
}

.subscriber-status-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-end;
}

.status-result{
  margin-top:14px;
  padding:14px 16px;
  background:#fbfaf7;
  border:1px solid #ebe5db;
  border-radius:18px;
}

.status-result strong{
  color:#111;
}

.status-result .status-pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 10px;
  border-radius:999px;
  background:#f1eee8;
  color:#111;
  font-weight:800;
  margin-left:6px;
}

@media (max-width: 820px){
  .subscriber-status-grid{
    grid-template-columns:1fr;
  }
  .subscriber-status-actions{
    justify-content:flex-start;
  }
}

/* =========================================================
   Phase 1 Notification Engine
   ========================================================= */
.notification-engine-card{
  border:1px solid rgba(17,17,17,.08);
}
.notification-stats{
  margin-bottom:18px;
}
.notification-composer{
  border:1px solid var(--line);
  border-radius:22px;
  background:linear-gradient(180deg,#fff,#fbfaf7);
  padding:16px;
  margin-bottom:18px;
  display:grid;
  gap:12px;
}
.notification-composer-grid{
  display:grid;
  grid-template-columns:140px repeat(3,1fr);
  gap:10px;
}
.large-admin-textarea{
  width:100%;
  min-height:110px;
  resize:vertical;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  padding:14px 16px;
  font:inherit;
  line-height:1.45;
  color:var(--ink);
}
.notification-filters{
  grid-template-columns:1fr 170px 160px;
  margin-top:8px;
}
.notification-item{
  align-items:stretch;
}
.notification-copy{
  flex:1;
  min-width:0;
}
.notification-message-preview{
  min-height:92px;
  margin-top:10px;
  color:#3f3b34;
  background:#fffefa;
}
.notification-actions{
  min-width:190px;
  align-content:flex-start;
}
.notification-sent{
  border-color:#c7ead8!important;
  background:#f8fffb!important;
}
.notification-failed{
  border-color:#fed7aa!important;
  background:#fff7ed!important;
}
.notification-cancelled{
  opacity:.75;
}
.compact-empty{
  padding:22px!important;
}
.notification-preferences-row{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:10px;
  margin:10px 0 14px;
}
@media (max-width: 920px){
  .notification-composer-grid,
  .notification-filters{
    grid-template-columns:1fr;
  }
  .notification-actions{
    min-width:0;
    justify-content:flex-start;
  }
}


/* Automation notification polish */
.inline-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.notification-actions .send-now{min-width:96px}
.notification-sent .send-now{opacity:.65}
.notification-engine-card .section-heading .admin-actions{justify-content:flex-end}

/* Tenderhive SEO experience */
.seo-home-hero {
  margin-top: 22px;
  padding-bottom: 30px;
}
.seo-home-hero h1 {
  max-width: 920px;
}
.seo-home-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}
.seo-home-directory {
  margin: 28px 0 42px;
  padding: 26px;
  border: 1px solid var(--line, #e5e5e5);
  border-radius: 22px;
  background: #fff;
}
.seo-home-directory h2 {
  margin: 2px 0 0;
  letter-spacing: -0.035em;
}
.seo-home-link-groups {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-top: 22px;
}
.seo-home-link-groups h3 {
  margin: 0 0 10px;
  font-size: 14px;
}
.seo-home-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.seo-home-chips a {
  display: inline-flex;
  align-items: center;
  min-height: 35px;
  padding: 0 12px;
  border: 1px solid #e5e5df;
  border-radius: 999px;
  color: #5f605b;
  text-decoration: none;
  font-size: 13px;
  font-weight: 650;
}
.seo-home-chips a:hover {
  border-color: #111;
  color: #111;
}
.detail-seo-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 18px;
  padding: 16px 0 2px;
  border-top: 1px solid #e5e5df;
  color: #686964;
  font-size: 13px;
}
.detail-seo-links span {
  font-weight: 750;
  color: #111;
}
.detail-seo-links a {
  padding: 7px 10px;
  border-radius: 999px;
  background: #f4f4f1;
  color: #52534f;
  text-decoration: none;
}
.detail-seo-links a:hover {
  color: #111;
  background: #e9e9e4;
}
.seo-admin-panel {
  border-color: #dfe4c8;
  background: linear-gradient(180deg, #fff 0%, #fbfcf4 100%);
}
.seo-workflow-card {
  margin-top: 18px;
}
.seo-workflow-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.seo-workflow-grid article {
  display: flex;
  gap: 12px;
  min-width: 0;
  padding: 18px;
  border: 1px solid #e4e7d8;
  border-radius: 16px;
  background: #fff;
}
.seo-workflow-grid article > span {
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #111;
  color: #fff;
  font-size: 12px;
  font-weight: 800;
}
.seo-workflow-grid h3 {
  margin: 2px 0 6px;
  font-size: 15px;
}
.seo-workflow-grid p {
  margin: 0;
  color: #6b6c67;
  font-size: 12px;
  line-height: 1.5;
}
.error-text {
  color: #a1261f !important;
}

@media (max-width: 980px) {
  .seo-workflow-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .seo-home-link-groups { grid-template-columns: 1fr; }
  .seo-workflow-grid { grid-template-columns: 1fr; }
  .seo-home-directory { padding: 20px; }
}

/* Official tender-document links */
.official-document-links{
  display:grid;
  gap:10px;
  margin:14px 0 4px;
}
.official-document-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-width:0;
  padding:14px 16px;
  border:1px solid var(--line,#e8e5de);
  border-radius:18px;
  background:linear-gradient(180deg,#fff,#faf9f5);
  color:var(--ink,#111);
  text-decoration:none;
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.official-document-link:hover{
  transform:translateY(-1px);
  border-color:#c9c6bd;
  box-shadow:0 12px 28px rgba(17,17,17,.06);
}
.official-document-link span{
  display:grid;
  gap:3px;
  min-width:0;
}
.official-document-link small{
  color:var(--muted,#777);
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.official-document-link strong{
  overflow-wrap:anywhere;
  font-size:14px;
  line-height:1.35;
}
.official-document-link b{
  flex:0 0 auto;
  color:#426b12;
  font-size:13px;
}
.document-link-empty{
  display:grid;
  gap:4px;
  margin:12px 0 4px;
  padding:14px 16px;
  border:1px dashed #d8d4ca;
  border-radius:18px;
  background:#faf9f6;
}
.document-link-empty strong{font-size:13px}
.document-link-empty span{color:var(--muted,#777);font-size:12px;line-height:1.45}
.workspace-divider{
  height:1px;
  margin:20px 0 16px;
  background:var(--line,#e8e5de);
}
.workspace-subheading{
  margin:0 0 4px;
  font-size:15px;
}
@media(max-width:680px){
  .official-document-link{align-items:flex-start;padding:13px 14px}
  .official-document-link b{padding-top:2px}
}
