/* Shared visual system. Gray is the default; all themes share geometry. */
:root{--bg:#f5f7f5;--side:#e9eeea;--surface:#fff;--panel:#f0f4f1;--hover:#e7eee9;--line:#c9d3cc;--text:#25382d;--muted:#4e6255;--soft:#58695e;--blue:#076b96;--blue-bg:#dcecf2;--on-accent:#fff;--button-accent:#086c99;--button-hover:#075a81;--red:#a52f3f;--red-bg:#f6e3e5;--amber:#805016;--amber-bg:#f0e5cf;--green:#216440;--green-bg:#dcefe2;--backdrop:#162d284f;--shadow:0 3px 8px #1b332415;--radius-control:11px;--radius-card:16px;--radius-small:8px;--speed:180ms;--ease:cubic-bezier(.22,1,.36,1);--font:Inter,"Segoe UI",Arial,sans-serif;color-scheme:light}
html[data-theme=gray]{--bg:#d7dcd8;--side:#cbd3cd;--surface:#e4e8e3;--panel:#dce3dc;--hover:#d0ddd3;--line:#b4c0b7;--text:#23382b;--muted:#475d4e;--soft:#506457;--blue:#06698e;--blue-bg:#c9e0e5;--red:#9a2637;--red-bg:#e9cfd3;--amber:#755019;--amber-bg:#e6dbc1;--green:#205d3b;--green-bg:#c6decc}
html[data-theme=dark]{--bg:#191f1c;--side:#1f2822;--surface:#26312a;--panel:#2c3830;--hover:#35443a;--line:#475a4d;--text:#e8eee9;--muted:#c0ccc3;--soft:#b5c2b9;--blue:#9ad5eb;--blue-bg:#274a59;--red:#ffadb8;--red-bg:#4a3038;--amber:#f0cc8d;--amber-bg:#493f2e;--green:#a3e0b9;--green-bg:#294534;--backdrop:#08150db3;color-scheme:dark}
/* Site palette: migals.ru, verified 2026-10-09. State colors keep their meaning. */
html[data-theme=brand]{--bg:#212632;--side:#1b202a;--surface:#2a303d;--panel:#2c3341;--hover:#2d3442;--line:#3a4150;--control-line:#79859b;--text:#fff;--muted:#aeb6c4;--soft:#aeb6c4;--blue:#5e9bff;--blue-bg:#243146;--button-accent:#2f6fd8;--button-hover:#295fba;--switch-on-bg:#2f6fd8;--red:#ffadb8;--red-bg:#49313c;--amber:#edc78a;--amber-bg:#443b2e;--green:#99dbae;--green-bg:#293d35;--backdrop:#111723bd;--shadow:0 3px 8px #11172340;color-scheme:dark}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 var(--font);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:0}button:disabled{cursor:default;opacity:.55}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent;transition:background-color var(--speed) var(--ease),color var(--speed) var(--ease),border-color var(--speed) var(--ease)}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}:is(button,a,input,select,textarea,summary,canvas):focus-visible{outline:3px solid var(--blue);outline-offset:3px}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}button>span[data-icon]{display:inline-flex}input,select,textarea{min-width:0}input::placeholder,textarea::placeholder{color:var(--soft);opacity:1}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 14px;border:1px solid var(--control-line,var(--line));border-radius:var(--radius-control);background:var(--surface);font-size:14px;font-weight:500;line-height:1.35;white-space:nowrap}.btn:hover{background:var(--hover)}.btn:active:not(:disabled){transform:translateY(1px)}.btn.primary{background:var(--button-accent);color:var(--on-accent);border-color:transparent;font-weight:600}.btn.primary:hover{background:var(--button-hover)}.btn.primary:disabled{opacity:.7}.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover{background:var(--hover)}.text-link{display:inline-flex;align-items:center;gap:6px;color:var(--blue);background:transparent;padding:8px 0;min-height:40px;font-size:14px;line-height:1.4}.text-link:hover{text-decoration:underline;text-underline-offset:3px}.text-link svg{width:18px;height:18px}.danger{color:var(--red)}.icon-button{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border-radius:var(--radius-control);color:var(--muted);flex-shrink:0}.icon-button:hover{background:var(--hover)}.quiet{font-size:13px;line-height:1.55;color:var(--muted)}.inline-error{color:var(--red);font-size:14px;background:var(--red-bg);padding:12px;border-radius:var(--radius-small);margin-top:12px;overflow-wrap:anywhere}
/* Navigation */
.work-bar{height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 24px;background:var(--side);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.connection-state{color:var(--muted);font-size:13px;display:flex;align-items:center;gap:8px}.connection-state:before{content:"";width:6px;height:6px;background:var(--green);border-radius:50%;flex-shrink:0}.connection-error{color:var(--red)}.connection-error:before{background:var(--red)}.work-tools{display:flex;align-items:center;gap:8px;margin-left:auto}.utility-button{background:transparent;border-color:transparent;padding:8px 12px}.utility-button svg{width:21px;height:21px}.unread-count:empty{display:none}.unread-count{min-width:20px;height:20px;padding:0 5px;border-radius:20px;background:var(--blue-bg);color:var(--blue);font-size:12px;font-weight:600;display:inline-grid;place-items:center}.menu-toggle{display:none}.shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:calc(100dvh - 64px)}.sidebar{background:var(--side);border-right:1px solid var(--line);padding:24px 16px 18px;display:flex;flex-direction:column;position:sticky;top:64px;height:calc(100dvh - 64px)}.brand{display:flex;align-items:center;flex-direction:column;gap:8px;margin:0 0 32px;color:var(--muted)}.brand:hover{text-decoration:none}.brand-logo{width:186px;height:66px;object-fit:cover;object-position:center;display:block}.brand-sub{font-size:12px}.sidebar nav{display:grid;gap:6px}.nav-item{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;border-radius:var(--radius-control);padding:12px 14px;background:transparent;color:var(--muted);text-align:left;font-size:14px}.nav-item:hover{background:var(--hover);color:var(--text)}.nav-item.active{background:var(--blue-bg);color:var(--text);font-weight:600}.nav-item.active svg{color:var(--blue)}.nav-count{margin-left:auto;color:var(--muted);font-weight:400;font-size:12px}.settings-link{margin-top:auto}.sidebar-footer{padding:18px 10px 0;display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px}.sidebar-footer small{display:block;font-size:12px;margin-top:4px}main{min-width:0;display:flex;flex-direction:column}.page-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:30px 32px 24px}.page-heading{min-width:0}.page-header h1{font-size:28px;font-weight:600;letter-spacing:-.025em;line-height:1.3}.eyebrow{display:block;font-size:12px;color:var(--muted);margin-bottom:8px}.header-actions{display:flex;gap:8px;flex-shrink:0}#content{padding:0 32px 32px;min-width:0}.page-footer{margin-top:auto;padding:24px 32px;color:var(--muted);font-size:12px}.avatar{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;border-radius:50%;background:var(--blue-bg);color:var(--blue);font-size:11px;font-weight:600}.photo-avatar{object-fit:cover;object-position:center;background:var(--panel)}.director-avatar{background:var(--hover);color:var(--muted)}
/* Tasks */
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px;padding:4px;background:var(--panel);border-radius:var(--radius-control);width:fit-content;max-width:100%}.tab{display:flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 12px;background:transparent;border-radius:var(--radius-small);font-size:14px;color:var(--muted);white-space:nowrap}.tab:hover{background:var(--hover)}.tab.active{background:var(--surface);color:var(--text);font-weight:600}.tab-count{display:inline-grid;place-items:center;min-width:20px;padding:0 5px;height:20px;background:var(--hover);color:var(--muted);border-radius:6px;font-size:12px;font-weight:400}.filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px}.filter-fields{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.filter-label select,.mobile-status select,.filter-note-date{min-height:44px;padding:10px 32px 10px 12px;max-width:260px;background:var(--surface);border:1px solid var(--control-line,var(--line));border-radius:var(--radius-control);font-size:14px}.search-box{height:44px;display:flex;align-items:center;gap:8px;margin-left:auto;border:1px solid var(--control-line,var(--line));border-radius:var(--radius-control);background:var(--surface);padding:0 12px;color:var(--muted);max-width:270px}.search-box input{border:0;background:transparent;outline:0;color:var(--text);font-size:14px;width:200px;height:100%}.search-box:focus-within{outline:3px solid var(--blue);outline-offset:2px}.search-box input:focus-visible{outline:0}.mobile-task-tools{display:none}.filter-dot{width:6px;height:6px;background:var(--blue);border-radius:50%}.list-caption{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:13px;margin-bottom:14px}.list-caption>span:first-child{min-width:0;overflow-wrap:anywhere}.task-table{border:1px solid var(--line);border-radius:var(--radius-card);overflow:hidden;background:var(--surface)}.table-head,.task-row{display:grid;grid-template-columns:minmax(195px,1.7fr) minmax(145px,1fr) minmax(140px,1fr) 116px 116px;align-items:center;gap:14px;padding:0 20px}.table-head{min-height:46px;padding-right:38px;background:var(--panel);color:var(--muted);font-size:12px;border-bottom:1px solid var(--line)}.task-row{position:relative;width:100%;min-height:104px;padding-top:18px;padding-bottom:18px;padding-right:38px;background:var(--surface);border-bottom:1px solid var(--line);text-align:left;font-size:14px}.task-row:last-child{border-bottom:0}.task-row:hover{background:var(--panel)}.task-row:focus-visible{outline-offset:-3px}.task-cell{min-width:0}.task-title{display:block;font-size:16px;font-weight:600;line-height:1.45;overflow-wrap:anywhere}.task-row:hover .task-title{color:var(--blue)}.task-sub{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;margin-top:8px;font-size:12px;color:var(--muted);line-height:1.5}.task-id{white-space:nowrap;font-variant-numeric:tabular-nums}.task-problem{display:block;color:var(--amber);font-size:14px;margin-top:8px;overflow-wrap:anywhere}.new-comment{display:inline-flex;align-items:center;gap:5px;color:var(--blue);font-weight:600}.new-comment:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.stale-label{color:var(--amber)}.person,.project-name{display:flex;gap:8px;align-items:center;min-width:0;font-size:14px}.person>span:last-child,.project-name>span{overflow-wrap:anywhere}.project-name{line-height:1.45}.object-avatar{width:28px;height:28px;object-fit:cover;border-radius:var(--radius-small);flex-shrink:0}.general-icon{display:inline-grid;place-items:center;background:var(--panel);color:var(--muted)}.general-icon svg{width:19px;height:19px}.due{font-weight:500;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:14px}.due small{font-size:12px;font-weight:400;display:block;white-space:normal;line-height:1.4;margin-top:4px}.overdue{color:var(--red)}.state{display:inline-flex;align-items:center;gap:6px;width:max-content;padding:5px 9px;border-radius:var(--radius-small);font-size:12px;color:var(--text);background:var(--hover);white-space:nowrap}.state.work{background:var(--blue-bg);color:var(--blue)}.state.done{background:var(--green-bg);color:var(--green)}.state.problem{background:var(--amber-bg);color:var(--amber)}.state-dot{width:6px;height:6px;border:1.5px solid currentColor;border-radius:50%}.state.work .state-dot,.state.done .state-dot{background:currentColor}.task-open-hint{position:absolute;right:10px;top:50%;transform:translateY(-50%);display:flex;color:var(--muted)}.task-open-hint svg{width:16px;height:16px}.empty{padding:48px 24px;color:var(--muted);text-align:center}.empty>svg{width:32px;height:32px;margin-bottom:16px}.empty h2{font-size:20px;color:var(--text);margin-bottom:8px}.empty p{margin-bottom:20px}.journal-intro{color:var(--muted);font-size:14px;margin-bottom:24px;max-width:70ch}
/* People, objects and settings */
.people-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;max-width:1200px}.person-card{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);padding:20px;min-width:0}.person-card.inactive{background:var(--panel)}.person-card-top{display:flex;align-items:center;gap:16px;min-height:112px}.person-photo-button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;align-self:flex-start;background:transparent;padding:0;border-radius:var(--radius-control);flex-shrink:0;width:90px;min-height:100px}.person-photo-button>.avatar{width:68px;height:68px;font-size:20px;border:2px solid var(--surface)}.person-photo-button:hover>.avatar{outline:2px solid var(--blue)}.camera-badge{position:absolute;top:46px;right:6px;background:var(--blue-bg);color:var(--blue);border:2px solid var(--surface);width:28px;height:28px;border-radius:50%;display:grid;place-items:center}.camera-badge svg{width:15px;height:15px}.photo-caption{font-size:12px;color:var(--blue);line-height:1.3}.person-card-info{min-width:0;align-self:flex-start;padding-top:4px}.person-card-info h2{font-size:17px;line-height:1.4;overflow-wrap:anywhere;font-weight:600}.person-card-info p{margin-top:8px;color:var(--muted);font-size:13px}.person-access{display:block;font-size:12px;color:var(--muted);margin-top:6px}.card-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;border-top:1px solid var(--line);padding-top:16px;margin-top:20px}.card-actions .btn{padding:8px 10px}.object-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:1200px}.object-card{min-width:0;border:1px solid var(--line);border-radius:var(--radius-card);overflow:hidden;background:var(--surface)}.object-cover-button{display:block;position:relative;width:100%;aspect-ratio:16/9;background:var(--panel);padding:0;color:var(--muted);overflow:hidden}.object-cover{width:100%;height:100%;display:block;object-fit:cover}.cover-placeholder{height:100%;display:flex;align-items:center;justify-content:center;padding-bottom:24px}.cover-placeholder svg{width:52px;height:52px;stroke-width:1.2}.cover-action{position:absolute;left:16px;bottom:14px;display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:8px 10px;border-radius:var(--radius-small);background:var(--surface);color:var(--blue);font-size:13px}.cover-action svg{width:17px;height:17px}.object-cover-button:hover .cover-action{background:var(--blue-bg)}.object-card-body{padding:20px}.object-card-title{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:44px;background:none;text-align:left;padding:0;color:var(--text);font-size:18px;font-weight:600;line-height:1.4}.object-card-title span{overflow-wrap:anywhere}.object-card-title svg{color:var(--muted);width:18px;height:18px}.object-card-title:hover{color:var(--blue)}.object-description{color:var(--muted);font-size:14px;margin-top:8px;overflow-wrap:anywhere}.object-card-stats{display:flex;flex-wrap:wrap;gap:12px 20px;color:var(--muted);font-size:13px;margin-top:16px}.object-card-stats strong{font-size:16px;color:var(--text)}.object-card-stats .overdue strong{color:var(--red)}.object-card .card-actions{margin-top:16px}.settings-page{max-width:900px;display:grid;gap:20px}.settings-section{padding:24px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.settings-heading{display:flex;align-items:center;gap:12px;margin-bottom:12px}.settings-heading>svg{color:var(--muted)}.settings-heading h2{font-size:19px;font-weight:600}.settings-section>p{max-width:70ch;color:var(--muted);margin-bottom:20px}.settings-section>p:last-child{margin-bottom:0}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);min-width:0}.settings-row:last-child{border-bottom:0}.settings-row>span{overflow-wrap:anywhere;min-width:0}.settings-buttons{display:flex;gap:12px;flex-wrap:wrap}
/* Notes and employee screen */
.note-card{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);padding:24px;margin-bottom:16px;max-width:900px}.note-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:13px;margin-bottom:12px}.note-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;font-size:15px;margin-bottom:20px;max-width:75ch}.note-controls,.note-foot{display:flex;gap:16px;flex-wrap:wrap}.note-foot{justify-content:space-between}.filter-note-date{max-width:180px}.employee.shell{grid-template-columns:1fr}.employee .sidebar{display:none}.employee main{max-width:920px;width:100%;margin:auto;min-height:calc(100dvh - 64px)}.employee-summary{color:var(--muted);margin-bottom:24px}.employee-group{margin-bottom:28px}.group-heading{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600;margin-bottom:14px}.employee-card{width:100%;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);padding:20px;margin-bottom:12px;text-align:left}.employee-card:hover{background:var(--panel)}.employee-card .task-title{margin-bottom:14px}.employee-card-foot{display:flex;justify-content:space-between;align-items:center;gap:16px}.employee-card .task-sub{margin-top:16px}.employee-bottom{padding-top:20px}
/* Dialogs and forms */
dialog{color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);padding:0;max-height:92dvh;box-shadow:var(--shadow)}dialog::backdrop{background:var(--backdrop)}dialog[open]{animation:dialog-in 180ms var(--ease)}@keyframes dialog-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.form-dialog{width:min(560px,calc(100vw - 32px));margin:auto}.form-body{padding:28px;display:block}.form-body>h2{font-size:23px;font-weight:600;line-height:1.35;margin-bottom:24px}.form-body>p{line-height:1.6;margin-bottom:20px}.form-subtitle{color:var(--muted);font-size:15px;margin-top:-12px}.field{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;font-size:14px;font-weight:500;min-width:0}.field input,.field select,.field textarea{width:100%;background:var(--panel);border:1px solid var(--control-line,var(--line));border-radius:var(--radius-control);padding:11px 12px;font-size:15px;color:var(--text);min-height:46px;font-weight:400}.field textarea{min-height:112px;resize:vertical;line-height:1.6}.field input[readonly]{color:var(--muted)}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-more{border-top:1px solid var(--line);padding-top:12px;margin:8px 0 20px}.form-more summary,.history summary,.crop-position summary{cursor:pointer;min-height:44px;padding:10px 0;color:var(--muted);font-size:14px}.form-more[open] summary{margin-bottom:12px}.form-hint{font-size:13px;color:var(--muted);line-height:1.6}.form-footer{position:sticky;bottom:0;z-index:2;background:var(--surface);padding-bottom:8px;box-shadow:0 -8px 0 var(--surface);display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-bottom:1px solid var(--line);background:var(--surface)}.dialog-top h2{font-size:20px}.dialog-top .quiet{overflow-wrap:anywhere}.task-dialog{width:min(680px,calc(100vw - 32px));height:calc(100dvh - 32px);max-height:calc(100dvh - 32px);margin:16px 16px 16px auto;overflow:auto}.task-dialog .dialog-top{position:sticky;top:0;z-index:1}.task-detail-body{padding:28px}.task-detail-title{font-size:24px;line-height:1.4;margin-bottom:16px;overflow-wrap:anywhere;letter-spacing:-.015em}.task-description{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted);font-size:15px;line-height:1.7;margin:20px 0;max-width:75ch}.detail-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:20px 0}.detail-field dt{font-size:13px;color:var(--muted);margin-bottom:8px}.detail-field dd{margin:0;font-size:14px}.director-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:24px 0}.problem-box{padding:16px;background:var(--amber-bg);border-radius:var(--radius-control);margin:20px 0;white-space:pre-wrap;overflow-wrap:anywhere}.problem-box strong{color:var(--amber);display:block;margin-bottom:6px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:28px 0 20px}.section-heading h3{font-size:18px}.comment{display:flex;gap:12px;margin-bottom:24px}.comment-main{min-width:0;flex:1}.comment-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;margin-bottom:6px}.comment-head time{color:var(--muted);font-size:12px}.comment-text{font-size:15px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.comment-form{padding:14px;border:1px solid var(--control-line,var(--line));border-radius:var(--radius-card);background:var(--panel);margin-top:20px}.comment-form textarea{width:100%;min-height:92px;padding:6px;border:0;background:transparent;font-size:15px;resize:vertical}.composer-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;flex-wrap:wrap}.comment-form>.quiet{margin-top:8px}.file-list{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.attachment{display:inline-flex;align-items:center;gap:8px;max-width:100%;overflow-wrap:anywhere;border:1px solid var(--control-line,var(--line));border-radius:var(--radius-small);padding:10px 12px;min-height:44px;background:var(--panel);font-size:13px}.attachment .quiet{white-space:nowrap}.history{border-top:1px solid var(--line);margin-top:28px;padding-top:8px;color:var(--muted);font-size:13px}.history p{margin:8px 0 20px}.history ol{padding-left:20px}.history li{padding:0 0 18px 6px;overflow-wrap:anywhere}.history time{display:block;font-size:12px;margin-top:6px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(8px);opacity:0;pointer-events:none;transition:opacity var(--speed) var(--ease),transform var(--speed) var(--ease);background:var(--text);color:var(--bg);border-radius:var(--radius-control);padding:14px 18px;font-size:14px;max-width:calc(100vw - 32px);width:max-content;z-index:100}.toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}.refresh-button{background:transparent;color:var(--blue);padding:8px;min-height:44px}.busy{opacity:.7}
.nav-dialog{width:min(360px,calc(100vw - 32px));margin:76px auto auto 16px}.nav-dialog nav{padding:12px;display:grid;gap:6px}.profile-dialog{width:min(340px,calc(100vw - 32px));margin:76px 16px auto auto}.profile-body{padding:24px}.profile-body>p{font-weight:600;margin-bottom:20px}.profile-body>.btn{width:100%}.notifications-list{max-height:45vh;overflow:auto;margin-top:20px}.notification-item{display:grid;gap:8px;width:100%;text-align:left;padding:16px 12px;border-bottom:1px solid var(--line);background:transparent;border-radius:var(--radius-small);font:inherit}.notification-item:hover{background:var(--hover)}.notification-item span{font-size:13px;color:var(--muted)}.notification-item.unread{background:var(--blue-bg)}.notification-actions{display:flex;gap:10px;flex-wrap:wrap}
.login-screen{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-card{width:min(430px,100%);padding:32px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.login-logo{width:210px;height:80px;object-fit:cover;display:block;margin:0 auto 24px}.login-card h1{font-size:26px;letter-spacing:-.02em}.login-card>.quiet{margin-top:8px}.login-card form{margin-top:28px}.login-card .btn{width:100%}
/* Image preview and crop */
.image-editor{border:1px solid var(--line);background:var(--panel);padding:18px;border-radius:var(--radius-card);margin:0 0 20px}.image-field-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;font-weight:500;margin-bottom:16px}.image-field-heading .quiet{font-weight:400}.image-workspace{display:flex;justify-content:center;position:relative}.image-pick-preview{position:relative;display:block;width:100%;aspect-ratio:16/9;background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius-control);padding:0;overflow:hidden}.image-pick-preview:hover{border-color:var(--blue);background:var(--hover)}.image-pick-preview>img{display:block;width:100%;height:100%;object-fit:cover}.image-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;height:100%;padding:16px;color:var(--muted);font-size:14px}.image-placeholder>svg{width:38px;height:38px;stroke-width:1.3}.image-camera{position:absolute;right:10px;bottom:10px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--blue-bg);color:var(--blue)}.image-camera svg{width:17px;height:17px}.portrait-editor .image-pick-preview{width:176px;aspect-ratio:1;border-radius:50%}.portrait-editor .image-camera{right:18px;bottom:12px}.image-buttons{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 16px;margin-top:16px}.image-buttons .btn{font-size:13px}.image-help{margin-top:14px}.image-editor canvas{display:block;width:100%;height:auto;max-width:100%;border-radius:var(--radius-control);cursor:grab;touch-action:none;background:var(--surface)}.image-editor canvas:active{cursor:grabbing}.portrait-editor canvas{width:210px;height:210px;border-radius:50%}.crop-controls{margin-top:16px}.crop-range{display:flex;align-items:center;gap:16px;font-size:13px;color:var(--muted);min-height:44px;margin-top:8px}.crop-range input{min-width:0;flex:1;accent-color:var(--blue);height:28px}.crop-position summary{font-size:13px}.crop-position[open]{margin-bottom:8px}
/* Structural responsive layouts */
@media(min-width:1600px){.page-header,#content,.page-footer{padding-left:48px;padding-right:48px}}
@media(max-width:1280px){.shell{grid-template-columns:216px minmax(0,1fr)}.sidebar{padding-inline:12px}.page-header{padding:26px 24px 22px}#content{padding-inline:24px}.page-footer{padding-inline:24px}.table-head,.task-row{grid-template-columns:minmax(165px,1.5fr) 140px 130px 108px 108px;gap:12px;padding-left:16px}.task-title{font-size:15px}.person,.project-name{font-size:13px}.tabs{gap:2px}.tab{font-size:13px;padding:10px}}
@media(max-width:1140px){.table-head{display:none}.task-table{border:0;background:transparent;overflow:visible}.task-row{grid-template-columns:minmax(0,1fr) 140px;gap:14px 20px;border:1px solid var(--line);border-radius:var(--radius-card);padding:20px;margin-bottom:14px;min-height:0}.task-row:last-child{border-bottom:1px solid var(--line)}.task-cell{grid-column:1/-1}.task-title{font-size:16px;padding-right:22px}.task-row .project-name{grid-row:2;grid-column:1}.task-row .person{grid-row:3;grid-column:1}.task-row>.due{grid-row:2;grid-column:2;justify-self:end;text-align:right}.task-row>.state{grid-row:3;grid-column:2;justify-self:end}.task-open-hint{top:23px;right:18px;transform:none}.task-filters .search-box{margin-left:0;flex:1;max-width:none}.task-filters .search-box input{width:100%}.object-grid{gap:18px}.object-card-body{padding:18px}}
@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{display:none}.menu-toggle{display:inline-flex;background:transparent;border-color:transparent;padding-inline:8px}.work-bar{padding-inline:16px}.connection-state{display:none}.connection-state.connection-error{display:block;font-size:12px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.employee-bar .connection-state{display:flex}.page-header{padding:24px 24px 20px}.eyebrow{display:none}.page-header h1{font-size:26px}.people-list{grid-template-columns:repeat(2,minmax(0,1fr))}.employee .page-header h1{font-size:26px}}
@media(max-width:650px){body{font-size:14px}.work-bar{height:64px;padding:10px 12px;gap:8px}.work-tools{gap:4px}.utility-button{width:44px;padding:10px;position:relative}.utility-label{display:none}.unread-count{position:absolute;top:0;right:0;font-size:11px}.page-header{padding:20px 18px;gap:12px;align-items:center}.page-header h1{font-size:25px}.header-actions .btn{font-size:14px;padding:10px 12px}.header-actions .btn svg{width:18px;height:18px}#content{padding:0 18px 20px}.page-footer{padding:20px 18px;font-size:12px}.tabs{display:none}.task-filters{display:grid;gap:12px;margin-bottom:16px}.mobile-task-tools{display:flex;gap:10px;justify-content:space-between;width:100%}.mobile-status{flex:1;min-width:0}.mobile-status select{width:100%;max-width:none;font-size:14px}.filter-toggle{padding:10px 12px}.filter-fields{display:none;order:3;padding:16px;background:var(--panel);border-radius:var(--radius-control);border:1px solid var(--line);gap:12px}.task-filters.expanded .filter-fields{display:grid;grid-template-columns:1fr}.filter-label,.filter-label select{width:100%;max-width:none}.task-filters .search-box{width:100%;height:46px;max-width:none;margin-left:0}.search-box input{font-size:16px}.list-caption{font-size:12px;align-items:flex-start;gap:12px}.list-caption>span:last-child{white-space:nowrap}.task-row{padding:18px;gap:12px 16px;grid-template-columns:minmax(0,1fr) 118px}.task-title{font-size:16px;line-height:1.5}.task-sub{font-size:12px;gap:4px 8px}.task-row .person,.task-row .project-name{font-size:14px}.due{font-size:14px}.state{font-size:12px}.object-grid,.people-list{grid-template-columns:1fr;gap:18px}.object-cover-button{aspect-ratio:16/8}.object-card-title{font-size:18px}.object-card-stats{font-size:14px}.object-card-stats strong{font-size:16px}.person-card{padding:20px}.person-card-info h2{font-size:18px}.person-card-info p{font-size:14px}.person-access,.photo-caption{font-size:13px}.person-card-top{min-height:114px}.card-actions .btn,.card-actions .text-link{font-size:14px;min-height:44px}.journal-intro{font-size:14px;margin-bottom:20px}.settings-section{padding:20px}.settings-buttons{display:grid}.note-card{padding:20px}.note-meta{font-size:13px}.note-controls{gap:8px 16px}.filters:not(.task-filters){display:grid;grid-template-columns:1fr 1fr;gap:12px}.filters:not(.task-filters) .filter-label,.filters:not(.task-filters) .search-box{grid-column:1/-1}.filters:not(.task-filters) .search-box{max-width:none;width:100%;margin-left:0}.filter-note-date{width:100%;max-width:none;font-size:14px;padding:10px}.filters:not(.task-filters) .search-box input{width:100%}.task-dialog{width:100%;height:100dvh;max-height:100dvh;margin:0;border-radius:0;border:0}.task-detail-body{padding:22px 18px}.task-detail-title{font-size:22px}.dialog-top{padding:10px 16px}.detail-fields{gap:14px}.detail-field .person{font-size:14px}.director-actions{gap:8px}.director-actions .btn{font-size:14px;white-space:normal}.form-body{padding:22px 20px}.form-body>h2{font-size:22px;margin-bottom:20px}.field-grid{grid-template-columns:1fr;gap:0}.field input,.field textarea,.field select{font-size:16px}.form-footer{margin-top:20px;padding-top:16px}.form-dialog{width:calc(100vw - 24px);max-height:94dvh}.comment-head time{font-size:12px}.attachment{flex-wrap:wrap}.attachment .quiet{font-size:12px}.notification-actions .btn{width:100%}.notification-item span{font-size:13px}.image-editor{padding:14px}.image-field-heading .quiet{font-size:12px}.image-buttons{gap:6px 12px}.image-buttons .btn,.image-buttons .text-link{font-size:14px;min-height:44px}.crop-range{font-size:14px}.crop-position summary{font-size:14px}.image-help{font-size:13px}.profile-body{padding:20px}.login-card{padding:26px}.employee-card{padding:20px}.employee-card-foot{gap:12px}.employee-bar .connection-state{font-size:12px;max-width:65%;line-height:1.35}.employee .page-header h1{font-size:24px}}
@media(max-width:380px){.page-header{gap:8px;padding-inline:14px}.page-header h1{font-size:23px}.header-actions .btn{font-size:13px;padding-inline:10px}.header-actions .btn svg{display:none}#content{padding-inline:14px}.task-row{grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:16px}.task-row .project-name{grid-column:1/-1}.task-row .person{grid-row:3;grid-column:1/-1}.task-row>.due{grid-row:4;grid-column:1;justify-self:start;text-align:left}.task-row>.state{grid-row:4;grid-column:2}.task-open-hint{right:14px;top:20px}.list-caption>span:last-child{display:none}.filter-toggle{padding-inline:10px}.filter-toggle svg{display:none}.person-card-top{gap:12px}.person-photo-button{width:80px}.person-card{padding:16px}.person-card-info h2{font-size:17px}.object-card-body{padding:16px}.object-card .card-actions .btn svg{display:none}.image-editor{padding:12px}.image-buttons .btn{width:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}.btn:active:not(:disabled){transform:none}}

/* Keep the safe choice first, with room for full Russian labels on a phone. */
.discard-dialog{width:min(440px,calc(100vw - 32px))}.discard-dialog .form-footer{display:grid;grid-template-columns:minmax(0,1fr)}.discard-dialog .btn{white-space:normal}
/* Subtasks stay inside the familiar task card. */
.task-progress-label,.task-parent-label{display:block;font-size:13px;line-height:1.5;color:var(--muted);margin-top:5px;overflow-wrap:anywhere}.task-progress-label{color:var(--blue);font-weight:500}.parent-context{display:flex;flex-direction:column;gap:2px;margin-top:18px;padding:12px 14px;background:var(--panel);border-radius:var(--radius-control)}.parent-context .text-link{text-align:left;align-items:flex-start;white-space:normal}.parent-context .text-link span{overflow-wrap:anywhere}.subtasks-section{margin:24px 0;padding:20px 0;border-block:1px solid var(--line)}.subtasks-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.subtasks-heading h3{font-size:18px}.subtasks-heading .text-link{padding:4px 0}.subtasks-progress{display:flex;align-items:center;gap:20px;margin:4px 0 16px;font-size:14px}.subtasks-progress progress{height:7px;width:100%;max-width:180px;border:0;border-radius:10px;overflow:hidden;background:var(--line);accent-color:var(--green)}.subtasks-progress progress::-webkit-progress-bar{background:var(--line)}.subtasks-progress progress::-webkit-progress-value{background:var(--green);border-radius:10px}.subtasks-progress progress::-moz-progress-bar{background:var(--green)}.subtask-list{display:grid;gap:8px;margin-bottom:14px}.subtask-item{display:grid;grid-template-columns:minmax(0,1fr) 20px;gap:8px 12px;text-align:left;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-control);min-width:0}.subtask-item:hover{background:var(--hover)}.subtask-item-title{grid-column:1;font-size:15px;font-weight:600;overflow-wrap:anywhere}.subtask-item-title small{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:3px}.subtask-item-person{display:flex;align-items:center;gap:8px;grid-column:1;min-width:0;font-size:13px}.subtask-item-person span:last-child{overflow-wrap:anywhere}.subtask-item-person .avatar{width:26px;height:26px;font-size:11px}.subtask-item-state{display:flex;align-items:center;justify-content:space-between;gap:12px;grid-column:1/-1;flex-wrap:wrap}.subtask-item-state .due{font-size:13px}.subtask-arrow{grid-column:2;grid-row:1/3;align-self:center;color:var(--muted)}.subtask-form-context{background:var(--panel);padding:12px 14px;border-radius:var(--radius-control);margin-bottom:18px;overflow-wrap:anywhere}.subtask-required{display:flex;align-items:flex-start;gap:10px;margin:16px 0;white-space:normal}.subtask-required input{flex:0 0 18px;width:18px;height:18px;margin-top:3px;accent-color:var(--button-accent)}.subtask-required small{display:block;color:var(--muted);font-size:13px;margin-top:5px}.subtasks-progress strong{flex-shrink:0}
@media(max-width:420px){.subtasks-heading{gap:4px}.subtasks-progress{gap:12px}.subtask-item{padding:12px}.subtask-item-state .state{white-space:normal}.parent-context{padding:10px 12px}}

.account-login{margin-bottom:16px;overflow-wrap:anywhere}.account-login strong{color:var(--text);font-weight:600}

/* Mobile forms and viewport-safe panels, 10.10.2026. */
html{scrollbar-gutter:stable}body.modal-open{position:fixed;left:0;right:0;width:100%;overflow:hidden;overscroll-behavior:none}
input,select,textarea{min-width:0;max-width:100%}button,a,input,select,textarea{touch-action:manipulation}
dialog[open]{animation:none}dialog{position:fixed;max-width:calc(100% - 24px);max-height:calc(var(--viewport-height,100dvh) - 24px)}
.task-dialog[open]{display:flex;flex-direction:column;overflow:hidden;top:calc(var(--viewport-top,0px) + 16px);right:16px;left:auto;bottom:auto;margin:0;height:calc(var(--viewport-height,100dvh) - 32px);max-height:calc(var(--viewport-height,100dvh) - 32px)}
.task-dialog .dialog-top{position:relative;flex:0 0 auto;z-index:2}.dialog-top .icon-button{flex:0 0 44px}.dialog-top h2{margin:0;line-height:1.3;overflow-wrap:anywhere}
.task-detail-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scroll-padding-block:20px;padding-bottom:max(28px,env(safe-area-inset-bottom))}
.form-dialog[open]{display:flex;overflow:hidden}.form-shell{display:flex;flex-direction:column;min-width:0;min-height:0;width:100%;max-height:calc(var(--viewport-height,100dvh) - 24px)}
.form-shell .dialog-top{flex:0 0 auto;padding:18px 20px}.form-shell .dialog-top h2{font-size:22px}
.form-scroll{overflow-y:auto;min-height:0;overscroll-behavior:contain;scroll-padding-block:20px}.form-shell>.form-footer{position:relative;flex:0 0 auto;margin:0;padding:16px 20px;box-shadow:none}
.form-dialog,.date-dialog,.media-dialog{top:var(--viewport-top,0px);bottom:calc(100% - var(--viewport-top,0px) - var(--viewport-height,100dvh));margin:auto}
.form-dialog.discard-dialog[open]{display:block;overflow:auto}.discard-dialog .form-body{overflow:auto}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.field input,.field select,.field textarea,.comment-form textarea{font-size:16px}.field{overflow-wrap:anywhere}.field input[type=file]{padding:10px;overflow:hidden}.field input::file-selector-button{font:inherit;max-width:100%;padding:7px 10px;margin-right:8px;background:var(--surface);border:1px solid var(--line);border-radius:7px;color:var(--text)}
.note-date-field{margin:0;min-width:0;flex:0 1 190px;font-size:13px}.date-control{display:block;width:100%;min-width:0}.date-trigger{display:flex;align-items:center;gap:10px;text-align:left;width:100%;min-width:0;min-height:48px;border:1px solid var(--control-line,var(--line));border-radius:var(--radius-control);background:var(--panel);padding:10px 12px;font-size:16px;font-weight:400;color:var(--text)}.date-trigger svg{width:19px;height:19px;flex-shrink:0;color:var(--muted)}.date-trigger span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.date-trigger.is-empty{color:var(--muted)}.date-trigger:hover{border-color:var(--blue)}
.date-dialog{width:min(380px,calc(100% - 24px));overflow:hidden}.date-dialog[open]{display:flex;flex-direction:column}.date-dialog .dialog-top{flex:none}.calendar-body{padding:16px;overflow:auto;overscroll-behavior:contain}.calendar-month{display:grid;grid-template-columns:36px minmax(0,1fr) 80px 36px;gap:4px;align-items:center;margin-bottom:16px}.calendar-month select{width:100%;font-size:16px;min-width:0;padding:8px 2px;min-height:44px;background:var(--panel);color:var(--text);border:0;border-radius:8px}.calendar-month .icon-button{width:36px;min-width:36px;padding:7px}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.calendar-weekdays{font-size:12px;color:var(--muted);text-align:center;margin-bottom:8px}.calendar-day{border-radius:9px;background:transparent;font-size:16px;min-height:44px;min-width:0;padding:0;color:var(--text);border:1px solid transparent}.calendar-day.outside{color:var(--muted);opacity:.65}.calendar-day.today{border-color:var(--blue)}.calendar-day[aria-pressed=true]{background:var(--button-accent,var(--blue));color:white}.calendar-day:hover{background:var(--hover)}.calendar-day[aria-pressed=true]:hover{background:var(--button-accent,var(--blue))}.calendar-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:18px}
.portrait-editor canvas{width:min(240px,100%);height:auto;aspect-ratio:1}.crop-range{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px}.crop-range input{width:100%;height:44px;min-height:44px;touch-action:pan-y;padding:0}.crop-range:has(input:disabled){opacity:.55}.crop-move-hint{font-size:13px;color:var(--muted);line-height:1.5;margin-top:10px}
.file-list{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;min-width:0}.attachment{min-width:0;display:flex;align-items:center;flex-wrap:nowrap}.file-label{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.file-label strong{font-weight:500;overflow-wrap:anywhere}.file-label small{color:var(--muted);font-size:12px}.file-type{flex:0 0 44px;min-height:44px;display:grid;place-items:center;border-radius:9px;background:var(--blue-bg);color:var(--blue);font-size:11px;font-weight:700;overflow:hidden}.photo-attachment{margin:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel)}.attachment-photo-button{display:block;border:0;padding:0;background:transparent;width:100%;cursor:zoom-in}.attachment-photo-button img{display:block;width:100%;height:auto;max-height:520px;object-fit:contain}.photo-attachment figcaption{padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px}.photo-attachment figcaption span{overflow-wrap:anywhere;min-width:0}.photo-attachment a{flex-shrink:0}.media-dialog{width:min(1100px,calc(100% - 24px));height:calc(var(--viewport-height,100dvh) - 24px);max-height:calc(var(--viewport-height,100dvh) - 24px)}.media-dialog[open]{display:flex;flex-direction:column;overflow:hidden}.media-body{flex:1;min-height:0;overflow:auto;display:grid;place-items:center;padding:16px;background:var(--panel)}.media-body img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.media-dialog .dialog-top{flex:none}.media-dialog .dialog-top h2{font-size:16px}.access-share-text{width:100%;min-height:160px;font-size:16px;resize:none}.access-share-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}
@media(max-width:650px){
 html{scrollbar-gutter:auto}.task-dialog[open],.form-dialog:not(.discard-dialog)[open]{top:var(--viewport-top,0px);right:0;left:0;bottom:auto;width:100%;max-width:100%;height:var(--viewport-height,100dvh);max-height:var(--viewport-height,100dvh);margin:0;border-radius:0;border:0}
 .form-shell{height:100%;max-height:100%}.form-shell .dialog-top,.task-dialog .dialog-top{padding:calc(10px + env(safe-area-inset-top)) 16px 10px}.form-shell .dialog-top h2{font-size:20px}.form-body{padding:20px 18px}.form-scroll .form-subtitle{margin-top:0}.form-shell>.form-footer{padding:12px 18px max(12px,env(safe-area-inset-bottom));gap:10px}.form-shell>.form-footer .btn{flex:1;min-width:0;white-space:normal}
 .field-grid{grid-template-columns:minmax(0,1fr)}.detail-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.filters:not(.task-filters){grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}.note-date-field{width:100%}.date-trigger{padding-inline:10px;gap:7px;font-size:15px}.date-trigger svg{width:17px}.nav-dialog,.profile-dialog{top:calc(var(--viewport-top,0px) + 72px);max-height:calc(var(--viewport-height,100dvh) - 90px);margin-top:0;overflow:auto}.crop-range{grid-template-columns:100px minmax(0,1fr);gap:8px}.calendar-body{padding:12px}.calendar-days{gap:2px}.calendar-month{grid-template-columns:32px minmax(0,1fr) 76px 32px}.calendar-month .icon-button{width:32px;min-width:32px}.calendar-day{min-height:42px}.access-share-actions{display:grid;grid-template-columns:1fr}.comment-form textarea{font-size:16px}.attachment-photo-button img{max-height:60dvh}.media-dialog .dialog-top{padding-top:max(12px,env(safe-area-inset-top))}
}
.photo-attachment figcaption small{display:block;color:var(--muted);font-size:12px}.file-download{flex-shrink:0;font-size:12px;color:var(--blue)}.danger-text{color:var(--red)}.btn.danger{background:var(--red-bg);border-color:var(--red);color:var(--red)}
