/* Gateway Marketplace - member screens.
   Colours follow the site brand; every value is a token so the theme can
   override without touching this file. */
.gm-wrap{
  --gm-ink:#14304F; --gm-ink-2:#3D5876; --gm-ink-3:#6E8299;
  --gm-paper:#FFFFFF; --gm-soft:#F4F7FA; --gm-line:#DCE4EE;
  --gm-gold:#C8860D; --gm-gold-soft:#FBEFD6;
  --gm-ok:#1F6B4F; --gm-ok-soft:#E0F0E8;
  --gm-err:#A63D2E; --gm-err-soft:#F9E6E2;
  --gm-radius:10px;
  --gm-shadow:0 1px 2px rgba(20,48,79,.06),0 8px 24px -14px rgba(20,48,79,.18);
  color:var(--gm-ink); display:flex; flex-direction:column; gap:20px; font-family:inherit;
}
.gm-wrap *,.gm-wrap *::before,.gm-wrap *::after{box-sizing:border-box}

.gm-head{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;align-items:flex-start}
.gm-h2{margin:0 0 6px;font-size:1.5rem;line-height:1.2;color:var(--gm-ink)}
.gm-h3{margin:0;font-size:1.05rem;color:var(--gm-ink)}
.gm-h4{margin:0 0 8px;font-size:.8rem;text-transform:uppercase;letter-spacing:.07em;color:var(--gm-ink-3);font-weight:700}
.gm-sub{margin:0;color:var(--gm-ink-2);max-width:58ch;font-size:.95rem;line-height:1.55}
.gm-hint{margin:0;color:var(--gm-ink-3);font-size:.87rem;line-height:1.5}
.gm-opt,.gm-muted{color:var(--gm-ink-3);font-weight:400}

.gm-stats{display:flex;gap:10px;flex-wrap:wrap}
.gm-stat{background:var(--gm-soft);border:1px solid var(--gm-line);border-radius:var(--gm-radius);
  padding:12px 16px;min-width:112px;display:flex;flex-direction:column;gap:3px}
.gm-stat-cta{justify-content:center;background:transparent;border:0;padding:0;min-width:0}
.gm-n{font-size:1.5rem;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.gm-l{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--gm-ink-3);font-weight:600}

.gm-badge{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.04em;
  padding:4px 10px;border-radius:999px;text-transform:uppercase;width:fit-content}
.gm-v-verified{background:var(--gm-ok-soft);color:var(--gm-ok)}
.gm-v-pending{background:var(--gm-gold-soft);color:var(--gm-gold)}
.gm-v-unverified,.gm-v-expired{background:var(--gm-soft);color:var(--gm-ink-3)}
.gm-v-rejected{background:var(--gm-err-soft);color:var(--gm-err)}

.gm-card{background:var(--gm-paper);border:1px solid var(--gm-line);border-radius:var(--gm-radius);
  padding:22px;box-shadow:var(--gm-shadow);display:flex;flex-direction:column;gap:14px}
.gm-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}

.gm-msg{max-height:0;overflow:hidden;opacity:0;transition:max-height .2s,opacity .2s,padding .2s;
  border-radius:8px;font-size:.9rem;padding:0 14px}
.gm-msg.is-on{max-height:140px;opacity:1;padding:11px 14px}
.gm-msg-ok{background:var(--gm-ok-soft);color:var(--gm-ok)}
.gm-msg-error{background:var(--gm-err-soft);color:var(--gm-err)}

.gm-btn{display:inline-block;background:var(--gm-ink);color:#fff;border:1px solid var(--gm-ink);
  border-radius:8px;padding:11px 20px;font-size:.9rem;font-weight:600;cursor:pointer;
  text-decoration:none;transition:background .18s,border-color .18s,transform .18s}
