.mainTab.flrTab{width:58px;color:#fff;font-size:17px;font-weight:950;letter-spacing:.02em}
.flrPage{min-height:calc(100vh - 54px);padding:14px;background:linear-gradient(150deg,var(--vinci),#001d3d);color:#061526}
.flrShell{width:min(940px,100%);margin:0 auto;display:grid;gap:14px}
.flrCard{background:#fff;border-radius:17px;padding:15px;box-shadow:0 10px 28px rgba(0,0,0,.22)}
.flrHead{display:flex;align-items:center;gap:10px}
.flrHead h1,.flrCard h2{margin:0;color:var(--vinci)}
.flrHead h1{font-size:25px;font-weight:950}
.flrBeta{margin-left:auto;background:#fff3cd;color:#7c5700;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:950}
.flrLead{margin:8px 0 0;color:#475569;font-size:13px;line-height:1.45}
.flrNotice{margin-top:11px;padding:10px 12px;border:1px solid #f59e0b;border-radius:11px;background:#fffbeb;color:#7c5700;font-size:12px;font-weight:800;line-height:1.4}
.flrActions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}
.flrAction{min-height:58px;border-radius:13px;font-size:15px;font-weight:950}
.flrAction.secondary{background:#0f766e}
.flrAction.full{grid-column:1/-1;background:#475569}
.flrDemo{width:100%;margin-top:9px;background:#334155}
.flrSectionTitle{margin:0 0 9px;color:var(--vinci);font-size:16px;font-weight:950}
.flrEmpty{padding:15px;border:1px dashed #94a3b8;border-radius:12px;background:#f8fafc;color:#64748b;text-align:center;font-size:13px}
.flrSiteList{display:grid;gap:8px}
.flrSite{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:center;padding:11px;border:1px solid #cbd5e1;border-radius:12px;background:#f8fafc}
.flrSiteName{font-size:14px;font-weight:950;color:#0f172a}
.flrSiteMeta{margin-top:3px;color:#64748b;font-size:11px;font-weight:750}
.flrSiteBtns{display:flex;gap:6px}
.flrSiteBtns button{padding:8px 9px;border-radius:9px;font-size:11px}
.flrSession{display:none}
.flrSession.show{display:grid;gap:14px}
.flrHome.hidden{display:none}
.flrSessionTop{display:flex;align-items:flex-start;gap:10px}
.flrSessionTop h2{font-size:20px}
.flrCode{display:inline-flex;align-items:center;gap:7px;margin-top:5px;padding:5px 8px;border-radius:8px;background:#e0f2fe;color:#075985;font-size:12px;font-weight:950}
.flrCopy{padding:4px 7px;border-radius:6px;font-size:10px}
.flrLive{margin-left:auto;display:flex;align-items:center;gap:6px;color:#475569;font-size:11px;font-weight:850}
.flrLiveDot{width:10px;height:10px;border-radius:50%;background:#f59e0b;box-shadow:0 0 0 3px #fef3c7}
.flrLive.online .flrLiveDot{background:#16a34a;box-shadow:0 0 0 3px #dcfce7}
.flrLive.offline .flrLiveDot{background:#dc2626;box-shadow:0 0 0 3px #fee2e2}
.flrIdentity{margin-top:10px;padding:9px 11px;border-radius:10px;background:#eef2ff;color:#3730a3;font-size:12px;font-weight:850}
.flrToolbar{display:flex;flex-wrap:wrap;gap:8px;margin-top:11px}
.flrToolbar button{padding:9px 10px;border-radius:9px;font-size:11px}
.flrToolbar .danger{margin-left:auto;background:#b91c1c}
.flrToolbar .quit{background:#475569}
.flrConvoy{display:grid;gap:0}
.flrMember{position:relative;display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px;border:1px solid #cbd5e1;border-radius:12px;background:#fff}
.flrMember.stale{opacity:.62;background:#f8fafc}
.flrRoleIcon{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;background:#003a70;color:#fff;text-align:center;font-size:10px;font-weight:950;line-height:1.05}
.flrRoleIcon.presignal{background:#c2410c}.flrRoleIcon.warning{background:#b45309}.flrRoleIcon.position{background:#0f766e}.flrRoleIcon.work{background:#475569}
.flrMemberTitle{font-size:13px;font-weight:950;color:#0f172a}
.flrMemberSub{margin-top:3px;color:#64748b;font-size:11px;font-weight:750}
.flrMemberPk{text-align:right;color:#003a70;font-size:17px;font-weight:950}
.flrMemberSpeed{text-align:right;color:#475569;font-size:11px;font-weight:850}
.flrFresh{margin-top:3px;text-align:right;color:#64748b;font-size:9px}
.flrGap{width:min(360px,88%);margin:4px auto;padding:6px 10px;border-radius:999px;background:#e2e8f0;color:#475569;text-align:center;font-size:11px;font-weight:950}
.flrGap.good{background:#dcfce7;color:#166534}.flrGap.near{background:#fef3c7;color:#92400e}.flrGap.bad{background:#fee2e2;color:#991b1b}.flrGap.unknown{background:#e2e8f0;color:#64748b}
.flrRadarHead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}
.flrRadarContext{color:#64748b;font-size:11px;font-weight:850}
.flrRadarWrap{max-width:480px;margin:0 auto}
.flrRadarWrap .shadowRadar{height:178px}
.flrModalShade{position:fixed;inset:0;z-index:4600;display:none;align-items:center;justify-content:center;padding:16px;background:rgba(0,0,0,.72)}
.flrModalShade.show{display:flex}
.flrDialog{width:min(500px,100%);max-height:92vh;overflow:auto;padding:18px;background:#fff;color:#0f172a;border-radius:18px;box-shadow:0 24px 80px rgba(0,0,0,.5)}
.flrDialogHead{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.flrDialogHead h2{margin:0;color:#003a70;font-size:20px}
.flrDialogClose{margin-left:auto;padding:8px 10px;border-radius:9px;background:#475569;font-size:11px}
.flrForm{display:grid;gap:10px}
.flrForm label{display:block;margin-bottom:4px;color:#334155;font-size:11px;font-weight:950}
.flrForm input,.flrForm select{margin:0;background:#f1f5f9;color:#0f172a;border:1px solid #cbd5e1}
.flrFormGrid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.flrSubmit{width:100%;margin-top:4px;font-size:15px}
.flrHelp{margin:0;color:#64748b;font-size:11px;line-height:1.4}
.flrPdfViewer{position:fixed;inset:0;z-index:5000;display:none;flex-direction:column;background:#1f2937}
.flrPdfViewer.show{display:flex}
.flrPdfBar{min-height:58px;padding:8px 10px;display:flex;align-items:center;gap:9px;background:#003a70;color:#fff}
.flrPdfBar button{padding:9px 11px;border-radius:9px;background:#fff;color:#003a70;font-size:11px;font-weight:950}
.flrPdfBarTitle{min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;font-weight:900}
.flrPdfBody{flex:1;min-height:0;overflow:auto;padding:12px;background:#e2e8f0}
.flrPdfList{width:min(760px,100%);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.flrPdfItem{display:flex;align-items:center;gap:8px;padding:11px;border:0;border-radius:11px;background:#fff;color:#003a70;text-align:left;font-size:12px;font-weight:900;box-shadow:0 2px 6px rgba(0,0,0,.12)}
.flrPdfItem span{display:block;color:#64748b;font-size:9px}
.flrPdfFrame{display:none;width:100%;height:100%;border:0;background:#d1d5db}
.flrPdfViewer.reading .flrPdfBody{display:none}
.flrPdfViewer.reading .flrPdfFrame{display:block;flex:1;min-height:0}
.flrPdfViewer:not(.reading) #flrPdfBack{display:none}
@media(max-width:949px){
  .flrPage{min-height:calc(100vh - 48px);padding:9px}
  .mainTab.flrTab{width:48px;font-size:15px}
}
@media(max-width:620px){
  .flrActions,.flrFormGrid{grid-template-columns:1fr}
  .flrAction.full{grid-column:auto}
  .flrSite{grid-template-columns:1fr}
  .flrSiteBtns button{flex:1}
  .flrMember{grid-template-columns:45px minmax(0,1fr)}
  .flrRoleIcon{width:42px;height:42px}
  .flrMemberStats{grid-column:2;text-align:left}
  .flrMemberPk,.flrMemberSpeed,.flrFresh{text-align:left}
  .flrToolbar .danger{margin-left:0}
  .flrPdfList{grid-template-columns:1fr}
}
@media(max-width:380px){
  .mainTab.flrTab{width:43px;font-size:14px}
}
