/* Согласованное обновление: фирменная палитра, стабильные данные, короткие отклики.
   Селекторы ограничены CRM: формы входа и печатные документы не меняются. */
#mainApp .nav-item {transition:background-color 120ms,color 120ms;}
#mainApp .nav-item.active {background:var(--accent-soft);color:var(--accent-text);box-shadow:inset 3px 0 0 var(--accent);}
#mainApp .view-title {font-size:22px;line-height:1.35;letter-spacing:-.02em;margin-bottom:8px;}
#mainApp .view-sub {max-width:85ch;line-height:1.6;}
#mainApp .mini-btn {border-radius:8px;transition:background-color 120ms,border-color 120ms,color 120ms,transform 100ms;}
#mainApp .mini-btn:active:not(:disabled) {transform:scale(.98);}
#mainApp .mini-btn:disabled {cursor:wait;}
#mainApp button:focus-visible,#mainApp a:focus-visible,#mainApp input:focus-visible,
#mainApp select:focus-visible,#mainApp textarea:focus-visible,
.crm-step-confirm button:focus-visible,.crm-step-confirm textarea:focus-visible {
  outline:2px solid var(--accent-text);outline-offset:3px;
}
#mainApp tbody tr[data-client] > td {padding-block:14px;font-variant-numeric:tabular-nums;}
#mainApp tbody tr[data-client] > td[data-label="Клиент"] b {font-size:14px;font-weight:600;}
#mainApp .detail-page {border-radius:14px;}
#mainApp .cc-head {background:var(--bg-app);border:0;border-bottom:1px solid var(--border);border-radius:0;padding:4px 0 22px;gap:18px;}
#mainApp .cc-head-top {align-items:center;gap:12px;}
#mainApp .cc-head-top > .cc-client-name {font-family:'Euclid Flex',system-ui,sans-serif;font-size:26px;font-weight:700;line-height:1.3;letter-spacing:-.035em;overflow-wrap:anywhere;}
#mainApp .cc-head-top > .cc-client-meta {flex:1 1 100%;display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12.5px;color:var(--text-secondary);}
#mainApp .cc-head-top #ccFixOpen {margin-left:auto;}
#mainApp .cc-facts {grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:14px 24px;}
#mainApp .cc-fact {border:0;border-radius:0;background:transparent;padding:0;gap:5px;}
#mainApp .cc-fact > span {text-transform:none;letter-spacing:0;color:var(--text-secondary);}
#mainApp .cc-fact > b {font-size:13px;line-height:1.5;font-weight:600;font-variant-numeric:tabular-nums;}
#mainApp .cc-stage-label {color:var(--text-secondary);}
#mainApp .cc-tabs {gap:6px 18px;border-bottom:1px solid var(--border);padding:0;margin:4px 0 20px;}
#mainApp .nc-tabs.cc-tabs {border-bottom:0;}
#mainApp .cc-tabs .cc-tab {position:relative;border:0;border-radius:0;background:transparent;color:var(--text-secondary);padding:12px 0;min-height:44px;font-weight:500;box-shadow:none;filter:none;}
#mainApp .cc-tabs .cc-tab.primary {background:transparent;color:var(--text);font-weight:700;}
#mainApp .cc-tabs .cc-tab::after {content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--accent);transform:scaleX(0);transition:transform 150ms;}
#mainApp .cc-tabs .cc-tab.primary::after {transform:scaleX(1);}
#mainApp .cc-tabbed details.modal-section {background:var(--bg-app);border-radius:12px;}
#mainApp .cc-nav {padding:20px;border-radius:12px;background:var(--bg-app);}
#mainApp .cc-nav .cc-nav-head b {color:var(--text-secondary);font-size:11px;letter-spacing:.065em;}
#mainApp .cc-nav .cc-nav-state {font-size:12.5px;}
#mainApp .cc-nav .cc-nav-reason {font-size:17px;font-weight:600;line-height:1.5;letter-spacing:-.015em;}
#mainApp .cc-nav .cc-nav-next {color:var(--text-secondary);line-height:1.6;}
#mainApp .cc-nav .cc-nav-who,#mainApp .cc-nav .cc-nav-mark {color:var(--text-secondary);}
#mainApp .cc-nav .mini-btn.primary {padding:10px 14px;min-height:42px;}
/* Не анимируем карточку/список при каждом renderContent или событии SSE. */
#mainApp .live-dot.is-live,#mainApp .is-loading-soft,#mainApp .skeleton {animation:none!important;}
#mainApp .is-loading-soft {opacity:1;}
#mainApp .skeleton {background:var(--surface);}
#mainApp .is-busy::after {animation:none!important;background:var(--accent-soft);}
#mainApp .bar-fill,#mainApp .nc-progress span,#mainApp .cc-bar > b {transition:none;}
#mainApp .modal-backdrop {animation:crm-polish-veil 140ms ease-out both;}
#mainApp .modal {animation:crm-polish-window 180ms ease-out both;}
.crm-step-confirm {color:var(--text);background:var(--bg-app);border:1px solid var(--border-strong);border-radius:var(--crm-radii-modal,24px);padding:24px;width:calc(100% - 32px);max-width:440px;max-height:calc(100dvh - 32px);overflow-y:auto;box-shadow:var(--shadow-2);}
.crm-step-confirm[open] {animation:crm-polish-window 180ms ease-out both;}
.crm-step-confirm::backdrop {background:var(--veil);}
.crm-step-confirm .crm-confirm-top {display:flex;align-items:center;justify-content:space-between;gap:12px;}
.crm-step-confirm .crm-confirm-eyebrow {font-size:11px;letter-spacing:.075em;font-weight:600;color:var(--text-secondary);}
.crm-step-confirm .crm-confirm-close {background:transparent;border:0;color:var(--text-secondary);font-size:24px;min-width:44px;min-height:44px;border-radius:8px;cursor:pointer;}
.crm-step-confirm h2 {font-family:'Euclid Flex',system-ui,sans-serif;font-size:20px;letter-spacing:normal;line-height:1.35;margin:10px 0 12px;}
.crm-step-confirm .crm-confirm-client {color:var(--text-secondary);font-size:12.5px;margin:0;overflow-wrap:anywhere;}
.crm-step-confirm .crm-confirm-task {background:var(--surface-2);border:0;border-radius:var(--crm-radii-inset,20px);padding:16px;margin:20px 0;font-size:14px;font-weight:600;overflow-wrap:anywhere;}
.crm-step-confirm .crm-confirm-date {display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:12.5px;color:var(--text-secondary);margin:0 0 18px;}
.crm-step-confirm .crm-confirm-date time {color:var(--text);font-variant-numeric:tabular-nums;}
.crm-step-confirm label {display:block;font-size:12.5px;font-weight:600;}
.crm-step-confirm textarea {display:block;width:100%;max-width:none;margin:8px 0 0;padding:11px 12px;min-height:90px;font-size:14px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;}
.crm-step-confirm .crm-confirm-hint {color:var(--text-secondary);font-size:12px;line-height:1.5;margin:8px 0 0;}
.crm-step-confirm .crm-confirm-footer {display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin-top:24px;}
.crm-step-confirm .mini-btn {padding:10px 14px;min-height:42px;transition:transform 100ms,background-color 120ms;}
.crm-step-confirm .mini-btn:active:not(:disabled) {transform:scale(.98);}
.crm-toast.crm-step-success {animation:crm-polish-confirm 170ms ease-out backwards;}
@keyframes crm-polish-window {from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes crm-polish-veil {from{opacity:0}to{opacity:1}}
@keyframes crm-polish-confirm {from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
html[data-crm-motion="off"] {scroll-behavior:auto!important;}
html[data-crm-motion="off"] #mainApp *,html[data-crm-motion="off"] #mainApp *::before,
html[data-crm-motion="off"] #mainApp *::after,html[data-crm-motion="off"] .crm-step-confirm,
html[data-crm-motion="off"] .crm-step-confirm *,html[data-crm-motion="off"] #crmToasts * {
  animation:none!important;transition:none!important;scroll-behavior:auto!important;
}
html[data-crm-motion="off"] #mainApp .mini-btn:active,
html[data-crm-motion="off"] #mainApp .tc-row:active,
html[data-crm-motion="off"] #mainApp .kcard:hover,
html[data-crm-motion="off"] .crm-step-confirm .mini-btn:active {transform:none!important;}
@media (prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto!important;}
  #mainApp *,#mainApp *::before,#mainApp *::after,.crm-step-confirm,.crm-step-confirm *,#crmToasts * {animation:none!important;transition:none!important;scroll-behavior:auto!important;}
  #mainApp .mini-btn:active,#mainApp .tc-row:active,#mainApp .kcard:hover,.crm-step-confirm .mini-btn:active {transform:none!important;}
}
@media(max-width:600px) {
  #mainApp .view-title {font-size:19px;}
  #mainApp .cc-head-top > .cc-client-name {font-size:23px;}
  #mainApp .cc-head-top #ccFixOpen {margin-left:0;}
  #mainApp .cc-tabs {gap:2px 15px;}
  #mainApp .cc-nav {padding:16px;}
  #mainApp .cc-nav .cc-nav-reason {font-size:16px;}
  .crm-step-confirm {padding:17px;}
  .crm-step-confirm textarea {font-size:16px;}
  .crm-step-confirm .mini-btn {min-height:44px;}
}
@media print {
  #crmMotionButton,.crm-step-confirm {display:none!important;}
}

