:root {
  --blue: #4132F5;
  --blue-deep: #2f23d8;
  --cyan: #06BCE5;
  --purple: #9A00C4;
  --pink: #D200B2;
  --sky: #CDE1FF;
  --ink: #242424;
  --muted: #6f7480;
  --line: #E6E8F0;
  --soft: #f5f6fb;
  --white: #ffffff;
  --green: #009162;
  --orange: #E79600;
  --red: #DB2100;
  --radius-xl: 50px;
  --radius-lg: 32px;
  --radius-md: 22px;
  --radius-sm: 14px;
  --gap: 12px;
  --shadow: 0 18px 55px rgba(36, 36, 36, .06);
}

* { box-sizing: border-box; }
html { background: var(--soft); }
body { margin: 0; font-family: "Onest", Arial, Helvetica, sans-serif; color: var(--ink); background: var(--soft); }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
img { max-width: 100%; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 270px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; background: var(--white); padding: 22px 18px; display: flex; flex-direction: column; border-right: 1px solid var(--line); z-index: 10; }
.brand { display: block; padding: 8px 10px 24px; }
.brand img { width: 204px; height: auto; display: block; }
.side-nav { display: grid; gap: 6px; }
.nav-link { display: flex; align-items: center; gap: 12px; padding: 13px 14px; border-radius: 18px; color: #5f6470; font-weight: 650; transition: .2s ease; }
.nav-link:hover { background: #f1f0ff; color: var(--blue); }
.nav-link.active { background: var(--blue); color: white; }
.nav-icon { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 10px; background: rgba(65, 50, 245, .08); font-size: 17px; }
.nav-link.active .nav-icon { background: rgba(255,255,255,.17); }
.side-footer { margin-top: auto; display: grid; gap: 10px; }
.support-card { display: flex; gap: 10px; align-items: center; padding: 14px; border-radius: 20px; background: var(--sky); }
.support-card strong, .support-card small, .user-meta strong, .user-meta small { display: block; }
.support-card small, .user-meta small { color: var(--muted); margin-top: 2px; font-size: 11px; }
.support-dot { width: 10px; height: 10px; background: var(--green); border-radius: 50%; box-shadow: 0 0 0 5px rgba(0,145,98,.12); }
.user-card { display: grid; grid-template-columns: 38px minmax(0,1fr) 34px; gap: 10px; align-items: center; padding: 10px 4px; }
.avatar { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: var(--blue); color: white; font-weight: 800; }
.user-meta { min-width: 0; }
.user-meta strong, .user-meta small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.icon-button { width: 32px; height: 32px; border: 0; border-radius: 50%; background: var(--soft); color: var(--ink); display: grid; place-items: center; font-size: 16px; }
.icon-button:hover { background: var(--line); }
.icon-button.danger { color: var(--red); }

.main-content { min-width: 0; padding: 34px; }
.page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 30px; margin: 4px 0 26px; }
.page-header h1, .application-header h1 { font-size: clamp(34px, 4vw, 54px); letter-spacing: -2px; line-height: 1.02; margin: 4px 0 8px; font-weight: 800; }
.page-header p { max-width: 760px; }
.eyebrow { margin: 0 0 8px; text-transform: uppercase; letter-spacing: .1em; font-size: 11px; font-weight: 800; color: var(--blue); }
.eyebrow.light { color: rgba(255,255,255,.65); }
.muted { color: var(--muted); margin: 0; line-height: 1.55; }
.company-pill { display: flex; align-items: center; gap: 12px; min-width: 230px; padding: 12px 16px; border: 1px solid var(--line); background: white; border-radius: 24px; box-shadow: var(--shadow); }
.company-pill strong, .company-pill small { display:block; }
.company-pill small { color: var(--muted); font-size: 11px; margin-top: 2px; }
.verified { width: 30px; height: 30px; border-radius: 50%; background: rgba(0,145,98,.12); color: var(--green); display: grid; place-items: center; font-weight: 900; }

.hero-card { position: relative; min-height: 330px; border-radius: var(--radius-xl); overflow: hidden; display: grid; grid-template-columns: minmax(0,1fr) 300px; align-items: end; padding: 42px; margin-bottom: 12px; }
.blue-card { color: white; background: var(--blue); }
.hero-card-pattern { position: absolute; inset: 0; background: url('/static/img/pattern-blue.jpg') center/cover no-repeat; opacity: .9; }
.hero-card:after { content:""; position:absolute; inset:0; background: linear-gradient(90deg, rgba(65,50,245,.2), rgba(65,50,245,.28) 55%, rgba(47,35,216,.48)); }
.hero-card-content, .hero-progress { position: relative; z-index: 1; }
.hero-card h2 { font-size: clamp(42px,5vw,68px); line-height: .95; letter-spacing: -3px; margin: 14px 0 20px; }
.hero-card p { max-width: 620px; color: rgba(255,255,255,.78); line-height: 1.55; }
.hero-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:26px; }
.hero-progress { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.16); border-radius: 32px; padding: 24px; backdrop-filter: blur(16px); }
.hero-progress span, .hero-progress small { display:block; color:rgba(255,255,255,.66); }
.hero-progress strong { display:block; font-size:54px; line-height:1; margin:8px 0 14px; }
.hero-progress small { margin-top:12px; line-height:1.4; }

.button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; border: 0; border-radius: 999px; min-height: 46px; padding: 0 20px; font-weight: 750; transition: .2s ease; }
.button:hover { transform: translateY(-1px); }
.button.primary { background: var(--blue); color: white; box-shadow: 0 10px 24px rgba(65,50,245,.18); }
.button.primary:hover { background: var(--blue-deep); }
.button.secondary { background: white; color: var(--ink); border: 1px solid var(--line); }
.button.secondary:hover { border-color: var(--blue); color: var(--blue); }
.button.white { background: white; color: var(--blue); }
.button.ghost-light { background: rgba(255,255,255,.1); color: white; border: 1px solid rgba(255,255,255,.28); }
.button.xl { min-height: 56px; padding: 0 26px; }
.button.tiny { min-height: 36px; padding: 0 13px; font-size: 12px; }
.text-link { color: var(--blue); font-weight: 750; font-size: 13px; }