.gm-btn:hover{background:var(--gm-gold);border-color:var(--gm-gold);color:#fff;transform:translateY(-1px)}
.gm-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}
.gm-btn-sm{padding:8px 15px;font-size:.84rem}
.gm-btn-ghost{background:transparent;color:var(--gm-ink);border-color:var(--gm-line)}
.gm-btn-ghost:hover{background:var(--gm-ink);border-color:var(--gm-ink);color:#fff}

.gm-group{display:flex;flex-direction:column;gap:8px}
.gm-chips{display:flex;flex-wrap:wrap;gap:7px}
.gm-chip{position:relative;display:inline-flex;align-items:center;cursor:pointer;
  border:1px solid var(--gm-line);border-radius:999px;padding:7px 14px;font-size:.85rem;
  background:var(--gm-paper);transition:all .16s;user-select:none;line-height:1.3}
.gm-chip:hover{border-color:var(--gm-gold);color:var(--gm-gold)}
.gm-chip input{position:absolute;opacity:0;width:0;height:0}
.gm-chip.is-on{background:var(--gm-ink);border-color:var(--gm-ink);color:#fff}
.gm-chip input:focus-visible + span{outline:2px solid var(--gm-gold);outline-offset:3px;border-radius:3px}
.gm-radio .gm-chip{padding:9px 16px}

.gm-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;align-items:end}
.gm-field{display:flex;flex-direction:column;gap:6px;position:relative;min-width:0}
.gm-field-wide{grid-column:1/-1}
.gm-field-action{justify-content:flex-end;flex-direction:row;gap:8px;align-items:flex-end}
.gm-field label{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--gm-ink-3)}
.gm-field input[type=text],.gm-field input[type=email],.gm-field input[type=number],
.gm-field input[type=date],.gm-field select{
  width:100%;height:46px;padding:0 12px;border:1px solid var(--gm-line);border-radius:8px;
  font-size:.92rem;background:var(--gm-paper);color:var(--gm-ink);line-height:normal;
  font-family:inherit;appearance:none}
.gm-field select{background-image:linear-gradient(45deg,transparent 50%,var(--gm-ink-3) 50%),
  linear-gradient(135deg,var(--gm-ink-3) 50%,transparent 50%);
  background-position:calc(100% - 17px) 20px,calc(100% - 12px) 20px;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:34px}
.gm-field input:focus,.gm-field select:focus{outline:none;border-color:var(--gm-gold);
  box-shadow:0 0 0 3px var(--gm-gold-soft)}
.gm-field select:disabled{opacity:.6;cursor:not-allowed}
.gm-wrap textarea{width:100%;padding:11px 12px;border:1px solid var(--gm-line);border-radius:8px;
  font-size:.92rem;font-family:inherit;background:var(--gm-paper);color:var(--gm-ink);resize:vertical}
.gm-wrap textarea:focus{outline:none;border-color:var(--gm-gold);box-shadow:0 0 0 3px var(--gm-gold-soft)}
.gm-wrap form{display:flex;flex-direction:column;gap:20px}
.gm-wrap code{background:var(--gm-soft);padding:1px 5px;border-radius:3px;font-size:.86em}

.gm-sug{position:absolute;top:100%;left:0;right:0;z-index:60;margin:4px 0 0;padding:0;
  list-style:none;background:var(--gm-paper);border:1px solid var(--gm-line);border-radius:8px;
  box-shadow:0 12px 32px -8px rgba(20,48,79,.28);max-height:280px;overflow-y:auto;display:none}
.gm-sug.is-open{display:block}
.gm-sug li{padding:9px 13px;cursor:pointer;display:flex;flex-direction:column;gap:1px;
  border-bottom:1px solid var(--gm-soft)}
.gm-sug li:last-child{border-bottom:0}
.gm-sug li:hover,.gm-sug li.is-active{background:var(--gm-soft)}
.gm-sug-name{font-size:.9rem;font-weight:600}
.gm-sug-meta{font-size:.76rem;color:var(--gm-ink-3);letter-spacing:.03em}

