.rail-main{flex:1 1 0;min-height:0;width:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.staff-layout .rail{min-height:0;max-height:100%;overflow:hidden}
.rail>.brand-icon,.rail-bottom{flex-shrink:0}
.rail-main>.rail-btn,.business-sidebar{flex-shrink:0}
.staff-pinned{margin:0 9px 8px;padding-bottom:8px;border-bottom:1px solid var(--border-color);max-height:180px;overflow-y:auto;flex-shrink:0}
.staff-pinned .contact-row{margin:0;min-height:70px}
.portal-toast{pointer-events:auto;display:flex;align-items:center;gap:12px;text-align:left}
.portal-toast button{min-width:36px;min-height:36px;padding:0;color:inherit;font-size:16px;flex-shrink:0}
#connectionError{margin:5px 0 0;font-size:12px;color:var(--text-secondary)}
#connectionError:empty{display:none}
.staff-layout .rail{width:174px;padding:18px 10px 14px;gap:15px}
.staff-layout .rail>.brand-icon{align-self:flex-start;margin:0 10px}
.staff-layout .rail .rail-btn{width:100%;min-height:44px;display:flex;flex-direction:row;justify-content:flex-start;padding:10px 12px;gap:11px}
.staff-layout .rail .rail-btn span{font-size:13px}
.staff-layout .rail .rail-btn svg{width:20px;height:20px;flex-shrink:0}
.staff-layout .rail-bottom{width:100%;margin-top:0;gap:4px}
.sidebar-label{font-size:11px;color:var(--text-tertiary);padding:20px 12px 8px}
.sidebar-items{display:flex;flex-direction:column;gap:3px}
.sidebar-item{display:flex;align-items:center;text-align:left;gap:11px;min-height:44px;padding:10px 12px;width:100%;border-radius:9px;background:transparent;color:var(--text-secondary);font-size:13px;line-height:1.4}
.sidebar-item:hover{background:var(--bg-hover)}
.sidebar-item.active{background:var(--bg-active);color:var(--accent-1);font-weight:600}
.sidebar-icon{width:20px;flex:0 0 20px;font-size:17px;text-align:center}
.sidebar-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round;display:block}
.robot-pinned{margin:0 9px 8px;padding-bottom:8px;border-bottom:1px solid var(--border-color);flex-shrink:0}
.robot-pinned .contact-row{margin:0;min-height:76px}
.robot-avatar{background:var(--bg-active);color:var(--accent-1);font-size:24px}
.contact-line small{font-size:10px;color:var(--accent-1);background:var(--bg-active);border-radius:4px;padding:2px 5px;flex-shrink:0}
.pin-mark{color:var(--text-tertiary);font-size:19px;padding-right:4px}
#mobileMenuToggle{display:none}
.business-drawer{position:fixed;top:0;left:0;bottom:0;width:min(86vw,320px);background:var(--bg-secondary);border-right:1px solid var(--border-color);z-index:30;display:flex;flex-direction:column;padding:env(safe-area-inset-top) 14px env(safe-area-inset-bottom);box-shadow:var(--shadow-lg)}
.business-drawer>header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:74px;padding:14px 4px;border-bottom:1px solid var(--border-color);flex-shrink:0}
.business-drawer h2{font-size:19px}
.business-drawer header button{width:44px;height:44px;font-size:20px}
.business-drawer .sidebar-items{padding:14px 0;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}
.business-drawer .sidebar-item{min-height:48px;font-size:15px;padding:12px}
.sidebar-backdrop{position:fixed;inset:0;background:rgba(20,25,47,.4);z-index:29;backdrop-filter:blur(2px)}
.links-view{display:flex;flex-direction:column;background:var(--bg-primary);min-width:0}
.links-content{overflow-y:auto;min-height:0;padding:26px 30px;overscroll-behavior:contain}
.links-note{font-size:13px;color:var(--text-secondary);line-height:1.6;margin-bottom:18px}
.customer-links{display:flex;flex-direction:column;gap:12px;max-width:980px}
.customer-link{display:grid;grid-template-columns:150px minmax(0,1fr) 160px;gap:20px;align-items:center;padding:20px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px}
.customer-link h2{font-size:15px;font-weight:600}
.customer-link a{color:var(--accent-1);font-size:14px;line-height:1.6;overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:3px}
.link-speed{display:flex;align-items:center;justify-content:flex-end;gap:12px}
.link-speed output{font-size:13px;white-space:nowrap;color:var(--text-secondary)}
.link-speed output.measured{color:#16806c}
.link-speed output.failed{color:var(--text-secondary)}
.link-speed button{min-height:44px;min-width:60px;border:1px solid var(--border-color);font-size:13px}
#linksStatus{margin-top:16px;line-height:1.6}
@media(max-width:1100px){
  .staff-layout .rail{width:156px;padding:14px 8px}
  .staff-layout .rail .rail-btn,.sidebar-item{padding-left:10px;padding-right:10px;gap:9px}
  .staff-layout .rail .rail-btn span,.sidebar-item{font-size:12px}
  .staff-layout .contacts-pane{width:238px}
  .customer-link{grid-template-columns:100px minmax(0,1fr);gap:12px}
  .customer-link .link-speed{grid-column:2;justify-content:flex-start}
}
@media(min-width:768px) and (max-width:900px){
  .staff-layout .contacts-pane{width:214px}
  .staff-layout .contact-info strong{max-width:126px}
  .staff-layout .contact-row{gap:9px;padding:12px 8px}
  .staff-layout .contact-row>.avatar{width:36px;height:36px;font-size:16px}
  .staff-layout .robot-pinned .avatar{font-size:22px}
  .staff-layout .contact-meta time{font-size:9px}
}
@media(max-width:767px), (max-height:500px) and (max-width:1023px){
  .rail-main{display:contents}
  .staff-layout .rail{width:100%;padding:5px 8px max(5px,env(safe-area-inset-bottom));gap:4px}
  .staff-layout .rail>.brand-icon{display:none}
  .staff-layout .rail .rail-btn{width:auto;flex:1;max-width:100px;min-width:44px;min-height:52px;display:flex;flex-direction:column;justify-content:center;gap:3px;padding:5px 4px}
  .staff-layout .rail .rail-btn span{font-size:11px}
  .staff-layout .rail-bottom{display:contents}
  .business-sidebar{display:none}
  #mobileMenuToggle:not([hidden]){display:flex}
  .staff-layout .contacts-pane{width:100%}
  .staff-layout .contact-info strong{max-width:100%}
  .robot-pinned{margin:0 10px 8px}
  .robot-pinned .contact-row{padding:14px 12px}
  .links-content{padding:20px 16px}
  .customer-link{grid-template-columns:minmax(0,1fr);gap:10px;padding:17px}
  .customer-link .link-speed{grid-column:1;justify-content:space-between;margin-top:4px}
  .customer-link h2{font-size:16px}
  .customer-link a{font-size:14px}
  #refreshLinks{min-height:44px;font-size:13px;border:1px solid var(--border-color);white-space:nowrap}
}
@media(max-height:500px) and (max-width:1023px){
  .staff-layout .rail{padding-top:3px;padding-bottom:max(3px,env(safe-area-inset-bottom))}
  .staff-layout .rail .rail-btn{min-height:44px;padding:3px}
  .staff-layout .rail .rail-btn span{display:none}
  .business-drawer>header{min-height:56px;padding:6px 4px}
}

.binding-badge{flex-shrink:0;padding:2px 6px;border-radius:4px;background:var(--bg-primary);color:var(--text-secondary);font-size:10px;font-weight:400}
.binding-dialog{box-sizing:border-box;width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;margin:auto;padding:30px;border:1px solid var(--border-color);border-radius:16px;background:var(--bg-secondary);color:var(--text-primary);box-shadow:0 18px 70px rgba(28,34,62,.22)}
.binding-dialog::backdrop{background:rgba(27,31,49,.38)}
.binding-dialog h2{font-size:22px;font-weight:600;margin:18px 0 10px}
.binding-dialog p{font-size:14px;line-height:1.8;color:var(--text-secondary);margin:0 0 20px}
.binding-dialog label{display:block;margin-bottom:8px;font-size:14px}
.binding-dialog input{box-sizing:border-box;width:100%;min-height:46px;font-size:16px;border:1px solid var(--border-color);border-radius:9px;background:var(--bg-primary);color:var(--text-primary);padding:11px 12px}
.binding-dialog .binding-close{position:absolute;right:12px;top:10px;width:44px;height:44px;min-height:44px;padding:0;font-size:17px}
.binding-symbol{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:20px;background:#eef0ff;color:#667eea}
.binding-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.binding-actions button{min-height:46px;font-size:14px}
.binding-actions .quiet{border:1px solid var(--border-color)}
.binding-dialog .form-error{margin:8px 0 0;color:var(--error-color,#c64c62);font-size:13px}
.binding-dialog .form-error:empty{display:none}
.keyboard-open .binding-dialog{margin-top:12px;margin-bottom:auto;max-height:calc(var(--app-height,100dvh) - 24px)}
@media(max-width:575px){.binding-dialog{padding:24px}.binding-dialog h2{font-size:20px}.binding-dialog p{font-size:13px}.contact-line .binding-badge{font-size:10px}}
@media(max-height:500px){.binding-dialog{padding:18px}.binding-symbol{display:none}.binding-dialog h2{margin-top:2px}.binding-dialog p{margin-bottom:10px;line-height:1.6}.binding-actions{margin-top:12px}}