.tag { display:inline-flex; align-items:center; justify-content:center; min-height:28px; padding:0 11px; border-radius:999px; background:#efeff6; color:#565b66; font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.light-tag { color:white; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.16); }

.dashboard-grid, .content-grid { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: var(--gap); }
.span-12 { grid-column: span 12; }
.span-8 { grid-column: span 8; }
.span-6 { grid-column: span 6; }
.span-4 { grid-column: span 4; }
.panel { background: white; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 26px; box-shadow: var(--shadow); min-width: 0; }
.panel h2, .panel h3 { margin: 2px 0; letter-spacing: -.7px; }
.panel-head { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:20px; }
.rating-list { display:grid; gap:8px; }
.rating-row { display:grid; grid-template-columns:48px minmax(0,1.5fr) 130px 120px 90px 28px; gap:14px; align-items:center; padding:14px; border:1px solid var(--line); border-radius:22px; transition:.2s ease; }
.rating-row:hover { border-color:var(--blue); background:#fafaff; }
.rating-mark { width:48px; height:48px; border-radius:16px; background:var(--blue); color:white; display:grid; place-items:center; font-size:24px; font-weight:900; }
.rating-main strong,.rating-main small,.rating-date span,.rating-date strong { display:block; }
.rating-main small,.rating-date span { color:var(--muted); font-size:11px; margin-top:3px; }
.rating-main small { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rating-date strong { font-size:12px; margin-top:4px; }
.mini-progress span { display:block; font-weight:800; font-size:12px; margin-bottom:5px; }
.mini-progress > .mini-progress-track { height:5px; border-radius:999px; background:var(--line); overflow:hidden; }
.mini-progress i { display:block; height:100%; background:var(--blue); border-radius:inherit; }
.mini-progress.wide { width:130px; }
.status { display:inline-flex; align-items:center; justify-content:center; min-height:28px; padding:0 10px; border-radius:999px; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; white-space:nowrap; }
.status.draft { color:#6a5d00; background:#fff4c2; }
.status.submitted { color:#1648a5; background:#e6f0ff; }
.status.review { color:#5c2e91; background:#f1e6ff; }
.status.needs_changes { color:#8b3300; background:#ffead9; }
.status.accepted { color:#006c49; background:#dff7ef; }
.row-arrow { color:var(--blue); font-size:20px; }
.timeline { display:grid; gap:0; }
.time-item { position:relative; padding:0 0 20px 24px; border-left:1px solid var(--line); }
.time-item:before { content:""; position:absolute; left:-5px; top:2px; width:9px; height:9px; border-radius:50%; background:var(--line); }
.time-item.active:before { background:var(--blue); box-shadow:0 0 0 5px rgba(65,50,245,.12); }
.time-item:last-child { padding-bottom:0; }
.time-item b,.time-item span { display:block; }
.time-item b { font-size:13px; }
.time-item span { color:var(--muted); font-size:11px; margin-top:3px; }
.notice-list { display:grid; gap:10px; }
.notice-item { display:grid; grid-template-columns:34px minmax(0,1fr); gap:12px; padding:15px 0; border-top:1px solid var(--line); }
.notice-item:first-child { border-top:0; padding-top:0; }
.notice-icon { width:34px; height:34px; border-radius:50%; background:#efefff; color:var(--blue); display:grid; place-items:center; }
.notice-item strong { font-size:13px; }
.notice-item p { margin:5px 0; color:var(--muted); font-size:12px; line-height:1.5; }
.notice-item small { color:#9a9ea8; }
.accent-panel { background:var(--sky); border-color:transparent; }
.accent-panel p { color:#556070; line-height:1.55; }
.accent-panel .eyebrow { color:var(--blue); }

.progress-track { height:8px; background:#eaebf1; border-radius:999px; overflow:hidden; }
.progress-track i { display:block; height:100%; border-radius:inherit; background:var(--blue); transition:width .3s ease; }
.progress-track.light { background:rgba(255,255,255,.18); }
.progress-track.light i { background:white; }
.progress-track.large { height:10px; }

.rating-hero { position:relative; overflow:hidden; border-radius:var(--radius-xl); background:var(--blue); color:white; padding:30px 40px 44px; min-height:430px; margin-bottom:12px; }
.rating-hero-pattern { position:absolute; inset:0; background:url('/static/img/pattern-blue.jpg') center/cover no-repeat; opacity:.85; }
.rating-hero:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(65,50,245,.2),rgba(65,50,245,.15),rgba(65,50,245,.45)); }
.rating-hero > * { position:relative; z-index:1; }
.breadcrumb { display:flex; align-items:center; gap:9px; font-size:11px; color:var(--muted); margin-bottom:28px; }
.rating-hero .breadcrumb { color:rgba(255,255,255,.65); }
.breadcrumb a { font-weight:750; }
.rating-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) 220px; align-items:end; gap:40px; min-height:300px; }
.rating-hero h1 { font-size:clamp(56px,7vw,92px); line-height:.9; letter-spacing:-5px; margin:14px 0 22px; }
.rating-hero p { max-width:730px; color:rgba(255,255,255,.72); line-height:1.5; }
.rating-score-card { padding:24px; border-radius:30px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.18); backdrop-filter:blur(12px); }
.rating-score-card small,.rating-score-card strong,.rating-score-card span { display:block; }
.rating-score-card strong { font-size:48px; margin:8px 0 0; }
.rating-score-card span { color:rgba(255,255,255,.6); }
.summary-strip { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; border-radius:30px; background:var(--line); overflow:hidden; margin-bottom:12px; border:1px solid var(--line); }
.summary-strip > div { background:white; padding:20px 22px; }
.summary-strip span,.summary-strip strong { display:block; }
.summary-strip span { font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); margin-bottom:7px; }
.summary-strip strong { font-size:14px; }
.method-blocks { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:22px 0; }
.method-card { min-height:145px; border-radius:28px; padding:22px; display:flex; align-items:flex-end; justify-content:space-between; }
.method-card span { font-size:11px; opacity:.65; }
.method-card h3 { font-size:28px; }
.method-card strong { font-size:54px; line-height:1; }
.blue-method { background:var(--blue); color:white; }
.sky-method { background:var(--sky); color:var(--ink); }
.metrics-table { display:grid; gap:1px; background:var(--line); border-radius:22px; overflow:hidden; }
.metric-row { display:grid; grid-template-columns:80px minmax(0,1fr) 150px 44px; align-items:center; gap:14px; background:white; padding:13px 14px; }
.metric-row strong { font-size:12px; }
.metric-block { font-size:10px; color:var(--muted); }
.weight-bar { height:6px; border-radius:999px; background:#ececf2; overflow:hidden; }
.weight-bar i { display:block; height:100%; background:var(--blue); border-radius:inherit; }
.metric-row b { color:var(--blue); text-align:right; }
.action-panel { position:relative; top:auto; align-self:start; }
.big-progress { margin:25px 0 12px; }
.big-progress strong { font-size:74px; line-height:.9; color:var(--blue); }
.big-progress span { color:var(--muted); margin-left:8px; }
.action-panel p { color:var(--muted); line-height:1.55; font-size:13px; }
.action-panel .button { width:100%; margin-top:10px; }
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.service-chip { min-height:62px; display:flex; gap:10px; align-items:center; padding:12px; border:1px solid var(--line); border-radius:18px; font-size:12px; font-weight:700; }
.service-chip span { min-width:28px; color:var(--blue); font-size:10px; }
.fee-panel { display:grid; grid-template-columns:minmax(0,1.5fr) 1fr 1fr; gap:12px; align-items:stretch; }
.fee-panel h2 { color:var(--blue); font-size:48px; margin:5px 0; }
.fee-panel p { color:var(--muted); font-size:12px; max-width:560px; }
.fee-note { background:var(--soft); border-radius:24px; padding:20px; }
.fee-note strong,.fee-note span { display:block; }
.fee-note strong { font-size:24px; color:var(--blue); margin-bottom:8px; }
.fee-note span { color:var(--muted); font-size:12px; line-height:1.5; }

.application-header { margin-bottom:18px; }
.application-title-row { display:flex; justify-content:space-between; gap:20px; align-items:flex-end; margin-bottom:16px; }
.application-state { display:flex; align-items:center; gap:15px; }
.application-state strong { font-size:30px; color:var(--blue); }
.application-layout { display:grid; grid-template-columns:300px minmax(0,1fr); gap:12px; align-items:start; }
.stepper { position:sticky; top:24px; padding:16px; }
.stepper-head { display:flex; justify-content:space-between; align-items:center; padding:8px 8px 14px; font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); }
.stepper-head b { color:var(--blue); }
.step { display:grid; grid-template-columns:34px minmax(0,1fr); gap:10px; align-items:start; padding:12px 9px; border-radius:18px; }
.step:hover { background:var(--soft); }
.step.active { background:#efefff; }
.step-num { width:30px; height:30px; border-radius:50%; display:grid; place-items:center; background:#f0f1f5; color:#787d88; font-size:11px; font-weight:800; }
.step.complete .step-num { background:rgba(0,145,98,.12); color:var(--green); }
.step.active .step-num { background:var(--blue); color:white; }
.step strong,.step small { display:block; }
.step strong { font-size:12px; }
.step small { font-size:9px; color:var(--muted); line-height:1.4; margin-top:3px; }
.application-form { min-height:680px; padding:34px; }
.section-heading { max-width:800px; margin-bottom:26px; }
.section-heading h2 { font-size:34px; letter-spacing:-1.4px; margin:4px 0 10px; }
.section-heading p:not(.eyebrow) { color:var(--muted); line-height:1.6; font-size:13px; }
.section-form { margin-bottom:26px; }
.form-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:12px; }
.field { display:grid; gap:7px; }
.field > span { color:#666b76; font-size:11px; font-weight:700; }
.field input,.field select,.search-field input { width:100%; height:52px; border:1px solid var(--line); border-radius:18px; background:#fafbfe; color:var(--ink); padding:0 15px; outline:none; transition:.2s ease; }
.field input:focus,.field select:focus,.search-field input:focus { border-color:var(--blue); box-shadow:0 0 0 4px rgba(65,50,245,.08); background:white; }
.field input[readonly] { background:#f2f3f6; color:#747985; }
.form-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:18px; }
.form-row { display:flex; align-items:center; gap:12px; }
.form-row.between { justify-content:space-between; }
.check { display:flex; align-items:flex-start; gap:10px; color:#626773; font-size:12px; line-height:1.45; }
.check input { accent-color:var(--blue); margin-top:2px; }
.large-check { padding:16px; border:1px solid var(--line); border-radius:18px; background:#fafbfe; }
.choice-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
.choice-card { position:relative; display:block; min-height:70px; }
.choice-card input { position:absolute; opacity:0; pointer-events:none; }
.choice-card > span:last-child { display:flex; align-items:center; gap:10px; height:100%; min-height:70px; padding:12px 44px 12px 14px; border:1px solid var(--line); border-radius:18px; font-size:12px; font-weight:700; transition:.2s; }
.choice-card b { color:var(--blue); min-width:22px; font-size:10px; }
.choice-check { position:absolute; right:13px; top:50%; transform:translateY(-50%); width:22px; height:22px; border:1px solid var(--line); border-radius:50%; display:grid; place-items:center; color:transparent; z-index:2; font-size:11px; }
.choice-card input:checked ~ .choice-check { background:var(--blue); color:white; border-color:var(--blue); }
.choice-card input:checked ~ span:last-child { border-color:var(--blue); background:#f4f3ff; }
.upload-block { margin-top:28px; padding-top:26px; border-top:1px solid var(--line); }
.upload-head { display:flex; justify-content:space-between; gap:20px; align-items:end; margin-bottom:14px; }
.upload-head h3 { font-size:18px; }
.file-hint { color:var(--muted); font-size:10px; }
.dropzone { min-height:170px; border:1.5px dashed #c9cbe0; border-radius:28px; background:#fafaff; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:26px; position:relative; transition:.2s ease; }
.dropzone:hover,.dropzone.dragging { border-color:var(--blue); background:#f1f0ff; }
.file-input { position:absolute; inset:0; opacity:0; cursor:pointer; }
.drop-icon { width:42px; height:42px; border-radius:50%; display:grid; place-items:center; background:var(--blue); color:white; font-size:24px; margin-bottom:10px; }
.dropzone strong { font-size:13px; }
.dropzone span,.dropzone small { color:var(--muted); font-size:11px; margin-top:4px; }
.document-list { display:grid; gap:7px; margin-top:12px; }
.document-row { display:grid; grid-template-columns:42px minmax(0,1fr) auto 32px; gap:12px; align-items:center; border:1px solid var(--line); border-radius:18px; padding:10px 12px; }
.file-type { width:42px; height:42px; border-radius:13px; background:#efefff; color:var(--blue); display:grid; place-items:center; font-size:9px; font-weight:900; }
.file-info a { display:block; font-size:12px; font-weight:750; color:var(--ink); }
.file-info small { display:block; color:var(--muted); font-size:9px; margin-top:3px; }
.doc-status { color:var(--green); background:rgba(0,145,98,.09); border-radius:999px; padding:7px 10px; font-size:9px; font-weight:800; }
.empty-docs { padding:14px; text-align:center; color:var(--muted); font-size:11px; border:1px solid var(--line); border-radius:16px; }
.doc-requirements { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
.doc-requirements > div { border:1px solid var(--line); border-radius:20px; padding:15px; display:flex; gap:12px; align-items:flex-start; }
.doc-requirements b { font-size:24px; color:var(--blue); }
.doc-requirements span { color:var(--muted); font-size:11px; line-height:1.45; }
.info-card { padding:18px; border-radius:22px; background:var(--sky); margin:18px 0; }
.info-card strong { color:var(--blue); }
.info-card p { color:#526075; margin:6px 0 0; font-size:12px; line-height:1.5; }
.payment-calc { display:grid; grid-template-columns:1fr auto; gap:5px 14px; background:var(--blue); color:white; border-radius:26px; padding:22px; margin:18px 0; }
.payment-calc span { color:rgba(255,255,255,.65); font-size:11px; }
.payment-calc strong { grid-row:1/3; grid-column:2; font-size:34px; align-self:center; }
.payment-calc small { color:rgba(255,255,255,.7); }
.review-grid { display:grid; gap:8px; margin-bottom:22px; }
.review-row { display:grid; grid-template-columns:34px minmax(0,1fr) 20px; gap:12px; align-items:center; padding:13px; border:1px solid var(--line); border-radius:18px; }
.review-status { width:30px; height:30px; border-radius:50%; display:grid; place-items:center; font-weight:800; }
.review-status.ok { color:var(--green); background:rgba(0,145,98,.1); }
.review-status.wait { color:var(--orange); background:rgba(231,150,0,.12); }
.review-row strong,.review-row small { display:block; }
.review-row strong { font-size:12px; }
.review-row small { color:var(--muted); font-size:10px; margin-top:2px; }
.confirm-form { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:16px 0; }
.submit-zone { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:22px; border-radius:26px; background:var(--soft); }
.submit-zone strong { font-size:18px; }
.submit-zone p { color:var(--muted); font-size:11px; max-width:580px; line-height:1.5; margin:4px 0 0; }

.profile-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:20px; }
.profile-grid > div { border:1px solid var(--line); border-radius:18px; padding:15px; }
.profile-grid span,.profile-grid strong { display:block; }
.profile-grid span { color:var(--muted); font-size:10px; margin-bottom:5px; }
.team-list { display:grid; gap:8px; margin:18px 0; }
.team-row { display:grid; grid-template-columns:38px minmax(0,1fr) auto; gap:10px; align-items:center; }
.team-row strong,.team-row small { display:block; }
.team-row strong { font-size:12px; }.team-row small { color:var(--muted); font-size:10px; }

.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:12px; }
.stat-card { padding:22px; border-radius:28px; background:white; border:1px solid var(--line); box-shadow:var(--shadow); }
.stat-card span,.stat-card strong { display:block; }
.stat-card span { color:var(--muted); font-size:11px; }
.stat-card strong { font-size:44px; color:var(--blue); margin-top:8px; }
.admin-table-panel { padding:20px; }
.search-field { display:flex; align-items:center; gap:8px; border:1px solid var(--line); border-radius:16px; padding-left:12px; color:var(--muted); min-width:260px; }
.search-field input { border:0; background:transparent; height:42px; padding-left:0; box-shadow:none !important; }
.admin-table { display:grid; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:22px; overflow:hidden; }
.admin-tr { display:grid; grid-template-columns:minmax(180px,1.5fr) 120px 140px 80px 140px 90px; align-items:center; gap:12px; padding:13px 14px; background:white; }
.admin-th { background:#f5f6fa; color:var(--muted); font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.admin-tr strong,.admin-tr small { display:block; }
.admin-tr strong { font-size:12px; }.admin-tr small { color:var(--muted); font-size:9px; margin-top:3px; }
.admin-tr select { width:100%; height:34px; border:1px solid var(--line); border-radius:12px; background:white; font-size:10px; padding:0 7px; }

.alert { border-radius:18px; padding:13px 15px; margin:0 0 18px; font-size:12px; font-weight:650; }
.alert.error { background:#fff0ec; color:#9c250d; border:1px solid #ffd2c6; }
.alert.success { background:#e9f8f2; color:#00704b; border:1px solid #c6eddc; }
.toast { position:fixed; right:24px; bottom:24px; z-index:99; max-width:390px; padding:14px 18px; border-radius:18px; background:var(--ink); color:white; box-shadow:0 20px 50px rgba(0,0,0,.18); font-size:12px; transform:translateY(20px); opacity:0; pointer-events:none; transition:.25s ease; }
.toast.show { transform:translateY(0); opacity:1; }

/* Login */
.login-page { min-height:100vh; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr); background:white; }
.login-hero { position:relative; overflow:hidden; min-height:100vh; background:var(--blue); color:white; padding:34px 42px; display:flex; flex-direction:column; }
.hero-pattern { position:absolute; inset:0; background:url('/static/img/pattern-blue.jpg') center/cover no-repeat; opacity:.95; }
.login-hero:after { content:""; position:absolute; inset:0; background:linear-gradient(115deg,rgba(65,50,245,.08),rgba(65,50,245,.16) 60%,rgba(47,35,216,.42)); }
.login-hero > * { position:relative; z-index:1; }
.hero-top { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; }
.hero-logo { width:280px; filter:brightness(0) invert(1); }
.hero-chip { min-height:32px; display:inline-flex; align-items:center; padding:0 13px; border:1px solid rgba(255,255,255,.25); border-radius:999px; color:rgba(255,255,255,.75); font-size:10px; text-transform:uppercase; letter-spacing:.08em; }
.hero-copy { margin:auto 0; max-width:760px; }
.hero-copy h1 { font-size:clamp(70px,8vw,126px); line-height:.83; letter-spacing:-7px; margin:18px 0 30px; }
.hero-copy > p:last-child { max-width:600px; color:rgba(255,255,255,.72); line-height:1.6; font-size:16px; }
.hero-bottom { display:flex; justify-content:space-between; color:rgba(255,255,255,.55); font-size:10px; text-transform:uppercase; letter-spacing:.08em; }
.login-panel { position:relative; display:flex; flex-direction:column; justify-content:center; padding:48px clamp(32px,5vw,86px); background:#f8f9fd url('/static/img/pattern-light.jpg') center/cover no-repeat; }
.login-panel:after { content:""; position:absolute; inset:0; background:rgba(248,249,253,.86); }
.login-panel > * { position:relative; z-index:1; }
.login-box { max-width:470px; width:100%; margin:auto; }
.login-heading h2 { font-size:50px; margin:3px 0 10px; letter-spacing:-2px; }
.login-heading p:not(.eyebrow) { color:var(--muted); line-height:1.5; font-size:13px; }
.stack-form { display:grid; gap:14px; margin-top:28px; }
.divider { position:relative; text-align:center; margin:24px 0 14px; color:var(--muted); font-size:10px; }
.divider:before { content:""; position:absolute; left:0; right:0; top:50%; height:1px; background:var(--line); }
.divider span { position:relative; background:#f8f9fd; padding:0 10px; }
.login-box > .button { width:100%; }
.demo-access { margin-top:18px; padding:14px; border:1px solid var(--line); background:rgba(255,255,255,.75); border-radius:18px; }
.demo-access strong { display:block; font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); margin-bottom:8px; }
.demo-access div { display:flex; gap:8px; flex-wrap:wrap; }
.demo-access code { background:#efefff; color:var(--blue); border-radius:8px; padding:5px 7px; font-size:10px; }
.demo-access small { display:block; color:var(--muted); margin-top:8px; font-size:9px; }
.login-legal { position:absolute; bottom:20px; left:0; right:0; text-align:center; color:#969aa5; font-size:9px; }

@media (max-width: 1180px) {
  .app-shell { grid-template-columns: 220px minmax(0,1fr); }
  .brand img { width:170px; }
  .main-content { padding:24px; }
  .rating-row { grid-template-columns:48px minmax(0,1fr) 110px 90px 28px; }
  .rating-date { display:none; }
  .application-layout { grid-template-columns:250px minmax(0,1fr); }
  .admin-tr { grid-template-columns:minmax(160px,1.5fr) 110px 120px 70px 120px 80px; }
}

@media (max-width: 960px) {
  .app-shell { display:block; }
  .sidebar { position:relative; height:auto; flex-direction:row; align-items:center; padding:12px; border-right:0; border-bottom:1px solid var(--line); }
  .brand { padding:4px 12px 4px 4px; }.brand img{width:150px}.side-nav{display:flex;margin-left:auto}.nav-link{padding:10px}.nav-link span:last-child{display:none}.side-footer{margin:0 0 0 8px}.support-card,.user-meta{display:none}.user-card{grid-template-columns:38px 34px;padding:0}.main-content{padding:18px}
  .span-8,.span-4 { grid-column:span 12; }
  .hero-card { grid-template-columns:1fr; gap:25px; }
  .hero-progress { max-width:360px; }
  .action-panel,.stepper { position:relative; top:auto; }
  .application-layout { grid-template-columns:1fr; }
  .stepper { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; }
  .stepper-head { grid-column:1/-1; }.step small{display:none}.step{grid-template-columns:30px 1fr;padding:8px}.step strong{font-size:10px}
  .services-grid { grid-template-columns:repeat(2,1fr); }
  .fee-panel { grid-template-columns:1fr 1fr; }.fee-panel > div:first-child { grid-column:1/-1; }
  .login-page { grid-template-columns:1fr; }.login-hero{min-height:420px}.hero-copy{margin:auto 0 20px}.hero-copy h1{font-size:70px}.login-panel{min-height:620px}.login-legal{position:relative;bottom:auto;margin-top:30px}
  .admin-table { overflow-x:auto; }.admin-tr{min-width:920px}
}

@media (max-width: 680px) {
  .main-content { padding:12px; }.page-header{display:block}.company-pill{margin-top:16px;width:100%}.hero-card{padding:28px;border-radius:36px}.hero-card h2{font-size:44px}.panel{padding:20px;border-radius:26px}.rating-row{grid-template-columns:42px minmax(0,1fr) 70px 26px;padding:10px}.rating-mark{width:42px;height:42px}.mini-progress,.rating-row .status{display:none}
  .rating-hero{padding:22px;border-radius:36px;min-height:390px}.rating-hero-grid{grid-template-columns:1fr}.rating-hero h1{font-size:58px;letter-spacing:-3px}.rating-score-card{display:none}.summary-strip{grid-template-columns:1fr 1fr}.method-blocks{grid-template-columns:1fr}.metric-row{grid-template-columns:65px minmax(0,1fr) 34px}.weight-bar{display:none}.services-grid{grid-template-columns:1fr}.fee-panel{grid-template-columns:1fr}.fee-panel > div:first-child{grid-column:auto}
  .application-title-row{align-items:flex-start;display:block}.application-state{margin-top:12px}.stepper{grid-template-columns:1fr 1fr}.application-form{padding:20px}.form-grid .span-6,.form-grid .span-4{grid-column:span 12}.choice-grid,.doc-requirements{grid-template-columns:1fr}.upload-head{display:block}.file-hint{display:block;margin-top:6px}.document-row{grid-template-columns:36px minmax(0,1fr) 28px}.doc-status{display:none}.confirm-form,.submit-zone{display:block}.confirm-form .button,.submit-zone .button{margin-top:12px;width:100%}.profile-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr}
  .login-hero{padding:24px;min-height:360px}.hero-logo{width:210px}.hero-chip{display:none}.hero-copy h1{font-size:56px;letter-spacing:-4px}.hero-copy>p:last-child{font-size:13px}.login-panel{padding:34px 20px}.login-heading h2{font-size:42px}
}

.rating-title-line {
  display:block;
  white-space:nowrap;
}

.application-continue-button {
  position:relative;
  isolation:isolate;
  box-shadow:0 10px 28px rgba(65,50,245,.32), 0 0 0 0 rgba(65,50,245,.38);
  animation:applicationGlow 2.4s ease-in-out infinite;
}

.application-continue-button::after {
  content:"";
  position:absolute;
  inset:-7px;
  z-index:-1;
  border-radius:inherit;
  border:1px solid rgba(65,50,245,.32);
  opacity:0;
  animation:applicationGlowRing 2.4s ease-out infinite;
  pointer-events:none;
}

.application-continue-button:hover {
  box-shadow:0 14px 36px rgba(65,50,245,.4), 0 0 28px rgba(65,50,245,.28);
}

@keyframes applicationGlow {
  0%,100% {
    box-shadow:0 10px 28px rgba(65,50,245,.28), 0 0 0 0 rgba(65,50,245,.28);
  }
  50% {
    box-shadow:0 14px 36px rgba(65,50,245,.42), 0 0 24px 5px rgba(65,50,245,.18);
  }
}

@keyframes applicationGlowRing {
  0% {
    transform:scale(.98);
    opacity:0;
  }
  28% {
    opacity:.72;
  }
  75%,100% {
    transform:scale(1.075);
    opacity:0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .application-continue-button,
  .application-continue-button::after {
    animation:none;
  }
}

/* DNMR SERVICE TOOLTIP */

.service-chip-tooltip {
  position: relative;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  width: 100%;
  min-width: 0;
  min-height: 62px;
  padding: 12px 50px 12px 12px;
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #FFFFFF;
  color: var(--text);
  font: inherit;
  text-align: left;
  cursor: pointer;
  outline: none;
  transition:
    transform .18s ease,
    box-shadow .18s ease,
    border-color .18s ease,
    background .18s ease;
}

.service-chip-tooltip .service-chip-index {
  min-width: 28px;
  color: var(--blue);
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
}

.service-chip-tooltip .service-chip-label {
  min-width: 0;
  color: var(--text);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
  white-space: normal;
  overflow-wrap: anywhere;
}

.service-chip-tooltip:hover,
.service-chip-tooltip:focus-visible,
.service-chip-tooltip[aria-expanded="true"] {
  transform: translateY(-2px);
  border-color: rgba(65, 50, 245, .48);
  background: #FFFFFF;
  box-shadow:
    0 12px 26px rgba(36, 36, 36, .08),
    0 0 0 3px rgba(65, 50, 245, .06);
}

.service-chip-tooltip::after {
  content: "?";
  position: absolute;
  top: 50%;
  right: 12px;
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  transform: translateY(-50%);
  border: 1px solid rgba(65, 50, 245, .10);
  border-radius: 50%;
  background: rgba(65, 50, 245, .08);
  color: #4132F5;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  pointer-events: none;
  transition:
    transform .18s ease,
    background .18s ease,
    color .18s ease,
    border-color .18s ease;
}

.service-chip-tooltip:hover::after,
.service-chip-tooltip:focus-visible::after,
.service-chip-tooltip[aria-expanded="true"]::after {
  transform: translateY(-50%) scale(1.06);
  border-color: #4132F5;
  background: #4132F5;
  color: #FFFFFF;
}

.service-tooltip-popup {
  --tooltip-arrow-left: 50%;
  position: fixed;
  z-index: 9999;
  width: min(390px, calc(100vw - 32px));
  padding: 20px 22px 21px;
  background: #242424;
  color: #FFFFFF;
  border: 1px solid rgba(255, 255, 255, .11);
  border-radius: 24px;
  box-shadow:
    0 22px 55px rgba(36, 36, 36, .25),
    0 5px 14px rgba(36, 36, 36, .12);
  opacity: 0;
  visibility: hidden;
  transform: translateY(7px) scale(.985);
  transform-origin: center bottom;
  pointer-events: none;
  transition:
    opacity .17s ease,
    visibility .17s ease,
    transform .17s ease;
}

.service-tooltip-popup.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

.service-tooltip-popup::after {
  content: "";
  position: absolute;
  left: var(--tooltip-arrow-left);
  width: 14px;
  height: 14px;
  background: #242424;
  transform: translateX(-50%) rotate(45deg);
}

.service-tooltip-popup[data-placement="top"]::after {
  bottom: -7px;
  border-right: 1px solid rgba(255, 255, 255, .11);
  border-bottom: 1px solid rgba(255, 255, 255, .11);
}

.service-tooltip-popup[data-placement="bottom"]::after {
  top: -7px;
  border-left: 1px solid rgba(255, 255, 255, .11);
  border-top: 1px solid rgba(255, 255, 255, .11);
}

.service-tooltip-kicker {
  margin-bottom: 8px;
  color: #CDE1FF;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.service-tooltip-title {
  display: block;
  padding-right: 12px;
  font-size: 19px;
  line-height: 1.15;
  font-weight: 800;
}

.service-tooltip-text {
  margin: 10px 0 0;
  color: rgba(255, 255, 255, .78);
  font-size: 14px;
  line-height: 1.55;
}

@media (max-width: 700px) {
  .service-chip-tooltip {
    padding-right: 48px;
  }

  .service-tooltip-popup {
    width: calc(100vw - 24px);
    padding: 18px;
    border-radius: 20px;
  }

  .service-tooltip-title {
    font-size: 17px;
  }

  .service-tooltip-text {
    font-size: 13px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .service-chip-tooltip,
  .service-chip-tooltip::after,
  .service-tooltip-popup {
    transition: none;
  }
}

/* Profile v2 */
.profile-layout { align-items:start; }
.profile-main-panel,.profile-side-panel,.profile-collection-panel { overflow:hidden; }
.profile-section-head { align-items:flex-start; gap:14px; }
.profile-count { display:inline-flex; align-items:center; min-height:30px; padding:0 11px; border-radius:999px; background:#f0f0ff; color:var(--blue); font-size:10px; font-weight:800; }

.profile-edit-trigger {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:36px;
  padding:0 13px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  color:var(--ink);
  font:inherit;
  font-size:11px;
  font-weight:800;
  cursor:pointer;
  transition:.2s ease;
}
.profile-edit-trigger:hover { border-color:var(--blue); color:var(--blue); background:#fafaff; }
.profile-edit-trigger svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.profile-edit-trigger[hidden] { display:none !important; }

.profile-edit-form { margin-top:4px; }
.profile-edit-form:not(.is-editing) .field input[readonly] {
  background:#fff;
  border-color:#eceef4;
  color:var(--ink);
  cursor:default;
  box-shadow:none;
}
.profile-edit-form:not(.is-editing) .field input[readonly]::placeholder { color:#9ca0aa; }
.profile-edit-form.is-editing .field input { background:#fafbfe; }
.profile-form-actions { padding-top:4px; display:flex; align-items:center; gap:9px; }
.profile-form-actions[hidden] { display:none !important; }

.profile-items { display:grid; gap:8px; }
.profile-item { display:grid; grid-template-columns:42px minmax(0,1fr) auto; gap:12px; align-items:center; min-height:68px; padding:12px; border:1px solid var(--line); border-radius:19px; background:#fff; }
.profile-item.primary-item { background:#fafaff; border-color:#deddff; }
.profile-item-mark { width:42px; height:42px; border-radius:14px; display:grid; place-items:center; background:#efefff; color:var(--blue); font-size:13px; font-weight:900; }
.profile-item-copy { min-width:0; }
.profile-item-copy strong,.profile-item-copy small { display:block; }
.profile-item-copy strong { font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.profile-item-copy small { color:var(--muted); font-size:10px; line-height:1.45; margin-top:4px; word-break:break-word; }
.profile-delete { width:34px; height:34px; border:0; border-radius:50%; background:#f7f7fa; color:#8a8e98; font-size:20px; line-height:1; transition:.2s ease; cursor:pointer; }
.profile-delete:hover { background:#fff0ed; color:var(--red); }

.profile-add-box { margin-top:12px; border:1px dashed #cfd2df; border-radius:20px; background:#fbfbfe; transition:.2s ease; }
.profile-add-box[open] { border-style:solid; border-color:#deddff; background:#fafaff; }
.profile-add-box summary { position:relative; display:flex; align-items:center; justify-content:space-between; gap:12px; list-style:none; cursor:pointer; padding:15px 17px; color:var(--blue); font-size:12px; font-weight:800; user-select:none; }
.profile-add-box summary::-webkit-details-marker { display:none; }
.profile-add-label-open,.profile-add-summary-close { display:none; }
.profile-add-box[open] .profile-add-label-closed { display:none; }
.profile-add-box[open] .profile-add-label-open,.profile-add-box[open] .profile-add-summary-close { display:inline-flex; }
.profile-add-summary-close { width:28px; height:28px; align-items:center; justify-content:center; border-radius:50%; background:#f0f0f5; color:#7f8490; font-size:18px; font-weight:500; line-height:1; }
.profile-add-box[open] summary:hover .profile-add-summary-close { background:#e9e9f2; color:var(--ink); }

.profile-add-form { display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:0 14px 14px; }
.profile-add-form .field input { height:46px; background:white; }
.profile-add-wide { grid-column:1/-1; }
.profile-add-actions { display:flex; align-items:center; gap:9px; padding-top:2px; }
.profile-add-actions .button { justify-self:start; }

@media (max-width:680px) {
  .profile-add-form { grid-template-columns:1fr; }
  .profile-add-wide { grid-column:auto; }
  .profile-item { grid-template-columns:38px minmax(0,1fr) auto; }
  .profile-edit-trigger span { display:none; }
  .profile-edit-trigger { width:36px; padding:0; }
  .profile-form-actions,.profile-add-actions { flex-wrap:wrap; }
}


/* Profile accounts step 3 fixed */
.profile-users-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}

.profile-users-head h2 {
  margin-bottom:0;
}

.profile-account-add {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:34px;
  padding:0 11px;
  border:1px solid #deddff;
  border-radius:999px;
  background:#fafaff;
  color:var(--blue);
  font:inherit;
  font-size:10px;
  font-weight:800;
  white-space:nowrap;
  cursor:pointer;
  transition:.2s ease;
}

.profile-account-add:hover {
  border-color:var(--blue);
  background:#f0f0ff;
}

.profile-account-add svg {
  width:13px;
  height:13px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
}

.profile-team-list {
  margin-top:0;
}

.profile-admin-tag {
  background:#efefff;
  color:var(--blue);
}

@media (max-width:1100px) {
  .profile-users-head {
    flex-wrap:wrap;
  }
}

@media (max-width:680px) {
  .profile-account-add span {
    display:none;
  }

  .profile-account-add {
    width:34px;
    padding:0;
  }
}

/* Profile access responsive step 4 */

/* На средних десктопных экранах карточке доступа нужно больше воздуха. */
@media (min-width: 1081px) and (max-width: 1280px) {
  .profile-main-panel {
    grid-column: span 7;
  }

  .profile-side-panel {
    grid-column: span 5;
  }
}

/* Если места действительно мало – не сжимаем карточки до нечитабельного состояния. */
@media (min-width: 961px) and (max-width: 1080px) {
  .profile-main-panel,
  .profile-side-panel {
    grid-column: span 12;
  }
}

.profile-side-panel {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.profile-users-head {
  display: block;
  margin-bottom: 16px;
}

.profile-users-head h2 {
  margin-bottom: 0;
}

.profile-team-list {
  display: grid;
  gap: 12px;
  margin: 0;
  min-width: 0;
}

.profile-team-list .profile-user-row {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 11px;
  align-items: start;
  min-width: 0;
}

.profile-user-copy {
  min-width: 0;
  padding-top: 1px;
}

.profile-user-copy strong,
.profile-user-copy small {
  display: block;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.profile-user-copy strong {
  font-size: 12px;
  line-height: 1.25;
}

.profile-user-copy small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.3;
}

.profile-user-copy .tag {
  width: fit-content;
  max-width: 100%;
  min-height: 24px;
  margin-top: 8px;
  padding: 0 9px;
  font-size: 9px;
  letter-spacing: .04em;
}

.profile-account-add {
  width: 100%;
  min-height: 40px;
  margin-top: 16px;
  padding: 0 14px;
  border: 1px dashed #cfcdfd;
  border-radius: 14px;
  background: #fafaff;
  justify-content: center;
  flex: 0 0 auto;
}

.profile-account-add:hover {
  border-style: solid;
  border-color: var(--blue);
  background: #f0f0ff;
}

.profile-account-add svg {
  flex: 0 0 auto;
}

/* Перекрываем старое правило, которое на мобильном оставляло только плюс. */
@media (max-width: 680px) {
  .profile-account-add {
    width: 100%;
    min-height: 40px;
    padding: 0 14px;
  }

  .profile-account-add span {
    display: inline;
  }
}

/* RATINGS_LIST_V1 */
.ratings-list-header {
  margin-bottom: 26px;
}

.ratings-list-header h1 {
  margin: 0;
  font-size: clamp(40px, 5vw, 58px);
  line-height: .96;
  letter-spacing: -.045em;
}

.ratings-list {
  display: grid;
  gap: 16px;
}

.ratings-list-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 22px;
  overflow: hidden;
  padding: 26px;
  border: 1px solid var(--line);
  border-radius: 32px;
  background: #fff;
}

.ratings-list-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 6px;
  background: #4132F5;
}

.ratings-list-card-main {
  min-width: 0;
}

.ratings-list-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 14px;
}

.ratings-list-year,
.ratings-list-status {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 11px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.ratings-list-year {
  background: #4132F5;
  color: #fff;
}

.ratings-list-status {
  background: #efefff;
  color: #4132F5;
}

.ratings-list-status.status-open {
  background: #e4f7ef;
  color: #187a58;
}

.ratings-list-status.status-verification {
  background: #fff3d5;
  color: #8d6200;
}

.ratings-list-status.status-closed {
  background: #f0f1f4;
  color: #6d717c;
}

.ratings-list-card h2 {
  margin: 0;
  font-size: clamp(28px, 3.3vw, 40px);
  line-height: 1;
  letter-spacing: -.04em;
}

.ratings-list-card-main > p {
  max-width: 760px;
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.ratings-list-open {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border: 1px solid #dddcfa;
  border-radius: 50%;
  color: #4132F5;
  font-size: 22px;
  text-decoration: none;
  transition: transform .18s ease, background .18s ease, color .18s ease;
}

.ratings-list-open:hover {
  transform: translateX(2px);
  background: #4132F5;
  color: #fff;
}

.ratings-list-dates {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.ratings-list-dates > div {
  padding: 15px 17px;
  border-radius: 20px;
  background: #f8f8fc;
}

.ratings-list-dates span,
.ratings-list-dates strong {
  display: block;
}

.ratings-list-dates span {
  margin-bottom: 5px;
  color: var(--muted);
  font-size: 10px;
}

.ratings-list-dates strong {
  font-size: 12px;
}

.ratings-list-footer {
  grid-column: 1 / -1;
  display: flex;
  gap: 20px;
  align-items: flex-end;
  justify-content: space-between;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}

.ratings-list-progress {
  width: min(360px, 100%);
}

.ratings-list-progress-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.ratings-list-progress-head span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
}

.ratings-list-progress-head strong {
  color: #4132F5;
  font-size: 12px;
}

.ratings-list-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.ratings-list-no-application {
  color: var(--muted);
  font-size: 11px;
}

.ratings-list-empty {
  min-height: 180px;
  display: grid;
  place-items: center;
  text-align: center;
}

@media (max-width: 760px) {
  .ratings-list-card {
    padding: 21px;
    border-radius: 26px;
  }

  .ratings-list-dates {
    grid-template-columns: 1fr;
  }

  .ratings-list-footer {
    flex-direction: column;
    align-items: stretch;
  }

  .ratings-list-progress {
    width: 100%;
  }

  .ratings-list-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 480px) {
  .ratings-list-card {
    gap: 14px;
  }

  .ratings-list-open {
    width: 42px;
    height: 42px;
  }

  .ratings-list-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .ratings-list-actions .button {
    width: 100%;
  }
}

/* Ratings catalog cleanup force v1 */
.rating-catalog-meta,
.rating-catalog-arrow {
  display: none !important;
}

.rating-catalog-heading h2 {
  margin-top: 0 !important;
}

/* Dashboard empty applications v1 */
.dashboard-empty-applications {
  padding: 18px 20px;
  border-radius: 18px;
  background: #f7f7fb;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

/* Dashboard application progress final */
.rating-row {
  grid-template-columns: 48px minmax(130px, 1fr) 115px 160px 88px 24px;
  gap: 12px;
}

.rating-row .mini-progress {
  width: 160px;
  min-width: 160px;
}

.mini-progress > .mini-progress-head {
  display: flex;
  align-items: baseline;
  gap: 5px;
  height: auto;
  margin: 0 0 5px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  overflow: visible;
  white-space: nowrap;
}

.mini-progress-head span {
  display: inline;
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.2;
}

.mini-progress-head strong {
  display: inline;
  margin: 0;
  color: var(--text);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.2;
}

.mini-progress > .mini-progress-track {
  width: 100%;
  height: 5px;
  border-radius: 999px;
  background: var(--line);
  overflow: hidden;
}

.mini-progress > .mini-progress-track i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--blue);
}

@media (max-width: 1180px) and (min-width: 681px) {
  .rating-row {
    grid-template-columns: 48px minmax(130px, 1fr) 160px 88px 24px;
    gap: 12px;
  }

  .rating-row .rating-date {
    display: none;
  }

  .rating-row .mini-progress {
    width: 160px;
    min-width: 160px;
  }
}

/* Dashboard apply buttons and empty state v1 */

.hero-apply-form {
  margin: 0;
  display: inline-flex;
}

.hero-apply-form .button {
  font: inherit;
  cursor: pointer;
}

.dashboard-empty-applications {
  width: 100%;
  min-height: 96px;
  padding: 20px 12px !important;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: var(--muted);
  text-align: center;
  font-size: 12px;
  line-height: 1.5;
}

/* Dashboard empty state vertical center final */

.applications-panel-empty {
  display: flex !important;
  flex-direction: column !important;
}

.applications-panel-empty .panel-head {
  flex: 0 0 auto;
}

.applications-panel-empty .rating-list {
  display: flex !important;
  flex: 1 1 auto !important;
  align-items: center !important;
  justify-content: flex-start !important;
  min-height: 120px;
}

.applications-panel-empty .dashboard-empty-applications,
.applications-panel-empty .dashboard-empty-applications-clean {
  display: block !important;
  width: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--muted) !important;
  text-align: left !important;
  font-size: 12px;
  line-height: 1.5;
}

/* Applications empty state actual final v3 */
.applications-panel-empty {
  display: flex !important;
  flex-direction: column !important;
}

.applications-panel-empty .panel-head {
  flex: 0 0 auto !important;
}

.applications-panel-empty .rating-list {
  display: flex !important;
  flex: 1 1 auto !important;
  min-height: 120px !important;
  align-items: center !important;
  justify-content: flex-start !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.applications-panel-empty .applications-empty-message {
  display: block !important;
  width: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  background-color: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--muted) !important;
  text-align: left !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
}

/* Dashboard empty applications text polish */
.applications-panel-empty .dashboard-empty-applications,
.applications-panel-empty .dashboard-empty-applications-clean,
.applications-panel-empty .dashboard-empty-state-final {
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: rgba(36, 36, 36, .40) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  line-height: 1.45 !important;
  letter-spacing: -0.01em;
}

/* Dashboard empty applications text polish */
.applications-panel-empty .dashboard-empty-applications,
.applications-panel-empty .dashboard-empty-applications-clean,
.applications-panel-empty .dashboard-empty-state-final {
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: rgba(36, 36, 36, .40) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  line-height: 1.45 !important;
  letter-spacing: -0.01em;
}

/* Dashboard empty text exact final v1 */

.applications-panel-empty .rating-list {
  display: flex !important;
  flex: 1 1 auto !important;
  align-items: center !important;
  justify-content: flex-start !important;
  min-height: 140px !important;
}

.dashboard-empty-state-final {
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  background-color: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: rgba(36, 36, 36, .34) !important;
  font-size: 17px !important;
  font-weight: 500 !important;
  line-height: 1.45 !important;
  letter-spacing: -0.015em !important;
  text-align: left !important;
}

/* Dashboard empty state redesign final */

.applications-panel-empty {
  display: flex !important;
  flex-direction: column !important;
}

.applications-panel-empty .panel-head {
  flex: 0 0 auto !important;
}

.applications-panel-empty .rating-list {
  display: flex !important;
  flex: 1 1 auto !important;
  min-height: 150px !important;
  align-items: center !important;
  justify-content: center !important;
}

.dashboard-empty-state-final {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: 430px !important;
  min-height: 0 !important;
  margin: 0 auto !important;
  padding: 28px 24px !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: rgba(36, 36, 36, .50) !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  letter-spacing: -0.018em !important;
  text-align: center !important;
}

.dashboard-empty-state-final::before {
  content: "" !important;
  display: block !important;
  width: 34px !important;
  height: 4px !important;
  margin: 0 0 16px !important;
  border-radius: 999px !important;
  background: rgba(65, 50, 245, .55) !important;
}

/* Dashboard empty state centered no bar final */

.applications-panel-empty .rating-list {
  display: flex !important;
  flex: 1 1 auto !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 150px !important;
}

.dashboard-empty-state-final {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 150px !important;
  margin: 0 !important;
  padding: 0 24px !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: rgba(36, 36, 36, .48) !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  text-align: center !important;
}

.dashboard-empty-state-final::before,
.dashboard-empty-state-final::after {
  content: none !important;
  display: none !important;
}

/* Пустое состояние «Заявки»: настоящий центр оставшейся области карточки. */
.applications-panel-empty {
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) !important;
}

.applications-panel-empty .panel-head {
  margin-bottom: 0 !important;
}

.applications-panel-empty .rating-list {
  display: flex !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  align-items: center !important;
  justify-content: center !important;
}

.applications-panel-empty .dashboard-empty-state-final {
  display: flex !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  text-align: center !important;
}

.applications-panel-empty .dashboard-empty-state-final::before,
.applications-panel-empty .dashboard-empty-state-final::after {
  content: none !important;
  display: none !important;
}

/* Profile: звезда обозначает главную запись без текстовой плашки. */
.profile-primary-badge {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  display: grid;
  place-items: center;
  border: 1px solid #deddff;
  border-radius: 50%;
  background: #f2f1ff;
  color: var(--blue);
  font-size: 14px;
  line-height: 1;
  cursor: default;
}

/* Dashboard carousel rebuilt from prototype5 */
.hero-rating-carousel {
  position: relative;
  margin-bottom: 12px;
  outline: none;
}

.hero-rating-slides {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  overflow: hidden;
  isolation: isolate;
  border-radius: var(--radius-xl);
}

.hero-rating-slide {
  grid-area: 1 / 1;
  min-width: 0;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

.hero-rating-slide.is-active,
.hero-rating-slide.is-carousel-transitioning {
  visibility: visible;
}

.hero-rating-slide.is-active {
  opacity: 1;
  pointer-events: auto;
  z-index: 2;
}

.hero-rating-slide.is-carousel-transitioning {
  pointer-events: none;
  will-change: transform, opacity;
}

.hero-rating-carousel .hero-card {
  width: 100%;
  min-height: 330px;
  margin: 0;
  padding: 42px 72px;
}

.hero-rating-carousel .hero-card-content {
  position: relative;
  z-index: 2;
  align-self: end;
}

.hero-rating-carousel .hero-card-content p {
  max-width: 620px;
}

/* Creative Agencies Rating визуально отличается от DNMR. */
.hero-card-secondary {
  background: #087f8c !important;
}

.hero-card-secondary .hero-card-pattern {
  background-image: url('/static/img/pattern-light.jpg') !important;
  opacity: .30 !important;
}

.hero-card-secondary::after {
  background: linear-gradient(
    90deg,
    rgba(5, 101, 114, .30),
    rgba(7, 120, 133, .36) 55%,
    rgba(5, 88, 111, .58)
  ) !important;
}

/* Третий демонстрационный рейтинг – отдельный темно-синий вариант. */
.hero-card-third {
  background: linear-gradient(135deg, #183a67 0%, #23598b 52%, #2d7ca6 100%) !important;
}

.hero-card-third .hero-card-pattern {
  background-image: url('/static/img/pattern-frame.jpg') !important;
  opacity: .24 !important;
}

.hero-card-third::after {
  background: linear-gradient(
    90deg,
    rgba(16, 44, 80, .16),
    rgba(20, 74, 111, .30) 58%,
    rgba(13, 48, 84, .54)
  ) !important;
}

.hero-carousel-arrow {
  position: absolute;
  z-index: 10;
  top: 50%;
  width: 44px;
  height: 44px;
  padding: 0;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .42);
  border-radius: 50%;
  background: rgba(255, 255, 255, .15);
  color: #fff;
  font: inherit;
  font-size: 21px;
  line-height: 1;
  cursor: pointer;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
}

.hero-carousel-arrow:hover {
  background: rgba(255, 255, 255, .28);
  border-color: rgba(255, 255, 255, .72);
}

.hero-carousel-arrow-prev {
  left: 14px;
  transform: translateY(-50%);
}

.hero-carousel-arrow-prev:hover {
  transform: translate(-2px, -50%);
}

.hero-carousel-arrow-next {
  right: 14px;
  transform: translateY(-50%);
}

.hero-carousel-arrow-next:hover {
  transform: translate(2px, -50%);
}

.hero-carousel-dots {
  position: absolute;
  z-index: 11;
  left: 50%;
  bottom: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  transform: translateX(-50%);
  pointer-events: none;
}

.hero-carousel-dot {
  width: 7px;
  height: 7px;
  display: block;
  border-radius: 999px;
  background: rgba(255, 255, 255, .42);
  transition: width .18s ease, background .18s ease;
}

.hero-carousel-dot.is-active {
  width: 20px;
  background: rgba(255, 255, 255, .95);
}

.hero-rating-carousel:focus-visible {
  border-radius: var(--radius-xl);
  box-shadow: 0 0 0 3px rgba(65, 50, 245, .18);
}

/* Все три иконки меню – одинаковые круглые бейджи. */
.side-nav .nav-icon {
  border-radius: 50% !important;
}

@media (max-width: 680px) {
  .hero-rating-carousel .hero-card {
    min-height: 350px;
    padding: 28px 58px;
  }

  .hero-carousel-arrow {
    width: 38px;
    height: 38px;
    font-size: 18px;
  }

  .hero-carousel-arrow-prev {
    left: 10px;
  }

  .hero-carousel-arrow-next {
    right: 10px;
  }

  .hero-carousel-dots {
    bottom: 13px;
  }

  .hero-carousel-dot {
    width: 6px;
    height: 6px;
  }

  .hero-carousel-dot.is-active {
    width: 17px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-rating-slide {
    scroll-behavior: auto;
  }
}

/* Dashboard carousel stable v6 START */

/* Меню: все три участнических пункта имеют одинаковый круглый знак. */
.side-nav .nav-icon {
  width: 26px !important;
  height: 26px !important;
  flex: 0 0 26px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 50% !important;
  font-size: 18px !important;
  line-height: 1 !important;
}

.rating-carousel-v2 {
  position: relative;
  margin-bottom: 12px;
  outline: none;
}

.rating-carousel-viewport {
  overflow: hidden;
  border-radius: var(--radius-xl);
}

/* Все слайды живут в одной grid-ячейке и всегда держат высоту блока. */
.rating-carousel-stack {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  isolation: isolate;
}

.rating-carousel-slide {
  grid-area: 1 / 1;
  min-width: 0;
  visibility: hidden;
  pointer-events: none;
}

.rating-carousel-slide.is-active,
.rating-carousel-slide.is-entering,
.rating-carousel-slide.is-leaving {
  visibility: visible;
}

.rating-carousel-slide.is-active {
  pointer-events: auto;
  z-index: 2;
}

.rating-carousel-slide.is-entering,
.rating-carousel-slide.is-leaving {
  pointer-events: none;
  will-change: transform;
}

.rating-carousel-v2 .hero-card {
  width: 100%;
  min-height: 330px;
  height: 100%;
  margin: 0;
  padding: 42px 72px;
  grid-template-columns: minmax(0, 1fr);
}

.rating-carousel-v2 .hero-card-content {
  position: relative;
  z-index: 2;
  align-self: end;
}

.rating-carousel-v2 .hero-card-content p {
  max-width: 620px;
}

/* Creative Agencies Rating – бирюзовый. */
.rating-carousel-v2 .rating-card-creative {
  background: #087f8c !important;
}

.rating-carousel-v2 .rating-card-creative .hero-card-pattern {
  background-image: url('/static/img/pattern-light.jpg') !important;
  opacity: .30 !important;
}

.rating-carousel-v2 .rating-card-creative::after {
  background: linear-gradient(
    90deg,
    rgba(5, 101, 114, .30),
    rgba(7, 120, 133, .36) 55%,
    rgba(5, 88, 111, .58)
  ) !important;
}

/* Performance Marketing Rating – темно-синий. */
.rating-carousel-v2 .rating-card-performance {
  background: linear-gradient(135deg, #183a67 0%, #23598b 52%, #2d7ca6 100%) !important;
}

.rating-carousel-v2 .rating-card-performance .hero-card-pattern {
  background-image: url('/static/img/pattern-frame.jpg') !important;
  opacity: .24 !important;
}

.rating-carousel-v2 .rating-card-performance::after {
  background: linear-gradient(
    90deg,
    rgba(16, 44, 80, .16),
    rgba(20, 74, 111, .30) 58%,
    rgba(13, 48, 84, .54)
  ) !important;
}

.rating-carousel-arrow {
  position: absolute;
  z-index: 20;
  top: 50%;
  width: 44px;
  height: 44px;
  padding: 0;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .42);
  border-radius: 50%;
  background: rgba(255, 255, 255, .15);
  color: #fff;
  font: inherit;
  font-size: 21px;
  line-height: 1;
  cursor: pointer;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
}

.rating-carousel-arrow:hover {
  background: rgba(255, 255, 255, .28);
  border-color: rgba(255, 255, 255, .72);
}

.rating-carousel-arrow-prev {
  left: 14px;
  transform: translateY(-50%);
}

.rating-carousel-arrow-prev:hover {
  transform: translate(-2px, -50%);
}

.rating-carousel-arrow-next {
  right: 14px;
  transform: translateY(-50%);
}

.rating-carousel-arrow-next:hover {
  transform: translate(2px, -50%);
}

.rating-carousel-dots {
  position: absolute;
  z-index: 21;
  left: 50%;
  bottom: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  transform: translateX(-50%);
  pointer-events: none;
}

.rating-carousel-dot {
  width: 7px;
  height: 7px;
  display: block;
  border-radius: 999px;
  background: rgba(255, 255, 255, .42);
  transition: width .16s ease, background .16s ease;
}

.rating-carousel-dot.is-active {
  width: 20px;
  background: rgba(255, 255, 255, .95);
}

.rating-carousel-v2:focus-visible {
  border-radius: var(--radius-xl);
  box-shadow: 0 0 0 3px rgba(65, 50, 245, .18);
}

@media (max-width: 680px) {
  .rating-carousel-v2 .hero-card {
    min-height: 350px;
    padding: 28px 58px;
  }

  .rating-carousel-arrow {
    width: 38px;
    height: 38px;
    font-size: 18px;
  }

  .rating-carousel-arrow-prev {
    left: 10px;
  }

  .rating-carousel-arrow-next {
    right: 10px;
  }

  .rating-carousel-dots {
    bottom: 13px;
  }

  .rating-carousel-dot {
    width: 6px;
    height: 6px;
  }

  .rating-carousel-dot.is-active {
    width: 17px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rating-carousel-slide {
    transform: none !important;
  }
}

/* Dashboard carousel stable v6 END */

/* Clear logout action v1 */
.user-card {
  grid-template-columns: 38px minmax(0, 1fr) auto;
}

.logout-form {
  margin: 0;
}

.logout-button {
  min-height: 34px;
  padding: 0 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 0;
  border-radius: 12px;
  background: var(--soft);
  color: var(--ink);
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  white-space: nowrap;
  transition: background .16s ease, color .16s ease, transform .16s ease;
}

.logout-button-icon {
  font-size: 15px;
  line-height: 1;
}

.logout-button:hover {
  background: #fff0f0;
  color: #c83d3d;
}

.logout-button:active {
  transform: translateY(1px);
}

.logout-button:focus-visible {
  outline: 2px solid rgba(65, 50, 245, .35);
  outline-offset: 2px;
}

@media (max-width: 960px) {
  .user-card {
    grid-template-columns: 38px auto;
  }

  .logout-button {
    width: 34px;
    padding: 0;
    border-radius: 50%;
  }

  .logout-button-text {
    display: none;
  }
}

/* Account single row small v5 */

.user-card {
  display: grid !important;
  grid-template-columns: 28px minmax(0, 1fr) auto !important;
  align-items: center !important;
  column-gap: 7px !important;
  row-gap: 0 !important;
  padding: 7px 4px !important;
}

.user-card .avatar {
  grid-column: 1 !important;
  grid-row: 1 !important;
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  display: grid !important;
  place-items: center !important;
  margin: 0 !important;
  font-size: 11px !important;
  line-height: 1 !important;
}

.user-card .user-meta {
  grid-column: 2 !important;
  grid-row: 1 !important;
  min-width: 0 !important;
  margin: 0 !important;
  line-height: 1.05 !important;
}

.user-card .user-meta strong {
  display: block !important;
  max-width: 100% !important;
  margin: 0 0 2px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  font-size: 11.5px !important;
  line-height: 1.05 !important;
}

.user-card .user-meta small {
  display: block !important;
  max-width: 100% !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  font-size: 8.5px !important;
  line-height: 1.05 !important;
}

.user-card .logout-form {
  grid-column: 3 !important;
  grid-row: 1 !important;
  margin: 0 !important;
  align-self: center !important;
}

.user-card .logout-button {
  width: auto !important;
  min-width: 0 !important;
  height: 26px !important;
  min-height: 26px !important;
  padding: 0 7px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 4px !important;
  border-radius: 9px !important;
  font-size: 9.5px !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

.user-card .logout-button-icon {
  width: 13px !important;
  height: 13px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 13px !important;
}

.user-card .logout-button-icon svg {
  width: 13px !important;
  height: 13px !important;
  display: block !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.5 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

.user-card .logout-button-text {
  display: inline !important;
}

@media (max-width: 960px) {
  .user-card {
    grid-template-columns: 28px auto !important;
  }

  .user-card .user-meta {
    display: none !important;
  }

  .user-card .logout-form {
    grid-column: 2 !important;
  }

  .user-card .logout-button {
    width: 28px !important;
    height: 28px !important;
    padding: 0 !important;
    border-radius: 50% !important;
  }

  .user-card .logout-button-text {
    display: none !important;
  }
}

/* Ratings no-application actions alignment v1 */
.ratings-list-actions-no-application {
  margin-left: auto;
}

@media (max-width: 720px) {
  .ratings-list-actions-no-application {
    margin-left: 0;
  }
}

/* DNMR service icon restored */
.service-chip-tooltip:hover::after,
.service-chip-tooltip:focus-visible::after,
.service-chip-tooltip[aria-expanded="true"]::after {
  content: "?" !important;
}

/* DNMR METRIC EXPLORER UNIFIED V5 */

/* Верхняя сводка и блок заявки остаются отдельной первой строкой. */
.methodology-summary-panel,
.action-panel {
  align-self: stretch;
}

/*
  Список критериев и пояснение теперь один физический компонент.
  Нет внешних линий, точек и JS-расчетов геометрии.
*/
.metric-explorer-panel {
  padding: 0 !important;
  overflow: hidden !important;
}

.metric-explorer-grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr);
  grid-template-rows: 400px;
  height: 400px;
  min-height: 400px;
  max-height: 400px;
  overflow: hidden;
}

.metric-explorer-list {
  box-sizing: border-box;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  min-width: 0;
  min-height: 0;
  padding: 18px 0 14px 20px;
  background: #FFFFFF;
}

.metric-explorer-list-label {
  padding: 0 18px 12px 0;
}

.metric-explorer-list-label .eyebrow {
  margin-bottom: 3px;
}

.metric-explorer-list-label > span {
  display: block;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.35;
}

.metric-explorer-table {
  height: 100%;
  min-height: 0;
  display: grid !important;
  grid-template-rows: repeat(8, minmax(0, 1fr));
  gap: 0 !important;
  background: transparent !important;
  border-radius: 0 !important;
  overflow: visible !important;
}

.metric-explorer-table .metric-row {
  position: relative;
  width: 100%;
  min-height: 0;
  box-sizing: border-box;
  border: 0;
  border-top: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  padding: 8px 14px 8px 12px;
  transition:
    background .14s ease,
    color .14s ease;
}

.metric-explorer-table .metric-row:first-child {
  border-top-color: transparent;
}

.metric-explorer-table .metric-row:hover:not(.is-active) {
  background: #F7F7FF;
}

.metric-explorer-table .metric-row:focus-visible {
  z-index: 3;
  outline: 2px solid rgba(65, 50, 245, .28);
  outline-offset: -2px;
}

/*
  Активная строка доходит до самой границы информационной части.
  Правый край прямой, поэтому она выглядит частью общей поверхности,
  а не отдельной синей карточкой с приклеенной линией.
*/
.metric-explorer-table .metric-row.is-active,
.metric-explorer-table .metric-row.is-active:hover {
  z-index: 2;
  margin-right: -1px;
  background: #4132F5 !important;
  color: #FFFFFF !important;
  border-top-color: #4132F5 !important;
  border-radius: 11px 0 0 11px !important;
  box-shadow: none !important;
}

.metric-explorer-table .metric-row.is-active .metric-block,
.metric-explorer-table .metric-row.is-active strong,
.metric-explorer-table .metric-row.is-active b {
  color: #FFFFFF !important;
}

.metric-explorer-table .metric-row.is-active .weight-bar {
  background: rgba(255, 255, 255, .24) !important;
}

.metric-explorer-table .metric-row.is-active .weight-bar i {
  background: #FFFFFF !important;
}

/*
  Правая часть – не отдельная карточка: это вторая половина
  общего компонента. Ее размер жестко задан общей grid-строкой.
*/
.metric-guide-panel {
  box-sizing: border-box;
  position: relative;
  min-width: 0;
  min-height: 0;
  height: 400px;
  max-height: 400px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 18px 18px 16px 20px;
  border: 0;
  border-left: 4px solid #4132F5;
  border-radius: 0;
  background: #F8F8FF;
  box-shadow: none;
}

.metric-guide-head {
  flex: 0 0 auto;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 12px;
  margin-bottom: 0;
  border-bottom: 1px solid rgba(65, 50, 245, .12);
}

.metric-guide-head .eyebrow {
  margin-bottom: 3px;
}

.metric-guide-head > div > span {
  display: block;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.35;
}

.metric-guide-status {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 27px;
  padding: 0 9px;
  border-radius: 999px;
  background: #E9E7FF;
  color: var(--blue);
  font-size: 10px;
  font-weight: 800;
}

/*
  Внешняя высота НИКОГДА не меняется от текста.
  Прокручивается только эта внутренняя область.
*/
.metric-guide-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 13px 5px 0 0;
  scrollbar-width: thin;
  scrollbar-color: rgba(65, 50, 245, .28) transparent;
  overscroll-behavior: contain;
}

.metric-guide-scroll::-webkit-scrollbar {
  width: 4px;
}

.metric-guide-scroll::-webkit-scrollbar-thumb {
  background: rgba(65, 50, 245, .28);
  border-radius: 999px;
}

.metric-guide-scroll::-webkit-scrollbar-track {
  background: transparent;
}

.metric-guide-content[hidden] {
  display: none !important;
}

.metric-guide-content {
  min-width: 0;
  animation: metricGuideFade .12s ease;
}

.metric-guide-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}

.metric-guide-meta span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
}

.metric-guide-meta b {
  color: var(--blue);
  font-size: 19px;
  line-height: 1;
}

.metric-guide-content h3 {
  margin: 0 0 14px;
  font-size: 24px;
  line-height: 1.08;
  letter-spacing: -.7px;
}

.metric-guide-section {
  padding: 11px 0;
  border-top: 1px solid rgba(65, 50, 245, .12);
}

.metric-guide-section strong,
.metric-guide-note strong {
  display: block;
  margin-bottom: 5px;
  color: #242424;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .045em;
}

.metric-guide-section p,
.metric-guide-note p {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
}

.metric-guide-note {
  margin-top: 8px;
  padding: 12px 13px;
  border-radius: 14px;
  background: #EFEEFF;
}

.metric-guide-note strong {
  color: var(--blue);
}

@keyframes metricGuideFade {
  from { opacity: .55; }
  to { opacity: 1; }
}

@media (max-width: 960px) {
  .metric-explorer-grid {
    grid-template-columns: 1fr;
    grid-template-rows: auto 340px;
    height: auto;
    min-height: 0;
    max-height: none;
  }

  .metric-explorer-list {
    padding: 18px 18px 14px;
  }

  .metric-explorer-table {
    height: auto;
    display: block !important;
  }

  .metric-explorer-table .metric-row {
    min-height: 48px;
  }

  .metric-explorer-table .metric-row.is-active,
  .metric-explorer-table .metric-row.is-active:hover {
    margin-right: 0;
    border-radius: 11px !important;
  }

  .metric-guide-panel {
    height: 340px;
    max-height: 340px;
    border-left: 0;
    border-top: 4px solid #4132F5;
    padding: 16px 18px 16px;
  }
}

@media (max-width: 700px) {
  .metric-explorer-grid {
    grid-template-rows: auto 380px;
  }

  .metric-guide-panel {
    height: 380px;
    max-height: 380px;
  }

  .metric-guide-content h3 {
    font-size: 22px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .metric-guide-content,
  .metric-explorer-table .metric-row {
    animation: none;
    transition: none;
  }
}

/* DNMR services helper text v1 */
.services-helper-text {
  margin: 4px 0 16px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
}

/* DNMR METRIC SEGMENT LABELS ONLY V2 */

.metric-explorer-table .metric-row.metric-segment-business:not(.is-active),
.metric-explorer-table .metric-row.metric-segment-expertise:not(.is-active),
.metric-explorer-table .metric-row.metric-segment-business:hover:not(.is-active),
.metric-explorer-table .metric-row.metric-segment-expertise:hover:not(.is-active) {
  background: transparent !important;
  border-radius: 0 !important;
}

.metric-explorer-table .metric-row:nth-child(5),
.metric-explorer-table .metric-row:nth-child(5).is-active {
  box-shadow: none !important;
  padding-top: inherit !important;
}

.metric-explorer-table .metric-row .metric-block {
  width: max-content;
  min-width: 0;
  box-sizing: border-box;
  padding: 3px 7px;
  border-radius: 999px;
  font-weight: 700;
  line-height: 1.1;
}

.metric-explorer-table .metric-row.metric-segment-business:not(.is-active) .metric-block {
  background: #EEECFF;
  color: #4132F5;
}

.metric-explorer-table .metric-row.metric-segment-expertise:not(.is-active) .metric-block {
  background: #EAF2FF;
  color: #4D6F9D;
}

.metric-explorer-table .metric-row.is-active .metric-block {
  background: rgba(255, 255, 255, .18) !important;
  color: #FFFFFF !important;
}

@media (max-width: 700px) {
  .metric-explorer-table .metric-row .metric-block {
    padding: 2px 6px;
  }
}

/* DNMR metric instant switch proto7 */

/* Переключение критериев без затухания */
.metric-explorer-table .metric-row {
  transition: none !important;
}

.metric-guide-content {
  animation: none !important;
  transition: none !important;
}

/* DNMR metric hover highlight proto7 */

.metric-explorer-table .metric-row:not(.is-active):hover {
  background: rgba(65, 50, 245, .055) !important;
  border-radius: 10px !important;
  cursor: pointer !important;
}

/* DNMR METRIC HOVER FIX PROTO7 V2 */

/* Мгновенная смена состояния без fade */
.metric-explorer-panel .metric-explorer-table .metric-row {
  transition: none !important;
}

/*
  В prototype7 сегментные правила принудительно задают transparent !important.
  Поэтому hover переопределяем теми же сегментными классами, но более точно.
*/
.metric-explorer-panel .metric-explorer-table .metric-row.metric-segment-business:not(.is-active):hover,
.metric-explorer-panel .metric-explorer-table .metric-row.metric-segment-expertise:not(.is-active):hover {
  background: #F3F2FF !important;
  border-radius: 10px !important;
  box-shadow: inset 0 0 0 1px rgba(65, 50, 245, .07) !important;
  cursor: pointer !important;
}

/* Активная строка всегда остается основной синей */
.metric-explorer-panel .metric-explorer-table .metric-row.is-active:hover {
  background: #4132F5 !important;
  box-shadow: none !important;
}

/* DNMR metric explorer seam fix proto7 */

/* Убираем 1px субпиксельный шов между списком и пояснением */
.metric-guide-panel {
  margin-left: -1px !important;
  width: calc(100% + 1px) !important;
  z-index: 4 !important;
}

/* Активная строка остается под синей границей без белого просвета */
.metric-explorer-table .metric-row.is-active,
.metric-explorer-table .metric-row.is-active:hover {
  margin-right: 0 !important;
}

@media (max-width: 960px) {
  .metric-guide-panel {
    margin-left: 0 !important;
    width: 100% !important;
  }
}

/* ACRIR THEME TOGGLE V1 */
.theme-toggle {
  width: 100%;
  min-height: 38px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 5px 8px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #FFFFFF;
  color: var(--ink);
  font: inherit;
  cursor: pointer;
  text-align: left;
  transition: background .14s ease, border-color .14s ease, color .14s ease;
}

.theme-toggle:hover {
  background: #F5F4FF;
  border-color: rgba(65, 50, 245, .28);
}

.theme-toggle:focus-visible {
  outline: 2px solid rgba(65, 50, 245, .34);
  outline-offset: 2px;
}

.theme-toggle-icon {
  width: 26px;
  height: 26px;
  flex: 0 0 26px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  background: #EFEEFF;
  color: var(--blue);
}

.theme-toggle-icon svg {
  width: 15px;
  height: 15px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.theme-toggle-icon .theme-icon-sun,
html[data-theme="dark"] .theme-toggle-icon .theme-icon-moon {
  display: none;
}

html[data-theme="dark"] .theme-toggle-icon .theme-icon-sun,
html[data-theme="light"] .theme-toggle-icon .theme-icon-moon {
  display: block;
}

.theme-toggle-label {
  min-width: 0;
  font-size: 10.5px;
  font-weight: 750;
  line-height: 1.1;
}

.login-theme-toggle {
  position: fixed;
  z-index: 50;
  top: 18px;
  right: 18px;
  width: auto;
  min-width: 142px;
  box-shadow: 0 10px 28px rgba(26, 30, 42, .10);
}

@media (max-width: 960px) {
  .sidebar .theme-toggle {
    width: 30px;
    min-width: 30px;
    height: 30px;
    min-height: 30px;
    padding: 2px;
    justify-content: center;
    border-radius: 50%;
  }

  .sidebar .theme-toggle-icon {
    width: 24px;
    height: 24px;
    flex-basis: 24px;
    background: transparent;
  }

  .sidebar .theme-toggle-label {
    display: none;
  }
}

@media (max-width: 640px) {
  .login-theme-toggle {
    top: 12px;
    right: 12px;
    min-width: 0;
    width: 38px;
    height: 38px;
    padding: 5px;
    justify-content: center;
  }

  .login-theme-toggle .theme-toggle-label {
    display: none;
  }
}

/* DNMR HERO APPLICATION V1 */

.rating-hero-grid {
  grid-template-columns: minmax(0, 1fr) minmax(300px, 338px) !important;
  align-items: end !important;
  gap: 34px !important;
}

.rating-hero-action {
  box-sizing: border-box;
  width: 100%;
  align-self: end;
  padding: 22px;
  border: 1px solid rgba(255, 255, 255, .20);
  border-radius: 28px;
  background: rgba(19, 18, 60, .20);
  box-shadow: 0 18px 44px rgba(20, 16, 82, .18);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
  color: #FFFFFF;
}

.rating-hero-action .eyebrow {
  margin-bottom: 10px;
  color: rgba(255, 255, 255, .72) !important;
}

.rating-hero-action > p:not(.eyebrow) {
  margin: 0 0 14px;
  color: rgba(255, 255, 255, .74) !important;
  font-size: 12px;
  line-height: 1.5;
}

.rating-hero-action .big-progress {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin: 10px 0 12px;
}

.rating-hero-action .big-progress strong {
  color: #FFFFFF !important;
  font-size: 58px;
  line-height: .95;
  letter-spacing: -2px;
}

.rating-hero-action .big-progress span {
  margin: 0;
  color: rgba(255, 255, 255, .66) !important;
}

.rating-hero-action .progress-track {
  height: 7px;
  margin-bottom: 14px;
  background: rgba(255, 255, 255, .18) !important;
}

.rating-hero-action .progress-track i {
  background: #FFFFFF !important;
}

.rating-hero-action .button {
  width: 100%;
  margin-top: 9px;
}

.rating-hero-action .button.primary {
  border-color: #FFFFFF !important;
  background: #FFFFFF !important;
  color: #4132F5 !important;
  box-shadow: 0 12px 28px rgba(16, 12, 80, .22);
}

.rating-hero-action .button.primary:hover {
  background: #F4F2FF !important;
  border-color: #F4F2FF !important;
}

.rating-hero-action .button.secondary {
  border-color: rgba(255, 255, 255, .24) !important;
  background: rgba(255, 255, 255, .07) !important;
  color: #FFFFFF !important;
}

.rating-hero-action .button.secondary:hover {
  background: rgba(255, 255, 255, .13) !important;
}

/* После удаления методологии критерии становятся первым содержательным блоком. */
.content-grid > .metric-explorer-panel:first-of-type {
  margin-top: 0;
}

@media (max-width: 980px) {
  .rating-hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(260px, 300px) !important;
    gap: 22px !important;
  }

  .rating-hero-action {
    padding: 18px;
  }

  .rating-hero-action .big-progress strong {
    font-size: 48px;
  }
}

@media (max-width: 760px) {
  .rating-hero-grid {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  .rating-hero-action {
    max-width: none;
  }
}

/* DNMR HERO APPLICATION LIGHT ALIGN V2 */

/* Карточка заявки центрируется по основной зоне названия рейтинга. */
.rating-hero-grid {
  align-items: center !important;
}

.rating-hero-action {
  align-self: center !important;
  background: rgba(255, 255, 255, .94) !important;
  border-color: rgba(255, 255, 255, .72) !important;
  color: #242424 !important;
  box-shadow: 0 18px 44px rgba(31, 24, 112, .18) !important;
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
}

.rating-hero-action .eyebrow {
  color: #68677A !important;
}

.rating-hero-action > p:not(.eyebrow) {
  color: #606272 !important;
}

.rating-hero-action .big-progress strong {
  color: #4132F5 !important;
}

.rating-hero-action .big-progress span {
  color: #6F7180 !important;
}

.rating-hero-action .progress-track {
  background: rgba(65, 50, 245, .13) !important;
}

.rating-hero-action .progress-track i {
  background: #4132F5 !important;
}

.rating-hero-action .button.primary {
  background: #4132F5 !important;
  border-color: #4132F5 !important;
  color: #FFFFFF !important;
  box-shadow: 0 12px 28px rgba(65, 50, 245, .24) !important;
}

.rating-hero-action .button.primary:hover {
  background: #3527E8 !important;
  border-color: #3527E8 !important;
}

.rating-hero-action .button.secondary {
  background: rgba(255, 255, 255, .76) !important;
  border-color: rgba(65, 50, 245, .18) !important;
  color: #2B2C34 !important;
}

.rating-hero-action .button.secondary:hover {
  background: #F4F2FF !important;
  border-color: rgba(65, 50, 245, .30) !important;
}

@media (max-width: 760px) {
  .rating-hero-grid {
    align-items: stretch !important;
  }

  .rating-hero-action {
    align-self: stretch !important;
  }
}

/* DNMR HERO APPLICATION GLASS V2 */

/* Карточка заявки внутри hero: стекло и более высокое положение */
.rating-hero-action {
  align-self: start !important;
  transform: translateY(-20px) !important;
  background: rgba(255, 255, 255, .14) !important;
  border: 1px solid rgba(255, 255, 255, .28) !important;
  box-shadow:
    0 18px 44px rgba(26, 18, 105, .16),
    inset 0 1px 0 rgba(255, 255, 255, .18) !important;
  backdrop-filter: blur(18px) saturate(135%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(135%) !important;
}

.rating-hero-action,
.rating-hero-action p,
.rating-hero-action small,
.rating-hero-action span {
  color: rgba(255, 255, 255, .82) !important;
}

.rating-hero-action h3,
.rating-hero-action strong {
  color: #FFFFFF !important;
}

/* Основная кнопка остается яркой, но уже не выглядит белой плашкой */
.rating-hero-action .button.primary {
  background: rgba(255, 255, 255, .94) !important;
  color: #4132F5 !important;
  border-color: rgba(255, 255, 255, .9) !important;
  box-shadow: 0 10px 28px rgba(18, 12, 92, .18) !important;
}

.rating-hero-action .button.primary:hover {
  background: #FFFFFF !important;
}

.rating-hero-action .button:not(.primary) {
  background: rgba(255, 255, 255, .07) !important;
  color: #FFFFFF !important;
  border-color: rgba(255, 255, 255, .22) !important;
}

.rating-hero-action .button:not(.primary):hover {
  background: rgba(255, 255, 255, .12) !important;
}

/* Если внутри есть прогресс существующей заявки */
.rating-hero-action .progress,
.rating-hero-action .progress-bar {
  background: rgba(255, 255, 255, .18) !important;
}

.rating-hero-action .progress i,
.rating-hero-action .progress-bar i {
  background: #FFFFFF !important;
}

@media (max-width: 960px) {
  .rating-hero-action {
    transform: none !important;
  }
}

/* DNMR HERO APPLICATION WHITE REALIGN V3 */

/*
  Hero выравнивается по верхнему краю двух независимых колонок.
  Карточка больше не центрируется относительно общей высоты текста слева
  и не двигается transform-ом.
*/
.rating-hero-grid {
  grid-template-columns: minmax(0, 1fr) minmax(300px, 338px) !important;
  align-items: start !important;
  gap: 34px !important;
}

.rating-hero-copy {
  align-self: start !important;
}

.rating-hero-action {
  box-sizing: border-box !important;
  align-self: start !important;
  margin-top: 8px !important;
  transform: none !important;

  background: #FFFFFF !important;
  border: 1px solid rgba(65, 50, 245, .10) !important;
  color: #242424 !important;
  box-shadow: 0 18px 42px rgba(31, 24, 112, .14) !important;

  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

.rating-hero-action,
.rating-hero-action p,
.rating-hero-action small,
.rating-hero-action span {
  color: #606272 !important;
}

.rating-hero-action .eyebrow,
.rating-hero-action h3,
.rating-hero-action strong {
  color: #242424 !important;
}

.rating-hero-action .big-progress strong {
  color: #4132F5 !important;
}

.rating-hero-action .big-progress span {
  color: #6F7180 !important;
}

.rating-hero-action .progress-track,
.rating-hero-action .progress,
.rating-hero-action .progress-bar {
  background: rgba(65, 50, 245, .12) !important;
}

.rating-hero-action .progress-track i,
.rating-hero-action .progress i,
.rating-hero-action .progress-bar i {
  background: #4132F5 !important;
}

.rating-hero-action .button.primary {
  background: #4132F5 !important;
  border-color: #4132F5 !important;
  color: #FFFFFF !important;
  box-shadow: 0 12px 28px rgba(65, 50, 245, .22) !important;
}

.rating-hero-action .button.primary:hover {
  background: #3527E8 !important;
  border-color: #3527E8 !important;
  color: #FFFFFF !important;
}

.rating-hero-action .button.secondary,
.rating-hero-action .button:not(.primary) {
  background: #FFFFFF !important;
  border-color: rgba(65, 50, 245, .16) !important;
  color: #2B2C34 !important;
}

.rating-hero-action .button.secondary:hover,
.rating-hero-action .button:not(.primary):hover {
  background: #F5F3FF !important;
  border-color: rgba(65, 50, 245, .28) !important;
  color: #2B2C34 !important;
}

@media (max-width: 960px) {
  .rating-hero-grid {
    grid-template-columns: 1fr !important;
    align-items: stretch !important;
  }

  .rating-hero-action {
    align-self: stretch !important;
    margin-top: 10px !important;
    transform: none !important;
  }
}

/* DNMR HERO APPLICATION EXACT TEXT LINE V5 */

/*
  В базовых стилях у .rating-hero-grid стоит min-height: 300px.
  Сбрасываем его: высоту строки теперь определяет реальный контент слева,
  а не искусственные 300px.
*/
.rating-hero-grid {
  min-height: 0 !important;
  align-items: stretch !important;
}

/*
  Левая колонка становится вертикальным контейнером.
  Если содержимое карточки заявки когда-нибудь будет выше,
  маленькое описание рейтинга все равно останется на общей нижней линии.
*/
.rating-hero-copy {
  align-self: stretch !important;
  display: flex !important;
  flex-direction: column !important;
}

/* Ровно по нижнему краю текста, без стандартного отступа после абзаца. */
.rating-hero-copy > p {
  margin-top: auto !important;
  margin-bottom: 0 !important;
}

/*
  Верх карточки остается как сейчас, с 8px отступом.
  Благодаря stretch ее нижний край совпадает с нижним краем строки слева.
*/
.rating-hero-action {
  align-self: stretch !important;
  box-sizing: border-box !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin-top: 8px !important;
  margin-bottom: 0 !important;
  transform: none !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
}

@media (max-width: 960px) {
  .rating-hero-grid {
    min-height: 0 !important;
    align-items: initial !important;
  }

  .rating-hero-copy {
    display: block !important;
  }

  .rating-hero-copy > p {
    margin-top: revert !important;
    margin-bottom: revert !important;
  }

  .rating-hero-action {
    align-self: auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin-top: 10px !important;
  }
}

/* DNMR HERO BADGE + ACTION 3PX V6 */

/*
  После перевода hero-copy в flex плашка начала растягиваться поперек колонки.
  Возвращаем прежнее поведение: ширина только по содержимому.
*/
.rating-hero-copy > .tag.light-tag {
  align-self: flex-start !important;
  width: fit-content !important;
  max-width: max-content !important;
}

/*
  Верх карточки остается на прежнем месте.
  Отрицательный нижний margin добавляет ровно 3px к ее высоте вниз
  внутри текущего stretch-выравнивания.
*/
.rating-hero-action {
  margin-bottom: -3px !important;
}

@media (max-width: 960px) {
  .rating-hero-action {
    margin-bottom: 0 !important;
  }
}
/* Левая колонка всегда имеет право сжиматься внутри grid. */
.rating-hero-copy {
  min-width: 0 !important;
}

.rating-hero-copy > p {
  max-width: 100% !important;
}

/*
  При ширине, где сайдбар уже уменьшил доступную область,
  сохраняем две колонки, но даем заголовку реальное место.
*/
@media (max-width: 1180px) and (min-width: 1061px) {
  .rating-hero-grid {
    grid-template-columns: minmax(0, 1fr) 276px !important;
    gap: 22px !important;
    align-items: stretch !important;
  }

  .rating-hero h1 {
    font-size: 54px !important;
    line-height: .92 !important;
    letter-spacing: -3px !important;
  }

  .rating-hero-copy > p {
    font-size: 12px !important;
    line-height: 1.45 !important;
  }

  .rating-hero-action {
    width: 100% !important;
    max-width: 276px !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
  }
}

/*
  Еще уже: карточка переходит на следующую строку ПОСЛЕ названия
  и описания. Поэтому она физически не может оказаться поверх текста.
*/
@media (max-width: 1060px) {
  .rating-hero {
    min-height: 0 !important;
  }

  .rating-hero-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 18px !important;
    min-height: 0 !important;
    align-items: start !important;
  }

  .rating-hero-copy {
    width: 100% !important;
    min-width: 0 !important;
  }

  .rating-hero h1 {
    max-width: 100% !important;
    font-size: clamp(52px, 7vw, 68px) !important;
    line-height: .92 !important;
    letter-spacing: -3px !important;
  }

  .rating-hero-copy > p {
    max-width: 100% !important;
    margin-bottom: 0 !important;
  }

  .rating-hero-action {
    justify-self: end !important;
    align-self: start !important;
    width: min(100%, 338px) !important;
    max-width: 338px !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    transform: none !important;
  }
}

/* На телефоне карточка занимает всю доступную ширину. */
@media (max-width: 760px) {
  .rating-hero h1 {
    font-size: 52px !important;
    letter-spacing: -3px !important;
  }

  .rating-hero-action {
    justify-self: stretch !important;
    width: 100% !important;
    max-width: none !important;
  }
}

/* Без заявки карточка обжимает только две кнопки */
.rating-hero-action-empty {
  align-self: start !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  padding: 16px !important;
  gap: 10px !important;
  justify-content: flex-start !important;
}

.rating-hero-action-empty .button {
  width: 100% !important;
  margin: 0 !important;
}

@media (max-width: 960px) {
  .rating-hero-action-empty {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 16px !important;
  }
}
/*
  Без заявки карточка остается компактной по содержимому,
  но возвращает нормальные внутренние отступы и не прижимается к верху hero.
*/
.rating-hero-action-empty {
  align-self: center !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  padding: 22px !important;
  gap: 10px !important;
  justify-content: center !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  transform: none !important;
}

.rating-hero-action-empty .button {
  width: 100% !important;
  margin: 0 !important;
}

@media (max-width: 960px) {
  .rating-hero-action-empty {
    align-self: stretch !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 22px !important;
    margin-top: 10px !important;
    margin-bottom: 0 !important;
  }
}

/* Только состояние без заявки: суммарный сдвиг 9px вниз */
.rating-hero-action.no-application,
.rating-hero-action.rating-hero-action-empty {
  transform: translateY(9px) !important;
}

@media (max-width: 960px) {
  .rating-hero-action.no-application,
  .rating-hero-action.rating-hero-action-empty {
    transform: none !important;
  }
}

/* Состояние без заявки: только сдвиг карточки на 4px вниз */
.rating-hero-action.no-application,
.rating-hero-action.rating-hero-action-empty {
  transform: translateY(4px) !important;
}

@media (max-width: 960px) {
  .rating-hero-action.no-application,
  .rating-hero-action.rating-hero-action-empty {
    transform: none !important;
  }
}
/* Только карточка без заявки: реальный сдвиг на 5px вниз без transform. */
.rating-hero-grid > .rating-hero-action.rating-hero-action-empty {
  position: relative !important;
  top: 9px !important;
}

/* Карточка с существующей заявкой остается на прежнем месте. */
.rating-hero-grid > .rating-hero-action:not(.rating-hero-action-empty) {
  top: auto !important;
}

/* DNMR EMPTY APPLICATION INLINE ACTIONS V2 */

/*
  Без заявки две кнопки являются частью hero без отдельной карточки.
  Геометрия задается одинаково для обеих тем.
*/
.rating-hero-action.rating-hero-action-empty {
  position: static !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  transform: none !important;

  justify-self: end !important;
  align-self: center !important;
  box-sizing: border-box !important;
  width: min(100%, 292px) !important;
  max-width: 292px !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;

  margin: 0 !important;
  padding: 0 !important;
  gap: 10px !important;

  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;

  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: stretch !important;
}

.rating-hero-action.rating-hero-action-empty .button {
  box-sizing: border-box !important;
  width: 100% !important;
  margin: 0 !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
}

.rating-hero-action.rating-hero-action-empty .button.primary {
  min-height: 54px !important;
  background: #FFFFFF !important;
  border: 1px solid #FFFFFF !important;
  color: #4132F5 !important;
  box-shadow: 0 12px 28px rgba(24, 17, 110, .18) !important;
}

.rating-hero-action.rating-hero-action-empty .button.primary:hover {
  background: #F6F5FF !important;
  border-color: #F6F5FF !important;
  color: #3527E8 !important;
}

/* Вторичная кнопка заметнее, но остается вторичной. */
.rating-hero-action.rating-hero-action-empty .button.secondary,
.rating-hero-action.rating-hero-action-empty .button:not(.primary) {
  min-height: 46px !important;
  background: rgba(255, 255, 255, .15) !important;
  border: 1px solid rgba(255, 255, 255, .72) !important;
  color: #FFFFFF !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .14),
    0 7px 18px rgba(24, 17, 110, .10) !important;
}

.rating-hero-action.rating-hero-action-empty .button.secondary:hover,
.rating-hero-action.rating-hero-action-empty .button:not(.primary):hover {
  background: rgba(255, 255, 255, .22) !important;
  border-color: rgba(255, 255, 255, .9) !important;
  color: #FFFFFF !important;
}

/* В светлой теме пульсация остается выключенной. */
.rating-hero-action.rating-hero-action-empty .application-continue-button {
  animation: none !important;
}

.rating-hero-action.rating-hero-action-empty .application-continue-button::after {
  display: none !important;
  animation: none !important;
}

@media (max-width: 760px) {
  .rating-hero-action.rating-hero-action-empty {
    justify-self: stretch !important;
    align-self: auto !important;
    width: 100% !important;
    max-width: none !important;
  }
}

/* DNMR HERO ACTIONS THEME GEOMETRY LOCK V3 */

/*
  Геометрия hero-действий одна для обеих тем.
  Темная тема ниже меняет только визуальные свойства.
*/
.rating-hero-action .button {
  box-sizing: border-box !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  transition-property: background-color, border-color, color, box-shadow, opacity !important;
}

/* Уже начатая заявка: карточка и обе кнопки не меняют X-позицию от темы. */
@media (min-width: 1061px) {
  .rating-hero-action:not(.rating-hero-action-empty) {
    justify-self: stretch !important;
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    transform: none !important;
  }

  .rating-hero-action:not(.rating-hero-action-empty) .button {
    width: 100% !important;
    align-self: stretch !important;
  }
}

/* Без заявки: текущая встроенная группа остается строго на одном месте. */
.rating-hero-action.rating-hero-action-empty {
  position: static !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  transform: none !important;
  justify-self: end !important;
  align-self: center !important;
  width: min(100%, 292px) !important;
  max-width: 292px !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 10px !important;
}

@media (max-width: 760px) {
  .rating-hero-action.rating-hero-action-empty {
    justify-self: stretch !important;
    align-self: auto !important;
    width: 100% !important;
    max-width: none !important;
  }
}

/* DNMR HERO ACTIONS STACK WIDTH SYNC V4 */

/* При 1060px hero уже становится одноколоночным, поэтому действия сразу занимают всю строку. */
@media (max-width: 1060px) {
  .rating-hero-action,
  .rating-hero-action.rating-hero-action-empty,
  .rating-hero-action:not(.rating-hero-action-empty) {
    justify-self: stretch !important;
    align-self: auto !important;
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .rating-hero-action .button,
  .rating-hero-action.rating-hero-action-empty .button,
  .rating-hero-action:not(.rating-hero-action-empty) .button {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

/* DNMR HERO COPY BREADCRUMB BADGE V1 */

/* Описание рейтинга всегда идет сразу после названия, а не прижимается к низу hero. */
.rating-hero-copy {
  justify-content: flex-start !important;
}

.rating-hero-copy > p {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Breadcrumb внутри фирменного hero всегда чисто белый. */
.rating-hero .breadcrumb,
.rating-hero .breadcrumb a,
.rating-hero .breadcrumb span {
  color: #FFFFFF !important;
  opacity: 1 !important;
}

/* DNMR · 2026 одинаковый в обеих темах и заметнее на синем фоне. */
.rating-hero-copy > .tag.light-tag {
  color: #FFFFFF !important;
  background: rgba(255, 255, 255, .18) !important;
  border: 1px solid rgba(255, 255, 255, .38) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .16),
    0 4px 14px rgba(24, 17, 110, .12) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

/* MULTI RATING CATALOG 2026 V1 */
.button:disabled,
.button[aria-disabled="true"],
.closed-rating-button {
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}

.closed-rating-button {
  background: rgba(255, 255, 255, .16) !important;
  color: rgba(255, 255, 255, .86) !important;
  border: 1px solid rgba(255, 255, 255, .32) !important;
  opacity: 1 !important;
}

.closed-rating-button:hover,
.closed-rating-button:focus-visible {
  transform: none !important;
  background: rgba(255, 255, 255, .16) !important;
  color: rgba(255, 255, 255, .86) !important;
}

.ratings-list-card .closed-rating-button.dark-surface {
  background: #F0F1F4 !important;
  border-color: #E0E2E8 !important;
  color: #777C87 !important;
}

/* Main: NESR and NTMSR replace demo ratings. */
.rating-carousel-v2 .rating-card-nesr {
  background: #087F8C !important;
}

.rating-carousel-v2 .rating-card-nesr .hero-card-pattern {
  background-image: url('/static/img/pattern-light.jpg') !important;
  opacity: .30 !important;
}

.rating-carousel-v2 .rating-card-nesr::after {
  background: linear-gradient(90deg, rgba(5, 101, 114, .30), rgba(7, 120, 133, .36) 55%, rgba(5, 88, 111, .58)) !important;
}

.rating-carousel-v2 .rating-card-ntmsr {
  background: linear-gradient(135deg, #183A67 0%, #23598B 52%, #2D7CA6 100%) !important;
}

.rating-carousel-v2 .rating-card-ntmsr .hero-card-pattern {
  background-image: url('/static/img/pattern-frame.jpg') !important;
  opacity: .24 !important;
}

.rating-carousel-v2 .rating-card-ntmsr::after {
  background: linear-gradient(90deg, rgba(16, 44, 80, .16), rgba(20, 74, 111, .30) 58%, rgba(13, 48, 84, .54)) !important;
}

.hero-card-closed .closed-rating-button {
  min-width: 190px;
}

/* Shared rating detail template with individual accents. */
.rating-hero-nesr {
  background: #087F8C !important;
}

.rating-hero-nesr .rating-hero-pattern {
  background-image: url('/static/img/pattern-light.jpg') !important;
  opacity: .30 !important;
}

.rating-hero-nesr::after {
  background: linear-gradient(90deg, rgba(5, 101, 114, .32), rgba(7, 120, 133, .38) 56%, rgba(5, 88, 111, .64)) !important;
}

.rating-hero-ntmsr {
  background: linear-gradient(135deg, #183A67 0%, #23598B 52%, #2D7CA6 100%) !important;
}

.rating-hero-ntmsr .rating-hero-pattern {
  background-image: url('/static/img/pattern-frame.jpg') !important;
  opacity: .24 !important;
}

.rating-hero-ntmsr::after {
  background: linear-gradient(90deg, rgba(16, 44, 80, .18), rgba(20, 74, 111, .32) 58%, rgba(13, 48, 84, .62)) !important;
}

.rating-hero-nesr h1,
.rating-hero-ntmsr h1 {
  font-size: clamp(43px, 5.3vw, 74px);
  letter-spacing: -3.5px;
}

.rating-title-line {
  display: block;
}

.rating-hero-action.rating-hero-action-empty.rating-hero-action-closed {
  justify-self: end !important;
  align-self: center !important;
  width: min(100%, 330px) !important;
  max-width: 330px !important;
  padding: 22px !important;
  gap: 12px !important;
  display: grid !important;
  background: rgba(255, 255, 255, .12) !important;
  border: 1px solid rgba(255, 255, 255, .24) !important;
  border-radius: 28px !important;
  box-shadow: 0 18px 38px rgba(15, 20, 55, .15) !important;
}

.rating-hero-action-closed .closed-rating-button {
  width: 100% !important;
  min-height: 52px !important;
  margin: 0 !important;
}

.closed-rating-state {
  display: flex;
  align-items: center;
  gap: 12px;
}

.closed-rating-state-icon {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, .16);
  border: 1px solid rgba(255, 255, 255, .24);
  color: #FFFFFF !important;
  font-weight: 900;
}

.closed-rating-state .eyebrow {
  margin: 0 0 3px;
  color: rgba(255, 255, 255, .64) !important;
}

.closed-rating-state strong {
  display: block;
  color: #FFFFFF !important;
  font-size: 16px;
}

.closed-rating-copy {
  margin: 0 !important;
  color: rgba(255, 255, 255, .74) !important;
  font-size: 12px;
  line-height: 1.5 !important;
}

/* Ratings page: actual vs completed ratings, separated by a visible band. */
.ratings-list-intro {
  margin-top: 12px;
}

.ratings-catalog-group {
  display: grid;
  gap: 14px;
}

.ratings-catalog-group-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  padding: 0 4px;
}

.ratings-catalog-group-head h2 {
  margin: 3px 0 0;
  font-size: clamp(24px, 3vw, 34px);
  letter-spacing: -.035em;
}

.ratings-group-kicker {
  color: var(--blue);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.ratings-archive-divider {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 34px 0 24px;
  color: #7B808B;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.ratings-archive-divider::before,
.ratings-archive-divider::after {
  content: "";
  height: 5px;
  border-radius: 999px;
  background: linear-gradient(90deg, #4132F5, #9DA5B5);
}

.ratings-archive-divider::before {
  width: 58px;
  flex: 0 0 58px;
}

.ratings-archive-divider::after {
  flex: 1;
  opacity: .28;
}

.ratings-list-card.is-current {
  box-shadow: 0 22px 60px rgba(65, 50, 245, .08);
}

.ratings-list-card.is-closed {
  background: #FAFAFC;
  border-color: #E7E8ED;
}

.ratings-list-card.is-closed::before {
  background: #A1A6B0;
}

.ratings-list-card.is-closed.rating-card-nesr::before {
  background: #087F8C;
}

.ratings-list-card.is-closed.rating-card-ntmsr::before {
  background: #23598B;
}

.ratings-list-closed-copy {
  display: grid;
  gap: 4px;
  max-width: 620px;
}

.ratings-list-closed-copy strong {
  font-size: 12px;
}

.ratings-list-closed-copy span {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
}

/* Main: compact calendar for every rating. */
.ratings-calendar-panel {
  align-self: start;
}

.ratings-calendar {
  display: grid;
  gap: 16px;
}

.ratings-calendar-group {
  display: grid;
  gap: 9px;
}

.ratings-calendar-group + .ratings-calendar-group {
  padding-top: 15px;
  border-top: 1px solid var(--line);
}

.ratings-calendar-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.ratings-calendar-title strong {
  font-size: 13px;
}

.ratings-calendar-title span {
  padding: 4px 7px;
  border-radius: 999px;
  background: var(--soft);
  color: var(--muted);
  font-size: 9px;
  font-weight: 750;
}

.ratings-calendar-events {
  display: grid;
  gap: 6px;
}

.ratings-calendar-event {
  display: grid;
  grid-template-columns: 8px minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: #FBFBFD;
}

.ratings-calendar-event > i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #B9BEC8;
}

.ratings-calendar-event.state-active > i {
  background: var(--blue);
  box-shadow: 0 0 0 4px rgba(65, 50, 245, .12);
}

.ratings-calendar-event.state-upcoming > i {
  background: #E79600;
}

.ratings-calendar-event.state-complete > i {
  background: #009162;
}

.ratings-calendar-event.state-planned > i {
  background: #7A8190;
}

.ratings-calendar-event b,
.ratings-calendar-event span {
  display: block;
}

.ratings-calendar-event b {
  font-size: 10px;
}

.ratings-calendar-event span {
  margin-top: 2px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.3;
}

.ratings-calendar-event small {
  color: #8B909A;
  font-size: 8px;
  font-weight: 750;
  white-space: nowrap;
}

@media (max-width: 1060px) {
  .rating-hero-action.rating-hero-action-empty.rating-hero-action-closed {
    width: 100% !important;
    max-width: none !important;
  }
}

@media (max-width: 760px) {
  .ratings-archive-divider::before {
    width: 28px;
    flex-basis: 28px;
  }

  .ratings-list-closed-copy {
    max-width: none;
  }

  .rating-hero-nesr h1,
  .rating-hero-ntmsr h1 {
    font-size: 46px;
    letter-spacing: -2.6px;
  }
}

/* MULTI RATING UX TUNING 2026 V3 */
/* Календарь остается компактным, а все события доступны внутренним скроллом. */
.ratings-calendar {
  max-height: 300px;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 8px;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: #B7BCC7 transparent;
}

.ratings-calendar::-webkit-scrollbar {
  width: 8px;
}

.ratings-calendar::-webkit-scrollbar-track {
  background: transparent;
}

.ratings-calendar::-webkit-scrollbar-thumb {
  background: #B7BCC7;
  border-radius: 999px;
  border: 2px solid transparent;
  background-clip: padding-box;
}

.ratings-calendar::-webkit-scrollbar-thumb:hover {
  background: #9299A6;
  border: 2px solid transparent;
  background-clip: padding-box;
}

/* Статус завершенного рейтинга на цветном hero должен читаться без потери контраста. */
.rating-hero-action > p.closed-rating-copy,
.rating-hero-action.rating-hero-action-closed > p.closed-rating-copy {
  color: #FFFFFF !important;
  opacity: 1 !important;
  font-size: 13px !important;
  font-weight: 650 !important;
  line-height: 1.55 !important;
  text-shadow: 0 1px 2px rgba(10, 18, 35, .24);
}

/* Тот же текст на странице общего списка рейтингов. */
.ratings-list-closed-copy span {
  color: #4E5562 !important;
  opacity: 1 !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.55 !important;
}

/* Короткие подписи NESR и NTMSR выводятся ровно двумя смысловыми строками. */
.rating-card-description .rating-description-line {
  display: block;
}

.rating-carousel-v2 .rating-card-description {
  line-height: 1.5;
}

@media (max-width: 760px) {
  .ratings-calendar {
    max-height: 280px;
  }
}

/* MULTI RATING UX TUNING 2026 V4 */
/* После удаления второго примечания блок взноса остается сбалансированным. */
.fee-panel.fee-panel-two {
  grid-template-columns: minmax(0, 1.5fr) 1fr;
}

/* В завершенных рейтингах даты четко отделены от серого фона карточки. */
.ratings-list-card.is-closed .ratings-list-dates > div {
  background: #FFFFFF;
  border: 1px solid #DDE1E8;
  box-shadow: 0 7px 18px rgba(27, 33, 46, .055);
}

.ratings-list-card.is-closed .ratings-list-dates span {
  color: #666D79;
}

.ratings-list-card.is-closed .ratings-list-dates strong {
  color: #20242C;
}

/* После удаления длинного статуса действия располагаются справа без пустого места. */
.ratings-list-card.is-closed .ratings-list-footer {
  justify-content: flex-end;
}

/* Однострочная подпись NESR не меняет положение основного названия карточки. */
.rating-carousel-v2 .rating-card-description {
  min-height: 1.5em;
}

@media (max-width: 760px) {
  .fee-panel.fee-panel-two {
    grid-template-columns: 1fr;
  }
}

/* MULTI RATING UX TUNING 2026 V5 */
/* На desktop короткие описания карточек main остаются одной строкой. */
@media (min-width: 761px) {
  .rating-carousel-v2 .rating-card-description {
    max-width: none !important;
    white-space: nowrap;
  }

  .rating-carousel-v2 .rating-card-description .rating-description-line {
    display: inline;
  }
}

/* Организационный взнос: сначала бесплатное участие, затем платный тариф. */
.fee-panel.fee-panel-tiered {
  gap: 12px;
  align-items: stretch;
}

.fee-panel-tiered .fee-panel-heading {
  grid-column: 1 / -1;
}

.fee-panel-tiered .fee-panel-heading .eyebrow {
  margin: 0;
}

.fee-panel.fee-panel-tiered-two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fee-panel.fee-panel-tiered-three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fee-panel-tiered .fee-note {
  min-height: 116px;
}

.fee-panel-tiered .fee-note-free {
  border: 1px solid rgba(0, 145, 98, .14);
  background: rgba(0, 145, 98, .055);
}

.fee-panel-tiered .fee-note-free strong {
  color: var(--green);
}

/* Геометрия каталога одинакова в светлой и темной теме.
   Прозрачная граница у дат текущего рейтинга предотвращает вертикальный reflow
   при подключении dark-theme.css, где такая граница становится видимой. */
.ratings-list-dates > div {
  border: 1px solid transparent;
}

.ratings-catalog-closed,
.ratings-archive-divider,
.ratings-list-card.is-closed {
  transform: none !important;
  translate: none !important;
}

.ratings-catalog-closed {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

.ratings-archive-divider {
  margin: 34px 0 24px !important;
}

@media (max-width: 760px) {
  .rating-carousel-v2 .rating-card-description {
    white-space: normal;
  }

  .fee-panel.fee-panel-tiered-two,
  .fee-panel.fee-panel-tiered-three {
    grid-template-columns: 1fr;
  }
}


/* MULTI RATING UX TUNING 2026 V6 */
/* Первый блок взноса снова шире остальных и использует обычную палитру, без зеленого акцента. */
.fee-panel.fee-panel-tiered-two {
  grid-template-columns: minmax(0, 1.5fr) 1fr;
}

.fee-panel.fee-panel-tiered-three {
  grid-template-columns: minmax(0, 1.5fr) 1fr 1fr;
}

.fee-panel-tiered .fee-note-free {
  background: var(--soft);
  border: 0;
}

.fee-panel-tiered .fee-note-free strong {
  color: var(--blue);
}

/* Закрытые рейтинги: две кнопки без отдельного полупрозрачного контейнера. */
.rating-hero-closed-actions {
  justify-self: end;
  align-self: center;
  width: min(100%, 292px);
  display: flex;
  flex-direction: column;
  gap: 10px;
  --closed-rating-accent: #4132F5;
}

.rating-hero-closed-actions-nesr {
  --closed-rating-accent: #087F8C;
}

.rating-hero-closed-actions-ntmsr {
  --closed-rating-accent: #23598B;
}

.rating-hero-closed-actions .button {
  width: 100%;
  margin: 0;
  border-radius: 999px;
  font-weight: 700;
}

.rating-hero-closed-actions .closed-rating-detail-button {
  min-height: 54px;
  background: rgba(255, 255, 255, .14);
  border: 1px solid rgba(255, 255, 255, .42);
  color: rgba(255, 255, 255, .92);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12);
  cursor: not-allowed;
  opacity: 1;
}

.rating-hero-closed-actions .rating-rules-button {
  min-height: 46px;
  background: #FFFFFF;
  border: 1px solid #FFFFFF;
  color: var(--closed-rating-accent);
  box-shadow: 0 10px 24px rgba(15, 20, 55, .14);
}

.rating-hero-closed-actions .rating-rules-button:hover {
  background: #F7F8FA;
  border-color: #F7F8FA;
  color: var(--closed-rating-accent);
}

@media (max-width: 1060px) {
  .rating-hero-closed-actions {
    justify-self: stretch;
    width: 100%;
    max-width: none;
  }
}

@media (max-width: 760px) {
  .summary-strip {
    grid-template-columns: 1fr;
  }

  .fee-panel.fee-panel-tiered-two,
  .fee-panel.fee-panel-tiered-three {
    grid-template-columns: 1fr;
  }
}


/* MULTI RATING HERO CENTER + FEE TYPOGRAPHY 2026 V7 */
/* Все страницы рейтингов имеют одинаковую высоту hero и центрируют основной контент по вертикали. */
.rating-hero {
  box-sizing: border-box !important;
  height: 430px !important;
  min-height: 430px !important;
  display: flex !important;
  flex-direction: column !important;
}

.rating-hero > .breadcrumb {
  flex: 0 0 auto !important;
}

.rating-hero-grid {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  align-items: center !important;
}

.rating-hero-copy {
  align-self: center !important;
  justify-content: center !important;
}

.rating-hero-copy > p {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* DNMR теперь использует тот же масштаб заголовка, что NESR и NTMSR. */
.rating-hero h1,
.rating-hero-nesr h1,
.rating-hero-ntmsr h1 {
  font-size: clamp(43px, 5.3vw, 74px) !important;
  line-height: .92 !important;
  letter-spacing: -3.5px !important;
}

.rating-hero-action,
.rating-hero-action.rating-hero-action-empty,
.rating-hero-closed-actions {
  align-self: center !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  transform: none !important;
}

/* Блоки взноса снова одинаковой ширины. Увеличивается именно число и текст бесплатного тарифа. */
.fee-panel.fee-panel-tiered-two {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.fee-panel.fee-panel-tiered-three {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.fee-panel-tiered .fee-note-free strong {
  font-size: 34px !important;
  line-height: 1 !important;
  margin-bottom: 11px !important;
}

.fee-panel-tiered .fee-note-free span {
  font-size: 14px !important;
  line-height: 1.55 !important;
  font-weight: 600 !important;
}

@media (max-width: 1060px) {
  .rating-hero {
    height: auto !important;
    min-height: 390px !important;
    display: block !important;
  }

  .rating-hero-grid {
    display: grid !important;
    align-items: start !important;
  }

  .rating-hero-copy {
    align-self: auto !important;
  }

  .rating-hero-action,
  .rating-hero-action.rating-hero-action-empty,
  .rating-hero-closed-actions {
    align-self: auto !important;
  }
}

@media (max-width: 760px) {
  .rating-hero h1,
  .rating-hero-nesr h1,
  .rating-hero-ntmsr h1 {
    font-size: 46px !important;
    letter-spacing: -2.6px !important;
  }

  .fee-panel.fee-panel-tiered-two,
  .fee-panel.fee-panel-tiered-three {
    grid-template-columns: 1fr !important;
  }
}

/* EXACT DESKTOP 80 AS 100 V10 START */
/*
  На обычных 100 процентах браузера интерфейс выглядит так же,
  как исходный сайт при браузерном масштабе 80 процентов.
  Важно: ширину body не увеличиваем. Именно это убирает растягивание V9.
*/
@media (min-width: 961px) {
  body.app-body {
    zoom: .8;
  }

  body.app-body .app-shell {
    min-height: 125vh;
  }

  body.app-body .sidebar {
    height: 125vh;
  }

  body.login-page {
    zoom: .8;
    min-height: 125vh;
  }
}
/* EXACT DESKTOP 80 AS 100 V10 END */

/* DNMR ACTIVE HERO POLISH V11 */
/* Активный DNMR получает более объемный фирменный фон, не меняя геометрию hero. */
.rating-hero-dnmr {
  background:
    radial-gradient(circle at 82% 12%, rgba(139, 130, 255, .42) 0, rgba(139, 130, 255, 0) 34%),
    radial-gradient(circle at 10% 112%, rgba(103, 204, 255, .20) 0, rgba(103, 204, 255, 0) 42%),
    linear-gradient(135deg, #3326E8 0%, #4B3CFF 48%, #2639D8 100%) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .14),
    0 18px 40px rgba(49, 42, 184, .08) !important;
}

.rating-hero-dnmr .rating-hero-pattern {
  background-image: url('/static/img/pattern-blue.jpg') !important;
  background-position: center 76% !important;
  background-size: cover !important;
  opacity: .24 !important;
  mix-blend-mode: screen;
  filter: saturate(1.18) contrast(1.04);
}

.rating-hero-dnmr::after {
  background:
    linear-gradient(90deg, rgba(36, 24, 170, .22) 0%, rgba(74, 57, 255, .06) 50%, rgba(27, 45, 153, .34) 100%) !important;
}

/* Кнопки сохраняют логику остальных рейтингов: pill + стекло, но активное действие заметнее. */
.rating-hero-dnmr .rating-hero-action.rating-hero-action-empty .button.primary {
  background: linear-gradient(180deg, #FFFFFF 0%, #F1EFFF 100%) !important;
  border-color: rgba(255, 255, 255, .96) !important;
  color: #3F30F2 !important;
  box-shadow:
    0 12px 28px rgba(28, 20, 137, .18),
    inset 0 1px 0 rgba(255, 255, 255, .95) !important;
}

.rating-hero-dnmr .rating-hero-action.rating-hero-action-empty .button.primary:hover {
  background: linear-gradient(180deg, #FFFFFF 0%, #E9E5FF 100%) !important;
  border-color: #FFFFFF !important;
  color: #3324E7 !important;
  box-shadow:
    0 14px 32px rgba(28, 20, 137, .22),
    inset 0 1px 0 rgba(255, 255, 255, 1) !important;
}

.rating-hero-dnmr .rating-hero-action.rating-hero-action-empty .button.secondary,
.rating-hero-dnmr .rating-hero-action.rating-hero-action-empty .button:not(.primary) {
  background: rgba(255, 255, 255, .13) !important;
  border-color: rgba(255, 255, 255, .62) !important;
  color: #FFFFFF !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .13),
    0 8px 20px rgba(28, 20, 137, .10) !important;
}

.rating-hero-dnmr .rating-hero-action.rating-hero-action-empty .button.secondary:hover,
.rating-hero-dnmr .rating-hero-action.rating-hero-action-empty .button:not(.primary):hover {
  background: rgba(255, 255, 255, .20) !important;
  border-color: rgba(255, 255, 255, .90) !important;
  color: #FFFFFF !important;
}
/* DNMR ACTIVE HERO POLISH V11 END */

/* LIGHT SAFARI OVERSCROLL V18 START */
/*
  Safari colors the rubber-band area from the page canvas/theme color.
  Keep the light-theme canvas identical to the normal page background.
*/
html[data-theme="light"] {
  background-color: #f5f6fb !important;
}

html[data-theme="light"] body.app-body,
html[data-theme="light"] body.app-body .app-shell,
html[data-theme="light"] body.app-body .main-content {
  background-color: #f5f6fb !important;
}
/* LIGHT SAFARI OVERSCROLL V18 END */

/* SIDEBAR FULL RAIL SCROLL V23 START */
/*
  Desktop behavior:
  - the complete white sidebar is fixed to the viewport;
  - the complete sidebar is the scroll container when vertical room is too small;
  - Support / Theme / User stay at the bottom when there is enough room;
  - when room is insufficient, the auto spacer collapses and the whole rail scrolls;
  - 125vh compensates the existing desktop body zoom .8, so Safari and Chromium
    render the fixed rail at the actual viewport height without a JS height fitter.
*/
@media (min-width: 961px) {
  html,
  body.app-body {
    overscroll-behavior-y: none !important;
  }

  body.app-body .sidebar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    bottom: auto !important;
    width: 270px !important;
    height: 125vh !important;
    min-height: 0 !important;
    max-height: 125vh !important;
    padding: 22px 18px !important;
    display: flex !important;
    flex-direction: column !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior-y: contain !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: rgba(109, 116, 137, .46) transparent;
    background: var(--white) !important;
    z-index: 40 !important;
    transform: none !important;
    contain: none !important;
  }

  @supports (height: 100dvh) {
    body.app-body .sidebar {
      height: 125dvh !important;
      max-height: 125dvh !important;
    }
  }

  body.app-body .sidebar > .brand,
  body.app-body .sidebar > .side-nav,
  body.app-body .sidebar > .side-footer {
    flex: 0 0 auto !important;
  }

  body.app-body .sidebar > .side-nav {
    min-height: 0 !important;
    overflow: visible !important;
    position: relative !important;
    z-index: 2 !important;
  }

  body.app-body .sidebar > .side-footer {
    position: static !important;
    inset: auto !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-height: none !important;
    margin-top: auto !important;
    padding: 14px 0 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    overflow: visible !important;
    transform: none !important;
    z-index: 1 !important;
  }

  /* Harmless compatibility in case a previous V22 wrapper is still present. */
  body.app-body .sidebar > .side-footer > .side-footer-inner {
    display: contents !important;
  }

  body.app-body .sidebar > .side-footer .support-card,
  body.app-body .sidebar > .side-footer .theme-toggle,
  body.app-body .sidebar > .side-footer .user-card {
    min-width: 0 !important;
  }

  body.app-body .sidebar::-webkit-scrollbar {
    width: 7px;
  }

  body.app-body .sidebar::-webkit-scrollbar-track {
    background: transparent;
  }

  body.app-body .sidebar::-webkit-scrollbar-thumb {
    min-height: 30px;
    background: rgba(109, 116, 137, .46);
    border: 2px solid transparent;
    border-radius: 999px;
    background-clip: padding-box;
  }

  body.app-body .sidebar::-webkit-scrollbar-thumb:hover {
    background: rgba(109, 116, 137, .66);
    border: 2px solid transparent;
    background-clip: padding-box;
  }

  body.app-body .main-content {
    grid-column: 2 !important;
  }
}

@media (min-width: 961px) and (max-width: 1180px) {
  body.app-body .sidebar {
    width: 220px !important;
  }
}

@media (max-width: 960px) {
  body.app-body .sidebar {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    bottom: auto !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    overscroll-behavior-y: auto !important;
  }

  body.app-body .sidebar > .side-footer {
    margin-top: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  body.app-body .sidebar > .side-footer > .side-footer-inner {
    display: contents !important;
  }

  body.app-body .main-content {
    grid-column: auto !important;
  }
}
/* SIDEBAR FULL RAIL SCROLL V23 END */



/* NATURAL PAGE OVERSCROLL V26 START */
/*
  Restore the normal macOS browser edge elasticity. V23 intentionally disabled
  root overscroll; that felt unnatural. The sidebar remains the same full-rail
  scroll container from V23/V25.
*/
@media (min-width: 961px) {
  html,
  body.app-body {
    overscroll-behavior-y: auto !important;
  }

  /* Safari: preserve native elastic movement for the page and the sidebar. */
  html.acrir-browser-safari body.app-body .sidebar {
    overscroll-behavior-y: auto !important;
  }

  /*
    Chromium: keep the fixed rail on its own composited layer. This lets the
    document use the normal top/bottom elastic effect without visually dragging
    the white sidebar with the page.
  */
  html.acrir-browser-chromium body.app-body .sidebar {
    position: fixed !important;
    transform: translate3d(0, 0, 0) !important;
    -webkit-transform: translate3d(0, 0, 0) !important;
    backface-visibility: hidden !important;
    -webkit-backface-visibility: hidden !important;
    will-change: transform;
    isolation: isolate;
    overscroll-behavior-y: contain !important;
  }
}
/* NATURAL PAGE OVERSCROLL V26 END */

/* APPLICATION FREEFLOW + COMPANY GATE V27 START */
.application-order-hint {
  max-width: 760px;
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

.application-freeflow {
  display: grid;
  gap: 12px;
}

.application-map {
  padding: 22px;
  overflow: hidden;
}

.application-map-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 18px;
}

.application-map-head h2 {
  margin: 2px 0 0;
  font-size: 25px;
  letter-spacing: -1px;
}

.application-map-rule {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  max-width: 380px;
  padding: 10px 13px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  background: #fafbfe;
  font-size: 10px;
  font-weight: 750;
  line-height: 1.35;
}

.application-map-rule-dot {
  width: 9px;
  height: 9px;
  flex: 0 0 9px;
  border-radius: 50%;
  background: #b5b9c4;
  box-shadow: 0 0 0 5px rgba(181,185,196,.12);
}

.application-map-rule.is-open {
  color: #006c49;
  border-color: rgba(0,145,98,.18);
  background: rgba(0,145,98,.06);
}

.application-map-rule.is-open .application-map-rule-dot {
  background: var(--green);
  box-shadow: 0 0 0 5px rgba(0,145,98,.11);
}

.application-map-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.application-section-card {
  min-height: 132px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 8px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: #fff;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.application-section-card:hover {
  transform: translateY(-1px);
  border-color: rgba(65,50,245,.38);
  box-shadow: 0 12px 28px rgba(36,36,36,.055);
}

.application-section-card.is-gate {
  grid-column: span 2;
  background:
    radial-gradient(circle at 92% 12%, rgba(6,188,229,.14), transparent 38%),
    linear-gradient(135deg, #f2f0ff 0%, #fafaff 56%, #eef6ff 100%);
  border-color: rgba(65,50,245,.18);
}

.application-section-card.is-active {
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(65,50,245,.07);
}

.application-section-card.is-complete:not(.is-active) {
  border-color: rgba(0,145,98,.20);
}

.application-section-card.is-locked {
  cursor: not-allowed;
  background: #f7f8fb;
  color: #9a9fab;
  border-color: #eceef4;
  box-shadow: none;
  transform: none;
}

.application-section-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.application-section-state {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #efefff;
  color: var(--blue);
  font-size: 10px;
  font-weight: 900;
}

.application-section-card.is-complete .application-section-state {
  background: rgba(0,145,98,.10);
  color: var(--green);
}

.application-section-card.is-locked .application-section-state {
  background: #eceef3;
  color: #a3a8b2;
}

.application-section-badge {
  max-width: 150px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--muted);
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .035em;
}

.application-section-card.is-complete .application-section-badge {
  color: var(--green);
}

.application-section-card > strong {
  margin-top: 5px;
  font-size: 15px;
  letter-spacing: -.25px;
}

.application-section-card > small {
  color: var(--muted);
  font-size: 10px;
  line-height: 1.45;
}

.application-section-card.is-locked > small,
.application-section-card.is-locked .application-section-badge {
  color: #a7acb6;
}

.application-form.application-form-free {
  min-height: 0;
  padding: 34px;
}

.application-company-heading {
  max-width: 920px;
}

.company-sync-card {
  margin-bottom: 18px;
  padding: 20px;
  border: 1px solid rgba(65,50,245,.16);
  border-radius: 30px;
  background:
    radial-gradient(circle at 100% 0%, rgba(205,225,255,.58), transparent 38%),
    #fafaff;
}

.company-sync-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  margin-bottom: 16px;
}

.company-sync-title {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.company-sync-title strong,
.company-sync-title small {
  display: block;
}

.company-sync-title strong {
  font-size: 14px;
}

.company-sync-title small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.45;
}

.company-sync-icon {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--blue);
  color: #fff;
  font-size: 17px;
  font-weight: 800;
  box-shadow: 0 9px 22px rgba(65,50,245,.16);
}

.company-sync-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.company-sync-item {
  min-width: 0;
  min-height: 92px;
  padding: 14px 15px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: rgba(255,255,255,.88);
}

.company-sync-item span,
.company-sync-item strong {
  display: block;
}

.company-sync-item span {
  color: var(--muted);
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.company-sync-item strong {
  margin-top: 8px;
  overflow-wrap: anywhere;
  font-size: 13px;
  line-height: 1.35;
}

.company-criterion-form {
  margin-bottom: 0;
}

.dnmr-group-card {
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 30px;
  background: linear-gradient(180deg, #ffffff 0%, #fbfbff 100%);
}

.dnmr-group-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.dnmr-group-head h3 {
  margin: 2px 0 0;
  font-size: 23px;
  letter-spacing: -.8px;
}

.dnmr-group-tag {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 11px;
  border-radius: 999px;
  color: #5a50da;
  background: #efefff;
  font-size: 9px;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.dnmr-group-copy {
  max-width: 780px;
  margin: 9px 0 16px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

.dnmr-group-choice {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.dnmr-group-option {
  position: relative;
  display: block;
}

.dnmr-group-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.dnmr-group-option-body {
  min-height: 86px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 15px 18px 15px 52px;
  position: relative;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: #fff;
  transition: .18s ease;
}

.dnmr-group-option-body::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 50%;
  width: 20px;
  height: 20px;
  transform: translateY(-50%);
  border: 1.5px solid #c9ccd6;
  border-radius: 50%;
  background: #fff;
  box-shadow: inset 0 0 0 5px #fff;
}

.dnmr-group-option-body b,
.dnmr-group-option-body small {
  display: block;
}

.dnmr-group-option-body b {
  font-size: 14px;
}

.dnmr-group-option-body small {
  margin-top: 4px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.4;
}

.dnmr-group-option input:checked + .dnmr-group-option-body {
  border-color: var(--blue);
  background: #f4f3ff;
  box-shadow: 0 0 0 3px rgba(65,50,245,.055);
}

.dnmr-group-option input:checked + .dnmr-group-option-body::before {
  border-color: var(--blue);
  background: var(--blue);
}

.dnmr-group-option input:focus-visible + .dnmr-group-option-body {
  box-shadow: 0 0 0 4px rgba(65,50,245,.12);
}

.dnmr-group-details {
  margin-top: 14px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}

.dnmr-group-details[hidden] {
  display: none !important;
}

.company-confirm-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 16px;
  padding: 16px 18px;
  border-radius: 24px;
  background: var(--soft);
}

.company-confirm-row strong,
.company-confirm-row small {
  display: block;
}

.company-confirm-row strong {
  font-size: 13px;
}

.company-confirm-row small {
  max-width: 620px;
  margin-top: 4px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.4;
}

.alert.info {
  background: #eef4ff;
  color: #294a81;
  border: 1px solid #d7e6ff;
}

@media (max-width: 1240px) {
  .application-map-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .company-sync-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 900px) {
  .application-map-head { align-items: flex-start; flex-direction: column; gap: 12px; }
  .application-map-rule { max-width: none; }
  .application-map-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .application-section-card.is-gate { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  .application-form.application-form-free,
  .application-map { padding: 20px; }
  .application-map-grid,
  .company-sync-grid,
  .dnmr-group-choice { grid-template-columns: 1fr; }
  .application-section-card.is-gate { grid-column: auto; }
  .company-sync-head,
  .company-confirm-row { align-items: stretch; flex-direction: column; }
  .company-sync-head .button,
  .company-confirm-row .button { width: 100%; }
  .dnmr-group-head { align-items: flex-start; }
}
/* APPLICATION FREEFLOW + COMPANY GATE V27 END */

/* APPLICATION COMPANY VALIDATION V29 START */
.dnmr-group-choice.has-error .dnmr-group-option-body {
  border-color: #d43d3d;
  box-shadow: 0 0 0 3px rgba(212,61,61,.08);
}

.dnmr-group-validation {
  margin: 9px 2px 0;
  color: #b42f2f;
  font-size: 10px;
  font-weight: 750;
  line-height: 1.35;
}

.dnmr-group-validation[hidden] {
  display: none !important;
}

.dnmr-group-details .field.has-error input {
  border-color: #d43d3d !important;
  box-shadow: 0 0 0 3px rgba(212,61,61,.08) !important;
}

html[data-theme="dark"] .dnmr-group-choice.has-error .dnmr-group-option-body,
html[data-theme="dark"] .dnmr-group-details .field.has-error input {
  border-color: #ff7474 !important;
  box-shadow: 0 0 0 3px rgba(255,116,116,.10) !important;
}

html[data-theme="dark"] .dnmr-group-validation {
  color: #ff9a9a;
}
/* APPLICATION COMPANY VALIDATION V29 END */


/* APPLICATION COMPANY PARTICIPATION V30 START */
.company-sync-icon svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.company-participation-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.company-choice-group { min-width:0; padding:14px; border:1px solid var(--line); border-radius:24px; background:rgba(255,255,255,.78); transition:border-color .18s ease,box-shadow .18s ease; }
.company-choice-group-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:2px 2px 11px; }
.company-choice-group-head span,.company-choice-group-head strong,.company-choice-group-head small { display:block; }
.company-choice-group-head span { color:var(--muted); font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.company-choice-group-head strong { margin-top:3px; font-size:13px; }
.company-choice-group-head > small { min-width:28px; height:28px; display:grid; place-items:center; border-radius:999px; background:#efefff; color:var(--blue); font-size:10px; font-weight:850; }
.company-profile-choice-list { display:grid; gap:8px; }
.company-profile-choice { position:relative; display:block; cursor:pointer; }
.company-profile-choice input { position:absolute; opacity:0; pointer-events:none; }
.company-profile-choice-box { min-height:68px; display:grid; grid-template-columns:24px 38px minmax(0,1fr) auto; gap:10px; align-items:center; padding:10px 11px; border:1px solid var(--line); border-radius:18px; background:#fff; transition:.18s ease; }
.company-profile-choice-check { width:20px; height:20px; display:grid; place-items:center; border:1.5px solid #c8ccd6; border-radius:7px; color:transparent; background:#fff; font-size:11px; font-weight:900; }
.company-profile-choice-mark { width:38px; height:38px; display:grid; place-items:center; border-radius:13px; background:#efefff; color:var(--blue); font-size:10px; font-weight:900; }
.company-profile-choice-copy { min-width:0; }
.company-profile-choice-copy strong,.company-profile-choice-copy small { display:block; }
.company-profile-choice-copy strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; }
.company-profile-choice-copy small { margin-top:4px; color:var(--muted); font-size:9px; line-height:1.4; overflow-wrap:anywhere; }
.company-profile-choice-primary { padding:5px 8px; border-radius:999px; background:#f0f1f6; color:#7b8190; font-size:8px; font-weight:850; text-transform:uppercase; letter-spacing:.03em; }
.company-profile-choice input:checked + .company-profile-choice-box { border-color:var(--blue); background:#f7f6ff; box-shadow:0 0 0 3px rgba(65,50,245,.055); }
.company-profile-choice input:checked + .company-profile-choice-box .company-profile-choice-check { border-color:var(--blue); background:var(--blue); color:#fff; }
.company-profile-choice input:focus-visible + .company-profile-choice-box { box-shadow:0 0 0 4px rgba(65,50,245,.12); }
.company-criterion-form.is-company-readonly .company-profile-choice { cursor:default; }
.company-criterion-form.is-company-readonly .company-profile-choice input:not(:checked) + .company-profile-choice-box { opacity:.55; }
.company-criterion-form.is-company-readonly .dnmr-group-option { cursor:default; }
.company-choice-group.has-error { border-color:#d43d3d; box-shadow:0 0 0 3px rgba(212,61,61,.08); }
.company-choice-validation { margin:9px 2px 0; color:#b42f2f; font-size:10px; font-weight:750; line-height:1.35; }
.company-choice-validation[hidden] { display:none !important; }
@media (max-width:980px) { .company-participation-grid { grid-template-columns:1fr; } }
@media (max-width:620px) { .company-profile-choice-box { grid-template-columns:22px 36px minmax(0,1fr); } .company-profile-choice-primary { display:none; } }
/* APPLICATION COMPANY PARTICIPATION V30 END */


/* APPLICATION COMPANY LISTS + EDIT HEADER V31 START */
.application-company-heading {
  max-width: none;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 22px;
}
.application-company-heading-copy {
  min-width: 0;
  max-width: 920px;
}
.application-company-edit-trigger {
  flex: 0 0 auto;
  margin-top: 1px;
}
.company-profile-choice-list {
  height: 296px;
  min-height: 296px;
  max-height: 296px;
  overflow-y: auto;
  overflow-x: hidden;
  align-content: start;
  padding-right: 4px;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.company-profile-choice-box {
  height: 68px;
  min-height: 68px;
  overflow: hidden;
}
.company-profile-choice-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.company-profile-choice-list::-webkit-scrollbar {
  width: 7px;
}
.company-profile-choice-list::-webkit-scrollbar-track {
  background: transparent;
}
.company-profile-choice-list::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: #d8dae5;
}
html[data-theme="dark"] .company-profile-choice-list::-webkit-scrollbar-thumb {
  background: #4a5263;
}
@media (max-width: 620px) {
  .application-company-heading {
    gap: 14px;
  }
  .application-company-edit-trigger span {
    display: none;
  }
  .application-company-edit-trigger {
    width: 36px;
    padding: 0;
  }
}
/* APPLICATION COMPANY LISTS + EDIT HEADER V31 END */

/* RATINGS ORIENTATION + SAFARI LOGIN + ANCHORED SERVICE TIPS V32 START */

/* Desktop login is a viewport scene, not a document page. The existing .8 zoom
   intentionally turns 125vh into one physical viewport; lock that scene so
   Safari does not expose a synthetic extra scroll range. */
@media (min-width: 961px) {
  html.login-root {
    width: 100%;
    height: 100%;
    min-height: 100%;
    overflow: hidden !important;
    overscroll-behavior: none;
  }

  html.login-root body.login-page {
    height: 125vh !important;
    min-height: 125vh !important;
    max-height: 125vh !important;
    overflow: hidden !important;
  }

  html.login-root body.login-page .login-hero,
  html.login-root body.login-page .login-panel {
    height: 125vh;
    min-height: 0 !important;
  }
}

/* Large semantic marks let the three rating cards be recognized at a glance.
   They deliberately live behind content and use a mild 3D/perspective turn. */
.ratings-list-card > *:not(.ratings-list-watermark) {
  position: relative;
  z-index: 2;
}

.ratings-list-watermark {
  position: absolute;
  z-index: 0;
  top: -24px;
  right: clamp(34px, 7vw, 118px);
  width: clamp(210px, 23vw, 330px);
  aspect-ratio: 1;
  color: #4132F5;
  opacity: .105;
  pointer-events: none;
  user-select: none;
  transform-origin: 50% 50%;
  transform: perspective(900px) rotateY(-23deg) rotateX(8deg) rotateZ(38deg) scale(1.04);
  filter: drop-shadow(0 18px 22px rgba(65, 50, 245, .08));
}

.ratings-list-watermark svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.rating-card-dnmr .ratings-list-watermark {
  color: #4B3CFF;
  opacity: .12;
}

.rating-card-nesr .ratings-list-watermark {
  color: #087F8C;
  opacity: .105;
  transform: perspective(900px) rotateY(-22deg) rotateX(7deg) rotateZ(34deg) scale(1.02);
}

.rating-card-ntmsr .ratings-list-watermark {
  color: #23598B;
  opacity: .105;
  transform: perspective(900px) rotateY(-24deg) rotateX(8deg) rotateZ(40deg) scale(1.02);
}

/* The shared service hint is physically re-parented into the selected grid cell.
   This removes the fixed-position/zoom coordinate mismatch and makes the hint
   read as a direct continuation of the clicked service block. */
.service-chip-wrap {
  position: relative;
  min-width: 0;
  z-index: 1;
}

.service-chip-wrap.is-open {
  z-index: 60;
}

.service-tooltip-popup {
  position: absolute !important;
  z-index: 70;
  left: 0 !important;
  right: 0;
  top: calc(100% + 14px) !important;
  width: 100% !important;
  max-width: none;
  transform: translateY(7px) scale(.985);
  transform-origin: center top;
}

.service-tooltip-popup.is-visible {
  transform: translateY(0) scale(1);
}

.service-tooltip-popup[data-placement="top"] {
  top: auto !important;
  bottom: calc(100% + 14px);
  transform-origin: center bottom;
}

.service-tooltip-popup[data-placement="bottom"] {
  top: calc(100% + 14px) !important;
  bottom: auto;
}

.service-tooltip-popup::after {
  left: 50% !important;
}

@media (max-width: 760px) {
  .ratings-list-watermark {
    top: 4px;
    right: -18px;
    width: 168px;
    opacity: .065;
  }

  .rating-card-dnmr .ratings-list-watermark,
  .rating-card-nesr .ratings-list-watermark,
  .rating-card-ntmsr .ratings-list-watermark {
    opacity: .07;
  }
}

/* RATINGS ORIENTATION + SAFARI LOGIN + ANCHORED SERVICE TIPS V32 END */


/* SAFARI LOGIN + RATINGS GLASS MARKS V33 START */

/* Safari treats CSS zoom differently from Chromium. Keep the Chromium path
   untouched, but on Safari reproduce the same 80% visual scale with a normal
   transform over a 125% layout canvas. This keeps the form vertically centered
   exactly inside the visible viewport instead of centering it in a taller page. */
@media (min-width: 961px) {
  html.login-root.browser-safari {
    width: 100%;
    height: 100%;
    min-height: 100%;
    overflow: hidden !important;
    overscroll-behavior: none;
  }

  html.login-root.browser-safari body.login-page {
    position: fixed !important;
    inset: 0 auto auto 0 !important;
    width: 125vw !important;
    height: 125vh !important;
    min-height: 125vh !important;
    max-height: 125vh !important;
    margin: 0 !important;
    zoom: 1 !important;
    overflow: hidden !important;
    transform: scale(.8);
    -webkit-transform: scale(.8);
    transform-origin: 0 0;
    -webkit-transform-origin: 0 0;
  }

  html.login-root.browser-safari body.login-page .login-hero,
  html.login-root.browser-safari body.login-page .login-panel {
    height: 125vh !important;
    min-height: 125vh !important;
    max-height: 125vh !important;
  }
}

/* Glass date cards: enough tint and edge definition to stay readable on white,
   while keeping the semantic watermark visibly passing underneath. */
.ratings-list-dates > div {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(126, 131, 160, .18);
  background:
    linear-gradient(135deg, rgba(255,255,255,.62), rgba(244,245,251,.42)) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.82),
    0 10px 28px rgba(47, 52, 82, .045);
  -webkit-backdrop-filter: blur(7px) saturate(1.08);
  backdrop-filter: blur(7px) saturate(1.08);
}

.ratings-list-dates > div::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  background: linear-gradient(110deg, rgba(255,255,255,.20), transparent 45%, rgba(255,255,255,.08));
}

.ratings-list-dates > div > * {
  position: relative;
  z-index: 1;
}

/* Move all semantic card marks a little left. */
.ratings-list-watermark {
  right: clamp(72px, 9vw, 154px);
}

/* The DNMR mark is now a digital browser/cursor glyph, so give it a slightly
   calmer turn than the event/trade symbols and keep its silhouette readable. */
.rating-card-dnmr .ratings-list-watermark {
  top: -18px;
  transform: perspective(900px) rotateY(-18deg) rotateX(7deg) rotateZ(31deg) scale(1.02);
}

@media (max-width: 760px) {
  .ratings-list-watermark {
    right: -2px;
  }

  .rating-card-dnmr .ratings-list-watermark {
    top: 5px;
  }
}

/* SAFARI LOGIN + RATINGS GLASS MARKS V33 END */

/* RATINGS DATE WIDTH V34 START */
/* Keep the two date panels in the left ~65% of the card, matching the marked
   vertical boundary. Both panels stay exactly equal, while the right third is
   deliberately left clear so the rating watermark reads as a separate visual. */
@media (min-width: 761px) {
  .ratings-list-dates {
    width: 65%;
    max-width: 760px;
    justify-self: start;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
}

/* On tablets/mobile the date values need the full card width again. */
@media (max-width: 760px) {
  .ratings-list-dates {
    width: 100%;
    max-width: none;
  }
}
/* RATINGS DATE WIDTH V34 END */

/* TABLER RATING WATERMARKS V35 START */
/* Published Tabler SVG assets replace the previous hand-drawn watermark geometry. */
.ratings-list-watermark img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  pointer-events: none;
  user-select: none;
}

/* Optical balancing only; the icon geometry itself is untouched. */
.rating-card-dnmr .ratings-list-watermark img {
  transform: scale(.94);
}

.rating-card-nesr .ratings-list-watermark img {
  transform: scale(.90);
}

.rating-card-ntmsr .ratings-list-watermark img {
  transform: scale(.92);
}
/* TABLER RATING WATERMARKS V35 END */

/* RATING WATERMARK SIZE AND PARTY ICON V36 START */
/* Desktop: keep every semantic mark comfortably inside the visual area above
   the footer divider. The ~128px cap leaves an intentional air gap to the line
   even after the perspective/rotation transforms are applied. */
@media (min-width: 761px) {
  .ratings-list-watermark {
    top: 5px;
    right: clamp(72px, 9vw, 154px);
    width: clamp(112px, 8.9vw, 128px);
    opacity: .115;
  }

  .rating-card-dnmr .ratings-list-watermark {
    top: 4px;
    transform: perspective(900px) rotateY(-18deg) rotateX(7deg) rotateZ(31deg) scale(1);
  }

  .rating-card-nesr .ratings-list-watermark {
    top: 2px;
    opacity: .11;
    transform: perspective(900px) rotateY(-19deg) rotateX(6deg) rotateZ(29deg) scale(1);
  }

  .rating-card-ntmsr .ratings-list-watermark {
    top: 4px;
    opacity: .105;
    transform: perspective(900px) rotateY(-20deg) rotateX(7deg) rotateZ(34deg) scale(1);
  }

  .rating-card-dnmr .ratings-list-watermark img,
  .rating-card-nesr .ratings-list-watermark img,
  .rating-card-ntmsr .ratings-list-watermark img {
    transform: none;
  }
}

/* Mobile keeps the existing compact placement, just trims the oversized mark. */
@media (max-width: 760px) {
  .ratings-list-watermark {
    width: 132px;
  }
}
/* RATING WATERMARK SIZE AND PARTY ICON V36 END */

/* RATING WATERMARK CENTERING V38 START */
/*
  Make the watermark almost fill the visual zone between the card top edge
  and the internal footer divider, while keeping a very small safety gap.
*/
@media (min-width: 761px) {
  .ratings-list-card {
    --rating-watermark-size: clamp(206px, 14.6vw, 224px);
    --rating-footer-zone: 94px;
  }

  .ratings-list-watermark {
    width: var(--rating-watermark-size);
  }

  .rating-card-dnmr .ratings-list-watermark,
  .rating-card-nesr .ratings-list-watermark,
  .rating-card-ntmsr .ratings-list-watermark {
    top: max(4px, calc((100% - var(--rating-footer-zone) - var(--rating-watermark-size)) / 2));
  }
}
/* RATING WATERMARK CENTERING V38 END */

/* APPLICATION STICKY CRITERIA RAIL V39 START */
.application-map-kicker {
  display: block;
  margin-bottom: 3px;
  color: var(--muted);
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.application-map-progress-value {
  flex: 0 0 auto;
  color: var(--blue);
  font-size: 20px;
  line-height: 1;
  letter-spacing: -.7px;
}

.application-map-progress {
  height: 5px;
  margin: 0 2px 12px;
  overflow: hidden;
  border-radius: 999px;
  background: var(--line);
}

.application-map-progress > i {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: var(--blue);
}

.application-section-copy {
  min-width: 0;
  display: block;
}

.application-section-copy > strong,
.application-section-copy > small {
  display: block;
}

.application-section-copy > strong {
  overflow: hidden;
  text-overflow: ellipsis;
}

.application-section-copy > small {
  color: var(--muted);
}

.application-map-foot {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-top: 11px;
  padding: 10px 4px 2px;
  border-top: 1px solid var(--line);
  color: var(--muted);
}

.application-map-foot small {
  font-size: 9px;
  line-height: 1.45;
}

.application-map-foot-dot {
  width: 8px;
  height: 8px;
  flex: 0 0 8px;
  margin-top: 2px;
  border-radius: 50%;
  background: #b9bdc8;
  box-shadow: 0 0 0 4px rgba(185,189,200,.12);
}

.application-map-foot-dot.is-open {
  background: var(--green);
  box-shadow: 0 0 0 4px rgba(0,145,98,.10);
}

@media (min-width: 961px) {
  .application-header {
    margin-bottom: 12px;
  }

  .application-title-row {
    margin-bottom: 10px;
  }

  .application-header h1 {
    font-size: clamp(34px, 3vw, 44px);
    letter-spacing: -1.6px;
  }

  .application-header .progress-track.large {
    height: 7px;
  }

  .application-freeflow.application-workspace {
    grid-template-columns: 270px minmax(0, 1fr);
    align-items: start;
    gap: 14px;
  }

  .application-criteria-rail {
    position: sticky;
    top: 16px;
    z-index: 4;
    max-height: calc(125vh - 32px);
    padding: 14px;
    overflow-x: hidden;
    overflow-y: auto;
    border-radius: 28px;
    scrollbar-width: thin;
    scrollbar-color: rgba(109,116,137,.34) transparent;
  }

  .application-criteria-rail::-webkit-scrollbar {
    width: 6px;
  }

  .application-criteria-rail::-webkit-scrollbar-track {
    background: transparent;
  }

  .application-criteria-rail::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(109,116,137,.34);
  }

  .application-criteria-rail .application-map-head {
    align-items: center;
    margin: 0 2px 10px;
  }

  .application-criteria-rail .application-map-head h2 {
    margin: 0;
    font-size: 18px;
    line-height: 1.1;
    letter-spacing: -.6px;
  }

  .application-criteria-rail .application-map-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .application-criteria-rail .application-section-card {
    min-height: 48px;
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    align-items: center;
    gap: 9px;
    padding: 8px 9px;
    border-radius: 16px;
    background: #fff;
    box-shadow: none;
    transform: none;
  }

  .application-criteria-rail .application-section-card:hover {
    transform: none;
    border-color: rgba(65,50,245,.30);
    background: #fafaff;
    box-shadow: none;
  }

  .application-criteria-rail .application-section-card.is-gate {
    grid-column: auto;
    background: #fbfaff;
  }

  .application-criteria-rail .application-section-card.is-active {
    border-color: rgba(65,50,245,.48);
    background: #f3f2ff;
    box-shadow: inset 3px 0 0 var(--blue);
  }

  .application-criteria-rail .application-section-card.is-complete:not(.is-active) {
    border-color: rgba(0,145,98,.18);
    background: #fcfffe;
  }

  .application-criteria-rail .application-section-state {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    font-size: 9px;
  }

  .application-criteria-rail .application-section-copy > strong {
    font-size: 11px;
    line-height: 1.2;
    white-space: nowrap;
  }

  .application-criteria-rail .application-section-copy > small {
    display: none;
  }

  .application-criteria-rail .application-section-badge {
    max-width: 68px;
    font-size: 7px;
  }

  .application-criteria-rail .application-section-card.is-complete .application-section-badge {
    display: none;
  }

  .application-form.application-form-free {
    min-height: 0;
    padding: 26px 28px;
  }

  .application-form.application-form-free .section-heading {
    margin-bottom: 18px;
  }

  .application-form.application-form-free .section-heading h2 {
    margin: 2px 0 7px;
    font-size: 30px;
    letter-spacing: -1.1px;
  }

  .application-form.application-form-free .section-heading p:not(.eyebrow) {
    font-size: 12px;
    line-height: 1.5;
  }

  .application-form.application-form-free .section-form {
    margin-bottom: 18px;
  }

  .application-form.application-form-free .upload-block {
    margin-top: 20px;
    padding-top: 18px;
  }

  .application-form.application-form-free .upload-head {
    margin-bottom: 10px;
  }

  .application-form.application-form-free .dropzone {
    min-height: 128px;
    padding: 18px;
    border-radius: 24px;
  }

  .application-form.application-form-free .choice-card,
  .application-form.application-form-free .choice-card > span:last-child {
    min-height: 60px;
  }

  .application-form.application-form-free .company-sync-card {
    padding: 17px;
    border-radius: 26px;
  }

  .application-form.application-form-free .dnmr-group-card {
    padding: 18px;
    border-radius: 26px;
  }
}

@media (max-width: 960px) {
  .application-map-kicker,
  .application-map-progress,
  .application-map-foot {
    display: none;
  }

  .application-section-copy > small {
    margin-top: 4px;
    font-size: 9px;
    line-height: 1.4;
  }
}
/* APPLICATION STICKY CRITERIA RAIL V39 END */

/* APPLICATION CRITERIA WORKSPACE V40 START */
.application-company-gate-wrap {
  display: grid;
  gap: 7px;
}

.application-company-gate-label {
  padding: 0 4px;
  color: var(--muted);
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.application-company-gate {
  min-height: 66px;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 24px;
  align-items: center;
  gap: 10px;
  padding: 10px 11px;
  border: 1px solid rgba(65, 50, 245, .18);
  border-radius: 18px;
  background:
    radial-gradient(circle at 90% 10%, rgba(6,188,229,.10), transparent 38%),
    linear-gradient(135deg, #f6f4ff 0%, #fbfbff 60%, #f1f8ff 100%);
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.application-company-gate:hover,
.application-company-gate.is-active {
  border-color: rgba(65,50,245,.50);
  box-shadow: inset 3px 0 0 var(--blue);
}

.application-company-gate.is-complete {
  border-color: rgba(0,145,98,.20);
}

.application-company-gate.is-active.is-complete {
  border-color: rgba(65,50,245,.46);
}

.application-company-gate-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  color: var(--blue);
  background: rgba(65,50,245,.08);
}

.application-company-gate-icon svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.application-company-gate-copy,
.application-company-gate-copy strong,
.application-company-gate-copy small {
  min-width: 0;
  display: block;
}

.application-company-gate-copy strong {
  font-size: 12px;
  line-height: 1.15;
}

.application-company-gate-copy small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 8.5px;
  line-height: 1.35;
}

.application-company-gate-status {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--blue);
  background: rgba(65,50,245,.08);
  font-size: 11px;
  font-weight: 900;
}

.application-company-gate.is-complete .application-company-gate-status {
  color: var(--green);
  background: rgba(0,145,98,.10);
}

.application-criteria-head {
  margin: 16px 3px 10px;
}

.application-criteria-head h2 {
  margin: 0;
  font-size: 19px;
  line-height: 1.1;
  letter-spacing: -.65px;
}

.application-criteria-head p {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.4;
}

.application-criterion-weight {
  min-width: 42px;
  display: grid;
  justify-items: end;
  align-content: center;
  line-height: 1;
}

.application-criterion-weight b {
  color: var(--blue);
  font-size: 12px;
  letter-spacing: -.2px;
}

.application-criterion-weight small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 7px;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.application-section-card.is-complete .application-criterion-weight b,
.application-section-card.is-complete .application-criterion-weight small {
  color: var(--green);
}

.application-send-area {
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.application-send-link {
  min-height: 64px;
  display: grid;
  grid-template-columns: 34px minmax(0,1fr);
  align-items: center;
  gap: 10px;
  padding: 10px 11px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--soft);
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.application-send-link:hover,
.application-send-link.is-active {
  border-color: rgba(65,50,245,.40);
  background: #f4f2ff;
}

.application-send-link.is-active {
  box-shadow: inset 3px 0 0 var(--blue);
}

.application-send-link.is-ready {
  border-color: rgba(0,145,98,.20);
  background: rgba(0,145,98,.045);
}

.application-send-link.is-locked {
  opacity: .55;
  cursor: not-allowed;
}

.application-send-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: white;
  background: var(--blue);
  font-size: 17px;
  font-weight: 800;
}

.application-send-link.is-ready .application-send-icon {
  background: var(--green);
}

.application-send-copy,
.application-send-copy strong,
.application-send-copy small {
  min-width: 0;
  display: block;
}

.application-send-copy strong {
  font-size: 11px;
}

.application-send-copy small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 8.5px;
  line-height: 1.3;
}

.application-submit-summary {
  display: grid;
  grid-template-columns: 150px minmax(0,1fr);
  gap: 16px;
  align-items: center;
  margin: 2px 0 16px;
  padding: 16px 18px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--soft);
}

.application-submit-summary > div span,
.application-submit-summary > div strong {
  display: block;
}

.application-submit-summary > div span {
  color: var(--muted);
  font-size: 9px;
  font-weight: 700;
}

.application-submit-summary > div strong {
  margin-top: 3px;
  color: var(--blue);
  font-size: 28px;
  line-height: 1;
  letter-spacing: -1px;
}

.application-submit-summary p {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
}

.application-submit-summary.is-ready {
  border-color: rgba(0,145,98,.18);
  background: rgba(0,145,98,.045);
}

.application-submit-summary.is-ready > div strong {
  color: var(--green);
}

.application-submit-confirm {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 12px;
  align-items: center;
  margin-bottom: 14px;
}

@media (min-width: 961px) {
  body.application-page {
    height: 125vh !important;
    min-height: 125vh !important;
    max-height: 125vh !important;
    overflow: hidden !important;
  }

  body.application-page .app-shell {
    height: 125vh !important;
    min-height: 125vh !important;
    max-height: 125vh !important;
    overflow: hidden !important;
  }

  body.application-page .main-content {
    height: 125vh !important;
    min-height: 0 !important;
    display: flex;
    flex-direction: column;
    overflow: hidden !important;
    padding-top: 24px;
    padding-bottom: 24px;
  }

  body.application-page .application-header {
    flex: 0 0 auto;
    margin-bottom: 12px;
  }

  body.application-page .application-header .breadcrumb {
    margin-bottom: 5px;
  }

  body.application-page .application-title-row {
    margin-bottom: 8px;
  }

  body.application-page .application-header h1 {
    margin: 2px 0 4px;
    font-size: 34px;
    letter-spacing: -1.35px;
  }

  body.application-page .application-state strong {
    font-size: 24px;
  }

  body.application-page .application-header .progress-track.large {
    height: 6px;
  }

  body.application-page .application-workspace {
    flex: 1 1 auto;
    min-height: 0;
    height: auto;
    grid-template-columns: 292px minmax(0,1fr);
    align-items: stretch;
    gap: 14px;
  }

  body.application-page .application-criteria-rail,
  body.application-page .application-form.application-form-free {
    height: 100%;
    min-height: 0;
  }

  body.application-page .application-criteria-rail {
    position: relative;
    top: auto;
    display: flex;
    flex-direction: column;
    padding: 14px;
    overflow: hidden;
    border-radius: 26px;
  }

  body.application-page .application-criteria-rail .application-map-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 7px;
  }

  body.application-page .application-criteria-rail .application-section-card {
    min-height: 55px;
    display: grid;
    grid-template-columns: 22px minmax(0,1fr) 44px;
    align-items: center;
    gap: 9px;
    padding: 8px 9px;
    border-radius: 16px;
    background: #fff;
    box-shadow: none;
    transform: none;
  }

  body.application-page .application-criteria-rail .application-section-card:hover {
    transform: none;
    border-color: rgba(65,50,245,.30);
    background: #fafaff;
    box-shadow: none;
  }

  body.application-page .application-criteria-rail .application-section-card.is-active {
    border-color: rgba(65,50,245,.48);
    background: #f3f2ff;
    box-shadow: inset 3px 0 0 var(--blue);
  }

  body.application-page .application-criteria-rail .application-section-card.is-complete:not(.is-active) {
    border-color: rgba(0,145,98,.17);
    background: #fcfffe;
  }

  body.application-page .application-criteria-rail .application-section-card.is-locked {
    background: #f7f8fb;
  }

  /* No numbering: hollow circle for an inactive criterion, filled for the selected one. */
  body.application-page .application-criteria-rail .application-section-state {
    width: 16px;
    height: 16px;
    border: 2px solid #c6cad4;
    border-radius: 50%;
    background: transparent;
    color: transparent;
    box-shadow: none;
  }

  body.application-page .application-criteria-rail .application-section-card.is-active .application-section-state {
    border-color: var(--blue);
    background: var(--blue);
    box-shadow: inset 0 0 0 3px #f3f2ff;
  }

  body.application-page .application-criteria-rail .application-section-card.is-complete:not(.is-active) .application-section-state {
    border-color: rgba(0,145,98,.58);
    background: transparent;
  }

  body.application-page .application-criteria-rail .application-section-card.is-locked .application-section-state {
    border-color: #d9dce4;
    background: transparent;
  }

  body.application-page .application-criteria-rail .application-section-copy > strong {
    font-size: 11px;
    line-height: 1.15;
    white-space: normal;
  }

  body.application-page .application-criteria-rail .application-section-copy > small {
    display: block;
    margin-top: 3px;
    color: var(--muted);
    font-size: 7.5px;
    line-height: 1.25;
  }

  body.application-page .application-form.application-form-free {
    padding: 20px 22px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scrollbar-color: rgba(109,116,137,.34) transparent;
    border-radius: 26px;
  }

  body.application-page .application-form.application-form-free::-webkit-scrollbar {
    width: 7px;
  }

  body.application-page .application-form.application-form-free::-webkit-scrollbar-track {
    background: transparent;
  }

  body.application-page .application-form.application-form-free::-webkit-scrollbar-thumb {
    border: 2px solid transparent;
    border-radius: 999px;
    background: rgba(109,116,137,.34);
    background-clip: padding-box;
  }

  body.application-page .application-form.application-form-free .section-heading {
    max-width: 880px;
    margin-bottom: 13px;
  }

  body.application-page .application-form.application-form-free .section-heading .eyebrow {
    margin-bottom: 5px;
    font-size: 9px;
  }

  body.application-page .application-form.application-form-free .section-heading h2 {
    margin: 0 0 5px;
    font-size: 27px;
    letter-spacing: -1px;
  }

  body.application-page .application-form.application-form-free .section-heading p:not(.eyebrow) {
    font-size: 10.5px;
    line-height: 1.42;
  }

  body.application-page .application-form.application-form-free .section-form {
    margin-bottom: 12px;
  }

  body.application-page .application-form.application-form-free .field {
    gap: 5px;
  }

  body.application-page .application-form.application-form-free .field > span {
    font-size: 9px;
  }

  body.application-page .application-form.application-form-free .field input,
  body.application-page .application-form.application-form-free .field select {
    height: 44px;
    border-radius: 15px;
    padding: 0 12px;
  }

  body.application-page .application-form.application-form-free .form-grid {
    gap: 9px;
  }

  body.application-page .application-form.application-form-free .form-actions {
    margin-top: 10px;
  }

  body.application-page .application-form.application-form-free .button {
    min-height: 39px;
    padding: 0 16px;
    font-size: 10px;
  }

  body.application-page .application-form.application-form-free .button.xl {
    min-height: 46px;
  }

  body.application-page .application-form.application-form-free .upload-block {
    margin-top: 13px;
    padding-top: 12px;
  }

  body.application-page .application-form.application-form-free .upload-head {
    margin-bottom: 7px;
  }

  body.application-page .application-form.application-form-free .upload-head h3 {
    font-size: 14px;
  }

  body.application-page .application-form.application-form-free .file-hint {
    font-size: 8px;
  }

  body.application-page .application-form.application-form-free .dropzone {
    min-height: 92px;
    padding: 11px;
    border-radius: 19px;
  }

  body.application-page .application-form.application-form-free .dropzone .drop-icon {
    width: 30px;
    height: 30px;
    font-size: 17px;
  }

  body.application-page .application-form.application-form-free .dropzone strong {
    font-size: 10px;
  }

  body.application-page .application-form.application-form-free .dropzone span,
  body.application-page .application-form.application-form-free .dropzone small {
    margin-top: 2px;
    font-size: 8px;
  }

  body.application-page .application-form.application-form-free .document-list {
    margin-top: 7px;
  }

  body.application-page .application-form.application-form-free .document-row {
    min-height: 43px;
    padding: 6px 9px;
    border-radius: 14px;
  }

  body.application-page .application-form.application-form-free .empty-docs {
    padding: 10px 12px;
    font-size: 9px;
  }

  body.application-page .application-form.application-form-free .choice-grid {
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 6px;
  }

  body.application-page .application-form.application-form-free .choice-card,
  body.application-page .application-form.application-form-free .choice-card > span:last-child {
    min-height: 45px;
  }

  body.application-page .application-form.application-form-free .choice-card > span:last-child {
    padding: 8px 34px 8px 11px;
    border-radius: 14px;
    font-size: 9px;
    line-height: 1.2;
  }

  body.application-page .application-form.application-form-free .choice-card b {
    min-width: 18px;
    font-size: 8px;
  }

  body.application-page .application-form.application-form-free .doc-requirements {
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 6px;
  }

  body.application-page .application-form.application-form-free .doc-requirements > div {
    padding: 10px;
    border-radius: 15px;
    gap: 8px;
  }

  body.application-page .application-form.application-form-free .doc-requirements b {
    font-size: 18px;
  }

  body.application-page .application-form.application-form-free .doc-requirements span {
    font-size: 8px;
    line-height: 1.35;
  }

  body.application-page .application-form.application-form-free .info-card {
    margin: 10px 0;
    padding: 12px 14px;
    border-radius: 16px;
  }

  body.application-page .application-form.application-form-free .info-card p {
    margin-top: 3px;
    font-size: 9px;
    line-height: 1.4;
  }

  body.application-page .application-form.application-form-free .company-sync-card {
    padding: 13px;
    border-radius: 20px;
  }

  body.application-page .application-form.application-form-free .dnmr-group-card {
    margin-top: 10px;
    padding: 13px;
    border-radius: 20px;
  }

  body.application-page .application-form.application-form-free .company-confirm-row {
    margin-top: 10px;
    padding-top: 10px;
  }

  body.application-page .application-submit-heading {
    margin-bottom: 12px;
  }
}

@media (max-width: 960px) {
  .application-company-gate-wrap {
    margin-bottom: 14px;
  }

  .application-criteria-head {
    margin-top: 10px;
  }

  .application-criterion-weight {
    justify-items: start;
  }

  .application-submit-confirm {
    grid-template-columns: 1fr;
  }
}
/* APPLICATION CRITERIA WORKSPACE V40 END */

/* APPLICATION COMFORT SCALE + SAFARI VIEWPORT V41 START */
/*
  V41 keeps the fixed two-column application workspace, but uses the real
  visible browser viewport instead of relying only on 125vh under body zoom.
  The right-hand criterion content is deliberately larger on desktop; if a
  criterion becomes taller than the available panel, only that panel scrolls.
*/
@media (min-width: 961px) {
  body.application-page,
  body.application-page .app-shell,
  body.application-page .main-content {
    height: var(--application-layout-height, 125vh) !important;
    min-height: 0 !important;
    max-height: var(--application-layout-height, 125vh) !important;
  }

  body.application-page {
    overflow: hidden !important;
  }

  body.application-page .main-content {
    padding-top: 24px;
    padding-bottom: 24px;
  }

  body.application-page .application-workspace {
    min-height: 0;
    height: auto;
    align-items: stretch;
  }

  body.application-page .application-criteria-rail,
  body.application-page .application-form.application-form-free {
    min-height: 0;
    height: 100%;
    max-height: 100%;
  }

  /* Give the navigation itself more presence instead of leaving a tiny stack
     at the top of a tall rail. */
  body.application-page .application-criteria-rail {
    padding: 18px;
  }

  body.application-page .application-company-gate {
    min-height: 72px;
    grid-template-columns: 38px minmax(0, 1fr) 26px;
    gap: 11px;
    padding: 11px 12px;
  }

  body.application-page .application-company-gate-icon {
    width: 38px;
    height: 38px;
  }

  body.application-page .application-company-gate-copy strong {
    font-size: 12.5px;
  }

  body.application-page .application-company-gate-copy small {
    font-size: 9px;
  }

  body.application-page .application-criteria-head {
    margin: 18px 4px 12px;
  }

  body.application-page .application-criteria-head h2 {
    font-size: 21px;
  }

  body.application-page .application-criteria-head p {
    margin-top: 6px;
    font-size: 9.5px;
  }

  body.application-page .application-criteria-rail .application-map-grid {
    gap: 9px;
  }

  body.application-page .application-criteria-rail .application-section-card {
    min-height: 64px;
    grid-template-columns: 24px minmax(0, 1fr) 48px;
    gap: 10px;
    padding: 10px 11px;
    border-radius: 17px;
  }

  body.application-page .application-criteria-rail .application-section-state {
    width: 17px;
    height: 17px;
  }

  body.application-page .application-criteria-rail .application-section-copy > strong {
    font-size: 12px;
  }

  body.application-page .application-criteria-rail .application-section-copy > small {
    margin-top: 4px;
    font-size: 8px;
  }

  body.application-page .application-criterion-weight b {
    font-size: 13px;
  }

  body.application-page .application-criterion-weight small {
    font-size: 7.5px;
  }

  body.application-page .application-send-area {
    padding-top: 14px;
  }

  body.application-page .application-send-link {
    min-height: 70px;
    grid-template-columns: 38px minmax(0, 1fr);
    padding: 11px 12px;
  }

  body.application-page .application-send-icon {
    width: 38px;
    height: 38px;
  }

  body.application-page .application-send-copy strong {
    font-size: 11.5px;
  }

  body.application-page .application-send-copy small {
    font-size: 9px;
  }

  /* Main criterion canvas: larger typography, controls and upload area. */
  body.application-page .application-form.application-form-free {
    padding: 28px 30px;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-gutter: auto;
  }

  body.application-page .application-form.application-form-free .section-heading {
    max-width: 980px;
    margin-bottom: 19px;
  }

  body.application-page .application-form.application-form-free .section-heading .eyebrow {
    margin-bottom: 7px;
    font-size: 10px;
  }

  body.application-page .application-form.application-form-free .section-heading h2 {
    margin-bottom: 7px;
    font-size: 31px;
    letter-spacing: -1.15px;
  }

  body.application-page .application-form.application-form-free .section-heading p:not(.eyebrow) {
    font-size: 12px;
    line-height: 1.5;
  }

  body.application-page .application-form.application-form-free .section-form {
    margin-bottom: 17px;
  }

  body.application-page .application-form.application-form-free .form-grid {
    gap: 12px;
  }

  body.application-page .application-form.application-form-free .field {
    gap: 7px;
  }

  body.application-page .application-form.application-form-free .field > span {
    font-size: 10px;
  }

  body.application-page .application-form.application-form-free .field input,
  body.application-page .application-form.application-form-free .field select {
    height: 52px;
    padding: 0 15px;
    border-radius: 16px;
    font-size: 13px;
  }

  body.application-page .application-form.application-form-free .form-actions {
    margin-top: 13px;
  }

  body.application-page .application-form.application-form-free .button {
    min-height: 44px;
    padding: 0 18px;
    font-size: 11px;
  }

  body.application-page .application-form.application-form-free .button.xl {
    min-height: 50px;
  }

  body.application-page .application-form.application-form-free .upload-block {
    margin-top: 18px;
    padding-top: 17px;
  }

  body.application-page .application-form.application-form-free .upload-head {
    margin-bottom: 10px;
  }

  body.application-page .application-form.application-form-free .upload-head h3 {
    font-size: 17px;
  }

  body.application-page .application-form.application-form-free .file-hint {
    font-size: 8.5px;
  }

  body.application-page .application-form.application-form-free .dropzone {
    min-height: 148px;
    padding: 16px;
    border-radius: 21px;
  }

  body.application-page .application-form.application-form-free .dropzone .drop-icon {
    width: 38px;
    height: 38px;
    font-size: 21px;
  }

  body.application-page .application-form.application-form-free .dropzone strong {
    font-size: 11.5px;
  }

  body.application-page .application-form.application-form-free .dropzone span,
  body.application-page .application-form.application-form-free .dropzone small {
    margin-top: 3px;
    font-size: 8.5px;
  }

  body.application-page .application-form.application-form-free .document-list {
    margin-top: 9px;
  }

  body.application-page .application-form.application-form-free .document-row {
    min-height: 48px;
    padding: 8px 11px;
  }

  body.application-page .application-form.application-form-free .empty-docs {
    padding: 12px 14px;
    font-size: 9.5px;
  }

  body.application-page .application-form.application-form-free .choice-grid {
    gap: 8px;
  }

  body.application-page .application-form.application-form-free .choice-card,
  body.application-page .application-form.application-form-free .choice-card > span:last-child {
    min-height: 54px;
  }

  body.application-page .application-form.application-form-free .choice-card > span:last-child {
    padding: 10px 38px 10px 13px;
    border-radius: 15px;
    font-size: 10px;
    line-height: 1.28;
  }

  body.application-page .application-form.application-form-free .choice-card b {
    min-width: 21px;
    font-size: 8.5px;
  }

  body.application-page .application-form.application-form-free .doc-requirements {
    gap: 8px;
  }

  body.application-page .application-form.application-form-free .doc-requirements > div {
    min-height: 72px;
    padding: 12px;
    border-radius: 16px;
    gap: 9px;
  }

  body.application-page .application-form.application-form-free .doc-requirements b {
    font-size: 20px;
  }

  body.application-page .application-form.application-form-free .doc-requirements span {
    font-size: 9px;
    line-height: 1.4;
  }

  body.application-page .application-form.application-form-free .info-card {
    margin: 14px 0;
    padding: 15px 17px;
    border-radius: 18px;
  }

  body.application-page .application-form.application-form-free .info-card strong {
    font-size: 15px;
  }

  body.application-page .application-form.application-form-free .info-card p {
    margin-top: 5px;
    font-size: 10px;
    line-height: 1.45;
  }

  /* Company is the one intentionally dense section. Unlike the criteria above,
     it should fit at the normal desktop viewport with the demo profile. Lists
     grow naturally up to four rows and only then become independently scrollable. */
  body.application-page .application-section-company {
    padding: 20px 22px;
  }

  body.application-page .application-section-company .section-heading {
    margin-bottom: 11px;
  }

  body.application-page .application-section-company .section-heading h2 {
    font-size: 27px;
    margin-bottom: 4px;
  }

  body.application-page .application-section-company .section-heading p:not(.eyebrow) {
    font-size: 10px;
    line-height: 1.38;
  }

  body.application-page .application-section-company .company-sync-card {
    margin-bottom: 9px;
    padding: 12px;
    border-radius: 21px;
  }

  body.application-page .application-section-company .company-sync-head {
    gap: 12px;
    margin-bottom: 9px;
  }

  body.application-page .application-section-company .company-sync-title {
    gap: 9px;
  }

  body.application-page .application-section-company .company-sync-icon {
    width: 34px;
    height: 34px;
    flex-basis: 34px;
  }

  body.application-page .application-section-company .company-sync-title strong {
    font-size: 12.5px;
  }

  body.application-page .application-section-company .company-sync-title small {
    margin-top: 2px;
    font-size: 8.5px;
    line-height: 1.3;
  }

  body.application-page .application-section-company .company-participation-grid {
    gap: 9px;
  }

  body.application-page .application-section-company .company-choice-group {
    padding: 10px;
    border-radius: 18px;
  }

  body.application-page .application-section-company .company-choice-group-head {
    padding: 0 1px 7px;
  }

  body.application-page .application-section-company .company-choice-group-head span {
    font-size: 8px;
  }

  body.application-page .application-section-company .company-choice-group-head strong {
    margin-top: 2px;
    font-size: 11.5px;
  }

  body.application-page .application-section-company .company-choice-group-head > small {
    min-width: 24px;
    height: 24px;
    font-size: 9px;
  }

  body.application-page .application-section-company .company-profile-choice-list {
    height: auto;
    min-height: 0;
    max-height: 234px;
    gap: 6px;
    padding-right: 3px;
    overflow-y: auto;
  }

  body.application-page .application-section-company .company-profile-choice-box {
    height: 54px;
    min-height: 54px;
    grid-template-columns: 20px 30px minmax(0,1fr) auto;
    gap: 8px;
    padding: 7px 9px;
    border-radius: 15px;
  }

  body.application-page .application-section-company .company-profile-choice-check {
    width: 18px;
    height: 18px;
    border-radius: 6px;
  }

  body.application-page .application-section-company .company-profile-choice-mark {
    width: 30px;
    height: 30px;
    border-radius: 10px;
    font-size: 8.5px;
  }

  body.application-page .application-section-company .company-profile-choice-copy strong {
    font-size: 10.5px;
  }

  body.application-page .application-section-company .company-profile-choice-copy small {
    margin-top: 2px;
    font-size: 8px;
  }

  body.application-page .application-section-company .company-profile-choice-primary {
    padding: 4px 6px;
    font-size: 7px;
  }

  body.application-page .application-section-company .dnmr-group-card {
    margin-top: 8px;
    padding: 12px;
    border-radius: 20px;
  }

  body.application-page .application-section-company .dnmr-group-head h3 {
    margin-top: 0;
    font-size: 20px;
  }

  body.application-page .application-section-company .dnmr-group-copy {
    margin: 5px 0 9px;
    font-size: 9.5px;
    line-height: 1.35;
  }

  body.application-page .application-section-company .dnmr-group-choice {
    gap: 9px;
  }

  body.application-page .application-section-company .dnmr-group-option-body {
    min-height: 58px;
    padding: 9px 12px 9px 42px;
    border-radius: 17px;
  }

  body.application-page .application-section-company .dnmr-group-option-body::before {
    left: 14px;
    width: 18px;
    height: 18px;
  }

  body.application-page .application-section-company .dnmr-group-option-body b {
    font-size: 12px;
  }

  body.application-page .application-section-company .dnmr-group-option-body small {
    margin-top: 2px;
    font-size: 8.5px;
  }

  body.application-page .application-section-company .dnmr-group-details {
    margin-top: 9px;
    padding-top: 9px;
  }

  body.application-page .application-section-company .company-confirm-row {
    margin-top: 8px;
    padding: 10px 12px;
    border-radius: 18px;
  }

  body.application-page .application-section-company .company-confirm-row strong {
    font-size: 11.5px;
  }

  body.application-page .application-section-company .company-confirm-row small {
    margin-top: 2px;
    font-size: 8.5px;
    line-height: 1.3;
  }

  body.application-page .application-section-company .company-confirm-row .button {
    min-height: 40px;
  }

  /* Safari fallback: the exact JS-computed viewport height above prevents the
     panel from extending behind the browser chrome. Keep the panel itself as
     the emergency scroll container so no field can become unreachable. */
  html.acrir-browser-safari body.application-page .application-form.application-form-free {
    overflow-y: auto !important;
    overscroll-behavior-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }
}
/* APPLICATION COMFORT SCALE + SAFARI VIEWPORT V41 END */

/* APPLICATION SERVICES COMPACT + CRITERIA SPLIT V42 START */
@media (min-width: 961px) {
  /* Services is the densest criterion. Keep the same visual scale as V41 but
     shave only the vertical rhythm so the complete section fits at 100% zoom. */
  body.application-page .application-section-services {
    padding-top: 24px;
    padding-bottom: 22px;
  }

  body.application-page .application-section-services .section-heading {
    margin-bottom: 14px;
  }

  body.application-page .application-section-services .section-heading h2 {
    font-size: 29px;
    margin-bottom: 5px;
  }

  body.application-page .application-section-services .section-heading p:not(.eyebrow) {
    font-size: 11.5px;
    line-height: 1.42;
  }

  body.application-page .application-section-services .section-form {
    margin-bottom: 11px;
  }

  body.application-page .application-section-services .choice-grid {
    gap: 6px;
  }

  body.application-page .application-section-services .choice-card,
  body.application-page .application-section-services .choice-card > span:last-child {
    min-height: 46px;
  }

  body.application-page .application-section-services .choice-card > span:last-child {
    padding: 7px 36px 7px 12px;
    border-radius: 14px;
    font-size: 9.5px;
    line-height: 1.22;
  }

  body.application-page .application-section-services .choice-card b {
    font-size: 8px;
    min-width: 20px;
  }

  body.application-page .application-section-services .form-actions {
    margin-top: 9px;
  }

  body.application-page .application-section-services .button {
    min-height: 40px;
  }

  body.application-page .application-section-services .upload-block {
    margin-top: 12px;
    padding-top: 13px;
  }

  body.application-page .application-section-services .upload-head {
    margin-bottom: 8px;
  }

  body.application-page .application-section-services .dropzone {
    min-height: 116px;
    padding: 12px;
    border-radius: 19px;
  }

  body.application-page .application-section-services .dropzone .drop-icon {
    width: 34px;
    height: 34px;
    font-size: 19px;
  }

  body.application-page .application-section-services .document-list {
    margin-top: 7px;
  }

  body.application-page .application-section-services .empty-docs {
    padding: 9px 12px;
  }

  /* The new standalone recommendations criterion should read as a full section,
     not as a leftover note from the former Expertise block. */
  body.application-page .application-section-recommendations .application-recommendations-note {
    margin: 0 0 18px;
    max-width: 820px;
  }
}
/* APPLICATION SERVICES COMPACT + CRITERIA SPLIT V42 END */

/* APPLICATION CRITERIA STATES + SERVICES FIT V43 START */
@media (min-width: 961px) {
  /* Keep the company gate and submit action fixed; only the criteria list
     becomes scrollable when the viewport is too short for every criterion. */
  body.application-page .application-criteria-rail {
    overflow: hidden !important;
  }

  body.application-page .application-company-gate-wrap,
  body.application-page .application-criteria-head,
  body.application-page .application-send-area {
    flex: 0 0 auto;
  }

  body.application-page .application-criteria-rail .application-map-grid {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    align-content: start;
    padding-right: 5px;
    margin-right: -5px;
    scrollbar-width: thin;
    scrollbar-color: rgba(109,116,137,.28) transparent;
    overscroll-behavior-y: contain;
  }

  body.application-page .application-criteria-rail .application-map-grid::-webkit-scrollbar {
    width: 6px;
  }

  body.application-page .application-criteria-rail .application-map-grid::-webkit-scrollbar-track {
    background: transparent;
  }

  body.application-page .application-criteria-rail .application-map-grid::-webkit-scrollbar-thumb {
    border: 2px solid transparent;
    border-radius: 999px;
    background: rgba(109,116,137,.30);
    background-clip: padding-box;
  }

  /* No secondary status text in the rail. The criterion name is the only
     label; completion is communicated by the state icon. */
  body.application-page .application-criteria-rail .application-section-copy {
    align-self: center;
  }

  body.application-page .application-criteria-rail .application-section-copy > strong {
    display: block;
  }

  /* Completed criterion = the same clear green check language as Company.
     This takes precedence even when the completed criterion is active. */
  body.application-page .application-criteria-rail .application-section-card.is-complete .application-section-state {
    display: grid;
    place-items: center;
    border-color: rgba(24,169,118,.26) !important;
    background: #d7f5e9 !important;
    color: #139a6b !important;
    box-shadow: none !important;
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
  }

  /* The criterion weight is a constant reference value, not a status color. */
  body.application-page .application-criteria-rail .application-section-card.is-complete .application-criterion-weight b {
    color: var(--blue) !important;
  }

  body.application-page .application-criteria-rail .application-section-card.is-complete .application-criterion-weight small {
    color: var(--muted) !important;
  }

  /* Services: only reduce vertical rhythm. Typography remains intentionally
     readable, but the whole criterion should fit at a normal 100% viewport. */
  body.application-page .application-section-services {
    padding-top: 20px;
    padding-bottom: 18px;
  }

  body.application-page .application-section-services .section-heading {
    margin-bottom: 10px;
  }

  body.application-page .application-section-services .section-heading .eyebrow {
    margin-bottom: 5px;
  }

  body.application-page .application-section-services .section-heading h2 {
    margin-bottom: 4px;
  }

  body.application-page .application-section-services .section-heading p:not(.eyebrow) {
    line-height: 1.34;
  }

  body.application-page .application-section-services .section-form {
    margin-bottom: 8px;
  }

  body.application-page .application-section-services .choice-grid {
    gap: 4px 6px;
  }

  body.application-page .application-section-services .choice-card,
  body.application-page .application-section-services .choice-card > span:last-child {
    min-height: 41px;
  }

  body.application-page .application-section-services .choice-card > span:last-child {
    padding-top: 5px;
    padding-bottom: 5px;
    line-height: 1.18;
  }

  body.application-page .application-section-services .form-actions {
    margin-top: 6px;
  }

  body.application-page .application-section-services .button {
    min-height: 36px;
  }

  body.application-page .application-section-services .upload-block {
    margin-top: 8px;
    padding-top: 10px;
  }

  body.application-page .application-section-services .upload-head {
    margin-bottom: 6px;
  }

  body.application-page .application-section-services .dropzone {
    min-height: 102px;
    padding: 10px 12px;
  }

  body.application-page .application-section-services .dropzone .drop-icon {
    width: 32px;
    height: 32px;
  }

  body.application-page .application-section-services .document-list {
    margin-top: 5px;
  }

  body.application-page .application-section-services .empty-docs {
    padding: 7px 11px;
  }
}
/* APPLICATION CRITERIA STATES + SERVICES FIT V43 END */


/* APPLICATION CRITERION CONFIRM / EDIT STATES V44 START */
@media (min-width: 961px) {
  /* Completed criteria use the same visual family as the confirmed Company gate. */
  body.application-page .application-criteria-rail .application-section-card.is-complete {
    border-color: rgba(0,145,98,.20) !important;
    background:
      radial-gradient(circle at 90% 10%, rgba(6,188,229,.10), transparent 38%),
      linear-gradient(135deg, #f6f4ff 0%, #fbfbff 60%, #f1f8ff 100%) !important;
  }

  body.application-page .application-criteria-rail .application-section-card.is-active.is-complete {
    border-color: rgba(65,50,245,.46) !important;
    box-shadow: inset 3px 0 0 var(--blue) !important;
  }

  /* Criterion action lives in the upper-right corner, matching Company layout. */
  body.application-page .criterion-section-heading {
    max-width: none !important;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 22px;
  }

  body.application-page .criterion-section-heading-copy {
    min-width: 0;
    max-width: 980px;
  }

  body.application-page .criterion-save-trigger,
  body.application-page .criterion-edit-trigger {
    flex: 0 0 auto;
    margin-top: 1px;
  }

  body.application-page .criterion-save-trigger {
    min-width: 112px;
    min-height: 38px;
    padding-inline: 18px;
    box-shadow: 0 9px 20px rgba(65,50,245,.16);
  }

  body.application-page .criterion-header-save-form {
    display: none;
  }

  /* A confirmed criterion is a review state: data stays visible, editing controls
     and document mutation return only after pressing “Редактировать”. */
  body.application-page .application-form.is-criterion-locked .field input[readonly],
  body.application-page .application-form.is-criterion-locked .field select:disabled {
    background: #fff;
    border-color: #eceef4;
    color: var(--ink);
    opacity: 1;
    cursor: default;
    box-shadow: none;
    -webkit-text-fill-color: var(--ink);
  }

  body.application-page .application-form.is-criterion-locked .choice-card {
    cursor: default;
  }

  body.application-page .application-form.is-criterion-locked .choice-card input:disabled + .choice-check + span,
  body.application-page .application-form.is-criterion-locked .choice-card input:disabled ~ span {
    opacity: 1;
  }
}

@media (max-width: 960px) {
  body.application-page .criterion-section-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: start;
  }

  body.application-page .criterion-save-trigger,
  body.application-page .criterion-edit-trigger {
    align-self: start;
  }
}
/* APPLICATION CRITERION CONFIRM / EDIT STATES V44 END */

