:root {
	--bg: #edf7ff;
	--card: #fff;
	--line: #d7e9f7;
	--text: #10233d;
	--muted: #657b91;
	--blue: #33aeea;
	--blue-dark: #237fd4;
	--blue-soft: #e3f5ff;
	--danger: #c93333;
	--success: #168047;
	--shadow: 0 18px 45px rgba(22, 54, 88, .10);
	font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: var(--font, inherit); }
body.modal-open { overflow: hidden; }
a { color: var(--blue-dark); text-decoration: none; }
button, input, textarea, select { font: inherit; }
h1, h2, h3, p { letter-spacing: 0; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 280px 1fr; gap: 24px; padding: 24px; }
.sidebar, .panel, .page-head, .metrics article, .auth-card, .hero-card, .sign-doc, .sign-card, .sign-top { background: var(--card); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow); }
.sidebar { position: sticky; top: 24px; min-height: calc(100vh - 48px); height: auto; padding: 18px; display: flex; flex-direction: column; gap: 18px; align-self: start; }
.brand { display: flex; align-items: center; gap: 12px; color: var(--text); padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.brand img { width: 74px; height: 52px; object-fit: contain; filter: drop-shadow(0 7px 14px rgba(35, 127, 212, .18)); }
.brand strong, .brand small { display: block; }
.brand small, .muted, .page-head p, .panel-head p, .metrics span { color: var(--muted); }
.brand-tariff b { color: var(--text); font-weight: 800; }
.quota-mini { display: grid; gap: 6px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 14px; background: #f7fbff; }
.quota-mini span { color: var(--muted); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.quota-mini strong { color: var(--text); font-size: 16px; }
.quota-mini i, .quota-progress { display: block; height: 8px; overflow: hidden; border-radius: 999px; background: #dcebf7; }
.quota-mini b, .quota-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(135deg, var(--blue), var(--blue-dark)); }
.quota-strip { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 20px; border: 1px solid var(--line); border-radius: 18px; background: linear-gradient(135deg, #ffffff, #f0f9ff); box-shadow: var(--shadow); }
.quota-strip div:first-child { display: grid; gap: 4px; }
.quota-strip span { color: var(--muted); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.quota-strip strong { font-size: 22px; color: var(--text); }
.quota-strip small { color: var(--muted); }
.quota-progress { width: min(280px, 35vw); }
.quota-unlimited { padding: 8px 12px; border-radius: 999px; background: #e9f8ee; color: var(--success)!important; }
.nav { display: grid; gap: 6px; }
.nav a { color: #263b55; padding: 12px 14px; border-radius: 12px; font-weight: 600; display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.nav a.active, .nav a:hover { background: var(--blue-soft); color: var(--blue-dark); }
.nav a.product-link { border: 1px solid #c7e5f7; background: linear-gradient(135deg, #f6fcff, #edf7ff); color: #0b67a3; }
.nav a.product-link:hover,
.nav a.product-link.active { border-color: #8fcff1; background: linear-gradient(135deg, #e7f7ff, #dcf1ff); color: #07588f; }
.product-menu-main { display: inline-flex; align-items: center; gap: 10px; min-width: 0; }
.product-menu-icon { width: 22px; height: 22px; flex: 0 0 22px; object-fit: contain; }
.product-badge { min-width: 24px; height: 24px; border-radius: 999px; display: inline-flex; justify-content: center; align-items: center; font-size: 11px; font-weight: 800; line-height: 1; }
.ai-suite-badge { color: #ffffff; background: linear-gradient(135deg, #4d78ff, #33aeea); box-shadow: 0 8px 16px rgba(44, 134, 224, .25); }
.scoring-badge { color: #0a5f42; background: linear-gradient(135deg, #b6efd4, #73d7ad); box-shadow: 0 8px 16px rgba(42, 145, 103, .18); }
.nav-count { min-width: 24px; padding: 2px 7px; border-radius: 999px; text-align: center; color: white; background: var(--blue-dark); font-size: 12px; }
.menu-badges { display: inline-flex; gap: 5px; align-items: center; }
.nav-count.muted-count { background: #7d8fa3; }
.nav-count.warn-count { background: #f59e0b; }
.nav-section { margin: 10px 8px 2px; color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.nav-admin-panel { margin-top: 8px; padding: 12px; border: 1px solid #c6def2; border-radius: 14px; background: linear-gradient(180deg, #f4fbff 0%, #ecf6ff 100%); box-shadow: inset 0 1px 0 rgba(255,255,255,.75); }
.nav-admin-title { margin: 2px 8px 8px; color: #44617f; font-size: 12px; font-weight: 900; letter-spacing: .02em; text-transform: uppercase; }
.nav-admin-panel .nav-section { margin-top: 8px; }
.sidebar-footer { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--line); display: grid; gap: 4px; color: var(--text); font-weight: 700; }
.sidebar-footer small { color: var(--muted); font-weight: 600; }
.logout { padding: 12px; text-align: center; border: 1px solid #b7c9dd; border-radius: 12px; color: var(--text); font-weight: 700; }
.main { display: grid; gap: 18px; align-content: start; }
.page-head { padding: 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.page-head p, .panel-head p { margin: 0 0 5px; text-transform: uppercase; font-size: 13px; font-weight: 700; }
.page-head h1, .panel-head h2 { margin: 0; }
.btn { display: inline-flex; justify-content: center; align-items: center; min-height: 42px; padding: 10px 16px; border-radius: 12px; border: 1px solid transparent; cursor: pointer; font-weight: 700; }
.btn.primary { color: white; background: linear-gradient(135deg, var(--blue), var(--blue-dark)); box-shadow: 0 12px 22px rgba(35,127,212,.20); }
.btn.ghost, .btn.small { background: white; color: var(--text); border-color: #b7c9dd; }
.btn:disabled { cursor: not-allowed; opacity: .62; box-shadow: none; }
.btn.small { min-height: 34px; padding: 7px 11px; font-size: 13px; }
.btn.small.primary { color: white; background: linear-gradient(135deg, var(--blue), var(--blue-dark)); border-color: transparent; }
.btn.full { width: 100%; }
.btn.danger { color: #a82424; background: #fff4f4; border-color: #f0caca; }
.alert { padding: 14px 16px; border-radius: 14px; border: 1px solid #b7c9dd; background: white; }
.alert.success { color: var(--success); background: #edfbf3; border-color: #bce8cc; }
.alert.danger { color: var(--danger); background: #fff1f1; border-color: #f2c2c2; }
.alert.warning { color: #975b00; background: #fff7e7; border-color: #f0d49b; }
.metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.metrics article { padding: 18px; display: grid; gap: 7px; }
.metrics strong { font-size: 28px; }
.panel { padding: 22px; }
.panel-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 18px; }
.filters { display: grid; grid-template-columns: minmax(260px, 1.4fr) minmax(160px, .7fr) minmax(170px, .8fr) minmax(150px, .7fr) minmax(150px, .7fr) auto; gap: 12px; margin-bottom: 18px; align-items: end; }
.head-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.filter-actions { display: flex; gap: 10px; align-items: end; }
input, textarea, select { width: 100%; border: 1px solid #bdd0e3; border-radius: 12px; padding: 12px 14px; color: var(--text); background: white; font-weight: 400; }
input::placeholder, textarea::placeholder { color: #7a8796; font-weight: 400; }
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder { color: #7a8796; font-weight: 400; }
input::-moz-placeholder, textarea::-moz-placeholder { color: #7a8796; font-weight: 400; opacity: 1; }
input:-ms-input-placeholder, textarea:-ms-input-placeholder { color: #7a8796; font-weight: 400; }
input.readonly-input { color: #5f6f83; background: #eef5fb; cursor: not-allowed; }
label { display: grid; gap: 7px; font-weight: 650; }
.form-validation-message { padding: 12px 14px; border: 1px solid #f0b3b3; border-radius: 14px; background: #fff1f1; color: var(--danger); font-weight: 800; }
.field-error { color: #9f2424; }
label.field-error input,
label.field-error textarea,
label.field-error select,
input.is-invalid,
textarea.is-invalid,
select.is-invalid { border-color: #dd4b4b!important; background: #fff7f7!important; box-shadow: 0 0 0 3px rgba(201, 51, 51, .10); }
.ouo-editor.is-invalid { border-color: #dd4b4b!important; box-shadow: 0 0 0 3px rgba(201, 51, 51, .10); }
[hidden] { display: none!important; }
.contract-form { display: grid; gap: 14px; }
.document-type-row { display: grid; grid-template-columns: minmax(220px, 280px) 1fr; gap: 14px; align-items: start; padding: 14px; border: 1px solid var(--line); border-radius: 16px; background: #f8fcff; }
.application-fields { display: grid; gap: 12px; }
.manual-parent-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 0; align-items: start; }
.form-grid.two { grid-template-columns: 1fr 1fr; }
.contract-meta-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
.field-quarter { grid-column: span 3; }
.field-third { grid-column: span 4; }
.field-half { grid-column: span 6; }
.field-five { grid-column: span 5; }
.field-full { grid-column: 1 / -1; }
.label-inline { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; flex-wrap: nowrap; }
.required { color: #c93333; font-weight: 800; }
.label-inline .required { display: inline-flex; align-self: center; line-height: 1; }
.contract-id-field input[data-counterparty-bin] { max-width: 185px; }
.bin-lookup-row-inline { grid-template-columns: minmax(145px, 185px) auto; justify-content: start; align-items: center; }
.contract-phone-highlight { padding: 10px 12px; border: 1px solid #c6def2; border-radius: 14px; background: #f4fbff; }
.contract-phone-highlight input { font-weight: 700; font-size: 18px; letter-spacing: .02em; }
.span-3 { grid-column: 1 / -1; }
.contract-form textarea { min-height: 340px; resize: vertical; }
.ouo-editor-source[hidden] { display: none; }
.ouo-editor { overflow: hidden; border: 1px solid #b7c9dd; border-radius: 16px; background: white; }
.ouo-editor-toolbar { display: flex; flex-wrap: wrap; gap: 6px; padding: 10px; border-bottom: 1px solid var(--line); background: #f7fbff; }
.ouo-editor-toolbar button { min-height: 34px; padding: 6px 10px; border: 1px solid #b7c9dd; border-radius: 9px; background: white; color: var(--text); font: inherit; font-weight: 700; cursor: pointer; }
.ouo-editor-toolbar button:hover { border-color: var(--blue); background: var(--blue-soft); color: var(--blue-dark); }
.ouo-editor-toolbar button.is-active { border-color: var(--blue-dark); background: var(--blue-dark); color: white; }
.ouo-table-panel { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; padding: 12px; border-bottom: 1px solid var(--line); background: #fbfdff; }
.ouo-table-panel label { width: 130px; font-size: 13px; }
.ouo-table-panel input { min-height: 38px; padding: 8px 10px; }
.ouo-table-panel-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.ouo-editor-canvas { min-height: 560px; padding: 24px 28px; outline: none; overflow: auto; line-height: 1.55; font-weight: 400; }
.ouo-editor-canvas p,
.ouo-editor-canvas li,
.ouo-editor-canvas td,
.ouo-editor-canvas div { font-weight: 400; }
.ouo-editor-canvas:focus { box-shadow: inset 0 0 0 2px rgba(51, 174, 234, .22); }
.ouo-editor-canvas table { border-collapse: collapse; width: 100%; margin: 10px 0; }
.ouo-editor-canvas td, .ouo-editor-canvas th { border: 1px solid #9fb4cc; padding: 6px 8px; vertical-align: top; min-width: 56px; }
.ouo-page-break { page-break-after: always; break-after: page; height: 28px; margin: 18px 0; border-top: 1px dashed #9fb4cc; color: #7c91a7; text-align: center; font-size: 12px; }
.ouo-page-break span { position: relative; top: -9px; padding: 2px 8px; border-radius: 999px; background: white; }
.ouo-editor.a4-mode { background: #dcebf7; }
.ouo-editor.a4-mode .ouo-editor-canvas { width: min(794px, calc(100% - 32px)); min-height: 1123px; margin: 24px auto; padding: 72px 78px; overflow: visible; background: white; border: 1px solid #d5e3ef; border-radius: 3px; box-shadow: 0 18px 44px rgba(16, 35, 61, .16); line-height: 1.45; }
.ouo-editor.a4-mode .ouo-editor-canvas table { table-layout: fixed; }
.form-actions { margin-top: 2px; display: flex; justify-content: flex-end; }
.split-actions { gap: 10px; flex-wrap: wrap; }
.split-actions .btn { min-width: 132px; }
.split-actions .btn.primary { min-width: 250px; }
.limit-exhausted-note { margin: 8px 0 0; text-align: right; color: var(--danger); font-weight: 800; }
.counterparty-box { display: grid; gap: 14px; padding: 16px; border: 1px solid var(--line); border-radius: 16px; background: #fbfdff; }
.counterparty-box-head { display: flex; justify-content: space-between; gap: 12px; align-items: start; flex-wrap: wrap; }
.counterparty-box-head strong { display: block; font-size: 16px; margin-bottom: 4px; }
.counterparty-box-head small { color: var(--muted); }
.counterparty-query-row { display: grid; grid-template-columns: minmax(240px, 1fr) auto; gap: 12px; align-items: end; }
.counterparty-query-label { gap: 6px; margin: 0; }
.counterparty-query-label input[readonly] { background: #eef5fb; color: #2f435b; font-weight: 700; }
.counterparty-hint { margin: 0; color: var(--muted); border-radius: 12px; border: 1px solid #dbe9f6; background: #f5fbff; padding: 10px 12px; }
.counterparty-hint.is-loading { color: #0b67a3; border-color: #9ed9f5; background: #ebf8ff; }
.counterparty-hint.is-success { color: var(--success); border-color: #bce8cc; background: #edfbf3; }
.counterparty-hint.is-error { color: var(--danger); border-color: #f0caca; background: #fff1f1; }
.counterparty-gauge-wrap { display: grid; grid-template-columns: minmax(260px, 360px) 1fr; gap: 14px; align-items: center; }
.counterparty-gauge { position: relative; height: 190px; width: min(360px, 100%); }
.counterparty-gauge-arc { position: absolute; left: 50%; bottom: 28px; width: 100%; max-width: 340px; height: 170px; transform: translateX(-50%); border-radius: 180px 180px 0 0; overflow: hidden; background: conic-gradient(from 180deg, #d84b4b 0deg, #e7733b 56deg, #f0c460 102deg, #99cf64 142deg, #2cae6c 180deg); }
.counterparty-gauge-arc::after { content: ""; position: absolute; left: 50%; bottom: -1px; transform: translateX(-50%); width: calc(100% - 80px); height: calc(100% - 40px); border-radius: 160px 160px 0 0; background: var(--card); }
.counterparty-gauge-needle { --counterparty-angle: -90deg; position: absolute; left: 50%; bottom: 28px; width: 122px; height: 4px; background: var(--text); border-radius: 999px; transform-origin: 0% 50%; transform: rotate(var(--counterparty-angle)); transition: transform .35s ease; box-shadow: 0 2px 5px rgba(16, 35, 61, .2); }
.counterparty-gauge-needle::before { content: ""; position: absolute; left: -8px; top: 50%; width: 16px; height: 16px; border-radius: 50%; background: var(--text); transform: translateY(-50%); }
.counterparty-gauge-needle::after { content: ""; position: absolute; right: -3px; top: 50%; width: 0; height: 0; border-top: 7px solid transparent; border-bottom: 7px solid transparent; border-left: 11px solid var(--text); transform: translateY(-50%); }
.counterparty-gauge-center { position: absolute; left: 50%; bottom: 44px; transform: translateX(-50%); text-align: center; display: grid; gap: 2px; }
.counterparty-gauge-center strong { font-size: 32px; line-height: 1; }
.counterparty-gauge-center small { color: var(--muted); font-weight: 700; }
.counterparty-gauge-scale { position: absolute; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); color: var(--muted); font-size: 12px; font-weight: 700; }
.counterparty-gauge-scale span:nth-child(1) { text-align: left; }
.counterparty-gauge-scale span:nth-child(n + 2):nth-child(-n + 5) { text-align: center; }
.counterparty-gauge-scale span:last-child { text-align: right; }
.counterparty-summary { display: grid; gap: 8px; align-content: start; }
.counterparty-summary-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.counterparty-summary-list li { display: flex; justify-content: space-between; align-items: center; gap: 8px; border: 1px solid #deebf7; border-radius: 999px; padding: 5px 10px; background: #fff; color: #3f566f; font-size: 12px; font-weight: 700; }
.counterparty-summary-list li b { font-size: 13px; color: var(--text); }
.status-counterparty { align-self: start; }
.counterparty-band-excellent { background: #e5f7ed; color: #0c8f45; }
.counterparty-band-good { background: #ebf8ff; color: #0b67a3; }
.counterparty-band-fair { background: #fff7e7; color: #975b00; }
.counterparty-band-bad { background: #fff1e8; color: #a84f00; }
.counterparty-band-very_bad { background: #fff1f1; color: #b42323; }
.counterparty-results { display: grid; gap: 10px; }
.counterparty-results h4 { margin: 0; }
.counterparty-results-list { display: grid; gap: 10px; }
.counterparty-result-item { border: 1px solid var(--line); border-radius: 14px; padding: 12px; background: #fff; display: grid; gap: 6px; }
.counterparty-result-head { display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.counterparty-result-item p { margin: 0; color: #2f435b; line-height: 1.45; }
.counterparty-result-item small { color: var(--muted); }
.counterparty-service-status { display: inline-flex; align-items: center; border-radius: 999px; padding: 4px 9px; font-size: 11px; font-weight: 800; }
.counterparty-service-status.status-pass { color: #0c8f45; background: #e5f7ed; }
.counterparty-service-status.status-warn { color: #975b00; background: #fff7e7; }
.counterparty-service-status.status-risk { color: #b42323; background: #fff1f1; }
.counterparty-service-status.status-error { color: #7f2940; background: #ffeef5; }
.counterparty-service-status.status-skip { color: #4d6279; background: #eef3f7; }
.counterparty-history { display: grid; gap: 10px; }
.counterparty-history h4 { margin: 0; }
.counterparty-history-list { display: grid; gap: 10px; }
.counterparty-history-item { display: grid; grid-template-columns: minmax(190px, 1fr) minmax(210px, .9fr) auto; gap: 12px; align-items: center; border: 1px solid #d8e8f6; border-radius: 14px; padding: 10px 12px; background: white; }
.counterparty-history-main { display: grid; gap: 4px; min-width: 0; }
.counterparty-history-main strong { font-size: 14px; color: var(--text); }
.counterparty-history-main small { color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.counterparty-history-meta { display: grid; gap: 4px; justify-items: start; }
.counterparty-history-meta b { font-size: 14px; }
.counterparty-history-meta small { color: var(--muted); font-size: 12px; }
.counterparty-history-actions { display: inline-flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.counterparty-empty { margin: 0; }

.counterparty-modal { width: min(980px, 100%); max-height: min(90vh, 860px); }
.counterparty-modal .counterparty-modal-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.counterparty-modal h2 { margin: 0; font-size: 24px; }
.counterparty-modal .counterparty-modal-sub { color: var(--muted); margin: 0; }
.counterparty-modal-grid { display: grid; grid-template-columns: minmax(260px, 330px) 1fr; gap: 14px; }
.counterparty-modal-figure { border: 1px solid #d7e9f7; border-radius: 16px; background: #f8fcff; padding: 10px; }
.counterparty-modal-figure .counterparty-gauge { width: 100%; height: 175px; margin: 0 auto; }
.counterparty-modal-figure .counterparty-gauge-arc { width: 100%; max-width: 300px; height: 145px; }
.counterparty-modal-figure .counterparty-gauge-center strong { font-size: 28px; }
.counterparty-modal-figure .counterparty-gauge-scale { font-size: 11px; }
.counterparty-modal-facts { border: 1px solid #d7e9f7; border-radius: 16px; background: #fff; padding: 12px; display: grid; gap: 8px; }
.counterparty-modal-facts dl { margin: 0; display: grid; grid-template-columns: 180px 1fr; gap: 6px 10px; }
.counterparty-modal-facts dt { color: var(--muted); font-weight: 700; }
.counterparty-modal-facts dd { margin: 0; font-weight: 700; color: var(--text); }
.counterparty-modal-results { margin-top: 14px; border: 1px solid #d7e9f7; border-radius: 16px; background: #fff; padding: 12px; }
.counterparty-modal-results h3 { margin: 0 0 10px; font-size: 16px; }
.counterparty-modal-disclaimer { margin-top: 12px; padding-top: 10px; border-top: 1px solid #dbe9f6; color: var(--muted); font-size: 12px; line-height: 1.45; }
.ai-suite-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.ai-suite-card { min-height: 118px; display: grid; grid-template-columns: 42px 1fr; align-items: center; gap: 14px; padding: 18px; border: 1px solid #c7e5f7; border-radius: 16px; background: linear-gradient(135deg, #ffffff, #f3fbff); color: var(--text); font-weight: 800; }
.ai-suite-card:hover { border-color: #8fcff1; background: linear-gradient(135deg, #edf9ff, #e5f5ff); color: var(--blue-dark); }
.ai-suite-card img { width: 42px; height: 42px; object-fit: contain; }
.ai-suite-form { display: grid; gap: 14px; }
.ai-result-panel .panel-head { align-items: start; }
.ai-result-head-right { display: grid; justify-items: end; gap: 8px; }
.ai-result-body { border: 1px solid #d8e8f6; border-radius: 14px; background: #fff; padding: 16px; line-height: 1.55; }
.ai-result-body h1, .ai-result-body h2, .ai-result-body h3, .ai-result-body h4 { margin: 0 0 10px; color: var(--text); }
.ai-result-body p { margin: 0 0 10px; }
.ai-result-body ul, .ai-result-body ol { margin-top: 0; }
.ai-generate-wrap { display: flex; align-items: center; justify-content: center; min-height: 124px; }
.ai-generate-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	font-family: inherit;
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .4px;
	color: #7e97b8;
	background-color: #e0e8ef;
	border: 2px solid rgba(255, 255, 255, 0.333);
	border-radius: 40px;
	padding: 16px 24px 16px 28px;
	transition: .2s;
	box-shadow: -4px -2px 16px 0 #ffffff, 4px 2px 16px 0 rgb(95 157 231 / 48%);
}
.ai-generate-btn:hover {
	color: #516d91;
	background-color: #e5edf5;
	box-shadow: -2px -1px 8px 0 #ffffff, 2px 1px 8px 0 rgb(95 157 231 / 48%);
}
.ai-generate-btn:active { box-shadow: none; }
.ai-generate-btn:disabled { opacity: .55; cursor: not-allowed; box-shadow: none; }
.button-reset { border: 0; font: inherit; cursor: pointer; text-align: left; }
.button-reset:disabled { opacity: .58; cursor: not-allowed; }
.muted-card { opacity: .76; }
.ai-admin-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ai-ping-result { display: grid; gap: 9px; margin-top: 12px; padding: 14px; border: 1px solid #c7e5f7; border-radius: 14px; background: #f7fcff; }
.ai-ping-result strong { color: var(--text); }
.ai-ping-result small { color: var(--muted); line-height: 1.45; }
.ai-ping-result.ok { border-color: #abe4bf; background: #effcf4; }
.ai-ping-result.error { border-color: #ffc2c2; background: #fff3f3; }
.ai-ping-result.loading { border-color: #b7ddf4; background: #f1f9ff; }
.ai-ping-grid { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 5px 12px; font-size: 13px; }
.ai-ping-grid span { color: var(--muted); }
.ai-ping-grid b { min-width: 0; overflow-wrap: anywhere; color: var(--text); }
.admin-settings-nav { display: grid; gap: 16px; }
.admin-tab-list { display: flex; flex-wrap: wrap; gap: 10px; padding: 8px; border: 1px solid var(--line); border-radius: 16px; background: #f5fbff; }
.admin-tab {
	border: 1px solid transparent;
	border-radius: 12px;
	background: transparent;
	color: #3e5874;
	cursor: pointer;
	font: inherit;
	font-weight: 800;
	padding: 12px 16px;
	transition: .18s ease;
}
.admin-tab:hover { color: var(--blue-dark); background: #e9f6ff; border-color: #c7e5f7; }
.admin-tab.active {
	color: var(--blue-dark);
	background: #fff;
	border-color: #9dd5f4;
	box-shadow: 0 10px 24px rgba(47, 164, 226, .14);
}
.admin-tab-panel[hidden] { display: none !important; }
.ai-builder { display: grid; gap: 12px; margin-top: 8px; }
.ai-builder-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.ai-builder-pages { display: grid; gap: 12px; }
.ai-builder-page { border: 1px solid #d6e8f7; border-radius: 14px; background: #fafdff; padding: 12px; display: grid; gap: 10px; }
.ai-builder-page-head { display: grid; gap: 10px; }
.ai-builder-page-head > label { display: grid; gap: 6px; }
.ai-builder-page-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.ai-builder-page-actions select { min-width: 220px; }
.ai-builder-fields { display: grid; gap: 10px; }
.ai-builder-field { border: 1px solid #e0edf8; border-radius: 12px; background: #fff; padding: 10px; display: grid; gap: 8px; }
.ai-builder-field-grid { display: grid; gap: 8px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ai-builder-field-grid > label { display: grid; gap: 6px; }
.ai-builder-check { display: inline-flex !important; align-items: center; gap: 8px; padding-top: 24px; }
.ai-builder-check input { width: 16px; height: 16px; margin: 0; }
.ai-builder-options { display: grid; gap: 6px; }
.ai-builder-row-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.ai-wizard-modal {
	z-index: 230;
	align-items: start;
	justify-items: center;
	overflow-x: hidden;
	overflow-y: auto;
	padding: 24px 16px;
}
.ai-wizard-dialog {
	position: relative;
	width: min(1040px, calc(100vw - 32px));
	margin: 0 auto;
	padding: 28px;
	border: 1px solid var(--line);
	border-radius: 20px;
	background: white;
	box-shadow: 0 26px 80px rgba(7, 22, 38, .28);
	max-height: none;
	overflow: visible;
}
.ai-wizard-progress { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 12px 0 18px; }
.ai-wizard-progress span { height: 6px; border-radius: 999px; background: #dbe9f6; }
.ai-wizard-progress span.active, .ai-wizard-progress span.done { background: linear-gradient(90deg, var(--blue), var(--blue-dark)); }
.ai-wizard-step h3 { margin: 0 0 12px; font-size: 20px; }
.ai-form-slider { display: grid; gap: 12px; }
.ai-form-slider-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.ai-form-slider-head strong { font-size: 15px; }
.ai-form-slide { border: 1px solid #d7e8f8; border-radius: 14px; padding: 12px; background: #fbfdff; }
.ai-form-slide .form-grid.two { grid-template-columns: repeat(12, minmax(0, 1fr)); }
.ai-form-field { display: grid; gap: 6px; align-content: start; }
.ai-form-field textarea { min-height: clamp(220px, 42vh, 430px); resize: vertical; }
.ai-slide-actions { margin-top: 12px; }
.ai-slide-footer { display: flex; justify-content: center; margin-top: 8px; }
.ai-slide-footer [data-ai-slide-counter] { color: var(--muted); font-size: 13px; font-weight: 700; }
.ai-radio-list { display: grid; gap: 8px; }
.ai-radio-item { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid #d3e4f5; border-radius: 10px; background: #fff; }
.ai-radio-item input[type="radio"] { width: 16px; height: 16px; margin: 0; }
.ai-mode-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.ai-mode-card { position: relative; display: grid; gap: 7px; min-height: 116px; padding: 16px; border: 1px solid #c7e5f7; border-radius: 16px; background: #f8fcff; cursor: pointer; }
.ai-mode-card input { position: absolute; opacity: 0; pointer-events: none; }
.ai-mode-card span { font-weight: 800; color: var(--text); }
.ai-mode-card small { color: var(--muted); line-height: 1.35; }
.ai-mode-card:has(input:checked) { border-color: #66bdec; background: #eaf7ff; box-shadow: 0 12px 24px rgba(35,127,212,.12); }
.ai-wizard-loading { justify-items: center; text-align: center; padding: 28px 0; }
.ai-loader { width: 58px; height: 58px; border: 6px solid #d8ecfa; border-top-color: var(--blue-dark); border-radius: 50%; animation: aiSpin .85s linear infinite; }
@keyframes aiSpin { to { transform: rotate(360deg); } }
.field-error { border-color: #ef5b5b !important; box-shadow: 0 0 0 3px rgba(239, 91, 91, .12) !important; }
.ai-save-draft-form { display: grid; gap: 12px; margin-top: 14px; }
.ai-modal-result { max-height: 44vh; overflow: auto; }
.ai-history-list { display: grid; gap: 10px; }
.ai-history-item { display: grid; grid-template-columns: minmax(280px, 1fr) auto; gap: 12px; align-items: center; border: 1px solid #d8e8f6; border-radius: 14px; padding: 12px 14px; background: #fff; color: var(--text); }
.ai-history-item:hover { border-color: #8fcff1; background: #f6fbff; }
.ai-history-item.active { border-color: #75c7ef; background: #ebf8ff; }
.ai-history-main { display: grid; gap: 4px; min-width: 0; }
.ai-history-main strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ai-history-main small { color: var(--muted); }
.ai-history-meta { display: grid; justify-items: end; gap: 6px; }
.ai-saved-table { display: grid; gap: 0; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: #fff; }
.ai-saved-row { display: grid; grid-template-columns: 120px 150px minmax(220px, 1fr) minmax(180px, .9fr) 92px minmax(210px, auto); gap: 10px; align-items: center; padding: 12px 14px; border-top: 1px solid #e4eff8; }
.ai-saved-row:first-child { border-top: 0; }
.ai-saved-head { background: #f7fbff; color: var(--muted); font-size: 12px; text-transform: uppercase; font-weight: 800; }
.ai-saved-row.active { background: #ecf8ff; }
.ai-row-actions { display: inline-flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.ai-result-title-wrap { margin-bottom: 12px; }
.ai-modal-editor-canvas { min-height: 360px; max-height: none; overflow: visible; }
.ai-builder input,
.ai-builder textarea,
.ai-builder select,
textarea[name="ai_system_prompt"],
textarea[name="ai_legal_sources"] { font-weight: 400; }
.ai-result-actions-row {
	margin-top: 10px;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
}
.ai-action-form {
	margin: 0;
	display: inline-flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
}
.ai-action-form .btn {
	width: auto;
}
.tariff-product-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; }
.tariff-product-list span { display: inline-flex; align-items: center; gap: 7px; min-height: 30px; padding: 5px 10px; border: 1px solid #c7e5f7; border-radius: 999px; background: #f3fbff; color: #0b67a3; font-size: 13px; font-weight: 800; }
.tariff-product-list img { width: 18px; height: 18px; object-fit: contain; }
.contract-library-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
.template-list-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.contract-template-card { min-height: 214px; display: grid; grid-template-rows: auto auto 1fr auto; gap: 9px; padding: 14px; border: 1px solid var(--line); border-radius: 16px; background: #fbfdff; color: var(--text); overflow: hidden; }
.contract-template-card:hover { border-color: #9bcdf0; box-shadow: 0 14px 28px rgba(35, 127, 212, .12); transform: translateY(-1px); }
.contract-template-card strong { font-size: 14px; line-height: 1.25; }
.contract-template-card small { color: var(--muted); line-height: 1.35; }
.new-contract-card { place-items: center; text-align: center; border-style: dashed; background: linear-gradient(180deg, #ffffff, #f1f9ff); }
.template-icon { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 18px; color: white; background: linear-gradient(135deg, var(--blue), var(--blue-dark)); font-size: 34px; font-weight: 800; box-shadow: 0 12px 24px rgba(35,127,212,.22); }
.preview-paper { min-height: 94px; max-height: 94px; overflow: hidden; padding: 10px; border: 1px solid #dfeaf5; border-radius: 10px; background: white; color: #4c5e73; font-size: 11px; line-height: 1.35; }
.template-action { color: var(--blue-dark); font-weight: 800; font-size: 13px; }
.create-empty-note { margin: 16px 0 0; }
.table { display: grid; }
.table-row { display: grid; grid-template-columns: 1.8fr 1fr .9fr .8fr .8fr auto; gap: 14px; align-items: center; padding: 16px 10px; border-top: 1px solid var(--line); }
.table-head { color: var(--muted); text-transform: uppercase; font-size: 12px; font-weight: 700; }
.table-row small { display: block; color: var(--muted); font-weight: 500; margin-top: 3px; }
.received-label { color: var(--blue-dark)!important; font-weight: 700!important; }
.contracts-table .table-row { grid-template-columns: minmax(240px, 1.45fr) minmax(140px, .8fr) minmax(120px, .7fr) minmax(115px, .65fr) minmax(150px, .9fr) minmax(115px, .65fr) minmax(210px, auto); }
.row-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.inline-form { display: inline; margin: 0; }
.icon-btn { width: 34px; height: 34px; display: inline-grid; place-items: center; border: 1px solid #b7c9dd; border-radius: 10px; background: white; color: var(--text); }
.icon-btn:hover { border-color: #8dcdf2; background: var(--blue-soft); }
.icon-btn img { width: 18px; height: 18px; object-fit: contain; display: block; }
.icon-btn-danger { border-color: #f0caca; background: #fff4f4; }
.icon-btn-danger:hover { border-color: #e49595; background: #ffecec; }
.icon-btn-sms { border-color: #9ed9f5; background: #f0faff; }
.icon-btn-sms:hover { border-color: #33aeea; background: #dff4ff; }
.sms-action { min-width: 62px; min-height: 34px; font-weight: 900; }
.sms-action-alert { background: linear-gradient(135deg, #ff9f1c, #f04438); box-shadow: 0 10px 20px rgba(240, 68, 56, .22); }
.admin-table .table-row { grid-template-columns: .35fr 1.25fr .9fr .65fr .9fr .55fr .65fr .9fr .9fr auto; }
.admin-contract-table .table-row { grid-template-columns: .35fr 1.7fr 1fr 1fr .7fr .9fr auto; }
.admin-sms-table .table-row { grid-template-columns: .35fr .8fr .9fr .75fr 1.6fr .65fr 1.1fr .75fr; }
.table.compact .table-row { grid-template-columns: 1.5fr .8fr .9fr .7fr auto auto; }
.sms-message, .sms-response { max-height: 110px; overflow: auto; font-size: 13px; line-height: 1.45; }
.sms-response { color: var(--muted); }
.status-cell { display: grid; gap: 5px; justify-items: start; }
.otp-countdown { display: block; color: var(--muted); font-size: 11px; font-weight: 700; line-height: 1.25; }
.status { justify-self: start; border-radius: 999px; padding: 7px 10px; font-style: normal; font-weight: 700; font-size: 12px; background: #eef2f6; color: #53657a; }
.status.signed, .status.success, .status.paid { background: #e9f8ee; color: var(--success); }
.status.signing, .status.wait { background: #fff5df; color: #a35e00; }
.status.sms-expired { background: #fff1f1; color: var(--danger); }
.status.danger, .status.error { background: #fff1f1; color: var(--danger); }
.status.ready { background: var(--blue-soft); color: var(--blue-dark); }
.mark-form { margin: 0; }
.mark-select { min-height: 34px; padding: 7px 30px 7px 10px; border-radius: 999px; font-size: 12px; font-weight: 800; background: #fff; border-color: #b7c9dd; color: var(--text); }
.mark-select:disabled { background: #fff; opacity: .78; cursor: not-allowed; }
.mark-select option { background: #fff; color: var(--text); font-weight: 700; }
.mark-none { color: #53657a; background: #fff; border-color: #d8e2ec; }
.mark-in_progress { color: #0b67a3; background: #fff; border-color: #78c8f2; }
.mark-done { color: #168047; background: #fff; border-color: #8edaa9; }
.mark-terminated { color: #8b2b2b; background: #fff; border-color: #ef9e9e; }
.mark-court { color: #6d43a8; background: #fff; border-color: #c4a7ed; }
.mark-expired { color: #975b00; background: #fff; border-color: #e5bd67; }
.mark-prolong { color: #0e7490; background: #fff; border-color: #83ddea; }
.mark-option-none { color: #53657a; background: #fff; }
.mark-option-in_progress { color: #0b67a3; background: #e5f5ff; }
.mark-option-done { color: #168047; background: #e9f8ee; }
.mark-option-terminated { color: #8b2b2b; background: #fff0f0; }
.mark-option-court { color: #6d43a8; background: #f3edff; }
.mark-option-expired { color: #975b00; background: #fff5df; }
.mark-option-prolong { color: #0e7490; background: #e7fbff; }
.split { display: grid; grid-template-columns: 1fr 320px; gap: 24px; align-items: start; }
.side-box { border: 1px solid var(--line); border-radius: 16px; padding: 16px; display: grid; gap: 12px; }
.link-wrap { word-break: break-all; font-size: 13px; }
.side-link { display: grid; gap: 8px; }
.document-title { padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.document-title h2 { margin: 0 0 8px; }
.contract-body { margin-top: 18px; line-height: 1.7; overflow-wrap: anywhere; word-break: break-word; }
.tariff-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.billing-tariff-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.tariff-card { position: relative; border: 1px solid var(--line); border-radius: 16px; padding: 18px; display: grid; gap: 10px; align-content: start; }
.tariff-card h3, .tariff-card p { margin: 0; }
.tariff-card strong { font-size: 24px; }
.tariff-title-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.tariff-badge { justify-self: start; display: inline-flex; align-items: center; min-height: 28px; padding: 5px 10px; border-radius: 999px; color: white; background: var(--badge-color, var(--blue)); font-size: 12px; font-weight: 800; }
.tariff-price { display: grid; gap: 2px; }
.tariff-price del { color: var(--muted); font-size: 14px; }
.tariff-price strong { color: var(--text); }
.tariff-features { list-style: none; padding: 0; margin: 4px 0; border-top: 1px solid var(--line); }
.tariff-features li { padding: 10px 0; border-bottom: 1px solid var(--line); color: #2e435d; line-height: 1.35; }
.tariffs-admin-grid { grid-template-columns: minmax(320px, 520px) 1fr; }
.tariff-admin-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.tariff-admin-card { border: 1px solid var(--line); border-radius: 16px; padding: 16px; display: grid; gap: 10px; background: #fbfdff; }
.tariff-admin-card h3 { margin: 4px 0 0; }
.tariff-admin-card small { color: var(--muted); }
.tariff-card-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.admin-check { display: flex; flex-direction: row; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; background: #f8fcff; }
.admin-check input { width: auto; }
.admin-grid { display: grid; grid-template-columns: minmax(320px, 430px) 1fr; gap: 18px; align-items: start; }
.admin-form { display: grid; gap: 12px; }
.template-help { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: var(--muted); font-size: 13px; }
.template-help code { padding: 5px 8px; border: 1px solid var(--line); border-radius: 999px; background: #f8fcff; color: var(--blue-dark); font-weight: 800; }
.template-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 12px; border: 1px solid var(--line); border-radius: 16px; background: #f8fcff; }
.template-editor-form textarea { min-height: 420px; font-family: inherit; line-height: 1.55; }
.sms-diagnostics { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 10px; }
.sms-diagnostics span { padding: 8px 10px; border: 1px solid var(--line); border-radius: 12px; background: #f8fcff; color: var(--muted); font-size: 13px; }
.sms-diagnostics strong { color: var(--text); }
.admin-module-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.admin-module-grid a,
.admin-module-grid article { display: grid; gap: 6px; padding: 16px; border: 1px solid var(--line); border-radius: 14px; color: var(--text); font-weight: 800; background: #f9fdff; margin: 0; }
.admin-module-grid a:hover { background: var(--blue-soft); color: var(--blue-dark); }
.admin-module-grid span { color: var(--muted); font-weight: 500; font-size: 13px; }
.profile-form { display: grid; gap: 18px; }
.profile-section h2 { margin: 0; }
.profile-section .form-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.company-form-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
.company-form-grid > .field-half { grid-column: span 6; }
.company-form-grid > .field-full { grid-column: 1 / -1; }
.company-form-grid > .field-third { grid-column: span 4; }
.company-form-grid > .field-bik { grid-column: span 2; }
.company-form-grid > .field-iban { grid-column: span 9; }
.company-form-grid > .field-kbe { grid-column: span 1; }
.bin-lookup-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; }
.company-lookup-btn { min-width: 174px; box-shadow: 0 10px 20px rgba(35,127,212,.24); }
[data-company-lookup-hint].lookup-loading { color: #0b67a3; }
[data-company-lookup-hint].lookup-success { color: var(--success); }
[data-company-lookup-hint].lookup-error { color: var(--danger); }
.profile-required-box { display: grid; gap: 8px; }
.profile-alert { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.profile-save { display: flex; justify-content: center; }
.block-actions { margin-top: 14px; display: flex; justify-content: flex-end; }
.signer-switch { display: grid; grid-template-columns: repeat(2, minmax(0, 220px)); gap: 12px; }
.signer-switch label { cursor: pointer; }
.signer-switch input { position: absolute; opacity: 0; pointer-events: none; }
.signer-switch span { display: block; padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; background: #f8fcff; font-weight: 800; text-align: center; }
.signer-switch input:checked + span { border-color: #8dcdf2; color: var(--blue-dark); background: var(--blue-soft); box-shadow: 0 10px 22px rgba(35,127,212,.12); }
.signer-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.signer-card { position: relative; display: grid; gap: 6px; padding: 16px; border: 1px solid var(--line); border-radius: 16px; background: #fbfdff; cursor: pointer; transition: border-color .15s ease, background .15s ease, box-shadow .15s ease; }
.signer-card input { position: absolute; opacity: 0; pointer-events: none; }
.signer-card::after { content: ""; position: absolute; top: 14px; right: 14px; width: 18px; height: 18px; border-radius: 50%; border: 2px solid #b7c9dd; background: white; }
.signer-card.active { border-color: #8dcdf2; background: var(--blue-soft); box-shadow: 0 12px 28px rgba(35,127,212,.13); }
.signer-card.active::after { border-color: var(--blue-dark); background: radial-gradient(circle at center, var(--blue-dark) 0 42%, white 46%); }
.signer-card-title { font-weight: 800; color: var(--text); padding-right: 28px; }
.new-signer-card { border-style: dashed; }
.signer-card-button { width: 100%; font: inherit; text-align: left; color: var(--text); appearance: none; }
.signer-card-button::after { content: "+"; display: grid; place-items: center; color: var(--blue-dark); font-weight: 900; }
.signer-card-button:hover { border-color: #8dcdf2; background: var(--blue-soft); }
.signer-modal { z-index: 220; align-items: start; justify-items: center; overflow-x: hidden; overflow-y: auto; padding: 24px 16px; }
.signer-dialog { position: relative; width: min(980px, calc(100vw - 32px)); margin: 0 auto; padding: 28px; border: 1px solid var(--line); border-radius: 20px; background: white; box-shadow: 0 26px 80px rgba(7, 22, 38, .28); overflow: hidden; }
.signer-dialog .signer-type-segment { margin: 14px 0; }
.signer-dialog .form-grid { margin-top: 12px; }
.signer-dialog .form-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.company-profile-card.active-company { border-color: #8dcdf2; box-shadow: 0 12px 28px rgba(35,127,212,.10); }
.notification-list { display: grid; gap: 12px; }
.notification-card { padding: 16px; border: 1px solid var(--line); border-radius: 16px; background: #fbfdff; }
.notification-card.important { display: grid; gap: 10px; border-color: #f0d49b; background: #fff9ed; }
.notification-card h2, .notification-card p { margin: 6px 0 0; }
.notification-card small { color: var(--muted); }
.compact-action { justify-self: start; width: auto; min-width: 0; }
.notification-item { width: 100%; text-align: left; display: grid; gap: 7px; color: var(--text); cursor: pointer; }
.notification-item.unread { border-color: #8dcdf2; background: #f1f9ff; box-shadow: 0 10px 24px rgba(35,127,212,.10); }
.notification-item.unread .notification-title::after { content: "Новое"; margin-left: 8px; padding: 3px 7px; border-radius: 999px; background: var(--blue-dark); color: white; font-size: 11px; }
.notification-date { color: var(--muted); font-size: 13px; }
.notification-title { font-weight: 800; }
.notification-preview { color: #40546d; line-height: 1.45; }
.modal-backdrop { position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; padding: 18px; background: rgba(9, 22, 38, .45); }
.flash-modal { z-index: 140; }
.notification-dialog { position: relative; width: min(620px, 100%); max-height: min(720px, calc(100vh - 36px)); overflow: auto; background: white; border: 1px solid var(--line); border-radius: 20px; padding: 24px; box-shadow: 0 26px 80px rgba(7, 22, 38, .28); }
.flash-dialog { width: min(540px, 100%); }
.flash-modal-stack { display: grid; gap: 10px; }
.flash-modal-message { margin: 0; }
.notification-dialog h2 { margin: 8px 0 14px; }
.notification-dialog small { color: var(--muted); }
.notification-dialog-body { white-space: pre-wrap; line-height: 1.6; color: #2b3f57; }
.notification-dialog-body a { font-weight: 800; word-break: break-all; }
.modal-close { position: absolute; top: 14px; right: 14px; width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 50%; background: #f6fbff; color: var(--text); cursor: pointer; font-size: 22px; line-height: 1; }
.modal-actions { display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; margin-top: 18px; }
.ai-wizard-step .modal-actions .btn { min-width: 126px; }
.admin-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.detail-card { padding: 16px; border: 1px solid var(--line); border-radius: 16px; background: #fbfdff; }
.detail-card h2 { margin-top: 0; }
.warning-text { color: #975b00; font-weight: 700; }
.certificate-page h2 { text-align: center; margin-top: 0; }
.certificate-grid { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid #7f8fa1; }
.certificate-grid > div { padding: 16px; border-right: 1px solid #7f8fa1; border-bottom: 1px solid #7f8fa1; }
.certificate-grid > div:nth-child(2n) { border-right: 0; }
.certificate-grid h3 { margin-top: 0; }
.certificate-grid p, .certificate-grid li { line-height: 1.45; }
.certificate-footer { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; line-height: 1.5; }
.certificate-summary { display: grid; grid-template-columns: 1fr 180px; gap: 18px; align-items: start; margin-top: 18px; padding: 16px; border: 1px solid var(--line); border-radius: 16px; background: #fbfdff; }
.certificate-summary p { margin: 0 0 8px; line-height: 1.45; }
.certificate-qr { display: grid; gap: 8px; justify-items: center; text-align: center; color: var(--muted); }
.certificate-qr img { width: 150px; height: 150px; }
.certificate-selfie { margin-top: 14px; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: #fbfdff; display: grid; gap: 4px; }
.success-text { color: var(--success); font-weight: 800; }
.error-log-table .table-row { grid-template-columns: .35fr .8fr 1fr 1.2fr 1.4fr 1.4fr .7fr; }

.approval-list { display: grid; gap: 10px; }
.approval-row { display: grid; grid-template-columns: minmax(220px, 1.4fr) minmax(160px, 1fr) auto minmax(120px, .7fr); gap: 14px; align-items: center; padding: 14px 16px; border: 1px solid var(--line); border-radius: 16px; background: #fbfdff; color: var(--text); }
.approval-row:hover { border-color: #8dcdf2; background: #f3fbff; }
.approval-row span { min-width: 0; }
.approval-row small { display: block; color: var(--muted); margin-top: 4px; }
.approval-row-meta { display: grid; gap: 2px; justify-items: end; }
.approval-workspace { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 420px); gap: 18px; align-items: start; }
.approval-document { min-height: 620px; }
.approval-side { display: grid; gap: 14px; }
.approval-card { padding: 18px; }
.approval-card h2 { margin-top: 0; font-size: 20px; }
.approval-actions, .approval-comment-form, .approval-comments, .approval-participants, .approval-timeline { display: grid; gap: 10px; }
.participant-item, .approval-comment, .approval-timeline > div { padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: #fbfdff; }
.participant-item { display: grid; gap: 5px; }
.participant-item small, .approval-comment small, .approval-timeline small { color: var(--muted); }
.approval-comment p, .approval-timeline p { margin: 8px 0 0; color: #334860; line-height: 1.45; }
.approval-create-box { margin: 12px 0; padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: #f8fcff; }
.approval-create-box summary { cursor: pointer; font-weight: 800; color: var(--blue-dark); }
.approval-create-form { display: grid; gap: 10px; margin-top: 12px; }
.approval-create-form label { display: grid; gap: 6px; font-weight: 700; }
.approval-create-form input, .approval-create-form select, .approval-create-form textarea { width: 100%; }
.side-box-section { display: grid; gap: 8px; margin: 12px 0; }
.mini-approval-list { display: grid; gap: 6px; }
.mini-approval-list a { display: flex; justify-content: space-between; gap: 8px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 12px; background: #fbfdff; color: var(--text); font-weight: 700; }
.mini-approval-list small { color: var(--muted); font-weight: 600; }
.approval-admin-table .table-head, .approval-admin-table .table-row { grid-template-columns: .35fr 1fr 1.4fr 1fr .8fr .8fr .8fr; }
.status.pending, .status.approval_pending { background: #fff5df; color: #a35e00; }
.status.warning, .status.approval_changes_requested { background: #fff7e7; color: #975b00; }
.status.info, .status.approval_viewed { background: #e8f5ff; color: #0c6fa8; }
.public-approval-page { max-width: 1180px; margin: 28px auto 54px; padding: 0 18px; display: grid; gap: 18px; }
.public-approval-hero { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 24px; border: 1px solid var(--line); border-radius: 20px; background: #fff; box-shadow: 0 16px 34px rgba(22, 54, 88, .08); }
.public-approval-hero p { margin: 0 0 8px; color: var(--muted); font-size: 13px; font-weight: 800; text-transform: uppercase; }
.public-approval-hero h1 { margin: 0 0 8px; font-size: clamp(24px, 4vw, 36px); line-height: 1.12; }
.public-approval-hero span { color: var(--muted); font-weight: 700; }
.public-approval-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 400px); gap: 18px; align-items: start; }
.public-approval-doc, .public-approval-card { border: 1px solid var(--line); border-radius: 20px; background: #fff; box-shadow: 0 16px 34px rgba(22, 54, 88, .08); }
.public-approval-doc { padding: 28px; min-height: 620px; }
.public-approval-panel { display: grid; gap: 14px; }
.public-approval-card { padding: 18px; }
.public-approval-card h2 { margin: 0 0 10px; font-size: 20px; }
.approval-public-decision { display: grid; gap: 12px; }
.approval-public-actions { display: grid; grid-template-columns: 1fr; gap: 10px; }
.approval-deadline { margin-bottom: 0; }
.success-soft { background: #ecfbf2; border-color: #b8ebc9; }

.public-header { height: 82px; display: flex; align-items: center; justify-content: space-between; max-width: 1180px; margin: 0 auto; padding: 8px 24px 0; }
.public-logo { display: flex; align-items: center; padding-top: 6px; }
.public-logo img { width: 92px; height: 58px; object-fit: contain; }
.public-header nav { display: flex; gap: 22px; font-weight: 700; }
.public-flash { max-width: 920px; margin: 12px auto; }
.landing, .auth-page { min-height: calc(100vh - 82px - 74px); display: grid; place-items: center; padding: 24px; }
.public-footer { max-width: 1180px; margin: 0 auto; padding: 12px 24px 18px; display: grid; justify-items: center; gap: 2px; color: var(--muted); font-weight: 600; }
.public-footer strong { color: var(--text); font-weight: 800; }
.hero-card { max-width: 1080px; display: grid; grid-template-columns: 1.2fr .8fr; gap: 28px; padding: 36px; align-items: center; }
.hero-card h1 { font-size: clamp(32px, 5vw, 58px); margin: 0; line-height: 1.03; }
.hero-card p { font-size: 18px; color: var(--muted); line-height: 1.6; }
.eyebrow { color: var(--blue-dark)!important; text-transform: uppercase; font-weight: 800; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.hero-preview { background: var(--blue-soft); border-radius: 18px; padding: 22px; display: grid; gap: 12px; }
.auth-card { width: min(980px, 100%); padding: 30px; text-align: center; }
.auth-card.narrow { width: min(520px, 100%); }
.auth-logo { width: 112px; height: 74px; object-fit: contain; }
.auth-grid { margin-top: 22px; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; text-align: left; }
.form-card { border: 1px solid var(--line); border-radius: 16px; padding: 18px; display: grid; gap: 12px; }
.password-field { position: relative; }
.password-field input { padding-right: 46px; }
.password-toggle {
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
	border: 0;
	background: transparent;
	cursor: pointer;
	line-height: 1;
	padding: 4px;
	color: #5f6f83;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
}
.password-toggle:hover { color: #1f3f63; }
.password-toggle img { width: 20px; height: 20px; display: block; pointer-events: none; }
.password-reset-link {
	font-size: 14px;
	font-weight: 700;
	color: var(--blue-dark);
	justify-self: end;
	margin-top: -2px;
}
.auth-switch { margin-top: 18px; display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; color: var(--muted); font-weight: 600; }
.auth-switch a { font-weight: 800; }
.small-text { font-size: 13px; line-height: 1.45; }
.segmented { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 4px; border: 1px solid var(--line); border-radius: 14px; background: #f5fbff; }
.segmented label { display: block; cursor: pointer; }
.segmented input { position: absolute; opacity: 0; pointer-events: none; }
.segmented span { display: block; padding: 10px 12px; border-radius: 10px; text-align: center; font-weight: 800; color: var(--muted); }
.segmented input:checked + span { color: var(--blue-dark); background: white; box-shadow: 0 8px 18px rgba(22, 54, 88, .08); }

.sign-body { background: #f4f9fd; }
.sign-page { max-width: 1180px; margin: 0 auto; padding: 24px; display: grid; gap: 18px; }
.sign-top { display: flex; justify-content: space-between; align-items: center; padding: 14px 18px; }
.sign-top img { width: 88px; height: 56px; object-fit: contain; }
.sign-doc { padding: 24px; }
.sign-title { text-align: center; border-bottom: 1px solid var(--line); margin-bottom: 20px; padding-bottom: 16px; }
.sign-title h1 { font-size: clamp(24px, 4vw, 36px); line-height: 1.18; }
.sign-download-top { max-width: 260px; margin: 0 auto 18px; }
.sign-contract-preview { display: flex; justify-content: center; padding: 4px 0 2px; }
.contract-dialog { width: min(920px, calc(100vw - 24px)); max-height: min(92vh, 900px); overflow: auto; }
.contract-dialog h2 { margin: 0 44px 4px 0; }
.contract-modal-body { margin-top: 16px; max-height: 62vh; overflow: auto; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: #fbfdff; }
.sign-card { padding: 22px; max-width: 460px; justify-self: center; width: 100%; }
.sign-result { display: grid; gap: 12px; justify-items: center; text-align: center; }
.sign-result h2, .sign-result p { margin: 0; }
.sign-result p { color: var(--muted); line-height: 1.5; }
.sign-result-icon { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--success); font-size: 28px; font-weight: 900; }
.check { display: flex; grid-template-columns: auto 1fr; gap: 10px; align-items: start; margin: 12px 0; font-weight: 500; }
.check input { width: auto; margin-top: 4px; }
.otp { text-align: center; font-size: 24px; letter-spacing: 4px; margin-bottom: 12px; }
.link-button { border: 0; background: transparent; color: var(--blue-dark); padding: 0; font-weight: 800; cursor: pointer; }
.selfie-box { display: grid; gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: #f8fcff; margin-bottom: 12px; }
.selfie-camera { position: relative; overflow: hidden; border-radius: 18px; background: #dfeaf5; aspect-ratio: 4 / 5; width: min(100%, 360px); max-height: 520px; margin: 0 auto; }
.selfie-camera video { width: 100%; height: 100%; display: block; transform: scaleX(-1); background: #dfeaf5; object-fit: cover; min-height: 0; }
.face-mask { position: absolute; inset: 0; pointer-events: none; }
.face-mask::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse 43% 43% at 50% 50%, rgba(255,255,255,0) 0 96%, rgba(255,255,255,.94) 98% 100%);
}
.face-mask::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: min(86%, 316px);
	height: min(86%, 382px);
	transform: translate(-50%, -50%);
	border: 0;
	border-radius: 50% / 50%;
	box-shadow: inset 0 0 0 4px rgba(51,174,234,.95), 0 0 24px rgba(35,127,212,.2);
}
.selfie-camera.face-ok .face-mask::after {
	box-shadow: inset 0 0 0 4px rgba(23,166,91,.95), 0 0 0 4px rgba(23,166,91,.14), 0 0 24px rgba(23,166,91,.2);
}
.selfie-countdown { position: absolute; inset: 0; display: grid; place-items: center; color: white; font-size: clamp(54px, 18vw, 108px); font-weight: 900; text-shadow: 0 8px 32px rgba(0,0,0,.35); pointer-events: none; }
.selfie-preview img { width: 100%; border-radius: 14px; background: #dfeaf5; }
.selfie-preview { min-height: 84px; display: grid; place-items: center; gap: 8px; border: 1px dashed #b7c9dd; border-radius: 14px; color: var(--muted); overflow: hidden; text-align: center; }
.selfie-preview img { width: min(220px, 100%); aspect-ratio: 1 / 1; max-height: none; object-fit: cover; border-radius: 14px; border: 2px solid rgba(51,174,234,.35); background: #fff; padding: 3px; }
.selfie-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.selfie-actions.centered { justify-content: center; }
.selfie-modal { position: fixed; inset: 0; z-index: 10030; display: grid; place-items: center; padding: 18px; background: rgba(13,31,48,.58); backdrop-filter: blur(5px); }
.selfie-modal[hidden] { display: none !important; }
.selfie-modal-panel { position: relative; width: min(460px, 100%); max-height: min(92vh, 760px); overflow: auto; border-radius: 24px; background: white; border: 1px solid var(--line); box-shadow: 0 28px 80px rgba(13,31,48,.28); padding: 22px; display: grid; gap: 14px; }
.selfie-modal-head { display: grid; gap: 6px; padding-right: 44px; }
.selfie-modal-head span { color: var(--blue-dark); font-weight: 900; text-transform: uppercase; letter-spacing: .04em; font-size: 12px; }
.selfie-modal-head h3 { margin: 0; font-size: 24px; }
.selfie-modal-head p { margin: 0; color: var(--muted); line-height: 1.45; }
.selfie-modal-status { text-align: center; color: var(--muted); font-weight: 700; padding: 10px 12px; border-radius: 12px; background: #f3f9fe; border: 1px solid var(--line); }
.btn.glow { box-shadow: 0 0 0 4px rgba(51,174,234,.18), 0 12px 28px rgba(35,127,212,.18); }
.install-page { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
.install-card { width: min(560px, 100%); background: white; border: 1px solid var(--line); border-radius: 18px; padding: 30px; box-shadow: var(--shadow); }
.install-card img { width: 110px; }

@media (max-width: 1100px) {
	.app-shell { grid-template-columns: 1fr; }
	.sidebar { position: static; min-height: 0; height: auto; }
	.metrics, .tariff-grid, .tariff-admin-list, .auth-grid, .hero-card, .signer-card-grid { grid-template-columns: 1fr 1fr; }
	.billing-tariff-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.contract-library-grid, .template-list-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.admin-grid, .admin-module-grid, .ai-suite-actions, .ai-mode-grid { grid-template-columns: 1fr 1fr; }
	.admin-detail-grid { grid-template-columns: 1fr; }
	.approval-workspace { grid-template-columns: 1fr; }
	.public-approval-grid { grid-template-columns: 1fr; }
	.approval-row { grid-template-columns: 1fr 1fr; }
	.split { grid-template-columns: 1fr; }
	.ai-saved-row { grid-template-columns: 110px 130px minmax(180px, 1fr) minmax(150px, .8fr) 80px minmax(180px, auto); }
}

@media (max-width: 760px) {
	.app-shell, .sign-page { padding: 12px; gap: 12px; }
	.sign-title h1 { font-size: 24px; line-height: 1.18; }
	.page-head, .panel-head, .filters { display: grid; }
	.metrics, .tariff-grid, .tariff-admin-list, .auth-grid, .hero-card, .form-grid, .form-grid.two, .contract-meta-grid, .document-type-row, .manual-parent-fields, .signer-switch, .signer-card-grid, .certificate-summary { grid-template-columns: 1fr; }
	.counterparty-gauge-wrap { grid-template-columns: 1fr; }
	.billing-tariff-grid { grid-template-columns: 1fr; }
	.contract-library-grid, .template-list-grid { grid-template-columns: 1fr; }
	.field-quarter, .field-third { grid-column: 1 / -1; }
	.field-half, .field-five, .field-full { grid-column: 1 / -1; }
	.admin-grid, .admin-module-grid, .ai-suite-actions, .ai-mode-grid { grid-template-columns: 1fr; }
	.certificate-grid { grid-template-columns: 1fr; }
	.certificate-grid > div { border-right: 0; }
	.table-head { display: none; }
	.table-row, .contracts-table .table-row, .admin-table .table-row, .admin-contract-table .table-row, .admin-sms-table .table-row, .error-log-table .table-row, .table.compact .table-row { grid-template-columns: 1fr; gap: 8px; padding: 16px 0; }
	.filter-actions { justify-content: stretch; }
	.row-actions { justify-content: flex-start; }
	.filter-actions .btn { width: 100%; }
	.row-actions .btn:not(.sms-action), .row-actions form { width: auto; }
	.row-actions form button { width: auto; }
	.hero-card { padding: 22px; }
	.public-header { padding: 8px 14px 0; }
	.public-header nav { gap: 12px; font-size: 14px; }
	.landing, .auth-page { min-height: calc(100vh - 82px - 70px); padding: 14px; }
	.public-footer { padding: 10px 14px 14px; }
	.public-approval-page { margin: 14px auto 34px; padding: 0 12px; }
	.public-approval-hero { display: grid; padding: 18px; }
	.public-approval-doc { padding: 18px; min-height: 0; }
	.approval-public-actions { grid-template-columns: 1fr; }
	.bin-lookup-row { grid-template-columns: 1fr; }
	.bin-lookup-row-inline { grid-template-columns: 1fr; }
	.contract-id-field input[data-counterparty-bin] { max-width: none; }
	.counterparty-query-row { grid-template-columns: 1fr; }
	.counterparty-history-item { grid-template-columns: 1fr; }
	.counterparty-history-actions { justify-content: flex-start; }
	.ai-history-item { grid-template-columns: 1fr; }
	.ai-history-meta { justify-items: start; }
	.approval-row { grid-template-columns: 1fr; }
	.approval-row-meta { justify-items: start; }
	.approval-admin-table .table-head, .approval-admin-table .table-row { grid-template-columns: 1fr; }
	.ai-saved-head { display: none; }
	.ai-saved-row { grid-template-columns: 1fr; gap: 7px; }
	.ai-saved-row > div { display: grid; gap: 2px; }
	.ai-row-actions { justify-content: flex-start; }
	.counterparty-modal-grid { grid-template-columns: 1fr; }
	.counterparty-modal-facts dl { grid-template-columns: 1fr; }
	.company-form-grid > .field-half,
	.company-form-grid > .field-full,
	.company-form-grid > .field-third,
	.company-form-grid > .field-bik,
	.company-form-grid > .field-iban,
	.company-form-grid > .field-kbe { grid-column: 1 / -1; }
	.ouo-table-panel label { width: calc(50% - 6px); }
	.ouo-editor.a4-mode .ouo-editor-canvas { width: calc(100% - 18px); min-height: 760px; margin: 12px auto; padding: 24px 18px; }
	.quota-strip { display: grid; }
	.quota-progress { width: 100%; }
	.signer-dialog { width: min(100%, calc(100vw - 24px)); padding: 18px; }
	.signer-dialog .form-grid.two { grid-template-columns: 1fr; }
	.ai-wizard-dialog { width: min(100%, calc(100vw - 24px)); padding: 18px; }
	.ai-form-slide { padding: 10px; }
	.ai-form-field { grid-column: 1 / -1 !important; }
	.ai-wizard-step .modal-actions { justify-content: space-between; }
	.ai-wizard-step .modal-actions .btn { min-width: 0; }
	.ai-builder-field-grid { grid-template-columns: 1fr; }
	.ai-builder-page-actions select { min-width: 0; width: 100%; }
}
