/* TeamGuide — навигационный остров (телефон и планшет): кнопки действий с подписями + «+» в центре.
   Состав выбирает сам сотрудник («Настроить остров»). 2.0: «док» — светлая капсула с размытием фона,
   выбранный пункт — инверсия (--tg-fg / --tg-bg), «+» — акцент. */
.island{position:fixed;left:12px;right:12px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:800;margin:0 auto;max-width:440px;
  display:flex;flex-direction:column;align-items:stretch;padding:6px 8px;border-radius:34px;background:var(--tg-dock);color:var(--tg-fg);border:1px solid var(--tg-line);box-shadow:var(--tg-shadow-pop);
  -webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);
  transition:transform .28s var(--ease),opacity .28s var(--ease),border-radius .2s var(--ease);}
.island.hidden:not(.open){transform:translateY(140%);opacity:0;pointer-events:none;}
.isl-row{display:grid;grid-template-columns:repeat(var(--isl-n,5),minmax(0,1fr));align-items:center;justify-items:center;gap:2px;}
.isl-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:100%;min-width:0;height:54px;padding:0 2px;border-radius:18px;
  color:var(--tg-muted);font:600 11px/1.1 var(--tg-f-ui);transition:background .15s var(--ease),color .15s var(--ease);}
.isl-item:hover{background:var(--tg-s2);color:var(--tg-fg);}
.isl-item.on{color:var(--tg-bg);background:var(--tg-fg);}
.isl-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.isl-ico{position:relative;display:flex;width:22px;height:22px;flex:none;}
.isl-ico svg{width:22px;height:22px;}
.isl-n{position:absolute;top:-6px;left:14px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--tg-bad);color:#fff;font:700 10px/17px var(--tg-f-ui);font-style:normal;text-align:center;}
.isl-plus{flex:none;display:flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:50%;
  background:var(--tg-acc);color:var(--tg-on-acc);transition:transform .15s var(--ease),background .15s;}
.isl-plus:hover{background:var(--tg-acc-strong);}
.isl-plus:active{transform:scale(.94);}
.isl-plus svg{width:24px;height:24px;}

/* раскрытый остров */
.island.open{max-width:560px;border-radius:30px;padding:16px 12px 8px;max-height:calc(100vh - 90px - env(safe-area-inset-top));overflow-y:auto;}
.island.open .isl-row{padding:0 2px;}
.isl-panel{display:flex;flex-direction:column;gap:12px;}
.isl-panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:0 6px;}
.isl-panel-head span:first-child{font-family:var(--tg-f-num);font-weight:300;font-size:19px;letter-spacing:-.01em;}
.isl-panel-head span:last-child{font-size:12px;color:var(--tg-muted);}
.isl-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;}
.isl-act{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:72px;padding:8px 4px;border-radius:16px;
  background:var(--tg-s2);color:var(--tg-fg);font-size:12px;font-weight:600;text-align:center;line-height:1.2;transition:background .15s var(--ease);}
.isl-act:hover,.isl-act:focus-visible{background:var(--tg-s3);}
.isl-act svg{width:22px;height:22px;}
.isl-gt{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--tg-muted);padding:0 6px;margin-top:2px;}
.isl-setup{display:flex;align-items:center;justify-content:center;gap:8px;height:44px;border-radius:22px;border:1px solid var(--tg-line);color:var(--tg-fg);font-size:13.5px;font-weight:600;}
.isl-setup svg{width:18px;height:18px;}
.isl-setup:hover{background:var(--tg-s2);}
.isl-sep{height:1px;background:var(--tg-line);margin:2px 4px 8px;}
body.island-open::after{content:"";position:fixed;inset:0;z-index:790;background:var(--tg-scrim);}
@media (prefers-reduced-motion: reduce){.island{transition:none;}}

/* контент не уходит под остров */
#view{padding-bottom:calc(120px + env(safe-area-inset-bottom));}
.toast{bottom:calc(92px + env(safe-area-inset-bottom));}

/* колокольчик в шапке */
.bell-btn{position:relative;}
.bell-n{position:absolute;top:-4px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:var(--on-accent);font:700 10.5px/18px var(--font-body);text-align:center;}
.side-n{margin-left:auto;min-width:22px;height:20px;padding:0 6px;border-radius:10px;background:var(--accent);color:var(--on-accent);font:700 11px/20px var(--font-body);text-align:center;letter-spacing:0;}
.side-item.active .side-n{background:var(--on-accent);color:var(--accent-dark);}

@media (min-width:1024px){
  #bottomNav{display:none !important;}
  body.island-open::after{display:none;}
  .topbar .bell-btn{display:none;}
}

/* «Настроить остров» (шторка) */
.isl-set{display:flex;flex-direction:column;gap:8px;}
.isl-prev{display:flex;align-items:center;justify-content:space-around;gap:4px;height:64px;padding:0 8px;border-radius:32px;background:var(--tg-s1);color:var(--tg-fg);border:1px solid var(--tg-line);box-shadow:var(--tg-shadow);margin:4px 0 6px;}
.isl-prev span{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10.5px;min-width:0;flex:1;}
.isl-prev span svg{width:20px;height:20px;}
.isl-prev b{font-weight:600;max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.isl-prev i{width:44px;height:44px;border-radius:50%;background:var(--tg-acc);color:var(--tg-on-acc);display:flex;align-items:center;justify-content:center;flex:none;}
.isl-prev i svg{width:20px;height:20px;}
.isl-sec{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);margin-top:8px;}
.isl-list{display:flex;flex-direction:column;gap:4px;}
.isl-li{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 10px;border-radius:12px;background:var(--paper);border:1px solid var(--soft-line);text-align:left;width:100%;color:var(--black);}
.isl-li.on{border-color:var(--accent);}
.isl-li b{flex:1;font-size:14px;font-weight:600;min-width:0;}
.isl-li-ico{width:22px;height:22px;display:flex;color:var(--accent);flex:none;}
.isl-li-ico svg{width:22px;height:22px;}
.isl-add{font-size:12.5px;color:var(--accent);font-weight:600;}
button.isl-li:disabled{opacity:.55;}
button.isl-li:disabled .isl-add{color:var(--muted-2);}
.isl-mini{width:36px;height:36px;border-radius:18px;border:1px solid var(--line);font-size:15px;color:var(--ink);flex:none;}
.isl-mini:disabled{opacity:.35;}
