:root {
  /* Тема 1 (по умолчанию) -- тактильный skeuomorphism, промпт Олега 26.09.2026: матовый пластик/металл,
     мягкие многослойные тени, тёплый молочно-бежевый фон. Темы 2-5 переопределяют эти же переменные
     через [data-theme="N"] на <html> (см. auth-ui.js/theme-init, аналог сделан в erp-r1). */
  --bg:#E9E7DF; --wash:#F5F3EC; --paper:#FAF9F4; --hover:#EFEBDF;
  --ink:#263642; --muted:#71808A;
  --accent:#41AFA1; --accent2:#41AFA1; --accent-soft:#dff3f0; --good:#87C96C; --teal:#41AFA1;
  --warning:#D9AF3C; --danger:#C9695F;
  --line:rgba(80,92,96,0.16);
  --shadow:0 6px 16px rgba(38,54,66,.12),inset 0 1px 0 #ffffffb0;
  --shadow-sm:0 2px 6px rgba(38,54,66,.14),inset 0 1px 0 #ffffffa0;
  --shadow-inset:inset 0 2px 5px rgba(38,54,66,.16),inset 0 -1px 0 #ffffff90;
  --shadow-pressed:inset 0 2px 5px rgba(38,54,66,.28);
}
/* Тема 2 -- тёмная технологичная (промпт Олега 26.09.2026): сине-графитовая enterprise-панель,
   минимум теней, тонкие линии, бирюзовый + голубой акценты. */
[data-theme="2"] {
  --bg:#162D3A; --wash:#102631; --paper:#132B36; --hover:#1D3B4B;
  --ink:#E6F0F3; --muted:#91A9B4;
  --accent:#32C6B0; --accent2:#53A8EB; --accent-soft:rgba(50,198,176,.16); --good:#4CC9A4; --teal:#32C6B0;
  --warning:#E9CF50; --danger:#ED6A69;
  --line:rgba(129,174,193,.16);
  --shadow:0 1px 2px rgba(0,0,0,.35);
  --shadow-sm:0 1px 2px rgba(0,0,0,.3);
  --shadow-inset:inset 0 1px 2px rgba(0,0,0,.4);
  --shadow-pressed:inset 0 1px 3px rgba(0,0,0,.5);
}
/* Тема 3 -- светлый премиальный стиль с горным пейзажем (промпт Олега 26.09.2026): молочно-кремовые
   полупрозрачные панели, пыльно-фиолетовые акценты, мягкие тени, фон -- горное озеро/лес/туман. */
