:root {
  --ink: #1d1c1a;
  --ink-strong: #0e0e0d;
  --text: #393632;
  --muted: #716d66;
  --canvas: #f4f0e8;
  --surface: #fbf8f1;
  --surface-subtle: #f0ece3;
  --line: rgba(29, 28, 26, .16);
  --line-strong: rgba(29, 28, 26, .31);
  --brand: #293a35;
  --brand-strong: #182521;
  --brand-soft: #dce5da;
  --info: #526a77;
  --info-soft: #e2eaeb;
  --warning: #8b641e;
  --warning-soft: #f5ead0;
  --danger: #9a4e43;
  --danger-soft: #f4dfda;
  --success: #49654d;
  --success-soft: #dce9da;
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background: var(--canvas);
  font-synthesis: none;
}

* { box-sizing: border-box; }
body { background: var(--canvas); cursor: url("/static/cursor.svg") 4 2, default; margin: 0; min-width: 320px; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea, summary { -webkit-tap-highlight-color: transparent; }
button, a, select, summary, .opportunity-card { cursor: url("/static/cursor.svg") 4 2, pointer; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 3px solid #9bab9a; outline-offset: 3px; }

.app-shell { min-height: 100vh; }
.app-topbar { align-items: center; background: rgba(244, 240, 232, .96); border-bottom: 3px solid var(--ink); display: grid; gap: 1.25rem; grid-template-columns: auto 1fr auto; min-height: 68px; padding: .75rem clamp(1rem, 4vw, 3.25rem); position: sticky; top: 0; z-index: 10; }
.brand { align-items: center; color: var(--ink-strong); display: inline-flex; font-family: Georgia, "Times New Roman", serif; font-size: 1.52rem; font-weight: 700; gap: .6rem; letter-spacing: -.045em; text-decoration: none; }
.brand-mark { align-items: center; background: var(--ink); border: 1px solid var(--ink); border-radius: 5px; box-shadow: none; color: #f4f0e8; display: inline-flex; flex: 0 0 30px; height: 30px; justify-content: center; width: 30px; }
.brand-mark svg { height: 20px; width: 20px; }
.eyebrow { color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .13em; line-height: 1.2; margin: 0 0 .7rem; text-transform: uppercase; }
.topbar-nav { align-items: center; display: flex; gap: .2rem; }
.topbar-nav a { border-bottom: 2px solid transparent; color: var(--muted); font-size: .8rem; font-weight: 750; padding: .48rem .7rem; text-decoration: none; }
.topbar-nav a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.topbar-nav a.active { background: transparent; border-bottom-color: var(--ink); color: var(--ink-strong); }
.topbar-account { align-items: center; display: flex; gap: 1rem; }
.user-role { align-items: center; color: var(--muted); display: flex; font-size: .78rem; font-weight: 650; gap: .45rem; }
.user-role-dot { background: #83977e; border-radius: 50%; height: .45rem; width: .45rem; }
.logout { background: transparent; border: 0; border-radius: 6px; color: var(--muted); cursor: pointer; font-size: .82rem; min-height: 0; padding: .25rem 0; text-align: left; width: fit-content; }
.logout:hover { background: transparent; border-color: transparent; color: var(--ink); text-decoration: underline; }

.page-content { margin: 0 auto; max-width: 1440px; padding: clamp(1.5rem, 4vw, 3.25rem); width: 100%; }
.app-main { min-height: calc(100vh - 64px); }
.login-page { align-items: stretch; display: flex; justify-content: center; min-height: 100vh; padding: clamp(1rem, 4vw, 3.5rem); position: relative; }
.login-page::before { background: linear-gradient(90deg, transparent 49.9%, rgba(29, 28, 26, .08) 50%, transparent 50.1%); content: ""; height: 100%; left: 50%; pointer-events: none; position: absolute; top: 0; transform: translateX(-50%); width: min(100vw, 1120px); }

.page-heading { align-items: flex-start; display: flex; gap: 1.5rem; justify-content: space-between; margin-bottom: 1.75rem; }
.page-heading > div:first-child { max-width: 720px; }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: Georgia, "Times New Roman", serif; }
h1 { color: var(--ink-strong); font-size: clamp(1.85rem, 3vw, 2.65rem); font-weight: 700; letter-spacing: -.04em; line-height: 1.08; margin-bottom: .65rem; }
h2 { color: var(--ink); font-size: 1.14rem; letter-spacing: -.015em; line-height: 1.3; margin-bottom: .55rem; }
h3 { color: var(--ink); font-size: 1rem; }
.page-heading p:not(.eyebrow) { color: var(--muted); line-height: 1.55; margin-bottom: 0; }
.eyebrow { color: var(--brand); margin-bottom: .55rem; }
.heading-actions { align-items: center; display: flex; flex-wrap: wrap; gap: .75rem; justify-content: flex-end; }

.card { background: var(--surface); border: 1px solid var(--line); border-radius: 4px; box-shadow: none; margin: 1rem 0; padding: clamp(1rem, 2.2vw, 1.5rem); }
.login-layout { display: grid; gap: clamp(2rem, 8vw, 9rem); grid-template-columns: minmax(0, 1fr) minmax(330px, 460px); margin: auto; max-width: 1120px; position: relative; width: 100%; z-index: 1; }
.login-introduction { align-self: center; max-width: 530px; }
.login-introduction h1 { font-size: clamp(2.85rem, 5.7vw, 5.2rem); line-height: .98; margin-bottom: 1.1rem; }
.login-introduction > p:not(.eyebrow) { color: var(--muted); font-size: 1.05rem; line-height: 1.6; margin-bottom: 2rem; max-width: 490px; }
.login-source-note { border-top: 1px solid var(--line); color: var(--muted); display: block; font-size: .7rem; font-weight: 760; letter-spacing: .09em; padding-top: .85rem; text-transform: uppercase; }
.login-card { align-self: center; border-top: 3px solid var(--ink); margin: 0; max-width: none; padding: clamp(1.5rem, 4vw, 2.5rem); position: relative; width: 100%; }
.login-brand { align-items: center; color: var(--ink-strong); display: flex; font-family: Georgia, "Times New Roman", serif; font-size: 1.55rem; gap: .65rem; letter-spacing: -.04em; margin-bottom: 2.75rem; }
.login-brand .brand-mark { background: var(--ink); }
.login-card h2 { font-size: 1.7rem; margin-bottom: .5rem; }
.login-card .muted { line-height: 1.55; margin-bottom: 0; }
.login-card form { margin-top: 1.65rem; }
.login-card button { margin-top: .15rem; width: 100%; }

form { display: grid; gap: .9rem; }
.grid { align-items: end; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
label { color: var(--ink); display: grid; font-size: .84rem; font-weight: 720; gap: .42rem; }
input, select, textarea { background: #fffdf8; border: 1px solid var(--line-strong); border-radius: 3px; color: var(--ink); min-height: 42px; padding: .65rem .75rem; width: 100%; }
input::placeholder, textarea::placeholder { color: #8ca0ae; }
input:hover, select:hover, textarea:hover { border-color: #8eaab8; }
textarea { line-height: 1.45; min-height: 96px; resize: vertical; }
small, .muted { color: var(--muted); }
small { font-size: .78rem; font-weight: 500; line-height: 1.4; }

.button-link, button { align-items: center; background: var(--ink); border: 1px solid var(--ink); border-radius: 2px; box-shadow: none; color: #f9f5ed; cursor: pointer; display: inline-flex; font-size: .82rem; font-weight: 760; justify-content: center; letter-spacing: .015em; line-height: 1.25; min-height: 42px; padding: .62rem .9rem; text-decoration: none; transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
button:hover, .button-link:hover { background: var(--brand-strong); border-color: var(--brand-strong); }
button:active, .button-link:active { transform: translateY(1px); }
button:disabled { background: #94a6b0; border-color: #94a6b0; cursor: not-allowed; transform: none; }
.text-link { color: var(--brand-strong); font-size: .9rem; font-weight: 750; text-decoration: none; }
.text-link:hover { text-decoration: underline; }
.secondary-button { background: transparent; border-color: var(--ink); box-shadow: none; color: var(--ink); }
.secondary-button:hover { background: var(--ink); border-color: var(--ink); color: #f9f5ed; }
.danger-button { background: var(--danger); border-color: var(--danger); }
.danger-button:hover { background: #8f1730; border-color: #8f1730; }
.flash { border: 1px solid var(--info); border-radius: 10px; color: #164d80; margin: 0 0 1.25rem; padding: .85rem 1rem; }
.flash.error { background: var(--danger-soft); border-color: #ecadc0; color: #8e1530; }
.flash.success { background: var(--success-soft); border-color: #9bd8b2; color: #10623d; }
.error { color: #a61b36; } .success { color: #0e663e; }
.system-notice { background: #fbf8f1; border: 1px solid var(--line-strong); border-left: 4px solid var(--brand); box-shadow: 0 18px 48px #1d1c1a2b; color: var(--text); margin: 0; max-width: min(420px, calc(100vw - 2rem)); padding: 1rem 3.5rem 1rem 1.1rem; position: fixed; right: 1rem; top: auto; bottom: 1rem; }
.system-notice .eyebrow { margin-bottom: .35rem; }
.system-notice-message { line-height: 1.45; margin: 0; }
.system-notice-message + .system-notice-message { margin-top: .4rem; }
.system-notice-message.error { color: var(--danger); }
.system-notice-message.success { color: var(--success); }
.system-confirmation { background: #fbf8f1; border: 1px solid var(--line); border-top: 3px solid var(--ink); box-shadow: 0 20px 60px #1d1c1a38; color: var(--text); max-width: min(480px, calc(100vw - 2rem)); padding: clamp(1.4rem, 4vw, 2rem); }
.system-confirmation::backdrop { backdrop-filter: blur(2px); background: #1d1c1a40; }
.system-confirmation h2 { font-size: 1.55rem; margin-bottom: .45rem; }
.system-confirmation .muted { line-height: 1.55; margin-bottom: 0; }
.system-confirmation-actions { display: flex; flex-wrap: wrap; gap: .6rem; justify-content: flex-end; margin-top: 1.5rem; }
.system-confirmation-actions button { min-width: 104px; }

.metric-grid { display: grid; gap: .8rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 0 1.5rem; }
.metric { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; display: grid; gap: .35rem; min-height: 90px; padding: 1rem 1.1rem; }
.metric span { color: var(--muted); font-size: .78rem; font-weight: 650; }
.metric strong { color: var(--ink-strong); font-size: 1.25rem; letter-spacing: -.035em; }

.filters { align-items: end; display: grid; gap: .85rem; grid-template-columns: 1.5fr repeat(5, minmax(105px, 1fr)) auto; margin-bottom: 1.25rem; }
.radar-filters { align-items: center; background: #ebe6dc; border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); grid-template-columns: minmax(250px, 1fr) auto auto; margin-left: calc(clamp(1.5rem, 4vw, 3.25rem) * -1); margin-right: calc(clamp(1.5rem, 4vw, 3.25rem) * -1); padding: .8rem clamp(1.5rem, 4vw, 3.25rem); position: relative; z-index: 5; }
.search-field { min-width: 0; }.search-field input { background: rgba(255, 255, 255, .7); }
.filter-disclosure { position: relative; }.filter-disclosure[open] { z-index: 6; }.filter-disclosure summary { align-items: center; background: rgba(255, 255, 255, .52); border: 1px solid var(--line); border-radius: 11px; color: var(--ink); display: flex; font-size: .84rem; font-weight: 720; gap: .45rem; list-style: none; min-height: 42px; padding: .55rem .72rem; user-select: none; }.filter-disclosure summary::-webkit-details-marker { display: none; }.filter-disclosure summary img { height: 17px; opacity: .72; width: 17px; }.filter-disclosure[open] summary { background: rgba(255, 255, 255, .84); border-color: rgba(91, 159, 148, .34); }.filter-count { background: var(--brand-soft); border-radius: 999px; color: var(--brand-strong); font-size: .68rem; margin-left: .15rem; padding: .16rem .38rem; }
.filter-fields { backdrop-filter: blur(22px); background: rgba(250, 255, 254, .88); border: 1px solid rgba(255, 255, 255, .88); border-radius: 16px; box-shadow: 0 18px 42px #18465017; display: grid; gap: .75rem; grid-template-columns: repeat(5, minmax(150px, 1fr)); padding: 1rem; position: absolute; right: 0; top: calc(100% + .55rem); width: min(920px, calc(100vw - 2rem)); z-index: 4; }
.filters button { white-space: nowrap; }
.radar-priority { align-items: center; background: #e5ebe1; border: 1px solid var(--line); border-left: 4px solid var(--brand); border-radius: 0; box-shadow: none; display: flex; gap: 1.5rem; justify-content: space-between; margin: 1.5rem 0 1rem; padding: .9rem 1.1rem; position: relative; z-index: 1; }
.radar-edition-label { display: grid; gap: .18rem; min-width: 160px; }.radar-edition-label span { color: var(--muted); font-size: .65rem; font-weight: 800; letter-spacing: .11em; }.radar-edition-label strong { color: var(--ink); font-family: Georgia, "Times New Roman", serif; font-size: 1rem; }
.radar-states { align-items: center; display: flex; flex-wrap: wrap; gap: .5rem; justify-content: flex-end; }.radar-states > strong { color: var(--ink-strong); font-family: Georgia, "Times New Roman", serif; font-size: 1.18rem; margin-right: .25rem; }
.result-summary { align-items: center; color: var(--muted); display: flex; flex-wrap: wrap; font-size: .84rem; gap: .8rem; justify-content: space-between; margin: 1rem 0 .75rem; }
.result-summary strong { color: var(--ink); font-size: .88rem; }
.eligibility-summary { display: flex; flex-wrap: wrap; gap: .5rem; margin: .6rem 0 1.15rem; }
.tag, .eligibility, .signal, .status { border-radius: 999px; display: inline-flex; font-size: .72rem; font-weight: 760; line-height: 1.2; padding: .32rem .58rem; vertical-align: middle; }
.tag { background: rgba(255, 255, 255, .52); color: #597080; }
.eligibility-open, .status-completed, .signal-interested { background: var(--success-soft); color: #0c633c; }
.eligibility-soon, .status-partial { background: var(--warning-soft); color: #885007; }
.eligibility-expired, .status-failed { background: var(--danger-soft); color: #9e1933; }
.eligibility-unknown, .signal-irrelevant { background: #edf1f4; color: #526c7e; }
.status-running, .signal-saved { background: var(--info-soft); color: #1f5a97; }
.new-indicator { background: #e8f5cf; border-radius: 999px; color: #38620b; font-size: .7rem; font-weight: 800; letter-spacing: .03em; padding: .26rem .5rem; text-transform: uppercase; }
.eligibility-reason, .match-disclaimer { display: block; margin-top: .35rem; }

.opportunity-list { display: grid; gap: .7rem; }
.opportunity-list .card { margin: 0; }
.opportunity-card { background: var(--surface); border-color: var(--line); border-radius: 3px; color: var(--ink); cursor: pointer; display: block; padding: 1.1rem 1.25rem; text-align: left; transition: border-color .15s ease, background-color .15s ease, transform .15s ease; width: 100%; }
.opportunity-card:hover { background: #fffdf8; border-color: var(--ink); box-shadow: none; transform: translateY(-1px); }
.opportunity-unread { border-left: 4px solid #7bb843; }
.opportunity-card:focus-visible { outline-offset: 3px; }
.opportunity-editorial { align-items: stretch; display: grid; gap: 1.25rem; grid-template-columns: 90px minmax(0, 1fr) 150px; }
.opportunity-score { border-right: 1px solid var(--line); display: grid; align-content: center; gap: .2rem; min-height: 100%; padding-right: .9rem; text-align: left; }.opportunity-score strong { color: var(--ink-strong); font-family: Georgia, "Times New Roman", serif; font-size: 1.85rem; letter-spacing: -.06em; line-height: 1; }.opportunity-score small { color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.opportunity-copy { display: block; min-width: 0; }.opportunity-top, .match-row { align-items: center; display: flex; flex-wrap: wrap; gap: .55rem; justify-content: space-between; }.opportunity-top { justify-content: flex-start; }
.opportunity-preview { color: var(--ink-strong); display: block; font-family: Georgia, "Times New Roman", serif; font-size: 1.14rem; font-weight: 700; letter-spacing: -.012em; line-height: 1.35; margin: .72rem 0 .9rem; }
.opportunity-highlights { display: grid; gap: 1rem; grid-template-columns: .9fr .85fr 1.45fr; }
.opportunity-highlights span { display: grid; gap: .2rem; min-width: 0; }
.opportunity-highlights small { color: var(--muted); }
.opportunity-highlights strong { color: var(--text); font-size: .86rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.opportunity-deadline { border-left: 1px solid var(--line); display: grid; align-content: center; gap: .3rem; padding-left: 1rem; }.opportunity-deadline small { color: var(--muted); font-size: .68rem; font-weight: 750; letter-spacing: .08em; margin-top: .3rem; text-transform: uppercase; }.opportunity-deadline strong { color: var(--ink); font-size: .82rem; line-height: 1.3; }
.match-row { border-top: 1px solid var(--line); font-size: .8rem; justify-content: flex-start; margin: 1rem 0 0; padding-top: .75rem; }
.match-row > span:not(.signal) { color: var(--muted); }
.match-label { color: var(--ink) !important; font-weight: 720; }
.opportunity-open-detail { color: var(--ink); font-size: .74rem; font-weight: 800; letter-spacing: .04em; margin-left: auto; text-transform: uppercase; }

.opportunity-modal { background: #fbf8f1; border: 0; border-left: 1px solid var(--line); border-radius: 0; box-shadow: -18px 0 50px #1d1c1a1c; color: var(--text); height: 100dvh; inset: 0 0 0 auto; margin: 0; max-height: none; max-width: 760px; overflow-y: auto; padding: clamp(1.35rem, 4vw, 2.5rem); position: fixed; width: min(56vw, 760px); }
.opportunity-modal::backdrop { background: #1d1c1a24; }
.opportunity-modal .eyebrow { margin-left: 0; }
.modal-close { background: var(--surface-subtle); border-color: var(--line); color: var(--ink); font-size: 1.45rem; line-height: 1; min-height: 36px; padding: .25rem .55rem; position: absolute; right: 1rem; top: 1rem; }
.modal-close:hover { background: #e6edef; border-color: var(--line-strong); }
.modal-object { color: var(--ink-strong); font-size: 1.12rem; font-weight: 700; line-height: 1.5; margin: .4rem 2.5rem 1.5rem 0; }
dl { display: grid; gap: .7rem 1rem; grid-template-columns: minmax(125px, .55fr) 2fr; line-height: 1.45; }
dt { color: var(--muted); font-size: .82rem; font-weight: 730; } dd { margin: 0; }
.details-grid dd strong { color: var(--brand-strong); font-size: 1.05rem; }
.signal-actions { align-items: center; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1.5rem; padding-top: 1.15rem; }
.signal-actions > span { color: var(--ink); font-size: .84rem; font-weight: 750; margin-right: .3rem; }
.signal-actions form, .danger-zone form { display: block; }
.signal-actions button { font-size: .8rem; min-height: 36px; padding: .45rem .65rem; }
.signal-current { background: var(--brand); border-color: var(--brand); }
.company-modal { max-width: 900px; width: min(70vw, 900px); }

.dashboard-heading { border-bottom: 1px solid var(--line); margin-bottom: 1.2rem; padding-bottom: 1.4rem; }.dashboard-heading h1 { margin-bottom: .45rem; }.dashboard-radar-link { background: linear-gradient(110deg, var(--ink) 0%, var(--ink) 43%, #5d7768 50%, var(--ink) 57%, var(--ink) 100%); background-position: 100% 0; background-size: 240% 100%; min-width: 135px; }.dashboard-radar-link:hover { animation: radar-button-sweep .65s ease-out; background-position: 0 0; }
@keyframes radar-button-sweep { from { background-position: 100% 0; } to { background-position: 0 0; } }
.dashboard-metrics { border-bottom: 3px solid var(--ink); display: grid; gap: 0; grid-template-columns: repeat(4, 1fr); margin-bottom: 1.5rem; }
.dashboard-metrics .card { border-bottom: 0; border-left: 0; border-radius: 0; border-top: 1px solid var(--line); display: grid; gap: .25rem; margin: 0; min-height: 132px; padding: 1.05rem 1.15rem; }.dashboard-metrics .card:last-child { border-right: 0; }.dashboard-metrics .card + .card { border-left: 1px solid var(--line); }.dashboard-metrics small, .dashboard-metrics span { color: var(--muted); }.dashboard-metrics small { font-size: .66rem; font-weight: 800; letter-spacing: .1em; }.dashboard-metrics strong { align-self: end; color: var(--ink-strong); font-family: Georgia, "Times New Roman", serif; font-size: 2.5rem; letter-spacing: -.06em; line-height: 1; }.dashboard-stat-primary { background: var(--brand-soft) !important; }.dashboard-metrics span { font-size: .78rem; }
.dashboard-grid { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }.dashboard-grid .card { margin: 0; }.dashboard-section { padding-top: 1.2rem; }.dashboard-section .section-title { border-bottom: 3px solid var(--ink); margin: 0 0 .1rem; padding-bottom: .7rem; }
.section-title { align-items: start; display: flex; gap: 1rem; justify-content: space-between; margin-bottom: .7rem; }.section-title h2 { margin: 0; }
.activity-row { border-top: 1px solid var(--line); display: flex; gap: .8rem; justify-content: space-between; padding: .9rem 0; }.activity-row:first-of-type { border-top: 0; }.activity-row strong, .activity-row span { display: block; }.activity-row span, .activity-row small { color: var(--muted); font-size: .84rem; line-height: 1.4; margin-top: .2rem; }.activity-row form { margin-top: .45rem; }.activity-unread { border-left: 3px solid #7bb843; padding-left: .7rem; }
.dashboard-alerts .activity-row { align-items: flex-start; justify-content: flex-start; }.activity-marker { background: var(--info); border-radius: 50%; flex: 0 0 8px; height: 8px; margin-top: .35rem !important; width: 8px; }.activity-marker.deadline_soon { background: var(--warning); }.activity-marker.state_changed { background: var(--success); }.dashboard-match-score { color: var(--ink-strong); flex: 0 0 56px; font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; letter-spacing: -.05em; line-height: 1; }.dashboard-top-matches .activity-row { align-items: flex-start; justify-content: flex-start; }.dashboard-top-matches .activity-row > div { min-width: 0; }.dashboard-top-matches .activity-row small { display: block; margin-top: .35rem; }.dashboard-empty { margin: 1rem 0 .25rem; }
.dashboard-open-link { color: var(--ink); display: inline-block; font-size: .72rem; font-weight: 800; letter-spacing: .04em; margin-top: .55rem; text-decoration: none; text-transform: uppercase; }.dashboard-open-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.saved-section { margin-top: 1.6rem; }.saved-section-title { border-bottom: 3px solid var(--ink); margin-bottom: .8rem; padding-bottom: .7rem; }.saved-section-title h2 { margin: 0; }.saved-section-title p { margin-bottom: 0; }.saved-count { background: var(--brand-soft); color: var(--ink); font-size: .72rem; font-weight: 800; padding: .35rem .55rem; white-space: nowrap; }.discarded-section { border-top: 1px solid var(--line); margin-top: 2.5rem; padding-top: 1.25rem; }.discarded-section .saved-section-title { border-bottom-color: var(--danger); }.discarded-opportunity-card { background: #f5ece8; }.discarded-opportunity-card:hover { border-color: var(--danger); }.saved-opportunity-card .opportunity-score strong { color: var(--ink-strong); }
.alerts-heading { border-bottom: 1px solid var(--line); padding-bottom: 1.4rem; }.alerts-summary { border-bottom: 3px solid var(--ink); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 1.6rem; }.alerts-summary > div { background: var(--surface); border-top: 1px solid var(--line); display: grid; gap: .2rem; min-height: 118px; padding: 1rem 1.15rem; }.alerts-summary > div + div { border-left: 1px solid var(--line); }.alerts-summary small { font-size: .66rem; font-weight: 800; letter-spacing: .1em; }.alerts-summary strong { color: var(--ink-strong); font-family: Georgia, "Times New Roman", serif; font-size: 2.25rem; letter-spacing: -.06em; line-height: 1; }.alerts-summary span { color: var(--muted); font-size: .78rem; }.alert-section { margin-top: 1.6rem; }.alert-section > .section-title { border-bottom: 3px solid var(--ink); margin-bottom: .8rem; padding-bottom: .7rem; }.alert-section > .section-title h2 { margin: 0; }.alert-list { display: grid; gap: .65rem; }.alert-card { align-items: start; background: var(--surface); border: 1px solid var(--line); display: grid; gap: 1rem; grid-template-columns: auto minmax(0, 1fr) auto; padding: 1rem 1.1rem; }.alert-card-unread { border-left: 4px solid var(--brand); }.alert-event-mark { background: var(--info); border-radius: 50%; height: 9px; margin-top: .42rem; width: 9px; }.alert-event-mark.deadline_soon { background: var(--warning); }.alert-event-mark.state_changed { background: var(--success); }.alert-card-content { min-width: 0; }.alert-card-meta { color: var(--muted); display: flex; flex-wrap: wrap; font-size: .68rem; font-weight: 800; gap: .25rem; letter-spacing: .08em; text-transform: uppercase; }.alert-card h2 { font-family: Georgia, "Times New Roman", serif; font-size: 1rem; line-height: 1.35; margin: .35rem 0; }.alert-card p { color: var(--muted); font-size: .82rem; margin: 0; }.alert-card-actions { align-items: end; display: flex; flex-direction: column; gap: .55rem; min-width: max-content; }.alert-card-actions form { display: block; }.alert-card-actions button { font-size: .72rem; min-height: 34px; }.alert-read { color: var(--muted); font-size: .72rem; font-weight: 750; }.alert-history { border-top: 1px solid var(--line); margin-top: 2.5rem; padding-top: 1.25rem; }.alert-history .alert-card { background: #f7f3ec; }.alert-history .alert-event-mark { opacity: .55; }
.municipalities-heading { border-bottom: 1px solid var(--line); padding-bottom: 1.4rem; }.municipalities-summary { border-bottom: 3px solid var(--ink); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 1.6rem; }.municipalities-summary > div { background: var(--surface); border-top: 1px solid var(--line); display: grid; gap: .2rem; min-height: 118px; padding: 1rem 1.15rem; }.municipalities-summary > div + div { border-left: 1px solid var(--line); }.municipalities-summary small { font-size: .66rem; font-weight: 800; letter-spacing: .1em; }.municipalities-summary strong { color: var(--ink-strong); font-family: Georgia, "Times New Roman", serif; font-size: 2.25rem; letter-spacing: -.06em; line-height: 1; }.municipalities-summary span { color: var(--muted); font-size: .78rem; }.municipality-intro { background: #e5ebe1; border-left: 4px solid var(--brand); max-width: 760px; }.municipality-intro h2 { margin-bottom: .35rem; }.municipality-modal { max-width: 760px; }.municipality-list { gap: 1rem; margin-top: 1.5rem; }.municipality-card { background: var(--surface); padding: 1.15rem 1.25rem; }.municipality-card-heading { border-bottom: 1px solid var(--line); padding-bottom: 1rem; }.municipality-card-heading h2 { font-size: 1.35rem; }.monitoring-scope-summary { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .75rem; }.monitoring-scope-summary span { background: var(--brand-soft); color: var(--ink); font-size: .72rem; font-weight: 750; padding: .3rem .5rem; }.municipality-editor { border-bottom: 1px solid var(--line); }.municipality-editor summary { align-items: center; color: var(--ink); cursor: pointer; display: flex; font-size: .82rem; font-weight: 800; justify-content: space-between; letter-spacing: .03em; list-style: none; padding: .85rem 0; }.municipality-editor summary::-webkit-details-marker { display: none; }.municipality-editor[open] summary span { transform: rotate(180deg); }.municipality-editor form { padding-bottom: 1rem; }.municipality-card > form:last-child { margin-top: .75rem; }
.admin-page-heading { border-bottom: 1px solid var(--line); margin-bottom: 1.35rem; padding-bottom: 1.4rem; }.admin-page-heading h1 { margin-bottom: .4rem; }.admin-operation-note { background: #e5ebe1; border-left: 4px solid var(--brand); color: var(--text); margin: 0 0 1rem; max-width: 860px; padding: .8rem 1rem; }.metric-grid { border-bottom: 3px solid var(--ink); gap: 0; margin-bottom: 1.5rem; }.metric { background: var(--surface); border: 0; border-radius: 0; border-top: 1px solid var(--line); min-height: 104px; padding: .95rem 1.1rem; }.metric + .metric { border-left: 1px solid var(--line); }.metric span { font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.metric strong { font-family: Georgia, "Times New Roman", serif; font-size: 2rem; line-height: 1; }.collection-control { background: #e5ebe1; border-left: 4px solid var(--brand); }.collection-control h2 { margin-bottom: .35rem; }.calendar-card { background: var(--surface); border-top: 3px solid var(--ink); }.calendar-heading h2 { font-size: 1.3rem; }.calendar-day { border: 1px solid rgba(29, 28, 26, .08); border-radius: 0; }.collection-run { border-left: 3px solid var(--info); }.collection-run h2 { align-items: center; display: flex; gap: .55rem; }.company-list { gap: .65rem; }.company-card { background: var(--surface); border-radius: 2px; padding: 1rem 1.1rem; }.company-card:hover { border-color: var(--ink); box-shadow: none; }.company-initial { background: var(--ink); border-radius: 3px; color: #f4f0e8; }.admin-section { border-top: 3px solid var(--ink); }.admin-section > h2 { font-size: 1.3rem; }.doe-review, .doe-document, .duplicate-review { padding: 1rem 0; }.doe-review h3, .doe-document h3, .duplicate-review h3 { font-family: Georgia, "Times New Roman", serif; font-size: 1.06rem; }.doe-history-section .doe-document, .catalog-history-section p { border-top: 1px solid var(--line); margin: 0; padding: .8rem 0; }.catalog-history-section p:first-of-type { border-top: 0; }.catalog-review-section { background: #fbf8f1; }.queue-card { border-left: 3px solid var(--info); }.queue-card .modal-object { font-family: Georgia, "Times New Roman", serif; }.assessment { background: #e5ebe1; border-left-color: var(--brand); }.municipal-admin-summary > div, .municipal-admin-summary > form { border-radius: 2px; }.municipal-company-card { border-radius: 2px; }.municipal-diary-detail { border-radius: 2px; }
.button-secondary { background: transparent; border-color: var(--ink); border-radius: 2px; box-shadow: none; color: var(--ink); }.button-secondary:hover { background: var(--ink); color: #f9f5ed; }
.brazil-map-card { background: #e8ede5; display: grid; gap: 1.5rem; grid-template-columns: 1fr; margin-top: 1rem; overflow: hidden; position: relative; }.brazil-map-card::after { border: 1px solid rgba(29, 28, 26, .12); bottom: 1rem; content: ""; left: 1rem; pointer-events: none; position: absolute; right: 1rem; top: 1rem; }.brazil-map-card > div, .brazil-map { position: relative; z-index: 1; }.brazil-map-copy { max-width: 780px; }.brazil-map-card h2 { font-size: clamp(1.35rem, 2vw, 1.75rem); }.brazil-map-card p { max-width: 680px; }.territory-metrics { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 1.2rem 0; }.territory-metrics > div { display: grid; gap: .25rem; min-height: 76px; padding: .75rem .9rem .7rem 0; }.territory-metrics > div + div { border-left: 1px solid var(--line); padding-left: .9rem; }.territory-metrics strong { color: var(--ink-strong); font-family: Georgia, "Times New Roman", serif; font-size: 1.55rem; line-height: 1; }.territory-metrics span { color: var(--muted); font-size: .72rem; font-weight: 650; line-height: 1.3; }.territory-sources > small { color: var(--muted); font-size: .65rem; font-weight: 800; letter-spacing: .1em; }.territory-sources > div { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .55rem; }.territory-source { background: rgba(255,255,255,.5); border: 1px solid rgba(29,28,26,.14); display: grid; gap: .08rem; padding: .38rem .5rem; }.territory-source strong { color: var(--ink); font-size: .72rem; }.territory-source em { color: var(--muted); font-size: .64rem; font-style: normal; }.brazil-map-visual { border-top: 1px solid var(--line); display: grid; justify-items: center; padding-top: 1.35rem; width: 100%; }.brazil-map { height: 230px; justify-self: center; width: min(100%, 250px); }.brazil-map-outline { fill: #c2d1bf; stroke: var(--ink); stroke-linejoin: round; stroke-width: 2; }.brazil-map-rule { fill: none; opacity: .45; stroke: var(--ink); stroke-width: 1.5; }.brazil-map-sp { fill: var(--brand); stroke: #f4f0e8; stroke-linejoin: round; stroke-width: 2; }.brazil-map-pin { fill: #9a4e43; stroke: #f4f0e8; stroke-width: 2; }.brazil-map text { fill: var(--ink-strong); font-size: 17px; font-weight: 800; }.brazil-map-caption { align-items: center; color: var(--muted); display: flex; font-size: .72rem; gap: .35rem; margin: .45rem 0 0; }.brazil-map-caption span { background: var(--brand); display: block; height: 8px; width: 8px; }
.territory-map { align-items: center; background: rgba(255,255,255,.35); border: 1px solid rgba(29,28,26,.14); display: grid; min-height: 440px; padding: 1rem; place-items: center; width: 100%; }.territory-map-loading, .territory-map-empty { color: var(--muted); font-size: .78rem; line-height: 1.45; padding: 1.5rem; text-align: center; }.territory-map-svg { display: block; height: auto; max-height: 460px; overflow: visible; width: min(100%, 680px); }.territory-map-state { fill: #c7d2c3; stroke: var(--ink); stroke-linejoin: round; stroke-width: 1.8; }.territory-map-area { fill: var(--brand); stroke: #f4f0e8; stroke-linejoin: round; stroke-width: 1.3; transition: fill .15s ease, stroke-width .15s ease; }.territory-map-area:hover, .territory-map-area:focus { fill: #9a4e43; stroke: var(--ink-strong); stroke-width: 2.2; }.territory-map-svg a:focus { outline: none; }.territory-map-svg a:focus .territory-map-area { fill: #9a4e43; stroke: var(--ink-strong); stroke-width: 2.5; }.territory-map-credit { color: var(--muted); font-size: .62rem; margin: .2rem 0 0; }.territory-map-credit a { color: inherit; }.territory-map-credit a:hover { color: var(--ink); }

.company-list { display: grid; gap: .8rem; }
.company-list .card { margin: 0; }
.company-card { align-items: center; color: var(--ink); cursor: pointer; display: grid; gap: .9rem; grid-template-columns: auto 1fr auto; text-align: left; width: 100%; }
.company-card:hover { border-color: #8bc9ba; box-shadow: 0 8px 20px #087f6d10; }
.company-initial { align-items: center; background: var(--brand-soft); border-radius: 10px; color: var(--brand-strong); display: inline-flex; font-size: 1rem; font-weight: 800; height: 42px; justify-content: center; width: 42px; }
.company-card strong { display: block; margin-bottom: .15rem; }
.company-card small, .company-card-meta { color: var(--muted); font-size: .82rem; }
.profile-form { margin: 1.25rem 0 1.75rem; }
.form-section { border-bottom: 1px solid var(--line); color: var(--brand-strong); font-size: .72rem; font-weight: 800; grid-column: 1 / -1; letter-spacing: .1em; margin: .5rem 0 -.1rem; padding-bottom: .5rem; text-transform: uppercase; }
.section-heading { border-top: 1px solid var(--line); margin: 1.75rem 0 .75rem; padding-top: 1.75rem; }
.scope-editor { border: 1px solid var(--line); border-radius: 12px; margin: .8rem 0; padding: .1rem 1rem 1rem; }
.scope-editor summary { align-items: center; cursor: pointer; display: flex; gap: .8rem; justify-content: space-between; list-style: none; padding: .9rem 0; }
.scope-editor summary::-webkit-details-marker { display: none; }
.scope-editor summary span:first-child { display: grid; gap: .18rem; }
.scope-editor form { border-top: 1px solid var(--line); padding-top: 1rem; }
.scope-editor textarea { min-height: 104px; }
.danger-zone { align-items: center; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.75rem; padding-top: 1.25rem; }
.keyword-editor { align-items: center; background: #fff; border: 1px solid var(--line-strong); border-radius: 8px; display: flex; flex-wrap: wrap; gap: .35rem; min-height: 42px; padding: .3rem; }
.keyword-editor:focus-within { outline: 3px solid #6bc6b4; outline-offset: 2px; }
.keyword-editor .keyword-input { border: 0; box-shadow: none; flex: 1 1 110px; min-height: 31px; outline: 0; padding: .3rem; }
.keyword-chip { background: var(--brand-soft); border: 0; border-radius: 999px; color: var(--brand-strong); font-size: .76rem; min-height: 28px; padding: .25rem .5rem; }
.keyword-chip:hover { background: #ccebe3; color: var(--brand-strong); }

.collection-control { border-left: 4px solid var(--brand); }
.source-tag { background: var(--info-soft); border-radius: 999px; color: #1f5a97; font-size: .7rem; font-weight: 760; letter-spacing: .02em; padding: .26rem .5rem; }
.duplicate-review { align-items: flex-start; border-top: 1px solid var(--line); display: flex; gap: 1rem; justify-content: space-between; padding: 1rem 0; }.duplicate-review:first-of-type { border-top: 0; padding-top: 0; }.duplicate-review h3 { font-size: 1rem; margin-bottom: .4rem; }.duplicate-review p { margin-bottom: .35rem; }
.doe-review, .doe-document { align-items: flex-start; border-top: 1px solid var(--line); display: flex; gap: 1rem; justify-content: space-between; padding: 1rem 0; }.doe-review:first-of-type, .doe-document:first-of-type { border-top: 0; padding-top: 0; }.doe-review h3, .doe-document h3 { font-size: 1rem; margin-bottom: .35rem; }.doe-review p, .doe-document p { margin-bottom: .35rem; }.inline-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: .45rem; }.inline-actions form { margin: 0; }
.municipality-intro { border-left: 4px solid var(--brand); }.municipality-intro p { color: var(--muted); line-height: 1.5; margin: .45rem 0 0; }.municipality-create { max-width: 980px; }.municipality-list { display: grid; gap: .8rem; }.municipality-list .card { margin: 0; }.municipality-card-heading { align-items: flex-start; display: flex; gap: 1rem; justify-content: space-between; }.municipality-card-heading h2 { margin-bottom: 0; }.scope-picker { border: 0; display: flex; flex-wrap: wrap; gap: .55rem; margin: .25rem 0; padding: 0; }.scope-picker legend { color: var(--muted); font-size: .82rem; font-weight: 720; margin-bottom: .5rem; }.scope-option { align-items: center; background: rgba(255, 255, 255, .54); border: 1px solid var(--line); border-radius: 9px; cursor: pointer; display: flex; font-size: .82rem; font-weight: 650; gap: .45rem; padding: .5rem .65rem; }.scope-option:has(input:checked) { background: var(--brand-soft); border-color: rgba(91, 159, 148, .45); color: var(--brand-strong); }.scope-option input { accent-color: var(--brand-strong); min-height: 0; padding: 0; width: auto; }.municipality-card > form:last-child { margin-top: .1rem; }.text-button { background: transparent; border: 0; box-shadow: none; min-height: 0; padding: .25rem 0; }.text-button:hover { background: transparent; border: 0; box-shadow: none; }.danger-text { color: var(--danger); }
.calendar-card { overflow: hidden; }
.calendar-heading { align-items: center; display: flex; gap: 1rem; justify-content: space-between; }
.calendar-heading form { align-items: end; display: flex; gap: .5rem; }
.calendar-heading input { min-width: 145px; }
.calendar-grid { display: grid; gap: .4rem; grid-template-columns: repeat(7, 1fr); }
.calendar-label { color: var(--muted); font-size: .74rem; font-weight: 750; padding-bottom: .15rem; text-align: center; }
.calendar-day { background: var(--surface-subtle); border-radius: 7px; color: var(--text); min-height: 2.5rem; padding: .6rem; text-align: center; }
.calendar-day.status-completed { background: var(--success-soft); color: #0c633c; }
.calendar-day.status-partial { background: var(--warning-soft); color: #885007; }
.calendar-day.status-running { background: var(--info-soft); color: #1f5a97; }
.calendar-day.status-processing, .calendar-day.status-pending { background: var(--info-soft); color: #1f5a97; }
.calendar-day.status-failed { background: var(--danger-soft); color: #9e1933; }
.calendar-day.outside { background: transparent; color: #a2b2ba; }
.calendar-controls { align-items: end; display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; margin: 1.25rem 0; }
.calendar-controls p { margin: 0; }
.municipal-company-group { border-top: 1px solid var(--line); margin: 2.25rem 0; padding-top: 1.6rem; }
.municipal-company-heading { align-items: flex-start; display: flex; justify-content: space-between; margin-bottom: .85rem; }
.municipal-company-heading h2 { margin-bottom: .25rem; }
.municipal-diary-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(330px, 1fr)); }
.municipal-diary-card { display: flex; flex-direction: column; margin: 0; }
.municipal-diary-heading { align-items: flex-start; display: flex; gap: 1rem; justify-content: space-between; }
.municipal-diary-heading h3 { margin-bottom: .35rem; }
.municipal-calendar, .municipal-history { border-top: 1px solid var(--line); margin-top: .9rem; padding-top: .85rem; }
.municipal-calendar summary, .municipal-history summary { color: var(--ink); cursor: pointer; font-size: .86rem; font-weight: 730; }
.municipal-calendar .calendar-grid { margin-top: .85rem; }
.municipal-history .doe-document { padding: .7rem 0; }
.municipal-diary-card .inline-actions { border-top: 1px solid var(--line); margin-top: 1rem; padding-top: .9rem; }
.municipal-empty { max-width: 680px; }
.municipal-admin-summary { align-items: stretch; display: grid; gap: .75rem; grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(210px, 1.5fr); margin-bottom: 1.4rem; }
.municipal-admin-summary > div, .municipal-admin-summary > form { background: var(--surface); border: 1px solid var(--line); border-radius: 15px; display: grid; gap: .25rem; margin: 0; padding: .85rem 1rem; }
.municipal-admin-summary strong { color: var(--ink-strong); font-size: 1.28rem; }.municipal-admin-summary span { color: var(--muted); font-size: .78rem; font-weight: 650; }
.municipal-admin-summary form { align-items: end; grid-template-columns: minmax(0, 1fr) auto; }
.municipal-admin-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(285px, 1fr)); }
.municipal-company-card { align-items: center; background: linear-gradient(135deg, rgba(255,255,255,.74), rgba(230,246,242,.55)); color: var(--text); display: grid; gap: .8rem; grid-template-columns: auto 1fr auto; margin: 0; padding: 1rem; text-align: left; }
.municipal-company-card:hover { background: linear-gradient(135deg, #fff, #ddf2ed); border-color: rgba(91,159,148,.35); color: var(--text); transform: translateY(-1px); }
.municipal-company-card-copy { display: grid; gap: .2rem; min-width: 0; }.municipal-company-card-copy small { color: var(--brand-strong); font-size: .65rem; font-weight: 800; letter-spacing: .1em; }.municipal-company-card-copy strong { color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.municipal-company-card-copy span { color: var(--muted); font-size: .78rem; }.municipal-review-count { background: var(--warning-soft); border-radius: 999px; color: var(--warning); font-size: .72rem; font-weight: 760; padding: .35rem .5rem; white-space: nowrap; }
.municipal-company-modal { max-height: min(88dvh, 860px); overflow-y: auto; }.municipal-diary-stack { display: grid; gap: .7rem; margin: 1.2rem 0; }.municipal-diary-detail { background: rgba(255,255,255,.44); border: 1px solid var(--line); border-radius: 13px; }.municipal-diary-detail > summary { align-items: center; cursor: pointer; display: flex; gap: .75rem; justify-content: space-between; list-style: none; padding: .9rem 1rem; }.municipal-diary-detail > summary::-webkit-details-marker { display: none; }.municipal-diary-detail > summary span:first-child { display: grid; gap: .2rem; }.municipal-diary-detail > summary small { font-size: .75rem; }.municipal-diary-detail-body { border-top: 1px solid var(--line); padding: 1rem; }.municipal-diary-quick-actions { align-items: center; display: flex; flex-wrap: wrap; gap: .75rem; justify-content: space-between; }.municipal-edit { border-top: 1px solid var(--line); margin-top: .9rem; padding-top: .8rem; }.municipal-edit summary { color: var(--brand-strong); cursor: pointer; font-size: .84rem; font-weight: 750; }.municipal-edit form { margin-top: .9rem; }.municipal-review-panel { border-top: 1px solid var(--line); margin-top: 1.25rem; padding-top: 1rem; }
.municipal-new-modal { max-width: 820px; width: min(70vw, 820px); }
.municipal-new-form { gap: 1.25rem; margin-top: 1.4rem; }
.municipal-form-section { border-top: 1px solid var(--line); padding-top: 1rem; }
.municipal-form-step { color: var(--brand-strong); font-size: .72rem; font-weight: 800; letter-spacing: .09em; margin-bottom: .85rem; text-transform: uppercase; }
.municipal-form-fields { display: grid; gap: .9rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.field-optional { color: var(--muted); font-size: .72rem; font-weight: 560; }
.municipal-scope-section { background: #f0f4ed; border-left: 3px solid var(--brand); padding: 1rem; }
.municipal-scope-section .municipal-form-step { margin-bottom: .35rem; }
.municipal-scope-hint { font-size: .84rem; margin-bottom: .9rem; }
.municipal-scope-group { margin: 0; }
.municipal-scope-group[hidden] { display: none; }
.municipal-form-actions { border-top: 1px solid var(--line); display: flex; justify-content: flex-end; padding-top: 1rem; }
.municipal-filter-bar { align-items: end; background: #e5ebe1; border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; gap: .85rem; grid-template-columns: repeat(3, minmax(160px, 1fr)) auto; margin: 0 0 1.4rem; padding: .85rem 1rem; }.municipal-filter-actions { align-items: center; display: flex; flex-wrap: wrap; gap: .65rem; }.municipal-filter-actions .text-link { font-size: .8rem; white-space: nowrap; }.municipal-filter-empty { background: var(--surface); border: 1px solid var(--line); border-left: 4px solid var(--info); margin: 1rem 0; max-width: 680px; padding: 1.2rem; }.municipal-filter-empty h2 { font-size: 1.2rem; }.municipal-filter-empty p { line-height: 1.5; }.municipal-edit-form { margin-top: .9rem; }.municipal-danger-zone { background: #f8ece8; border-left: 3px solid var(--danger); margin-top: 1.25rem; padding: .9rem 1rem; }.municipal-danger-zone .eyebrow { color: var(--danger); margin-bottom: .35rem; }.municipal-danger-zone .muted { font-size: .8rem; line-height: 1.5; margin-bottom: .65rem; }.municipal-danger-zone form { display: block; }
.admin-notification { align-items: flex-start; border-top: 1px solid var(--line); display: grid; gap: .85rem; grid-template-columns: 10px minmax(0, 1fr) auto; padding: 1rem 0; }.admin-notification-unread { background: rgba(229,235,225,.55); margin-left: -1rem; margin-right: -1rem; padding-left: 1rem; padding-right: 1rem; }.admin-notification-mark { border-radius: 50%; height: 9px; margin-top: .45rem; width: 9px; }.admin-notification-mark.info { background: var(--info); }.admin-notification-mark.attention { background: var(--warning); }.admin-notification-mark.critical { background: var(--danger); }.admin-notification h2 { margin-bottom: .3rem; }.admin-notification .eyebrow { margin-bottom: .25rem; }.admin-notification-actions { align-items: flex-end; display: flex; flex-direction: column; gap: .5rem; }.admin-notification-actions form { display: block; }.admin-notification-actions button { min-height: 34px; padding: .4rem .6rem; }
.inline-form { align-items: end; display: flex; flex-wrap: wrap; }
.inline-form label { min-width: 145px; }
.assessment { background: #f1f8f5; border-left: 3px solid #54b497; margin-top: 1rem; padding: .85rem 1rem; }
.assessment p { margin-bottom: .55rem; }.assessment p:last-child { margin-bottom: 0; }
.pagination { align-items: center; display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; margin: 1.5rem 0; }
.pagination > span:first-child { color: var(--muted); font-size: .84rem; }
.pagination-links { align-items: center; display: flex; flex-wrap: wrap; gap: .3rem; }
.pagination a { border-radius: 7px; color: var(--brand-strong); font-size: .86rem; font-weight: 750; padding: .45rem .65rem; text-decoration: none; }
.pagination a:hover, .pagination a.current { background: var(--brand-soft); }
.operations-section { margin-top: 1.25rem; }
.operations-metrics .metric small { color: var(--muted); display: block; font-size: .77rem; line-height: 1.4; margin-top: .45rem; }
.section-heading { align-items: start; display: flex; gap: 1.5rem; justify-content: space-between; margin-bottom: 1.2rem; }.section-heading h2 { margin: .1rem 0 0; }.section-heading .muted { margin: .2rem 0 0; max-width: 34rem; text-align: right; }
.operations-table { display: grid; gap: .55rem; }.operations-table > div { align-items: center; border-top: 1px solid var(--line); display: grid; font-size: .88rem; gap: 1rem; grid-template-columns: 1.1fr .8fr 2.2fr 1fr; padding: .85rem 0; }.operations-table .operations-table-head { border-top: 0; color: var(--muted); font-size: .68rem; font-weight: 700; letter-spacing: .1em; padding-top: 0; text-transform: uppercase; }.operations-table form { margin: 0; }

@media (max-width: 1080px) { .filters { grid-template-columns: repeat(3, minmax(0, 1fr)); } .filters button { width: fit-content; } .radar-filters { grid-template-columns: minmax(220px, 1fr) auto auto; } .filter-fields { grid-template-columns: repeat(3, minmax(150px, 1fr)); } .opportunity-editorial { grid-template-columns: 72px minmax(0, 1fr) 138px; } }
@media (max-width: 760px) {
  .login-page { align-items: flex-start; }
  .login-layout { gap: 1.8rem; grid-template-columns: 1fr; margin-top: 1rem; }
  .login-introduction { max-width: none; }
  .login-introduction h1 { font-size: clamp(2.65rem, 12vw, 4.3rem); }
  .login-brand { margin-bottom: 1.8rem; }
  .app-topbar { gap: .7rem; grid-template-columns: auto 1fr; min-height: 58px; padding: .7rem 1rem; }
  .brand { font-size: 1.05rem; }.brand-mark { border-radius: 8px; flex-basis: 28px; height: 28px; width: 28px; }.brand-mark svg { height: 19px; width: 19px; }
  .topbar-nav { justify-content: flex-end; overflow-x: auto; }.topbar-nav a { font-size: .8rem; padding: .42rem .55rem; white-space: nowrap; }
  .topbar-account { display: none; }
  .page-content { padding: 1.5rem 1rem 2rem; }
  .page-heading { display: grid; gap: 1rem; }.heading-actions { justify-content: flex-start; }
  .dashboard-metrics { grid-template-columns: repeat(2, 1fr); }.dashboard-metrics .card:nth-child(3) { border-left: 0; }.dashboard-metrics .card { min-height: 112px; }.dashboard-grid { grid-template-columns: 1fr; }
  .alert-card { grid-template-columns: auto minmax(0, 1fr); }.alert-card-actions { align-items: flex-start; flex-direction: row; grid-column: 2; }
  .brazil-map-card { grid-template-columns: 1fr; }.brazil-map { height: 190px; }.territory-map { min-height: 360px; }
  .metric-grid { grid-template-columns: 1fr; }.metric { min-height: auto; }
  .metric + .metric { border-left: 0; }
  .filters { grid-template-columns: 1fr 1fr; }.filters button { width: 100%; }
  .radar-filters { grid-template-columns: 1fr auto; margin-left: -1rem; margin-right: -1rem; padding: .75rem 1rem; }.radar-filters button { grid-column: 1 / -1; }.filter-disclosure { justify-self: end; }.filter-fields { grid-template-columns: 1fr 1fr; right: 0; width: min(560px, calc(100vw - 2rem)); }
  .radar-priority { align-items: flex-start; display: grid; grid-template-columns: 1fr; }.radar-states { justify-content: flex-start; }
  .opportunity-editorial { gap: .9rem; grid-template-columns: 64px minmax(0, 1fr); }.opportunity-score { padding-right: .7rem; }.opportunity-deadline { border-left: 0; border-top: 1px solid var(--line); grid-column: 1 / -1; grid-template-columns: auto 1fr; padding: .7rem 0 0; }.opportunity-deadline small { margin: 0; }.opportunity-deadline strong { justify-self: end; }
  .opportunity-highlights { grid-template-columns: 1fr 1fr; }.opportunity-highlights span:last-child { grid-column: 1 / -1; }
  .calendar-heading { align-items: flex-start; display: grid; }.calendar-heading form { width: 100%; }.calendar-heading input { min-width: 0; }
  .municipal-admin-summary { grid-template-columns: 1fr 1fr; }.municipal-admin-summary > form { grid-column: 1 / -1; }
  .municipal-filter-bar { grid-template-columns: 1fr 1fr; }.municipal-filter-actions { grid-column: 1 / -1; }
  .admin-notification { grid-template-columns: 10px minmax(0, 1fr); }.admin-notification-actions { align-items: flex-start; flex-direction: row; grid-column: 2; }
  .section-heading { display: block; }.section-heading .muted { text-align: left; }.operations-table > div { gap: .4rem; grid-template-columns: 1fr; }.operations-table .operations-table-head { display: none; }
}
@media (max-width: 520px) {
  .login-page { padding: 1rem; }.login-card { margin-top: 0; }
  .login-source-note { font-size: .62rem; letter-spacing: .06em; }
  .system-notice { bottom: .75rem; right: .75rem; }
  .system-confirmation-actions { display: grid; grid-template-columns: 1fr; }.system-confirmation-actions button { width: 100%; }
  .municipal-new-modal { width: 100%; }.municipal-form-fields { grid-template-columns: 1fr; }.municipal-form-actions button { width: 100%; }
  .municipal-filter-bar { grid-template-columns: 1fr; }.municipal-filter-actions { align-items: stretch; display: grid; }.municipal-filter-actions .text-link { text-align: center; }
  .dashboard-metrics { grid-template-columns: 1fr; }.dashboard-metrics .card + .card { border-left: 0; }
  .brazil-map-card { gap: 1rem; }.brazil-map { height: 160px; }.territory-map { min-height: 250px; padding: .65rem; }.territory-map-svg { max-height: 280px; width: 100%; }.territory-metrics { grid-template-columns: 1fr; }.territory-metrics > div + div { border-left: 0; border-top: 1px solid var(--line); padding-left: 0; }
  .filters, .opportunity-highlights, .company-card { grid-template-columns: 1fr; }.opportunity-highlights span:last-child { grid-column: auto; }
  .opportunity-editorial { grid-template-columns: 1fr; }.opportunity-score { border-bottom: 1px solid var(--line); border-right: 0; grid-template-columns: auto 1fr; padding: 0 0 .65rem; }.opportunity-score strong { font-size: 1.5rem; }.opportunity-score small { align-self: center; }.opportunity-deadline { grid-template-columns: 1fr; }.opportunity-deadline strong { justify-self: start; }.opportunity-open-detail { margin-left: 0; width: 100%; }
  .opportunity-top { align-items: flex-start; }.opportunity-top .eligibility { margin-left: 0; }
  dl { gap: .3rem; grid-template-columns: 1fr; } dd { margin-bottom: .6rem; }
  .opportunity-modal, .company-modal { border-left: 0; border-radius: 24px 24px 0 0; box-shadow: 0 -12px 40px #071b2e2b; height: min(92dvh, 900px); inset: auto 0 0; max-width: none; padding: 1.25rem; width: 100%; }
  .filter-fields { grid-template-columns: 1fr; left: 0; right: auto; width: calc(100vw - 2rem); }
  .signal-actions { align-items: stretch; display: grid; }.signal-actions > span { margin-bottom: .2rem; }.signal-actions form, .signal-actions button { width: 100%; }
  .dashboard-metrics, .dashboard-grid { grid-template-columns: 1fr; }.activity-row { display: block; }.dashboard-section .activity-row { display: flex; }
  .alerts-summary { grid-template-columns: 1fr; }.alerts-summary > div + div { border-left: 0; border-top: 1px solid var(--line); }.alert-card { grid-template-columns: auto minmax(0, 1fr); }.alert-card-actions { align-items: flex-start; flex-direction: column; grid-column: 2; }
  .municipalities-summary { grid-template-columns: 1fr; }.municipalities-summary > div + div { border-left: 0; border-top: 1px solid var(--line); }.municipality-card-heading { display: grid; }.municipality-card-heading .text-link { margin-top: .85rem; }
  .calendar-grid { gap: .2rem; }.calendar-day { border-radius: 5px; min-height: 2rem; padding: .4rem .1rem; }
}
@media (prefers-reduced-motion: reduce) { .dashboard-radar-link:hover { animation: none; } }
