/* NodeForge · мобильная версия: нижняя панель, безопасные зоны, крупные цели нажатия. */
#nf-tabbar{display:none}
@media (max-width:860px){
  html{-webkit-text-size-adjust:100%}
  body{overscroll-behavior-y:none}
  .mobile-header{padding-top:calc(var(--sp-3) + env(safe-area-inset-top))}
  .page-wrap{margin-top:calc(60px + env(safe-area-inset-top))}
  body.has-tabbar .page-wrap{padding-bottom:calc(84px + env(safe-area-inset-bottom))}
  #nf-tabbar{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:29;
    padding:var(--sp-2) var(--sp-2) calc(var(--sp-2) + env(safe-area-inset-bottom));gap:var(--sp-1);
    background:var(--bg-2);border-top:1px solid var(--border);
  }
  #nf-tabbar a,#nf-tabbar button{
    flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    padding:var(--sp-2) var(--sp-1);min-height:52px;border-radius:var(--r-md);border:0;background:transparent;box-shadow:none;
    color:var(--text-muted);font:inherit;font-size:var(--fs-xs);font-weight:600;text-decoration:none;cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }
  #nf-tabbar svg{width:22px;height:22px;flex:none}
  #nf-tabbar a.on{color:var(--accent);background:var(--accent-muted)}
  #nf-tabbar a:active,#nf-tabbar button:active{transform:scale(.95)}
  body.sidebar-open #nf-tabbar{z-index:20}
  #nf-tabbar .nf-ti{position:relative;display:inline-flex}
  .nf-tdot{position:absolute;top:-3px;right:-5px;width:9px;height:9px;border-radius:50%;
    background:var(--warn,#ebbd77);border:2px solid var(--bg-2);box-sizing:content-box}
  .nf-tdot[data-lvl="err"]{background:var(--err,#ee8b92)}
  .nf-tdot[hidden]{display:none}
  body.sidebar-open #nf-tab-menu{color:var(--accent);background:var(--accent-muted)}

  /* крупные цели нажатия, шрифт полей не меньше 16px (иначе iOS приближает страницу при фокусе) */
  button,.btn,.btn-sm{min-height:40px}
  input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:var(--fs-lg) !important;min-height:44px}
  .mobile-menu-btn{padding:0;width:42px;height:42px}
  .mobile-menu-btn svg{flex:none;width:20px;height:20px}
  .sidebar{width:min(86vw,320px);padding-bottom:env(safe-area-inset-bottom)}
  .modal-card{width:calc(100vw - 24px) !important;max-width:none !important;max-height:88vh;overflow:auto}
  .row{flex-wrap:wrap}
  .row>*{flex:1 1 100%}
  .page-heading{align-items:flex-start}
  h1{font-size:var(--fs-xl)}
  .stat .n{font-size:var(--fs-2xl)}
  img,svg,video,canvas{max-width:100%}
  .page-wrap{max-width:100vw;overflow-x:clip}
  button,.btn{max-width:100%}
  .btn-sm{white-space:normal}
  .refresh{flex-wrap:wrap}
  .status-strip{flex-wrap:wrap}
  pre,code{overflow-x:auto;max-width:100%}
}

/* оформление ZIPKA на телефоне */
@media (max-width:860px){
  html[data-skin="zipka"] #nf-tabbar{background:var(--bg-2);border-top:2px solid var(--border)}
  html[data-skin="zipka"] #nf-tabbar a,html[data-skin="zipka"] #nf-tabbar button{border-radius:999px}
  html[data-skin="zipka"] #nf-tabbar a.on{background:var(--zp-lime);color:var(--zp-ink);box-shadow:none}
  html[data-skin="zipka"] .mobile-header{background:var(--bg-2) !important;border-bottom:2px solid var(--border)}
}

@media (max-width:860px){
  html[data-skin="zipka"] .mobile-header .sidebar-brand>span{background:#0d1210 url(/static/zipka-mark.svg) center/18px no-repeat !important;border:2px solid var(--zp-lime) !important;border-radius:var(--r) !important;width:30px !important;height:30px !important}
  html[data-skin="zipka"] .mobile-header .sidebar-brand>span svg{display:none}
  html[data-skin="zipka"] .mobile-header .sidebar-brand{font-family:var(--font-display);letter-spacing:-.02em}
  html[data-skin="zipka"] .mobile-menu-btn{border-radius:999px}
}

/* список нод на телефоне: карточки вместо широкой таблицы (подписи берём из data-label) */
@media (max-width:860px){
  .node-table-wrap{overflow:visible !important}
  table.node-table,.node-table tbody,.node-table tr,.node-table td{display:block;width:auto !important;white-space:normal}
  .node-table colgroup,.node-table thead{display:none}
  .node-table tr.node-row{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-3) var(--sp-4);margin:0 0 var(--sp-3)}
  .node-table td{border:0 !important;padding:var(--sp-2) 0 !important;background:transparent !important}
  .node-table td[data-label]::before{content:attr(data-label);display:block;font-size: var(--fs-xs);font-weight:700;letter-spacing:.09em;
    text-transform:uppercase;color:var(--text-dim);margin-bottom:3px}
  .node-table td[data-label="Нода"]::before,.node-table td[data-label="Действия"]::before{display:none}
  .node-table td.nc-act{display:flex;flex-wrap:wrap;gap:var(--sp-2);padding-top:var(--sp-3) !important;border-top:1px solid var(--border-subtle) !important;margin-top:var(--sp-1)}
  html[data-skin="zipka"] .node-table tr.node-row{border:2px solid var(--border);box-shadow:3px 3px 0 var(--zp-hard)}
}

/* 2026-10-26 · дизайн-проход: нижняя панель, цели нажатия, мелкие шрифты */
@media (max-width:860px){
  #nf-tabbar{padding:var(--sp-2) var(--sp-1) calc(var(--sp-2) + env(safe-area-inset-bottom));gap:2px}
  #nf-tabbar a,#nf-tabbar button{padding:var(--sp-2) 0;font-size:var(--fs-xs);letter-spacing:-.02em;line-height:1.15;white-space:nowrap}
  #nf-tabbar a>span:last-child,#nf-tabbar button>span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis}
  html[data-skin="zipka"] #nf-tabbar a,html[data-skin="zipka"] #nf-tabbar button{border-radius:var(--r-lg)}
  summary{padding-top:var(--sp-3);padding-bottom:var(--sp-3)}
  .logout-link,.dev-chip,.link-btn{display:inline-flex;align-items:center;min-height:36px}
  .recon-col .dim{font-size:var(--fs-xs) !important}
  .sidebar-brand-text small{font-size:var(--fs-xs)}
}

/* 2026-10-29 · главная на телефоне: карточка ноды свёрнута до главного (dashboard.html toggleMore); десктоп — в dashboard.css */
@media (max-width:860px){
  .node-table .nc-more{display:flex;width:100%;align-items:center;justify-content:center;min-height:40px;
    margin:0;border-radius:var(--r-md);border:1px dashed var(--border);background:transparent;box-shadow:none;
    color:var(--text-muted);font:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer}
  .node-table tr.node-row.attention .nc-more{display:none}
  #nodes-list:not(.nodes-full) tr.node-row:not(.m-open):not(.attention) td[data-label="Подключение"]{display:none}
  .nodes-full .node-table .nc-more{display:none}
}

/* 2026-10-29 · не обрезать многоточием то, что на телефоне важно прочитать целиком */
@media (max-width:860px){
  .node-table .nc-sub{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
  .st-card .f b{white-space:normal;overflow:visible;overflow-wrap:anywhere}
  .hn>summary .hn-cur{white-space:normal;overflow:visible}
}
@media (max-width:760px){html[data-skin] h1,h1{font-size:var(--fs-xl)}}