.gm-lanes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.gm-lane{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  background:var(--gm-soft);border:1px solid var(--gm-line);border-radius:8px;padding:11px 14px}
.gm-mode{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  padding:4px 9px;border-radius:5px;background:var(--gm-ink);color:#fff;flex-shrink:0}
.gm-mode-air{background:#2E6E8E}.gm-mode-road{background:#6B5B3F}
.gm-mode-rail{background:#4A5D6B}.gm-mode-multimodal{background:var(--gm-gold)}
.gm-route{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:.92rem;flex:1;min-width:0}
.gm-arrow{color:var(--gm-gold);font-weight:700}
.gm-dir{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--gm-ink-3);
  border:1px solid var(--gm-line);border-radius:4px;padding:2px 7px;background:var(--gm-paper)}
.gm-note{font-size:.83rem;color:var(--gm-ink-3);font-style:italic;flex-basis:100%}
.gm-x{background:none;border:0;color:var(--gm-ink-3);font-size:1.35rem;line-height:1;
  cursor:pointer;padding:0 4px;transition:color .16s;flex-shrink:0}
.gm-x:hover{color:var(--gm-err)}
.gm-empty{margin:0;color:var(--gm-ink-3);font-size:.92rem;padding:16px;background:var(--gm-soft);
  border-radius:8px;text-align:center}
.gm-guest{align-items:flex-start}

/* ---------------------------------------------- board */
.gm-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:14px;align-items:end}
.gm-rr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.gm-rr{display:flex;flex-direction:column;gap:9px;text-decoration:none;color:inherit;
  background:var(--gm-paper);border:1px solid var(--gm-line);border-radius:var(--gm-radius);
  padding:17px;box-shadow:var(--gm-shadow);transition:transform .18s,box-shadow .18s,border-color .18s}
.gm-rr:hover{transform:translateY(-2px);border-color:var(--gm-gold);
  box-shadow:0 4px 10px rgba(20,48,79,.08),0 16px 32px -18px rgba(20,48,79,.3)}
.gm-rr-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.gm-ref{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.74rem;
  color:var(--gm-ink-3);letter-spacing:.04em}
.gm-rr-status{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  padding:3px 8px;border-radius:999px;margin-left:auto;background:var(--gm-soft);color:var(--gm-ink-3)}
.gm-s-open{background:var(--gm-ok-soft);color:var(--gm-ok)}
.gm-s-responded,.gm-s-shortlisted{background:var(--gm-gold-soft);color:var(--gm-gold)}
.gm-s-awarded,.gm-s-accepted{background:var(--gm-ok-soft);color:var(--gm-ok)}
.gm-s-closed,.gm-s-expired,.gm-s-rejected{background:var(--gm-err-soft);color:var(--gm-err)}
.gm-rr-route{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.95rem;line-height:1.35}
.gm-rr-cargo{font-size:.89rem;color:var(--gm-ink-2)}
.gm-rr-meta{display:flex;flex-wrap:wrap;gap:6px}
.gm-rr-meta span{font-size:.72rem;background:var(--gm-soft);border:1px solid var(--gm-line);
  border-radius:4px;padding:2px 7px;color:var(--gm-ink-3);white-space:nowrap}
.gm-rr-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;
  border-top:1px solid var(--gm-line);padding-top:9px;margin-top:2px;font-size:.78rem;color:var(--gm-ink-3)}
.gm-quotes{font-weight:700}
.gm-quotes.has{color:var(--gm-gold)}
.gm-tag{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;
  padding:3px 8px;border-radius:4px}