[data-theme="3"] {
  --bg:#E9E5EA; --wash:rgba(246,241,235,.88); --paper:rgba(255,249,240,.90); --hover:#F1E7E3;
  --ink:#49404E; --muted:#786D7C;
  --accent:#8D628F; --accent2:#B78AAA; --accent-soft:#F4E8DC; --good:#779B87; --teal:#8277A8;
  --warning:#C6A16F; --danger:#B86F78;
  --line:rgba(119,91,123,.14);
  --shadow:0 18px 38px rgba(80,58,84,.16);
  --shadow-sm:0 8px 22px rgba(80,58,84,.10);
  --shadow-inset:inset 0 1px 2px rgba(80,58,84,.12);
  --shadow-pressed:inset 0 2px 5px rgba(80,58,84,.22);
}
.app-background { position:fixed; inset:0; z-index:-2; pointer-events:none; }
[data-theme="3"] body { background:transparent; }
[data-theme="3"] .app-background {
  background-image:
    linear-gradient(rgba(239,234,239,.72), rgba(225,219,231,.82)),
    url("/assets/mountain-wallpaper.svg");
  background-size:cover; background-position:center; background-repeat:no-repeat;
}
[data-theme="3"] .app-background::after { content:""; position:absolute; inset:0; backdrop-filter:blur(3px); background:rgba(240,236,240,.16); }
[data-theme="3"] header,[data-theme="3"] .registry,[data-theme="3"] dialog,[data-theme="3"] .workspace>aside {
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
}
[data-theme="3"] .workspace>aside { background:var(--wash); border-radius:8px; }
[data-theme="4"] { --bg:#E6EDE9; --wash:#EFF5F1; --paper:#FAFDFB; --hover:#E3EEE7; --ink:#1E332A; --muted:#5F7C70; --accent:#2E9E76; --accent2:#2E9E76; --accent-soft:#DBF0E5; --good:#6FBE8E; --teal:#2E9E76; --warning:#CBA23E; --danger:#BD5B52; --line:rgba(46,90,70,.16); }
[data-theme="5"] { --bg:#EFEAF3; --wash:#F5F1F8; --paper:#FCFAFD; --hover:#ECE4F3; --ink:#2E263B; --muted:#7C6F8C; --accent:#7C5EC2; --accent2:#7C5EC2; --accent-soft:#E9E0F7; --good:#8F9F5B; --teal:#7C5EC2; --warning:#D2A23C; --danger:#B85D6C; --line:rgba(90,70,120,.16); }
::-webkit-scrollbar { width:10px; height:10px; }
::-webkit-scrollbar-track { background:var(--wash); }
::-webkit-scrollbar-thumb { background:var(--muted); border-radius:6px; border:2px solid var(--wash); }
::-webkit-scrollbar-thumb:hover { background:var(--accent); }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
html { overflow:hidden; }
body { margin:0; height:100dvh; max-width:100vw; overflow:hidden; display:flex; flex-direction:column; font:14px/1.4 Inter,Segoe UI,Arial,sans-serif; color:var(--ink); background:var(--bg); }
h1,h2,h3,p { margin:0; } h1 { font-size:17px; letter-spacing:-.03em; white-space:nowrap; } h2 { font-size:17px; } h3 { font-size:14px; }
header { display:flex; flex-wrap:wrap; gap:7px 12px; align-items:center; min-height:0; padding:2px 14px; border-bottom:1px solid var(--line); background:var(--wash); box-shadow:0 2px 10px rgba(38,54,66,.08); }
header > button { margin-left:auto; white-space:nowrap; }
nav { display:flex; gap:4px; max-width:100%; min-width:0; overflow-x:auto; white-space:nowrap; }
.nav-button,.secondary { background:var(--wash); color:var(--ink); border:1px solid var(--line); box-shadow:var(--shadow-sm); }
.nav-button.active { background:var(--accent-soft); color:var(--accent); border-color:var(--accent); }
#archive-deal { border:1px solid var(--danger); color:var(--danger); background:transparent; box-shadow:none; }
#archive-deal:hover:not(:disabled) { background:var(--danger); color:#fff; }
header .source-grid { margin-left:auto; }
.registry { min-height:0; display:flex; flex-direction:column; flex:1; background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:14px; box-shadow:var(--shadow); }
.registry-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.registry-toolbar h2 { margin-right:auto; }
.registry-warning { color:var(--warning); font-size:12px; padding:8px 0; }
.help-workspace { overflow:hidden; }
.help-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.help-heading h2 { font-size:22px; margin-top:2px; }
.help-tools { display:grid; grid-template-columns:minmax(260px,1fr) auto; gap:12px; align-items:center; margin:14px 0 12px; }
.help-tools input { margin:0; }
.help-categories { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:5px; }
.help-categories button { padding:6px 9px; font-size:11px; }
.help-categories button.active { color:#fff; background:var(--accent); border-color:var(--accent); box-shadow:var(--shadow-pressed); }
.help-results { min-height:0; overflow:auto; display:grid; align-content:start; gap:8px; padding:2px 4px 14px 0; }
.help-article { border:1px solid var(--line); border-radius:9px; background:var(--wash); box-shadow:var(--shadow-sm); overflow:hidden; }
.help-article summary { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 14px; cursor:pointer; list-style:none; }
.help-article summary::-webkit-details-marker { display:none; }
.help-article summary>span:first-child { display:grid; gap:2px; min-width:0; }
.help-article summary small { color:var(--accent); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.help-article summary strong { font-size:15px; }
.help-article summary em { color:var(--muted); font-size:11px; font-style:normal; }
.help-chevron { color:var(--accent); font-size:18px; transition:transform .15s ease; }
.help-article[open] .help-chevron { transform:rotate(180deg); }
.help-article-body { padding:0 16px 14px 34px; border-top:1px solid var(--line); }
.help-article-body ol { margin:12px 0; padding-left:20px; }
.help-article-body li { margin:7px 0; padding-left:3px; line-height:1.5; }
.help-important { padding:9px 11px; border-left:3px solid var(--warning); background:var(--paper); border-radius:5px; font-size:12px; }
.help-empty { color:var(--muted); padding:24px; text-align:center; }
@media(max-width:900px) { .help-tools { grid-template-columns:1fr; } .help-categories { justify-content:flex-start; } }
.table-scroll { overflow:auto; flex:1; min-height:0; }
.registry-row-actions { display:flex; flex-direction:column; align-items:stretch; gap:5px; min-width:128px; }
.registry-row-actions button { white-space:nowrap; }
.registry-row-actions .danger { border-color:#e5aaa4; color:var(--danger); background:#fff7f6; }
.registry-row-actions .danger:hover { border-color:var(--danger); background:#fde9e7; }
.party-deals { min-width:190px; }
.party-deals>summary { display:flex; flex-wrap:wrap; gap:5px; align-items:center; cursor:pointer; list-style:none; }
.party-deals>summary::-webkit-details-marker { display:none; }
.party-deals>summary::after { content:"▾"; margin-left:auto; color:var(--muted); font-size:11px; }
.party-deals[open]>summary::after { transform:rotate(180deg); }
.deal-count-chip { display:inline-flex; padding:3px 7px; border-radius:20px; font-size:10px; font-weight:700; white-space:nowrap; }
.deal-count-chip.active { color:#17633f; background:#e4f5eb; }
.deal-count-chip.inactive { color:#65717b; background:#edf0f2; }
.party-deal-list { display:grid; gap:4px; margin-top:7px; }
.party-deal-link { display:flex; flex-direction:column; align-items:flex-start; gap:2px; max-width:280px; padding:6px 8px; border:1px solid var(--line); border-radius:6px; background:var(--paper); color:var(--accent); text-align:left; font-size:11px; line-height:1.3; overflow-wrap:anywhere; }
.party-deal-link:hover { border-color:var(--accent); background:var(--hover); }
.party-deal-link small { color:var(--muted); font-size:9px; }
.party-deal-link.is-archived { color:#5d6870; background:var(--wash); }
#party-activity-dialog { width:min(820px,95vw); }
.party-activity-feed { display:grid; gap:8px; margin-top:16px; }
.party-interaction { padding:10px 12px; border:1px solid var(--line); border-radius:8px; background:var(--wash); }
.party-interaction>div { display:flex; justify-content:space-between; gap:12px; }
.party-interaction p { margin:6px 0; }
.party-interaction details summary { color:var(--accent); cursor:pointer; font-size:11px; }
.party-interaction-text { margin-top:7px; padding:8px; border-radius:6px; background:var(--paper); white-space:pre-wrap; overflow-wrap:anywhere; }
.party-interaction-deal { margin-top:7px; }
table { border-collapse:collapse; width:100%; font-size:12px; text-align:left; }
th { position:sticky; top:0; background:var(--wash); color:var(--muted); font-weight:600; }
td,th { padding:9px 10px; border-bottom:1px solid var(--line); vertical-align:top; }
td { white-space:pre-line; overflow-wrap:anywhere; min-width:130px; }
td small,.activity small { display:block; color:var(--muted); font-size:10px; margin-top:3px; }
dialog { width:min(660px,94vw); max-height:90dvh; overflow:auto; border:1px solid var(--line); border-radius:10px; padding:20px; color:var(--ink); background:var(--paper); }
.theme-swatch-row { gap:8px; flex-wrap:wrap; }
.theme-swatch-btn { width:64px; height:40px; border-radius:8px; padding:0; font-size:10px; font-weight:700; display:inline-flex; align-items:center; justify-content:center; border:2px solid transparent; color:#fff; text-shadow:0 1px 2px #0006; cursor:pointer; }
.theme-swatch-btn[data-theme-btn="1"] { background:linear-gradient(135deg,#F5F3EC 50%,#41AFA1 50%); color:#263642; text-shadow:none; }
.theme-swatch-btn[data-theme-btn="2"] { background:linear-gradient(135deg,#102631 50%,#32C6B0 50%); }
.theme-swatch-btn[data-theme-btn="3"] { background:linear-gradient(135deg,#F8F2E9 50%,#8D628F 50%); }
.theme-swatch-btn[data-theme-btn="4"] { background:linear-gradient(135deg,#EFF5F1 50%,#2E9E76 50%); }
.theme-swatch-btn[data-theme-btn="5"] { background:linear-gradient(135deg,#F5F1F8 50%,#7C5EC2 50%); }
.theme-swatch-btn.active { border-color:var(--ink); box-shadow:0 0 0 2px var(--paper),0 0 0 4px var(--ink); }
dialog::backdrop { background:#17203366; }
.person-fields { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:12px 0; }
#person-dialog { max-height:96dvh; }
.person-fields label,.deal-links label { font-size:12px; color:var(--muted); display:grid; gap:5px; min-width:0; }
.check-label { display:flex !important; align-items:center; }
.check-label input { width:auto; margin:0; }
.form-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:14px; font-size:12px; }
.deal-links { display:grid; grid-template-columns:1fr 1.4fr auto; align-items:end; gap:10px; }
#deal-party-fields { min-width:0; padding:0; margin:0; border:0; }
.registry-filters { display:flex; align-items:end; gap:14px; margin:10px 0; }
.registry-filters > input { flex:1; margin:0; }
.registry-filters label { min-width:220px; max-width:45%; font-size:11px; color:var(--muted); }
.registry-filters select { display:block; }
.party-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:12px 0 6px; }
#deal-contact-rows { max-height:320px; overflow:auto; }
.deal-contact-entry { display:grid; grid-template-columns:minmax(140px,1.15fr) minmax(160px,1fr) auto auto; align-items:center; gap:12px; padding:8px 0; border-bottom:1px solid var(--line); }
.party-person { min-width:0; font-size:12px; overflow-wrap:anywhere; }
.party-person small { display:block; color:var(--muted); font-size:11px; margin-top:3px; }
.party-role { display:grid; color:var(--muted); font-size:11px; }
.party-role input { margin:4px 0 0; }
.deal-contact-entry .check-label { font-size:11px; white-space:nowrap; }
.party-actions { display:flex; gap:4px; }
.party-actions button { font-size:10px; padding:5px 6px; }
.party-add { display:grid; grid-template-columns:1fr 1.2fr auto; gap:8px; align-items:center; margin-top:8px; }
.party-add input { margin:0; }
.organization-contact-summary { display:flex; justify-content:space-between; gap:12px; padding:7px 0; border-bottom:1px solid var(--line); font-size:12px; }
@media(max-width:1100px) { .deal-contact-entry { grid-template-columns:1fr 1fr; } .party-actions { justify-content:flex-end; } .party-add { grid-template-columns:1fr auto; } .party-add input { grid-column:1 / -1; } }
@media(max-width:720px) { .registry-filters { align-items:stretch; flex-direction:column; } .registry-filters label { max-width:none; } .deal-contact-entry { grid-template-columns:1fr; } .party-actions { justify-content:flex-start; } }
.local-hint { font-size:11px; margin:6px 0 12px; }
.contact-preview { display:flex; flex-wrap:wrap; gap:6px 12px; padding:10px; border:1px solid var(--line); border-radius:6px; margin-bottom:14px; font-size:12px; }
.contact-preview span { overflow-wrap:anywhere; }
#deal-history { margin-top:18px; }
.activity { border-bottom:1px solid var(--line); padding:10px 0; }
.activity summary { cursor:pointer; font-size:12px; }
.activity p { white-space:pre-wrap; overflow-wrap:anywhere; font-size:12px; margin-top:10px; }
@media(max-width:1150px) { header { flex-wrap:wrap; gap:6px 12px; } header .source-grid { order:4; width:100%; } }
@media(max-width:800px) { .deal-links { grid-template-columns:1fr; } .person-fields { grid-template-columns:1fr; } }
.eyebrow { color:var(--accent); font-size:10px; font-weight:800; letter-spacing:.07em; }
.muted { color:var(--muted); }
.auth-panel { display:none; max-width:480px; width:calc(100% - 32px); margin:8vh auto; padding:24px; background:white; border:1px solid var(--line); border-radius:10px; }
.auth-panel h2 { margin:15px 0 10px; }
.auth-panel p { font-size:13px; line-height:1.5; margin:10px 0; }
.auth-panel label { display:block; font-size:13px; margin-top:12px; }
.auth-panel input { margin-top:5px; }
.security-panel { border:1px solid var(--line); border-radius:10px; padding:14px; margin:12px 0; background:#f8fafc; }
.security-panel h3 { margin:0 0 6px; }
.security-panel label { display:block; margin:10px 0; font-size:12px; }
.security-panel select,.security-panel input { margin-top:5px; }
body.auth-locked > header, body.auth-locked > main { display:none; }
body.auth-locked > .auth-panel { display:block; }
[hidden] { display:none !important; }
#user-bar { display:flex; align-items:center; gap:7px; font-size:11px; }
#user-bar button { font-size:10px; }
.account-funnels { display:grid; gap:10px; margin:12px 0; font-size:13px; }
.grant-row { display:grid; grid-template-columns:minmax(110px,1fr) repeat(4,auto); gap:12px; align-items:center; }
.recovery-admin { margin-top:22px; border-top:1px solid var(--line); padding-top:14px; }
.recovery-admin summary,.workflow-panel summary { cursor:pointer; font-size:13px; font-weight:600; }
.workflow-panel { margin:0 0 12px; padding:9px; background:#f6f8fc; border-radius:6px; }
.workflow-panel fieldset { border:0; padding:0; margin:0; min-width:0; }
.workflow-panel .person-fields { margin-bottom:10px; }
.workflow-panel #follow-bitrix { margin-top:8px; }
.workflow-inline-form fieldset { display:flex; flex-wrap:wrap; align-items:center; gap:6px 8px; }
.workflow-inline-form select { flex:1 1 120px; min-width:0; font-size:12px; padding:4px 6px; border:1px solid #c7d2e0; border-radius:5px; background:#fff; color:#28414f; }
.workflow-panel-highlight { outline:2px solid #2f6feb; outline-offset:2px; transition:outline-color .2s; }
.link-button { background:none; border:0; padding:0; margin:0; color:#2f6feb; text-decoration:underline; cursor:pointer; font:inherit; text-align:left; }
.link-button:hover { color:#1b4fc4; }
.links-card { display:grid; gap:0; }
.link-row { display:flex; flex-wrap:wrap; align-items:center; gap:6px 8px; min-width:0; padding:8px 2px; border-bottom:1px solid #eef1f4; }
.links-card>div:last-child .link-row:last-child,.link-row:last-child { border-bottom:0; }
.link-label { flex:0 1 auto; min-width:0; color:var(--muted); font-size:11px; }
.link-value { flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; font-weight:600; }
.link-button-outline { flex:0 0 auto; white-space:nowrap; padding:4px 9px; font-size:11px; border:1px solid #c7d2e0; border-radius:5px; background:#fff; color:#28414f; cursor:pointer; }
.link-button-outline:hover { background:#f2f6fa; }
.icon-button-outline { flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; padding:0; border:1px solid #c7d2e0; border-radius:5px; background:#fff; color:#65758b; cursor:pointer; }
.icon-button-outline:hover { background:#f2f6fa; color:#28414f; }
.link-button-primary { border-color:#0c9aa6; background:#0c9aa6; color:#fff; }
.link-button-primary:hover { background:#0a838d; }
.link-row select { flex:1 1 120px; min-width:0; font-size:12px; padding:4px 6px; border:1px solid #c7d2e0; border-radius:5px; background:#fff; color:#28414f; }
.contact-summary-card { padding:8px 2px 10px; font-size:12px; }
.contact-summary-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:6px 8px; margin-bottom:3px; }
.contact-summary-head strong { font-size:12px; }
.contact-summary-head .muted { font-size:11px; margin-right:auto; }
.contact-summary-card .contact-addresses { font-size:11px; line-height:1.5; overflow-wrap:anywhere; }
.messenger-chips { display:inline-flex; gap:4px; vertical-align:middle; }
.messenger-chip { display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; padding:0; border-radius:50%; border:1px solid #bfd2df; background:#eef5fa; color:#154869; text-decoration:none; cursor:pointer; }
.messenger-chip.preferred-contact { border-color:#0c9aa6; color:#0c9aa6; background:#e6f7f8; }
.messenger-chip-empty { background:#f3f5f7; color:#9aa8b4; border-style:dashed; }
.messenger-chip-label { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
@media(max-width:600px) { .grant-row { grid-template-columns:1fr 1fr; } .grant-row > span { grid-column:1/-1; } }
.mail-profile { margin:0 0 8px; }
.mail-profile strong { display:block; }
.staff-account { display:block; margin-top:5px; }
.funnel-mail-summary { font-size:11px; margin:8px 0; padding:8px; background:var(--wash); border-radius:5px; }
.mail-archive-filters { display:grid; grid-template-columns:repeat(5,minmax(140px,1fr)); gap:8px; margin:12px 0; }
.mail-archive-filters label { display:flex; flex-direction:column; gap:4px; }
@media(max-width:720px) { .mail-archive-filters { grid-template-columns:1fr; } }
.read-only-user #new-person,.read-only-user .edit-person,.read-only-user #save-links,.read-only-user #summarize,.read-only-user #new-deal-contact,.read-only-user #new-deal-organization,.read-only-user .party-add,.read-only-user .party-actions { display:none; }
button { border:0; border-radius:8px; padding:7px 10px; color:#fff; background:var(--accent); font:600 12px/1.4 Segoe UI,Arial,sans-serif; cursor:pointer; box-shadow:var(--shadow-sm); transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease; }
button:hover:not(:disabled) { transform:translateY(-1px); box-shadow:0 4px 10px rgba(38,54,66,.2),inset 0 1px 0 #ffffffb0; }
button:active:not(:disabled) { transform:translateY(1px); box-shadow:var(--shadow-pressed); }
button:disabled { opacity:.55; cursor:wait; box-shadow:none; transform:none; }
button:focus-visible,input:focus-visible,select:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.nav-button:hover:not(:disabled),.secondary:hover:not(:disabled) { background:var(--hover); }
.nav-button:active:not(:disabled),.secondary:active:not(:disabled) { box-shadow:var(--shadow-pressed); color:var(--ink); }
.secondary { color:var(--ink); }
/* Тема 2 (тёмная технологичная, промпт Олега 26.09.2026): плоский индустриальный стиль кнопок --
   вместо "тактильного" приподнимания (Тема 1) кнопки при наведении/нажатии только меняют яркость,
   без сдвига и объёмных теней; второстепенные кнопки получают акцентную рамку при наведении. */
[data-theme="2"] button:hover:not(:disabled) { transform:none; filter:brightness(1.15); box-shadow:var(--shadow-sm); }
[data-theme="2"] button:active:not(:disabled) { transform:none; filter:brightness(.82); box-shadow:var(--shadow-pressed); }
[data-theme="2"] .nav-button:hover:not(:disabled),[data-theme="2"] .secondary:hover:not(:disabled) { border-color:var(--accent2); }
[data-theme="2"] #archive-deal:hover:not(:disabled) { filter:none; }
.source-grid { display:flex; gap:14px; flex-wrap:wrap; }
.source { display:inline-flex; align-items:center; gap:5px; color:var(--muted); font-size:11px; white-space:nowrap; }
.source::before { content:""; width:6px; height:6px; border-radius:50%; background:#b9c0cc; }
.source.ready::before { background:var(--good); }
.source.cached::before { background:#3c74d8; }
main { flex:1; min-height:0; min-width:0; overflow:hidden; display:flex; flex-direction:column; padding:11px clamp(10px,1.1vw,18px) 14px; }
.notice { padding:4px 8px 8px; }
.workspace { flex:1; width:100%; max-width:100%; min-height:0; min-width:0; overflow:hidden; display:grid; grid-template-columns:clamp(205px,14vw,235px) minmax(0,1fr); gap:12px; }
.workspace > aside,.detail { border:1px solid var(--line); border-radius:12px; background:var(--paper); box-shadow:var(--shadow); min-width:0; min-height:0; }
.workspace > aside { display:flex; flex-direction:column; padding:12px 10px 8px; overflow:hidden; }
.filters { display:grid; gap:4px; margin-bottom:6px; }
.filters label { font-size:11px; color:var(--muted); font-weight:600; }
.filters label:not(:first-child) { margin-top:3px; }
input,select { width:100%; min-width:0; padding:6px 8px; border:1px solid var(--line); border-radius:6px; font:inherit; font-size:13px; background:var(--wash); color:var(--ink); box-shadow:var(--shadow-inset); transition:box-shadow .15s ease; }
input:focus-visible,select:focus-visible { box-shadow:var(--shadow-inset),0 0 0 3px var(--accent-soft); }
input { margin:7px 0 5px; }
.section-heading { display:flex; justify-content:space-between; gap:10px; align-items:center; }
.section-heading h2 { font-size:13px; }
.badge { background:#eaf0ff; color:var(--accent); border-radius:20px; padding:1px 7px; font-size:11px; font-weight:600; }
.deal-list { flex:1; min-height:0; overflow:auto; }
.deal-row { width:100%; display:block; text-align:left; background:transparent; color:var(--ink); padding:7px 8px; border-radius:4px; border-bottom:1px solid var(--line); }
.deal-row:hover { background:var(--hover); }
.deal-row.selected { background:var(--accent-soft); box-shadow:inset 3px 0 var(--accent); }
.deal-title { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; font-size:12px; font-weight:600; overflow-wrap:anywhere; }
.deal-meta { display:block; font-size:11px; font-weight:400; color:var(--muted); margin-top:2px; }
.list-empty { padding:14px 8px; color:var(--muted); font-size:12px; }
.detail { width:100%; max-width:100%; padding:14px clamp(13px,1.2vw,20px) 20px; overflow-y:auto; overflow-x:hidden; }
.detail.empty { display:grid; place-items:center; color:var(--muted); }
.detail h2 { margin-top:3px; overflow-wrap:anywhere; }
.detail dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px 12px; margin:8px 0; padding-bottom:8px; border-bottom:1px solid var(--line); }
.detail dt { color:var(--muted); font-size:11px; }
.detail dd { margin:3px 0 0; font-weight:600; font-size:13px; overflow-wrap:anywhere; }
.deal-title-row { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:3px 3px 13px; }
.deal-title-row h2 { font-size:22px; line-height:1.18; letter-spacing:-.02em; }
.deal-title-row #archive-deal { color:#7b2f2a; background:#fff2f0; }
.deal-title-number { color:var(--accent); font-weight:800; margin-right:2px; }
.deal-situation-card { min-width:0; margin:0 0 14px; border:1px solid #c9dce5; border-top:4px solid var(--teal); border-radius:12px; padding:17px clamp(15px,1.25vw,22px) 18px; background:linear-gradient(120deg,#f0fbfb,#fbfdff 55%,#f2f7fb); box-shadow:0 8px 22px #17334d12; }
.deal-situation-card h3 { margin:3px 0 0; font-size:23px; line-height:1.15; color:#17364e; letter-spacing:-.02em; }
.situation-kicker { margin:0; font-size:10px; font-weight:700; letter-spacing:.09em; color:#167d83; }
.situation-body-grid { display:grid; grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr); gap:11px; margin-top:13px; }
.situation-latest,.situation-history { min-width:0; padding:14px 15px; border-radius:9px; background:#ffffffdf; border:1px solid #dfe8ef; }
.situation-label { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; align-items:baseline; }
.situation-label strong,.situation-history>strong { font-size:15px; color:#17364e; }
.situation-label span { color:var(--muted); font-size:11px; }
.deal-situation-card p { margin:8px 0 0; font-size:15px; line-height:1.55; white-space:pre-wrap; overflow-wrap:anywhere; }
.situation-history #deal-essence { font-size:17px; font-weight:650; line-height:1.5; color:#18344b; }
.situation-latest details { margin-top:8px; }
.situation-latest summary { cursor:pointer; color:var(--accent); font-size:12px; }
.situation-latest details p { max-height:260px; overflow:auto; }
.brief-actions { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.brief-actions .deal-tasks-summary { margin-right:auto; }
.brief-actions button { padding:6px 9px; font-size:11px; }
.deal-situation-card textarea { width:100%; margin-top:8px; border:1px solid var(--line); border-radius:6px; padding:9px; font:15px/1.5 Segoe UI,Arial,sans-serif; resize:vertical; }
.situation-question { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:end; margin-top:12px; }
.situation-question label { display:grid; gap:5px; color:#31516b; font-size:12px; font-weight:600; }
.situation-question input { margin:0; padding:9px 10px; font-size:14px; }
.situation-question button { min-height:36px; }
.situation-question p { grid-column:1/-1; margin:0; padding:0 2px; font-size:14px; font-weight:500; }
.deal-header-ai { flex-wrap:nowrap; }
.situation-mini-btn { position:relative; display:inline-flex; align-items:center; }
.situation-mini-btn-label { display:inline-flex; align-items:center; gap:4px; height:30px; padding:0 9px; font-size:11px; white-space:nowrap; }
.situation-mini-btn:hover .situation-mini-btn-label,.situation-mini-btn:focus-within .situation-mini-btn-label { background:#f0fbfb; border-color:#8fd2d6; }
.situation-mini-popover { position:absolute; z-index:50; top:calc(100% + 8px); left:0; right:auto; width:300px; max-width:78vw; max-height:60vh; overflow:auto; background:#fff; border:1px solid var(--line); border-radius:9px; box-shadow:var(--shadow); padding:12px 13px; opacity:0; visibility:hidden; transform:translateY(-4px); transition:opacity .12s,transform .12s; }
.situation-mini-btn:hover .situation-mini-popover,.situation-mini-btn:focus-within .situation-mini-popover { opacity:1; visibility:visible; transform:translateY(0); }
.situation-mini-popover strong { display:block; font-size:12px; color:#17364e; margin-bottom:2px; }
.situation-mini-popover>small { color:var(--muted); font-size:10px; display:block; margin-bottom:6px; }
.situation-mini-popover p { margin:0; font-size:12px; line-height:1.5; white-space:pre-wrap; overflow-wrap:anywhere; }
.situation-mini-popover-wide { width:380px; max-width:86vw; }
.situation-mini-btn-question .situation-mini-popover { left:auto; right:0; }
.situation-mini-popover-head { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; margin-bottom:4px; }
.situation-mini-popover-actions { display:flex; gap:4px; flex-wrap:wrap; }
.situation-mini-popover-actions button { font-size:10px; padding:4px 7px; }
.situation-mini-popover textarea { width:100%; margin-top:6px; font:12px/1.5 Segoe UI,Arial,sans-serif; padding:6px; border:1px solid var(--line); border-radius:5px; resize:vertical; }
.situation-mini-btn-question { height:30px; }
.situation-mini-question { display:flex; gap:4px; align-items:center; height:30px; border:1px solid #c7d2e0; border-radius:6px; padding:0 4px 0 8px; background:#fff; }
.situation-mini-question input { width:110px; padding:0; font-size:11px; border:0; outline:0; background:transparent; height:100%; }
.situation-mini-question button { padding:0 8px; height:23px; border-radius:5px; min-height:0; }
.situation-mini-popover .muted { color:var(--muted); }
.situation-mini-extra { display:contents; }
.situation-mini-extra:empty { display:none; }
.situation-mini-extra button { display:inline-flex; align-items:center; gap:4px; height:30px; padding:0 9px; font-size:11px; white-space:nowrap; }
@media(max-width:900px) { .deal-header-ai { flex-wrap:wrap; } .situation-mini-question input { width:90px; } }
@media(max-width:620px) { .situation-mini-popover { right:auto; left:0; } }
.deal-layout { display:grid; grid-template-columns:minmax(0,1fr) clamp(235px,18vw,285px); gap:14px; align-items:start; }
.deal-workspace { min-width:0; }
.deal-side-panel { min-width:0; display:grid; gap:10px; position:sticky; top:0; max-height:calc(100dvh - 90px); overflow-y:auto; }
.deal-key-facts { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.deal-fact { display:flex; align-items:flex-start; gap:7px; min-width:0; padding:9px; background:linear-gradient(145deg,#f7f9fc,#f2f6fa); border:1px solid #e3eaf1; border-radius:8px; }
.deal-fact:last-child { grid-column:1/-1; }
.deal-fact > span { color:#627693; font-size:15px; line-height:1; }
.deal-fact small { display:block; color:var(--muted); font-size:10px; }
.deal-fact strong { display:block; margin-top:2px; font-size:12px; line-height:1.25; overflow-wrap:anywhere; }
.deal-side-panel .workflow-panel { margin:0; }
.deal-side-panel .person-fields { grid-template-columns:1fr; margin:10px 0; }
.deal-side-panel .ai-card { padding:10px; }
.deal-side-panel .ai-card p { margin-top:6px; font-size:11px; max-height:140px; overflow:auto; }
.deal-side-panel #deal-people { min-width:0; padding:10px; border:1px solid #e1e8ef; border-radius:9px; background:#fbfcfe; }
.deal-side-panel .deal-links,.deal-side-panel .deal-contact-entry,.deal-side-panel .party-add { grid-template-columns:1fr; }
.deal-side-panel .party-actions { justify-content:flex-start; }
.deal-side-panel #deal-contact-rows { max-height:260px; }
.create-deal { white-space:nowrap; padding:5px 7px; font-size:11px; }
#deal-create-dialog { width:min(680px,94vw); }
#deal-create-dialog label { display:grid; gap:4px; font-size:12px; color:var(--muted); margin:9px 0; }
.entity-search { position:relative; flex:1 1 170px; min-width:0; }
.entity-search>input[type="search"] { width:100%; margin:0; padding-right:28px; background:#fff; }
.entity-search-options { position:absolute; z-index:120; top:calc(100% + 4px); left:0; right:0; max-height:240px; overflow:auto; padding:4px; border:1px solid #b9c9d8; border-radius:7px; background:#fff; box-shadow:0 12px 28px #1c38502b; }
.entity-search-option { display:grid; width:100%; gap:2px; padding:8px 9px; border:0; border-radius:5px; background:#fff; color:var(--ink); text-align:left; font:inherit; cursor:pointer; }
.entity-search-option:hover,.entity-search-option[aria-selected="true"] { background:#e7f5f6; color:#075f68; }
.entity-search-option strong { font-size:12px; }
.entity-search-option small { color:var(--muted); font-size:10px; font-weight:400; white-space:normal; }
.entity-search-empty { display:block; padding:9px; color:var(--muted); font-size:11px; }
.work-toolbar { padding:10px 12px; background:linear-gradient(100deg,#edf4ff,#f8fbfe); border:1px solid #dbe7f3; border-radius:9px; box-shadow:0 4px 14px #294b7010; }
.work-toolbar h3 { font-size:17px; color:#17364e; }
.work-toolbar button:first-of-type { white-space:nowrap; }
.ai-card { padding:13px 14px; border-radius:6px; background:#f0f4ff; }
.ai-card p { white-space:pre-wrap; margin-top:10px; overflow-wrap:anywhere; }
.ai-card button { padding:5px 8px; font-size:11px; }
.error { color:var(--danger); white-space:pre-wrap; }
.save-confirmation { margin:6px 0 10px; padding:9px 11px; border:1px solid #a8d9c2; border-radius:8px; background:#edfdf4; color:#087443; font-size:12px; font-weight:700; }
.capture-toolbar,.capture-links { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:6px 0; }
.capture-toolbar button,.capture-links button { padding:5px 8px; font-size:11px; }
.capture-toolbar small { color:var(--muted); font-size:10px; }
#capture-dialog { width:min(760px,96vw); }
#capture-body { display:grid; gap:10px; margin-top:12px; }
#capture-body label { display:grid; gap:4px; color:var(--muted); font-size:12px; }
#capture-body textarea { width:100%; border:1px solid var(--line); border-radius:6px; padding:9px; font:inherit; color:var(--ink); resize:vertical; }
#capture-body audio { width:100%; }
.capture-cautions { padding:9px; background:#fff9e8; border-radius:6px; white-space:pre-wrap; }
.capture-drafts { display:grid; gap:6px; max-height:220px; overflow:auto; }
.desk-tabs { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 10px; padding-bottom:1px; }
.desk-tabs .active { background:var(--accent); color:white; }
.desk-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:10px 0; }
.desk-toolbar h3 { margin-right:auto; }
.desk-toolbar input { width:auto; flex:1; min-width:150px; }
.desk-toolbar select { width:auto; }
.desk-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(165px,1fr)); gap:10px; margin:8px 0; }
.desk-compose { padding:12px; border:1px solid var(--line); border-radius:9px; margin:12px 0; background:#f8faff; }
.quick-intake { margin:10px 0 12px; padding:13px 14px; border-color:#c9dbe9; border-left:4px solid var(--accent); background:linear-gradient(105deg,#f7fbff,#fff); box-shadow:0 5px 16px #203a550c; }
.quick-intake-heading,.quick-intake-heading>div,.quick-intake-footer { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.quick-intake-heading>div { justify-content:flex-start; min-width:0; }
.quick-intake-heading strong { display:block; color:#163653; font-size:15px; }
.quick-intake-heading small { display:block; margin-top:2px; color:var(--muted); font-size:11px; }
.quick-intake-icon { display:grid; place-items:center; width:30px; height:30px; flex:0 0 30px; border-radius:9px; background:var(--accent-soft); color:var(--accent); font-size:19px; font-weight:700; }
.quick-channel { width:auto; flex:0 0 auto; margin:0 !important; padding:4px 7px !important; font-size:11px !important; }
.quick-file { width:auto; flex:0 1 230px; margin:0 !important; color:#49627d !important; font-size:11px !important; }
.quick-file input { margin:3px 0 0; padding:4px; font-size:11px; }
.quick-text { margin:9px 0 0 !important; }
.quick-text textarea { min-height:72px; padding:10px 12px !important; font-size:14px !important; background:#fff; }
.quick-intake-footer { align-items:center; margin-top:8px; }
.quick-intake-footer .muted { font-size:10px; }
.quick-intake-footer button { white-space:nowrap; }
.timeline-tools { display:grid; grid-template-columns:minmax(0,1fr); padding:1px 2px 3px; }
.timeline-tools .desk-toolbar { margin:5px 0 2px; }
.note-composer { margin:7px 0 10px; padding:8px 10px; border:1px solid #e1e7ee; border-radius:8px; background:#fbfcfd; }
.note-composer>summary { cursor:pointer; color:#4c6077; font-size:12px; font-weight:600; }
.note-composer .desk-compose { margin-bottom:2px; }
.sr-only { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
.entity-help { margin:5px 0 10px; color:var(--muted); font-size:11px; line-height:1.45; }
.control-help { position:fixed; z-index:10000; width:max-content; max-width:min(330px,calc(100vw - 16px)); padding:6px 9px; border:1px solid #b8c6d5; border-radius:5px; background:#f7f9fc; color:#344457; box-shadow:0 2px 7px #10243b20; font:11px/1.4 'Segoe UI',sans-serif; pointer-events:none; }
.message-files { padding:6px 0; border-top:1px solid var(--line); }
.message-files .file-download { display:inline-block; margin:3px 6px 3px 0; }
.client-message .message-files { padding:4px 0; }
.file-chip { display:inline-flex; align-items:center; gap:6px; max-width:280px; margin:3px 6px 3px 0; padding:5px 11px 5px 5px; border:1px solid #d6e1e8; border-radius:14px; background:#eef2f5; color:#28414f; text-decoration:none; vertical-align:middle; position:relative; }
.file-chip:hover { border-color:#9fb6c4; background:#e4ebef; }
.file-chip-ext { flex:0 0 auto; padding:2px 6px; border-radius:5px; background:#fff; border:1px solid #d3dfe7; color:#5a7185; font-size:10px; font-weight:700; letter-spacing:.02em; text-transform:uppercase; }
.file-chip-name { flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; }
.file-chip-preview { display:none; position:absolute; left:0; bottom:calc(100% + 8px); z-index:60; padding:5px; background:#fff; border:1px solid #d3dfe7; border-radius:8px; box-shadow:0 8px 22px rgba(20,30,40,.2); pointer-events:none; }
.file-chip-preview img { display:block; max-width:240px; max-height:240px; border-radius:5px; }
.file-chip:hover .file-chip-preview { display:block; }
.message-attachments { margin:10px 0; border:1px solid var(--line); border-radius:6px; padding:7px 10px; }
.message-attachments legend { color:var(--muted); font-size:11px; padding:0 4px; }
.check-list { display:grid; gap:4px; margin:7px 0; }
.check-list .check-label { font-size:12px; }
.client-message { cursor:default; }
.sent-note { color:var(--muted); font-size:11px; }
.mail-subject { font-size:12px; font-weight:600; margin-top:2px; overflow-wrap:anywhere; }
#message-signature-preview { font-size:11px; line-height:1.5; }
.client-message .desk-toolbar { gap:4px; margin:6px 0 0; flex-wrap:nowrap; overflow-x:auto; }
.client-message .desk-toolbar button,.client-message .desk-toolbar .button-link { flex:0 0 auto; padding:3px 6px; font-size:9px; border-radius:5px; white-space:nowrap; }
.client-message p.pre-wrap { margin:4px 0; }
.client-message>small.muted { font-size:9px; }
#desk-root label,#desk-dialog label { display:grid; gap:4px; font-size:12px; margin:8px 0; color:var(--muted); }
#desk-root textarea,#desk-dialog textarea { width:100%; min-width:0; padding:8px; border:1px solid var(--line); border-radius:5px; font:13px/1.5 Segoe UI,Arial,sans-serif; resize:vertical; }
#desk-dialog fieldset { margin:0; padding:0; border:0; min-width:0; }
dialog:has(#task-edit) { padding:14px 16px; width:min(560px,92vw); }
#task-edit label { margin:5px 0; gap:2px; font-size:11px; }
#task-edit input,#task-edit select { padding:6px 8px; font-size:13px; height:32px; }
#task-edit textarea { padding:6px 8px; font-size:13px; }
#task-edit .desk-grid { gap:8px; margin:6px 0; }
#task-edit+p.error { margin-top:4px; }
#task-edit~h3.discussion-title { margin:12px 0 4px; font-size:13px; }
.desk-entry { border-bottom:1px solid var(--line); padding:12px 0; font-size:13px; }
.desk-entry summary { cursor:pointer; }
.desk-entry small,.desk-card small,.session-sources small { display:block; color:var(--muted); font-size:11px; margin:4px 0; }
.pre-wrap,.chat-question p,.chat-answer p { white-space:pre-wrap; overflow-wrap:anywhere; }
.desk-entry p { margin:9px 0; }
.desk-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:10px; }
.desk-card { display:flex; flex-direction:column; gap:7px; text-align:left; font-weight:400; padding:14px; border:1px solid var(--line); background:white; color:var(--ink); }
.desk-card:hover { border-color:var(--accent); }
.desk-card.overdue { border-color:#e4a2a2; background:#fff2f0; }
.desk-card.overdue strong,.desk-card.overdue span { color:#b42318; }
.desk-card.overdue:hover { border-color:#c9524a; }
@media (max-width:780px) { .situation-question { grid-template-columns:1fr; } }
.session-sources { max-height:230px; overflow:auto; border:1px solid var(--line); border-radius:6px; padding:8px; }
.session-sources .check-label { gap:10px; align-items:start; }
.inline-form { display:flex; gap:6px; flex-wrap:wrap; }
.discussion-title { margin-top:20px; margin-bottom:8px; }
.file-download { display:inline-block; margin:5px 0; color:var(--accent); }
.chat-turns { max-height:clamp(120px,calc(100dvh - 580px),400px); min-height:100px; overflow:auto; padding:4px; }
#desk-chat-form { position:sticky; bottom:-16px; background:white; z-index:1; }
.chat-turn { margin:0 0 18px; }
.chat-question { margin:0 0 8px 10%; padding:12px; border-radius:8px; background:#edf3ff; }
.chat-answer { margin-right:5%; padding:12px; background:#fafbfc; border:1px solid var(--line); border-radius:8px; }
.chat-answer small,.chat-question small { display:block; color:var(--muted); font-size:10px; margin:4px 0; }
.work-chat-feed { display:flex; flex-direction:column; gap:10px; padding:8px 2px 12px; overflow-y:auto; overflow-x:hidden; min-width:0; max-height:clamp(480px,calc(100dvh - 170px),1900px); scroll-behavior:smooth; }
#desk-panel.chat-fullscreen { position:fixed; inset:0; z-index:90; display:flex; flex-direction:column; padding:14px 18px; background:#fff; box-shadow:0 0 0 100vmax rgba(16,33,58,.35); }
#desk-panel.chat-fullscreen .work-toolbar { flex:0 0 auto; }
#desk-panel.chat-fullscreen #work-chat-fullscreen-toggle { margin-left:auto; }
#desk-panel.chat-fullscreen .work-chat-feed { flex:1; min-height:0; max-height:none; padding:12px 4px; }
#desk-panel.chat-fullscreen .work-chat-composer { flex:0 0 auto; }
.chat-bubble { position:relative; max-width:62%; padding:10px 12px; border-radius:14px; border:1px solid var(--line); background:#fafbfc; }
.chat-bubble.ours { align-self:flex-end; margin-left:auto; margin-right:0; background:#dcf3ea; border-color:#b9e5d3; border-bottom-right-radius:4px; }
.chat-bubble.theirs { align-self:flex-start; margin-right:auto; margin-left:0; background:#eef1fb; border-color:#d7ddf5; border-bottom-left-radius:4px; }
@media(max-width:900px) { .chat-bubble { max-width:78%; } }
.chat-bubble.ours::after { content:""; position:absolute; right:-7px; bottom:0; width:14px; height:14px; background:#dcf3ea; border-right:1px solid #b9e5d3; border-bottom:1px solid #b9e5d3; border-bottom-left-radius:3px; clip-path:polygon(0 0,100% 100%,0 100%); }
.chat-bubble.ours.client-message::after { width:24px; height:24px; right:-12px; }
.chat-bubble.theirs::after { content:""; position:absolute; left:-7px; bottom:0; width:14px; height:14px; background:#eef1fb; border-left:1px solid #d7ddf5; border-bottom:1px solid #d7ddf5; border-bottom-right-radius:3px; clip-path:polygon(100% 0,100% 100%,0 100%); }
.chat-ai-summary { display:flex; align-items:flex-start; gap:6px; margin:6px 0; padding:6px 8px; border-radius:6px; background:#f4effc; color:#4a3a75; font-size:11px; }
.chat-bubble-head { display:flex; flex-wrap:nowrap; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:2px; }
.chat-bubble-head strong { flex:0 0 auto; font-size:11px; }
.chat-bubble-head small { color:var(--muted); font-size:9px; white-space:nowrap; }
.chat-bubble-head .chat-bubble-to { flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; }
.chat-bubble-head .chat-bubble-date { flex:0 0 auto; }
.chat-bubble.ours.client-message { min-width:min(620px,92%); max-width:92%; align-self:flex-end; margin-left:auto; margin-right:12px; }
.chat-bubble.client-message p.pre-wrap { font-size:15px; }
.chat-bubble p { margin:4px 0; font-size:13px; }
.chat-bubble>small { display:block; color:var(--muted); font-size:10px; margin:2px 0; }
.chat-divider { align-self:center; display:flex; flex-direction:column; align-items:center; gap:2px; margin:6px 0; padding:4px 14px; border-radius:20px; background:#eef1f4; color:#405468; font-size:11px; font-weight:700; text-align:center; }
.chat-divider small { color:var(--muted); font-weight:400; font-size:10px; }
.chat-note { align-self:center; max-width:94%; width:100%; padding:6px 10px; border-radius:7px; background:#fbfcfd; border:1px dashed #dfe6ec; font-size:11px; color:#61768a; }
.chat-note summary { cursor:pointer; }
.chat-note p { margin:6px 0; font-size:12px; color:var(--ink); }
.chat-ai { align-self:center; max-width:94%; width:100%; padding:8px 12px; border-radius:9px; background:#f4effc; border:1px solid #ded0f5; font-size:12px; color:#4a3a75; }
.chat-ai summary { cursor:pointer; display:flex; align-items:center; gap:6px; font-weight:600; }
.chat-ai summary small { margin-left:auto; color:#7c6a9c; font-weight:400; font-size:10px; }
.chat-ai p { margin:6px 0; font-size:12px; }
.work-chat-composer { display:flex; flex-direction:column; gap:6px; margin-top:10px; padding-top:8px; border-top:1px solid var(--line); }
.work-chat-composer>details { padding:6px 10px; border:1px solid #e1e7ee; border-radius:8px; background:#fbfcfd; }
.work-chat-composer>details>summary { cursor:pointer; font-size:12px; font-weight:600; color:#4c6077; display:flex; align-items:center; gap:6px; list-style:none; }
.work-chat-composer>details>summary::-webkit-details-marker { display:none; }
.work-chat-composer>details>summary::after { content:"▾"; margin-left:auto; color:var(--muted); font-size:11px; transition:transform .15s ease; }
.work-chat-composer>details[open]>summary::after { transform:rotate(180deg); }
.source-link { font-size:10px; padding:3px 6px; margin:6px 3px 3px 0; }
.source-original { white-space:pre-wrap; overflow-wrap:anywhere; font:13px/1.6 Segoe UI,Arial,sans-serif; max-height:65dvh; overflow:auto; }
.insight-strip { display:grid; grid-template-columns:1fr 1fr; gap:10px; background:linear-gradient(105deg,#eef5ff,#f7fbff); border:1px solid #dbe7f7; border-left:4px solid var(--accent); border-radius:7px; padding:11px 12px; font-size:12px; }
.insight-strip small,.insight-strip > div:last-child { grid-column:1/-1; color:var(--muted); }
.insight-empty { font-size:12px; color:#526780; padding:10px 12px; background:#f6f8fc; border:1px solid #e7ecf3; border-left:4px solid #9ab4d1; border-radius:7px; }
.intake-card { grid-column:1 / -1; padding:12px; border:1px solid var(--line); border-radius:8px; background:#fff; }
.intake-card .desk-toolbar { margin-top:0; }
.intake-analysis { display:grid; gap:8px; margin-top:10px; }
.intake-analysis h4 { margin-top:4px; font-size:12px; }
.intake-analysis ul { margin:0; padding-left:19px; }
.intake-proposals { display:grid; gap:5px; }
.intake-proposals .check-label,.intake-analysis > .check-label { align-items:flex-start; gap:8px; padding:7px; border:1px solid var(--line); border-radius:6px; }
.intake-proposals .check-label span,.intake-analysis > .check-label span { display:grid; gap:2px; min-width:0; }
.intake-task-fields { margin:0 0 4px; }
@media(max-width:700px) { .insight-strip { grid-template-columns:1fr; } .desk-cards { grid-template-columns:1fr; } }
@media(max-width:1000px) { .source-grid { gap:8px; } .source { font-size:10px; } .detail dl { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:900px) { .situation-body-grid { grid-template-columns:1fr; } }
@media(max-width:840px) { .deal-layout { grid-template-columns:minmax(0,1fr); } .deal-side-panel { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); max-height:none; overflow-y:visible; } .deal-key-facts,.deal-side-panel #deal-people,.deal-side-panel .ai-card { grid-column:1/-1; } }
@media(max-width:720px) { header { gap:6px 10px; } .source-grid { order:3; width:100%; } main { padding:8px; } .workspace { grid-template-columns:190px minmax(0,1fr); gap:8px; } .detail { padding:11px; } .detail dl { grid-template-columns:1fr; } .ai-card .section-heading { flex-wrap:wrap; } .quick-intake-heading,.quick-intake-footer { align-items:stretch; flex-direction:column; } .quick-file { width:100%; flex:auto; } }
@media(max-width:620px) { html { overflow:auto; } body { height:auto; min-height:100dvh; overflow:auto; } .workspace { grid-template-columns:1fr; overflow:visible; } .workspace > aside { max-height:42dvh; } .detail { min-height:55dvh; } .deal-side-panel { grid-template-columns:1fr; } }
/* Unified dictation: compact trigger shown on hover, keyboard focus or touch. */
.dictation-field { display: inline-block; position: relative; width: 100%; min-width: 0; vertical-align: middle; }
.dictation-field > input, .dictation-field > textarea { width: 100%; box-sizing: border-box; padding-right: 2.7rem; }
.dictation-field > .field-mic { position: absolute; top: 3px; right: 3px; width: 2rem; height: 1.85rem; min-width: 0; padding: 0; font-size: 1rem; line-height: 1; opacity: 0; pointer-events: none; }
.dictation-field:hover > .field-mic, .dictation-field:focus-within > .field-mic { opacity: 1; pointer-events: auto; }
.dictation-field > .field-mic:focus-visible { opacity: 1; outline: 2px solid #1670cc; outline-offset: 1px; }
.dictation-field > .field-mic:disabled { cursor: not-allowed; }
.dictation-field > .field-mic.field-mic-recording, .dictation-field > .field-mic.field-mic-busy { opacity: 1; pointer-events: auto; }
.field-mic-recording { background: #ffdede; color: #b3261e; animation: field-mic-pulse 1.1s ease-in-out infinite; }
@keyframes field-mic-pulse { 0%,100% { box-shadow: 0 0 0 0 #ffb3b344; } 50% { box-shadow: 0 0 0 5px #ffb3b344; } }
@media (hover: none) { .dictation-field > .field-mic { opacity: 1; pointer-events: auto; } }
.contact-link { color: #0964ac; text-decoration: underline; text-underline-offset: 2px; overflow-wrap: anywhere; }
.contact-addresses { display: block; margin-top: 3px; }
.preferred-contact { font-weight: 650; color: #146540; }
.communication-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin: 10px 0; }
.button-link { display: inline-block; padding: 7px 11px; border-radius: 6px; border: 1px solid #bfd2df; text-decoration: none; background: #eef5fa; color: #154869; }
#communication-dialog { width: min(720px, 94vw); max-height: 90vh; overflow: auto; }
#communication-body { display: grid; gap: 9px; }
#communication-body p { margin: 4px 0; }
#communication-body li { margin-bottom: 6px; }
#communication-body label { display: grid; gap: 5px; }
#user-bar { flex-wrap: wrap; }
/* Direct mail is a compact, isolated admin workspace. */
.mail-toolbar { display:flex; gap:12px; align-items:end; flex-wrap:wrap; margin-bottom:12px; }
.mail-toolbar label { min-width:270px; }
.mail-columns { display:grid; grid-template-columns:minmax(240px,30%) minmax(0,1fr); gap:18px; margin-top:12px; }
.mail-columns > section, .mail-columns > article { min-width:0; }
.mail-row { display:block; text-align:left; width:100%; margin-bottom:6px; overflow-wrap:anywhere; }
.mail-row small { display:block; font-weight:normal; }
.mail-text { white-space:pre-wrap; overflow-wrap:anywhere; padding:12px; background:#f5f7fa; border-radius:6px; max-height:55vh; overflow:auto; }
#mail-message { overflow-wrap:anywhere; }
#mail-workspace { overflow:auto; }
#mail-workspace label { display:grid; gap:5px; margin:8px 0; }
#mail-workspace .check-label { display:flex; }
#mail-workspace p, #mail-workspace hr { margin:8px 0; }
#mail-connection { max-width:760px; }
#mail-connection input { max-width:480px; }
@media(max-width:800px) { .mail-columns { grid-template-columns:1fr; } }
/* Brand navigation uses the same view switch as the Deals menu. */
.crm-home { background: transparent !important; color: inherit !important; border: 0; border-radius: 0 !important; padding: 0; font: inherit; cursor: pointer; box-shadow: none !important; }
.crm-home:hover { text-decoration: underline; box-shadow: none !important; transform: none !important; }
.crm-home:active { box-shadow: none !important; transform: none !important; }
.crm-home:focus-visible { outline: none; }
/* Manual CRM -> ERP order preparation. */
.erp-order { display:grid; gap:10px; }
.erp-party { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; padding:10px; background:#f6f8fc; border-radius:6px; }
.erp-party p { margin:0; overflow-wrap:anywhere; }
#erp-lines { display:grid; gap:8px; }
.erp-line { display:grid; grid-template-columns:minmax(220px,2fr) minmax(100px,.7fr) minmax(90px,.6fr) minmax(150px,1fr) auto; gap:8px; align-items:end; padding:9px; border:1px solid var(--line); border-radius:6px; }
.erp-line label { margin:0 !important; }
.erp-documents { display:grid; gap:5px; max-height:240px; overflow:auto; border:1px solid var(--line); border-radius:6px; padding:8px; }
.erp-order .success { color:#146540; }
@media(max-width:900px) { .erp-line,.erp-party { grid-template-columns:1fr; } }

/* 2026-09-19 · industrial CRM shell based on the approved three-column reference. */
:root { --accent:#0795a2; --accent-dark:#04717c; --accent-soft:#e2f7f8; --ink:#10213a; --muted:#63758a; --line:#d8e3ea; --wash:#edf3f6; --shadow:0 8px 24px #28465f13; }
body { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:auto minmax(0,1fr); background:#edf3f6; }
.ui-icon { display:inline-block; flex:0 0 auto; vertical-align:-3px; }
header { position:relative; grid-column:1; grid-row:1; z-index:15; min-width:0; min-height:50px; padding:0 18px; display:flex; flex-wrap:nowrap; gap:20px; border-bottom:1px solid #d3dfe7; background:var(--bg); box-shadow:0 3px 14px #2a465b0b; overflow:visible; transition:min-height .18s ease,padding .18s ease; }
header h1 { min-width:120px; }
.header-inner { display:flex; flex-wrap:nowrap; align-items:center; gap:20px; flex:1; min-width:0; transition:opacity .12s ease; }
header.collapsed { min-height:0; padding-top:0; padding-bottom:0; border-bottom-color:transparent; box-shadow:none; }
header.collapsed .header-inner { height:0; overflow:hidden; opacity:0; pointer-events:none; }
.header-toggle-btn { position:fixed; top:0; left:50%; transform:translateX(-50%); z-index:100; width:44px; height:20px; padding:0; border:1px solid var(--accent); border-top:0; border-radius:0 0 10px 10px; background:#fff; color:var(--accent); font-size:14px; font-weight:700; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; box-shadow:0 3px 8px #10213a25; }
.header-toggle-btn:hover { background:var(--accent); color:#fff; }
.header-toggle-label { display:none; }
.brand-wordmark { display:flex !important; align-items:center; gap:0; text-align:left; }
.brand-wordmark:hover { text-decoration:none; }
.brand-wordmark strong { color:#12253d; font-size:19px; line-height:1; font-weight:800; letter-spacing:.01em; white-space:nowrap; }
.brand-wordmark small { color:#668093; font-size:18px; font-weight:700; letter-spacing:.05em; white-space:nowrap; margin-left:-3px; filter:drop-shadow(0 2px 3px rgba(255,255,255,.6)) drop-shadow(0 4px 7px rgba(255,255,255,.4)); }
.brand-logo { height:46px; width:auto; display:block; object-fit:contain; filter:drop-shadow(0 2px 3px rgba(255,255,255,.6)) drop-shadow(0 4px 7px rgba(255,255,255,.4)); }
.top-nav { align-self:stretch; display:flex; gap:8px; overflow:visible; }
.top-nav .nav-button { position:relative; padding:0 12px; border-radius:0; background:transparent; color:#405468; font-size:11px; }
.top-nav .nav-button::after { content:""; position:absolute; left:12px; right:12px; bottom:0; height:3px; border-radius:3px 3px 0 0; background:transparent; }
.top-nav .nav-button.active { color:#0a7480; background:transparent; }
.top-nav .nav-button.active::after { background:var(--accent); }
.system-status,.account-menu { position:relative; margin-left:auto; }
.account-menu { margin-left:0; }
.system-status>summary,.account-menu>summary { height:30px; display:flex; align-items:center; gap:8px; list-style:none; cursor:pointer; border:1px solid #d6e1e8; border-radius:8px; padding:0 11px; background:#fff; color:#3e556a; font-size:11px; }
.system-status>summary::-webkit-details-marker,.account-menu>summary::-webkit-details-marker { display:none; }
.status-pulse { width:8px; height:8px; border-radius:50%; background:#13a06f; box-shadow:0 0 0 4px #dff6ec; }
.system-status[open]>summary,.account-menu[open]>summary { border-color:#93cdd2; }
.system-status>.system-popover,.account-menu #user-bar { position:absolute; z-index:40; top:48px; right:0; width:280px; padding:12px; border:1px solid #d5e1e8; border-radius:10px; background:#fff; box-shadow:0 16px 36px #24415829; }
.system-status #sync { width:100%; margin-top:9px; display:flex; justify-content:center; gap:6px; }
.system-status .source-grid { display:grid; gap:7px; }
.user-avatar { display:grid; place-items:center; width:18px; height:18px; padding:2px; border-radius:50%; background:linear-gradient(145deg,#dbe8ed,#f9fbfc); color:#36566d; }
.account-menu summary>span:nth-child(2) { display:grid; min-width:120px; }
.account-menu summary strong { color:#1a2e43; font-size:11px; }
.account-menu summary small { color:var(--muted); font-size:9px; }
.menu-chevron { font-size:13px; }
.account-menu #user-bar { display:grid; gap:6px; }
.account-menu #user-bar button { width:100%; text-align:left; }
body.auth-locked { display:block; }
body.auth-locked>header,body.auth-locked>main { display:none; }
body.auth-locked>.auth-panel { display:block; }
main { grid-column:1; grid-row:2; padding:10px 12px 12px; background:#edf3f6; }
.workspace { grid-template-columns:clamp(270px,22vw,350px) minmax(0,1fr); gap:10px; transition:grid-template-columns .18s ease; }
.workspace>aside { position:relative; padding:18px 15px 10px; border-radius:4px; box-shadow:none; }
.workspace>aside>.entity-help { display:none; }
.workspace>aside .section-heading h2 { font-size:22px; letter-spacing:-.02em; }
.workspace>aside .section-heading button { min-height:24px; padding:4px 10px; line-height:1.2; }
.workspace>aside .create-deal { border-radius:6px; font-size:11px; }
.rail-toggle-btn { position:absolute; top:8px; right:8px; width:28px; height:28px; border:1.5px solid var(--accent); border-radius:7px; background:#fff; color:var(--accent); font-size:16px; font-weight:700; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; z-index:5; box-shadow:0 2px 6px #10213a1f; }
.rail-toggle-btn:hover { background:var(--accent); color:#fff; }
.workspace.rail-collapsed { grid-template-columns:44px minmax(0,1fr); }
.workspace.rail-collapsed>aside { padding:34px 4px 8px; overflow:hidden; }
.workspace.rail-collapsed>aside .rail-toggle-btn { position:static; margin:0 auto 8px; }
.workspace.rail-collapsed>aside .entity-help,
.workspace.rail-collapsed>aside .filters,
.workspace.rail-collapsed>aside .section-heading h2,
.workspace.rail-collapsed>aside .badge,
.workspace.rail-collapsed>aside .create-deal,
.workspace.rail-collapsed>aside #view-archive,
.workspace.rail-collapsed>aside #search,
.workspace.rail-collapsed>aside .list-empty { display:none; }
.workspace.rail-collapsed>aside .section-heading { justify-content:center; }
.workspace.rail-collapsed>aside .deal-row { padding:9px 2px; text-align:center; border-radius:5px; }
.workspace.rail-collapsed>aside .deal-title,
.workspace.rail-collapsed>aside .deal-meta { display:none; }
.workspace.rail-collapsed>aside .deal-row::after { content:"№" attr(data-number); display:block; font-size:10px; font-weight:700; color:var(--ink); overflow-wrap:anywhere; }
.workspace.rail-collapsed>aside .deal-row.selected::after { color:var(--accent); }
.filters { display:grid; grid-template-columns:1fr; gap:5px; padding:6px 0 4px; }
.filter-group { display:grid; gap:2px; min-width:0; }
.filter-group-title { color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
/* Статус (17.10.2026): заголовок в ту же строку, что и кнопки -- слева от них, а не отдельной строкой
   сверху (единственная экономия места, которую запросили именно для этой группы). */
.filter-group-inline { display:flex; align-items:center; gap:6px; }
.filter-group-inline .filter-group-title { flex:0 0 auto; }
.filter-group-inline .filter-choice-grid { flex:1; }
.filter-choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3px; }
/* Направление (17.10.2026): было -- 4 переключателя (Разобрать + 3 реальных направления) друг над
   другом в 1 колонку. Стало -- в один ряд (4 колонки), каждая кнопка с иконкой над коротким названием
   (.filter-choice-icon), чтобы экономить высоту панели. Статус (2 переключателя) остаётся в 2 колонки,
   тоже с иконками. */
#funnel-buttons.filter-choice-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:4px; }
.filter-choice { min-width:0; min-height:20px; padding:2px 6px; border:1px solid var(--line); border-radius:5px; background:var(--wash); color:var(--ink); font-size:10px; font-weight:600; line-height:1.15; overflow-wrap:anywhere; }
.filter-choice:hover { border-color:var(--accent); background:var(--hover); color:var(--accent); }
.filter-choice.active { border-color:var(--accent); background:var(--accent); color:#fff; box-shadow:var(--shadow-sm); }
.filter-choice:focus-visible { outline:2px solid var(--accent2); outline-offset:1px; }
.filter-choice-icon { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; padding:4px 3px; text-align:center; }
.filter-choice-icon .ui-icon { vertical-align:0; }
.filter-choice-icon span { font-size:9px; line-height:1.1; overflow-wrap:anywhere; }
#search { margin:8px 0 10px; min-height:38px; padding-left:35px; border-color:var(--line); background:var(--wash) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2391a9b4' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E") no-repeat 10px center; }
.deal-list { padding-right:2px; }
.deal-row { margin:0 0 3px; padding:13px 12px 12px 16px; border:0; border-left:3px solid transparent; border-radius:6px; }
.deal-row:hover { background:var(--hover); }
.deal-row.selected { border-left-color:var(--accent); background:var(--accent-soft); box-shadow:var(--shadow-sm); }
.deal-title { font-size:13px; line-height:1.35; }
.deal-meta { margin-top:5px; font-size:10px; }
.detail { padding:0; border:0; border-radius:4px; background:transparent; box-shadow:none; }
.deal-layout { grid-template-columns:minmax(460px,1fr) clamp(280px,24vw,355px); gap:10px; }
.deal-workspace { padding:18px 20px 28px; border:1px solid #d8e3e9; border-radius:4px; background:#fff; box-shadow:0 5px 18px #2945590c; }
.deal-side-panel { position:sticky; top:0; gap:16px; padding:10px; border:1px solid #d6e1e7; border-radius:6px; background:#eef2f5; box-shadow:var(--shadow); }
.deal-side-panel>div,.deal-side-panel>section { min-width:0; }
.deal-title-row { padding:0 0 12px; flex-wrap:wrap; row-gap:10px; }
.deal-title-row h2 { font-size:22px; }
.deal-title-main { min-width:0; flex:1 1 260px; }
.deal-subtitle { max-width:720px; margin-top:4px; color:#61768a; font-size:12px; line-height:1.4; cursor:pointer; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.deal-subtitle.expanded { white-space:pre-wrap; overflow-wrap:anywhere; }
.deal-header-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; flex:1 1 100%; min-width:0; max-width:100%; }
.deal-header-group { display:flex; align-items:center; gap:6px; }
.deal-header-label { font-size:10px; font-weight:700; letter-spacing:.04em; color:var(--muted); text-transform:uppercase; }
.deal-header-divider { width:1px; height:22px; background:var(--line); }
.deal-header-buttons { gap:7px; margin-left:2px; }
.deal-header-buttons button { display:flex; align-items:center; gap:6px; white-space:nowrap; }
.deal-header-buttons .deal-export-button { border-color:#81c7cd; background:#edf9fa; color:#087780; }
.deal-header-buttons .deal-export-button:hover { border-color:#0c9aa6; background:#dcf3f5; }
.deal-header-buttons #archive-deal { color:#7b2f2a; background:#fff2f0; }
.deal-status-row { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.status-pill { display:inline-block; padding:3px 9px; border-radius:20px; font-size:11px; font-weight:700; background:#eef1f4; color:#405468; }
.status-pill.status-sort { background:#eef1f4; color:#405468; }
.status-pill.status-task { background:#fff3d6; color:#8a5b00; }
.status-pill.status-waiting { background:#e2f7f8; color:#04717c; }
.deal-header-status { position:relative; }
/* 17.10.2026: статус сделки -- одна кнопка-переключатель прямо в шапке (один клик: "Мяч у нас" <->
   "Мяч у клиента"), без поп-апа и привязки задачи (было раньше, см. deal-status-popover выше --
   правило удалено за ненужностью). */
.status-pill-button { border:0; cursor:pointer; font:inherit; }
.status-pill-button:hover { filter:brightness(0.95); }
.status-pill-button:disabled { cursor:default; opacity:.7; }
.deal-header-people .situation-mini-btn-label { display:flex; align-items:center; gap:6px; }
.deal-header-funnel select#workflow-funnel { font-size:12px; padding:4px 8px; border-radius:6px; border:1px solid var(--line); background:#fff; }
.deal-header-funnel { display:flex; align-items:center; gap:6px; }
.deal-tasks-summary { position:relative; display:flex; align-items:center; gap:8px; }
/* Задачи (17.10.2026): счётчик + «Создать задачу» + «Архив задач» были тремя разрозненными
   элементами в шапке -- теперь одна кнопка «Задачи» с попапом (переиспользует .situation-mini-btn/
   .situation-mini-popover), внутри -- текущие открытые задачи и действия «Поставить»/«Архив». */
.deal-tasks-popover-list { display:flex; flex-direction:column; gap:2px; max-height:40vh; overflow:auto; }
.deal-tasks-popover-item { display:flex; flex-direction:column; align-items:flex-start; gap:2px; text-align:left; background:none; border:0; border-radius:5px; padding:7px 8px; font:inherit; cursor:pointer; }
.deal-tasks-popover-item:hover { background:#f2f6fa; }
.deal-tasks-popover-item strong { font-size:12px; overflow-wrap:anywhere; }
.deal-tasks-popover-item small { font-size:10px; color:var(--muted); }
.deal-tasks-popover-item.overdue strong { color:#7b2f2a; }
/* Досье (17.10.2026): раньше отдельная кнопка «Скачать досье» -- теперь кнопка «Досье» с попапом
   (тот же .situation-mini-btn), внутри -- список с действием «Скачать» на каждом пункте. */
.deal-dossier-item { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:6px; }
.deal-dossier-item span { font-size:12px; color:var(--ink); }
.icon-button { width:36px; padding:7px; justify-content:center; }
.deal-situation-card { margin:0 0 13px; padding:12px 14px; border:1px solid #d9e5eb; border-left:4px solid #8f67e8; border-top-width:1px; border-radius:7px; background:linear-gradient(110deg,#f6f3ff,#f9fbfc); box-shadow:none; }
.deal-situation-card h3 { font-size:15px; }
.situation-kicker { display:flex; align-items:center; gap:4px; color:#7351c7; }
.situation-body-grid { margin-top:8px; gap:8px; }
.situation-latest,.situation-history { padding:10px 11px; border-radius:6px; }
.situation-label strong,.situation-history>strong { font-size:12px; }
.deal-situation-card p,.situation-history #deal-essence { font-size:12px; line-height:1.48; }
.situation-question { margin-top:8px; }
.situation-question input { padding:7px 9px; font-size:12px; }
.side-card { padding:10px 11px; border-bottom:1px solid #dce5eb; }
.side-deal-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; padding:4px 2px 12px; }
.side-deal-heading h3 { max-width:210px; margin:4px 0 2px; font-size:18px; line-height:1.2; }
.side-deal-heading small { color:var(--muted); }
.action-badge { flex:0 0 auto; padding:5px 8px; border-radius:20px; background:#fff1d8; color:#b56800; font-size:9px; font-weight:800; }
.deal-key-facts { grid-template-columns:1fr; gap:5px; }
.deal-fact,.deal-fact:last-child { grid-column:auto; padding:8px 9px; background:#fff; border-color:#cdd8e0; box-shadow:0 2px 8px #2945590c; }
.links-card { border:1px solid #cdd8e0; border-radius:9px; background:#fff; box-shadow:0 2px 8px #2945590c; padding:2px 11px; }
.deal-side-panel .workflow-panel { border:0; background:transparent; box-shadow:none; padding:4px 0; }
.deal-side-panel #deal-people { border:0; border-radius:0; background:transparent; box-shadow:none; }
.desk-tabs { gap:12px; margin:0 0 9px; padding:0 2px; border-bottom:1px solid #d9e3ea; flex-wrap:nowrap; align-items:center; overflow-x:auto; }
.desk-tabs button { display:flex; align-items:center; gap:4px; position:relative; padding:10px 0 9px; border-radius:0; background:transparent; color:#43596d; white-space:nowrap; font-size:12px; }
.desk-tabs button.active { background:transparent; color:#047d88; }
.desk-tabs button.active::after { content:""; position:absolute; left:0; right:0; bottom:-1px; height:3px; border-radius:3px 3px 0 0; background:#0c9aa6; }
.tab-count { display:inline-grid; place-items:center; min-width:18px; height:18px; padding:0 5px; border-radius:10px; background:#e7edf1; color:#52687a; font-size:9px; }
.desk-tabs-actions { display:flex; align-items:center; gap:4px; margin-left:auto; padding-left:8px; flex:0 0 auto; }
.desk-tabs-actions:empty { display:none; }
.desk-tabs-actions button { display:flex; align-items:center; gap:4px; padding:5px 8px; border-radius:6px; border:1px solid #d6e1e8; background:#f8fafb; color:#385368; font-size:10px; white-space:nowrap; }
.desk-tabs-actions button:first-of-type { color:#078590; border-color:#bfe3e6; }
@media(max-width:1080px) { .desk-tabs-actions button:not(:first-of-type) { font-size:0; gap:0; padding:5px 7px; } }
.desk-tabs-actions button:hover { background:#eef4f7; }
.work-toolbar { justify-content:flex-start; margin:0; padding:0; border:1px solid #d6e1e8; border-bottom:0; border-radius:7px 7px 0 0; background:#f8fafb; box-shadow:none; }
.work-toolbar h3 { display:none; }
.work-toolbar button { display:flex; align-items:center; gap:5px; padding:10px 13px; border-radius:0; border-right:1px solid #e0e7ec; background:transparent; color:#385368; }
.work-toolbar button:first-of-type { color:#078590; box-shadow:inset 0 -2px #0ca0aa; }
.quick-intake { margin:0 0 12px; padding:11px 13px 8px; border:1px solid #d6e1e8; border-left-width:1px; border-radius:0 0 7px 7px; background:#fff; box-shadow:0 5px 14px #25455d0f; }
.quick-intake-heading strong { font-size:12px; }
.quick-intake-heading small { font-size:9px; }
.quick-intake-icon { width:28px; height:28px; flex-basis:28px; color:#087f8a; }
.quick-text textarea { min-height:64px; border:0 !important; border-top:1px solid #e3e9ee !important; border-radius:0 !important; padding:10px 2px !important; box-shadow:none; }
.quick-intake-footer { border-top:1px solid #e5ebef; padding-top:8px; }
.quick-intake-footer button { min-width:120px; }
.timeline-tools { margin-top:2px; }
#timeline-items { position:relative; margin:7px 0 0 18px; padding-left:32px; }
#timeline-items::before { content:""; position:absolute; left:10px; top:5px; bottom:5px; width:1px; background:#d8e2e8; }
.timeline-entry { position:relative; padding:11px 4px 13px 14px; border-bottom:1px solid #e3e9ed; }
.timeline-entry summary { display:flex; align-items:flex-start; gap:9px; list-style:none; }
.timeline-entry summary::-webkit-details-marker { display:none; }
.timeline-entry .timeline-icon { position:absolute; left:-32px; top:8px; z-index:1; display:grid; place-items:center; width:30px; height:30px; border:4px solid #fff; border-radius:50%; background:#dff5f5; color:#068692; }
.timeline-entry.kind-note .timeline-icon { background:#fff0c9; color:#b47a00; }
.timeline-entry.kind-manual .timeline-icon { background:#dff4f7; color:#087f8b; }
.timeline-entry summary>span:last-child { min-width:0; }
.timeline-entry .badge { padding:1px 5px; font-size:8px; }
.timeline-entry summary strong { font-size:12px; }
.timeline-entry summary small { margin-top:3px; }
.timeline-entry>p,.timeline-entry>small { margin-left:0; }
dialog { border-radius:12px; box-shadow:0 24px 70px #122d4250; }
#desk-dialog { width:min(820px,94vw); max-height:96dvh; }
#desk-root label,#desk-dialog label { margin:6px 0; }
#desk-dialog textarea { min-height:70px; }
@media(max-width:1250px) { .brand-wordmark small { display:none; } .top-nav .nav-button { padding:0 7px; } .system-status>summary { padding:0 8px; } .deal-layout { grid-template-columns:minmax(430px,1fr) 290px; } }
@media(max-width:1050px) { .workspace { grid-template-columns:250px minmax(0,1fr); } .deal-layout { grid-template-columns:1fr; } .deal-side-panel { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); max-height:none; overflow-y:visible; } .side-deal-heading,.deal-key-facts { grid-column:1/-1; } .top-nav .nav-button { padding:0 8px; font-size:10px; } }
@media(max-width:720px) { body { display:block; overflow:auto; } header { position:sticky; top:0; z-index:30; min-height:50px; padding:4px 8px; flex-wrap:wrap; } header h1 { min-width:90px; } .top-nav { order:3; width:100%; overflow-x:auto; } .system-status { display:none; } main { padding:7px; } .workspace { grid-template-columns:1fr; } .workspace>aside { max-height:38vh; } .deal-workspace { padding:13px 11px; } .deal-side-panel { grid-template-columns:1fr; } .side-deal-heading,.deal-key-facts { grid-column:auto; } }

/* The deal agent becomes the primary work surface while its chat is open. */
.workspace.agent-chat-focus { grid-template-columns:minmax(0,1fr); }
.workspace.agent-chat-focus>aside { display:none; }
.detail.agent-chat-mode { overflow:hidden; }
.agent-chat-mode .deal-layout,.agent-chat-mode .deal-workspace { width:100%; height:100%; min-height:0; }
.agent-chat-mode .deal-layout { display:block; }
.agent-chat-mode .deal-workspace { display:flex; flex-direction:column; padding:10px 14px 12px; }
.agent-chat-mode .deal-side-panel,.agent-chat-mode .deal-situation-card,.agent-chat-mode #deal-history,.agent-chat-mode .deal-subtitle,.agent-chat-mode .deal-header-actions,.agent-chat-mode .deal-status-row { display:none; }
.agent-chat-mode .deal-title-row { flex:0 0 auto; padding:0 0 7px; border-bottom:1px solid #e0e8ed; }
.agent-chat-mode .deal-title-row h2 { margin-top:1px; font-size:17px; line-height:1.2; }
.agent-chat-mode #desk-root,.agent-chat-mode #desk-panel { min-height:0; flex:1; display:flex; flex-direction:column; }
.agent-chat-mode .desk-tabs { display:none; }
.agent-chat-mode #desk-panel>.entity-help,.agent-chat-mode #desk-panel>.local-hint { display:none; }
.agent-chat-mode #desk-panel>.desk-toolbar { flex:0 0 auto; margin:7px 0 5px; padding-bottom:5px; border-bottom:1px solid #e4ebef; }
.agent-chat-mode .chat-turns { flex:1; min-height:240px; max-height:none; overflow:auto; padding:8px clamp(4px,1.5vw,20px) 14px; border-radius:8px; background:#fbfcfd; overscroll-behavior:contain; }
.agent-chat-mode .chat-turn { max-width:1100px; margin:0 auto 18px; }
.detail.timeline-fill { overflow:hidden; }
.timeline-fill .deal-layout { height:100%; align-items:stretch; min-width:0; }
.timeline-fill .deal-workspace { height:100%; min-height:0; min-width:0; display:flex; flex-direction:column; }
.timeline-fill #desk-root { flex:1; min-height:0; min-width:0; display:flex; flex-direction:column; overflow-x:hidden; }
.timeline-fill #desk-panel { flex:1; min-height:0; min-width:0; display:flex; flex-direction:column; overflow-x:hidden; overflow-y:auto; }
.timeline-fill .work-chat-feed { flex:1; min-height:0; max-height:none; }
#desk-panel,.desk-cards,.client-message { min-width:0; }
.client-message strong,.client-message small { overflow-wrap:anywhere; }
.agent-chat-mode #desk-chat-form { position:static; flex:0 0 auto; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:8px 10px; margin:8px 0 0; padding:9px 10px; background:#fff; box-shadow:0 -5px 18px #183a5010; }
.agent-chat-mode #desk-chat-form label { margin:0; }
.agent-chat-mode #desk-chat-form textarea { min-height:72px; max-height:22dvh; resize:vertical; }
.agent-chat-mode #desk-chat-form>button { min-height:38px; margin-bottom:1px; }
.agent-chat-mode #desk-chat-form>.error { grid-column:1/-1; }
.registry-card { padding:12px 14px; border-radius:9px; }
.chatgpt-link-card { border:1px solid #cdd0e7; border-radius:9px; padding:12px 14px; background:linear-gradient(145deg,#f7f5ff,#fdfcff); box-shadow:0 2px 8px #2945590c; }
.chatgpt-link-card>h3 { margin-bottom:7px; }
.chatgpt-link-card>p { margin:6px 0; overflow-wrap:anywhere; }
.chatgpt-link-form { display:grid; gap:6px; margin-top:9px; }
.chatgpt-link-form label { display:grid; gap:4px; color:var(--muted); font-size:11px; }
.chatgpt-link-form input { margin:0; font-size:11px; }
.chatgpt-link-form button { justify-self:start; }
.chatgpt-open-link { border-color:#6d54c7; background:#6d54c7; color:#fff; font-weight:700; }
.chatgpt-open-link:hover { background:#5940b4; }
.chatgpt-link-note { font-size:10px !important; }
.chatgpt-extension-link { color:#006d78; font-weight:800; text-decoration:underline; text-underline-offset:2px; overflow-wrap:anywhere; }
.chatgpt-extension-link:hover { color:#004b54; }
.chatgpt-extension-limit { margin-top:7px !important; font-size:10px !important; }
.chatgpt-existing-chat { margin-top:9px; border-top:1px solid #dedfec; padding-top:8px; }
.chatgpt-existing-chat summary { cursor:pointer; color:#586879; font-size:11px; font-weight:600; }
.chatgpt-existing-chat form { display:grid; gap:6px; margin-top:8px; }
.chatgpt-existing-chat input { margin:0; font-size:11px; }
.chatgpt-existing-chat button { justify-self:start; }
@media(max-width:720px) {
  .workspace.agent-chat-focus>aside { display:none; }
  .detail.agent-chat-mode { min-height:calc(100dvh - 111px); }
  .agent-chat-mode .deal-workspace { padding:8px; }
  .agent-chat-mode #desk-chat-form { grid-template-columns:1fr; }
  .agent-chat-mode #desk-chat-form>.error { grid-column:auto; }
}
.archive-list { display:grid; gap:8px; margin-top:10px; }
.archive-item { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 12px; border:1px solid #e2e5ec; border-radius:8px; background:#fbfbfd; }
.archive-item p { margin:2px 0 0; }

/* Подписи почты (signatures.js) -- компактная форма без пустой правой половины и с собственным
   скроллом: .registry сидит внутри <main>, а у main overflow:hidden, поэтому без своего скролла
   форма обрезалась снизу и до кнопки "Сохранить" было не докрутить. */
#signature-workspace { overflow-y:auto; padding-bottom:20px; }
#signature-workspace .sig-form { max-width:560px; }
#signature-workspace .sig-form > label { margin-bottom:10px; }
#signature-workspace select#signature-email { max-width:100%; }
#signature-workspace fieldset { border:1px solid var(--line); border-radius:8px; padding:10px 12px 12px; margin:0 0 10px; }
#signature-workspace legend { padding:0 6px; font-size:11px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.02em; }
#signature-workspace fieldset .person-fields { margin:8px 0 0; }
#signature-workspace fieldset .person-fields:first-child { margin-top:0; }
#signature-workspace fieldset label:not(.check-label) { margin-top:8px; }
#signature-workspace fieldset label:first-child { margin-top:0; }
#signature-workspace .check-label { margin:0 0 4px; font-size:12px; }
#signature-workspace .entity-help { margin:2px 0 10px; }
#signature-workspace details.sig-admin { max-width:560px; margin-top:4px; }
#signature-workspace details.sig-admin summary { cursor:pointer; font-size:12px; font-weight:600; color:var(--accent); margin-bottom:8px; }
@media(max-width:640px) { #signature-workspace .sig-form,#signature-workspace details.sig-admin { max-width:100%; } #signature-workspace fieldset .person-fields { grid-template-columns:1fr; } }

.role-manager { margin:14px 0 18px; padding:16px; border:1px solid #bcdde1; border-radius:12px; background:linear-gradient(135deg,#f3fbfb,#f8fafc); box-shadow:0 6px 18px #173a4d0d; }
.role-manager-heading h3 { margin:3px 0 2px; font-size:18px; }
.role-manager>label { display:grid; gap:5px; max-width:520px; margin:12px 0; color:var(--muted); font-size:12px; }
.role-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:10px; }
.role-card { min-width:0; padding:12px; border:1px solid #d4e0e6; border-radius:9px; background:#fff; }
.role-title { display:flex; align-items:flex-start; gap:9px; margin:0 0 10px; color:var(--ink); }
.role-title input { margin-top:3px; }
.role-title span { display:grid; gap:3px; }
.role-title strong { font-size:13px; }
.role-title small { color:var(--muted); line-height:1.4; }
.role-card>label:not(.role-title) { display:grid; gap:4px; color:var(--muted); font-size:11px; }
.role-funnels { display:grid; gap:5px; margin-top:9px; padding-top:9px; border-top:1px solid #e5ecef; }
.role-protected { margin:8px 0 0; padding:7px 9px; border-radius:6px; background:#f0f3f5; color:#586b7b; font-size:11px; }
.role-manager-footer { display:flex; align-items:center; gap:12px; margin-top:12px; }
.role-manager-footer p { margin:0; font-size:12px; }
@media(max-width:640px) { .role-cards { grid-template-columns:1fr; } .role-manager-footer { align-items:flex-start; flex-direction:column; } }

/* Телефония (Новофон) — 04.10.2026 */
#telephony-workspace fieldset{margin:0 0 16px;display:flex;flex-direction:column;gap:8px;min-width:0}
#telephony-workspace label{display:flex;flex-direction:column;gap:4px}
#telephony-workspace label.check-label{flex-direction:row;align-items:center;gap:8px}
.tel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.tel-actions{display:flex;flex-wrap:wrap;gap:8px}
.tel-table{width:100%;border-collapse:collapse;font-size:14px}
.tel-table th,.tel-table td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line,#ddd);vertical-align:top}
.tel-table td code{white-space:pre-wrap;word-break:break-all;font-size:12px}
.tel-table input{max-width:140px}
#telephony-workspace details{margin-top:4px}
#telephony-workspace{overflow-x:auto}
/* С пунктом «Телефония» у администратора 9 разделов — чуть ужимаем отступы, чтобы «Настройки» не наезжали на статус. */
@media(min-width:1251px) and (max-width:1500px){ .top-nav .nav-button { padding:0 8px; } }

/* ТЗ постамата — матрица данных, вопросы клиенту и предварительный калькулятор (18.10.2026). */
.pm-brief { display:flex; flex-direction:column; gap:8px; }
.pm-badges { display:flex; gap:6px; flex-wrap:wrap; }
.pm-badge-ok { background:color-mix(in srgb, var(--good) 22%, transparent); color:var(--ink); }
.pm-actions { justify-content:flex-start; gap:8px; flex-wrap:wrap; }
.pm-layout { display:flex; flex-direction:column; gap:10px; }
.pm-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(380px,1fr)); gap:10px; }
.pm-card { background:var(--paper); border:1px solid var(--line); border-radius:10px; padding:8px 10px; }
.pm-card h4 { margin:0 0 6px; font-size:13px; }
.pm-row { display:grid; grid-template-columns:1fr auto; gap:2px 6px; align-items:center; padding:4px 0 6px 6px; border-left:3px solid transparent; border-bottom:1px dashed var(--line); }
.pm-row:last-child { border-bottom:0; }
.pm-row label { display:grid; grid-template-columns:minmax(110px,42%) 1fr; align-items:center; gap:6px; font-size:12px; min-width:0; }
.pm-row input, .pm-row select { width:100%; min-width:0; }
.pm-row.pm-missing { border-left-color:var(--danger); }
.pm-row.pm-auto { border-left-color:var(--warning); }
.pm-row.pm-manual { border-left-color:var(--good); }
.pm-row.pm-na { opacity:.55; }
.pm-label small { font-weight:600; }
.pm-crit { border-radius:8px; padding:0 4px; font-size:10px; }
.pm-crit-A { background:color-mix(in srgb, var(--danger) 18%, transparent); }
.pm-crit-B { background:color-mix(in srgb, var(--warning) 22%, transparent); }
.pm-crit-C { background:var(--hover); }
.pm-chip { font-size:10px; border-radius:10px; padding:1px 6px; white-space:nowrap; align-self:center; }
.pm-missing .pm-chip, .pm-chip.pm-missing { background:color-mix(in srgb, var(--danger) 20%, transparent); }
.pm-chip.pm-check { background:color-mix(in srgb, var(--warning) 26%, transparent); }
.pm-chip.pm-ok { background:color-mix(in srgb, var(--good) 26%, transparent); }
.pm-chip.pm-optional { background:var(--hover); color:var(--muted); }
.pm-source { grid-column:1 / -1; font-size:11px; color:var(--muted); }
.pm-source q { display:block; margin-top:2px; font-style:italic; }
.pm-side { display:flex; flex-direction:column; gap:10px; position:sticky; top:8px; }
.pm-side-block { background:var(--paper); border:1px solid var(--line); border-radius:10px; padding:8px 10px; }
.pm-side-block textarea { width:100%; font-size:12px; }
.pm-markup { display:flex; align-items:center; gap:6px; font-size:12px; }
.pm-markup input { width:72px; }
.pm-table { width:100%; border-collapse:collapse; font-size:12px; }
.pm-table th, .pm-table td { padding:3px 5px; border-bottom:1px solid var(--line); text-align:left; }
.pm-table .n { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.pm-table .pm-total td { font-weight:700; }
.pm-brief .small { font-size:11px; }
.pm-side .tw { overflow-x:auto; }
