/* v435 — единые нормы интерфейса (кроме раздела «Мозг компании»: html[data-sec="brain"]) */

/* ---------- полосы прокрутки скрыты везде, кроме «Мозга» ---------- */
html:not([data-sec="brain"]) *{scrollbar-width:none;-ms-overflow-style:none}
html:not([data-sec="brain"]) *::-webkit-scrollbar{width:0!important;height:0!important;display:none}

/* ---------- страница не прокручивается: прокручиваются разделы ---------- */
html:not([data-sec="brain"]) #main:has(>.page.withcal){overflow:hidden}
html:not([data-sec="brain"]) #main>.page.withcal{height:calc(100vh - var(--toph,64px));box-sizing:border-box;padding-bottom:12px;align-items:stretch;overflow:hidden}
html:not([data-sec="brain"]) #main>.page.withcal>.pmain{overflow:auto;min-height:0;height:100%}
html:not([data-sec="brain"]) .page.withcal>.calside{position:static;max-height:none;height:100%;overflow:hidden;display:flex;flex-direction:column;padding-bottom:0}

/* правая колонка всегда в окне: календарь, часы, погода — постоянной высоты, напоминания — сколько поместится */
.calside>.ccard:first-child{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.calside>.ccard:not(:first-child){flex:none}
.calside>.ccard:first-child>*:not(.clist){flex:none}
.calside .clist{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;column-gap:48px;overflow:hidden}
.calside .clist>*{width:100%;flex:none;box-sizing:border-box}

/* мигающая стрелка «есть ещё» */
@keyframes u435wink{0%,100%{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(4px)}}
@keyframes u435winkx{0%,100%{opacity:.3;transform:translateX(0)}50%{opacity:1;transform:translateX(4px)}}
.u435more{position:fixed;z-index:30;width:30px;height:24px;margin-left:-15px;border:0;padding:0;background:none;color:var(--acc,#0a84ff);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s}
.u435more.on{opacity:1;pointer-events:auto}
.u435more svg{width:22px;height:22px;stroke-width:3;animation:u435wink 1.6s ease-in-out infinite}
.u435more.x svg{animation-name:u435winkx}
html[data-anim="off"] .u435more svg{animation:none}

/* ---------- кнопки, переключатели, метки, шрифты ---------- */
html:not([data-sec="brain"]) #main .btn,html:not([data-sec="brain"]) #layer .btn{min-height:32px;border-radius:9px;font-size:13px;font-weight:500}
html:not([data-sec="brain"]) #main .btn.sm,html:not([data-sec="brain"]) #layer .btn.sm{min-height:28px;font-size:13px}
html:not([data-sec="brain"]) #main .btn.icon{min-width:32px}
html:not([data-sec="brain"]) .seg{border-radius:9px}
html:not([data-sec="brain"]) .seg button,html:not([data-sec="brain"]) .seg a{border-radius:7px;font-size:13px;font-weight:500}
html:not([data-sec="brain"]) #main .pill,html:not([data-sec="brain"]) #layer .pill{border-radius:6px;font-size:12px;font-weight:500;min-height:22px;box-sizing:border-box;display:inline-flex;align-items:center}
html:not([data-sec="brain"]) #main .top h1{font-size:26px;font-weight:700}
html:not([data-sec="brain"]) #main small,html:not([data-sec="brain"]) #main .small{font-size:12px}
html:not([data-sec="brain"]) #main th{font-size:12px;font-weight:500}
html:not([data-sec="brain"]) #main .card,html:not([data-sec="brain"]) #main .sgroup .slist{border-radius:12px}
html:not([data-sec="brain"]) #main .inp{border-radius:9px}

/* ---------- доска: подложка по длине карточек, пустые колонки вертикальные ---------- */
html:not([data-sec="brain"]) .kcol:has(.list:empty){flex:0 0 44px!important;min-width:44px!important;max-width:44px!important}
html:not([data-sec="brain"]) .kcol:has(.list:empty) header{writing-mode:vertical-rl;transform:none;flex-direction:row;justify-content:center;align-items:center;gap:8px;padding:14px 0!important;white-space:nowrap;min-height:170px;width:44px;box-sizing:border-box;transition:background .15s,box-shadow .15s}
html:not([data-sec="brain"]) .kcol:not(.over):has(.list:empty) header .pill{background:none!important;padding:0;color:var(--tx);font-size:13px;font-weight:600;min-height:0}
html:not([data-sec="brain"]) .kcol.over:has(.list:empty) header .pill{padding:8px 0;min-height:0;font-size:13px;font-weight:600}
html:not([data-sec="brain"]) .kcol:has(.list:empty) header small{writing-mode:horizontal-tb}
html:not([data-sec="brain"]) .kcol:has(.list:empty) header .right{display:none}
html:not([data-sec="brain"]) .kcol:has(.list:empty) .list{min-height:0!important;height:0;padding:0!important}
html:not([data-sec="brain"]) .kcol.over:has(.list:empty) header{background:var(--accbg)!important;box-shadow:inset 0 0 0 2px var(--acc)}

/* ---------- левое меню: спокойнее наведение, подсказки, подглядывание ---------- */
.shell{position:relative;transition:grid-template-columns .24s cubic-bezier(.2,.7,.2,1)}
.shell.mini .nav a:hover svg{transform:none!important;filter:none!important;color:var(--acc)}
.shell.mini .nav a:hover{background:var(--hover)!important}
.shell.mini:not(.peek) .nav a .badge{top:6px!important;right:16px!important;min-width:8px!important;width:8px;height:8px!important;padding:0!important;font-size:0!important;border-radius:50%}
.shell .lbl,.shell .bname,.shell .me .grow{transition:opacity .16s ease .08s,max-width .24s cubic-bezier(.2,.7,.2,1)}
.shell.mini .lbl,.shell.mini .bname,.shell.mini .me .grow{transition:opacity .1s ease,max-width .2s ease}
.u435tip{position:fixed;z-index:200;pointer-events:none;background:#2c2c2e;color:#f5f5f7;font:12px -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,sans-serif;padding:5px 8px;border-radius:6px;white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,.35);opacity:0;transform:translate(-4px,-50%);transition:opacity .12s ease,transform .12s ease}
.u435tip.on{opacity:1;transform:translate(0,-50%)}
@media(min-width:821px){
  .shell.mini.peek>.side{position:absolute;top:0;bottom:0;left:0;width:248px;z-index:60;background:var(--card);box-shadow:12px 0 32px rgba(0,0,0,.35)}
  .shell.mini.peek>main,.shell.mini.peek>#main{grid-column:2}
  .shell.mini.peek .lbl,.shell.mini.peek .bname,.shell.mini.peek .me .grow{opacity:1!important;max-width:230px!important;transition-delay:.12s}
  .shell.mini.peek .nav a{justify-content:flex-start!important;gap:9px!important;padding:8px 12px!important}
  .shell.mini.peek .nav h3{height:auto!important;font-size:11px!important;padding:12px 12px 4px!important;margin:0!important;background:none!important}
  .shell.mini.peek .brand{justify-content:flex-start;gap:10px;padding:18px 16px 24px}
  .shell.mini.peek .me{flex-direction:row;justify-content:flex-start;padding:10px 12px}
}

/* ---------- обсуждение проекта: панель справа на всю высоту ---------- */
.pcfab{position:fixed;right:24px;bottom:24px;z-index:35;width:52px;height:52px;border-radius:50%;border:0;background:var(--acc,#0a84ff);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(0,0,0,.35);transition:transform .2s cubic-bezier(.2,.7,.2,1),opacity .2s}
.pcfab:hover{transform:scale(1.06)}
.pcfab.hid{opacity:0;pointer-events:none;transform:scale(.8)}
.pcfab svg{width:22px;height:22px}
.pcbadge:empty{display:none}
.pcbadge{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 5px;box-sizing:border-box;border-radius:6px;background:#ff3b30;color:#fff;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center}
.pcdrawer{position:fixed;top:0;right:0;bottom:0;width:400px;max-width:100vw;z-index:36;box-sizing:border-box;background:var(--card);border-left:1px solid var(--line);box-shadow:-12px 0 32px rgba(0,0,0,.3);display:flex;flex-direction:column;transform:translateX(105%);transition:transform .24s cubic-bezier(.2,.7,.2,1);visibility:hidden}
.pcdrawer.on{transform:none;visibility:visible}
.pchead{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--line)}
.pchead b{font-size:16px}
.pcdrawer .msgs{flex:1 1 auto;min-height:0;max-height:none!important;overflow-y:auto;padding:14px 16px!important;display:flex;flex-direction:column;gap:10px}
.pcform{display:flex;gap:8px;align-items:flex-end;padding:10px 12px;border-top:1px solid var(--line)}
.pcform textarea{flex:1;resize:none}
body>.pcwrap{position:static}
html[data-anim="off"] .pcdrawer{transition:none}

/* ---------- календарь (раздел) ---------- */
html:not([data-sec="brain"]) #main:has(.cal2){overflow:hidden}
#main>.page:has(>.cal2wrap){height:calc(100vh - var(--toph,64px));box-sizing:border-box;padding-bottom:12px;display:flex;flex-direction:column}
.cal2wrap{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:10px}
.cal2bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cal2bar .seg button{display:inline-flex;align-items:center;gap:6px}
.cal2dot{width:7px;height:7px;border-radius:50%;flex:none;display:inline-block}
.cal.cal2{flex:1 1 auto;min-height:0;grid-template-rows:auto repeat(6,minmax(0,1fr));box-shadow:none}
.cal.cal2>div{min-height:0!important;display:flex;flex-direction:column;gap:3px;padding:6px 6px 4px;overflow:hidden}
.cal.cal2>div.dow{padding:8px 10px;font-size:12px;font-weight:500;color:var(--tx2)}
.cal.cal2>div.out{opacity:.55}
.cal.cal2>div.we:not(.out){background:color-mix(in srgb,var(--card) 92%,var(--tx) 3%)}
.cal.cal2 .dn{font-size:13px;font-weight:600;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex:none}
.cal.cal2>div.now .dn{background:var(--acc);color:#fff}
.cal2evs{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;column-gap:40px;row-gap:2px;overflow:hidden}
.cal2 a.cev,.cal2list a.cev,.cal2week a.cev{width:100%;height:20px;box-sizing:border-box;display:flex!important;align-items:center;gap:6px;padding:0 4px!important;margin:0!important;border-radius:6px;font-size:12px;color:var(--tx)!important;background:none!important;border:0!important;white-space:nowrap;overflow:hidden;flex:none}
.cal2 a.cev:hover,.cal2list a.cev:hover,.cal2week a.cev:hover{background:var(--hover)!important}
.cal2 a.cev b,.cal2list a.cev b,.cal2week a.cev b{font-weight:500;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.cal2 a.cev i,.cal2list a.cev i,.cal2week a.cev i{flex:none;font-style:normal;color:var(--tx2);font-variant-numeric:tabular-nums}
.cal2 a.cev.big{background:color-mix(in srgb,var(--acc) 16%,transparent)!important}
.cal2 a.cev.done b,.cal2week a.cev.done b,.cal2list a.cev.done b{text-decoration:line-through;opacity:.6}
.cal2more{font-size:12px;color:var(--tx2);padding:0 4px;height:18px;flex:none;cursor:pointer;background:none;border:0;text-align:left}
.cal2more:empty{display:none}
.cal2week{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--line);border-radius:12px;overflow:hidden}
.cal2week>div{background:var(--card);display:flex;flex-direction:column;gap:3px;padding:8px 6px;min-height:0;overflow:auto}
.cal2week>div.now h4 span{background:var(--acc);color:#fff;border-radius:50%;padding:2px 6px}
.cal2week h4{margin:0 0 6px;font-size:13px;font-weight:600}
.cal2list{flex:1 1 auto;min-height:0;overflow:auto;background:var(--card);border-radius:12px;padding:8px 14px}
.cal2list h4{margin:12px 0 4px;font-size:13px;font-weight:600;color:var(--tx2)}
.cal2list a.cev{height:28px}

/* ---------- мой кабинет: всё на одном экране ---------- */
html:not([data-sec="brain"]) .sroot:has(.spane.t-about),html:not([data-sec="brain"]) .sroot:has(.spane.t-settings){max-width:none}
.spane.t-about{columns:3 300px;column-gap:12px}
.spane.t-about>*{break-inside:avoid;margin:0 0 12px!important}
.spane.t-about>.sgh.top{column-span:all}
.spane.t-about .sedit{flex-direction:row!important;align-items:center!important;gap:10px!important;padding:5px 14px!important}
.spane.t-about .sedit span{width:42%;font-size:13px;flex:none}
.spane.t-about .sedit .inp{min-height:32px;height:32px;padding-top:0;padding-bottom:0}
.spane.t-about .sedit textarea.inp{height:auto;padding-top:6px}
.spane.t-about .srow{padding-top:7px;padding-bottom:7px}
.spane.t-about .sgroup h3{font-size:12px;letter-spacing:.03em}
.spane.t-settings>.grid.g2{display:block;columns:3 320px;column-gap:12px}
.spane.t-settings>.grid.g2>*{break-inside:avoid;margin:0 0 12px}
.spane.t-settings .looks{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.spane.t-settings .look small{display:none}
.spane.t-settings .look{padding:6px!important;min-height:0}
.spane.t-settings .field,.spane.t-settings label.field{margin-bottom:8px}
.u435wx{display:inline-flex;align-items:center;gap:3px;border:0;background:none;padding:0;color:inherit;font:inherit;cursor:pointer}
.u435wx:hover{color:var(--acc)}
.u435wx svg{width:11px;height:11px}

/* ---------- анимации: настройка сотрудника ---------- */
html[data-anim="off"] *,html[data-anim="off"] *::before,html[data-anim="off"] *::after{animation:none!important;transition:none!important}
html[data-anim="less"] #main *{animation-duration:.18s!important;animation-delay:0s!important}
@media (prefers-reduced-motion: reduce){.u435more svg{animation:none}.pcdrawer,.shell{transition:none}}

/* ---------- проект · обзор: окна (задачи, деньги, подрядчики…) не растягивают страницу ---------- */
html:not([data-sec="brain"]) #main .page:has(>div>.ptabs) .grid.g2>.card{max-height:360px;display:flex;flex-direction:column;min-height:0;overflow:hidden}
html:not([data-sec="brain"]) #main .page:has(>div>.ptabs) .grid.g2>.card>*:first-child{flex:none}
html:not([data-sec="brain"]) #main .page:has(>div>.ptabs) .grid.g2>.card>*:not(:first-child){flex:1 1 auto;min-height:0;overflow:auto}
.sroot:has(.spane.t-about) .shero,.sroot:has(.spane.t-settings) .shero{padding:12px 20px;border-radius:12px;gap:14px}
.sroot:has(.spane.t-about) .shero .sava,.sroot:has(.spane.t-settings) .shero .sava{width:56px;height:56px;font-size:20px}
.spane.t-settings .lookpv{height:30px}
.spane.t-settings .lookn{font-size:12px;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.spane.t-settings .card{padding:14px 16px}
.spane.t-settings .card h2,.spane.t-settings .card h3{font-size:16px;margin-bottom:8px}
.shell.mini.peek .sidetgl{opacity:0;pointer-events:none}

/* ---------- низ меню: карточка «Мой профиль» и ряд кнопок, как на макете ---------- */
.shell:not(.mini) .side .me,.shell.mini.peek .side .me{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:auto 30px;gap:6px 4px;padding:10px!important;align-items:center;justify-content:stretch}
.shell:not(.mini) .side .me::before,.shell.mini.peek .side .me::before{content:"";grid-area:1/1/2/7;align-self:stretch;margin:-2px;border-radius:9px;background:var(--hover);transition:background .15s}
.shell:not(.mini) .side .me:has(.grow:hover)::before,.shell:not(.mini) .side .me:has(.ava:hover)::before{background:color-mix(in srgb,var(--acc) 14%,transparent)}
.shell:not(.mini) .side .me .ava,.shell.mini.peek .side .me .ava{grid-area:1/1/2/2;margin:6px 0 6px 6px;position:relative;z-index:1;cursor:pointer}
.shell:not(.mini) .side .me .grow,.shell.mini.peek .side .me .grow{grid-area:1/2/2/7;position:relative;z-index:1;padding:6px 22px 6px 8px;max-width:none!important;opacity:1!important}
.shell:not(.mini) .side .me .grow::after,.shell.mini.peek .side .me .grow::after{content:"";position:absolute;right:10px;top:50%;width:7px;height:7px;border-right:2px solid var(--tx2);border-top:2px solid var(--tx2);transform:translateY(-50%) rotate(45deg)}
.shell:not(.mini) .side .me .grow span,.shell.mini.peek .side .me .grow span{font-size:12px;color:var(--acc)!important}
.shell:not(.mini) .side .me>.btn,.shell.mini.peek .side .me>.btn{grid-row:2;grid-column:span 2;width:100%;height:30px;min-height:30px;border-radius:9px;display:flex!important;justify-content:center;background:transparent}
.shell:not(.mini) .side .me>.btn:hover,.shell.mini.peek .side .me>.btn:hover{background:var(--hover)}
.shell:not(.mini) .side .me>#bell,.shell.mini.peek .side .me>#bell{order:-1}
.shell:not(.mini) .side .me>#bell .badge,.shell.mini.peek .side .me>#bell .badge{top:2px!important;right:calc(50% - 22px)!important}

/* ---------- кабинет: строки одной высоты ---------- */
.spane.t-about .sedit{min-height:46px;box-sizing:border-box;padding-top:0!important;padding-bottom:0!important}
.spane.t-about .sedit span{line-height:16px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.spane.t-about .sedit textarea.inp{height:32px!important;min-height:32px;resize:none;padding-top:6px;overflow:auto}
.spane.t-about .srow{min-height:44px;box-sizing:border-box;padding-top:0!important;padding-bottom:0!important;display:flex;align-items:center}
.spane.t-about .srow .sval{line-height:16px}
.spane.t-settings .field,.spane.t-settings label.field{min-height:58px}

/* v476: перетаскивание файла в обсуждение проекта */
.pcdrawer.drop{outline:2px dashed var(--blue);outline-offset:-8px}
.pcform .btn.icon{flex:0 0 auto}