.gm-tag-mine{background:var(--gm-ink);color:#fff}
.gm-tag-quoted{background:var(--gm-ok-soft);color:var(--gm-ok)}
.gm-tag-open{background:var(--gm-gold-soft);color:var(--gm-gold)}

.gm-pager{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.gm-page{display:inline-block;min-width:36px;text-align:center;padding:8px 11px;
  border:1px solid var(--gm-line);border-radius:7px;text-decoration:none;color:var(--gm-ink);
  font-size:.86rem;font-weight:600;background:var(--gm-paper)}
.gm-page:hover{border-color:var(--gm-gold);color:var(--gm-gold)}
.gm-page.is-on{background:var(--gm-ink);border-color:var(--gm-ink);color:#fff}

/* ---------------------------------------------- detail */
.gm-back{margin:0}
.gm-link{color:var(--gm-ink);text-decoration:none;font-weight:600;font-size:.86rem;
  border-bottom:1px solid var(--gm-line);transition:color .16s,border-color .16s}
.gm-link:hover{color:var(--gm-gold);border-color:var(--gm-gold)}
.gm-dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:0}
.gm-dt{display:flex;flex-direction:column;gap:2px;background:var(--gm-soft);
  border:1px solid var(--gm-line);border-radius:7px;padding:10px 13px}
.gm-dt dt{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--gm-ink-3);font-weight:700}
.gm-dt dd{margin:0;font-size:.92rem;font-weight:600}
.gm-notes p{margin:0;font-size:.92rem;color:var(--gm-ink-2);line-height:1.6}
.gm-actionbar{background:var(--gm-gold-soft);border:1px solid var(--gm-line);
  border-left:3px solid var(--gm-gold);border-radius:8px;padding:15px 18px;
  display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.gm-ab-what{margin:0;flex:1;min-width:240px;font-size:.93rem;color:var(--gm-ink)}
.gm-ab-vis{margin:0;flex-basis:100%;font-size:.8rem;color:var(--gm-ink-3)}

.gm-tw{overflow-x:auto}
.gm-table{width:100%;border-collapse:collapse;font-size:.89rem;min-width:560px}
.gm-table th{text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;
  color:var(--gm-ink-3);font-weight:700;padding:10px 12px;border-bottom:1px solid var(--gm-line);white-space:nowrap}
.gm-table td{padding:11px 12px;border-bottom:1px solid var(--gm-line);vertical-align:top}
.gm-table tr:last-child td{border-bottom:0}
.gm-num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.gm-mini{font-size:.75rem;color:var(--gm-ink-3);margin-top:2px}
.gm-actions{display:flex;gap:9px;flex-wrap:wrap;white-space:nowrap}
.gm-subrow td{background:var(--gm-soft);font-size:.83rem;color:var(--gm-ink-2)}
.gm-subrow td div{margin-bottom:3px}

/* ---------------------------------------------- my requests with quotes */
.gm-myreq{display:flex;flex-direction:column;gap:0;margin-bottom:16px}
.gm-myreq .gm-rr{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:0}
.gm-myreq .gm-rr:hover{transform:none}
.gm-myreq-q{background:var(--gm-soft);border:1px solid var(--gm-line);border-top:0;
  border-radius:0 0 var(--gm-radius) var(--gm-radius);padding:14px 17px;
  display:flex;flex-direction:column;gap:10px}
.gm-myreq-q .gm-table{background:var(--gm-paper);border-radius:7px}
.gm-noq{margin:0;font-style:italic}
.gm-myreq-cta{margin:0}

/* ---------------------------------------------- notifications */
.gm-unread{display:inline-block;background:var(--gm-gold);color:#fff;font-size:.7rem;
  font-weight:700;padding:2px 8px;border-radius:999px;vertical-align:middle;margin-left:6px}
.gm-notes-list,.gm-notes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.gm-note-row{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
  background:var(--gm-paper);border:1px solid var(--gm-line);border-radius:8px;padding:13px 16px}
.gm-note-row.is-unread{border-left:3px solid var(--gm-gold);background:var(--gm-gold-soft)}
.gm-note-main{display:flex;flex-direction:column;gap:2px;flex:1;min-width:220px;font-size:.9rem}
.gm-note-main span{color:var(--gm-ink-2);font-size:.85rem}
.gm-note-side{display:flex;align-items:center;gap:12px;font-size:.78rem;color:var(--gm-ink-3)}

/* ---------------------------------------------- messaging */
.gm-threads{display:flex;flex-direction:column;gap:10px}
.gm-thread{background:var(--gm-paper);border:1px solid var(--gm-line);border-radius:var(--gm-radius);padding:14px 17px}
.gm-thread.is-open{border-color:var(--gm-gold);box-shadow:var(--gm-shadow)}
.gm-thread-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.gm-msgs{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:9px}
.gm-msg-row{background:var(--gm-soft);border:1px solid var(--gm-line);border-radius:8px;padding:11px 14px;max-width:82%}
.gm-msg-row.is-mine{margin-left:auto;background:var(--gm-gold-soft);border-color:var(--gm-gold-soft)}
.gm-msg-who{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--gm-ink-3)}
.gm-msg-body{font-size:.92rem;margin:3px 0}
.gm-msg-meta{font-size:.72rem;color:var(--gm-ink-3);display:flex;gap:9px;align-items:center}
.gm-masked{background:var(--gm-err-soft);color:var(--gm-err);padding:1px 7px;border-radius:4px;font-weight:600}
.gm-msg-form{margin-top:12px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}

/* ---------------------------------------------- contact */
.gm-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;
  overflow:hidden!important;opacity:0!important;pointer-events:none}
.gm-consent{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:.88rem;
  color:var(--gm-ink-2);line-height:1.5;text-transform:none;letter-spacing:0;font-weight:400}
.gm-consent input{margin-top:3px;width:17px;height:17px;flex-shrink:0;accent-color:var(--gm-gold);cursor:pointer}

@media (max-width:640px){
  .gm-head{flex-direction:column}
  .gm-stats{width:100%}
  .gm-stat{flex:1}
  .gm-card{padding:17px}
  .gm-form,.gm-filters{grid-template-columns:1fr}
  .gm-rr-grid{grid-template-columns:1fr}
  .gm-dl{grid-template-columns:1fr}
}

