:root {
  color-scheme: light;
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  --portal-ink: #17241f;
  --portal-muted: #6f7c76;
  --portal-green: #0b6b50;
  --portal-green-dark: #0b3b31;
  --portal-mint: #dff4eb;
  --portal-line: #dce6e0;
  --portal-surface: #ffffff;
}
* { box-sizing: border-box; }
body { margin: 0; color: var(--portal-ink); }
button, input, select, textarea { font: inherit; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.login-page { min-height: 100vh; background: #f2f6f3; }
.login-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(420px, 48%) 1fr; }
.login-story {
  position: relative; overflow: hidden; padding: clamp(34px, 5vw, 74px);
  display: flex; flex-direction: column; justify-content: space-between;
  color: #fff; background:
    radial-gradient(circle at 88% 12%, #7bd5b54d 0 10%, transparent 34%),
    radial-gradient(circle at 5% 92%, #e4ad3f2e 0 8%, transparent 32%),
    linear-gradient(145deg, #0d4f40 0%, #092f29 58%, #071f1c 100%);
}
.login-story::after { content: ""; position: absolute; inset: 11% -24% auto auto; width: 430px; height: 430px; border: 1px solid #ffffff1f; border-radius: 50%; box-shadow: 0 0 0 70px #ffffff09, 0 0 0 140px #ffffff07; }
.portal-brand { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 13px; width: max-content; color: inherit; text-decoration: none; }
.brand-mark, .mobile-brand-mark { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; font-size: 22px; font-weight: 900; }
.portal-brand-light .brand-mark { color: #0b493b; background: #a5dfc9; box-shadow: inset 0 0 0 1px #fff5; }
.portal-brand b { display: block; font-size: 17px; letter-spacing: .11em; }
.portal-brand small { display: block; margin-top: 2px; color: #c4d9d1; font-size: 11px; letter-spacing: .04em; }
.story-copy { position: relative; z-index: 1; max-width: 620px; margin: auto 0; padding: 70px 0; }
.story-kicker, .eyebrow-login { display: block; color: #9bdac3; font-size: 11px; font-weight: 800; letter-spacing: .14em; }
.story-copy h1 { margin: 18px 0 22px; font-size: clamp(42px, 5.5vw, 76px); line-height: .98; letter-spacing: -.055em; }
.story-copy p { max-width: 560px; margin: 0; color: #cce0d8; font-size: clamp(16px, 1.5vw, 20px); line-height: 1.6; }
.story-status { position: relative; z-index: 1; display: flex; align-items: center; gap: 12px; width: max-content; padding: 12px 16px; border: 1px solid #ffffff1c; border-radius: 14px; background: #ffffff0d; backdrop-filter: blur(10px); }
.status-dot { width: 9px; height: 9px; border-radius: 50%; background: #88e0bd; box-shadow: 0 0 0 6px #88e0bd1a; }
.story-status b, .story-status small { display: block; }
.story-status b { font-size: 12px; }
.story-status small { margin-top: 2px; color: #b8d1c8; font-size: 11px; }
.login-panel { display: grid; place-items: center; align-content: center; min-width: 0; padding: 38px clamp(24px, 6vw, 90px); }
.login-card { width: min(100%, 440px); }
.mobile-brand-mark { display: none; color: #fff; background: var(--portal-green); }
.login-card-head h2 { margin: 10px 0 12px; font-size: clamp(32px, 4vw, 44px); line-height: 1.05; letter-spacing: -.04em; }
.login-card-head p { margin: 0 0 34px; color: var(--portal-muted); line-height: 1.55; }
.login-form { display: grid; gap: 20px; }
.login-form label > span { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 750; }
.field-wrap { position: relative; }
.field-wrap input { width: 100%; height: 54px; padding: 0 102px 0 46px; color: var(--portal-ink); border: 1px solid #cedbd3; border-radius: 13px; outline: none; background: #fff; transition: border-color .18s, box-shadow .18s; }
.field-wrap input:focus { border-color: #4ca98a; box-shadow: 0 0 0 4px #2f9a7817; }
.field-icon { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: #789087; font-size: 13px; font-weight: 900; }
.password-toggle { position: absolute; right: 9px; top: 50%; transform: translateY(-50%); padding: 8px 9px; color: var(--portal-green); border: 0; background: transparent; font-size: 11px; font-weight: 800; cursor: pointer; }
.login-submit { height: 56px; margin-top: 5px; padding: 0 18px; display: flex; align-items: center; justify-content: center; gap: 10px; color: #fff; border: 0; border-radius: 13px; background: linear-gradient(135deg, #0b7557, #095a46); box-shadow: 0 13px 28px #0a60482b; font-weight: 800; cursor: pointer; transition: transform .18s, box-shadow .18s; }
.login-submit:hover { transform: translateY(-1px); box-shadow: 0 16px 34px #0a604839; }
.login-submit span { font-size: 19px; }
.login-help { margin: 23px 0 0; color: #7a8781; text-align: center; font-size: 12px; }
.login-alert { margin: -12px 0 22px; padding: 12px 14px; color: #8b3434; border: 1px solid #efc3c3; border-radius: 12px; background: #fff3f3; font-size: 13px; line-height: 1.45; }
.login-alert-info { color: #315f51; border-color: #bcdacf; background: #eef8f4; }
.login-form :disabled { cursor: not-allowed; opacity: .58; }
.login-footer { margin: 58px 0 0; color: #97a39d; font-size: 11px; }

.portal-page { min-height: 100vh; overflow: hidden; background: #edf2ee; }
.portal-sidebar { position: fixed; inset: 0 auto 0 0; z-index: 20; width: 238px; padding: 22px 16px 16px; display: flex; flex-direction: column; color: #d6e5df; background: linear-gradient(180deg, #0b3a31, #082b25 70%, #07241f); box-shadow: 9px 0 27px #173f3014; }
.sidebar-brand { margin: 0 7px 31px; color: #fff; }
.sidebar-brand .brand-mark { width: 36px; height: 36px; border-radius: 13px; font-size: 20px; color: #0b493b; background: #9edbc4; }
.sidebar-brand b { font-size: 15px; }
.sidebar-brand small { font-size: 10px; }
.sidebar-nav { min-height: 0; padding-right: 3px; display: grid; gap: 6px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: #ffffff21 transparent; }
.nav-label { margin: 0 12px 8px; color: #7fa89a; font-size: 9px; font-weight: 850; letter-spacing: .14em; }
.nav-label-secondary { margin-top: 18px; }
.nav-link { min-height: 42px; padding: 0 11px; display: flex; align-items: center; gap: 11px; color: #bdd2ca; border-radius: 11px; text-decoration: none; font-size: 12px; font-weight: 650; transition: background .18s, color .18s; }
.nav-link:hover { color: #fff; background: #ffffff0c; }
.nav-link.active { color: #fff; background: linear-gradient(135deg, #147357, #105b49); box-shadow: inset 0 0 0 1px #ffffff0b, 0 9px 22px #041d1838; }
.nav-icon { display: grid; place-items: center; width: 23px; height: 23px; color: #9ccfbd; font-size: 17px; }
.nav-link.active .nav-icon { color: #c5f0df; }
.nav-link small { margin-left: auto; color: #74988b; font-size: 9px; }
.nav-badge { padding: 4px 6px; border-radius: 20px; color: #b9d7cc !important; background: #ffffff0d; }
.nav-disabled { opacity: .58; cursor: default; }
.nav-link-sheet { width: 100%; min-height: 36px; border: 0; background: transparent; font-size: 11px; cursor: pointer; }
.nav-link-sheet .nav-icon { width: 20px; height: 20px; font-size: 13px; font-weight: 850; }
.sidebar-user { flex: 0 0 auto; margin-top: 12px; padding: 14px 10px 0; display: flex; align-items: center; gap: 10px; border-top: 1px solid #ffffff12; }
.user-avatar { display: grid; place-items: center; flex: 0 0 38px; width: 38px; height: 38px; border-radius: 12px; color: #0b4b3c; background: #a3dbc6; font-weight: 900; }
.user-meta { min-width: 0; flex: 1; }
.user-meta b, .user-meta small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-meta b { color: #eff8f4; font-size: 12px; }
.user-meta small { margin-top: 3px; color: #83a89a; font-size: 10px; }
.sidebar-user form { margin: 0; }
.logout-button { width: 32px; height: 32px; color: #9fbbb0; border: 0; border-radius: 9px; background: transparent; cursor: pointer; }
.logout-button:hover { color: #fff; background: #ffffff0c; }
.portal-workspace { min-width: 0; min-height: 100vh; margin-left: 238px; display: flex; flex-direction: column; }
.portal-topbar { min-height: 101px; padding: 20px 29px; display: flex; align-items: center; gap: 16px; border-bottom: 1px solid #dce5df; background: #f7faf8; }
.portal-breadcrumb { color: #87958e; font-size: 9px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.portal-topbar h1 { margin: 5px 0 3px; color: #173e34; font-size: 23px; letter-spacing: -.025em; }
.portal-topbar p { margin: 0; color: #74817b; font-size: 11px; }
.portal-version { display: inline-block; margin-left: 7px; padding: 2px 6px; color: #55736a; border: 1px solid #d3e0da; border-radius: 10px; background: #eef4f1; font-size: 9px; font-weight: 750; vertical-align: 1px; }
.topbar-actions { margin-left: auto; display: flex; align-items: center; gap: 14px; }
.topbar-export { padding: 10px 13px; color: #0b684e; border: 1px solid #bed8ce; border-radius: 10px; background: #fff; text-decoration: none; font-size: 11px; font-weight: 800; }
.topbar-export:hover { background: #eef8f4; }
.topbar-export-primary { color: #fff; border-color: #0c6f53; background: #0c6f53; }
.topbar-export-primary:hover { background: #095d46; }
.topbar-date { padding: 9px 13px; border-left: 1px solid #d9e3dd; }
.topbar-date span, .topbar-date b { display: block; }
.topbar-date span { color: #8b9892; font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.topbar-date b { margin-top: 4px; color: #35584e; font-size: 12px; }
.menu-toggle { display: none; width: 42px; height: 42px; border: 1px solid #d5e0da; border-radius: 11px; background: #fff; color: #31594e; cursor: pointer; }
.portal-main { flex: 1; min-height: 0; padding: clamp(22px, 3vw, 42px); }
.portal-main-dashboard { padding: 0; }
.dashboard-frame { display: block; width: 100%; height: calc(100vh - 101px); border: 0; background: #edf2ee; }
.future-hero { min-height: calc(100vh - 196px); padding: clamp(34px, 7vw, 92px); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; border: 1px solid #dce5df; border-radius: 24px; background: radial-gradient(circle at 50% 0, #d8f0e7 0, transparent 42%), #f9fbfa; box-shadow: 0 8px 28px #244b3b0b; }
.future-icon { display: grid; place-items: center; width: 74px; height: 74px; margin-bottom: 25px; color: #0d6e52; border: 1px solid #b8ddcf; border-radius: 23px; background: #e4f4ee; font-size: 34px; }
.future-kicker { color: #0d7254; font-size: 10px; font-weight: 850; letter-spacing: .15em; }
.future-hero h2, .knowledge-intro h2 { margin: 13px 0 14px; color: #173f34; font-size: clamp(32px, 4vw, 52px); line-height: 1.05; letter-spacing: -.045em; }
.future-hero > p, .knowledge-intro p { max-width: 720px; margin: 0; color: #6f7e77; font-size: 15px; line-height: 1.7; }
.future-roadmap { width: min(100%, 780px); margin-top: 44px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.future-roadmap span { padding: 19px; color: #50665d; border: 1px solid #dce7e1; border-radius: 15px; background: #fff; font-size: 12px; }
.future-roadmap b { display: block; margin-bottom: 8px; color: #0d7254; font-size: 11px; }
.knowledge-intro { padding: 28px 2px 32px; }
.knowledge-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.knowledge-grid article { min-height: 210px; padding: 24px; display: flex; align-items: flex-start; gap: 18px; border: 1px solid #dae5df; border-radius: 18px; background: #fff; box-shadow: 0 6px 22px #244b3b0a; }
.knowledge-grid article > span { display: grid; place-items: center; flex: 0 0 50px; height: 50px; color: #0b6c50; border-radius: 15px; background: #e1f3ec; font-weight: 900; }
.knowledge-grid h3 { margin: 3px 0 8px; color: #21483d; font-size: 17px; }
.knowledge-grid p { margin: 0; color: #76837d; font-size: 12px; line-height: 1.55; }
.knowledge-grid small { display: inline-block; margin-top: 28px; padding: 6px 8px; color: #779287; border-radius: 8px; background: #f1f5f3; font-size: 9px; text-transform: uppercase; letter-spacing: .05em; }

.portal-content-page { overflow: auto; }
.news-page { width: min(100%, 1500px); margin: 0 auto; padding-top: 28px; color: #1d2e28; }
.news-overview { min-height: 128px; padding: 25px 27px; display: flex; align-items: center; gap: 28px; border: 1px solid #d3e3dc; border-radius: 20px; background: radial-gradient(circle at 88% 8%, #bfe9d96e 0, transparent 28%), linear-gradient(135deg, #f9fcfa, #f0f7f3); box-shadow: 0 8px 28px #244b3b08; }
.news-overview-copy { min-width: 0; }
.news-eyebrow { display: block; margin-bottom: 9px; color: #0b7557; font-size: 9px; font-weight: 900; letter-spacing: .16em; }
.news-overview h2 { margin: 0; color: #173e34; font-size: clamp(24px, 3vw, 35px); line-height: 1.07; letter-spacing: -.035em; }
.news-overview p { max-width: 740px; margin: 10px 0 0; color: #66766f; font-size: 12px; line-height: 1.6; }
.news-inline-actions { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 8px; }
.news-inline-actions a { padding: 8px 11px; color: #176149; border: 1px solid #c3dbd1; border-radius: 9px; background: #fff; text-decoration: none; font-size: 10px; font-weight: 800; }
.news-inline-actions a:hover { border-color: #93c6b3; }
.news-inline-actions a.is-primary { color: #fff; border-color: #126d53; background: #126d53; }
.news-live-state { flex: 0 0 auto; margin-left: auto; padding: 13px 15px; display: flex; align-items: center; gap: 12px; border: 1px solid #b9ddcf; border-radius: 13px; background: #eff9f5; box-shadow: 0 7px 20px #175f470b; }
.news-live-dot { width: 9px; height: 9px; border-radius: 50%; background: #16805f; box-shadow: 0 0 0 5px #16805f18; }
.news-live-state b, .news-live-state small { display: block; }
.news-live-state b { color: #155c47; font-size: 11px; }
.news-live-state small { margin-top: 3px; color: #62877a; font-size: 9px; }
.news-metrics { margin: 14px 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.news-metrics article { min-height: 67px; padding: 12px 14px; display: flex; align-items: center; gap: 11px; border: 1px solid #dbe5df; border-radius: 14px; background: #fff; box-shadow: 0 5px 16px #244b3b07; }
.metric-icon { display: grid; place-items: center; flex: 0 0 34px; width: 34px; height: 34px; border-radius: 10px; font-size: 15px; font-weight: 900; }
.metric-icon-green { color: #0d7657; background: #e1f4ec; }
.metric-icon-amber { color: #976917; background: #fff3d8; }
.metric-icon-blue { color: #356982; background: #e4f1f6; }
.metric-icon-ink { color: #475b54; background: #edf1ef; font-size: 8px; }
.news-metrics b, .news-metrics small { display: block; }
.news-metrics b { color: #24493f; font-size: 14px; line-height: 1.1; }
.news-metrics small { margin-top: 4px; color: #85928c; font-size: 9px; }
.news-controls { padding: 11px; display: grid; grid-template-columns: minmax(260px, 1fr) minmax(210px, 290px); gap: 10px; border: 1px solid #d9e4de; border-radius: 15px; background: #f8faf9; }
.news-search-wrap { position: relative; }
.news-search-wrap > span { position: absolute; left: 14px; top: 50%; transform: translateY(-52%); color: #6e887e; font-size: 20px; }
.news-search-wrap input, .news-topic-select select { width: 100%; height: 43px; color: #29463e; border: 1px solid #d4dfd9; border-radius: 11px; outline: none; background: #fff; font-size: 11px; transition: border-color .18s, box-shadow .18s; }
.news-search-wrap input { padding: 0 14px 0 42px; }
.news-topic-select select { padding: 0 36px 0 13px; cursor: pointer; }
.news-search-wrap input:focus, .news-topic-select select:focus { border-color: #5da88f; box-shadow: 0 0 0 3px #2f9a7813; }
.news-tabs { min-height: 53px; margin-top: 13px; display: flex; align-items: center; gap: 5px; border-bottom: 1px solid #d8e3dd; }
.news-tab { align-self: stretch; padding: 0 12px; color: #73817b; border: 0; border-bottom: 2px solid transparent; background: transparent; font-size: 10px; font-weight: 800; cursor: pointer; }
.news-tab:hover { color: #1f5a49; }
.news-tab.active { color: #0a6a4f; border-bottom-color: #0c7a5a; }
.news-tab span { display: inline-grid; place-items: center; min-width: 20px; height: 19px; margin-left: 4px; padding: 0 5px; color: #788a83; border-radius: 10px; background: #e9efec; font-size: 8px; }
.news-tab.active span { color: #0b684e; background: #dcf0e8; }
.news-result-count { margin-left: auto; color: #8b9892; font-size: 9px; }
.news-result-count b { color: #426258; }
.news-feed { padding-top: 16px; }
.news-featured { display: grid; grid-template-columns: minmax(0, 1fr) 188px; border: 1px solid #cbded5; border-radius: 19px; overflow: hidden; background: #fff; box-shadow: 0 12px 32px #1c4a3a0b; }
.news-featured-main { min-width: 0; padding: 24px 26px 21px; }
.news-card-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.news-card-meta time { margin-left: auto; color: #919c97; font-size: 9px; }
.news-status, .news-law, .news-topic { display: inline-flex; align-items: center; min-height: 23px; padding: 0 8px; border-radius: 7px; font-size: 8px; font-weight: 850; letter-spacing: .025em; }
.news-status-upcoming { color: #8a5514; background: #fff0ce; }
.news-status-active { color: #08704f; background: #ddf3ea; }
.news-status-archive { color: #68756f; background: #e9eeeb; }
.news-law { color: #fff; background: #147256; }
.news-law-dark { background: #4e5f59; }
.news-topic { color: #49655c; background: #edf3f0; }
.news-mark { display: inline-flex; align-items: center; min-height: 23px; padding: 0 8px; color: #7d5b13; border: 1px solid #ead49e; border-radius: 7px; background: #fff8df; font-size: 8px; font-weight: 850; letter-spacing: .025em; }
.news-mark-manual { color: #5a4783; border-color: #d9ccec; background: #f5efff; }
.news-featured h3 { max-width: 960px; margin: 15px 0 10px; color: #173f34; font-size: clamp(21px, 2.6vw, 30px); line-height: 1.16; letter-spacing: -.028em; }
.news-featured-main > p { max-width: 1000px; margin: 0; color: #697871; font-size: 12px; line-height: 1.65; }
.news-action-grid { margin-top: 18px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 9px; }
.news-action-grid > div { padding: 13px 14px; border: 1px solid #deebe5; border-radius: 12px; background: #f7faf8; }
.news-action-grid span { display: block; margin-bottom: 5px; color: #0d6d51; font-size: 8px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.news-action-grid p { margin: 0; color: #566b63; font-size: 10px; line-height: 1.52; }
.news-source-row { margin-top: 17px; display: flex; align-items: center; flex-wrap: wrap; gap: 17px; }
.news-source-row a, .news-article footer a { color: #5f776e; text-decoration: none; font-size: 9px; font-weight: 750; }
.news-source-row a:hover, .news-article footer a:hover { color: #0b6d50; }
.news-source-row .news-primary-link { color: #0b6d50; }
.news-source-row a span, .news-article footer a span { margin-left: 3px; font-size: 12px; }
.news-deadline { padding: 25px 18px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #fff; text-align: center; background: radial-gradient(circle at 50% 0, #70c7a641 0, transparent 47%), linear-gradient(160deg, #0d5745, #09382f); }
.news-deadline > span { color: #9ed6c2; font-size: 8px; font-weight: 850; letter-spacing: .13em; }
.news-deadline b { margin: 8px 0 -4px; font-size: 53px; line-height: 1; letter-spacing: -.05em; }
.news-deadline strong { color: #dcefe8; font-size: 13px; }
.news-deadline small { margin-top: 21px; padding-top: 13px; color: #9fc5b8; border-top: 1px solid #ffffff17; font-size: 9px; line-height: 1.45; }
.news-list { margin-top: 12px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.news-article { min-width: 0; padding: 20px; display: flex; flex-direction: column; border: 1px solid #d8e4de; border-radius: 17px; background: #fff; box-shadow: 0 7px 23px #244b3b08; }
.news-article-featured { grid-column: 1 / -1; border-color: #b9d9cc; background: radial-gradient(circle at 92% 8%, #cbeee17a 0, transparent 24%), #fff; }
.news-article[hidden], .news-featured[hidden] { display: none; }
.news-article h3 { margin: 13px 0 8px; color: #20483d; font-size: 17px; line-height: 1.32; letter-spacing: -.015em; }
.news-article-featured h3 { max-width: 1050px; font-size: clamp(21px, 2.4vw, 29px); }
.news-article > p { margin: 0; color: #5f7069; font-size: 11px; line-height: 1.65; }
.news-article .news-action-grid { margin-top: 15px; }
.news-article .news-action-grid > div { min-height: 80px; }
.news-action { margin-top: 14px; padding: 11px 12px; color: #52675f; border-left: 3px solid #57a98b; border-radius: 0 9px 9px 0; background: #f1f7f4; font-size: 9.5px; line-height: 1.5; }
.news-action b { color: #166049; }
.news-article footer { margin-top: auto; padding-top: 16px; display: flex; align-items: center; flex-wrap: wrap; gap: 14px; }
.news-article footer .news-primary-link { color: #0b6d50; }
.news-article.is-archived { background: #fbfcfb; }
.news-empty-state { padding: 58px 20px; text-align: center; border: 1px dashed #cfdcd5; border-radius: 17px; background: #f7faf8; }
.news-empty-state > span { display: block; color: #8aa197; font-size: 30px; }
.news-empty-state h3 { margin: 9px 0 5px; color: #31544a; font-size: 16px; }
.news-empty-state p { margin: 0; color: #7e8c86; font-size: 10px; }
.news-empty-state button { margin-top: 15px; padding: 9px 12px; color: #0b694f; border: 1px solid #bdd8cd; border-radius: 9px; background: #fff; font-size: 9px; font-weight: 800; cursor: pointer; }
.news-update-note { margin: 18px 0 2px; color: #8a9690; text-align: center; font-size: 9px; line-height: 1.5; }
.portal-notice { margin: 14px 0; padding: 13px 15px; border: 1px solid #c8ded5; border-radius: 12px; font-size: 11px; line-height: 1.55; }
.portal-notice-success { color: #195f49; background: #eef8f4; }
.portal-notice-error { color: #803737; border-color: #efcaca; background: #fff3f3; }
.portal-notice ul { margin: 7px 0 0; padding-left: 19px; }

.methodology-page { display: grid; gap: 14px; }
.methodology-hero, .methodology-section, .methodology-card, .news-form-intro, .news-form-card { border: 1px solid #d5e2dc; border-radius: 18px; background: #fff; box-shadow: 0 7px 24px #244b3b08; }
.methodology-hero { min-height: 150px; padding: 27px; display: flex; align-items: center; gap: 28px; background: radial-gradient(circle at 88% 8%, #c1eadb70 0, transparent 29%), linear-gradient(135deg, #fbfdfc, #f0f7f3); }
.methodology-hero > div { min-width: 0; }
.methodology-hero h2, .news-form-intro h2 { margin: 0; color: #173e34; font-size: clamp(25px, 3vw, 36px); line-height: 1.1; letter-spacing: -.035em; }
.methodology-hero p, .news-form-intro p { max-width: 820px; margin: 10px 0 0; color: #65766f; font-size: 12px; line-height: 1.65; }
.methodology-back { flex: 0 0 auto; margin-left: auto; padding: 11px 14px; color: #fff; border-radius: 10px; background: #126d53; text-decoration: none; font-size: 11px; font-weight: 850; }
.methodology-section, .methodology-card { padding: 23px; }
.methodology-heading { display: flex; align-items: flex-start; gap: 12px; }
.methodology-heading > span { display: grid; place-items: center; flex: 0 0 34px; height: 34px; color: #116b51; border-radius: 10px; background: #e1f3ec; font-size: 10px; font-weight: 900; }
.methodology-heading h3 { margin: 1px 0 4px; color: #254c41; font-size: 17px; }
.methodology-heading p { margin: 0; color: #7a8983; font-size: 10px; line-height: 1.5; }
.source-directory { margin-top: 18px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.source-directory a { min-height: 82px; padding: 13px 37px 13px 14px; position: relative; color: inherit; border: 1px solid #e0e9e5; border-radius: 12px; background: #fafcfb; text-decoration: none; }
.source-directory a:hover { border-color: #a9d0c0; background: #f3faf7; }
.source-directory b, .source-directory small { display: block; }
.source-directory b { color: #285247; font-size: 11px; }
.source-directory small { margin-top: 6px; color: #7d8b85; font-size: 9px; line-height: 1.45; }
.source-directory a > span { position: absolute; right: 13px; top: 12px; color: #337962; font-size: 13px; }
.methodology-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.methodology-card > a { margin: 15px 12px 0 46px; display: inline-flex; color: #13674f; text-decoration: none; font-size: 10px; font-weight: 800; }
.methodology-rule { margin: 17px 0 0 46px; padding: 11px 12px; color: #586d65; border-left: 3px solid #5caa8c; background: #f2f8f5; font-size: 10px; line-height: 1.55; }
.keyword-groups, .focus-grid { margin-top: 17px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.keyword-groups > div, .focus-grid > div { padding: 14px; border: 1px solid #e0e9e5; border-radius: 12px; background: #fafcfb; }
.keyword-groups b, .focus-grid b { color: #2b5449; font-size: 10px; }
.keyword-groups p, .focus-grid p { margin: 6px 0 0; color: #71817a; font-size: 9.5px; line-height: 1.58; }
.focus-grid .focus-high { border-color: #b9dbce; background: #eff9f5; }
.focus-grid .focus-excluded { border-color: #ead7d2; background: #fff8f6; }
.source-suggestion { margin-top: 12px; padding: 15px 17px; display: flex; align-items: center; gap: 18px; border-radius: 12px; color: #e9f6f1; background: linear-gradient(135deg, #0c5e49, #0a4337); }
.source-suggestion b { flex: 0 0 auto; font-size: 11px; }
.source-suggestion p { margin: 0; color: #bedacf; font-size: 10px; line-height: 1.55; }

.news-form-page { max-width: 1100px; }
.news-form-intro { margin-bottom: 14px; padding: 24px 26px; background: linear-gradient(135deg, #fbfdfc, #f0f7f3); }
.news-form-card { padding: 24px; }
.news-form-card > h2 { margin: 0 0 8px; color: #254c41; }
.news-form-card > p { color: #6c7c75; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.form-field { min-width: 0; }
.form-field-span { grid-column: 1 / -1; }
.form-field > span { display: block; margin-bottom: 7px; color: #35584e; font-size: 10px; font-weight: 850; }
.form-field input, .form-field select, .form-field textarea { width: 100%; color: #29463e; border: 1px solid #cfddd6; border-radius: 10px; outline: none; background: #fff; font-size: 11px; transition: border-color .18s, box-shadow .18s; }
.form-field input, .form-field select { height: 44px; padding: 0 12px; }
.form-field textarea { min-height: 92px; padding: 11px 12px; line-height: 1.55; resize: vertical; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: #5da88f; box-shadow: 0 0 0 3px #2f9a7813; }
.form-field small { display: block; margin-top: 5px; color: #8a9690; font-size: 8px; }
.news-form-actions { margin-top: 20px; display: flex; align-items: center; gap: 13px; }
.news-form-actions button { min-height: 44px; padding: 0 18px; color: #fff; border: 0; border-radius: 10px; background: #0c6f53; font-size: 11px; font-weight: 850; cursor: pointer; }
.news-form-actions button:hover { background: #095d46; }
.news-form-actions a, .form-secondary-link { color: #55736a; text-decoration: none; font-size: 10px; font-weight: 750; }

.sheet-page { width: 100%; min-width: 0; padding-top: 28px; color: #1d2e28; }
.sheet-overview { min-height: 126px; padding: 24px 27px; display: flex; align-items: center; gap: 26px; border: 1px solid #d3e3dc; border-radius: 20px; background: radial-gradient(circle at 90% 10%, #bfe9d96b 0, transparent 28%), linear-gradient(135deg, #f9fcfa, #f0f7f3); box-shadow: 0 8px 28px #244b3b08; }
.sheet-overview > div:first-child { min-width: 0; }
.sheet-eyebrow { display: block; margin-bottom: 8px; color: #0b7557; font-size: 9px; font-weight: 900; letter-spacing: .14em; }
.sheet-overview h2 { margin: 0; color: #173e34; font-size: clamp(24px, 3vw, 34px); line-height: 1.08; letter-spacing: -.035em; }
.sheet-overview p { margin: 9px 0 0; color: #66766f; font-size: 12px; line-height: 1.55; }
.sheet-summary { flex: 0 0 auto; margin-left: auto; display: grid; grid-template-columns: repeat(3, minmax(90px, 1fr)); border: 1px solid #cfe0d8; border-radius: 14px; overflow: hidden; background: #ffffffc7; box-shadow: 0 7px 20px #175f4709; }
.sheet-summary span { min-height: 67px; padding: 12px 15px; display: flex; flex-direction: column; justify-content: center; border-left: 1px solid #dce8e2; }
.sheet-summary span:first-child { border-left: 0; }
.sheet-summary b { color: #174d3e; font-size: 15px; line-height: 1.15; white-space: nowrap; }
.sheet-summary small { margin-top: 5px; color: #789087; font-size: 8px; letter-spacing: .045em; text-transform: uppercase; }
.sheet-toolbar { min-height: 65px; margin: 13px 0; padding: 10px 12px; display: flex; align-items: center; gap: 12px; border: 1px solid #d9e4de; border-radius: 15px; background: #f8faf9; }
.sheet-search { position: relative; flex: 1 1 420px; max-width: 720px; }
.sheet-search > span:first-child { position: absolute; left: 14px; top: 50%; transform: translateY(-52%); color: #6e887e; font-size: 20px; }
.sheet-search input { width: 100%; height: 43px; padding: 0 14px 0 42px; color: #29463e; border: 1px solid #d4dfd9; border-radius: 11px; outline: none; background: #fff; font-size: 11px; transition: border-color .18s, box-shadow .18s; }
.sheet-search input:focus { border-color: #5da88f; box-shadow: 0 0 0 3px #2f9a7813; }
.sheet-result-count { margin-left: auto; color: #7b8983; font-size: 9px; white-space: nowrap; }
.sheet-result-count b { color: #356156; }
.sheet-readonly { padding: 7px 9px; color: #60766d; border-radius: 8px; background: #e8efeb; font-size: 8px; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
.sheet-table-card { position: relative; min-width: 0; border: 1px solid #d5e1db; border-radius: 17px; overflow: hidden; background: #fff; box-shadow: 0 9px 28px #244b3b09; }
.sheet-table-scroll { max-height: calc(100vh - 360px); min-height: 260px; overflow: auto; scrollbar-color: #aec5bb #eef3f0; }
.sheet-table { width: max-content; min-width: 100%; border-spacing: 0; border-collapse: separate; font-size: 10px; }
.sheet-table th, .sheet-table td { min-width: 132px; max-width: 340px; padding: 12px 13px; text-align: left; vertical-align: top; border-right: 1px solid #e2eae6; border-bottom: 1px solid #e4ebe7; white-space: normal; overflow-wrap: anywhere; line-height: 1.48; }
.sheet-table th { position: sticky; top: 0; z-index: 3; min-height: 50px; color: #355d51; background: #edf5f1; font-size: 8.5px; font-weight: 850; letter-spacing: .025em; text-transform: uppercase; box-shadow: inset 0 -1px #cfddd6; }
.sheet-table td { color: #465a53; background: #fff; }
.sheet-table tbody tr:nth-child(even) td { background: #fbfcfb; }
.sheet-table tbody tr:hover td { background: #f3f8f5; }
.sheet-table th:first-child, .sheet-table td:first-child { position: sticky; left: 0; z-index: 2; min-width: 74px; max-width: 110px; }
.sheet-table th:first-child { z-index: 4; background: #e5f0eb; }
.sheet-table tbody tr:nth-child(odd) td:first-child { background: #fff; }
.sheet-table tbody tr:nth-child(even) td:first-child { background: #fbfcfb; }
.sheet-table tbody tr:hover td:first-child { background: #f3f8f5; }
.sheet-table .sheet-empty { color: #a8b2ad; text-align: center; }
.sheet-empty-state { min-height: 260px; padding: 50px 20px; align-items: center; justify-content: center; flex-direction: column; text-align: center; background: #fbfcfb; }
.sheet-empty-state:not([hidden]) { display: flex; }
.sheet-empty-state span { color: #87a096; font-size: 30px; }
.sheet-empty-state b { margin-top: 8px; color: #31544a; font-size: 15px; }
.sheet-empty-state small { margin-top: 5px; color: #7e8c86; font-size: 9px; }
.sheet-source-note { margin: 13px 2px 0; color: #89958f; font-size: 8.5px; line-height: 1.5; }
.sidebar-backdrop { display: none; }
@media (max-width: 900px) {
  .login-shell { grid-template-columns: 1fr; }
  .login-story { display: none; }
  .login-panel { min-height: 100vh; }
  .mobile-brand-mark { display: grid; margin-bottom: 28px; }
  .portal-sidebar { transform: translateX(-100%); transition: transform .22s ease; }
  .sidebar-open .portal-sidebar { transform: translateX(0); }
  .portal-workspace { margin-left: 0; }
  .menu-toggle { display: block; }
  .sidebar-backdrop { position: fixed; inset: 0; z-index: 15; background: #071f1c8f; }
  .sidebar-open .sidebar-backdrop { display: block; }
  .knowledge-grid { grid-template-columns: 1fr; }
  .news-overview { align-items: flex-start; }
  .news-live-state { max-width: 250px; }
  .news-metrics { grid-template-columns: repeat(2, 1fr); }
  .news-featured { grid-template-columns: 1fr; }
  .source-directory { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .news-deadline { min-height: 108px; padding: 17px 20px; display: grid; grid-template-columns: auto auto auto; justify-content: center; column-gap: 8px; }
  .news-deadline > span, .news-deadline small { grid-column: 1 / -1; }
  .news-deadline b { margin: 2px 0 0; font-size: 35px; }
  .news-deadline strong { align-self: end; padding-bottom: 4px; }
  .news-deadline small { margin-top: 7px; padding-top: 8px; }
  .sheet-overview { align-items: flex-start; }
  .sheet-summary { grid-template-columns: 1fr; min-width: 145px; }
  .sheet-summary span { min-height: 52px; border-left: 0; border-top: 1px solid #dce8e2; }
  .sheet-summary span:first-child { border-top: 0; }
  .sheet-table-scroll { max-height: calc(100vh - 390px); }
}
@media (max-width: 520px) {
  .login-panel { padding: 28px 20px; }
  .login-card-head h2 { font-size: 34px; }
  .login-footer { margin-top: 42px; text-align: center; }
  .portal-topbar { min-height: 100px; padding: 17px 16px; }
  .portal-topbar p, .topbar-date, .topbar-export { display: none; }
  .portal-topbar h1 { font-size: 21px; }
  .dashboard-frame { height: calc(100vh - 100px); }
  .portal-main { padding: 15px; }
  .future-hero { min-height: calc(100vh - 130px); padding: 34px 18px; }
  .future-roadmap { grid-template-columns: 1fr; margin-top: 30px; }
  .news-page { padding-top: 15px; }
  .news-overview { min-height: 0; padding: 20px; display: block; }
  .news-overview h2 { font-size: 27px; }
  .news-live-state { max-width: none; margin: 17px 0 0; }
  .news-metrics { grid-template-columns: 1fr 1fr; }
  .news-metrics article { padding: 10px; }
  .metric-icon { flex-basis: 30px; width: 30px; height: 30px; }
  .news-controls { grid-template-columns: 1fr; }
  .news-tabs { overflow-x: auto; }
  .news-tab { flex: 0 0 auto; }
  .news-result-count { display: none; }
  .news-featured-main { padding: 19px 18px; }
  .news-card-meta time { width: 100%; margin: 3px 0 0; }
  .news-action-grid, .news-list { grid-template-columns: 1fr; }
  .news-article-featured { grid-column: auto; }
  .news-source-row { align-items: flex-start; flex-direction: column; gap: 10px; }
  .methodology-hero { display: block; }
  .methodology-back { display: inline-flex; margin: 17px 0 0; }
  .methodology-grid, .source-directory, .keyword-groups, .focus-grid, .form-grid { grid-template-columns: 1fr; }
  .form-field-span { grid-column: auto; }
  .methodology-card > a, .methodology-rule { margin-left: 0; }
  .source-suggestion { align-items: flex-start; flex-direction: column; gap: 6px; }
  .sheet-page { padding-top: 15px; }
  .sheet-overview { min-height: 0; padding: 20px; display: block; }
  .sheet-overview h2 { font-size: 27px; }
  .sheet-summary { margin: 17px 0 0; grid-template-columns: repeat(3, 1fr); }
  .sheet-summary span { min-height: 58px; padding: 10px; border-top: 0; border-left: 1px solid #dce8e2; }
  .sheet-summary span:first-child { border-left: 0; }
  .sheet-summary b { font-size: 12px; }
  .sheet-toolbar { align-items: stretch; flex-wrap: wrap; }
  .sheet-search { flex-basis: 100%; max-width: none; }
  .sheet-result-count { margin: 0; align-self: center; }
  .sheet-readonly { margin-left: auto; align-self: center; }
  .sheet-table-scroll { max-height: calc(100vh - 420px); }
}

/* Берёзка 3.0.2 */
.berezka-body { margin: 0; background: #edf4ef; color: #173f38; }
.berezka-dashboard { min-height: 100vh; padding: 17px 22px 34px; font-family: Inter, "Segoe UI", Arial, sans-serif; }
.berezka-source-note { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 13px; padding: 11px 14px; border: 1px solid #bfe1d5; border-radius: 13px; background: #e3f4ed; color: #496761; font-size: 11px; }
.berezka-source-note b { color: #006b57; }
.berezka-metrics { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin-bottom: 23px; }
.berezka-metrics article, .berezka-metrics a { display: block; min-height: 84px; padding: 17px; border: 1px solid #d5e1dc; border-radius: 15px; background: #fff; color: inherit; text-decoration: none; box-shadow: 0 8px 22px rgba(24, 74, 64, .04); }
.berezka-metrics a:hover { border-color: #9ccdbd; transform: translateY(-1px); }
.berezka-metrics b { display: block; color: #006b57; font-size: 19px; line-height: 1.15; white-space: nowrap; }
.berezka-metrics span { display: block; margin-top: 9px; color: #657873; font-size: 10px; line-height: 1.35; }
.berezka-section-head { display: flex; justify-content: space-between; align-items: end; gap: 22px; margin-bottom: 12px; }
.berezka-section-head > div > span { color: #006b57; font-size: 10px; font-weight: 900; letter-spacing: .12em; }
.berezka-section-head h1 { margin: 5px 0 0; color: #073f35; font-size: 27px; }
.berezka-section-head p { max-width: 520px; margin: 0; color: #657873; text-align: right; font-size: 11px; line-height: 1.4; }
.berezka-news-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 11px; margin-bottom: 17px; }
.berezka-news-card { display: flex; min-height: 125px; flex-direction: column; padding: 13px; border: 1px solid #d5e1dc; border-radius: 14px; background: #fff; color: inherit; text-decoration: none; }
.berezka-news-card:hover { border-color: #9ccdbd; box-shadow: 0 8px 22px rgba(24, 74, 64, .07); }
.berezka-news-card > div { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.berezka-news-card time { color: #788a86; font-size: 9px; }
.berezka-news-card h2 { margin: 11px 0 7px; color: #093f36; font-size: 12px; line-height: 1.35; }
.berezka-news-card p { margin: 0; color: #6a7f7a; font-size: 9px; }
.berezka-news-card strong { margin-top: auto; color: #006b57; font-size: 9px; }
.berezka-news-card .berezka-news-deadline { margin-top: 10px; color: #8b5a00; font-size: 11px; line-height: 1.45; }
.berezka-news-card .berezka-news-delivery { margin: 7px 0 10px; color: #315e53; font-size: 10px; line-height: 1.45; }
.berezka-verification { margin: 6px 0 14px; color: #617c73; font-size: 11px; line-height: 1.5; }
img.brand-mark, img.mobile-brand-mark { object-fit: contain; border-radius: 8px; }
.berezka-chip { display: inline-flex; padding: 5px 8px; border-radius: 999px; background: #e7f3ee; color: #176754; font-size: 8px; font-weight: 900; white-space: nowrap; }
.berezka-chip.is-complete { background: #dff3e9; color: #00644f; }
.berezka-chip.is-running { background: #fff0c7; color: #845900; }
.berezka-chip.is-stopped { background: #f8e1e2; color: #9b3034; }
.berezka-chip.is-signed { background: #e2eef8; color: #1b5f88; }
.berezka-chip.is-unverified { background: #edf0ef; color: #60716d; }
.berezka-filters { display: grid; grid-template-columns: 1.2fr 1fr 1fr .8fr .8fr .6fr; gap: 8px; margin-bottom: 16px; padding: 14px; border: 1px solid #d5e1dc; border-radius: 14px; background: #fff; }
.berezka-filters select, .berezka-filters input, .berezka-filters button { width: 100%; height: 39px; border: 1px solid #cad8d2; border-radius: 8px; background: #fff; color: #23483f; font: inherit; font-size: 10px; }
.berezka-filters select, .berezka-filters input { padding: 0 10px; }
.berezka-filters button { border-color: #e7aa22; background: #e7aa22; color: #173b34; font-weight: 900; cursor: pointer; }
.berezka-filters p { grid-column: 1 / -1; margin: 0 2px; color: #6f817d; font-size: 9px; }
.berezka-groups { display: grid; gap: 12px; }
.berezka-group { overflow: hidden; border: 1px solid #d5e1dc; border-radius: 14px; background: #fff; }
.berezka-group[hidden] { display: none; }
.berezka-group summary { display: grid; grid-template-columns: minmax(240px, 1.4fr) repeat(3, minmax(105px, .45fr)); gap: 14px; align-items: center; padding: 15px 17px; cursor: pointer; list-style: none; }
.berezka-group summary::-webkit-details-marker { display: none; }
.berezka-group summary span > b { display: block; color: #11483e; font-size: 13px; }
.berezka-group summary span:first-child > b { font-size: 14px; }
.berezka-group summary small { display: block; margin-top: 4px; color: #748681; font-size: 8px; }
.berezka-table-wrap { overflow: auto; border-top: 1px solid #e1e9e5; }
.berezka-table { width: 100%; min-width: 1620px; border-collapse: collapse; font-size: 9px; }
.berezka-table th { position: sticky; top: 0; z-index: 1; padding: 10px 8px; background: #f6faf8; color: #526a64; text-align: left; text-transform: uppercase; font-size: 7px; letter-spacing: .04em; white-space: nowrap; }
.berezka-table td { padding: 10px 8px; border-top: 1px solid #edf2ef; color: #35534d; line-height: 1.35; vertical-align: top; }
.berezka-table tr[hidden] { display: none; }
.berezka-table a { color: #006b57; font-weight: 850; text-decoration: none; }
.berezka-table a:hover { text-decoration: underline; }
.berezka-object { min-width: 220px; color: #16473e !important; font-weight: 750; }
.berezka-star { color: #dda00d !important; font-size: 16px; text-align: center; }
.berezka-footnote { margin: 13px 2px 0; color: #677c76; font-size: 9px; line-height: 1.5; }
@media (max-width: 1100px) {
  .berezka-metrics { grid-template-columns: repeat(3, 1fr); }
  .berezka-news-grid { grid-template-columns: repeat(2, 1fr); }
  .berezka-filters { grid-template-columns: repeat(3, 1fr); }
  .berezka-group summary { grid-template-columns: 1fr repeat(2, .45fr); }
  .berezka-group summary span:last-child { display: none; }
}
@media (max-width: 600px) {
  .berezka-dashboard { padding: 12px; }
  .berezka-source-note, .berezka-section-head { align-items: flex-start; flex-direction: column; }
  .berezka-section-head p { text-align: left; }
  .berezka-metrics { grid-template-columns: repeat(2, 1fr); }
  .berezka-news-grid, .berezka-filters { grid-template-columns: 1fr; }
  .berezka-group summary { grid-template-columns: 1fr; }
  .berezka-group summary span:not(:first-child) { display: none; }
}
.review-page { display: grid; gap: 22px; max-width: 1480px; }
.review-intro { padding: 30px; border: 1px solid #ddd4ec; border-radius: 20px; background: linear-gradient(115deg, #f6f2fc, #fff); }
.review-intro h2 { margin: 10px 0; font-size: clamp(24px, 3vw, 34px); }
.review-intro p, .review-card p, .review-card li { color: #5c6862; line-height: 1.65; }
.review-eyebrow { color: #7042a7; font-size: 11px; font-weight: 800; letter-spacing: .12em; }
.review-star { color: #8050cc; }
.review-stage-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.review-card { padding: 26px; border: 1px solid var(--portal-line); border-radius: 18px; background: #fff; overflow-wrap: anywhere; }
.review-card h3 { margin: 12px 0; }
.review-card ul { padding-left: 18px; }
.review-card li { margin-bottom: 12px; }
.review-step { color: #8050cc; background: #f2eafa; border-radius: 10px; padding: 8px 12px; display: inline-block; font-weight: 800; }
.review-pills { display: flex; flex-wrap: wrap; gap: 10px; }
.review-pills > *, .review-status { display: inline-block; padding: 7px 12px; border-radius: 30px; background: #eee7f7; color: #65438a; font-size: 13px; }
.review-button { display: inline-block; border: 0; border-radius: 9px; padding: 12px 18px; background: #7346aa; color: #fff; text-decoration: none; cursor: pointer; margin-top: 12px; }
.review-card summary { cursor: pointer; font-weight: 700; padding: 5px 0; }
.review-form { display: grid; gap: 16px; padding-top: 20px; max-width: 850px; }
.review-form label { display: grid; gap: 7px; font-size: 14px; font-weight: 600; }
.review-form input, .review-form textarea { width: 100%; min-width: 0; padding: 11px; border: 1px solid #cdd8d1; border-radius: 8px; background: #fff; color: var(--portal-ink); }
.review-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.review-text { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; line-height: 1.6; }
@media (max-width: 1100px) { .review-stage-grid { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .review-intro, .review-card { padding: 20px; } .review-form-row { grid-template-columns: 1fr; } }
.review-launch { display: flex; align-items: end; gap: 16px; flex-wrap: wrap; }
.review-launch label { display: grid; gap: 8px; font-size: 14px; font-weight: 600; }
.review-launch input { padding: 12px; border: 1px solid #cdd8d1; border-radius: 9px; min-width: 260px; }
.review-button:disabled { opacity: .5; cursor: not-allowed; }
.review-warning { background: #fff7e8; border-left: 3px solid #d79b39; padding: 12px 16px; border-radius: 4px; }
.review-findings { display: grid; gap: 16px; }
.review-finding-risk { border-left: 4px solid #da8b3e; }
.review-finding-expert, .review-finding-insufficient { border-left: 4px solid #a890ba; }
.review-finding-no_findings { border-left: 4px solid #3b9877; }
.review-citation { margin-top: 14px; background: #f5f6f7; padding: 12px; border-radius: 10px; }
.review-citation summary { font-size: 12px; }
.review-citation blockquote, .review-term blockquote { margin: 12px 0; white-space: pre-wrap; line-height: 1.6; color: #49564f; }
.review-history-row { display: flex; gap: 16px; align-items: center; justify-content: space-between; padding: 18px 0; border-bottom: 1px solid var(--portal-line); }
.review-history-row small, .review-source small { display: block; margin-top: 8px; color: var(--portal-muted); font-size: 12px; }
.review-source, .review-term { padding: 18px 0; border-bottom: 1px solid var(--portal-line); }
.review-source p { margin: 7px 0; }
.review-stage-grid { margin-top: 20px; }

/* Compact procurement review */
.compact-purchase h2{font-size:1.35rem;overflow-wrap:anywhere}.compact-meta,.compact-report-meta{display:flex;gap:12px;flex-wrap:wrap;color:#667085;font-size:.88rem}.compact-purchase form{margin:18px 0 8px}.compact-hint{display:block;color:#667085}.compact-info{display:grid;grid-template-columns:minmax(100px,1fr) 2fr;gap:8px 16px;font-size:.88rem}.compact-info dt{color:#667085}.compact-info dd{margin:0;overflow-wrap:anywhere}.compact-block h3{margin:6px 0 20px}.compact-match{margin:16px 0}.compact-verdict{display:inline-block;padding:4px 9px;border-radius:7px;font-size:.82rem;margin:4px 6px;background:#fff4d5;color:#825600}.compact-verdict-yes,.compact-verdict-current{background:#e7f6ed;color:#176c40}.compact-verdict-no,.compact-verdict-outdated{background:#feeceb;color:#a22c26}.compact-national{background:#f5f6f9;border-radius:10px;padding:14px;margin:16px 0}.compact-national.needs-attention{background:#fff7e4;border-left:3px solid #e0a427}.compact-national p{margin:8px 0}.compact-reference{padding:12px 0;border-bottom:1px solid #e9ebf0}.compact-detail{border:1px solid #ded1f5;border-radius:10px;padding:14px;margin-top:18px;background:#fcfaff}.compact-detail summary{color:#743bb2;font-weight:600;cursor:pointer}.compact-detail form{margin-top:14px}.compact-checkbox{display:flex!important;align-items:flex-start;gap:8px}.compact-checkbox input{width:auto!important;margin-top:4px}.compact-answer{padding:16px;border-left:3px solid #9760d1;background:#faf7fd;margin:14px 0;overflow-wrap:anywhere}.compact-sources{font-size:.85rem;color:#667085;margin:10px 0}.compact-sources blockquote{margin:10px 0;padding-left:12px;border-left:2px solid #c9c0df}.compact-sources small{display:block}.compact-report-meta{margin:12px 0}.compact-block p{line-height:1.55}@media(max-width:600px){.compact-info{grid-template-columns:1fr}.compact-info dd{margin-bottom:8px}.compact-verdict{margin-left:0}.compact-block{padding:18px}.compact-detail{padding:12px}}

/* Procurement review workspace v3 */
.review-workspace-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}.review-workspace-heading h2{font-size:28px;margin:6px 0}.review-workspace-heading p{color:#74827e;margin:0}.review-provider{font-size:12px;border:1px solid #d9e2de;border-radius:20px;padding:9px 12px;white-space:nowrap;background:#fff}.review-case-hero{background:linear-gradient(125deg,#103f34,#165446);color:#fff;padding:30px;border-radius:22px;box-shadow:0 12px 28px #133c3010}.review-case-topline{display:flex;justify-content:space-between;gap:12px;color:#acd5c4;font-size:12px;letter-spacing:.06em}.review-case-hero h2{font-size:27px;line-height:1.35;max-width:920px;margin:20px 0 10px;color:white}.review-case-customer{color:#b9d5c9;font-size:13px}.review-case-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:25px 0;padding:21px 0;border-top:1px solid #ffffff24;border-bottom:1px solid #ffffff24}.review-case-facts small{display:block;color:#abc7b9;font-size:12px;margin-bottom:9px}.review-case-facts b{font-size:15px;overflow-wrap:anywhere}.review-case-actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.review-case-actions form{margin:0}.review-case-actions .review-button{background:#c4edd1;color:#133e30;border:0;font-weight:650}.review-case-eis{color:#d0e5db;text-decoration:none}.review-case-registry{border-top:1px solid #ffffff24;margin-top:22px;padding-top:15px;font-size:12px;color:#d1e1d8}.review-case-registry .compact-info dt{color:#b4cdbf}.review-case-method{display:flex;align-items:flex-start;gap:14px;background:#eef3ef;padding:18px 20px;border-radius:14px;margin:20px 0;color:#345449}.review-case-method>span{font-size:26px}.review-case-method p{font-size:13px;line-height:1.6;margin:4px 0 0;color:#6a7e74}.review-case-method>small{margin-left:auto;max-width:230px;font-size:12px;color:#6a7e74}.review-case-sections{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0}.review-case-sections a{padding:14px 18px;border:1px solid #dce5df;border-radius:12px;background:#fff;color:#7d54b5;text-decoration:none;font-size:13px;font-weight:650}.review-case-sections span{color:#385246;margin-left:8px}.review-case-block{border-radius:18px;scroll-margin-top:20px;padding:26px}.review-case-block-title{display:flex;align-items:center;gap:14px;margin-bottom:22px}.review-case-block-title .review-step{margin:0;min-width:42px;text-align:center}.review-case-block-title small{font-size:10px;letter-spacing:.13em;color:#7d8b85}.review-case-block-title h3{margin:4px 0 0;font-size:21px}.review-case-assessment{padding:14px 17px;background:#f3f0fa;border-radius:12px;color:#67458d;margin-bottom:16px;font-size:12px}.review-case-assessment p{margin:6px 0 0}.review-case-history .review-history-row{padding:15px 0}.review-case-hero .review-launch input{color:#1d382d;background:#fff}.review-case-hero .review-eyebrow{color:#bce5cc}@media(max-width:850px){.review-case-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.review-case-method>small{display:none}.review-case-hero h2{font-size:23px}}@media(max-width:600px){.review-workspace-heading{display:block}.review-provider{display:inline-block;margin-top:14px}.review-case-hero{padding:22px}.review-case-topline{flex-direction:column}.review-case-hero h2{font-size:21px}.review-case-sections{grid-template-columns:1fr;gap:6px}.review-case-block{padding:20px}.review-case-block-title h3{font-size:19px}}
.review-evidence{margin:16px 0;padding:18px;border:1px solid #dce4e0;border-radius:12px;background:#fff;color:#21362e}.review-evidence blockquote{margin:12px 0;padding:0 0 0 14px;border-left:3px solid #a88aca;font-size:15px;line-height:1.7;color:#273c34}.review-evidence-note{font-size:14px;color:#645221}.review-evidence-links{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:14px}.review-evidence-links a{font-size:14px;font-weight:600;color:#64369b}.review-clarifications{color:#263c33}.review-clarifications summary{font-size:17px;font-weight:700}.review-clarifications ul{padding-left:22px}.review-clarifications li{font-size:16px;line-height:1.75;margin:16px 0;max-width:1000px}.review-region{margin:18px 0;border:1px solid #dde6e0;border-radius:12px;padding:16px}.review-region>summary{font-size:17px;font-weight:700;color:#233e31;cursor:pointer}.review-region>summary span{display:inline-block;padding:2px 9px;border-radius:20px;background:#edf0fa;font-size:13px;color:#633d92}.review-delivery{background:#f4f0fa;border-radius:12px;padding:20px;margin:20px 0}.review-delivery h4{font-size:23px;margin:10px 0;color:#49316a}.review-delivery small{font-weight:700;letter-spacing:.05em;color:#624c7c}.review-comparison{border:1px solid #ddd4e8;border-radius:12px;padding:20px;margin:20px 0}.review-comparison h4{font-size:18px;margin:0 0 12px}.review-source-page{max-width:1080px;margin:32px auto;padding:0 20px}.review-source-page>.review-card{margin:24px 0}.review-source-page h1{font-size:25px;overflow-wrap:anywhere}.review-source-paragraph{font-size:16px;line-height:1.75;overflow-wrap:anywhere;color:#243b30}.review-history-row{gap:18px}.review-history-row a{overflow-wrap:anywhere}
