/* KRAI shared visual language. Load last; behavior and saved values stay in their owners. */
:root{
 --k-surface:#fff;--k-canvas:#f7f8fb;--k-field:#f7f8fb;--k-field-hover:#f0f2f7;
 --k-line:#e7eaf0;--k-ink:#29344a;--k-muted:#667085;--k-focus:#3679ed;
 --k-shadow-card:0 2px 6px #25334d05,0 6px 18px #25334d05;
 --k-shadow-float:0 4px 12px #25334d0c,0 18px 48px #25334d18;
 --k-shadow-dialog:0 8px 24px #17233d12,0 28px 80px #17233d24;
 --k-ease:cubic-bezier(.2,.8,.2,1);--k-fast:160ms;--k-radius:12px;
}
html body{background:var(--k-canvas);color:var(--k-ink)}
body :where(button,a,input,textarea,select,summary,[role=button]){
 transition:background-color var(--k-fast) var(--k-ease),border-color var(--k-fast) var(--k-ease),color var(--k-fast) var(--k-ease),box-shadow var(--k-fast) var(--k-ease),opacity var(--k-fast) var(--k-ease),transform var(--k-fast) var(--k-ease);
}
body :where(button,a,input,textarea,select,summary,[tabindex]):focus-visible{
 outline:2px solid var(--k-focus)!important;outline-offset:3px;
}
html body dialog:not(.k-picker){
 border:1px solid #e9ebf1!important;border-radius:20px!important;
 background:var(--k-surface)!important;color:var(--k-ink)!important;
 box-shadow:var(--k-shadow-dialog)!important;backdrop-filter:none!important;
 -webkit-backdrop-filter:none!important;
}
html body dialog::backdrop{
 background:rgba(35,43,59,.28)!important;backdrop-filter:blur(2px)!important;
 -webkit-backdrop-filter:blur(2px)!important;
}
body dialog[open]{animation:k-surface-enter 180ms var(--k-ease) both}
body dialog.k-picker[open]{animation:k-picker-enter 140ms var(--k-ease) both}
@keyframes k-surface-enter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes k-picker-enter{from{opacity:0}to{opacity:1}}
html body dialog :is(.k-dialog-head,.ts-dialog-head,.dy-head,.prod-dialog-head,.editor-top,.modal-head,.dialog-head,.news-modal-head){
 background:var(--k-surface)!important;border-bottom-color:var(--k-line)!important;
}
body dialog :is(.k-form-foot,.dy-foot,.prod-dialog-foot,.editor-foot,.dialog-foot,.news-modal-foot){
 background:var(--k-surface)!important;border-top-color:var(--k-line)!important;
}
body dialog :is(h2,h3){color:var(--k-ink);letter-spacing:-.025em;text-wrap:pretty}
body dialog :is(.field-label,.k-field,.dy-field,.news-field,.prod-field){color:var(--k-muted)}
/* One quiet field surface; do not restyle checkboxes, ranges, hidden inputs or uploads. */
html body dialog :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):not([type=hidden]),textarea,select,.k-control-button),
html body :is(.k-search input,.board-search input,.taskspace input[type=search],.prod-toolbar input[type=search],.news-search){
 background:var(--k-field)!important;border-color:var(--k-line)!important;
 border-radius:11px!important;color:var(--k-ink)!important;box-shadow:none;
}
html body dialog :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]),textarea,select,.k-control-button):hover{
 background:var(--k-field-hover)!important;border-color:#d6dbe6!important;
}
html body dialog :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]),textarea,select):focus,
html body .k-control-button[aria-expanded=true]{
 background:#fff!important;border-color:#8faef1!important;box-shadow:0 0 0 3px #3679ed12;
}
body dialog :is(input,textarea)::placeholder{color:#8a94a6!important;opacity:1}
body dialog :is(input,textarea):disabled{color:#8a94a6!important;cursor:not-allowed}
body :is(.k-control-chevron,.k-picker-head .k-picker-arrow){background:#f2f4f8!important;color:#74829b!important}
html body :is(.k-picker,.k-user-pop,.k-account-menu,.menu,.month-picker-pop,.kv-task-menu-body,.file-menu,.k-search-results,.k-nav-menu){
 border:1px solid var(--k-line)!important;border-radius:14px!important;
 background:#fff!important;box-shadow:var(--k-shadow-float)!important;backdrop-filter:none!important;
}
body :is(.k-picker-option,.k-user-pop button,.k-account-menu button,.menu button,.kv-task-menu-body button,.file-menu button,.k-search-results a){
 border-radius:9px;
}
body :is(.k-picker-option,.k-user-pop button,.k-account-menu button,.menu button,.kv-task-menu-body button,.file-menu button):hover{
 background:var(--k-field-hover)!important;color:var(--k-ink)!important;
}
body .k-picker-option[aria-selected=true]{background:#edf3ff!important;color:#2b64bf!important}
html body dialog :is(.k-close,.dy-close,.ts-dialog-head>button,#prod-close,#close-editor,.icon-btn[aria-label^="Закрыть"]),
html body .k-picker-dismiss{
 background:#f2f4f8!important;border:0!important;color:#7a869c!important;box-shadow:none;
}
html body dialog :is(.k-close,.dy-close,.ts-dialog-head>button,#prod-close,#close-editor,.icon-btn[aria-label^="Закрыть"]):hover,
html body .k-picker-dismiss:hover{background:#e9edf5!important;color:#33435f!important}
body :is(.k-primary,.btn-solid,.ts-primary,.dy-primary,.prod-primary,.news-primary){
 border-radius:11px;box-shadow:0 2px 5px #2864c018;
}
body :is(.k-secondary,.btn-ghost,.prod-mini-button,.news-secondary,.taskspace-toolbar>button:not(.k-primary)){
 border-color:var(--k-line);background:#fff;box-shadow:0 1px 3px #27365006;border-radius:10px;
}
body :is(.k-secondary,.btn-ghost,.prod-mini-button,.news-secondary):not(:disabled):hover{
 background:var(--k-field-hover);border-color:#d9deea;box-shadow:0 2px 7px #2736500a;
}
body :is(.k-nav a,.k-nav button):not(:disabled):hover{background:#e8edf7;color:#344663}
body .k-nav a[aria-current=page]{background:#fff;box-shadow:0 2px 8px #23345608}
body :is(.k-account,.k-user-button,.k-user-btn):hover{background:#e8edf7}
/* Cards keep the personal tint when present; hover never shifts column layout. */
body :is(.task-card,.ts-card,.prod-card,.news-card,.dy-card,.prod-panel){
 border-color:var(--k-line);border-radius:13px;box-shadow:var(--k-shadow-card);
}
body :is(.task-card,.ts-card,.prod-card,.news-card):not(.is-dragging):not(.k-touch-ghost):hover{
 border-color:#cdd5e4;box-shadow:0 4px 10px #25334d08,0 10px 24px #25334d09;
}
body :is(.task-card h3,.ts-card-title,.prod-card strong){color:var(--k-ink);font-weight:600;line-height:1.5}
body :is(.task-card p,.ts-card-description,.prod-card small){color:var(--k-muted);line-height:1.6}
body .prod-card strong{font-size:13px}body .prod-card small{font-size:11px}
body .task-card.is-complete{background:#f4fbf7;border-color:#dbeee3;box-shadow:var(--k-shadow-card)}
body .task-card.is-complete h3{color:#334e40}
body .task-complete{color:#2e8460;background:#e8f6ed;border-radius:6px;width:fit-content;padding:3px 7px;letter-spacing:0}
/* Same stage accent on roadmap, tasks and production; color is redundant with its title. */
body :is(.task-column,.ts-lane,.prod-column){
 --k-stage-accent:var(--kv-accent,var(--kv-color,var(--status-color,#4e8bf5)));
 background:#f2f4f8;border-color:#edf0f5;box-shadow:none;border-radius:14px;
}
body .ts-lane[data-visual-role=working]{--status-color:#4e8bf5}
body .ts-lane[data-visual-role=done]{--status-color:#29ae78}
body .ts-lane[data-visual-role=pending]{--status-color:#8a95aa}
body :is(.task-column-head,.ts-lane-head,.prod-column>h2){
 position:relative;background:transparent!important;border:0!important;border-radius:0!important;
 padding:8px 5px 14px!important;margin-bottom:5px;color:var(--k-ink);
 font-size:13px;font-weight:600;min-height:44px;
}
body :is(.task-column-head,.ts-lane-head,.prod-column>h2)::after{
 content:"";position:absolute;left:5px;bottom:3px;width:calc(100% - 10px);height:3px;
 border-radius:6px;background:var(--k-stage-accent);opacity:.82;
 box-shadow:0 2px 5px color-mix(in srgb,var(--k-stage-accent) 12%,transparent);
 pointer-events:none;
}
body :is(.task-status-dot){background:var(--k-stage-accent);border-radius:50%;box-shadow:0 0 0 3px color-mix(in srgb,var(--k-stage-accent) 9%,transparent)}
body :is(.task-count,.ts-stage-count){background:#fff;border-radius:6px;padding:3px 6px;font-size:11px;color:var(--k-muted);font-variant-numeric:tabular-nums}
body .ts-stage-name{font-size:13px;color:var(--k-ink);background:transparent}
body .prod-column>h2{display:flex;align-items:center;gap:8px}
body :is(.task-column-add,.ts-quick-plus,.ts-stage-menu){
 background:#fff;border-color:#e6eaf1;border-radius:9px;color:#71819c;box-shadow:0 1px 4px #25334d08;transform:none;
}
body :is(.task-column-add,.ts-quick-plus,.ts-stage-menu):hover{
 background:#edf3ff;border-color:#d5e1f7;color:#3874d0;transform:none;
}
body .prod-stage-count{margin-left:auto;font-size:11px;font-weight:400;color:var(--k-muted);border-radius:6px;background:white;padding:3px 6px}
body .ts-lane.kv-colored>.ts-lane-head{background:transparent;border:0}
body .kv-colored.ts-card{border-left-width:3px}
body :is(.task-column.is-over,.prod-column.is-drop-target,.ts-lane.is-over){background:#edf3ff}
/* A brighter picker dot is separate from accessible text and persisted colors. */
body .kv-row{border-color:var(--k-line);border-radius:14px}
body .kv-swatch{border-radius:11px;background:#f7f8fb;min-height:60px}
body .kv-swatch span{background:var(--swatch-vivid,var(--swatch));width:28px;height:28px;box-shadow:0 2px 6px #17233d12}
body .kv-swatch:hover{background:#edf0f7;box-shadow:0 3px 8px #17233d09}
body .kv-swatch[aria-pressed=true]{border-color:#4987ea;background:#edf3ff}
body .kv-preview{background:var(--kv-bg,#f7f8fb);border-color:var(--kv-accent,var(--kv-color,#8a95aa));border-radius:12px}
body :is(.news-reactions button,.prod-pill,.dy-tag){border-radius:7px}
@media(pointer:coarse){
 html body dialog :is(input:not([type=checkbox]):not([type=radio]),textarea,select){font-size:16px!important}
 body :is(.k-close,.k-picker-dismiss,.ts-stage-menu,.ts-quick-plus,.task-column-add){min-width:44px;min-height:44px}
}
@media(max-width:600px){html body dialog:not(.k-picker){border-radius:18px!important}}
@media(prefers-reduced-motion:reduce){
 body :where(button,a,input,textarea,select,summary,[role=button]){transition:none!important}
 body dialog[open]{animation:none!important}
}
@media print{html body dialog{box-shadow:none!important}body :is(.task-column-head,.ts-lane-head,.prod-column>h2)::after{box-shadow:none}}

/* Keep the existing sticky roadmap stage headings. */
body .task-column-head{position:sticky;background:#f2f4f8!important}

/* The shared palette footer follows the same spacing as editor actions. */
body .kv-dialog .k-form-foot{padding:16px 24px;gap:12px}
@media(max-width:600px){body .kv-dialog .k-form-foot{padding:14px 16px}}

/* 2 October: quiet hover surfaces; roadmap intentionally unchanged. */
html body .dy-team-row{border-color:transparent;box-shadow:var(--k-shadow-card)}
html body .dy-team-row:hover{background:#eef0f5;border-color:transparent;box-shadow:var(--k-shadow-card)}
html body .ts-card:not(.is-dragging):not(.k-touch-ghost):hover{background:color-mix(in srgb,var(--kv-bg,#fff) 92%,#667085 8%);border-top-color:var(--k-line);border-right-color:var(--k-line);border-bottom-color:var(--k-line);box-shadow:var(--k-shadow-card)}
html body .ts-card:not(.kv-colored):hover{border-left-color:var(--k-line)}
html body .content-card{border-color:transparent!important;box-shadow:var(--k-shadow-card)}
html body .content-card:hover{background:color-mix(in srgb,var(--reel-bg,#edf4ff) 90%,#667085 10%)!important;border-color:transparent!important;box-shadow:var(--k-shadow-card)}
html body .content-card.photo:hover{background:color-mix(in srgb,var(--photo-bg,#e9f6ee) 90%,#667085 10%)!important}
html body .content-card.story:hover{background:color-mix(in srgb,var(--story-bg,#fceef0) 90%,#667085 10%)!important}
html body .day.today{box-shadow:none;background:#f1f4fa}
body .taskspace-tabs button:not(.active):hover{background:#dfe5ee;color:#475569;box-shadow:none}
body .ts-quick{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 40px;gap:7px;border-color:var(--k-line);box-shadow:var(--k-shadow-card)}
body .ts-quick>input:first-child{grid-column:1/-1}
body .ts-quick>.k-control{min-width:0}
body .ts-quick-priority{width:40px;min-width:0;display:flex;align-items:center;--priority-accent:#8a95aa}
body .ts-quick-priority .k-control-button{width:40px;height:40px;padding:0;justify-content:center;background:#f7f8fb;border-color:var(--k-line)}
body .ts-quick-priority .k-control-button::before{content:'';width:12px;height:12px;border-radius:50%;background:var(--priority-accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--priority-accent) 12%,white);flex:none}
body .ts-quick-priority .k-control-button>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
body .ts-quick-actions{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) 40px;gap:7px}
body .ts-quick-actions button{min-height:40px;font-size:12px;border-color:transparent}
body .ts-quick-create{background:linear-gradient(135deg,#edf9f1,#e2f3e9);color:#327351}
body .ts-quick-full{background:linear-gradient(135deg,#fff9e9,#faf0d7);color:#806522}
body .ts-quick-cancel{background:linear-gradient(135deg,#fff2f2,#f9e4e7);color:#a85461;font-size:18px!important}
body .ts-quick-actions button:hover{filter:brightness(.97)}
body .ts-quick-simple{grid-template-columns:1fr}

/* Compact workspace and KRAI cyan actions — 2026-10-02. */
:root{--k-brand:#078bc4;--k-focus:#078bc4;--brand-gradient:linear-gradient(135deg,#169ccc,#0785bc)}
html body :is(.k-primary,.btn-solid){background:var(--brand-gradient);border-color:#0785bc}
html body :is(.k-primary,.btn-solid):hover{background:var(--brand-gradient);filter:brightness(.95)}
html body .k-nav a[aria-current=page]{color:#0785bc}
html body :is(.month-sub,.helper-bar,.prod-head .prod-eyebrow,.prod-head .prod-subtitle){display:none}
html body .taskspace-head{margin:0;gap:0;min-height:0}
html body .ts-head-actions:has(button:not([hidden])){margin-bottom:12px}
html body .taskspace-toolbar{gap:10px;align-items:center}
html body .taskspace-toolbar>.kv-task-menu{margin-left:0}
html body .taskspace-toolbar>#task-add{white-space:nowrap}
html body .ts-card,html body .ts-card.compact{display:flex;flex-direction:column;align-items:stretch;gap:9px;padding:14px}
html body .ts-card-title{padding-right:0}
html body .ts-card-top{display:flex;align-items:center;gap:6px;font-size:11px}
html body .ts-card-meta,html body .ts-card.compact .ts-card-meta{margin:0;flex:initial}
html body .ts-card-description{margin:0;font-size:12px}
html body .ts-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:5px}
html body .ts-card-person,html body .ts-card .ts-card-complete{position:static!important;display:grid;place-items:center;width:30px;height:30px;padding:0;border-radius:50%;margin:0;background:transparent;color:#a4abba;border:1px solid transparent}
html body .ts-card-person:hover{background:#e1eef4;color:var(--k-brand)}
.ts-person-avatar{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#eef1f6;color:#76869c;font-size:10px;font-weight:600;overflow:hidden;flex-shrink:0}
.ts-person-avatar img{width:100%;height:100%;object-fit:cover}
.ts-person-avatar svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5}
html body .ts-card .ts-card-complete{border-color:#cdd3de;width:24px;height:24px}
html body .ts-card .ts-card-complete span{opacity:0}
html body .ts-card .ts-card-complete:hover{background:#e3f5ec;border-color:#5eae8c;color:#21855b}
html body .ts-card .ts-card-complete:is(:hover,:focus-visible) span{opacity:1}
.ts-due-badge{border-radius:5px;padding:3px 6px;background:#eef2f7;color:#748197;font-size:10px}
.ts-due-badge.upcoming{background:#eaf6ef;color:#37805c}
.ts-due-badge.overdue{background:#fceced;color:#b84955}
.ts-person-picker{position:fixed;z-index:150;background:#fff;border:1px solid var(--k-line);border-radius:13px;box-shadow:var(--k-shadow-float);padding:8px;display:flex;flex-direction:column;overflow:hidden}
.ts-person-picker-head{display:flex;gap:6px;align-items:center;padding:3px 3px 8px}
.ts-person-picker-head input{width:100%;min-width:0;border:0;border-radius:8px;padding:10px;background:var(--k-field);font-size:13px}
.ts-person-picker-close{border:0;background:var(--k-field);border-radius:8px;color:#8290a4;width:32px;height:32px;flex-shrink:0}
.ts-person-options{overflow:auto;min-height:0}
.ts-person-option{width:100%;display:flex;align-items:center;gap:10px;text-align:left;border:0;border-radius:9px;padding:8px;background:#fff;color:var(--k-ink);font-size:12px}
.ts-person-option:hover,.ts-person-option[aria-pressed=true]{background:#eef4f7}
.ts-person-check{margin-left:auto;color:var(--k-brand)}
.ts-person-empty{padding:12px;color:var(--k-muted);font-size:12px}
@media(max-width:760px){
 html body .taskspace-toolbar{flex-wrap:wrap}
 html body .taskspace-toolbar .taskspace-tabs{width:100%;order:0}
 html body .taskspace-toolbar .ts-toolbar-search{width:auto;flex:1 1 150px;order:1}
 html body .taskspace-toolbar #ts-filter-toggle{order:2}
 html body .taskspace-toolbar #task-add{order:3}
 html body .taskspace-toolbar .kv-task-menu{order:4;margin-left:auto}
 html body .ts-card-person{min-width:36px;min-height:36px}
}
@media(hover:none){html body .ts-card .ts-card-complete span{opacity:.5}}

html body .prod-topbar{display:flex;align-items:center;gap:16px;margin-bottom:17px}
html body .prod-topbar .prod-tabs{flex:1;min-width:0;margin-bottom:0}
html body .prod-topbar .prod-head-actions{flex-shrink:0}
html body .prod-tabs button.active{color:var(--k-brand);border-bottom-color:var(--k-brand)}
@media(max-width:900px){html body .prod-topbar{flex-wrap:wrap}html body .prod-topbar .prod-tabs{flex-basis:100%}html body .prod-topbar .prod-head-actions{margin-left:auto;flex-direction:row}}
/* Shared accessible heading: production has no task-module helper class. */
html body .prod-page>h1.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
html body .prod-topbar .prod-head-actions{margin-left:auto}
html body .prod-toolbar:empty{display:none}

/* Account entry stays quiet; its floating menu is an intentional dark surface. */
html body .k-account{border:0;background:transparent;box-shadow:none;padding:10px 8px;border-radius:12px}
html body .k-account:hover,html body .k-account[aria-expanded=true]{background:#e8edf3}
html body .k-account .k-avatar,html body #k-account-menu .k-avatar{border-radius:50%;width:32px;height:32px}
html body .k-account .k-streak-badge{border:0;background:transparent;box-shadow:none;padding:3px 0 3px 5px}
html body #k-account-menu{background:#202326!important;color:#f2f3f5!important;border:0!important;box-shadow:0 5px 16px #131b2420,0 18px 40px #131b2428!important;border-radius:16px!important;padding:7px;bottom:62px;max-height:calc(100dvh - 100px);overflow:auto;animation:k-surface-enter 160ms var(--k-ease) both}
html body #k-account-menu button{color:#e6e8eb!important;background:transparent!important;border:0;border-radius:9px;padding:11px 10px;min-height:40px;gap:9px;font-size:12px;font-weight:500}
html body #k-account-menu button:not(:disabled):hover{background:#30353a!important;color:#fff!important}
html body #k-account-menu button:focus-visible{outline:2px solid #72c9eb!important;outline-offset:-2px}
html body #k-account-menu button:disabled{opacity:1;cursor:default;color:#a4abb3!important}
html body #k-account-menu .k-icon{color:#969ea8;width:16px;height:16px}
html body #k-account-menu .k-menu-profile{padding:9px 8px 11px;align-items:center}
html body #k-account-menu .k-menu-person{min-width:0;flex:1}
html body #k-account-menu .k-menu-person strong{display:block;font-size:12px;line-height:1.4;overflow-wrap:anywhere;font-weight:600}
html body #k-account-menu small{color:#9ca4ae;font-size:10px;line-height:1.5}
html body #k-account-menu .k-menu-person small{display:block;margin-top:2px}
html body #k-menu-theme small{margin-left:auto}
html body #k-account-menu .k-menu-divider{height:1px;background:#ffffff16;margin:5px 8px}
html body #k-account-menu #k-menu-logout{color:#f08b85!important}
@media(prefers-reduced-motion:reduce){html body #k-account-menu{animation:none}}

/* Password controls retain native autocomplete and accessible reveal state. */
.k-password-field{position:relative;display:block}
html body .k-password-field input{padding-right:48px!important;width:100%;min-width:0}
html body .k-password-field .k-password-eye{position:absolute;right:5px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:9px;background:transparent;color:#7c899d;padding:8px}
html body .k-password-field .k-password-eye:hover{background:#e9edf4}
.k-password-eye svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6}
.k-password-fields{display:grid;gap:16px}
#k-password-open{margin-top:18px}
#k-reset-link{overflow-wrap:anywhere}

/* Shared inbox sits next to the profile on all full workspace pages. */
html body .k-account-row{display:flex;align-items:center;gap:4px}
html body .k-account-row .k-account{flex:1;min-width:0;width:auto;padding-left:2px;padding-right:2px;gap:6px}
html body .k-notice-bell{position:relative;flex:none;width:36px;height:40px;display:grid;place-items:center;border:0;border-radius:10px;background:transparent;color:#73849a;padding:7px}
html body .k-notice-bell:hover{background:#e7edf4;color:#0586b8}
html body .k-notice-bell:focus-visible{outline:2px solid #61bce1;outline-offset:2px}
html body #k-notice-count{position:absolute;right:-2px;top:0;min-width:16px;height:16px;padding:0 4px;border-radius:9px;background:#078ec3;color:#fff;font-size:9px;line-height:16px}
html body dialog.k-notice-panel{position:fixed;inset:12px 12px 12px auto;margin:0;width:min(480px,calc(100vw - 24px));max-width:none;height:calc(100dvh - 24px);max-height:calc(100dvh - 24px);padding:0;overflow:hidden;display:flex;flex-direction:column;border-radius:18px}
html body dialog.k-notice-panel:not([open]){display:none}
html body .k-notice-panel .k-dialog-head{flex:none;padding:20px}
html body .k-notice-tools{padding:0 20px 12px;flex:none}
html body .k-notice-tabs{display:flex;gap:3px;background:#f1f3f6;border-radius:10px;padding:3px;margin-bottom:10px}
html body .k-notice-tabs button{flex:1;padding:9px 4px;font-size:11px;background:transparent;border:0;border-radius:8px;color:#718095}
html body .k-notice-tabs button:hover{background:#e8edf2}
html body .k-notice-tabs button[aria-pressed=true]{background:white;color:#088bbb;box-shadow:0 2px 5px #243d6410}
html body .k-notice-scroll{overflow:auto;min-height:0;flex:1;overscroll-behavior:contain;padding:0 20px 20px}
html body .k-notice-item{padding:14px 0;border-bottom:1px solid #eef0f4}
html body .k-notice-link{position:relative;display:block;width:100%;text-align:left;border:0;border-radius:10px;background:transparent;padding:10px 12px;color:#33435a}
html body .k-notice-link:hover{background:#f1f3f6}
html body .k-notice-link span{display:block;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
html body .k-notice-link small{display:block;font-size:10px;color:#8b97a8;margin-top:7px}
html body .k-notice-item.unread .k-notice-link{background:#f2f8fc}
html body .k-notice-item.unread .k-notice-link:before{content:'';position:absolute;left:2px;top:17px;width:5px;height:5px;background:#0898cb;border-radius:50%}
html body .k-notice-actions{display:flex;justify-content:flex-end;gap:15px;margin:6px 8px 0}
html body .k-notice-actions button{font-size:10px}
html body .k-notice-empty{color:#8b97a8;text-align:center;padding:50px 12px;font-size:13px}
@media(max-width:600px){html body dialog.k-notice-panel{inset:0;width:100%;height:100dvh;max-height:100dvh;border-radius:0}html body .k-notice-panel .k-dialog-head{padding-top:max(20px,env(safe-area-inset-top))}html body .k-notice-scroll{padding-bottom:max(20px,env(safe-area-inset-bottom))}}

/* 3 October: shared open-card rhythm, quiet fields and readable sections. */
html body dialog:not(.k-picker):not(.k-notice-panel){
 --k-field:#f6f7f9;--k-field-hover:#eef0f4;
 border-color:#eef0f4!important;
}
html body dialog :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):not([type=hidden]),textarea,select,.k-control-button){
 border-color:transparent!important;border-radius:10px!important;
}
html body dialog :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):not([type=hidden]),textarea,select,.k-control-button):hover{
 border-color:transparent!important;
}
html body dialog :is(input:not([type=checkbox]):not([type=radio]),textarea,select,.k-control-button):focus-visible{
 outline:2px solid var(--k-focus)!important;outline-offset:1px;box-shadow:none!important;
}
html body dialog :is(input,textarea,select,.k-control-button):disabled{opacity:.68}
html body dialog :is(.k-dialog-head,.ts-dialog-head,.editor-top,.modal-head,.dialog-head,.dy-head){
 padding:20px 26px;gap:14px;
}
html body dialog :is(.k-dialog-head,.ts-dialog-head,.editor-top,.modal-head,.dialog-head,.dy-head) h2{
 font-size:20px;font-weight:650;line-height:1.35;margin:0;
}
html body dialog :is(.k-close,.dy-close,.ts-dialog-head>button,#prod-close,#close-editor,.modal-head>button[aria-label^="Закрыть"],.dialog-head>button[aria-label^="Закрыть"]){
 display:grid;place-items:center;width:38px;height:38px;min-width:38px;min-height:38px;
 border:0!important;border-radius:50%;padding:0;background:#f3f4f7!important;color:#778396;flex:none;
}
html body dialog :is(.modal-head>button[aria-label^="Закрыть"],.dialog-head>button[aria-label^="Закрыть"]):hover{background:#e9edf2!important}
body dialog :is(.ts-form-foot,.modal-foot,.editor-foot,.prod-form-actions,.k-form-foot){
 box-shadow:none;border-top-color:var(--k-line);gap:10px;
}
body dialog :is(.field-label,.k-field,.prod-field,.news-field,.ts-form label){font-weight:500;color:var(--k-muted)}
body dialog :is(textarea){line-height:1.65}
body dialog :is(.ts-comment,.task-comment,.news-comment){border-color:var(--k-line);line-height:1.6}
body dialog :is(.ts-comment p,.task-comment p){color:var(--k-ink)}
body dialog :is(.prod-form-grid,.k-form-grid){gap:18px}
body dialog :is(.ts-member-details,.news-official-controls label){
 border-color:transparent;border-radius:10px;background:var(--k-field);box-shadow:none;
}
body dialog :is(.ts-member-details,.news-official-controls label):hover{background:var(--k-field-hover)}
body dialog .ts-member-details[open]{background:#f6f7f9}
body dialog :is(.news-modal fieldset,.ts-form-main>fieldset){
 border:0;border-top:1px solid var(--k-line);border-radius:0;padding:18px 0 0;margin:0;min-width:0;
}
body dialog :is(.ts-form-main>fieldset,.news-modal fieldset)>legend{
 padding:0 10px 0 0;font-size:13px;font-weight:600;color:var(--k-ink);
}
body .news-modal fieldset{border:0;border-top:1px solid var(--k-line);border-radius:0;padding:18px 0 0}
body .news-modal legend{font-size:13px;color:var(--k-ink);padding-left:0}
body .task-dialog .task-editor-side{background:transparent;border-left-color:var(--k-line)}
body .task-dialog .task-extras h3,body dialog #roadmap-attachments h3{
 font-size:13px;font-weight:600;margin:22px 0 14px;
}
body .news-modal .news-upload-zone,body dialog .roadmap-file-zone{background:#f7f8fa;border-color:#e0e5ec;color:var(--k-muted)}
/* One reading column: heading, properties, description and discussion.
   Existing IDs, controls, permissions, draft and submit handlers are retained. */
html body #ts-editor{width:min(820px,calc(100vw - 32px));overflow:hidden}
body #ts-editor .ts-form-grid{display:block!important}
body #ts-editor .ts-form-main{padding:24px 28px 28px;gap:24px}
body #ts-editor .ts-form-side{
 padding:0;background:transparent;border:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px;
}
body #ts-editor .ts-form-side>label{
 display:grid;grid-template-columns:100px minmax(0,1fr);align-items:center;gap:8px;min-width:0;font-size:12px;
}
body #ts-editor .ts-form-side>label :is(input,.k-control){min-width:0;width:100%;margin:0}
body #ts-editor .ts-form-side .k-control-button{min-height:38px}
body #ts-editor .ts-form-side>label>input{min-height:38px;padding:8px 10px}
body #ts-editor .ts-form-main>label:first-child{gap:8px}
html body #ts-title{
 font-size:23px!important;font-weight:600;line-height:1.4;min-height:48px;padding:8px 12px;
 background:transparent!important;border-radius:10px!important;
}
html body #ts-title:hover{background:var(--k-field)!important}
body #ts-editor .ts-form-main>label:nth-of-type(2){font-size:13px;font-weight:600;color:var(--k-ink);gap:12px}
body #ts-description{min-height:110px;padding:12px 14px}
body #ts-editor .ts-audience{grid-column:1/-1;background:transparent;padding:0;margin:0;color:var(--k-muted);font-size:11px;line-height:1.6}
body #ts-editor .ts-extra-properties{grid-column:1/-1;border-top:1px solid var(--k-line);padding-top:12px}
body #ts-editor .ts-extra-properties>summary{cursor:pointer;color:var(--k-muted);font-size:12px;padding:5px 0}
body #ts-editor .ts-extra-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px;padding-top:16px}
body #ts-editor .ts-extra-grid>label:has(#ts-people-search){grid-column:1/-1}
body #ts-editor .ts-extra-grid>fieldset{grid-column:1/-1;padding:12px;border-color:var(--k-line)}
body #ts-editor .ts-extra-grid>fieldset>div{max-height:none}
body #ts-editor .ts-extra-grid>label,body #ts-editor .ts-member-details{min-width:0}
body #ts-editor .ts-member-details{margin:0;padding:11px 12px}
body #ts-editor .ts-form-foot{padding:16px 26px;flex-wrap:wrap;background:#fff}
body #ts-editor.ts-template-mode :is(.ts-extra-properties,.ts-audience){display:none}
body #ts-editor.ts-template-mode .ts-form-side{grid-template-columns:1fr}
body #ts-editor.ts-template-mode .ts-form-side>label:has(#ts-task-priority){max-width:340px}
@media(max-width:760px){
 html body #ts-editor{width:calc(100vw - 16px)}
 body #ts-editor .ts-form-main{padding:20px;gap:22px}
 body #ts-editor .ts-form-side{grid-template-columns:1fr;gap:10px}
 body #ts-editor .ts-extra-grid{grid-template-columns:1fr}
 body #ts-editor .ts-form-side>label{grid-template-columns:112px minmax(0,1fr)}
 html body dialog :is(.k-dialog-head,.ts-dialog-head,.editor-top,.modal-head,.dialog-head,.dy-head){padding:18px 20px}
 body #ts-editor .ts-form-foot{padding:14px 20px}
}
@media(max-width:360px){
 body #ts-editor .ts-form-main{padding:16px}
 body #ts-editor .ts-form-side>label{grid-template-columns:95px minmax(0,1fr);gap:6px}
}
@media(pointer:coarse){
 html body dialog :is(.k-close,.dy-close,.ts-dialog-head>button,#prod-close,#close-editor,.modal-head>button[aria-label^="Закрыть"],.dialog-head>button[aria-label^="Закрыть"]){width:44px;height:44px;min-width:44px;min-height:44px}
 body #ts-editor .ts-form-side .k-control-button,body #ts-editor .ts-form-side>label>input{min-height:44px}
}

/* Production has long specialist forms: one scroll area, full editor width. */
html body dialog.prod-dialog{width:min(820px,calc(100vw - 32px));max-height:min(calc(100dvh - 28px),calc(var(--k-visible-height,100dvh) - 28px));overflow:hidden}
html body dialog.prod-dialog[open]{display:flex;flex-direction:column}
body .prod-dialog>.k-dialog-head{flex:none}
body .prod-dialog-body{min-height:0;max-height:none;overflow:auto;overscroll-behavior:contain;padding:24px 26px}
body .prod-form-grid>.full{grid-column:1/-1}
body .prod-dialog .prod-field :is(input,textarea,.k-control-button){font-size:13px}
body .prod-dialog .prod-form-actions{position:sticky;bottom:-24px;background:#fff;padding:16px 0;margin-top:24px;z-index:2}
@media(max-width:760px){
 html body dialog.prod-dialog{width:calc(100vw - 16px)}
 body .prod-dialog-body{padding:20px}
 body .prod-dialog .prod-form-actions{bottom:-20px}
}

/* Roadmap follows the same reading order without mixing files and properties. */
html body dialog#task-dialog{width:min(740px,calc(100vw - 32px));max-height:min(calc(100dvh - 28px),calc(var(--k-visible-height,100dvh) - 28px));overflow:hidden}
html body dialog#task-dialog[open]{display:flex;flex-direction:column}
body #task-dialog>.k-dialog-head{flex:none}
html body #task-dialog #task-form{padding:24px 26px;min-height:0;overflow:auto;overscroll-behavior:contain}
html body #task-dialog .task-editor-grid{display:block}
html body #task-dialog .task-editor-main{display:flex;flex-direction:column;gap:22px;padding:0;min-width:0}
html body #task-dialog .task-editor-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px;padding:0;border:0;background:transparent}
body #task-dialog .task-editor-side>.k-field{display:grid;grid-template-columns:95px minmax(0,1fr);align-items:center;gap:8px}
body #task-dialog .task-editor-side .k-control{margin:0;min-width:0}
html body #task-title{font-size:22px!important;font-weight:600;background:transparent!important;padding:8px 12px;min-height:48px}
html body #task-title:hover{background:var(--k-field)!important}
body #task-dialog :is(#roadmap-attachments,.task-extras){border-top:1px solid var(--k-line);padding-top:0}
body #task-dialog .k-form-foot{position:sticky;bottom:-24px;padding:16px 0;background:white;margin-top:24px;z-index:2}
@media(max-width:760px){
 html body dialog#task-dialog{width:calc(100vw - 16px)}
 html body #task-dialog #task-form{padding:20px}
 html body #task-dialog .task-editor-side{grid-template-columns:1fr;gap:10px}
 body #task-dialog .k-form-foot{bottom:-20px}
}

/* Main content/news editors keep their action row outside the scrolling body. */
html body dialog#editor,html body dialog.news-modal{overflow:hidden}
html body dialog#editor[open],html body dialog.news-modal[open]{display:flex;flex-direction:column}
body #editor>.editor-top,body .news-modal .modal-head{flex:none}
body #editor-form,body .news-modal>form{display:flex;flex-direction:column;min-height:0;overflow:hidden}
body #editor .editor-body,body .news-modal .modal-body{min-height:0;overflow:auto;overscroll-behavior:contain}
body #editor .editor-foot,body .news-modal .modal-foot{flex:none;position:relative}
body dialog,body dialog :is(.ts-form-grid,.prod-dialog-body,.editor-body,.modal-body,#task-form){scrollbar-width:thin;scrollbar-color:#c7cdd7 transparent}

/* Approved task layout: content first, native-backed quick fields pinned below. */
html body #ts-editor .ts-form-main>.ts-extra-properties{display:block;margin:20px 0;padding-top:14px;border-top:1px solid var(--k-line)}
html body #ts-editor .ts-form-main>.ts-extra-properties>summary{padding:5px 0 15px;color:var(--k-muted);font-size:12px}
html body #ts-editor .ts-form-side{border:0;margin:0;padding:0}
html body #ts-editor .ts-pinned-foot{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:10px;padding:12px 24px 18px}
html body #ts-editor .ts-footer-fields{display:grid;grid-template-columns:minmax(120px,.75fr) minmax(140px,1fr) 44px 120px;align-items:end;gap:10px}
html body #ts-editor .ts-footer-fields>label{display:block;min-width:0;margin:0;font-size:11px;color:var(--k-muted)}
html body #ts-editor .ts-footer-due>span{display:block;margin:0 0 4px 2px}
html body #ts-editor .ts-footer-fields .k-control{width:100%;display:flex;margin:0}
html body #ts-editor .ts-footer-fields .k-control-button{min-width:0;min-height:44px;padding:9px 12px;gap:8px;overflow:hidden}
html body #ts-editor .ts-footer-person .ts-person-avatar{width:28px;height:28px;flex-shrink:0;border-radius:50%;overflow:hidden}
html body #ts-editor .ts-footer-person .ts-person-avatar img{width:100%;height:100%;object-fit:cover}
html body #ts-editor .ts-footer-person .k-control-chevron{display:none}
html body #ts-editor .ts-footer-priority{width:44px}
html body #ts-editor .ts-footer-priority .k-control-button{width:44px;height:44px;padding:0;justify-content:center}
html body #ts-editor .ts-footer-priority .k-control-button::before{width:13px;height:13px}
html body #ts-editor .ts-pinned-foot #ts-save{width:100%;min-height:44px;margin:0}
html body #ts-editor .ts-secondary-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
html body #ts-editor .ts-secondary-actions [hidden]{display:none!important}
@media(max-width:600px){html body #ts-editor .ts-pinned-foot{padding:10px 15px max(12px,env(safe-area-inset-bottom))}html body #ts-editor .ts-footer-fields{gap:7px}html body #ts-editor .ts-footer-fields .k-control-button{font-size:12px;padding:8px;gap:6px}html body #ts-editor .ts-footer-due .k-control-chevron{display:none}}

html body #ts-editor.ts-template-mode .ts-form-main>.ts-extra-properties{display:none}

/* Task-to-plan assignment lives in the existing pinned footer. */
html body #ts-editor .ts-footer-fields>.ts-footer-plan{display:flex;align-items:center;gap:7px;min-height:44px;font-size:12px;white-space:nowrap;color:var(--k-ink)}
html body #ts-editor .ts-footer-plan input{width:18px;height:18px;min-height:0;flex:none;margin:0;accent-color:var(--k-focus)}
html body #ts-editor .ts-footer-plan[hidden],html body #ts-editor .ts-plan-date-row[hidden]{display:none!important}
html body #ts-editor .ts-plan-date-row{display:flex;align-items:end;flex-wrap:wrap;gap:10px}
html body #ts-editor .ts-plan-date-row>label{width:190px;margin:0;color:var(--k-muted);font-size:11px}
html body #ts-editor .ts-plan-date-row>label>span{display:block;margin-bottom:4px}
html body #ts-editor .ts-plan-date-row small{flex:1;min-width:160px;color:var(--k-muted);font-size:12px;padding-bottom:12px}
@media(max-width:600px){
 html body #ts-editor .ts-footer-fields{grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);grid-template-areas:"person person plan" "due priority plan"}
 html body #ts-editor .ts-footer-person{grid-area:person}
 html body #ts-editor .ts-footer-due{grid-area:due}
 html body #ts-editor .ts-footer-priority{grid-area:priority}
 html body #ts-editor .ts-footer-plan{grid-area:plan;justify-content:center;white-space:normal}
 html body #ts-editor .ts-plan-date-row>label{width:100%}
 html body #ts-editor .ts-plan-date-row small{padding-bottom:0}
}


/* Constrain the task form to the real visible viewport, including iOS keyboard. */
html body #ts-editor{
 max-height:min(calc(100dvh - 24px),calc(var(--k-visible-height,100dvh) - 24px));
}
html body #ts-editor .ts-form{
 flex:1 1 auto;min-width:0;
 max-height:min(calc(100dvh - 26px),calc(var(--k-visible-height,100dvh) - 26px));
}
html body #ts-editor .ts-form-grid{min-width:0;overscroll-behavior:contain}
html body #ts-editor .ts-footer-fields{flex:none;min-width:0}
@media(max-width:600px){
 html body #ts-editor #ts-title{font-size:20px!important}
 html body #ts-editor .ts-footer-person .k-control-label{flex:1;min-width:0}
}
/* With little vertical space one form scrolls, so no pinned panel hides fields. */
html.k-keyboard-open body #ts-editor .ts-form{display:block;overflow:auto;overscroll-behavior:contain;scroll-padding:88px 0 16px}
html.k-keyboard-open body #ts-editor .ts-form-grid{overflow:visible}
html.k-keyboard-open body #ts-editor .ts-pinned-foot{position:relative;flex-wrap:nowrap}
@media(max-height:520px){
 html body #ts-editor .ts-form{display:block;overflow:auto;overscroll-behavior:contain;scroll-padding:88px 0 16px}
 html body #ts-editor .ts-form-grid{overflow:visible}
 html body #ts-editor .ts-pinned-foot{position:relative;flex-wrap:nowrap}
}

/* Task author is metadata below the heading, never confused with the assignee. */
html body #ts-editor .ts-task-setter{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 6px;margin:6px 0 0;font-size:12px;line-height:1.5;color:var(--k-muted);overflow-wrap:anywhere}
html body #ts-editor .ts-task-setter[hidden]{display:none}
html body #ts-editor .ts-task-setter-name{color:var(--k-ink);font-weight:500}
html body #ts-editor .ts-dialog-head>div{min-width:0}

[executed on device: circbkckda (e72f959f-4d5f-40b8-8689-b00bc7b2477d)]