/* ---------------------------------------------- recommendations */
.gm-recs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.gm-rec{background:var(--gm-soft);border:1px solid var(--gm-line);border-radius:8px;padding:12px 15px}
.gm-rec-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:.92rem}
.gm-rec-head .gm-ago{margin-left:auto;font-size:.75rem;color:var(--gm-ink-3)}
.gm-rec-pitch{margin:6px 0 0;font-size:.88rem;color:var(--gm-ink-2);line-height:1.5}

/* ---------------------------------------------- map and api docs */
.gm-mapwrap .gm-map{width:100%;border:1px solid var(--gm-line);border-radius:var(--gm-radius);
  overflow:hidden;background:var(--gm-soft)}
.gm-mapnote{margin:0}
.maplibregl-popup-content{font-family:inherit;font-size:.86rem;border-radius:8px;padding:10px 13px}
.gm-verb{display:inline-block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.7rem;font-weight:700;padding:3px 8px;border-radius:4px;letter-spacing:.04em}
.gm-verb-get{background:var(--gm-ok-soft);color:var(--gm-ok)}
.gm-verb-post{background:var(--gm-gold-soft);color:var(--gm-gold)}
.gm-verb-delete{background:var(--gm-err-soft);color:var(--gm-err)}
.gm-apidocs .gm-table td{vertical-align:top}

/* ---------------------------------------------- chip selected state
   Driven by the .is-on class the script sets, NOT by :has(input:checked).
   Browsers do not reliably re-evaluate :has() when a checkbox changes via
   a label click, so the styling froze at whatever was checked on load. */
