:root{
  color-scheme:light;
  --navy:#172231;
  --navy-2:#243142;
  --ink:#111827;
  --muted:#667085;
  --line:#dfe4eb;
  --page:#eef1f5;
  --panel:#fff;
  --orange:#f67a0a;
  --orange-dark:#a94b00;
  --orange-soft:#fff0df;
  --red:#d6263c;
  --red-soft:#fee8eb;
  --green:#138660;
  --green-soft:#dff4ec;
  --blue:#3269cf;
  --blue-soft:#e5eefc;
  --violet:#7c4ce0;
  --violet-soft:#eee8ff;
  --chat-bg:#edf1f5;
  --chat-in:#fff;
  --chat-out:#223047;
  --chat-ai:#f4eee7;
  --shadow:0 2px 8px rgba(16,24,40,.08);
  --bottom:72px;
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html,body{width:100%;min-height:100%;margin:0;overflow-x:clip;background:var(--page);color:var(--ink)}
/* overscroll-behavior-y:contain гасит "потянуть вниз - перезагрузить".
   Дело не в скорости: перезагрузка убивает iframe движка звонков и рвёт
   активный разговор, а также обходит подтверждение о несохранённой форме.
   contain (а не none) сохраняет привычный упругий отскок на iOS. */
html,body{overscroll-behavior-x:none;overscroll-behavior-y:contain}
html.v3-chat-open,body.v3-chat-open{height:100%;overflow:hidden;overscroll-behavior:none}
button,input,textarea{font:inherit}
button{cursor:pointer}
[hidden]{display:none!important}
.v3-app{min-height:100dvh;width:100%;overflow-x:clip}
.v3-loading{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}
.v3-loading strong{letter-spacing:4px}
.v3-loading small{color:var(--muted)}
.v3-spinner{width:34px;height:34px;border:3px solid #dce2ea;border-top-color:var(--orange);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.v3-shell{min-height:100dvh;padding-bottom:calc(var(--bottom) + env(safe-area-inset-bottom,0px));background:var(--page)}
.v3-main{width:100%;max-width:1180px;margin:0 auto;padding:0 22px 28px}
.v3-top{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);padding:max(14px,env(safe-area-inset-top,0px)) 22px 14px;backdrop-filter:blur(14px)}
.v3-chat-shell{position:fixed;top:0;left:0;width:var(--chat-vv-width,100%);height:var(--chat-vv-height,100dvh);min-height:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);overflow:hidden;background:var(--chat-bg);transform:translate3d(var(--chat-vv-left,0px),var(--chat-vv-top,0px),0)}
.v3-chat-shell .v3-top{position:relative;inset:auto;grid-row:1;box-shadow:0 2px 8px rgba(16,24,40,.06)}
.v3-chat-shell .v3-main{grid-row:2;display:flex;flex-direction:column;width:min(1180px,100%);height:100%;min-height:0;margin:0 auto;padding:0;overflow:hidden;background:var(--chat-bg);border-left:1px solid var(--line);border-right:1px solid var(--line)}
.v3-chat-shell .v3-main{position:relative}
.v3-chat-shell>.v3-bottom{position:relative;grid-row:3;inset:auto;width:min(1180px,100%);height:calc(var(--bottom) + env(safe-area-inset-bottom,0px));margin:0 auto;transform:none}
.v3-chat-shell .v3-top,.v3-chat-shell .v3-main,.v3-chat-shell>.v3-bottom{min-width:0;max-width:100%}
.v3-top-inner{width:100%;max-width:1180px;margin:auto;display:flex;align-items:center;gap:12px;min-height:48px}
.v3-title{font-size:26px;line-height:1.08;font-weight:800;letter-spacing:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v3-subtitle{font-size:13px;color:var(--muted);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v3-subtitle.online{color:var(--green);font-weight:800}
.v3-head-copy{min-width:0;flex:1}
.v3-head-actions{display:flex;gap:8px;align-items:center}
.v3-portal-switch{position:relative;border:1px solid var(--line);background:#fff;color:var(--ink);min-height:40px;padding:4px 10px 4px 4px;display:inline-flex;align-items:center;gap:7px;border-radius:7px;font:700 12px/1 inherit;cursor:pointer;white-space:nowrap}
.v3-portal-switch:hover{border-color:var(--orange);color:var(--orange-dark)}
.v3-portal-switch:focus-visible{outline:3px solid rgba(239,126,17,.24);outline-offset:2px}
.v3-portal-switch > svg{margin:5px}
.v3-home-badge{position:absolute;left:24px;top:23px;width:14px;height:14px;border:2px solid #fff;border-radius:50%;display:grid;place-items:center;background:var(--orange);color:#fff}
.icon-btn,.avatar-btn,.action-btn,.pill,.seg-btn,.filter-chip,.nav-btn{border:0;background:transparent}
.icon-btn{width:44px;height:44px;border-radius:8px;display:grid;place-items:center;color:#536173;background:#f1f4f8}
.icon-btn:hover{background:#e7ecf2}
.icon-btn.accent{background:var(--orange);color:#fff}
.avatar-btn,.avatar{display:grid;place-items:center;flex:0 0 auto;border-radius:50%;color:#fff;font-weight:800;background:linear-gradient(135deg,hsl(var(--avatar-hue,340),62%,52%),hsl(calc(var(--avatar-hue,340) + 28),58%,40%));text-shadow:0 1px 2px rgba(0,0,0,.18);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.14)}
.avatar-btn{width:44px;height:44px}
.avatar{width:48px;height:48px}
.avatar.small{width:28px;height:28px;font-size:11px}
.avatar.tiny{width:24px;height:24px;font-size:10px}
.v3-test-ribbon{position:fixed;z-index:70;right:10px;top:calc(env(safe-area-inset-top,0px) + 8px);padding:5px 8px;border-radius:6px;background:#fff3dc;color:#8e4b00;font-size:10px;font-weight:800;box-shadow:var(--shadow);pointer-events:none}
.section{padding-top:22px}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.section-head h2,.section-head h3{margin:0;font-size:16px;text-transform:uppercase;color:#637083;letter-spacing:0;font-weight:800}
.section-link{border:0;background:transparent;color:var(--orange-dark);font-weight:800}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}
.hero{background:var(--navy);color:#fff;border-radius:0 0 8px 8px;padding:26px 26px 28px;padding-top:max(26px,calc(env(safe-area-inset-top,0px) + 14px));margin:0 -22px}
.hero-brand{font-weight:800;letter-spacing:4px;font-size:18px}
.hero-topline{display:flex;align-items:center;justify-content:space-between;gap:12px}
.today-actions{display:flex;align-items:center;gap:8px}
.today-action,.today-avatar{position:relative;width:44px;height:44px;border:0;border-radius:8px;display:grid;place-items:center;background:#303b4b;color:#fff}
.today-action:hover,.today-avatar:hover{background:#3a4658}
.today-action b{position:absolute;top:-5px;right:-5px;min-width:19px;height:19px;padding:0 5px;border:2px solid var(--navy);border-radius:10px;display:grid;place-items:center;background:#cc2638;color:#fff;font-size:10px}
.today-avatar{border-radius:50%;background:#d95470;font-weight:800}
.hero h1{margin:40px 0 4px;font-size:34px;line-height:1.1;letter-spacing:0}
.hero-date{color:#b8c1cd;font-size:15px}
.hero-grid{display:grid;grid-template-columns:180px repeat(2,minmax(160px,1fr));gap:12px;margin-top:26px}
.progress-ring{grid-row:span 2;display:grid;place-items:center;position:relative;min-height:150px;border:0;background:transparent;color:#fff}
.progress-ring:before{content:"";width:124px;height:124px;border-radius:50%;background:conic-gradient(#36d39a 0 var(--ring,57%),#394556 var(--ring,57%) 100%);mask:radial-gradient(circle,#0000 54%,#000 55%);-webkit-mask:radial-gradient(circle,#0000 54%,#000 55%)}
.progress-ring span{position:absolute;text-align:center;font-size:28px;font-weight:800}
.progress-ring small{display:block;color:#aeb8c5;font-size:12px;font-weight:600;text-transform:uppercase;margin-top:4px}
.metric{border:0;background:#2a3545;color:#fff;border-radius:8px;min-height:69px;padding:16px 18px;text-align:left}
.metric:hover,.progress-ring:hover{filter:brightness(1.08)}
.metric:focus-visible,.progress-ring:focus-visible,.today-action:focus-visible,.today-avatar:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.metric b{font-size:25px;display:block}
.metric span{display:flex;align-items:center;gap:5px;color:#b9c1cc;font-size:12px;text-transform:uppercase}
.metric.danger b{color:#ff91a2}
.today-lani-ask{width:100%;min-height:46px;margin-top:14px;padding:0 14px;border:1px solid rgba(255,255,255,.14);border-radius:8px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;background:#2a3545;color:#fff;text-align:left;font-weight:800}
.today-lani-ask svg:first-child{color:var(--orange)}
.today-lani-ask:hover,.today-lani-ask:focus-visible{background:#344154;outline:0}
.decision-list{overflow:hidden}
.decision-row,.agenda-row,.chat-row,.thread-row,.supply-row{display:flex;align-items:center;gap:14px;padding:15px 16px;border-bottom:1px solid var(--line)}
.decision-row,.chat-row,.thread-row{width:100%;border-left:0;border-right:0;border-top:0;background:#fff;text-align:left;color:inherit}
.decision-row:last-child,.agenda-row:last-child,.chat-row:last-child,.thread-row:last-child,.supply-row:last-child{border-bottom:0}
.decision-icon{width:44px;height:44px;border-radius:8px;display:grid;place-items:center;flex:0 0 auto;background:var(--orange-soft);color:#9b5a00}
.decision-icon.red{background:var(--red-soft);color:var(--red)}
.decision-icon.blue{background:var(--blue-soft);color:var(--blue)}
.decision-icon.violet{background:var(--violet-soft);color:var(--violet)}
.decision-copy,.chat-copy,.thread-copy,.supply-copy{min-width:0;flex:1}
.decision-copy strong,.chat-copy strong,.thread-copy strong,.supply-copy strong{display:block;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.decision-copy span,.chat-copy span,.thread-copy span,.supply-copy span{display:block;color:var(--muted);font-size:13px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.agenda-time{width:58px;color:#5e6b7b;font-weight:700;font-variant-numeric:tabular-nums}
.agenda-tag,.tag,.badge{display:inline-flex;align-items:center;justify-content:center;min-height:23px;padding:3px 8px;border-radius:6px;font-size:12px;font-weight:800;white-space:nowrap}
.agenda-action{width:100%;border-left:0;border-right:0;border-top:0;background:#fff;color:inherit;text-align:left}
.agenda-action:hover,.decision-row:hover{background:#fafbfc}
.agenda-tag{background:#edf0f4;color:#5f6b79}
.agenda-tag.amber{background:var(--orange-soft);color:#9a5900}
.agenda-tag.blue{background:var(--blue-soft);color:var(--blue)}
.agenda-tag.red{background:var(--red-soft);color:var(--red)}
.agenda-tag.green{background:var(--green-soft);color:var(--green)}
.tag{background:#edf0f4;color:#5f6b79}
.tag.red{background:var(--red-soft);color:var(--red)}
.tag.green{background:var(--green-soft);color:var(--green)}
.tag.blue{background:var(--blue-soft);color:var(--blue)}
.tag.violet{background:var(--violet-soft);color:var(--violet)}
.tag.orange{background:var(--orange-soft);color:#9a5900}
.badge{background:var(--orange);color:#fff;border-radius:50%;min-width:25px;padding:3px 6px}
.search-box{display:flex;align-items:center;gap:10px;background:#f1f4f8;border:1px solid transparent;border-radius:8px;height:48px;padding:0 14px;margin:16px 0}
.search-box:focus-within{border-color:var(--orange);background:#fff}
.search-box input{border:0;outline:0;background:transparent;min-width:0;flex:1;color:var(--ink)}
.chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.chips::-webkit-scrollbar{display:none}
.filter-chip,.seg-btn{height:38px;padding:0 16px;border:1px solid var(--line);background:#fff;border-radius:8px;color:#596678;white-space:nowrap;font-weight:700}
.filter-chip.active,.seg-btn.active{background:var(--navy);border-color:var(--navy);color:#fff}
.chat-sticky-tabs{position:relative;z-index:2;flex:0 0 auto;margin:0;padding:10px 22px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 1px 4px rgba(16,24,40,.04)}
.chat-feed{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:16px 22px 20px;background:var(--chat-bg)}
.chat-day-divider{display:flex;align-items:center;gap:10px;width:100%;margin:7px 0 15px;color:#7a8796;font-size:11px;font-weight:800;letter-spacing:0}
.chat-day-divider:before,.chat-day-divider:after{content:"";height:1px;flex:1;background:#d9e0e8}
.chat-day-divider span{padding:5px 10px;border:1px solid #d9e0e8;border-radius:999px;background:rgba(255,255,255,.88);box-shadow:0 1px 3px rgba(16,24,40,.05);white-space:nowrap}
.chat-message-row{position:relative;display:flex;align-items:flex-end;justify-content:flex-start;gap:7px;width:100%;margin:0 0 3px;touch-action:pan-y}
.chat-message-row.group-end{margin-bottom:11px}
.chat-message-row.mine{justify-content:flex-end}
.chat-message-avatar{width:29px;height:29px;flex:0 0 29px;display:grid;place-items:center;border:2px solid rgba(255,255,255,.9);border-radius:50%;background:linear-gradient(135deg,hsl(var(--message-avatar-hue,340),62%,52%),hsl(calc(var(--message-avatar-hue,340) + 28),58%,40%));color:#fff;font-size:10px;font-weight:800;box-shadow:0 1px 3px rgba(16,24,40,.16)}
.chat-message-avatar-spacer{width:29px;height:1px;flex:0 0 29px}
.chat-message-avatar.lani{background:#d9852d;color:#fff}
.chat-message-stack{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;min-width:0;max-width:min(calc(74% - 36px),720px);transition:transform .16s ease;will-change:transform}
.chat-message-row.mine .chat-message-stack{align-items:flex-end}
.message-swipe-reply{position:absolute;z-index:0;top:50%;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#dce3ec;color:#536173;opacity:0;transform:translateY(-50%) scale(.82);transition:opacity .12s,transform .12s}
.chat-message-row:not(.mine) .message-swipe-reply{right:3px}
.chat-message-row.mine .message-swipe-reply{left:3px}
.chat-message-row.message-swiping .chat-message-stack{transition:none}
.chat-message-row.message-swiping .message-swipe-reply{opacity:1;transform:translateY(-50%) scale(1)}
.chat-message-bubble{width:max-content;max-width:100%;padding:10px 12px 8px;border:1px solid #dfe5ec;border-radius:8px;background:var(--chat-in);color:var(--ink);box-shadow:0 1px 2px rgba(16,24,40,.04);font-size:15px;line-height:1.42;overflow-wrap:anywhere}
.chat-message-row:not(.group-start) .chat-message-bubble{border-top-left-radius:5px}
.chat-message-row.mine:not(.group-start) .chat-message-bubble{border-top-left-radius:8px;border-top-right-radius:5px}
.chat-message-row.mine .chat-message-bubble{border-color:var(--chat-out);background:var(--chat-out);color:#fff}
.chat-message-row.ai .chat-message-bubble{border-color:#dfd2c3;background:var(--chat-ai);color:#303945;box-shadow:none}
.chat-message-author{display:block;margin-bottom:4px;color:#526170;font-size:12px;font-weight:800}
.chat-message-row.ai .chat-message-author{color:#985218}
.chat-message-quote{display:grid;gap:2px;width:100%;max-width:100%;margin:0 0 7px;padding:6px 8px;border:0;border-left:3px solid var(--orange);border-radius:5px;background:#f2f5f8;color:#596678;text-align:left;cursor:pointer}
.chat-message-quote:hover{filter:brightness(.98)}
.chat-message-quote b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#354154;font-size:11px}
.chat-message-quote span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.chat-message-row.mine .chat-message-quote{background:rgba(255,255,255,.1);color:#d8e0ec}
.chat-message-row.mine .chat-message-quote b{color:#fff}
.chat-message-row.ai .chat-message-quote{background:#ebe3da;color:#59616d}
.chat-message-text{display:block;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;max-height:none;-webkit-line-clamp:unset}
.chat-message-meta{display:block;margin-top:4px;text-align:right;color:#7a8796;font-size:10px;font-variant-numeric:tabular-nums}
.chat-message-row.mine .chat-message-meta{color:#b9c6d8}
.message-attachment{display:flex;align-items:center;gap:7px;max-width:100%;margin-top:8px;padding:8px 10px;border:1px solid rgba(103,112,128,.25);border-radius:7px;background:rgba(255,255,255,.14);color:inherit;text-align:left}
.message-attachment span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-message-row:not(.mine) .message-attachment{background:#f5f7fa}
.message-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(112px,1fr);gap:3px;width:min(100%,400px);height:284px;margin-top:8px;overflow:hidden;border-radius:8px;background:#dfe5ec}
.message-gallery.count-1{grid-template-columns:1fr;width:min(100%,400px);height:auto;background:transparent}
.message-gallery.count-2{height:250px}
.message-gallery.count-3 .message-media:first-child{grid-row:1 / span 2}
.message-gallery.count-4{height:300px}
.message-media,.chat-media-card{position:relative;display:grid;place-items:center;min-width:0;min-height:0;border:0;background:#dfe5ec;color:#697688;overflow:hidden}
.message-gallery.count-1 .message-media{width:100%;aspect-ratio:var(--media-ratio,4/3);max-height:min(56vh,520px);border-radius:8px;background:#e9edf2}
.message-media img,.message-media video,.chat-media-card img,.chat-media-card video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .18s}
.message-gallery.count-1 .message-media img,.message-gallery.count-1 .message-media video{object-fit:contain;background:#e9edf2}
.message-media.ready img,.message-media.ready video,.chat-media-card.ready img,.chat-media-card.ready video{opacity:1}
.message-media.ready .message-media-placeholder,.chat-media-card.ready .message-media-placeholder{display:none}
.message-media-placeholder{opacity:.72}
.message-media-error{position:absolute;left:10px;right:10px;bottom:10px;display:none;padding:5px 7px;border-radius:6px;background:rgba(22,32,46,.78);color:#fff;font-size:10px;font-weight:700;text-align:center}
.message-media.error .message-media-error,.chat-media-card.error .message-media-error{display:block}
.message-media.error .message-media-placeholder,.chat-media-card.error .message-media-placeholder{color:#b24d4d}
.message-media-play{position:absolute;left:50%;top:50%;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:rgba(15,24,38,.72);color:#fff;transform:translate(-50%,-50%)}
.message-media.video.ready .message-media-play{box-shadow:0 3px 14px rgba(0,0,0,.24)}
.message-media-more{position:absolute;inset:0;display:grid;place-content:center;gap:1px;background:rgba(14,24,38,.62);color:#fff;text-align:center}
.message-media-more span{font-size:26px;font-weight:800;line-height:1}
.message-media-more small{font-size:10px;font-weight:700;text-transform:uppercase}
.chat-readers{display:flex;align-items:center;justify-content:flex-end;height:20px;margin-top:3px;padding:0 2px 0 7px;border:0;background:transparent}
.chat-readers i,.chat-readers b{width:17px;height:17px;margin-left:-4px;border:1.5px solid var(--chat-bg);border-radius:50%;display:grid;place-items:center;background:hsl(var(--reader-hue),58%,44%);color:#fff;font:800 6px/1 sans-serif;font-style:normal}
.chat-readers b{width:auto;min-width:17px;padding:0 4px;background:#7b8796;font-size:7px}
.chat-delivered{height:15px;margin-top:2px;padding-right:3px;color:#8693a3}
.message-reactions{display:flex;flex-wrap:wrap;gap:4px;max-width:100%;margin-top:4px}
.message-reactions button{height:28px;min-width:40px;padding:0 8px;border:1px solid #d8dfe8;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;gap:4px;background:#fff;color:#4e5c6d}
.message-reactions button.mine{border-color:#ef9a4a;background:var(--orange-soft);color:#8e4b00}
.message-reactions button span{font-size:15px;line-height:1}
.message-reactions button b{font-size:10px}
.chat-search-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.chat-search-form .search-box{margin:0}
.chat-search-results{display:grid;margin-top:14px}
.chat-search-result{width:100%;padding:12px 2px;border:0;border-bottom:1px solid var(--line);background:#fff;color:inherit;text-align:left}
.chat-search-result>span{display:flex;align-items:center;justify-content:space-between;gap:12px}
.chat-search-result small{color:var(--muted)}
.chat-search-result p{margin:5px 0 0;color:#596678;line-height:1.35}
.chat-media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.chat-media-card{aspect-ratio:1}
.jump-highlight .chat-message-bubble{animation:message-highlight 1.8s ease}
@keyframes message-highlight{0%,100%{box-shadow:0 1px 2px rgba(16,24,40,.04)}20%,70%{box-shadow:0 0 0 3px rgba(239,126,17,.4)}}
.chat-history-button,.chat-history-state{min-height:34px;margin:0 auto 16px;border-radius:8px;display:flex;align-items:center;justify-content:center;gap:7px;font-size:12px;font-weight:700}
.chat-history-button{padding:7px 12px;border:1px solid #d9e0e8;background:rgba(255,255,255,.92);color:#526071;box-shadow:0 1px 3px rgba(16,24,40,.05)}
.chat-history-button:hover{background:#fff;border-color:#bdc7d3}
.chat-history-button:disabled{cursor:default;opacity:.7}
.chat-history-state{width:max-content;padding:5px 10px;color:#7a8796;background:rgba(255,255,255,.55)}
.chat-history-state svg,.chat-history-button:disabled svg{animation:spin .8s linear infinite}
.chat-history-state.history-start svg{animation:none}
.chat-bottom-button{position:absolute;z-index:8;right:18px;bottom:76px;width:44px;height:44px;border:1px solid #d4dbe4;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.96);color:#405064;box-shadow:0 5px 18px rgba(16,24,40,.18);opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity .16s,transform .16s}
.chat-bottom-button.show{opacity:1;pointer-events:auto;transform:translateY(0)}
.chat-live-activity{z-index:5;display:flex;align-items:center;gap:8px;flex:0 0 auto;max-height:118px;padding:5px 14px;overflow:auto;background:rgba(255,255,255,.98);border-top:1px solid rgba(216,223,232,.82);color:#657184;font-size:11px;line-height:1.2;scrollbar-width:none}
.chat-live-activity[hidden]{display:none}
.chat-live-activity::-webkit-scrollbar{display:none}
.chat-live-activity-list{display:grid;gap:0;width:min(100%,620px);min-width:0}
.chat-live-activity-row{display:grid;grid-template-columns:26px minmax(0,1fr) 30px;align-items:center;gap:8px;width:100%;min-height:34px;padding:3px 4px;border:0;background:transparent;white-space:nowrap;overflow:hidden}
.chat-live-activity-row+.chat-live-activity-row{border-top:1px solid rgba(219,225,233,.72)}
.chat-live-activity-avatar{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#168e87;color:#fff;font-size:8px;font-weight:800;letter-spacing:0;box-shadow:0 0 0 2px #fff}
.chat-live-activity-copy{display:flex;align-items:baseline;gap:4px;min-width:0;line-height:1.15}
.chat-live-activity-copy b,.chat-live-activity-copy small{overflow:hidden;text-overflow:ellipsis}
.chat-live-activity-copy b{flex:0 1 auto;max-width:220px;color:#172235;font-size:11.5px;font-weight:800}
.chat-live-activity-copy small{flex:0 0 auto;margin:0;color:#687689;font-size:11.5px;font-weight:500}
.chat-live-activity-row i{display:inline-flex;align-items:center;justify-content:center;gap:2px;width:28px;height:20px;margin-left:auto;color:#168e87}
.chat-live-activity-row[data-activity="voice"] i{color:var(--orange)}
.chat-live-activity-row[data-activity="photo"] i{color:#3978d2}
.chat-live-activity-row em{display:block;width:3px;height:3px;border-radius:50%;background:currentColor;animation:chat-activity-dot 1s infinite ease-in-out}
.chat-live-activity-row em:nth-child(2){animation-delay:.14s}
.chat-live-activity-row em:nth-child(3){animation-delay:.28s}
.chat-activity-wave em{width:2px;height:6px;border-radius:2px;animation:chat-activity-wave .78s infinite ease-in-out}
.chat-activity-wave em:nth-child(2),.chat-activity-wave em:nth-child(4){height:11px}
.chat-activity-wave em:nth-child(3){height:15px}
.chat-activity-wave em:nth-child(4){animation-delay:.13s}
.chat-activity-wave em:nth-child(5){animation-delay:.26s}
.chat-activity-photo svg{width:15px;height:15px;animation:chat-activity-photo 1.1s infinite ease-in-out}
.chat-live-activity-more{display:grid;place-items:center;min-width:26px;height:26px;border-radius:13px;background:#edf1f5;color:#526071;font-size:10px;font-weight:800}
@keyframes chat-activity-dot{0%,60%,100%{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}
@keyframes chat-activity-wave{0%,100%{opacity:.48;transform:scaleY(.45)}50%{opacity:1;transform:scaleY(1)}}
@keyframes chat-activity-photo{0%,100%{opacity:.55;transform:translateY(1px)}50%{opacity:1;transform:translateY(-2px)}}
.chat-compose-wrap{position:relative;z-index:6;flex:0 0 auto;width:100%;background:#fff;box-shadow:0 -2px 8px rgba(16,24,40,.05)}
.chat-compose{display:flex;align-items:flex-end;gap:8px;flex:0 0 auto;width:100%;padding:10px 12px;background:#fff;border-top:1px solid var(--line)}
.chat-reply-draft{min-height:50px;padding:7px 12px 7px 16px;border-top:1px solid var(--line);display:grid;grid-template-columns:22px minmax(0,1fr) 34px;align-items:center;gap:8px;background:#fff}
.chat-reply-draft>span:first-child{display:grid;place-items:center;color:var(--orange)}
.chat-reply-draft>span:nth-child(2){min-width:0;padding-left:8px;border-left:3px solid var(--orange)}
.chat-reply-draft b,.chat-reply-draft small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-reply-draft b{font-size:12px;color:#354154}
.chat-reply-draft small{margin-top:2px;color:#778495;font-size:11px}
.chat-reply-draft button{width:34px;height:34px;border:0;border-radius:50%;display:grid;place-items:center;background:#f1f4f8;color:#657184}
.chat-compose textarea{flex:1;min-width:0;min-height:44px;max-height:min(38dvh,260px);resize:none;overflow-y:hidden;border:1px solid #d8dee7;border-radius:8px;background:#f7f9fb;color:var(--ink);padding:11px 12px;outline:0}
.chat-compose textarea:focus{border-color:#9da9b8;background:#fff;box-shadow:0 0 0 3px rgba(34,48,71,.08)}
.composer-ai{background:var(--orange);color:#fff}
.composer-ai:hover{background:#dd6900;color:#fff}
.composer-ai:disabled{cursor:wait;opacity:.72}
.composer-ai:disabled svg{animation:spin .8s linear infinite}
.chat-lani-popover{position:absolute;z-index:20;right:58px;bottom:72px;width:min(282px,calc(100% - 24px));max-height:min(440px,calc(100dvh - 150px));padding:8px;border:1px solid #e0e5ec;border-radius:8px;background:#fff;color:var(--ink);box-shadow:0 16px 42px rgba(16,24,40,.2);overflow:auto;overscroll-behavior:contain;transform-origin:bottom right;animation:lani-menu-in .14s ease-out}
.chat-lani-popover:after{content:"";position:absolute;right:18px;bottom:-7px;width:12px;height:12px;border-right:1px solid #e0e5ec;border-bottom:1px solid #e0e5ec;background:#fff;transform:rotate(45deg)}
.chat-lani-popover button{position:relative;z-index:1;width:100%;min-height:48px;padding:7px 8px;border:0;border-radius:6px;display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:8px;background:#fff;color:#222c3a;text-align:left}
.chat-lani-popover button:hover,.chat-lani-popover button:focus-visible{background:#f4f6f9;outline:0}
.chat-lani-popover button>span:first-child{display:grid;place-items:center;color:#384557}
.chat-lani-popover button>span:last-child{min-width:0}
.chat-lani-popover b,.chat-lani-popover small{display:block}
.chat-lani-popover b{font-size:13px;line-height:1.2}
.chat-lani-popover small{margin-top:2px;color:#8490a0;font-size:10px;line-height:1.2}
.chat-lani-popover .chat-lani-call{margin-bottom:4px;border-bottom:1px solid #edf0f4;border-radius:6px 6px 0 0;color:#b65300}
.chat-lani-popover .chat-lani-call>span:first-child{color:var(--orange)}
@keyframes lani-menu-in{from{opacity:0;transform:translateY(7px) scale(.98)}to{opacity:1;transform:none}}
.composer-primary{flex:0 0 44px}
.recording-state{flex:1;min-width:0;height:44px;border:1px solid #f0c7c7;border-radius:8px;background:#fff7f7;display:flex;align-items:center;gap:8px;padding:0 12px;color:#6f3f46}
.recording-state i{width:9px;height:9px;border-radius:50%;background:var(--red);animation:record-pulse 1s infinite}
.recording-state span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8c6268}
@keyframes record-pulse{50%{opacity:.35}}
.voice-message{display:grid;gap:8px;width:min(410px,100%);max-width:100%;margin-top:6px;box-sizing:border-box}
.voice-player-row{display:flex;align-items:center;gap:10px;min-width:0}
.voice-play{flex:0 0 44px;width:44px;height:44px;border:0;border-radius:50%;display:grid;place-items:center;background:var(--orange);color:#fff;box-shadow:0 2px 8px rgba(246,122,10,.24)}
.voice-track{min-width:0;flex:1;display:grid;grid-template-rows:30px 14px;align-items:center}
.voice-wave{position:relative;width:100%;height:30px;min-width:120px;padding:0 3px;border:0;background:transparent;overflow:hidden}
.voice-wave-bars{position:absolute;inset:0;display:flex;align-items:center;gap:2px}
.voice-wave-bars i{z-index:1;width:3px;height:var(--wave-height);min-height:4px;border-radius:2px;background:#8793a2}
.voice-wave-progress{position:absolute;z-index:0;left:0;top:0;bottom:0;width:0;background:rgba(246,122,10,.28);border-right:2px solid var(--orange);pointer-events:none}
.voice-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#7a8796;font-size:10px}
.voice-duration{min-width:34px;font-variant-numeric:tabular-nums}
.voice-tools{display:flex;align-items:center;gap:6px;padding-top:1px}
.voice-speed,.voice-transcribe,.voice-task{height:30px;padding:0 9px;border:1px solid #d9e0e8;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;gap:5px;background:#f7f9fb;color:#526071;font-size:11px;font-weight:800}
.voice-speed{min-width:42px}
.voice-transcribe{min-width:65px}
.voice-transcript{display:none;padding:9px 10px;border-left:3px solid var(--orange);border-radius:0 7px 7px 0;background:#eef2f6;color:#445164;white-space:pre-wrap;font-size:12px;line-height:1.4}
.voice-transcript.show{display:block}
.voice-task{margin-left:auto;border-color:#f0b877;background:#fff5e9;color:#a95500}
.voice-task:disabled{opacity:.55}
.chat-message-row.mine .voice-wave-bars i{background:#aebbd0}
.chat-message-row.mine .voice-meta{color:#c4cddd}
.chat-message-row.mine .voice-speed,.chat-message-row.mine .voice-transcribe{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.16);color:#fff}
.chat-message-row.mine .voice-transcript{background:rgba(255,255,255,.1);color:#fff}
.chat-message-row.mine .voice-task{border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.12);color:#fff}
.chat-list-screen{display:flex;min-height:0;flex-direction:column}
.chat-list-screen>.search-box{margin:14px 0 12px}
.chat-list-screen>.chips{padding-bottom:10px}
.chat-list,.thread-list{margin:0 -22px;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.thread-hub-screen{min-height:calc(100dvh - 170px);padding-top:14px}
.thread-hub-screen .thread-list{margin-top:0}
.thread-row{min-height:72px;padding:9px 22px}
.thread-row:hover{background:#f8fafc}
.thread-avatar{width:46px;height:46px;flex:0 0 46px;border-radius:8px;display:grid;place-items:center;background:#168e87;color:#fff}
.thread-row.general .thread-avatar{background:#59687a}
.thread-copy strong{display:flex;align-items:center;gap:7px}
.thread-copy strong svg{flex:0 0 auto;color:#29374a}
.thread-time{align-self:stretch;min-width:50px;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;color:#718096;font-size:11px;white-space:nowrap}
.thread-archive-title{margin:0 -22px;padding:13px 22px 8px;background:var(--page);color:#677487;font-size:12px;font-weight:800;text-transform:uppercase}
.archived-threads .thread-row{background:#f8f9fb;color:#707b89}
.archived-threads .thread-row:hover{background:#f1f3f6}
.archived-threads .thread-avatar{background:#adb7c3}
.thread-empty{display:grid;justify-items:center;gap:8px;padding:70px 20px;text-align:center;color:var(--muted)}
.thread-empty>b{color:var(--ink)}
.thread-empty small{max-width:330px;line-height:1.45}
.thread-empty .primary-btn{margin-top:10px}
.chat-row-shell{position:relative;overflow:hidden;background:#fff;touch-action:pan-y}
.chat-row-shell.pinned{background:#fff9f1}
.chat-row-shell.muted .chat-row{opacity:.82}
.chat-row{position:relative;z-index:1;min-height:64px;padding:8px 22px;transition:transform .16s ease,background .16s ease;will-change:transform}
.chat-row-shell.pinned .chat-row{background:#fff9f1}
.chat-row:active{background:#f4f6f9}
.chat-swipe-action{position:absolute;z-index:0;inset-block:0;width:92px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#fff;font-size:10px;font-weight:800;visibility:hidden;opacity:0;transition:opacity .1s}
.chat-row-shell.swiping .chat-swipe-action{visibility:visible;opacity:1}
.chat-swipe-action.read{left:0;background:var(--green)}
.chat-swipe-action.mute{right:0;background:#697688}
.chat-copy strong{display:flex;align-items:center;gap:6px}
.chat-copy strong{font-size:15px}
.chat-copy>span{font-size:12px;margin-top:2px}
.chat-copy strong>svg{flex:0 0 auto;color:var(--orange-dark)}
.chat-copy .has-draft em{color:var(--red);font-style:normal;font-weight:800}
.chat-project{max-width:130px;padding:2px 5px;border-radius:5px;background:var(--orange-soft);color:#9a5900;font-size:9px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-time{align-self:stretch;min-width:52px;padding-top:1px;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:4px;font-size:11px;color:#718096;white-space:nowrap}
.chat-time time{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15}
.chat-time time small{margin-top:2px;font-size:10px;color:var(--muted)}
.chat-row-signals{min-height:22px;display:flex;align-items:center;justify-content:flex-end;gap:4px;color:#7d8998}
.chat-row-signals svg{flex:0 0 auto}
.mention-badge{width:21px;height:21px;border-radius:50%;display:grid;place-items:center;background:#d6263c;color:#fff;font-size:11px}
.chat-list-read{display:inline-flex;align-items:center;color:#8793a2}
.chat-list-read.read{color:var(--blue)}
.chat-avatar{width:44px;height:44px;border-radius:8px;display:grid;place-items:center;color:#fff;font-weight:800;font-size:15px;background:#168e87;position:relative;flex:0 0 auto}
.chat-avatar.dm{border-radius:50%;background:#2670d7}
.chat-avatar.channel{background:#7548dd}
.chat-head-avatar{position:relative;width:42px;height:42px;flex:0 0 42px;border-radius:8px;display:grid;place-items:center;background:#168e87;color:#fff;font-size:13px;font-weight:800}
.chat-head-avatar.dm{border-radius:50%;background:#2670d7}
.chat-head-avatar.channel{background:#7548dd}
.online-dot{position:absolute;width:10px;height:10px;border-radius:50%;background:#0b9b70;border:2px solid #fff;right:-1px;bottom:-1px}
.lani-btn{height:40px;padding:0 14px;border:0;border-radius:8px;background:var(--orange);color:#fff;font-weight:800;display:flex;gap:7px;align-items:center}
.unread{min-width:23px;height:23px;padding:0 6px;border-radius:12px;background:var(--orange);color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center}
.list-note{margin:12px 0;padding:11px 12px;background:#f3f5f8;color:#6a7686;border-radius:8px;font-size:12px}
.chat-gesture-note{display:flex;align-items:flex-start;gap:9px;line-height:1.4}
.chat-gesture-note svg{flex:0 0 auto;margin-top:1px}
.group-call-list{display:grid}
.group-call-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.group-call-row:last-child{border-bottom:0}
.group-call-row>span:nth-child(2){min-width:0}
.group-call-row b,.group-call-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.group-call-row small{margin-top:3px;color:var(--muted)}
.object-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}
.object-card{border:0;text-align:left;padding:18px;background:#fff;border-radius:8px;box-shadow:var(--shadow);border:1px solid var(--line)}
.objects-daily-strip{width:100%;min-height:64px;margin-top:14px;padding:12px 16px;border:0;border-radius:8px;display:flex;align-items:flex-start;gap:10px;background:var(--navy);color:#fff;text-align:left;line-height:1.45}
.objects-daily-strip svg{flex:0 0 auto;margin-top:2px}.objects-daily-strip span{min-width:0}.objects-daily-strip strong{color:#54d7a6}.objects-daily-strip .danger{color:#ff879a}
.object-card-head{display:grid;grid-template-columns:56px minmax(0,1fr);align-items:center;gap:13px}
.object-code{width:56px;height:56px;border-radius:8px;display:grid;place-items:center;background:#168e87;color:#fff;font-size:18px;font-weight:800}
.object-card h3{font-size:20px;margin:0 0 5px}
.object-card p{margin:0;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.object-card-tags{display:flex;flex-wrap:wrap;gap:7px;margin:16px 0 12px}
.bar{height:6px;border-radius:4px;background:#e5e9ef;overflow:hidden}
.bar i{display:block;height:100%;width:var(--progress,0%);background:var(--orange);border-radius:4px}
.bar.green i{background:var(--green)}.bar.red i{background:var(--red)}
.object-meta{color:var(--muted);margin-top:8px;font-size:13px}
.object-hero{background:var(--navy);color:#fff;padding:22px;margin:0 -22px;border-radius:0 0 8px 8px}
.object-hero h1{font-size:28px;margin:0}
.object-hero p{color:#b9c2ce;margin:6px 0 0}
.object-detail-hero{background:var(--navy);color:#fff;padding:22px;margin:0 -22px;border-radius:0 0 8px 8px}
.object-detail-heading{display:grid;grid-template-columns:44px 58px minmax(0,1fr) 44px;align-items:center;gap:12px}
.object-hero-icon{width:44px;height:44px;border:0;border-radius:8px;background:#344052;color:#fff;display:grid;place-items:center}
.object-detail-code{width:58px;height:58px;border-radius:8px;background:var(--orange);color:#fff;display:grid;place-items:center;font-size:18px;font-weight:900}
.object-detail-title{min-width:0}
.object-detail-title h1{margin:0;font-size:28px;line-height:1.08;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.object-detail-title p{margin:6px 0 0;color:#bdc6d2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.object-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:18px}
.object-stat{padding:13px 8px;border:0;text-align:center;border-radius:8px;background:#2d3848;color:#fff}
.object-stat:hover{background:#374457}
.object-stat b{font-size:23px;display:block}
.object-stat span{color:#c1c8d2;font-size:11px;text-transform:uppercase}
.object-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:10px}
.object-action{height:74px;border:0;border-radius:8px;background:#2d3848;color:#fff;display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center}
.object-action:disabled{opacity:.45}
.object-summary-section{margin-top:20px}
.object-option-list .decision-icon{background:var(--orange-soft);color:var(--orange-dark)}
.lani-summary{background:#ffead7;border-radius:8px;padding:18px;border-left:4px solid var(--orange)}
.lani-summary strong{display:block;color:#9c4d00;margin-bottom:10px}
.lani-summary p{margin:5px 0;line-height:1.45}
.material-list,.deadline-list{padding:12px 16px}
.material-row,.deadline-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:11px 0;border:0;border-bottom:1px solid var(--line);background:#fff;color:inherit;text-align:left}
.material-row:last-child,.deadline-row:last-child{border-bottom:0}
.material-note{display:flex;align-items:flex-start;gap:8px;margin:10px 0 0;padding:10px 11px;border-radius:7px;background:#f2f4f7;color:#667085;font-size:12px;line-height:1.4}.material-note svg{flex:0 0 auto}
.task-toolbar{display:flex;align-items:center;gap:10px;margin:16px 0}
.segmented{height:44px;padding:4px;border-radius:8px;background:#e9edf3;display:flex;flex:1}
.segmented .seg-btn{height:36px;flex:1;border:0;background:transparent}
.segmented .seg-btn.active{background:#fff;color:var(--ink);box-shadow:var(--shadow)}
.task-list{display:grid;gap:12px}
.task-board-toolbar{display:flex;align-items:center;gap:10px;margin:0 0 14px}
.task-board-search{height:42px;min-width:220px;flex:1;display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted)}
.task-board-search input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--ink);font:inherit}
.task-board-filters{display:flex;gap:8px}
.task-board-filters select{height:42px;max-width:170px;padding:0 30px 0 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#536174;font-weight:700;outline:0}
.kanban-board{display:grid;grid-template-columns:repeat(4,minmax(245px,1fr));align-items:start;gap:12px;min-width:0;padding-bottom:90px}
.kanban-column{min-width:0;border:1px solid var(--line);border-top:4px solid var(--blue);border-radius:8px;background:#f5f7fa;padding:10px;transition:border-color .16s ease,background .16s ease}
.kanban-column.tone-orange{border-top-color:var(--orange)}.kanban-column.tone-violet{border-top-color:var(--violet)}.kanban-column.tone-green{border-top-color:var(--green)}
.kanban-column.drag-over{border-color:var(--orange);background:#fff4e8}
.kanban-column-head{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.kanban-column-head>span{display:flex;align-items:center;gap:7px;min-width:0}
.kanban-column-head b{font-size:14px}.kanban-column-head i{min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:#e7ebf1;color:#687586;font-size:11px;font-style:normal;display:grid;place-items:center}
.kanban-column-head button{width:34px;height:34px;border:0;border-radius:7px;background:transparent;color:#687586;display:grid;place-items:center}
.kanban-column-head button:hover{background:#fff;color:var(--orange-dark)}
.kanban-add{width:100%;height:34px;margin-bottom:8px;border:0;border-radius:7px;background:transparent;color:var(--blue);font-weight:800;display:flex;align-items:center;gap:5px}
.kanban-cards{display:grid;gap:9px;min-height:72px}
.kanban-empty{min-height:64px;border:1px dashed #d8dee7;border-radius:7px;display:grid;place-items:center;color:#9aa4b2;font-size:12px;text-align:center;padding:10px}
.kanban-card{border:1px solid #dfe4eb;border-radius:8px;background:#fff;box-shadow:0 2px 6px rgba(20,32,48,.08);overflow:hidden;transition:opacity .16s ease,transform .16s ease}
.kanban-card.dragging{opacity:.42;transform:scale(.98)}
.kanban-card.overdue{border-color:#f1a6ad}
.kanban-card>button{width:100%;padding:12px;border:0;background:#fff;color:inherit;text-align:left}
.kanban-card-top{display:flex;align-items:center;gap:6px;min-height:22px}
.kanban-card-top>svg{margin-left:auto;color:#7b8797}
.kanban-priority{padding:4px 7px;border-radius:6px;font-size:10px;font-weight:800}
.priority-high{background:#ffe5e7;color:var(--red)}.priority-mid{background:#fff0dc;color:#b35b00}.priority-low{background:#e6f4ef;color:var(--green)}
.kanban-card h3{margin:9px 0 11px;font-size:14px;line-height:1.35}
.kanban-card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:7px;color:#5e6b7a;font-size:11px}
.kanban-card-meta span{display:flex;align-items:center;gap:4px;padding:4px 6px;border-radius:5px;background:#f4f6f9}
.kanban-card-meta .danger{color:var(--red);background:#fff0f1}
.kanban-card-assignee{display:flex;align-items:center;gap:7px;margin-top:10px;color:#617083;font-size:11px}
.task-swipe-shell{position:relative;overflow:hidden;border-radius:8px;touch-action:pan-y;isolation:isolate}
.task-swipe-action{position:absolute;z-index:0;top:0;bottom:0;width:106px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:11px;font-weight:800;opacity:.55;transition:opacity .16s ease}
.task-swipe-next{left:0;background:#dff5eb;color:var(--green)}
.task-swipe-back{right:0;background:#ffe8e9;color:var(--red)}
.task-swipe-shell.swipe-next .task-swipe-next,.task-swipe-shell.swipe-back .task-swipe-back{opacity:1}
.task-swipe-shell .task-card{position:relative;z-index:1;transition:transform .18s ease}
.task-swipe-shell.swiping .task-card{transition:none}
.task-card{display:block;width:100%;background:#fff;border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:8px;padding:16px 16px 52px;box-shadow:var(--shadow);color:inherit;text-align:left}
.task-thread-shortcut{position:absolute;right:12px;bottom:11px;z-index:3;min-width:92px;height:36px;padding:0 11px;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--blue);box-shadow:0 2px 8px rgba(15,23,42,.12);font:inherit;font-size:12px;font-weight:800;cursor:pointer}
.task-thread-shortcut:active{transform:scale(.96)}
.task-card.red{border-left-color:var(--red)}.task-card.violet{border-left-color:var(--violet)}
.task-card-top{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-bottom:10px}
.task-card h3{font-size:18px;line-height:1.25;margin:0 0 14px}
.task-stage{display:grid;grid-template-columns:auto 1fr auto 1fr auto;align-items:center;gap:6px;font-size:12px;font-weight:800;color:#687586}
.task-stage i{height:3px;background:#dce1e7}.task-stage i.done{background:var(--green)}
.task-stage .done{color:var(--green)}.task-stage .active{color:var(--blue)}
.task-stage .pending{color:#a4adb8}
.task-footer{display:flex;gap:9px;align-items:center;color:#5e6b7a;margin-top:13px;font-size:13px}
.task-swipe-hint{display:flex;align-items:flex-start;gap:9px;margin:12px 0 84px;padding:11px 12px;border-radius:8px;background:#f3f5f8;color:#697587;font-size:12px;line-height:1.42}
.task-swipe-hint svg{flex:0 0 auto;margin-top:1px}
.task-calendar{display:grid;gap:18px}
.task-calendar section h3{margin:0 0 12px;color:#637083;font-size:13px;text-transform:uppercase}
.task-date-strip{display:grid;grid-template-columns:34px minmax(0,1fr) 34px;align-items:center;gap:6px;margin:2px -4px 0}
.task-date-days{display:grid;grid-template-columns:repeat(8,minmax(48px,1fr));gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px}
.task-date-days::-webkit-scrollbar{display:none}
.task-date-arrow{width:34px;height:54px;border:0;border-radius:8px;background:#fff;color:#657183;display:grid;place-items:center}
.task-date{height:62px;min-width:48px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;position:relative}
.task-date span{font-size:10px;text-transform:uppercase;color:#697588;font-weight:800}
.task-date b{font-size:16px}
.task-date i{position:absolute;bottom:5px;width:5px;height:5px;border-radius:50%;background:var(--orange)}
.task-date.active{background:var(--navy);border-color:var(--navy);color:#fff}
.task-date.active span{color:#fff}.task-date.active i{background:var(--orange)}
.task-day-section{margin-top:2px}
.task-day-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 14px;box-shadow:var(--shadow)}
.task-agenda-row{width:100%;min-height:44px;display:grid;grid-template-columns:70px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 0;border:0;border-bottom:1px solid var(--line);background:#fff;color:inherit;text-align:left}
.task-agenda-row:last-child{border-bottom:0}
.task-agenda-row time{font-size:12px;color:#516176;font-variant-numeric:tabular-nums}
.task-agenda-row span{font-size:14px;line-height:1.35}
.task-agenda-row b{padding:4px 7px;border-radius:6px;background:#e8eef7;color:#4e6380;font-size:10px;white-space:nowrap}
.task-agenda-row.overdue time,.task-agenda-row.overdue span{color:var(--red)}
.overdue-task-modal{width:min(520px,100%)}
.overdue-task-sub{margin:0 0 14px;color:#667085;font-size:13px;line-height:1.45}
.overdue-known{border:1px solid var(--red);border-radius:8px;padding:12px 13px;margin-bottom:12px}
.overdue-known strong{display:block;color:var(--red);font-size:11px;text-transform:uppercase;margin-bottom:6px}
.overdue-known p{margin:0;line-height:1.45;font-size:14px}
.overdue-actions{display:grid}
.overdue-actions>button{min-height:66px;border:0;border-bottom:1px solid var(--line);background:#fff;color:inherit;display:flex;align-items:center;gap:12px;text-align:left;padding:10px 0}
.overdue-actions>button:last-child{border-bottom:0}
.overdue-action-icon{width:36px;height:36px;flex:0 0 36px;border-radius:8px;background:#f1f4f8;color:#667085;display:grid;place-items:center}
.overdue-action-icon.danger{background:#ffe7e9;color:var(--red)}
.overdue-actions b,.overdue-actions small{display:block}
.overdue-actions b{font-size:14px}.overdue-actions small{color:#667085;margin-top:3px;font-size:12px}
.overdue-actions .overdue-detail-link{min-height:42px;justify-content:center;color:var(--orange-dark);font-weight:800;font-size:13px}
.task-return-modal{width:min(520px,100%)}
.task-return-summary{display:grid;gap:5px;padding:12px 13px;border-left:3px solid var(--red);border-radius:7px;background:#f4f6f9}
.task-return-summary b{font-size:15px}
.task-return-summary span{color:#667085;font-size:12px}
.task-return-note{display:flex;align-items:flex-start;gap:8px;margin:0;padding:10px 12px;border-radius:7px;background:#f3f5f8;color:#667085;font-size:12px;line-height:1.4}
.task-return-note svg{flex:0 0 auto}
.primary-btn.danger-btn{background:var(--red)}
.task-draft-source{display:flex;align-items:flex-start;gap:10px;padding:12px;border-left:3px solid var(--orange);border-radius:7px;background:var(--orange-soft);color:#7d4600}.task-draft-source svg{flex:0 0 auto}.task-draft-source b,.task-draft-source small{display:block}.task-draft-source small{margin-top:3px;color:#8b6b48;font-size:11px;line-height:1.35}
.task-action-sheet{display:grid;gap:13px}.task-sheet-meta{display:flex;flex-wrap:wrap;gap:7px}.task-known{padding:12px 13px;border:1px solid var(--line);border-radius:8px;background:#f8fafc;color:#556274;line-height:1.45}.task-known strong{display:block;margin-bottom:5px;color:var(--ink);font-size:11px;text-transform:uppercase}
.active-context{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;padding:10px 12px;border:1px solid #f0c895;border-radius:8px;background:var(--orange-soft);color:#844700;font-size:13px;font-weight:800}
.active-context span{display:flex;align-items:center;gap:7px;min-width:0}
.active-context button{width:30px;height:30px;border:0;border-radius:7px;background:#fff;color:#844700;display:grid;place-items:center;flex:0 0 auto}
.float-action{position:fixed;z-index:25;right:max(18px,calc((100vw - 1180px)/2 + 20px));bottom:calc(var(--bottom) + env(safe-area-inset-bottom,0px) + 18px);height:52px;padding:0 19px;border:0;border-radius:8px;background:var(--orange);color:#fff;font-weight:800;box-shadow:0 7px 18px rgba(246,122,10,.28);display:flex;align-items:center;gap:8px}
.supply-tabs{margin:15px 0}
.supply-list{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.supply-row{width:100%;border-left:0;border-right:0;border-top:0;background:#fff;color:inherit;text-align:left}
.price{font-variant-numeric:tabular-nums;font-weight:800}
.status-dot{width:9px;height:9px;border-radius:50%;background:var(--green);display:inline-block}
.v3-bottom{position:fixed;z-index:50;left:0;right:0;bottom:0;height:calc(var(--bottom) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:rgba(255,255,255,.98);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);backdrop-filter:blur(14px)}
.v3-bottom-inner{display:contents}
.nav-btn{min-width:0;color:#687586;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;font-weight:700;position:relative}
.nav-btn.active{color:var(--orange-dark)}
.nav-btn svg{width:23px;height:23px}
.nav-badge{position:absolute;top:7px;left:calc(50% + 7px);min-width:18px;height:18px;border-radius:9px;padding:0 5px;background:var(--red);color:#fff;font-size:10px;display:grid;place-items:center}
.v3-drawer{position:fixed;z-index:90;inset:0;display:flex;justify-content:flex-end;background:rgba(10,16,24,.46)}
.v3-drawer[hidden]{display:none}
.drawer-panel{width:min(430px,100%);height:100%;background:var(--page);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px);box-shadow:-12px 0 30px rgba(0,0,0,.16)}
.drawer-head{height:64px;background:#fff;border-bottom:1px solid var(--line);padding:0 14px;display:flex;align-items:center;gap:10px}
.drawer-head strong{flex:1}
.drawer-messages{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:10px}
.lani-msg,.mine-msg{max-width:88%;padding:12px 14px;border-radius:8px;line-height:1.42;white-space:pre-wrap}
.v3-main .lani-msg,.v3-main .mine-msg{white-space:normal}
.lani-msg{align-self:flex-start;background:#fff4e7;border:1px solid #f3d8b9}
.mine-msg{align-self:flex-end;background:var(--navy);color:#fff}
.drawer-compose{display:flex;align-items:flex-end;gap:8px;background:#fff;border-top:1px solid var(--line);padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px))}
.drawer-compose textarea{flex:1;resize:none;min-height:44px;max-height:120px;border:1px solid var(--line);border-radius:8px;padding:11px 12px;outline:0}
.drawer-compose textarea:focus{border-color:var(--orange)}
.reader-list{display:grid}
.reader-row{display:flex;align-items:center;gap:12px;min-height:70px;padding:9px 2px;border-bottom:1px solid var(--line)}
.reader-row:last-child{border-bottom:0}
.reader-avatar{width:46px;height:46px;flex:0 0 46px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,hsl(var(--reader-hue,340),62%,52%),hsl(calc(var(--reader-hue,340) + 28),58%,40%));color:#fff;font-size:12px;font-weight:800}
.reader-copy{min-width:0;flex:1}
.reader-check{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;color:var(--blue)}
.reader-row b,.reader-row small{display:block}
.reader-row b{font-size:15px}
.reader-row small{margin-top:4px;color:var(--muted);font-size:12px}
.reader-note{margin:14px 0 0;padding:10px 12px;border-radius:7px;background:#f3f5f8;color:var(--muted);font-size:12px;line-height:1.4}
.message-action-preview{display:grid;gap:4px;margin-bottom:12px;padding:11px 12px;border-left:3px solid var(--orange);border-radius:6px;background:#f4f6f9}
.message-action-preview b{font-size:12px;color:#445164}
.message-action-preview span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#667085;font-size:13px}
.message-reaction-picker{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;margin-bottom:12px}
.message-reaction-picker button{height:44px;border:1px solid #dfe4eb;border-radius:8px;background:#fff;font-size:23px}
.message-reaction-picker button:hover{background:var(--orange-soft);border-color:#f0b476}
.message-action-list{border-top:1px solid var(--line)}
.media-viewer{position:fixed;z-index:180;inset:0;width:100vw;height:100dvh;display:grid;grid-template-rows:minmax(0,1fr);overflow:hidden;overscroll-behavior:none;touch-action:pan-y;background:#090c11;color:#fff}
.media-viewer-head{position:absolute;z-index:3;top:0;left:0;right:0;min-height:calc(58px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 12px 0 18px;display:flex;align-items:center;gap:12px;background:rgba(9,12,17,.76);backdrop-filter:blur(12px)}
.media-viewer-head span{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.media-viewer-head b{color:#aeb8c5;font-size:12px}
.media-viewer-control{width:44px;height:44px;border:1px solid rgba(255,255,255,.14);border-radius:50%;display:grid;place-items:center;background:rgba(29,36,47,.88);color:#fff}
.media-viewer-stage{position:relative;min-height:0;width:100%;height:100%;display:grid;place-items:center;overflow:hidden;background:#090c11}
.media-viewer-stage img,.media-viewer-stage video{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;background:#090c11;user-select:none;-webkit-user-drag:none}
.media-viewer-stage video{background:#000}
.media-viewer-stage .media-prev,.media-viewer-stage .media-next{position:absolute;top:50%;transform:translateY(-50%)}
.media-viewer-stage .media-prev{left:16px}
.media-viewer-stage .media-next{right:16px}
.v3-modal-bg{position:fixed;z-index:110;inset:0;padding:20px;display:grid;place-items:center;background:rgba(10,16,24,.5);backdrop-filter:blur(3px);overscroll-behavior:contain}
.v3-modal{width:min(560px,100%);max-height:min(760px,calc(100dvh - 40px));overflow:hidden;border-radius:8px;background:#fff;box-shadow:0 20px 50px rgba(0,0,0,.22);display:flex;flex-direction:column}
.message-sheet-bg{align-items:end}
.reader-sheet,.message-action-sheet{width:min(520px,100%)}
.v3-modal-head{display:flex;align-items:center;gap:12px;min-height:64px;padding:10px 14px;border-bottom:1px solid var(--line)}
.v3-modal-head h2{min-width:0;flex:1;margin:0;font-size:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v3-modal-body{padding:18px;overflow:auto;overscroll-behavior:contain}
.v3-form{display:grid;gap:14px}
.v3-form label{display:grid;gap:6px}
.v3-form label>span{font-size:12px;font-weight:800;color:#637083;text-transform:uppercase}
.v3-form input,.v3-form select,.v3-form textarea{width:100%;min-height:44px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);padding:10px 12px;outline:0}
.v3-form textarea{resize:vertical}
.v3-form input:focus,.v3-form select:focus,.v3-form textarea:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(246,122,10,.12)}
.chat-create-button{color:var(--orange)}
.chat-create-picker>button{grid-template-columns:44px minmax(0,1fr) auto}
.v3-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ai-field-label{position:relative}
.ai-field-label input:not([type]),.ai-field-label input[type="text"],.ai-field-label textarea{padding-right:46px}
.field-ai-btn{position:absolute;z-index:2;right:7px;bottom:7px;width:32px;height:32px;border:0;border-radius:7px;background:var(--orange-soft);color:var(--orange-dark);display:grid;place-items:center}
.field-ai-btn:hover{background:var(--orange);color:#fff}
.field-ai-menu{position:absolute;z-index:145;right:0;top:calc(100% + 6px);width:min(255px,calc(100vw - 48px));padding:7px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 14px 32px rgba(18,28,42,.18);display:grid;gap:2px}
.field-ai-menu>strong{display:flex;align-items:center;gap:7px;padding:8px 9px;color:var(--orange-dark);font-size:12px}
.field-ai-menu>button{min-height:38px;border:0;border-radius:6px;background:#fff;color:var(--ink);display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:7px;text-align:left;padding:6px 8px;font-size:12px}
.field-ai-menu>button:hover{background:#f3f5f8}
.field-ai-menu.busy{opacity:.62;pointer-events:none}
.v3-detail{display:grid;gap:0}
.detail-kv{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid var(--line)}
.detail-kv span{color:var(--muted)}
.detail-kv b{text-align:right}
.v3-status-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.v3-status-actions button{min-height:40px;border:1px solid var(--line);border-radius:7px;background:#f3f5f8;color:#344054;padding:0 13px;font-weight:800}
.v3-status-actions button.green{border-color:#a9ddca;background:var(--green-soft);color:var(--green)}
.v3-picker{display:grid;gap:2px}
.v3-picker>button:not(.primary-btn){display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:66px;border:0;border-bottom:1px solid var(--line);background:#fff;color:inherit;text-align:left}
.v3-picker>button span:nth-child(2){min-width:0}
.v3-picker>button b,.v3-picker>button small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v3-picker>button small{margin-top:3px;color:var(--muted)}
.v3-picker .primary-btn{margin-top:14px}
.today-modal-summary{display:flex;align-items:baseline;gap:10px;margin-bottom:14px;padding:14px 16px;border-radius:8px;background:var(--navy);color:#fff}
.today-modal-summary b{font-size:28px}
.today-modal-summary span{color:#c4ccd7}
.today-search-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.today-search-form .search-box{margin:0}
.today-search-results{display:grid;margin-top:14px}
.today-search-result{width:100%;display:flex;align-items:center;gap:12px;padding:12px 2px;border:0;border-bottom:1px solid var(--line);background:#fff;color:inherit;text-align:left}
.today-search-hint{padding:44px 20px;text-align:center;color:var(--muted)}
.today-search-hint svg{margin:auto}
.today-search-hint p{max-width:360px;margin:12px auto 0;line-height:1.45}
.today-profile-card{display:flex;align-items:center;gap:14px;padding:18px;border-radius:8px;background:var(--navy);color:#fff}
.avatar.today-profile-avatar{width:62px;height:62px;font-size:18px;background:#2fb594}
.today-profile-card h3{margin:0 0 5px;font-size:21px}
.today-profile-card p{margin:0;color:#bdc6d2}
.today-profile-actions{margin-top:14px}
.v3-toast{position:fixed;z-index:400;left:50%;bottom:calc(var(--bottom) + 20px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);max-width:calc(100vw - 30px);background:var(--navy);color:#fff;border-radius:8px;padding:11px 15px;opacity:0;pointer-events:none;transition:.2s}
.v3-toast.show{opacity:1;transform:translate(-50%,0)}
.empty{padding:50px 20px;text-align:center;color:var(--muted)}
.login-required{min-height:100dvh;display:grid;place-items:center;padding:max(24px,env(safe-area-inset-top,0px)) 20px max(24px,env(safe-area-inset-bottom,0px));background:var(--page)}
.login-card{width:min(420px,100%);max-width:calc(100vw - 40px);min-width:0;overflow:hidden;padding:30px;text-align:center;border:1px solid var(--line);background:#fff;box-shadow:0 18px 46px rgba(16,24,40,.12)}
.login-brand{margin-bottom:20px;color:var(--navy);font-size:13px;font-weight:900;letter-spacing:3px}
.login-mark{width:64px;height:64px;margin:0 auto 18px;display:grid;place-items:center;border-radius:50%;background:var(--orange);color:#fff;font-size:20px;font-weight:900;box-shadow:0 10px 24px rgba(246,122,10,.25)}
.login-card h1{margin:0 0 8px;font-size:26px}.login-card>p{margin:0 0 24px;color:var(--muted)}
.login-card>small{display:block;margin-top:16px;color:var(--muted);line-height:1.45}
.login-form{min-width:0;display:grid;gap:14px;text-align:left}
.login-form label{min-width:0;display:grid;gap:7px}
.login-form label span{color:#5f6b7a;font-size:12px;font-weight:800;text-transform:uppercase}
.login-form input{width:100%;min-width:0;height:48px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);padding:0 13px;font-size:16px;outline:0}
.login-form input:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(246,122,10,.13)}
.login-submit{width:100%;min-height:48px;margin-top:4px}
.login-submit:disabled{opacity:.7;cursor:wait}
.login-error{border:1px solid #f2b8c0;border-radius:7px;background:#fff0f2;color:#b42335;padding:10px 12px;font-size:13px;line-height:1.4}
.primary-btn{border:0;border-radius:8px;background:var(--orange);color:#fff;height:46px;padding:0 18px;font-weight:800}
@media(max-width:720px){
  :root{--bottom:68px}
  .v3-test-ribbon{display:none}
  .v3-main{padding:0 14px 24px}
  .v3-top{padding:max(8px,env(safe-area-inset-top,0px)) 14px 8px}
  .v3-top-inner{min-height:44px;gap:9px}
  .v3-head-actions{gap:6px}
  .v3-head-actions .avatar-btn{width:36px;height:36px;font-size:12px}
  .lani-btn{height:36px;padding:0 12px;font-size:13px}
  .v3-chat-shell .v3-main{padding:0}
  .thread-hub-screen{min-height:calc(100dvh - 150px);padding-top:0}
  .thread-row{min-height:65px;padding:8px 14px;gap:10px}
  .thread-avatar{width:42px;height:42px;flex-basis:42px}
  .thread-time{min-width:42px;font-size:10px}
  .thread-archive-title{margin:0 -14px;padding:12px 14px 7px}
  .chat-sticky-tabs{margin:0;padding:7px 10px}
  .chat-sticky-tabs .filter-chip{height:32px;padding:0 13px;font-size:12px}
  .chat-feed{padding:10px 10px 12px;scrollbar-gutter:auto}
  .chat-message-row{gap:6px}
  .chat-message-avatar{width:27px;height:27px;flex-basis:27px;font-size:9px}
  .chat-message-avatar-spacer{width:27px;flex-basis:27px}
  .chat-message-stack{max-width:calc(86% - 33px)}
  .chat-message-bubble{max-width:100%;padding:9px 11px 7px;font-size:14px;line-height:1.38}
  .voice-message{width:min(330px,100%);max-width:100%;gap:7px}
  .voice-player-row{gap:8px}
  .voice-play{flex-basis:42px;width:42px;height:42px}
  .voice-track{grid-template-rows:28px 13px}
  .voice-wave{height:28px;min-width:100px}
  .voice-wave-bars{gap:1.5px}
  .voice-wave-bars i{width:2.5px}
  .voice-tools{gap:5px}
  .voice-speed,.voice-transcribe,.voice-task{height:29px;padding:0 8px}
  .voice-transcript{padding:8px 9px;font-size:12px}
  /* Размеры галерей на мобильном задаются блоком v100 в конце файла. */
  .chat-bottom-button{right:12px;bottom:70px;width:40px;height:40px}
  .chat-live-activity{max-height:108px;padding:4px 10px}
  .chat-live-activity-row{grid-template-columns:25px minmax(0,1fr) 27px;min-height:32px;padding:2px}
  .chat-live-activity-copy b{max-width:42vw}
  .chat-live-activity-copy small{font-size:11px}
  .chat-compose{gap:6px;padding:7px 10px}
  .chat-compose .icon-btn{width:40px;height:40px}
  .chat-compose textarea{min-height:40px;padding:9px 11px}
  .chat-compose textarea{font-size:16px}
  .chat-reply-draft{min-height:48px;padding:6px 10px 6px 13px}
  .v3-chat-shell .v3-head-actions{gap:4px}
  .v3-chat-shell .v3-head-actions .icon-btn{width:40px;height:40px}
  .v3-chat-shell .v3-top-inner{gap:8px}
  .v3-chat-shell .v3-title{font-size:18px}
  .v3-chat-shell .v3-subtitle{font-size:11px;margin-top:1px}
  .chat-head-avatar{width:38px;height:38px;flex-basis:38px}
  .chat-search-form{grid-template-columns:1fr}
  .chat-media-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .v3-modal-bg.message-sheet-bg{padding:0}
  .message-sheet-bg .v3-modal{width:100%;max-height:min(74dvh,680px);border-radius:8px 8px 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}
  .message-sheet-bg .v3-modal-head{min-height:58px}
  .message-sheet-bg .v3-modal-body{padding:12px 18px 18px}
  .v3-portal-switch{padding:3px;border:0;background:transparent;min-width:40px;justify-content:center}
  .v3-portal-switch > span:not(.avatar){display:none}
  .v3-portal-switch > svg{margin:7px}
  .v3-title{font-size:21px}
  .hero,.object-hero,.object-detail-hero{margin:0 -14px}
  .hero{padding:20px 18px;padding-top:max(20px,calc(env(safe-area-inset-top,0px) + 12px))}
  .hero h1{font-size:25px;margin-top:24px}
  .today-actions{gap:6px}
  .today-action,.today-avatar{width:39px;height:39px}
  .hero-grid{grid-template-columns:112px 1fr 1fr;gap:8px}
  .progress-ring{min-height:122px}.progress-ring:before{width:96px;height:96px}.progress-ring span{font-size:22px}
  .metric{padding:11px;min-height:58px}.metric b{font-size:20px}.metric span{font-size:9px}
  .agenda-row{gap:9px;padding:13px 12px}.agenda-time{width:46px}.agenda-tag{max-width:70px;overflow:hidden;text-overflow:ellipsis}
  .chat-list-screen>.search-box{height:42px;margin:12px 0 10px;padding:0 12px}
  /* 16px - минимум, при котором iPhone не зумит страницу при фокусе. */
.chat-list-screen>.search-box input{font-size:16px}
  .chat-list-screen>.chips{gap:7px;margin-right:-14px;padding:0 14px 9px 0}
  .chat-list-screen>.chips .filter-chip{height:31px;padding:0 12px;border-radius:16px;font-size:11px}
  .chat-list,.thread-list{margin-left:-14px;margin-right:-14px}
  .chat-row{gap:9px;min-height:58px;padding:7px 14px}
  .chat-avatar{width:40px;height:40px;font-size:14px}
  .chat-copy strong{font-size:14px}
  .chat-copy>span{font-size:11px;margin-top:2px}
  .chat-time{min-width:43px;font-size:9px}
  .chat-time time small{font-size:8px}
  .chat-row-signals{gap:3px}
  .chat-row-signals svg{width:14px!important;height:14px!important}
  .chat-list-read svg{width:15px!important;height:15px!important}
  .mention-badge{width:19px;height:19px;font-size:10px}
  .unread{min-width:20px;height:20px;padding:0 5px;font-size:10px}
  .chat-project{max-width:78px}
  .chat-gesture-note{margin:9px 0;padding:9px 10px;font-size:10px}
  .group-call-row .icon-btn{width:39px;height:39px}
  .object-grid{grid-template-columns:1fr}
  .object-detail-hero{padding:12px 14px 14px;margin-top:env(safe-area-inset-top,0px)}
  .object-detail-heading{grid-template-columns:40px 46px minmax(0,1fr) 40px;gap:8px}
  .object-hero-icon{width:40px;height:40px}
  .object-detail-code{width:46px;height:46px;font-size:15px}
  .object-detail-title h1{font-size:20px}
  .object-detail-title p{font-size:11px}
  .object-detail-hero .object-stats,.object-detail-hero .object-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
  .object-detail-hero .object-stats{margin-top:14px}
  .object-detail-hero .object-stat{padding:9px 3px}
  .object-detail-hero .object-stat b{font-size:18px}
  .object-detail-hero .object-stat span{font-size:8px}
  .object-detail-hero .object-actions{margin-top:7px}
  .object-detail-hero .object-action{height:58px;font-size:10px;gap:4px}
  .object-detail-hero .object-action svg{width:18px!important;height:18px!important}
  .object-summary-section{margin-top:10px;padding-top:0}
  .object-summary-section .lani-summary{padding:12px 12px 12px 11px;border-left-width:3px;font-size:12px}
  .object-summary-section .lani-summary strong{margin-bottom:7px;font-size:12px}
  .object-summary-section .lani-summary p{margin:3px 0;line-height:1.38}
  .object-summary-section~.section{padding-top:14px}
  .object-summary-section~.section .section-head{margin-bottom:8px}
  .object-summary-section~.section .section-head h2{font-size:11px}
  .material-list,.deadline-list{padding:9px 12px}
  .material-list>.empty,.deadline-list>.empty{min-height:92px;padding:24px 10px;display:grid;place-items:center}
  .material-row,.deadline-row{padding:9px 0;font-size:11px}
  .material-note{padding:8px 9px;font-size:10px}
  .object-stats,.object-actions{grid-template-columns:repeat(2,1fr)}
  .decision-copy strong,.chat-copy strong,.thread-copy strong,.supply-copy strong{font-size:15px}
  .float-action{right:14px}
  .nav-btn{font-size:10px}
  .object-hero h1{font-size:24px}
  .v3-modal-bg{padding:0;align-items:end}
  .v3-modal{width:100%;max-height:calc(100dvh - env(safe-area-inset-top,0px) - 18px);border-radius:8px 8px 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}
  .v3-modal-body{padding:16px}
  .today-search-form{grid-template-columns:1fr}
  .chat-lani-popover{right:52px;bottom:66px;width:min(270px,calc(100% - 18px))}
  .media-viewer-head{padding-left:12px}
  .media-viewer-stage .media-prev{left:8px}
  .media-viewer-stage .media-next{right:8px}
  .v3-form-grid{grid-template-columns:1fr}
  .detail-kv{align-items:flex-start}
  .task-footer{flex-wrap:wrap}
  .task-toolbar{margin:12px 0}
  .segmented .seg-btn{font-size:11px;gap:4px}
  .task-board-toolbar{align-items:stretch;flex-direction:column}
  .task-board-search{min-width:0;width:100%}
  .task-board-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  .task-board-filters select{width:100%;max-width:none;padding-left:7px;font-size:10px}
  .kanban-board{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(278px,88vw);gap:10px;margin-right:-14px;padding-right:14px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;scrollbar-width:none}
  .kanban-board::-webkit-scrollbar{display:none}
  .kanban-column{scroll-snap-align:start}
  .field-ai-menu{position:fixed;z-index:165;left:14px;right:14px;top:auto;bottom:calc(env(safe-area-inset-bottom,0px) + 14px);width:auto}
}
@media(max-width:420px){
  .hero{padding-left:14px;padding-right:14px}
  .hero-topline{gap:7px}
  .hero-brand{font-size:14px;letter-spacing:3px}
  .today-actions{gap:4px;min-width:0}
  .today-action,.today-avatar{width:35px;height:35px}
  .today-action svg{width:17px!important;height:17px!important}
  .today-action b{top:-4px;right:-4px}
  .today-actions .v3-lani-top{width:35px;min-width:35px;height:35px;padding:0}
  .hero h1{font-size:22px;margin-top:22px}
  .hero-grid{grid-template-columns:92px repeat(2,minmax(0,1fr));gap:6px}
  .progress-ring{min-height:114px}
  .progress-ring:before{width:82px;height:82px}
  .progress-ring span{font-size:19px}
  .metric{min-width:0;padding:9px 8px}
  .metric b{font-size:18px}
  .metric span{white-space:normal;line-height:1.15}
  .v3-bottom{left:0;right:0;width:100%;max-width:100vw;transform:none;grid-template-columns:repeat(5,minmax(0,1fr));overflow:hidden}
  .v3-chat-shell>.v3-bottom{width:100%;max-width:100%;transform:none}
  .nav-btn{max-width:100%;overflow:hidden;font-size:9px}
  .nav-btn span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .nav-btn svg{width:21px;height:21px}
}
@media(min-width:721px){
  .v3-bottom{left:50%;right:auto;transform:translateX(-50%);width:min(1180px,100%);border-left:1px solid var(--line);border-right:1px solid var(--line)}
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  /* Спиннер загрузки - единственный индикатор прогресса на стартовом экране. */
  .v3-spinner{animation:spin .7s linear infinite!important}
}

/* v66: interaction, performance and visual consistency */
::selection{background:#ffd8ad;color:#172231}
:where(button,[role="button"],a,input,textarea,select):focus-visible{
  outline:3px solid rgba(246,122,10,.24);
  outline-offset:2px;
}
:where(button,[role="button"],a){-webkit-tap-highlight-color:transparent}
:where(button,[role="button"]):active:not(:disabled){transform:translateY(1px)}
:where(button,input,textarea,select):disabled,
:where(button,[role="button"])[aria-disabled="true"]{
  cursor:not-allowed;
  opacity:.52;
  filter:saturate(.55);
}
.v3-shell button,.v3-modal button{transition:background-color .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease,transform .1s ease}
.panel,.task-card,.object-card,.kanban-card,.supply-card{
  box-shadow:0 1px 2px rgba(16,24,40,.04),0 5px 16px rgba(16,24,40,.045);
}
.panel:hover,.task-card:hover,.object-card:hover,.kanban-card:hover,.supply-card:hover{
  border-color:#d4dae3;
  box-shadow:0 2px 5px rgba(16,24,40,.055),0 9px 22px rgba(16,24,40,.055);
}
.decision-row,.chat-row,.thread-row,.agenda-action,.supply-row{
  transition:background-color .14s ease;
}
.decision-row:hover,.chat-row:hover,.thread-row:hover,.agenda-action:hover,.supply-row:hover{background:#f8fafc}
.decision-row:active,.chat-row:active,.thread-row:active,.agenda-action:active,.supply-row:active{background:#f1f4f8}
.filter-chip,.seg-btn,.icon-btn,.object-action,.task-card,.kanban-card{touch-action:manipulation}
.filter-chip:hover:not(.active),.seg-btn:hover:not(.active){border-color:#c5ced9;background:#f8fafc;color:#344054}
.filter-chip.active,.seg-btn.active{box-shadow:0 1px 3px rgba(23,34,49,.16)}
.icon-btn{border:1px solid transparent}
.icon-btn:hover{border-color:#d9e0e8}
.icon-btn.accent:hover,.primary-btn:hover,.float-action:hover,.lani-btn:hover{background:#e96e00;box-shadow:0 5px 14px rgba(246,122,10,.2)}
.primary-btn:active,.float-action:active,.lani-btn:active{background:#d96400}
.search-box{transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}
.search-box:focus-within{box-shadow:0 0 0 3px rgba(246,122,10,.1)}
.search-box input::placeholder,.chat-compose textarea::placeholder{color:#8b96a6;opacity:1}
.chat-compose{
  box-shadow:0 -1px 0 rgba(16,24,40,.06),0 -6px 18px rgba(16,24,40,.035);
}
.chat-compose textarea{
  transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease;
}
.chat-compose textarea:focus{
  border-color:#c9d2dd;
  background:#fff;
  box-shadow:0 0 0 3px rgba(246,122,10,.08);
}
.chat-message-bubble{
  box-shadow:0 1px 2px rgba(16,24,40,.055),0 3px 10px rgba(16,24,40,.025);
}
.chat-message-row.mine .chat-message-bubble{box-shadow:0 2px 7px rgba(23,34,49,.12)}
.chat-message-row.ai .chat-message-bubble{
  border-color:#ead8c4;
  background:#fff6ec;
  color:#283341;
}
.chat-message-row.ai .chat-message-author{color:#a24f06}
.chat-message-quote:focus-visible{outline:2px solid var(--orange);outline-offset:1px}
.chat-feed{scrollbar-color:#aeb7c3 transparent;scrollbar-width:thin}
.chat-feed::-webkit-scrollbar,.v3-modal-body::-webkit-scrollbar{width:9px}
.chat-feed::-webkit-scrollbar-track,.v3-modal-body::-webkit-scrollbar-track{background:transparent}
.chat-feed::-webkit-scrollbar-thumb,.v3-modal-body::-webkit-scrollbar-thumb{
  border:3px solid transparent;
  border-radius:8px;
  background:#aeb7c3;
  background-clip:padding-box;
}
.message-media,.chat-media-card{isolation:isolate}
.message-media::after,.chat-media-card::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(16,24,40,.07);
}
.message-media:focus-visible,.chat-media-card:focus-visible{outline:3px solid var(--orange);outline-offset:-3px}
.voice-message{box-shadow:0 1px 2px rgba(16,24,40,.045)}
.voice-play,.voice-speed,.voice-transcribe,.voice-task{transition:background-color .14s ease,color .14s ease,border-color .14s ease}
.voice-play:hover{filter:brightness(.96)}
.voice-speed:hover,.voice-transcribe:hover,.voice-task:hover{border-color:#c4ced9;background:#f8fafc}
.chat-live-activity:not([hidden]){min-height:42px}
.chat-bottom-button{
  border:1px solid #d9e0e8;
  box-shadow:0 6px 18px rgba(16,24,40,.16);
}
.chat-bottom-button:hover{background:#fff;border-color:#c7d0dc}
.v3-modal-bg{animation:v3-fade-in .14s ease-out}
.v3-modal{animation:v3-modal-in .17s ease-out}
@keyframes v3-fade-in{from{opacity:0}to{opacity:1}}
@keyframes v3-modal-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.v3-toast{box-shadow:0 8px 24px rgba(16,24,40,.2)}
.empty{min-height:150px;display:grid;place-items:center;align-content:center;gap:8px}
.v3-loading{background:var(--page)}
.v3-form input:hover,.v3-form select:hover,.v3-form textarea:hover{border-color:#c8d1dc}
.v3-form input:invalid:not(:placeholder-shown),.v3-form textarea:invalid:not(:placeholder-shown){border-color:#e99aa6}
.object-stat,.object-action,.metric{transition:background-color .14s ease,filter .14s ease,box-shadow .14s ease}
.object-action:hover{background:#3a4658}
.material-row:last-child,.deadline-row:last-child{border-bottom:0}
.task-card,.kanban-card{contain:layout style}
.kanban-column{contain:layout style}

@media(max-width:720px){
  .panel:hover,.task-card:hover,.object-card:hover,.kanban-card:hover,.supply-card:hover{box-shadow:var(--shadow)}
  .chat-feed{scrollbar-width:none}
  .chat-feed::-webkit-scrollbar{display:none}
  .chat-compose{
    padding-bottom:max(7px,env(safe-area-inset-bottom,0px));
    box-shadow:0 -1px 0 rgba(16,24,40,.08),0 -5px 16px rgba(16,24,40,.045);
  }
  .chat-message-bubble{box-shadow:0 1px 2px rgba(16,24,40,.05)}
  .chat-message-row.mine .chat-message-bubble{box-shadow:0 2px 5px rgba(23,34,49,.1)}
  .v3-modal-bg{animation-duration:.12s}
  .v3-modal{animation-name:v3-sheet-in}
  @keyframes v3-sheet-in{from{transform:translateY(18px)}to{transform:translateY(0)}}
}

/* v69: calls, profile, administration and complete dark appearance */
.v3-lani-top{
  min-height:40px;padding:0 14px;border:0;border-radius:8px;display:inline-flex;align-items:center;
  justify-content:center;gap:7px;background:var(--orange);color:#fff;font-weight:800;
  box-shadow:0 4px 12px rgba(246,122,10,.2)
}
.v3-lani-top:hover{background:#e96e00}
.v3-lani-top.compact{width:40px;padding:0}
.profile-menu-card{
  width:100%;min-height:82px;padding:14px;border:0;border-radius:8px;display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;background:var(--navy);
  color:#fff;text-align:left
}
.profile-menu-card:hover{background:#202d3e}
.profile-menu-card h3,.profile-menu-card p{margin:0}
.profile-menu-card h3{font-size:17px}
.profile-menu-card p{margin-top:4px;color:#b9c4d2;font-size:12px}
.profile-menu-avatar,.employee-avatar-wrap,.employee-profile-avatar{position:relative;display:inline-grid}
.profile-menu-avatar i,.employee-avatar-wrap i,.employee-profile-avatar i{
  position:absolute;right:-1px;bottom:1px;width:11px;height:11px;border:2px solid var(--panel);
  border-radius:50%;background:#9aa5b3
}
.profile-menu-avatar i.online,.employee-avatar-wrap i.online,.employee-profile-avatar i.online{background:var(--green)}
.portal-menu-list{margin-top:12px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.portal-menu-list>button,.directory-list>button{
  width:100%;min-height:66px;padding:10px 13px;border:0;border-bottom:1px solid var(--line);
  display:grid;grid-template-columns:44px minmax(0,1fr) max-content 20px;align-items:center;gap:11px;
  background:transparent;color:var(--ink);text-align:left
}
.v3-picker.portal-menu-list>button,.v3-picker.directory-list>button{background:transparent;color:var(--ink)}
.portal-menu-list>button>.menu-count{grid-column:3;grid-row:1;white-space:nowrap}
.portal-menu-list>button>.menu-switch{grid-column:4;grid-row:1;justify-self:end}
.portal-menu-list>button>svg:last-child,.directory-list>button>svg:last-child{
  grid-column:4;grid-row:1;align-self:center;justify-self:end
}
.portal-menu-list>button:last-child,.directory-list>button:last-child{border-bottom:0}
.portal-menu-list>button:hover,.directory-list>button:hover{background:#f7f9fb}
.portal-menu-list button span:nth-child(2),.directory-list button span:nth-child(2){min-width:0}
.portal-menu-list button b,.directory-list button b{display:block;font-size:14px}
.portal-menu-list button small,.directory-list button small{display:block;margin-top:3px;color:var(--muted);font-size:11px}
.portal-menu-label{
  padding:11px 13px 8px;background:#f1f4f7;color:#687586;font-size:10px;font-weight:900;
  letter-spacing:.08em;text-transform:uppercase
}
.menu-count{min-width:25px;height:25px;padding:0 7px;border-radius:13px;display:grid;place-items:center;background:#edf1f5;color:#526070;font-size:11px;font-weight:800}
.menu-switch{width:38px;height:23px;padding:3px;border-radius:15px;background:#dce3ec}
.menu-switch i{display:block;width:17px;height:17px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(16,24,40,.2);transition:transform .16s ease}
.menu-switch.on{background:var(--orange)}
.menu-switch.on i{transform:translateX(15px)}
.portal-menu-list .menu-danger{color:var(--red)}
.interface-mode-card{
  min-height:86px;padding:12px;display:grid;grid-template-columns:38px minmax(0,1fr);gap:7px 10px;
  align-items:center;border-bottom:1px solid var(--line);background:var(--panel);color:var(--ink)
}
.interface-mode-copy{min-width:0}
.interface-mode-copy b,.interface-mode-copy small{display:block}
.interface-mode-copy b{font-size:14px}
.interface-mode-copy small{margin-top:3px;color:var(--muted);font-size:11px}
.interface-mode-segments{
  grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;
  padding:4px;border-radius:8px;background:var(--soft,#eef1f5)
}
.interface-mode-segments button{
  min-width:0;min-height:34px;padding:6px 8px;border:1px solid transparent;border-radius:6px;
  background:transparent;color:var(--muted);font-size:11px;font-weight:800
}
.interface-mode-segments button.active{
  border-color:var(--line);background:var(--panel);color:var(--ink);box-shadow:0 2px 7px rgba(15,23,42,.08)
}
.reader-note{margin:12px 0 0;padding:10px 12px;border-radius:7px;background:#f2f5f8;color:var(--muted);font-size:11px;line-height:1.45}

.calls-quick{margin-top:18px;padding:16px}
.calls-quick .section-head{margin-bottom:10px}
.calls-quick .section-head h2{font-size:15px;color:var(--ink);letter-spacing:0;text-transform:none}
.calls-quick .section-head p{margin:4px 0 0;color:var(--muted);font-size:11px}
.calls-people{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px}
.call-person{
  min-width:0;padding:10px;border:1px solid var(--line);border-radius:8px;display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;background:#fbfcfd
}
.call-person .avatar{width:42px;height:42px;font-size:13px}
.call-person b,.call-person small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.call-person b{font-size:13px}.call-person small{margin-top:3px;color:var(--muted);font-size:10px}
.call-person-actions,.employee-actions{display:flex;align-items:center;gap:5px}
.call-person-actions button,.employee-actions button,.call-row-repeat,.invite-actions button,.device-revoke-btn{
  width:36px;height:36px;border:1px solid var(--line);border-radius:8px;display:grid;place-items:center;
  background:var(--panel);color:#536173
}
.call-person-actions button:hover,.employee-actions button:hover,.call-row-repeat:hover{border-color:var(--orange);color:var(--orange)}
.calls-filters{margin:14px 0 10px}
.call-history-list{overflow:hidden}
.call-history-row{
  min-height:69px;padding:10px 13px;border-bottom:1px solid var(--line);display:grid;
  grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px
}
.call-history-row:last-child{border-bottom:0}
.call-history-row .avatar{width:43px;height:43px;font-size:13px}
.call-history-main{min-width:0;border:0;background:transparent;color:var(--ink);text-align:left}
.call-history-main b,.call-history-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.call-history-main small{margin-top:3px;color:var(--muted);font-size:11px}
.call-history-row.missed .call-history-main b{color:var(--red)}
.call-history-row time{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}

.employee-search{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}
.employee-search .search-box{margin:16px 0 12px}
.employee-list,.invite-list,.audit-list,.device-list,.portal-file-list,.directory-list{overflow:hidden}
.employee-row{
  min-height:70px;padding:8px 12px;border-bottom:1px solid var(--line);display:grid;
  grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:9px
}
.employee-row:last-child{border-bottom:0}
.employee-row.disabled{opacity:.62}
.employee-main{
  min-width:0;padding:0;border:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;gap:11px;background:transparent;color:var(--ink);text-align:left
}
.employee-main .avatar{width:45px;height:45px;font-size:13px}
.employee-main b,.employee-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.employee-main b{font-size:14px}.employee-main small{margin-top:3px;color:var(--muted);font-size:11px}
.employee-main em{
  padding:4px 7px;border-radius:6px;background:var(--orange-soft);color:#9b5800;font-size:9px;font-style:normal;font-weight:900;text-transform:uppercase
}
.employee-card-head{
  padding:15px;border-radius:8px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;gap:13px;background:var(--navy);color:#fff
}
.employee-card-head h3,.employee-card-head p{margin:0}
.employee-card-head p{margin-top:4px;color:#c3ccd7;font-size:12px}
.employee-card-head small{display:block;margin-top:5px;color:#6de0b7;font-size:11px}
.employee-card-head em{padding:4px 7px;border-radius:6px;background:#394658;color:#fff;font-size:9px;font-style:normal;font-weight:900;text-transform:uppercase}
.employee-contact-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:10px 0}
.employee-contact-actions button{
  min-height:54px;border:1px solid var(--line);border-radius:8px;display:flex;align-items:center;
  justify-content:center;gap:7px;background:var(--panel);color:var(--ink);font-weight:800;font-size:12px
}
.employee-contact-actions button:hover{border-color:var(--orange);color:var(--orange)}
.employee-public-details{margin:10px 0;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.employee-public-details>div{min-height:49px;padding:8px 11px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px}
.employee-public-details>div:last-child{border-bottom:0}
.employee-public-details span{color:var(--muted);font-size:11px}.employee-public-details b{text-align:right;font-size:12px}
.employee-admin-form{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.admin-form-title{display:flex;align-items:center;gap:9px;margin-bottom:12px;color:var(--orange-dark)}
.admin-form-title span b,.admin-form-title span small{display:block}.admin-form-title span small{margin-top:2px;color:var(--muted);font-size:10px}
.employee-active-check .check-row{min-height:44px;padding:0 11px;border:1px solid var(--line);border-radius:7px;display:flex;align-items:center;gap:8px}

.admin-page-head{
  margin:18px 0 10px;padding:13px;border:1px solid var(--line);border-radius:8px;display:flex;
  align-items:center;justify-content:space-between;gap:12px;background:var(--panel)
}
.admin-page-head p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}
.primary-btn,.secondary-btn{
  min-height:42px;padding:0 14px;border:0;border-radius:8px;display:inline-flex;align-items:center;
  justify-content:center;gap:7px;font-weight:800;white-space:nowrap
}
.primary-btn{background:var(--orange);color:#fff}
.secondary-btn{border:1px solid var(--line);background:var(--panel);color:var(--ink)}
.secondary-btn.danger{color:var(--red)}
.invite-row,.audit-row,.device-row,.portal-file-row,.directory-list>button{
  min-height:66px;padding:10px 13px;border:0;border-bottom:1px solid var(--line);display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;background:transparent;color:var(--ink);text-align:left
}
.invite-row{grid-template-columns:minmax(0,1fr) auto}
.device-row{grid-template-columns:auto minmax(0,1fr) auto auto}
.invite-row:last-child,.audit-row:last-child,.device-row:last-child,.portal-file-row:last-child{border-bottom:0}
.invite-code b,.invite-code small,.audit-row span b,.audit-row span small,.device-row span b,.device-row span small,.portal-file-row span b,.portal-file-row span small{
  display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap
}
.invite-code b{font-size:16px;letter-spacing:.05em}
.invite-code small,.audit-row span small,.device-row span small,.portal-file-row span small{margin-top:3px;color:var(--muted);font-size:10px}
.invite-actions{display:flex;gap:5px}
.device-revoke-btn{color:var(--red)}
.portal-file-row{width:100%}
.portal-file-row:hover{background:#f7f9fb}

.v3-call-runtime{
  position:fixed;z-index:300;inset:0;display:block;background:#0c1422;opacity:1;
  visibility:visible;transition:opacity .16s ease,transform .18s ease
}
.v3-call-runtime.standby{opacity:0;visibility:hidden;pointer-events:none}
.v3-call-runtime-frame{position:relative;z-index:1;display:block;width:100%;height:100%;border:0;background:#0c1422}
.v3-call-loader{
  position:absolute;z-index:3;inset:0;display:none;place-content:center;justify-items:center;gap:8px;
  padding:calc(env(safe-area-inset-top,0px) + 28px) 24px calc(env(safe-area-inset-bottom,0px) + 28px);
  background:#0c1422;color:#fff;text-align:center
}
.v3-call-runtime.loading .v3-call-loader{display:grid}
.v3-call-loader b{font-size:20px;line-height:1.2}
.v3-call-loader small{max-width:320px;color:#aab7ca;font-size:13px;line-height:1.45}
.v3-call-loader-spinner{
  width:38px;height:38px;margin-bottom:10px;border:3px solid rgba(255,255,255,.2);
  border-top-color:#ff7a00;border-radius:50%;animation:v3-call-spin .75s linear infinite
}
@keyframes v3-call-spin{to{transform:rotate(360deg)}}
.v3-call-runtime.minimized{
  inset:auto 18px calc(var(--bottom) + env(safe-area-inset-bottom,0px) + 14px) auto;
  width:min(360px,calc(100% - 28px));height:76px;border:1px solid rgba(255,255,255,.12);
  border-radius:8px;overflow:hidden;box-shadow:0 16px 40px rgba(9,15,25,.34)
}
.incoming-call-layer{
  position:fixed;z-index:360;inset:0;display:grid;place-items:center;
  padding:max(24px,env(safe-area-inset-top,0px)) 22px max(24px,env(safe-area-inset-bottom,0px));
  background:
    radial-gradient(circle at 50% 25%,rgba(52,103,166,.28),transparent 38%),
    #0b1422;color:#fff
}
.incoming-call-card{
  width:min(390px,100%);display:flex;flex-direction:column;align-items:center;text-align:center
}
.incoming-call-avatar{
  width:104px;height:104px;border:1px solid rgba(255,255,255,.16);border-radius:50%;
  display:grid;place-items:center;margin-bottom:24px;background:#2b9b87;color:#fff;
  box-shadow:0 20px 55px rgba(0,0,0,.32);font-size:34px;font-weight:850
}
.incoming-call-card small{
  color:#83d9c6;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase
}
.incoming-call-card h2{margin:8px 0 6px;color:#fff;font-size:26px;line-height:1.15}
.incoming-call-card p{
  max-width:310px;margin:0;color:#aebbd0;font-size:14px;line-height:1.45
}
.incoming-call-actions{
  width:min(276px,100%);display:flex;justify-content:space-between;gap:52px;margin-top:66px
}
.incoming-call-actions button{
  width:68px;height:68px;border:0;border-radius:50%;display:grid;place-items:center;
  color:#fff;box-shadow:0 14px 30px rgba(0,0,0,.28);transition:transform .15s ease,filter .15s ease
}
.incoming-call-actions button:active{transform:scale(.94)}
.incoming-call-reject{background:#e64855}
.incoming-call-accept{background:#20a879;animation:incoming-call-pulse 1.7s ease-in-out infinite}
.incoming-call-action-labels{
  width:min(286px,100%);display:flex;justify-content:space-between;margin-top:10px;
  color:#c9d2df;font-size:12px;font-weight:700
}
@keyframes incoming-call-pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(32,168,121,.3),0 14px 30px rgba(0,0,0,.28)}
  50%{box-shadow:0 0 0 12px rgba(32,168,121,0),0 14px 30px rgba(0,0,0,.28)}
}

html[data-v3-theme="dark"]{
  color-scheme:dark;
  --navy:#141d2a;--navy-2:#202b3a;--ink:#f1f5f9;--muted:#9caabd;--line:#303c4d;
  --page:#0d141e;--panel:#17212e;--chat-bg:#0e1621;--chat-in:#1b2735;--chat-out:#244565;
  --chat-ai:#272925;--orange-soft:#382717;--red-soft:#381f27;--green-soft:#17352c;
  --blue-soft:#1a2d49;--violet-soft:#292342;--shadow:0 3px 12px rgba(0,0,0,.3)
}
html[data-v3-theme="dark"] body,
html[data-v3-theme="dark"] .v3-shell,
html[data-v3-theme="dark"] .v3-main,
html[data-v3-theme="dark"] .v3-loading{background:var(--page);color:var(--ink)}
html[data-v3-theme="dark"] .v3-top{background:rgba(20,28,39,.96)}
html[data-v3-theme="dark"] .v3-portal-switch,
html[data-v3-theme="dark"] .filter-chip,
html[data-v3-theme="dark"] .seg-btn,
html[data-v3-theme="dark"] .decision-row,
html[data-v3-theme="dark"] .chat-row,
html[data-v3-theme="dark"] .thread-row,
html[data-v3-theme="dark"] .agenda-action{background:var(--panel);color:var(--ink)}
html[data-v3-theme="dark"] .icon-btn,
html[data-v3-theme="dark"] .search-box,
html[data-v3-theme="dark"] .portal-menu-label,
html[data-v3-theme="dark"] .reader-note,
html[data-v3-theme="dark"] .menu-count{background:#222c39;color:#b9c4d2}
html[data-v3-theme="dark"] .search-box:focus-within{background:#202a37}
html[data-v3-theme="dark"] .search-box input,
html[data-v3-theme="dark"] input,
html[data-v3-theme="dark"] textarea,
html[data-v3-theme="dark"] select{color:var(--ink)}
html[data-v3-theme="dark"] .filter-chip.active,
html[data-v3-theme="dark"] .seg-btn.active{background:#f4f7fb;border-color:#f4f7fb;color:#111827}
html[data-v3-theme="dark"] .chat-sticky-tabs,
html[data-v3-theme="dark"] .chat-compose,
html[data-v3-theme="dark"] .v3-bottom,
html[data-v3-theme="dark"] .v3-modal{background:#151e29;color:var(--ink)}
html[data-v3-theme="dark"] .chat-live-activity{background:#151e29;border-color:#2e3947}
html[data-v3-theme="dark"] .chat-live-activity-row{border-color:#2e3947}
html[data-v3-theme="dark"] .chat-live-activity-avatar{box-shadow:0 0 0 2px #151e29}
html[data-v3-theme="dark"] .chat-live-activity-copy b{color:#f1f5f9}
html[data-v3-theme="dark"] .chat-live-activity-copy small{color:#9aa6b6}
html[data-v3-theme="dark"] .chat-live-activity-more{background:#253140;color:#c7d0dc}
html[data-v3-theme="dark"] .chat-day-divider{color:#9cabbb}
html[data-v3-theme="dark"] .chat-day-divider:before,
html[data-v3-theme="dark"] .chat-day-divider:after{background:#2d3947}
html[data-v3-theme="dark"] .chat-day-divider span{background:#18222e;border-color:#344151;box-shadow:none}
html[data-v3-theme="dark"] .chat-message-bubble{
  font-size:15px;line-height:1.46;font-weight:400;letter-spacing:0;text-shadow:none
}
html[data-v3-theme="dark"] .chat-message-row:not(.mine):not(.ai) .chat-message-bubble{
  background:#1b2735;border-color:#304052;color:#edf3f8
}
html[data-v3-theme="dark"] .chat-message-row.mine .chat-message-bubble{
  background:#244565;border-color:#315776;color:#f8fbff
}
html[data-v3-theme="dark"] .chat-message-row.ai .chat-message-bubble{
  background:#272925;border-color:#4b493f;color:#eeeae2
}
html[data-v3-theme="dark"] .chat-message-author{color:#aebdcd}
html[data-v3-theme="dark"] .chat-message-row.ai .chat-message-author{color:#ffae61}
html[data-v3-theme="dark"] .chat-message-quote{
  background:#121c28;border-left-color:#df7a1d;color:#bdc8d5
}
html[data-v3-theme="dark"] .chat-message-quote b{color:#e4ebf2}
html[data-v3-theme="dark"] .chat-message-row.mine .chat-message-quote{
  background:rgba(6,16,27,.24);color:#d6e0ea
}
html[data-v3-theme="dark"] .chat-message-row.ai .chat-message-quote{
  background:#1d211f;color:#c8c3ba
}
html[data-v3-theme="dark"] .chat-message-row:not(.mine) .message-attachment{
  background:#121c28;border-color:#344357
}
html[data-v3-theme="dark"] .chat-message-meta{color:#98a8ba}
html[data-v3-theme="dark"] .chat-message-row.mine .chat-message-meta{color:#c4d3e2}
html[data-v3-theme="dark"] .message-reactions button{
  background:#172230;border-color:#344357;color:#d9e2ec
}
html[data-v3-theme="dark"] .message-reactions button.mine{
  background:#3a291a;border-color:#a86022;color:#ffc07f
}
html[data-v3-theme="dark"] .voice-wave-bars i{background:#8493a5}
html[data-v3-theme="dark"] .voice-meta{color:#9baabc}
html[data-v3-theme="dark"] .voice-speed,
html[data-v3-theme="dark"] .voice-transcribe{
  background:#121c28;border-color:#344357;color:#e2e9f0
}
html[data-v3-theme="dark"] .voice-transcript{
  background:#121c28;color:#d9e2ec
}
html[data-v3-theme="dark"] .voice-task{
  background:#352719;border-color:#78512b;color:#ffc181
}
html[data-v3-theme="dark"] .chat-message-row.mine .voice-speed,
html[data-v3-theme="dark"] .chat-message-row.mine .voice-transcribe,
html[data-v3-theme="dark"] .chat-message-row.mine .voice-task{
  background:rgba(7,17,29,.22);border-color:rgba(224,236,248,.2);color:#f7fbff
}
html[data-v3-theme="dark"] .chat-message-row.mine .voice-transcript{
  background:rgba(7,17,29,.22);color:#eef5fb
}
html[data-v3-theme="dark"] .chat-compose-wrap,
html[data-v3-theme="dark"] .chat-reply-draft{
  background:#151e29;border-color:#303c4d
}
html[data-v3-theme="dark"] .chat-reply-draft b{color:#edf3f8}
html[data-v3-theme="dark"] .chat-reply-draft small{color:#9ba9b9}
html[data-v3-theme="dark"] .chat-reply-draft button{background:#202c39;color:#b8c4d2}
html[data-v3-theme="dark"] .chat-compose textarea::placeholder{color:#7f8da0}
html[data-v3-theme="dark"] .chat-compose textarea:focus{
  background:#202c39;border-color:#546477;box-shadow:0 0 0 3px rgba(100,123,149,.16)
}
html[data-v3-theme="dark"] .chat-lani-popover,
html[data-v3-theme="dark"] .chat-lani-popover button{
  background:#1a2532;border-color:#3a4757;color:#edf3f8
}
html[data-v3-theme="dark"] .chat-lani-popover:after{
  background:#1a2532;border-color:#3a4757
}
html[data-v3-theme="dark"] .chat-lani-popover button:hover,
html[data-v3-theme="dark"] .chat-lani-popover button:focus-visible{background:#24303e}
html[data-v3-theme="dark"] .chat-lani-popover button>span:first-child{color:#b7c3d1}
html[data-v3-theme="dark"] .chat-lani-popover small{color:#98a6b7}
html[data-v3-theme="dark"] .lani-summary{background:#29231d;border-left-color:#ff7a00;color:#e9edf3}
html[data-v3-theme="dark"] .lani-summary strong{color:#ffb469}
html[data-v3-theme="dark"] .lani-summary p{color:#e1e6ed}
html[data-v3-theme="dark"] .material-row,
html[data-v3-theme="dark"] .deadline-row,
html[data-v3-theme="dark"] .supply-row{background:var(--panel);color:var(--ink)}
html[data-v3-theme="dark"] .material-note,
html[data-v3-theme="dark"] .reader-note{background:#121b27;color:#aeb9c8}
html[data-v3-theme="dark"] .call-person{background:#1d2733}
html[data-v3-theme="dark"] .call-person-actions button,
html[data-v3-theme="dark"] .employee-actions button,
html[data-v3-theme="dark"] .call-row-repeat,
html[data-v3-theme="dark"] .invite-actions button,
html[data-v3-theme="dark"] .device-revoke-btn,
html[data-v3-theme="dark"] .employee-contact-actions button,
html[data-v3-theme="dark"] .secondary-btn{background:#202a37;color:#d2dae5}
html[data-v3-theme="dark"] .v3-status-actions button{background:#202a37;border-color:#3b4655;color:#e1e7ef}
html[data-v3-theme="dark"] .v3-status-actions button.green{background:#18382f;border-color:#2a6a57;color:#74d3b3}
html[data-v3-theme="dark"] .detail-kv b{color:#f1f5f9}
html[data-v3-theme="dark"] .portal-menu-list>button:hover,
html[data-v3-theme="dark"] .directory-list>button:hover,
html[data-v3-theme="dark"] .portal-file-row:hover,
html[data-v3-theme="dark"] .decision-row:hover,
html[data-v3-theme="dark"] .chat-row:hover{background:#202a37}
html[data-v3-theme="dark"] .v3-modal-bg{background:rgba(2,6,12,.7)}
html[data-v3-theme="dark"] .v3-form input,
html[data-v3-theme="dark"] .v3-form textarea,
html[data-v3-theme="dark"] .v3-form select,
html[data-v3-theme="dark"] .chat-compose textarea{background:#1d2733;border-color:#3b4655;color:var(--ink)}

html[data-v3-density="compact"] .decision-row,
html[data-v3-density="compact"] .chat-row,
html[data-v3-density="compact"] .thread-row,
html[data-v3-density="compact"] .supply-row{padding-top:10px;padding-bottom:10px}
html[data-v3-density="compact"] .employee-row,
html[data-v3-density="compact"] .call-history-row,
html[data-v3-density="compact"] .portal-menu-list>button{min-height:58px}

.chat-message-row.call-protocol-row .chat-message-stack{
  width:min(520px,calc(100% - 42px));
  max-width:min(520px,calc(100% - 42px))
}
.chat-message-row.call-protocol-row .chat-message-bubble.call-protocol-bubble{
  width:100%;padding:0;border:0;background:transparent;box-shadow:none;color:var(--ink)
}
.call-protocol-bubble>.chat-message-author{
  display:none
}
.call-protocol-bubble>.chat-message-meta{
  display:block;margin:5px 4px 0;text-align:right
}
.call-protocol-card{
  overflow:hidden;border:1px solid var(--line);border-left:4px solid var(--orange);
  border-radius:8px;background:var(--panel);box-shadow:var(--shadow)
}
.call-protocol-head{
  display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;
  padding:12px 13px 10px
}
.call-protocol-icon{
  width:40px;height:40px;border-radius:7px;display:grid;place-items:center;
  background:var(--orange-soft);color:var(--orange-dark)
}
.call-protocol-heading,
.call-protocol-detail-head>span:last-child{display:grid;gap:2px;min-width:0}
.call-protocol-heading b,
.call-protocol-detail-head b{font-size:14px;color:var(--ink)}
.call-protocol-heading small,
.call-protocol-detail-head small{font-size:11px;color:var(--muted)}
.call-protocol-heading small{
  color:var(--orange-dark);font-weight:800
}
.call-protocol-status{
  display:inline-flex;align-items:center;gap:4px;padding:5px 7px;border-radius:7px;
  background:#def4e9;color:#087a52;font-size:10px;font-style:normal;font-weight:800
}
.call-protocol-meta{
  display:flex;flex-wrap:wrap;gap:6px;padding:0 13px 10px
}
.call-protocol-meta span{
  display:inline-flex;align-items:center;gap:5px;min-width:0;padding:5px 7px;
  border-radius:6px;background:#f1f4f8;color:var(--muted);font-size:11px
}
.call-protocol-meta span:last-child{
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap
}
.call-protocol-highlight{
  margin:0 13px 11px;padding:10px 11px;border:1px solid #f4d7b1;border-radius:7px;
  background:#fff8ee
}
.call-protocol-highlight small{
  display:block;margin-bottom:4px;color:var(--orange-dark);font-size:10px;
  font-weight:800;text-transform:uppercase
}
.call-protocol-highlight p{
  margin:0;color:var(--ink);font-size:13px;line-height:1.45;display:-webkit-box;
  -webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden
}
.call-protocol-actions{display:flex;gap:8px;padding:0 13px 12px}
.call-protocol-actions button,
.call-protocol-detail-play{
  min-height:38px;border:1px solid var(--line);border-radius:7px;background:#f4f6f9;
  color:var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:7px;
  padding:0 12px;font:inherit;font-size:12px;font-weight:800
}
.call-protocol-open{flex:1}
.call-protocol-audio{color:var(--orange-dark)!important}
.call-protocol-modal{width:min(660px,100%)}
.call-protocol-detail{display:grid;gap:12px}
.call-protocol-detail-head{
  display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;align-items:center
}
.call-protocol-detail-head .call-protocol-icon{width:44px;height:44px}
.call-protocol-detail-participants{
  display:grid;gap:4px;padding:11px 13px;border:1px solid var(--line);border-radius:7px
}
.call-protocol-detail-participants span{
  font-size:11px;text-transform:uppercase;color:var(--muted);font-weight:800
}
.call-protocol-body{
  padding:14px;border:1px solid var(--line);border-radius:7px;
  background:#f5f7fa;color:var(--ink);line-height:1.55
}
.call-protocol-sections{display:grid;gap:8px}
.call-protocol-sections p{margin:0}
.call-protocol-section-title{
  display:grid;gap:2px;margin-top:6px!important;padding-top:9px;border-top:1px solid var(--line)
}
.call-protocol-section-title:first-child{margin-top:0!important;padding-top:0;border-top:0}
.call-protocol-section-title b{
  color:var(--orange-dark);font-size:11px;line-height:1.2;text-transform:uppercase
}
.call-protocol-section-title span{color:var(--ink);font-size:13px}
.call-protocol-bullet{
  display:grid;grid-template-columns:6px minmax(0,1fr);gap:8px;align-items:start;
  color:var(--ink);font-size:13px
}
.call-protocol-bullet i{
  width:5px;height:5px;margin-top:8px;border-radius:50%;background:var(--orange)
}
.call-protocol-paragraph,.call-protocol-empty{color:var(--ink);font-size:13px}
.call-protocol-detail-play{
  width:100%;background:var(--orange);border-color:var(--orange);color:#fff
}

html[data-v3-theme="dark"] .call-protocol-card{
  background:#1b2634;border-color:#344152;border-left-color:var(--orange)
}
html[data-v3-theme="dark"] .call-protocol-meta span{
  background:#111a25;color:#b7c2cf
}
html[data-v3-theme="dark"] .call-protocol-highlight{
  background:#251e17;border-color:#65431d
}
html[data-v3-theme="dark"] .call-protocol-highlight p{color:#edf2f7}
html[data-v3-theme="dark"] .call-protocol-status{
  background:#143529;color:#7ae0b3
}
html[data-v3-theme="dark"] .call-protocol-actions button{
  background:#111a25;border-color:#344152;color:#edf2f7
}
html[data-v3-theme="dark"] .call-protocol-body,
html[data-v3-theme="dark"] .call-protocol-detail-participants{
  background:#111a25;border-color:#344152;color:#edf2f7
}
html[data-v3-theme="dark"] .call-protocol-section-title{border-color:#344152}
html[data-v3-theme="dark"] .call-protocol-detail-play{
  background:var(--orange);border-color:var(--orange);color:#fff
}

/* v80: explicit phone/desktop layout with automatic device detection */
@media(min-width:721px){
  html[data-v3-effective-ui="phone"] body{
    background:#dfe5ec;
  }
  html[data-v3-theme="dark"][data-v3-effective-ui="phone"] body{
    background:#080d14;
  }
  html[data-v3-effective-ui="phone"] .v3-shell{
    width:min(520px,100%);
    margin:0 auto;
    box-shadow:0 0 0 1px rgba(16,24,40,.08),0 18px 52px rgba(16,24,40,.16);
  }
  html[data-v3-effective-ui="phone"] .v3-main{
    padding-left:14px;
    padding-right:14px;
  }
  html[data-v3-effective-ui="phone"] .v3-top{
    padding-left:14px;
    padding-right:14px;
  }
  html[data-v3-effective-ui="phone"] .v3-bottom{
    left:50%;
    right:auto;
    width:min(520px,100%);
    transform:translateX(-50%);
  }
  html[data-v3-effective-ui="phone"] .v3-chat-shell{
    left:50%;
    width:min(520px,var(--chat-vv-width,100vw));
    transform:translate3d(
      calc(-50% + var(--chat-vv-left,0px)),
      var(--chat-vv-top,0px),
      0
    );
  }
  html[data-v3-effective-ui="phone"] .v3-chat-shell>.v3-bottom{
    left:auto;
    width:100%;
    transform:none;
  }
}

@media(max-width:720px){
  html[data-v3-effective-ui="desktop"] .v3-main{
    padding-left:18px;
    padding-right:18px;
  }
  html[data-v3-effective-ui="desktop"] .v3-title{
    font-size:22px;
  }
  html[data-v3-effective-ui="desktop"] .panel,
  html[data-v3-effective-ui="desktop"] .task-card,
  html[data-v3-effective-ui="desktop"] .object-card{
    border-radius:6px;
  }
  html[data-v3-effective-ui="desktop"] .chat-feed{
    padding-left:18px;
    padding-right:18px;
  }
}

@media(max-width:720px){
  .v3-lani-top{min-width:48px;height:40px;padding:0 11px}
  .v3-lani-top span{display:none}
  .profile-menu-card{min-height:76px}
  .portal-menu-list>button{min-height:61px;padding:9px 11px}
  .portal-menu-list button small{max-width:260px}
  .calls-quick{margin:12px 0 0;padding:12px}
  .calls-people{display:flex;margin-right:-12px;padding-right:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
  .calls-people::-webkit-scrollbar{display:none}
  .call-person{flex:0 0 216px;scroll-snap-align:start}
  .call-history-row{grid-template-columns:auto minmax(0,1fr) auto auto;padding:9px 10px}
  .employee-row{padding:8px 9px}.employee-actions button{width:34px;height:34px}
  .employee-main em{display:none}
  .employee-contact-actions button{min-height:50px;flex-direction:column;gap:3px;font-size:10px}
  .employee-card-head{padding:12px}
  .admin-page-head{margin-top:12px;align-items:stretch;flex-direction:column}
  .admin-page-head .primary-btn,.admin-page-head .secondary-btn{width:100%}
  .invite-row,.device-row{padding:9px 10px}
  .device-row{grid-template-columns:auto minmax(0,1fr) auto}
  .device-row>.tag{display:none}
  .v3-call-runtime.minimized{left:14px;right:14px;bottom:calc(var(--bottom) + env(safe-area-inset-bottom,0px) + 10px);width:auto;height:70px}
  .chat-message-row.call-protocol-row .chat-message-stack{
    width:calc(100% - 42px);max-width:calc(100% - 42px)
  }
}

/* v83: final dark-theme contrast layer */
html[data-v3-theme="dark"] .panel,
html[data-v3-theme="dark"] .object-card,
html[data-v3-theme="dark"] .task-card,
html[data-v3-theme="dark"] .task-day-card,
html[data-v3-theme="dark"] .chat-search-result,
html[data-v3-theme="dark"] .today-search-result,
html[data-v3-theme="dark"] .v3-picker>button:not(.primary-btn),
html[data-v3-theme="dark"] .overdue-actions>button{
  background:#17212e;color:#eef3f8;border-color:#334153
}
html[data-v3-theme="dark"] .chat-row-shell{background:#17212e}
html[data-v3-theme="dark"] .chat-row-shell.pinned,
html[data-v3-theme="dark"] .chat-row-shell.pinned .chat-row{background:#2b241c}
html[data-v3-theme="dark"] .kanban-column{
  background:#131d29;border-color:#303c4d;color:#eef3f8
}
html[data-v3-theme="dark"] .kanban-column.drag-over{background:#2b2118}
html[data-v3-theme="dark"] .kanban-column-head i{
  background:#263345;color:#c6d0dc
}
html[data-v3-theme="dark"] .kanban-column-head button:hover{background:#202b38}
html[data-v3-theme="dark"] .kanban-card>button,
html[data-v3-theme="dark"] .task-agenda-row,
html[data-v3-theme="dark"] .material-row,
html[data-v3-theme="dark"] .deadline-row,
html[data-v3-theme="dark"] .supply-row{
  background:#17212e;color:#eef3f8;border-color:#303c4d
}
html[data-v3-theme="dark"] .task-date-arrow,
html[data-v3-theme="dark"] .task-date{
  background:#17212e;color:#eef3f8;border-color:#303c4d
}
html[data-v3-theme="dark"] .task-agenda-row time,
html[data-v3-theme="dark"] .chat-search-result p,
html[data-v3-theme="dark"] .today-search-result p,
html[data-v3-theme="dark"] .overdue-actions>button small,
html[data-v3-theme="dark"] .task-footer,
html[data-v3-theme="dark"] .kanban-card-meta,
html[data-v3-theme="dark"] .kanban-card-assignee,
html[data-v3-theme="dark"] .v3-form label>span{
  color:#b6c2d0
}
html[data-v3-theme="dark"] .v3-form input,
html[data-v3-theme="dark"] .v3-form textarea,
html[data-v3-theme="dark"] .v3-form select,
html[data-v3-theme="dark"] .chat-compose textarea{
  background:#111a25;color:#f1f5f9;border-color:#3a4757
}
html[data-v3-theme="dark"] input::placeholder,
html[data-v3-theme="dark"] textarea::placeholder{
  color:#8794a5;opacity:1
}
html[data-v3-theme="dark"] .message-media,
html[data-v3-theme="dark"] .chat-media-card{
  background:#111a25;color:#b6c2d0;border-color:#334153
}
html[data-v3-theme="dark"] .task-known,
html[data-v3-theme="dark"] .task-return-summary,
html[data-v3-theme="dark"] .task-return-note,
html[data-v3-theme="dark"] .task-swipe-hint,
html[data-v3-theme="dark"] .list-note,
html[data-v3-theme="dark"] .message-action-preview{
  background:#121b27;color:#b6c2d0;border-color:#303c4d
}
html[data-v3-theme="dark"] .message-reaction-picker,
html[data-v3-theme="dark"] .message-reaction-picker button,
html[data-v3-theme="dark"] .field-ai-menu,
html[data-v3-theme="dark"] .field-ai-menu>button{
  background:#1a2532;color:#eef3f8;border-color:#3a4757
}
html[data-v3-theme="dark"] .field-ai-menu>button:hover{background:#24303e}
html[data-v3-theme="dark"] .v3-modal,
html[data-v3-theme="dark"] .reader-sheet,
html[data-v3-theme="dark"] .message-action-sheet{
  background:#17212e;color:#eef3f8;border-color:#334153
}
html[data-v3-theme="dark"] .v3-modal p,
html[data-v3-theme="dark"] .v3-modal small{
  color:#b6c2d0
}

/* v86: task discussions, procurement documents and Lani read receipts */
.chat-readers i.lani-reader{
  background:#f59e0b;color:#fff;border-color:#fff3df
}
.reader-row.lani-reader-row .reader-avatar{
  background:#fff3df;color:#d97706;border:1px solid #fed7aa
}
.item-thread-shell{display:grid;gap:12px}
.item-thread-context{
  display:flex;gap:10px;align-items:center;padding:11px 12px;
  border:1px solid var(--line);background:#f6f8fb;border-radius:8px
}
.item-thread-context>span:last-child{display:grid;gap:2px;min-width:0}
.item-thread-context b,.item-thread-context small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.item-thread-context small{color:var(--muted)}
.item-thread-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.item-thread-tabs::-webkit-scrollbar{display:none}
.item-thread-tabs button{
  min-height:36px;display:flex;align-items:center;gap:7px;padding:7px 11px;
  border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);
  font:inherit;font-weight:700;white-space:nowrap;cursor:pointer
}
.item-thread-tabs button.active{background:var(--navy);border-color:var(--navy);color:#fff}
.item-thread-tabs i{
  min-width:19px;height:19px;display:grid;place-items:center;padding:0 5px;
  border-radius:9px;background:#eef1f5;color:var(--muted);font-size:10px;font-style:normal
}
.item-thread-tabs button.active i{background:rgba(255,255,255,.16);color:#fff}
.item-thread-feed{
  display:grid;align-content:start;gap:10px;min-height:220px;max-height:min(50vh,520px);
  overflow-y:auto;overscroll-behavior:contain;padding:4px 3px
}
.item-thread-message{display:flex;gap:8px;align-items:flex-end;max-width:92%}
.item-thread-message.mine{margin-left:auto;flex-direction:row-reverse}
.item-thread-avatar{
  width:28px;height:28px;display:grid;place-items:center;flex:0 0 28px;border-radius:50%;
  background:#2f7ddb;color:#fff;font-size:10px;font-weight:800
}
.item-thread-avatar.lani{background:#f59e0b;color:#fff}
.item-thread-bubble{
  min-width:120px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;
  background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(16,24,40,.05)
}
.item-thread-message.mine .item-thread-bubble{background:var(--navy);border-color:var(--navy);color:#fff}
.item-thread-message.ai .item-thread-bubble{background:#fff7ed;border-color:#fed7aa}
.item-thread-bubble header{display:flex;justify-content:space-between;gap:14px;align-items:center}
.item-thread-bubble header b{font-size:12px}
.item-thread-bubble time{font-size:10px;opacity:.68;white-space:nowrap}
.item-thread-bubble p{margin:6px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;max-height:none;-webkit-line-clamp:unset;line-height:1.42}
.item-thread-file{
  width:100%;display:flex;align-items:center;gap:8px;margin-top:8px;padding:8px;
  border:1px solid var(--line);border-radius:7px;background:#f6f8fb;color:inherit;
  text-align:left;cursor:pointer
}
.item-thread-file span{display:grid;gap:1px;min-width:0}
.item-thread-file b,.item-thread-file small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.item-thread-empty{
  min-height:200px;display:grid;place-content:center;justify-items:center;gap:6px;
  border:1px dashed var(--line);border-radius:8px;color:var(--muted);text-align:center
}
.item-thread-empty b{color:var(--ink)}
.item-thread-compose{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;gap:8px;align-items:end}
.item-thread-compose textarea{
  min-height:42px;max-height:min(38dvh,260px);resize:none;overflow-y:hidden;padding:10px 11px;border:1px solid var(--line);
  border-radius:8px;background:#fff;color:var(--ink);font:inherit;line-height:1.35
}
.item-thread-attach,.item-thread-compose>button{
  width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);
  border-radius:8px;background:#f6f8fb;color:var(--muted);cursor:pointer
}
.item-thread-compose>button{background:#ef7d13;border-color:#ef7d13;color:#fff}
.item-thread-attach input{display:none}
.supply-detail-actions{margin-top:12px}

html[data-v3-theme="dark"] .item-thread-context,
html[data-v3-theme="dark"] .item-thread-bubble,
html[data-v3-theme="dark"] .item-thread-file,
html[data-v3-theme="dark"] .item-thread-empty{
  background:#111a25;color:#eef3f8;border-color:#334153
}
html[data-v3-theme="dark"] .item-thread-message.mine .item-thread-bubble{
  background:#263851;border-color:#3d526c
}
html[data-v3-theme="dark"] .item-thread-message.ai .item-thread-bubble{
  background:#2a2119;border-color:#6f4b24;color:#f7eadc
}
html[data-v3-theme="dark"] .item-thread-empty b{color:#eef3f8}
html[data-v3-theme="dark"] .item-thread-tabs button{
  background:#17212e;color:#eef3f8;border-color:#334153
}
html[data-v3-theme="dark"] .item-thread-tabs button.active{background:#ef7d13;border-color:#ef7d13;color:#fff}
html[data-v3-theme="dark"] .item-thread-compose textarea{
  background:#111a25;color:#f1f5f9;border-color:#3a4757
}
html[data-v3-theme="dark"] .task-thread-shortcut{
  background:#1d2733;color:#8bb8ff;border-color:#3b4655
}
html[data-v3-theme="dark"] .item-thread-attach{background:#17212e;color:#b6c2d0;border-color:#334153}

@media(max-width:680px){
  .item-thread-feed{max-height:52vh}
  .item-thread-message{max-width:96%}
  .item-thread-tabs button{min-height:38px;padding-inline:10px}
}

/* v98: дополнения тёмной темы по итогам аудита - компоненты, которые
   оставались светлыми (или нечитаемыми) на тёмной странице. */
html[data-v3-theme="dark"] .login-form input{background:#111a25;border-color:#3a4757;color:var(--ink)}
html[data-v3-theme="dark"] .login-card{background:var(--panel)}
html[data-v3-theme="dark"] .login-form label span{color:#9caabd}
html[data-v3-theme="dark"] .task-board-search{background:#111a25;border-color:#3a4757;color:var(--muted)}
html[data-v3-theme="dark"] .task-board-filters select{background:#111a25;border-color:#3a4757;color:#c6d0dc}
html[data-v3-theme="dark"] .drawer-head,
html[data-v3-theme="dark"] .drawer-compose{background:#151e29;border-color:#303c4d}
html[data-v3-theme="dark"] .drawer-compose textarea{background:#111a25;border-color:#3a4757;color:var(--ink)}
html[data-v3-theme="dark"] .lani-msg{background:#2a2119;border-color:#6f4b24;color:#f7eadc}
html[data-v3-theme="dark"] .kanban-column{background:#131c27}
html[data-v3-theme="dark"] .kanban-card-meta span{background:#1b2634;color:#b6c2d0}
html[data-v3-theme="dark"] .kanban-card-meta .danger{background:#381f27;color:#ff8f9d}
html[data-v3-theme="dark"] .item-thread-tabs i{background:#263345;color:#c6d0dc}
html[data-v3-theme="dark"] .chat-history-button,
html[data-v3-theme="dark"] .chat-history-state,
html[data-v3-theme="dark"] .chat-bottom-button{background:#1b2735;border-color:#344357;color:#c7d0dc}
html[data-v3-theme="dark"] .chat-history-button:hover{background:#24303e;border-color:#44536a}
html[data-v3-theme="dark"] .segmented{background:#131d29}
html[data-v3-theme="dark"] .overdue-action-icon{background:#202c39;color:#b6c2d0}
html[data-v3-theme="dark"] .overdue-actions>button{background:transparent}
html[data-v3-theme="dark"] .material-note{background:#1b2634;color:#9caabd}
html[data-v3-theme="dark"] .field-ai-menu{background:#17212e;border-color:#334153}

/* Пользователь с тёмной ОС до загрузки JS не должен видеть белую вспышку. */
@media (prefers-color-scheme: dark){
  html:not([data-v3-theme]){color-scheme:dark}
  html:not([data-v3-theme]) body{background:#0d141e}
  html:not([data-v3-theme]) .v3-loading{background:#0d141e;color:#f1f5f9}
}

/* v99: никнеймы сотрудников */
.employee-nick{margin-left:7px;font-style:normal;font-weight:700;font-size:12px;color:var(--orange-dark);opacity:.9}
.employee-card-head .employee-nick,.employee-public-details .employee-nick{font-size:inherit}
html[data-v3-theme="dark"] .employee-nick{color:#ffb46b}

/* v99: упоминания через @ */
.mention-menu{position:absolute;z-index:40;left:10px;right:auto;width:min(340px,calc(100% - 20px));bottom:calc(100% + 6px);max-height:min(264px,calc(var(--chat-vv-height,100dvh) - 200px));overflow:auto;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 14px 36px rgba(16,24,40,.18);display:grid;gap:2px}
/* Пока меню открыто, поднимаем композер над кнопкой "вниз" (z-index:8),
   иначе она перекрывала нижнюю строку списка и перехватывала клик. */
.chat-compose-wrap:has(.mention-menu:not([hidden])){z-index:30}
.mention-menu[hidden]{display:none}
.mention-menu button{min-height:46px;display:flex;align-items:center;gap:10px;border:0;border-radius:9px;background:transparent;color:var(--ink);text-align:left;padding:5px 8px;cursor:pointer}
.mention-menu button:hover,.mention-menu button:focus-visible{background:var(--orange-soft)}
.mention-menu .avatar{width:32px;height:32px;font-size:12px;flex:0 0 32px}
.mention-copy{min-width:0;display:grid}
.mention-copy b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mention-copy small{color:var(--muted);font-size:11px}
.chat-compose-wrap{position:relative}
.msg-mention{font-style:normal;font-weight:800;color:var(--orange-dark);background:var(--orange-soft);border-radius:5px;padding:0 3px}
.chat-message-row.mine .msg-mention{color:#ffdcb6;background:rgba(255,255,255,.14)}
.msg-mention.me{color:#fff;background:var(--orange)}
.chat-message-row.mine .msg-mention.me{color:#fff;background:var(--orange)}
html[data-v3-theme="dark"] .mention-menu{background:#17212e;border-color:#334153}
html[data-v3-theme="dark"] .mention-menu button:hover{background:#243044}
html[data-v3-theme="dark"] .msg-mention{color:#ffb46b;background:#382717}
html[data-v3-theme="dark"] .msg-mention.me{color:#fff;background:var(--orange)}

/* v99: аккуратные фото в чате */
.message-gallery{gap:4px;border-radius:14px;margin-top:9px}
.message-media,.chat-media-card{border-radius:0;background:linear-gradient(110deg,#e3e8ef 30%,#eef2f7 46%,#e3e8ef 60%);background-size:220% 100%;animation:media-shimmer 1.4s linear infinite}
.message-media.ready,.chat-media-card.ready,.message-media.error,.chat-media-card.error{animation:none;background:#dfe5ec}
@keyframes media-shimmer{0%{background-position:130% 0}100%{background-position:-90% 0}}
.message-gallery.count-1{border-radius:14px}
.message-gallery.count-1 .message-media{border-radius:14px;box-shadow:0 2px 10px rgba(16,24,40,.08);border:1px solid rgba(16,24,40,.06)}
.message-media img,.message-media video{transition:opacity .22s ease,transform .25s ease}
@media(hover:hover){.message-media.ready:hover img,.message-media.ready:hover video{transform:scale(1.025)}}
.message-media-play{width:42px;height:42px;background:rgba(15,24,38,.66);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.25)}
.message-media-more{backdrop-filter:blur(2px)}
html[data-v3-theme="dark"] .message-media,html[data-v3-theme="dark"] .chat-media-card{background:linear-gradient(110deg,#1a2532 30%,#243144 46%,#1a2532 60%);background-size:220% 100%}
html[data-v3-theme="dark"] .message-media.ready,html[data-v3-theme="dark"] .chat-media-card.ready,html[data-v3-theme="dark"] .message-media.error,html[data-v3-theme="dark"] .chat-media-card.error{background:#1a2532;animation:none}
html[data-v3-theme="dark"] .message-gallery{background:#1a2532}
html[data-v3-theme="dark"] .message-gallery.count-1{background:transparent}
html[data-v3-theme="dark"] .message-gallery.count-1 .message-media{border-color:rgba(255,255,255,.08);background:#131c27}

/* v99: просмотр фото - панель не перекрывает снимок */
.media-viewer-head{background:linear-gradient(180deg,rgba(5,9,14,.78) 0%,rgba(5,9,14,.42) 55%,rgba(5,9,14,0) 100%);backdrop-filter:none;padding-bottom:22px;transition:opacity .22s ease,transform .22s ease}
.media-viewer-head span{font-size:13px;font-weight:600;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.media-viewer-control{background:rgba(20,26,36,.55);border-color:rgba(255,255,255,.18);backdrop-filter:blur(6px);transition:opacity .22s ease,background .15s ease}
.media-viewer-control:hover{background:rgba(46,56,72,.75)}
.media-viewer.chrome-hidden .media-viewer-head{opacity:0;transform:translateY(-10px);pointer-events:none}
.media-viewer.chrome-hidden .media-prev,.media-viewer.chrome-hidden .media-next{opacity:0;pointer-events:none}

/* v99: новые тосты-уведомления */
.v3-toast{display:flex;align-items:center;gap:10px;min-height:46px;max-width:min(430px,calc(100vw - 30px));padding:11px 16px 11px 13px;border-radius:13px;background:rgba(23,32,45,.94);color:#f2f5f9;border:1px solid rgba(255,255,255,.09);box-shadow:0 12px 34px rgba(10,16,26,.35);backdrop-filter:blur(10px);font-size:13.5px;line-height:1.35;transform:translate(-50%,14px) scale(.97);transition:opacity .22s ease,transform .22s cubic-bezier(.2,.9,.3,1.2)}
.v3-toast.show{transform:translate(-50%,0) scale(1)}
.v3-toast .toast-icon{flex:0 0 auto;display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:rgba(255,255,255,.1);color:#9fb2c8}
.v3-toast.success .toast-icon{background:rgba(43,160,113,.22);color:#4fd6a0}
.v3-toast.error .toast-icon{background:rgba(224,82,99,.2);color:#ff93a0}
.v3-toast .toast-text{min-width:0}
html[data-v3-theme="dark"] .v3-toast{background:rgba(30,41,56,.96)}

/* v100: крупные фото в чате */
.message-gallery{width:min(100%,480px);height:340px}
.message-gallery.count-1{width:min(100%,480px);height:auto}
.message-gallery.count-2{height:290px}
.message-gallery.count-4{height:360px}
.message-gallery.count-1 .message-media{max-height:min(62vh,600px);min-height:130px}
/* Сообщение с фото получает более широкий пузырь, чем текстовое */
.chat-message-row:has(.message-gallery) .chat-message-stack{max-width:min(calc(88% - 36px),540px)}
.chat-message-row:has(.message-gallery) .chat-message-bubble{width:100%}
@media(max-width:720px){
  .message-gallery{width:min(100%,420px);height:300px}
  .message-gallery.count-1{width:100%;height:auto}
  .message-gallery.count-2{height:250px}
  .message-gallery.count-4{height:320px}
  .message-gallery.count-1 .message-media{max-height:56vh}
  .chat-message-row:has(.message-gallery) .chat-message-stack{max-width:calc(94% - 33px)}
}

/* v103: выбор сотрудников для добавления в чат */

/* v105: фото профилей */
.has-photo{background-size:cover!important;background-position:center!important;color:transparent!important;text-shadow:none!important}
.has-photo svg{display:none}
.avatar-manage-actions{display:flex;gap:8px;margin:2px 0 12px}
.avatar-manage-actions button{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:7px 13px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--ink);font-weight:700;font-size:12.5px;cursor:pointer;transition:background .12s ease,border-color .12s ease}
.avatar-manage-actions button:hover{border-color:var(--orange);color:var(--orange-dark)}
.avatar-manage-actions .avatar-remove{color:#b42335}
.avatar-manage-actions .avatar-remove:hover{border-color:#e58f9c;color:#b42335;background:#fff0f2}
html[data-v3-theme="dark"] .avatar-manage-actions button{background:#1a2532;border-color:#3a4757;color:var(--ink)}
html[data-v3-theme="dark"] .avatar-manage-actions .avatar-remove{color:#ff93a0}
html[data-v3-theme="dark"] .avatar-manage-actions .avatar-remove:hover{background:#381f27;border-color:#6d3540}

/* v108: экран участников группы и выбор людей */
.v3-modal.members-modal{width:min(520px,100%);max-height:min(680px,calc(100dvh - 40px))}
.members-modal .v3-modal-body{padding:0;display:flex;min-height:0;overflow:hidden}
.members-form,.people-pick{display:flex;flex-direction:column;flex:1;min-height:0;width:100%;gap:0}
.members-top{display:grid;gap:10px;padding:14px 16px 12px;border-bottom:1px solid var(--line);background:var(--panel)}
.members-title{display:grid;gap:2px;min-width:0}
.members-title b{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.members-title small{color:var(--muted);font-size:12px}
.members-name{display:grid;gap:6px}
.members-name>span{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.3px}
.members-name input{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);outline:0}
.members-name input:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(246,122,10,.12)}
.members-search{position:relative;display:flex;align-items:center;gap:9px;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--page)}
.members-search svg{flex:0 0 auto;color:var(--muted)}
.members-search input{flex:1;min-width:0;height:42px;border:0;background:transparent;color:var(--ink);outline:0;font-size:14px}
.members-search input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}
.members-search:focus-within{border-color:var(--orange);box-shadow:0 0 0 3px rgba(246,122,10,.12);background:var(--panel)}
.people-pick>.members-search{margin:14px 16px 10px}
.members-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:10px 10px 14px}
.people-pick>.members-rows{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 10px 14px}
.members-group+.members-group{margin-top:14px}
.members-group-head{display:flex;align-items:center;gap:8px;padding:6px 8px 8px}
.members-group-head span{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
.members-group-head b{min-width:22px;padding:1px 7px;border-radius:20px;background:var(--page);color:var(--muted);font-size:11.5px;font-weight:800;text-align:center}
.members-rows{display:grid;gap:2px}
.member-row{position:relative;display:flex;align-items:center;gap:11px;width:100%;min-height:56px;padding:8px 12px;border:0;border-radius:12px;background:transparent;color:var(--ink);text-align:left;transition:background .12s ease}
.member-row.pick,.member-row.pick-one{cursor:pointer}
@media(hover:hover){.member-row.pick:hover,.member-row.pick-one:hover,.member-row:hover{background:var(--page)}}
.member-row.pick:has(input:checked),.member-row.pick.checked{background:var(--orange-soft)}
.member-row.pick:focus-within{box-shadow:0 0 0 2px var(--orange)}
.member-row input[type="checkbox"]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.avatar.member-avatar{width:40px;height:40px;font-size:14px;flex:0 0 40px}
.member-copy{display:grid;gap:1px;min-width:0;flex:1}
.member-copy b{font-size:14px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.member-copy small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.member-row.pick:has(input:checked) .member-copy b,.member-row.pick.checked .member-copy b{color:var(--orange-dark)}
.member-tag{flex:0 0 auto;padding:3px 9px;border-radius:20px;background:var(--page);color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.2px}
.member-tag.owner{background:var(--orange-soft);color:var(--orange-dark)}
.member-check{flex:0 0 auto;width:24px;height:24px;display:grid;place-items:center;border:2px solid var(--line);border-radius:8px;background:transparent;color:transparent;transition:background .14s ease,border-color .14s ease,color .14s ease}
.member-row.pick:has(input:checked) .member-check,.member-row.pick.checked .member-check{background:var(--orange);border-color:var(--orange);color:#fff}
.member-remove{flex:0 0 auto;width:36px;height:36px;display:grid;place-items:center;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--muted);cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}
.member-remove:hover,.member-remove:focus-visible{background:var(--red-soft);border-color:#f0b9c1;color:#b42335}
.members-note{display:flex;align-items:flex-start;gap:9px;margin:2px 6px 6px;padding:12px 13px;border-radius:12px;background:var(--orange-soft);color:var(--orange-dark);font-size:12.5px;line-height:1.45}
.members-note svg{flex:0 0 auto;margin-top:1px}
.members-all-in,.members-nothing{display:flex;align-items:center;justify-content:center;gap:9px;padding:22px 14px;color:var(--muted);font-size:13px}
.members-nothing{flex-direction:column;gap:7px}
.members-actions{display:grid;gap:8px;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:var(--panel)}
.members-actions .primary-btn{width:100%;margin:0}
.members-actions .primary-btn:disabled{opacity:.55;cursor:not-allowed}
.member-leave{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:#b42335;font-weight:700;font-size:13.5px;cursor:pointer;transition:background .12s ease,border-color .12s ease}
.member-leave:hover{background:var(--red-soft);border-color:#f0b9c1}
html[data-v3-theme="dark"] .members-top,html[data-v3-theme="dark"] .members-actions{background:#151e29;border-color:#334153}
html[data-v3-theme="dark"] .members-search{background:#101923;border-color:#334153}
html[data-v3-theme="dark"] .members-search:focus-within{background:#17212e}
html[data-v3-theme="dark"] .members-name input{background:#101923;border-color:#334153;color:var(--ink)}
html[data-v3-theme="dark"] .members-group-head b{background:#233043;color:#93a3b8}
html[data-v3-theme="dark"] .member-row:hover,html[data-v3-theme="dark"] .member-row.pick:hover,html[data-v3-theme="dark"] .member-row.pick-one:hover{background:#1d2937}
html[data-v3-theme="dark"] .member-row.pick:has(input:checked),html[data-v3-theme="dark"] .member-row.pick.checked{background:#33240f}
html[data-v3-theme="dark"] .member-row.pick:has(input:checked) .member-copy b,html[data-v3-theme="dark"] .member-row.pick.checked .member-copy b{color:#ffb46b}
html[data-v3-theme="dark"] .member-check{border-color:#3a4757}
html[data-v3-theme="dark"] .member-tag{background:#233043;color:#93a3b8}
html[data-v3-theme="dark"] .member-tag.owner{background:#382717;color:#ffb46b}
html[data-v3-theme="dark"] .members-note{background:#382717;color:#ffcb95}
html[data-v3-theme="dark"] .member-remove:hover{background:#3a1f26;border-color:#6d3540;color:#ff93a0}
html[data-v3-theme="dark"] .member-leave{background:#1a2532;border-color:#3a4757;color:#ff93a0}
html[data-v3-theme="dark"] .member-leave:hover{background:#3a1f26;border-color:#6d3540}
@media(max-width:900px){
  .v3-modal.members-modal{max-height:min(86dvh,calc(100dvh - env(safe-area-inset-top,0px) - 18px))}
  .members-top{padding:12px 14px 10px}
  .members-scroll{padding:8px 8px 12px}
  .member-row{min-height:60px}
  .members-actions{padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px))}
}

/* ===========================================================================
   v108: тёмная тема - читаемый цветной текст.
   Раньше в тёмной теме переопределялись только ФОНЫ (--orange-soft и т.д.),
   а цвета текста (--red/--green/--blue/--violet/--orange-dark) оставались
   светлотемными: тёмный текст на тёмном фоне давал контраст ~2.6:1.
   Сами --red/--green используются и как фоны кнопок с белым текстом, поэтому
   переопределяем не их, а отдельные "чернильные" токены только для текста.
   =========================================================================== */
html[data-v3-theme="dark"]{
  --orange-ink:#ffb46b;
  --red-ink:#ff8f9d;
  --green-ink:#5fd3a6;
  --blue-ink:#8bb8ff;
  --violet-ink:#b79cff;
}
html[data-v3-theme="dark"] .tag.red,
html[data-v3-theme="dark"] .agenda-tag.red,
html[data-v3-theme="dark"] .decision-icon.red,
html[data-v3-theme="dark"] .chat-copy .has-draft em,
html[data-v3-theme="dark"] .kanban-card-meta .danger,
html[data-v3-theme="dark"] .task-swipe-back,
html[data-v3-theme="dark"] .task-agenda-row.overdue time,
html[data-v3-theme="dark"] .task-agenda-row.overdue span,
html[data-v3-theme="dark"] .overdue-known strong,
html[data-v3-theme="dark"] .overdue-action-icon.danger,
html[data-v3-theme="dark"] .portal-menu-list .menu-danger,
html[data-v3-theme="dark"] .call-history-row.missed .call-history-main b,
html[data-v3-theme="dark"] .secondary-btn.danger,
html[data-v3-theme="dark"] .device-revoke-btn{color:var(--red-ink)}
html[data-v3-theme="dark"] .tag.green,
html[data-v3-theme="dark"] .agenda-tag.green,
html[data-v3-theme="dark"] .v3-subtitle.online,
html[data-v3-theme="dark"] .task-swipe-next,
html[data-v3-theme="dark"] .task-stage .done,
html[data-v3-theme="dark"] .v3-status-actions button.green{color:var(--green-ink)}
html[data-v3-theme="dark"] .tag.blue,
html[data-v3-theme="dark"] .agenda-tag.blue,
html[data-v3-theme="dark"] .decision-icon.blue,
html[data-v3-theme="dark"] .chat-list-read.read,
html[data-v3-theme="dark"] .kanban-add,
html[data-v3-theme="dark"] .task-thread-shortcut,
html[data-v3-theme="dark"] .task-stage .active,
html[data-v3-theme="dark"] .reader-check{color:var(--blue-ink)}
html[data-v3-theme="dark"] .tag.violet,
html[data-v3-theme="dark"] .decision-icon.violet{color:var(--violet-ink)}
html[data-v3-theme="dark"] .tag.orange,
html[data-v3-theme="dark"] .agenda-tag.amber,
html[data-v3-theme="dark"] .chat-project,
html[data-v3-theme="dark"] .section-link,
html[data-v3-theme="dark"] .chat-copy strong>svg,
html[data-v3-theme="dark"] .object-option-list .decision-icon,
html[data-v3-theme="dark"] .overdue-actions .overdue-detail-link,
html[data-v3-theme="dark"] .nav-btn.active,
html[data-v3-theme="dark"] .field-ai-btn,
html[data-v3-theme="dark"] .field-ai-menu>strong,
html[data-v3-theme="dark"] .admin-form-title,
html[data-v3-theme="dark"] .call-protocol-icon,
html[data-v3-theme="dark"] .call-protocol-audio,
html[data-v3-theme="dark"] .v3-portal-switch:hover,
html[data-v3-theme="dark"] .kanban-column-head button:hover{color:var(--orange-ink)}
html[data-v3-theme="dark"] .kanban-column-head button:hover{background:#243044}

/* v108: светлые плашки, у которых не было тёмной версии */
html[data-v3-theme="dark"] .tag,
html[data-v3-theme="dark"] .agenda-tag{background:#243044;color:#c6d0dc}
html[data-v3-theme="dark"] .priority-high{background:#3a2027;color:var(--red-ink)}
html[data-v3-theme="dark"] .priority-mid{background:#38291a;color:#ffbe7a}
html[data-v3-theme="dark"] .priority-low{background:#17352c;color:var(--green-ink)}
html[data-v3-theme="dark"] .recording-state{background:#2a1b1e;border-color:#6b3a42;color:#ffb3bc}
html[data-v3-theme="dark"] .recording-state span{color:#e0a7ae}
html[data-v3-theme="dark"] .chat-list,
html[data-v3-theme="dark"] .thread-list,
html[data-v3-theme="dark"] .supply-list{background:var(--panel)}
html[data-v3-theme="dark"] .interface-mode-segments{background:#131d29}
html[data-v3-theme="dark"] .interface-mode-segments button{color:#9caabd}
html[data-v3-theme="dark"] .interface-mode-segments button.active{background:var(--panel);border-color:var(--line);color:var(--ink)}
html[data-v3-theme="dark"] .archived-threads .thread-row{background:#131c27;color:#8794a5}
html[data-v3-theme="dark"] .archived-threads .thread-row:hover{background:#1b2634}
html[data-v3-theme="dark"] .bar,
html[data-v3-theme="dark"] .task-stage i,
html[data-v3-theme="dark"] .message-swipe-reply,
html[data-v3-theme="dark"] .menu-switch{background:#2a3646}
html[data-v3-theme="dark"] .task-swipe-next{background:#17352c}
html[data-v3-theme="dark"] .task-swipe-back{background:#381f27}
html[data-v3-theme="dark"] .kanban-card-meta .danger{background:#381f27}
html[data-v3-theme="dark"] .overdue-action-icon.danger{background:#381f27}
html[data-v3-theme="dark"] .login-error{background:#2a1b1e;border-color:#6b3a42;color:#ffb3bc}
html[data-v3-theme="dark"] .task-thread-shortcut{background:#1b2735;border-color:#344357}
html[data-v3-theme="dark"] .lani-reader-row .reader-avatar{background:#382717;color:var(--orange-ink)}

/* v108: кнопка «к последним сообщениям» налезала на композер в PWA на iPhone */
.chat-bottom-button{bottom:calc(76px + env(safe-area-inset-bottom,0px))}
@media(max-width:720px){
  .chat-bottom-button{bottom:calc(70px + env(safe-area-inset-bottom,0px))}
}

/* v108: цели нажатия на сенсорных экранах - не меньше 38-40px */
@media(pointer:coarse){
  .message-reactions button{height:34px}
  .voice-speed,.voice-transcribe,.voice-task{height:36px}
  .call-person-actions button,.employee-actions button,.call-row-repeat,
  .invite-actions button,.device-revoke-btn{width:40px;height:40px}
  .today-action,.today-avatar{width:40px;height:40px}
  .chat-reply-draft button,.kanban-column-head button{width:40px;height:40px}
  .active-context button,.field-ai-btn{width:38px;height:38px}
}

/* v108: единая форма фильтр-чипов - раньше на соседних экранах они были то
   прямоугольниками, то таблетками и отличались на 1px по высоте */
.chat-sticky-tabs .filter-chip,
.chat-list-screen>.chips .filter-chip{height:34px;padding:0 14px;border-radius:8px;font-size:12px}
@media(pointer:coarse){
  .chat-sticky-tabs .filter-chip,
  .chat-list-screen>.chips .filter-chip{height:36px}
}

/* v108: .primary-btn задавался дважды (height:46px + padding из другого
   правила) и собирался в гибрид, не задуманный ни одним из них */
.primary-btn,.secondary-btn{min-height:46px;height:auto;padding:0 18px;border-radius:8px}

/* v108: элементы, которые разметка рисует, а стилей у них не было */
.overdue-task-sheet{display:grid;gap:12px}
.chat-activity-dots{display:inline-flex;align-items:center;gap:2px}

/* v108: дробные размеры шрифта выбивались из шкалы */
.chat-live-activity-copy b,.chat-live-activity-copy small{font-size:12px}
.avatar-manage-actions button{font-size:13px}
.v3-toast{font-size:13px}
.members-note{font-size:13px}

/* v108: подписи var(--muted) на светлых подложках были на грани читаемости */
.item-thread-tabs i,.material-note,.reader-note,.call-protocol-meta span{color:#55607a}
html[data-v3-theme="dark"] .item-thread-tabs i,
html[data-v3-theme="dark"] .material-note,
html[data-v3-theme="dark"] .reader-note,
html[data-v3-theme="dark"] .call-protocol-meta span{color:#a9b6c7}

/* v109: лента чата прижимается к строке ввода.
   Короткая переписка раньше висела у самого верха, а над композером зияла
   пустота в пол-экрана. margin-top:auto съедает свободное место только когда
   оно есть: при переполнении он схлопывается в 0 и прокрутка не ломается. */
.chat-feed{display:flex;flex-direction:column}
.chat-feed>*:first-child{margin-top:auto}
.chat-feed>.empty:first-child{margin-top:auto;margin-bottom:auto}

/* v109: подтверждение перед звонком */
.v3-modal.call-confirm-modal{width:min(420px,100%)}
.call-confirm{display:grid;gap:16px}
.call-confirm-person{display:flex;align-items:center;gap:14px}
.avatar.call-confirm-avatar{width:58px;height:58px;font-size:19px;flex:0 0 58px}
.call-confirm-copy{display:grid;gap:2px;min-width:0}
.call-confirm-copy b{font-size:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.call-confirm-copy small{color:var(--muted);font-size:13px}
.call-confirm-presence{font-size:12px;font-weight:700;color:var(--muted)}
.call-confirm-presence.online{color:var(--green)}
html[data-v3-theme="dark"] .call-confirm-presence.online{color:var(--green-ink)}
.call-confirm-note{margin:0;padding:11px 13px;border-radius:10px;background:var(--page);color:var(--muted);font-size:12.5px;line-height:1.45}
html[data-v3-theme="dark"] .call-confirm-note{background:#101923;color:#a9b6c7}
.call-confirm-actions{display:grid;gap:8px}
.call-confirm-actions button{width:100%;justify-content:center}

/* v109: опасные действия в списках (удалить сообщение, удалить задачу) */
.v3-picker>button.action-danger b,
.overdue-actions>button.action-danger b{color:#b42335}
.decision-icon.danger,.overdue-action-icon.danger{background:var(--red-soft);color:#b42335}
html[data-v3-theme="dark"] .v3-picker>button.action-danger b,
html[data-v3-theme="dark"] .overdue-actions>button.action-danger b{color:var(--red-ink)}
html[data-v3-theme="dark"] .decision-icon.danger,
html[data-v3-theme="dark"] .overdue-action-icon.danger{background:#381f27;color:var(--red-ink)}

/* v109: возврат в чат из «Задач» и «Снабжения» */
.context-return{display:inline-flex;align-items:center;gap:8px;margin:12px 16px 0;min-height:40px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);font-weight:700;font-size:13px;cursor:pointer;transition:border-color .12s ease,color .12s ease}
.context-return:hover{border-color:var(--orange);color:var(--orange-dark)}
html[data-v3-theme="dark"] .context-return{background:#1a2532;border-color:#3a4757}
html[data-v3-theme="dark"] .context-return:hover{border-color:var(--orange);color:var(--orange-ink)}

/* v109: черновик вложений и пометки на фото */
.attach-draft{display:grid;gap:14px}
.attach-list{display:grid;gap:8px;max-height:min(46dvh,340px);overflow:auto;overscroll-behavior:contain}
.attach-item{display:flex;align-items:center;gap:11px;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.attach-thumb{flex:0 0 52px;width:52px;height:52px;border-radius:9px;background:var(--page);display:grid;place-items:center;color:var(--muted);background-size:cover;background-position:center}
.attach-copy{display:grid;gap:2px;min-width:0;flex:1}
.attach-copy b{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.attach-copy small{color:var(--muted);font-size:11.5px}
.attach-mark{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--ink);font-weight:700;font-size:12.5px;cursor:pointer}
.attach-mark:hover{border-color:var(--orange);color:var(--orange-dark)}
.attach-drop{flex:0 0 auto;width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:9px;background:transparent;color:var(--muted);cursor:pointer}
.attach-drop:hover{background:var(--red-soft);color:#b42335}
.attach-caption{display:grid;gap:6px}
.attach-caption>span{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.3px}
.attach-caption input{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);outline:0}
.attach-caption input:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(246,122,10,.12)}
.attach-actions{display:grid;gap:8px}
.attach-actions button{width:100%;justify-content:center}
html[data-v3-theme="dark"] .attach-item{background:#1a2532;border-color:#3a4757}
html[data-v3-theme="dark"] .attach-thumb{background:#101923}
html[data-v3-theme="dark"] .attach-mark{background:#1a2532;border-color:#3a4757;color:var(--ink)}
html[data-v3-theme="dark"] .attach-mark:hover{color:var(--orange-ink)}
html[data-v3-theme="dark"] .attach-caption input{background:#101923;border-color:#334153;color:var(--ink)}
html[data-v3-theme="dark"] .attach-drop:hover{background:#3a1f26;color:var(--red-ink)}

.v3-modal.markup-modal{width:min(760px,100%)}
.markup-wrap{display:grid;gap:12px}
.markup-tools{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.markup-tool{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--ink);font-weight:700;font-size:12.5px;cursor:pointer}
.markup-tool.active{background:var(--orange);border-color:var(--orange);color:#fff}
.markup-colors{display:inline-flex;align-items:center;gap:6px;margin-left:auto}
.markup-color{width:26px;height:26px;border-radius:50%;border:2px solid transparent;background:var(--markup-color);cursor:pointer;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.markup-color.active{border-color:var(--ink);transform:scale(1.08)}
.markup-canvas-wrap{width:100%;max-height:56dvh;overflow:auto;border:1px solid var(--line);border-radius:12px;background:#0f1720;display:flex;justify-content:center;align-items:center;padding:8px}
#attach-markup-canvas{max-width:100%;height:auto;touch-action:none;cursor:crosshair;background:#fff;border-radius:6px}
html[data-v3-theme="dark"] .markup-tool{background:#1a2532;border-color:#3a4757;color:var(--ink)}
html[data-v3-theme="dark"] .markup-tool.active{background:var(--orange);border-color:var(--orange);color:#fff}
html[data-v3-theme="dark"] .markup-canvas-wrap{border-color:#334153;background:#0a1017}
html[data-v3-theme="dark"] .markup-color.active{border-color:#fff}
@media(max-width:720px){
  .markup-tool span{display:none}
  .markup-tool{padding:0 11px}
  .markup-canvas-wrap{max-height:48dvh}
}

/* v109: лента обсуждения внутри раздела снабжения */
.supply-discussion{display:flex;align-items:center;gap:12px;width:100%;min-height:66px;margin:12px 16px 0;padding:11px 14px;width:calc(100% - 32px);border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);text-align:left;cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease}
.supply-discussion:hover{border-color:var(--orange);box-shadow:0 2px 10px rgba(246,122,10,.12)}
.supply-discussion-icon{flex:0 0 42px;width:42px;height:42px;display:grid;place-items:center;border-radius:11px;background:var(--orange-soft);color:var(--orange-dark)}
.supply-discussion-copy{display:grid;gap:2px;min-width:0;flex:1}
.supply-discussion-copy b{font-size:14px}
.supply-discussion-copy small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html[data-v3-theme="dark"] .supply-discussion{background:#1a2532;border-color:#3a4757}
html[data-v3-theme="dark"] .supply-discussion-icon{background:#382717;color:var(--orange-ink)}

/* v109: тёмный образец цвета в редакторе пометок нуждается в обводке */
html[data-v3-theme="dark"] .markup-color{box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}

/* v109: полоса активного фильтра в тёмной теме (была коричневой с белой ✕) */
html[data-v3-theme="dark"] .active-context{background:#2a2113;border-color:#5a4526;color:#ffcb95}
html[data-v3-theme="dark"] .active-context button{background:#3a2e1b;color:#ffcb95}
html[data-v3-theme="dark"] .active-context button:hover{background:#4a3a22}

/* v111: долгое нажатие на сенсорных экранах.
   Раньше палец сначала запускал нативное выделение текста и всплывающее
   меню системы («Копировать/Выделить всё»), и уже поверх этого открывалась
   панель действий — она появлялась криво и с торчащими маркерами выделения.
   На сенсорных устройствах выделение и системное меню отключаем: копирование
   есть в самой панели действий. На компьютере (pointer:fine) выделение
   мышью работает как раньше. */
@media (pointer: coarse) {
  .chat-message-row,
  .chat-message-bubble,
  .chat-row-shell,
  .task-card,
  .kanban-card,
  .supply-row,
  .decision-row,
  .member-row{
    -webkit-touch-callout:none;
    -webkit-user-select:none;
    user-select:none;
  }
  /* Поля ввода внутри этих блоков должны оставаться редактируемыми. */
  .chat-message-row input,.chat-message-row textarea,
  .member-row input,.member-row textarea{
    -webkit-user-select:text;
    user-select:text;
  }
  /* Внутри открытой панели действий текст сообщения снова можно выделить
     руками, если нужно скопировать кусок. */
  .message-action-preview span{
    -webkit-touch-callout:default;
    -webkit-user-select:text;
    user-select:text;
  }
}


/* ===========================================================================
   v116: полноценная версия для компьютера.
   Включается в «Настройки → Версия приложения → Компьютер» либо автоматически
   на широком экране с мышью. На телефоне ни одно из этих правил не действует.
   =========================================================================== */
html[data-v3-effective-ui="desktop"]{ --rail:232px; }

/* --- Навигация: вертикальная колонка слева вместо нижней панели --- */
html[data-v3-effective-ui="desktop"] .v3-bottom,
html[data-v3-effective-ui="desktop"] .v3-chat-shell>.v3-bottom{
  position:fixed;z-index:60;
  top:0;left:0;right:auto;bottom:0;
  width:var(--rail);height:100dvh;max-width:var(--rail);
  margin:0;transform:none;grid-row:auto;
  padding:14px 12px calc(14px + env(safe-area-inset-bottom,0px));
  display:flex;flex-direction:column;gap:4px;
  grid-template-columns:none;
  border-top:0;border-right:1px solid var(--line);
  background:var(--panel);
}
html[data-v3-effective-ui="desktop"] .v3-bottom-inner{display:flex;flex-direction:column;gap:4px;width:100%}
html[data-v3-effective-ui="desktop"] .nav-btn{
  flex-direction:row;justify-content:flex-start;gap:12px;
  width:100%;min-height:46px;padding:0 14px;border-radius:10px;font-weight:700;
}
html[data-v3-effective-ui="desktop"] .nav-btn span{font-size:14px}
html[data-v3-effective-ui="desktop"] .nav-btn.active{background:var(--orange-soft)}
html[data-v3-theme="dark"][data-v3-effective-ui="desktop"] .nav-btn.active{background:#382717}
html[data-v3-effective-ui="desktop"] .nav-badge{position:static;margin-left:auto}

/* --- Обычные экраны: содержимое сдвигается вправо на ширину колонки --- */
html[data-v3-effective-ui="desktop"] .v3-shell{padding-left:var(--rail);padding-bottom:0;min-height:100dvh}
html[data-v3-effective-ui="desktop"] .v3-main{max-width:1320px;padding:0 28px 32px}

/* --- Чат: две панели внутри той же сетки оболочки --- */
html[data-v3-effective-ui="desktop"] .v3-chat-shell{padding-left:var(--rail)}
html[data-v3-effective-ui="desktop"] .v3-chat-shell .v3-main{
  width:100%;max-width:none;border-left:0;border-right:0;padding:0;
}
.v3-two-pane{display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);flex:1 1 auto;min-height:0;overflow:hidden}
.v3-two-pane>.pane-list{
  min-width:0;min-height:0;overflow-y:auto;overscroll-behavior:contain;
  border-right:1px solid var(--line);background:var(--panel);
}
.v3-two-pane>.pane-chat{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}
.v3-two-pane .chat-list-screen{padding:0}
.v3-two-pane .chat-list{background:transparent}
.v3-two-pane .chat-gesture-note{display:none}
.v3-two-pane .chat-row-shell.active .chat-row{background:var(--orange-soft)}
html[data-v3-theme="dark"] .v3-two-pane .chat-row-shell.active .chat-row{background:#33240f}
html[data-v3-theme="dark"] .v3-two-pane>.pane-list{background:var(--panel);border-color:#334153}
/* Кнопка «назад» не нужна: список чатов и так на экране */
html[data-v3-effective-ui="desktop"] .v3-chat-shell [data-action="chat-back"]{display:none}

/* --- Комфортные размеры под мышь --- */
html[data-v3-effective-ui="desktop"] .v3-two-pane .chat-feed{padding:18px 28px 22px}
html[data-v3-effective-ui="desktop"] .chat-message-bubble{max-width:min(680px,72%)}
html[data-v3-effective-ui="desktop"] .v3-two-pane .chat-compose-wrap{padding:0 24px}
html[data-v3-effective-ui="desktop"] .chat-row{min-height:66px}
html[data-v3-effective-ui="desktop"] .v3-modal{width:min(620px,100%)}
html[data-v3-effective-ui="desktop"] .float-action{bottom:28px;right:32px}

/* --- Узкое окно на компьютере: вторая панель не помещается --- */
@media(max-width:1000px){
  .v3-two-pane{grid-template-columns:minmax(0,1fr)}
  .v3-two-pane>.pane-list{display:none}
  html[data-v3-effective-ui="desktop"] .v3-shell,
  html[data-v3-effective-ui="desktop"] .v3-chat-shell{padding-left:0}
  html[data-v3-effective-ui="desktop"] .v3-chat-shell [data-action="chat-back"]{display:inline-flex}
  html[data-v3-effective-ui="desktop"] .v3-bottom,
  html[data-v3-effective-ui="desktop"] .v3-chat-shell>.v3-bottom{
    top:auto;left:0;right:0;width:100%;max-width:100%;
    height:calc(var(--bottom) + env(safe-area-inset-bottom,0px));
    flex-direction:row;border-right:0;border-top:1px solid var(--line);
  }
  html[data-v3-effective-ui="desktop"] .v3-bottom-inner{flex-direction:row}
  html[data-v3-effective-ui="desktop"] .nav-btn{flex-direction:column;gap:2px;min-height:0}
  html[data-v3-effective-ui="desktop"] .nav-btn span{font-size:11px}
  html[data-v3-effective-ui="desktop"] .v3-shell{padding-bottom:calc(var(--bottom) + env(safe-area-inset-bottom,0px))}
}

/* v118: фон не прокручивается под открытой шторкой или модалкой */
html.v3-scroll-lock,body.v3-scroll-lock{overflow:hidden;overscroll-behavior:none}

/* ===========================================================================
   v119 · ОБНОВЛЕНИЕ ГРАФИКИ
   Единая система: скругления, глубина, типографика, ритм отступов.
   Слой только визуальный — раскладка, позиционирование и логика не меняются.
   =========================================================================== */
:root{
  /* Скругления: было вразнобой 6/7/8/9/12/13/14 — теперь одна шкала */
  --r-xs:8px; --r-sm:10px; --r-md:14px; --r-lg:20px; --r-pill:999px;
  /* Глубина вместо жёстких рамок в 1px */
  --e-1:0 1px 2px rgba(16,24,40,.04), 0 1px 3px rgba(16,24,40,.05);
  --e-2:0 2px 6px rgba(16,24,40,.05), 0 8px 20px rgba(16,24,40,.06);
  --e-3:0 10px 30px rgba(16,24,40,.10), 0 3px 8px rgba(16,24,40,.05);
  --ring:0 0 0 3px rgba(246,122,10,.18);
  --ease:cubic-bezier(.22,.61,.36,1);
  --hairline:rgba(16,24,40,.07);
}
html[data-v3-theme="dark"]{
  --e-1:0 1px 2px rgba(0,0,0,.30);
  --e-2:0 2px 8px rgba(0,0,0,.34), 0 10px 24px rgba(0,0,0,.28);
  --e-3:0 12px 34px rgba(0,0,0,.46), 0 4px 10px rgba(0,0,0,.30);
  --hairline:rgba(255,255,255,.08);
}

/* --- Типографика: спокойнее и стройнее --- */
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.005em}
.v3-title,h1,h2,h3{letter-spacing:-.02em}
.v3-subtitle{letter-spacing:0}

/* --- Поверхности: мягкая глубина вместо контурных рамок --- */
.panel{border-color:var(--hairline);border-radius:var(--r-md);box-shadow:var(--e-1)}
.chat-list,.thread-list,.supply-list{border-radius:var(--r-md);box-shadow:var(--e-1);border:1px solid var(--hairline)}
.task-card,.object-card,.kanban-card{border-radius:var(--r-md);border-color:var(--hairline);box-shadow:var(--e-1);transition:box-shadow .18s var(--ease),transform .18s var(--ease)}
@media(hover:hover){
  .task-card:hover,.object-card:hover,.kanban-card:hover{box-shadow:var(--e-2);transform:translateY(-1px)}
}

/* --- Кнопки-иконки: без серых квадратов --- */
.icon-btn{border-radius:var(--r-pill);background:transparent;color:#5a6879;transition:background .16s var(--ease),color .16s var(--ease),transform .12s var(--ease)}
@media(hover:hover){ .icon-btn:hover{background:rgba(16,24,40,.06);color:var(--ink)} }
.icon-btn:active{transform:scale(.94)}
.icon-btn.accent{background:var(--orange);color:#fff;box-shadow:0 4px 12px rgba(246,122,10,.30)}
html[data-v3-theme="dark"] .icon-btn{background:transparent;color:#9fb0c4}
html[data-v3-theme="dark"] .icon-btn:hover{background:rgba(255,255,255,.08);color:#eaf0f7}

/* --- Основные кнопки: объём и отклик --- */
.primary-btn{
  border-radius:var(--r-sm);
  background:linear-gradient(180deg,#fb8b21,#f2760a);
  box-shadow:0 1px 0 rgba(255,255,255,.25) inset, 0 4px 14px rgba(246,122,10,.28);
  transition:filter .16s var(--ease),transform .12s var(--ease),box-shadow .16s var(--ease);
}
.primary-btn:hover{filter:brightness(1.04)}
.primary-btn:active{transform:translateY(1px);box-shadow:0 2px 8px rgba(246,122,10,.24)}
.secondary-btn{border-radius:var(--r-sm);border-color:var(--hairline);box-shadow:var(--e-1)}

/* --- Фильтры: мягкие таблетки вместо россыпи рамок --- */
.chips{gap:6px}
.filter-chip{
  border-radius:var(--r-pill);border-color:transparent;background:rgba(16,24,40,.05);
  color:#5a6879;font-weight:700;transition:background .16s var(--ease),color .16s var(--ease);
}
.filter-chip.active{background:var(--navy);color:#fff;border-color:transparent;box-shadow:var(--e-1)}
@media(hover:hover){ .filter-chip:not(.active):hover{background:rgba(16,24,40,.09)} }
html[data-v3-theme="dark"] .filter-chip{background:rgba(255,255,255,.07);color:#a9b8ca}
html[data-v3-theme="dark"] .filter-chip.active{background:var(--orange);color:#fff}
html[data-v3-theme="dark"] .filter-chip:not(.active):hover{background:rgba(255,255,255,.12)}

/* --- Вкладки внутри чата: лёгкая полоса вместо плотной панели --- */
.chat-sticky-tabs{background:transparent;border-bottom:1px solid var(--hairline);box-shadow:none;padding:9px 16px}

/* --- Шапка: матовое стекло, тонкая линия --- */
.v3-top{border-bottom:1px solid var(--hairline);backdrop-filter:blur(18px) saturate(140%)}
.v3-chat-shell .v3-top{box-shadow:none}

/* --- ПУЗЫРИ СООБЩЕНИЙ --- */
.chat-message-bubble{
  padding:9px 13px 7px;
  border:0;
  border-radius:var(--r-lg) var(--r-lg) var(--r-lg) 6px;
  box-shadow:var(--e-1);
  font-size:15px;line-height:1.45;
}
.chat-message-row.mine .chat-message-bubble{
  border-radius:var(--r-lg) var(--r-lg) 6px var(--r-lg);
  background:linear-gradient(160deg,#2f4260,#223047);
  box-shadow:0 2px 10px rgba(23,34,49,.20);
}
/* Внутри серии сообщений углы «слипаются» — переписка читается группами */
.chat-message-row:not(.group-start) .chat-message-bubble{border-top-left-radius:8px}
.chat-message-row.mine:not(.group-start) .chat-message-bubble{border-top-left-radius:var(--r-lg);border-top-right-radius:8px}
.chat-message-row:not(.group-end) .chat-message-bubble{border-bottom-left-radius:8px}
.chat-message-row.mine:not(.group-end) .chat-message-bubble{border-bottom-left-radius:var(--r-lg);border-bottom-right-radius:8px}
.chat-message-author{margin-bottom:2px;font-size:12.5px;font-weight:800;letter-spacing:-.01em;color:var(--orange-dark)}
html[data-v3-theme="dark"] .chat-message-author{color:var(--orange-ink)}
.chat-message-meta{margin-top:2px;font-size:10.5px;opacity:.75}
.chat-message-row{margin-bottom:2px}
.chat-message-row.group-end{margin-bottom:10px}
.chat-message-avatar{border-width:0;box-shadow:0 1px 4px rgba(16,24,40,.18), inset 0 0 0 1.5px rgba(255,255,255,.22)}
.chat-day-divider span{border-radius:var(--r-pill);box-shadow:var(--e-1)}

/* --- Строка ввода --- */
.chat-compose{
  gap:6px;
  background:transparent;border-top:1px solid var(--hairline);
  backdrop-filter:blur(18px) saturate(140%);
}
.chat-compose textarea{
  border:1px solid var(--hairline);
  border-radius:var(--r-lg);
  background:rgba(16,24,40,.04);
  padding:11px 14px;
  transition:border-color .16s var(--ease),box-shadow .16s var(--ease),background .16s var(--ease);
}
.chat-compose textarea:focus{border-color:rgba(246,122,10,.55);box-shadow:var(--ring);background:var(--panel)}
html[data-v3-theme="dark"] .chat-compose textarea{background:rgba(255,255,255,.05)}
html[data-v3-theme="dark"] .chat-compose textarea:focus{background:#101923}

/* --- Список чатов --- */
.chat-row{border-radius:var(--r-md);transition:background .16s var(--ease)}
@media(hover:hover){ .chat-row:hover{background:rgba(16,24,40,.035)} }
html[data-v3-theme="dark"] .chat-row:hover{background:rgba(255,255,255,.05)}
.chat-copy strong{letter-spacing:-.01em}
.unread,.mention-badge{border-radius:var(--r-pill);box-shadow:0 2px 6px rgba(246,122,10,.30)}
.search-box{border-radius:var(--r-pill);border-color:var(--hairline);box-shadow:var(--e-1)}
.search-box:focus-within{box-shadow:var(--ring)}

/* --- Аватары: мягче градиент, тоньше блик --- */
.avatar-btn,.avatar{
  background:linear-gradient(145deg,hsl(var(--avatar-hue,340),58%,56%),hsl(calc(var(--avatar-hue,340) + 26),52%,42%));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.18), 0 1px 3px rgba(16,24,40,.12);
  text-shadow:0 1px 2px rgba(0,0,0,.22);
}

/* --- Модальные окна и шторки --- */
.v3-modal{border-radius:var(--r-md);box-shadow:var(--e-3);border:1px solid var(--hairline)}
.v3-modal-head{border-bottom:1px solid var(--hairline)}
.v3-modal-bg{background:rgba(10,16,24,.44);backdrop-filter:blur(6px) saturate(120%)}
@media(max-width:720px){
  .v3-modal{border-radius:var(--r-lg) var(--r-lg) 0 0}
  .v3-modal-head{position:relative;padding-top:18px}
  .v3-modal-head::before{
    content:"";position:absolute;top:7px;left:50%;transform:translateX(-50%);
    width:38px;height:4px;border-radius:var(--r-pill);background:rgba(16,24,40,.16);
  }
  html[data-v3-theme="dark"] .v3-modal-head::before{background:rgba(255,255,255,.20)}
}
.v3-picker>button{border-bottom-color:var(--hairline);transition:background .14s var(--ease)}
@media(hover:hover){ .v3-picker>button:hover{background:rgba(16,24,40,.035)} }
html[data-v3-theme="dark"] .v3-picker>button:hover{background:rgba(255,255,255,.05)}
.decision-icon{border-radius:var(--r-sm)}

/* --- Нижняя навигация --- */
.v3-bottom{border-top:1px solid var(--hairline);backdrop-filter:blur(18px) saturate(140%)}
.nav-btn{transition:color .16s var(--ease)}
.nav-badge{box-shadow:0 2px 6px rgba(214,38,60,.35)}

/* --- Плавающая кнопка --- */
.float-action{border-radius:var(--r-pill);box-shadow:0 8px 24px rgba(246,122,10,.34)}

/* --- Плашки и теги --- */
.tag,.agenda-tag{border-radius:var(--r-pill);font-weight:700}

/* --- Пустые состояния: не голый текст, а понятная карточка --- */
.empty{
  display:grid;justify-items:center;gap:8px;
  padding:34px 22px;color:var(--muted);text-align:center;line-height:1.5;
}
.empty::before{
  content:"";width:52px;height:52px;border-radius:var(--r-pill);
  background:radial-gradient(circle at 50% 40%, rgba(246,122,10,.16), rgba(246,122,10,.05));
}
html[data-v3-theme="dark"] .empty::before{background:radial-gradient(circle at 50% 40%, rgba(255,180,107,.18), rgba(255,180,107,.05))}

@media(prefers-reduced-motion:reduce){
  .task-card,.object-card,.kanban-card,.icon-btn,.primary-btn{transition:none!important}
}

/* v119: доводка после первого просмотра */
/* Кнопка Лани в шапке была единственным тяжёлым прямоугольником */
.v3-lani-top,.lani-btn{border-radius:var(--r-pill);box-shadow:0 4px 14px rgba(246,122,10,.28)}
.composer-ai{border-radius:var(--r-pill)}
/* Подсказка про свайпы не должна спорить со списком */
.list-note,.chat-gesture-note{border-radius:var(--r-md);background:transparent;border:1px dashed var(--hairline);color:var(--muted);font-size:12px}
/* Разделитель дня — тонкая линия с подписью, а не плашка посреди ленты */
.chat-day-divider span{background:rgba(16,24,40,.06);color:var(--muted);font-size:11px;font-weight:700;box-shadow:none}
html[data-v3-theme="dark"] .chat-day-divider span{background:rgba(255,255,255,.08)}
/* Отметка о прочтении и время — тише, чтобы не спорили с текстом */
.chat-delivered,.chat-readers{opacity:.8}
/* Аватар в шапке чата и в списке: мягче тень */
.chat-head-avatar,.chat-avatar{box-shadow:0 2px 6px rgba(16,24,40,.12), inset 0 0 0 1px rgba(255,255,255,.16)}

/* ===== v120: пустые состояния с действием и зум в просмотрщике ===== */
/* Подсказка «что делать дальше»: вторая строка и кнопка действия */
.empty small{display:block;max-width:340px;font-size:13px;line-height:1.45;color:var(--muted)}
.empty .primary-btn{margin-top:8px;display:inline-flex;align-items:center;gap:7px;font-size:14px}
/* Щипок/пан фото отдаём JS-обработчикам, нативный double-tap-zoom глушим */
.media-viewer-stage img{touch-action:none;will-change:transform}

/* ===== v122: офлайн-режим ===== */
/* Плашка «Нет сети»: заметная, но не кричащая; липнет к верху и на длинных
   списках (z выше шапки), верхний отступ учитывает вырез iPhone */
.v3-offline-bar{position:sticky;top:0;z-index:61;display:flex;align-items:center;justify-content:center;gap:10px;padding:7px 14px;padding-top:calc(7px + env(safe-area-inset-top,0px));padding-left:calc(14px + env(safe-area-inset-left));padding-right:calc(14px + env(safe-area-inset-right));font-size:13px;font-weight:600;color:#7a4a06;background:#fff3e0;border-bottom:1px solid rgba(246,122,10,.25)}
/* Каркас чата — grid с явными строками: без этого плашка auto-placement'ом
   уезжала в конец (низ экрана). Выделяем ей первую строку. */
.v3-chat-shell:has(> .v3-offline-bar){grid-template-rows:auto auto minmax(0,1fr)}
.v3-chat-shell > .v3-offline-bar{grid-row:1;grid-column:1}
.v3-chat-shell:has(> .v3-offline-bar) .v3-top{grid-row:2}
.v3-chat-shell:has(> .v3-offline-bar) .v3-main{grid-row:3}
.v3-chat-shell:has(> .v3-offline-bar)>.v3-bottom{grid-row:4}
.v3-offline-bar button{flex:none;border:0;border-radius:var(--r-pill, 999px);padding:4px 12px;font-size:12px;font-weight:700;color:#fff;background:var(--orange, #f67a0a);cursor:pointer}
.v3-offline-bar button:active{transform:scale(.96)}
html[data-v3-theme="dark"] .v3-offline-bar{color:#ffcf99;background:#3a2a14;border-bottom-color:rgba(246,122,10,.35)}