/* Shared timing; surface owners handle their own enter/exit, never background data. */
:root{--ease-out:cubic-bezier(0.23,1,0.32,1);--ease-in-out:cubic-bezier(0.77,0,0.175,1);--ease-drawer:cubic-bezier(0.32,0.72,0,1)}
html body .chat-win .ch-actions-menu,html body .ch-ms-panel{animation:none!important;scale:1}
html body .chat-win .ch-bubble{transition:background-color 140ms ease,outline-color 140ms ease}
html body .ch-ms-panel::backdrop{transition:opacity 200ms var(--ease-out)}
html body :is(.ch-ms-panel,.ios-sheet,.crm-step-confirm)::backdrop{opacity:1;transition:opacity 200ms var(--ease-out)}
html body :is(.ch-ms-panel,.ios-sheet,.crm-step-confirm)[data-crm-motion-state="closing"]::backdrop{opacity:0;transition-duration:140ms}
@starting-style{html body :is(.ch-ms-panel,.ios-sheet,.crm-step-confirm)[open]::backdrop{opacity:0}}
html body #mainApp :is(.modal,.modal-backdrop),html body .crm-step-confirm[open]{animation-duration:220ms;animation-timing-function:var(--ease-out)}
html body #mainApp .mini-btn{transition:background-color 140ms ease,color 140ms ease,border-color 140ms ease,transform 120ms var(--ease-out)}
html body .chat-win :is(.ch-top button,.ch-ms-more,.ch-ms-emoji button,.ch-go){transition:scale 120ms var(--ease-out),background-color 140ms ease}
html body .chat-win :is(.ch-top button,.ch-ms-more,.ch-ms-emoji button,.ch-go):active:not(:disabled){transform:none!important;scale:.98}
html body .pp-menu{animation:none!important;transform-origin:top right;opacity:0;transform:translateY(-4px) scale(.98);transition:opacity 180ms var(--ease-out),transform 180ms var(--ease-out),display 180ms allow-discrete}
html body .pp-menu:not([hidden]){opacity:1;transform:none}
@starting-style{html body .pp-menu:not([hidden]){opacity:0;transform:translateY(-4px) scale(.98)}}
@media(prefers-reduced-motion:reduce){html body .chat-win .ch-bubble,html body .pp-menu,html body :is(.ch-ms-panel,.ios-sheet,.crm-step-confirm)::backdrop{transition:none}}
html[data-crm-motion="off"] body .chat-win .ch-bubble,html[data-crm-motion="off"] body .pp-menu,html[data-crm-motion="off"] body :is(.ch-ms-panel,.ios-sheet,.crm-step-confirm)::backdrop{transition:none}