.gm-chip{transition:background .16s,border-color .16s,color .16s}
.gm-chip.is-on{background:var(--gm-ink);border-color:var(--gm-ink);color:#fff}
.gm-chip.is-on:hover{background:var(--gm-gold);border-color:var(--gm-gold);color:#fff}
/* a tick so the state reads without relying on colour alone */
.gm-chip.is-on span::before{content:'\2713';margin-right:7px;font-weight:700}
/* keyboard focus must stay visible even though the input is hidden */
.gm-chip input:focus-visible + span{outline:2px solid var(--gm-gold);outline-offset:3px;border-radius:3px}

/* ---------------------------------------------- service areas */
.gm-areas{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.gm-area{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--gm-soft);
  border:1px solid var(--gm-line);border-radius:8px;padding:11px 14px}
.gm-area-flag{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  padding:4px 8px;border-radius:5px;background:var(--gm-ink);color:#fff;flex-shrink:0;min-width:52px;text-align:center}
.gm-area-flag.is-country{background:var(--gm-gold)}
.gm-area-name{display:flex;flex-direction:column;gap:1px;flex:1;min-width:180px;font-size:.92rem}
.gm-area-dirs{display:flex;gap:7px;flex-wrap:wrap}
.gm-toggle{position:relative;display:inline-flex;align-items:center;cursor:pointer;
  border:1px solid var(--gm-line);border-radius:999px;padding:5px 12px;font-size:.78rem;
  background:var(--gm-paper);color:var(--gm-ink-3);user-select:none;transition:all .16s;white-space:nowrap}
.gm-toggle input{position:absolute;opacity:0;width:0;height:0}
.gm-toggle.is-on{background:var(--gm-ok-soft);border-color:var(--gm-ok);color:var(--gm-ok);font-weight:600}
.gm-toggle.is-on span::before{content:'\2713';margin-right:5px;font-weight:700}
.gm-toggle input:focus-visible + span{outline:2px solid var(--gm-gold);outline-offset:3px}
.gm-dirpick{margin-top:2px}
.gm-ww{align-items:flex-start;font-size:.92rem;line-height:1.55}
.gm-ww span strong{color:var(--gm-ink)}

/* --- quote lines: one row per item the requester asked about --- */
.gm-quote-lines{margin:18px 0}
.gm-quote-lines .gm-group{margin:0 0 18px}
.gm-h5{font-size:13px;text-transform:uppercase;letter-spacing:.06em;margin:0 0 8px;color:var(--gm-muted,#667)}
table.gm-quote-grid{width:100%;border-collapse:collapse}
table.gm-quote-grid th{text-align:left;font-size:12px;font-weight:600;padding:6px 8px;border-bottom:1px solid var(--gm-line,#e3e6ec)}
table.gm-quote-grid td{padding:6px 8px;border-bottom:1px solid var(--gm-line,#eef0f4);vertical-align:middle}
table.gm-quote-grid td label{font-weight:500;margin:0}
table.gm-quote-grid input,table.gm-quote-grid select{width:100%;margin:0}
table.gm-quote-grid input[type=number]{text-align:right;font-variant-numeric:tabular-nums}
@media(max-width:760px){table.gm-quote-grid,table.gm-quote-grid tbody,table.gm-quote-grid tr,table.gm-quote-grid td{display:block;width:100%}table.gm-quote-grid thead{display:none}table.gm-quote-grid tr{padding:8px 0;border-bottom:1px solid var(--gm-line,#eef0f4)}table.gm-quote-grid td{border:0;padding:3px 0}}

/* ------------------------------------------------- required document fields */
.gm-req{font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:#b42318;background:#fef3f2;border:1px solid #fecdca;border-radius:3px;padding:1px 6px;margin-left:6px}
.gm-docs{border-top:1px solid var(--gm-line,#e5e7eb);margin-top:4px;padding-top:16px}
.gm-docs .gm-doc input[type=file]{width:100%;padding:10px;border:1px dashed var(--gm-line,#cbd5e1);
  border-radius:6px;background:#fbfcfd;font-size:.875rem;cursor:pointer}
.gm-docs .gm-doc input[type=file]:hover{border-color:var(--gm-accent,#0b5fff);background:#f6f9ff}
.gm-docs .gm-doc[hidden]{display:none}
.gm-docs textarea{width:100%}
.gm-files{list-style:none;margin:8px 0 0;padding:0}
.gm-files li{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--gm-line,#eef1f5)}
.gm-files li:last-child{border-bottom:0}
.gm-docs-list{margin-top:16px}

/* ------------------------------------------- contact released on an award */
.gm-contact-card{border-left:4px solid var(--gm-accent,#0b5fff);background:#f6f9ff}
.gm-contact-card .gm-h3{margin-top:0}
.gm-contact-card .gm-dl dd a{font-weight:600}

/* ------------------------------- expandable quote breakdown on My Quotes */
.gm-breakdown{margin:0}
.gm-breakdown>summary{cursor:pointer;font-size:.85rem;font-weight:600;color:var(--gm-accent,#0b5fff);
  padding:4px 0;list-style:none;display:inline-flex;align-items:center;gap:6px}
.gm-breakdown>summary::-webkit-details-marker{display:none}
.gm-breakdown>summary::before{content:'\25B8';display:inline-block;transition:transform .15s ease}
.gm-breakdown[open]>summary::before{transform:rotate(90deg)}
.gm-breakdown>summary:hover{text-decoration:underline}
.gm-breakdown-body{padding:8px 0 4px}
.gm-dl-tight{margin:8px 0 0}
.gm-dl-tight dt{font-size:.78rem;color:#64748b}
.gm-dl-tight dd{font-size:.85rem;margin:0 0 6px}

/* ------------------------------ collapsible pick groups and the checklist */
.gm-pickgroup{border:1px solid var(--gm-line,#e5e7eb);border-radius:8px;padding:0;margin:0 0 8px}
.gm-pickgroup>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;
  padding:10px 14px;font-size:.9rem;font-weight:600;color:#1f3864}
.gm-pickgroup>summary::-webkit-details-marker{display:none}
.gm-pickgroup>summary::before{content:'\25B8';font-size:.8rem;transition:transform .15s ease;color:#64748b}
.gm-pickgroup[open]>summary::before{transform:rotate(90deg)}
.gm-pickgroup>summary:hover{background:#f8fafc}
.gm-pickname{flex:1}
.gm-pickcount{font-size:.75rem;font-weight:600;color:#64748b;background:#f1f5f9;
  border-radius:999px;padding:2px 9px;white-space:nowrap}
.gm-pickcount.is-on{color:#166534;background:#dcfce7}
.gm-pickgroup>.gm-chips{padding:0 14px 12px}
.gm-facilities>summary{cursor:pointer;font-size:.82rem;color:var(--gm-accent,#0b5fff);
  padding:4px 0;list-style:none;font-weight:600}
.gm-facilities>summary::-webkit-details-marker{display:none}
.gm-facilities>summary::before{content:'\25B8 ';transition:transform .15s ease;display:inline-block}
.gm-facilities[open]>summary::before{transform:rotate(90deg)}
.gm-checklist{border-left:4px solid var(--gm-accent,#0b5fff)}
.gm-todo{list-style:none;margin:6px 0 10px;padding:0}
.gm-todo-item{display:flex;align-items:center;gap:10px;padding:7px 0;
  border-bottom:1px solid var(--gm-line,#eef1f5);font-size:.9rem;flex-wrap:wrap}
.gm-todo-item:last-child{border-bottom:0}
.gm-todo-mark{width:20px;text-align:center;color:#94a3b8;font-size:.8rem}
.gm-todo-item.is-done .gm-todo-mark{color:#16a34a;font-size:1rem}
.gm-todo-label{font-weight:600;min-width:150px}
.gm-todo-n{font-size:.8rem;color:#64748b}
.gm-todo-why{flex:1 0 100%;margin-left:30px;font-size:.8rem;color:#b45309}

/* ---------------------------------------------- derived coverage */
.gm-statelist{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:8px}
.gm-stateitem{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--gm-soft);
  border:1px solid var(--gm-line);border-radius:8px;padding:11px 14px}
.gm-state-flag{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  padding:4px 8px;border-radius:5px;background:var(--gm-ink);color:#fff;flex-shrink:0;
  min-width:78px;text-align:center}
.gm-stateitem.is-head .gm-state-flag{background:var(--gm-gold)}
.gm-state-name{font-weight:600}
/* capability is displayed, not chosen - kill every affordance that says click me */
.gm-readonly{margin-bottom:14px}
.gm-readonly .gm-pickname{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.06em;color:var(--gm-ink-3);margin-bottom:7px}
.gm-chip.is-static{cursor:default;user-select:text}
.gm-chip.is-static:hover{border-color:var(--gm-line)}

/* ---------------------------------------------- member nav strip */
/* The colour tokens are declared on .gm-wrap and this strip renders outside
   it, so a var() here resolves to nothing - which left the selected tab
   white on white. Every value below is literal for that reason. */
.gm-membernav{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px;padding:8px 10px;
  background:#F4F7FA;border:1px solid #DCE4EE;border-radius:10px}
.gm-membernav a{display:inline-block;padding:6px 13px;border-radius:999px;font-size:.85rem;
  font-weight:600;text-decoration:none;color:#3D5876;line-height:1.3;
  transition:background .15s ease,color .15s ease}
.gm-membernav a:hover{background:#FFFFFF;color:#14304F}
/* the page you are on is a label, not a link to itself */
.gm-membernav a[aria-current="page"]{background:#14304F;color:#FFFFFF}
.gm-membernav a[aria-current="page"]:hover{background:#14304F;color:#FFFFFF}
.gm-membernav a:focus-visible{outline:2px solid #C8860D;outline-offset:2px}
@media (max-width:600px){.gm-membernav{gap:4px;padding:6px}.gm-membernav a{padding:5px 10px;font-size:.8rem}}

/* ---------------------------------------------- quotation decisions */
/* Award is the decisive action and reads as such. Decline stays outlined so
   it is never clicked by momentum, and Shortlist sits between the two. */
.gm-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.gm-decide{display:inline-block;padding:6px 13px;border-radius:999px;font-size:.8rem;
  font-weight:700;letter-spacing:.01em;text-decoration:none;border:1.5px solid;
  line-height:1.35;white-space:nowrap;
  transition:background .15s ease,color .15s ease,box-shadow .15s ease}
.gm-decide-accepted{background:var(--gm-ok);border-color:var(--gm-ok);color:#fff}
.gm-decide-accepted:hover{background:#18543E;border-color:#18543E;color:#fff;
  box-shadow:0 0 0 3px var(--gm-ok-soft)}
.gm-decide-shortlisted{background:var(--gm-gold-soft);border-color:var(--gm-gold);color:#7A5208}
.gm-decide-shortlisted:hover{background:var(--gm-gold);color:#fff}
.gm-decide-rejected{background:transparent;border-color:var(--gm-err);color:var(--gm-err)}
.gm-decide-rejected:hover{background:var(--gm-err);color:#fff}
.gm-decide:focus-visible{outline:2px solid var(--gm-ink);outline-offset:2px}
@media (max-width:600px){.gm-decide{padding:5px 10px;font-size:.76rem}}