.crm-notice .crm-notice-body{white-space:pre-line;overflow-wrap:anywhere;line-height:1.5;font-size:14px;margin:12px 0 0;}

html body .crm-step-confirm :is(#crmNoticeTitle,#crmConfirmTitle){font-size:20px!important;line-height:1.35!important;letter-spacing:normal!important;}
html body .crm-notice #crmNoticeBody{font-size:14px!important;line-height:1.5!important;max-height:min(50vh,420px);overflow-y:auto;overscroll-behavior:contain;}
html body .crm-step-confirm :is(#crmNoticeTitle,#crmConfirmTitle){overflow-wrap:anywhere;}

html body dialog.crm-step-confirm .mini-btn{display:inline-flex!important;align-items:center;justify-content:center;min-height:44px!important;padding:8px 16px!important;border:0!important;border-radius:var(--crm-radii-control,16px)!important;font-family:inherit;font-size:12px!important;font-weight:500!important;line-height:1.35!important;background:var(--crm-action-secondary-bg,var(--surface-2))!important;color:var(--text)!important;}
html body dialog.crm-step-confirm .mini-btn.primary{background:var(--crm-action-bg,var(--accent))!important;color:var(--accent-ink)!important;}
html body dialog.crm-step-confirm .crm-confirm-top{align-items:flex-start;}
html body dialog.crm-step-confirm .crm-confirm-top h2{margin:0;}
html body dialog.crm-step-confirm .crm-confirm-close{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;min-width:40px;min-height:40px;padding:0;border-radius:50%!important;}
html body dialog.crm-step-confirm textarea{border-radius:var(--crm-radii-control,16px)!important;font-size:14px!important;line-height:1.45;}
@media(max-width:860px){html body dialog.crm-step-confirm textarea{font-size:16px!important;}html body dialog.crm-step-confirm .crm-confirm-close{width:44px;height:44px;min-width:44px;min-height:44px;flex-basis:44px;}}

@layer crm-component-radii {
html body dialog.crm-step-confirm{width:calc(100% - 32px)!important;max-width:440px!important;height:fit-content!important;min-height:0!important;max-height:calc(100dvh - 32px)!important;inset:0!important;margin:auto!important;padding:24px!important;box-sizing:border-box!important;}
html body dialog.crm-step-confirm textarea{height:104px!important;min-height:104px!important;max-height:40vh!important;resize:vertical;}
}

html body .crm-notice form{margin-top:16px;}
html body .crm-notice .crm-prompt-label{display:block;margin-bottom:8px;font-size:14px;}
html body .crm-notice #crmPromptValue{box-sizing:border-box;width:100%;max-width:100%;min-height:44px;padding:8px 16px;border:1px solid var(--border);border-radius:var(--crm-radii-control,16px);background:var(--surface-2);color:var(--text);font:inherit;font-size:14px!important;}
@media(max-width:860px){html body .crm-notice #crmPromptValue{font-size:16px!important;}}

/* Keep actions and the field visible when the available viewport is short. */
html body dialog.crm-notice[open]{display:flex;flex-direction:column;}
html body dialog.crm-notice>h2,html body dialog.crm-notice>form{flex:none;}
html body dialog.crm-notice .crm-notice-body{flex:1 1 auto;min-height:0;}
@media(max-height:480px){
 @layer crm-component-radii{html body dialog.crm-notice{padding:16px!important;}}
 html body dialog.crm-notice>h2{margin:0 0 8px;}
 html body dialog.crm-notice .crm-notice-body{margin:0;}
 html body dialog.crm-notice>form{margin-top:12px;}
 html body dialog.crm-notice .crm-confirm-footer{margin-top:12px;}
}

/* Body-level workspace windows share the same controls as in-app dialogs. */
@layer crm-component-radii{
html body .crm-workspace-overlay{padding:16px!important;box-sizing:border-box!important;}
html body .crm-workspace-overlay>:is(.chart-card,.bug-card,.ov-card,.team-debts-sheet){box-sizing:border-box!important;min-width:0!important;max-width:100%!important;max-height:calc(100dvh - 32px)!important;overflow:auto!important;border:0!important;border-radius:var(--crm-radii-modal,24px)!important;padding:24px!important;background:var(--surface)!important;box-shadow:none!important;}
html body .crm-workspace-overlay :is(button.mini-btn,a.mini-btn){display:inline-flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important;min-height:44px!important;padding:8px 16px!important;border:0!important;border-radius:var(--crm-radii-control,16px)!important;font-family:inherit!important;font-size:12px!important;font-weight:500!important;line-height:1.35!important;background:var(--crm-action-secondary-bg,var(--surface-2))!important;color:var(--text)!important;box-shadow:none!important;}
html body .crm-workspace-overlay :is(button.mini-btn,a.mini-btn).primary{background:var(--crm-action-bg,var(--accent))!important;color:var(--accent-ink)!important;}
html body .crm-workspace-overlay :is(button.mini-btn,a.mini-btn):disabled{opacity:.45!important;cursor:not-allowed!important;}
html body .crm-workspace-overlay .modal-close{display:grid!important;place-items:center!important;flex:0 0 40px!important;width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;padding:0!important;border:0!important;border-radius:50%!important;background:var(--crm-action-secondary-bg,var(--surface-2))!important;color:var(--text)!important;box-shadow:none!important;}
html body .crm-workspace-overlay :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea){box-sizing:border-box!important;width:100%!important;max-width:100%!important;min-width:0!important;min-height:44px!important;padding:8px 16px!important;border:0!important;border-radius:var(--crm-radii-control,16px)!important;font-family:inherit!important;font-size:14px!important;line-height:1.45!important;background:var(--surface-2)!important;color:var(--text)!important;box-shadow:none!important;}
}
html body .crm-workspace-overlay .modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:0;margin:0 0 16px;}
html body .crm-workspace-overlay .modal-head>div{min-width:0;}
html body .crm-workspace-overlay h2{font-family:inherit;font-size:20px!important;line-height:1.35!important;letter-spacing:normal;margin:0;overflow-wrap:anywhere;}
html body .crm-workspace-overlay .modal-body{padding:0;}
html body .crm-workspace-overlay .modal-hint{font-size:14px;line-height:1.5;overflow-wrap:anywhere;}
html body .crm-workspace-overlay .finance-field{display:grid;gap:8px;min-width:0;}
html body .crm-workspace-overlay .finance-field>span{font-size:14px;line-height:1.4;font-weight:500;}
html body .crm-workspace-overlay :is(.finance-actions,.modal-controls){gap:8px;}
html body #credentialOverlay>.chart-card{width:440px!important;}
html body #credentialOverlay .modal-body{display:grid;gap:16px;}
html body #credentialOverlay .modal-hint{margin:8px 0 0;}
html body #credentialOverlay .crm-credential-note{margin:0 0 16px;padding:12px 16px;border:0;border-radius:var(--crm-radii-control,16px);background:var(--surface-2);}
html body .crm-workspace-overlay :is(button,a,input,textarea,select):focus-visible{outline:0;box-shadow:inset 0 0 0 2px var(--text-muted)!important;}
html body .crm-workspace-overlay button{transition:background-color 140ms ease,color 140ms ease,transform 120ms var(--ease-out);}
html body .crm-workspace-overlay button:active:not(:disabled){transform:scale(.98);}
@media(max-width:860px){
 @layer crm-component-radii{
 html body .crm-workspace-overlay>:is(.chart-card,.bug-card,.ov-card,.team-debts-sheet){padding:20px!important;}
 html body .crm-workspace-overlay :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea){font-size:16px!important;}
 html body .crm-workspace-overlay .modal-close{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;flex-basis:44px!important;}}
 html body #credentialOverlay .finance-actions{display:grid;grid-template-columns:minmax(0,1fr);}
 html body #credentialOverlay .finance-actions>button{width:100%;}
}
@media(prefers-reduced-motion:reduce){html body .crm-workspace-overlay button{transition:none!important;}html body .crm-workspace-overlay button:active{transform:none!important;}}
html[data-crm-motion=off] body .crm-workspace-overlay button{transition:none!important;}
html[data-crm-motion=off] body .crm-workspace-overlay button:active{transform:none!important;}

html body .crm-workspace-overlay .bug-form>.chart-title,html body .crm-workspace-overlay>.ov-card>div:first-child>b{font-size:20px!important;line-height:1.35!important;}

@layer crm-component-radii{
html body .crm-workspace-overlay .modal-body{padding:0!important;}
html body .crm-workspace-overlay .modal-head{border:0!important;}
html body .crm-workspace-overlay h2{font-size:20px!important;line-height:1.35!important;}
}

@layer crm-component-radii{html body .crm-workspace-overlay .modal-hint{font-size:14px!important;line-height:1.5!important;}}

@layer crm-component-radii{html body .crm-workspace-overlay>.team-debts-sheet{height:auto!important;min-height:0!important;}}

@layer crm-component-radii{
html body .crm-workspace-overlay h2{margin:0!important;padding:0!important;}
html body .crm-workspace-overlay>.team-debts-sheet>header{margin:0!important;padding:0!important;align-items:flex-start!important;}
}

@layer crm-component-radii{html body .crm-workspace-overlay .team-debts-intro{padding:0!important;}}
