/* Bio2Twin | Blood Upload UI V2 | standalone design rules
   Isolated to body.b2t-blood-upload-ui. No effect on other seven-app routes. */
body.b2t-blood-upload-ui {
 --blood-ui-bg:#0c1016;
 --blood-ui-copy:#eff2f8;
 --blood-ui-muted:#aeb9c9;
 --blood-ui-pink:#ef4b74;
 --blood-ui-orange:#e8a044;
 --blood-ui-violet:#a074f0;
 --blood-ui-blue:#489df5;
}
body.b2t-blood-upload-ui .workspace{background:transparent}
body.b2t-blood-upload-ui .app-head{margin-bottom:20px}
body.b2t-blood-upload-ui .app-head h1{font-size:clamp(29px,3.4vw,40px);font-weight:400;color:#f6f7fa}
body.b2t-blood-upload-ui .eyebrow{color:var(--blood-ui-pink);font-size:10px;letter-spacing:.18em}
body.b2t-blood-upload-ui .app-subtitle{font-size:14px;color:var(--blood-ui-muted)}
body.b2t-blood-upload-ui .metric-chip{
 border:1px solid #435067;background:#101622;border-radius:13px;
 padding:10px 13px;min-width:98px;min-height:55px;box-sizing:border-box;
}
body.b2t-blood-upload-ui .metric-chip:nth-child(1){border-color:#804054}
body.b2t-blood-upload-ui .metric-chip:nth-child(2){border-color:#78603f}
body.b2t-blood-upload-ui .metric-chip:nth-child(3){border-color:#634783}
body.b2t-blood-upload-ui .metric-chip small{font-size:10px;color:#acb9c8;letter-spacing:.06em}
body.b2t-blood-upload-ui .metric-chip b{font-size:13px;font-weight:400;color:#f4f6f9}
body.b2t-blood-upload-ui .subnav{
 border:1px solid #3a475b;border-radius:17px;
 background:linear-gradient(105deg,#0d121c,#111925);padding:5px;
}
body.b2t-blood-upload-ui .subnav button{font-size:12px;font-weight:400;color:#adb7c8}
body.b2t-blood-upload-ui .subnav button.active{
 background:#22304b;border:1px solid #6886b7;color:#f6f8ff;box-shadow:0 0 13px #31558b26
}
body.b2t-blood-upload-ui #content{gap:15px}
body.b2t-blood-upload-ui .blood-v2{display:grid;gap:16px;min-width:0;width:100%}
body.b2t-blood-upload-ui .blood-v2-summary{
 position:relative;overflow:hidden;border:1px solid transparent;border-radius:21px;
 background:
  radial-gradient(ellipse at 68% 0%,#a72a4a32,transparent 54%) padding-box,
  linear-gradient(110deg,#171720,#0d1520 88%) padding-box,
  linear-gradient(105deg,#b83b5f,#815281,#2c7cb2) border-box;
 padding:23px 25px;min-height:150px;box-sizing:border-box;
 display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.7fr);
 gap:23px;align-items:center;
}
body.b2t-blood-upload-ui .blood-v2-copy{position:relative;min-width:0}
body.b2t-blood-upload-ui .blood-v2-copy small{
 display:block;color:#adbad0;font-size:10px;letter-spacing:.17em;font-weight:400
}
body.b2t-blood-upload-ui .blood-v2-copy h2{
 font-weight:400;color:#f3f4f9;line-height:1.35;font-size:clamp(21px,2.5vw,27px);
 margin:12px 0 9px
}
body.b2t-blood-upload-ui .blood-v2-copy p{
 font-size:13px;color:#adb8c9;line-height:1.75;margin:0
}
body.b2t-blood-upload-ui .blood-v2-states{
 border-left:1px solid #60708451;padding-left:19px;
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
 gap:9px;align-items:stretch;
}
body.b2t-blood-upload-ui .blood-v2-states .blood-v2-mini{
 border:1px solid #465067;background:#0b111cb8;
 border-radius:12px;min-height:58px;box-sizing:border-box;padding:10px 13px;
 display:flex;flex-direction:column;justify-content:center;min-width:0
}
body.b2t-blood-upload-ui .blood-v2-mini:nth-child(1){border-color:#804259}
body.b2t-blood-upload-ui .blood-v2-mini:nth-child(2){border-color:#74563a}
body.b2t-blood-upload-ui .blood-v2-mini:nth-child(3){border-color:#335a87;grid-column:span 2}
body.b2t-blood-upload-ui .blood-v2-mini span{color:#9eacc0;font-size:10px}
body.b2t-blood-upload-ui .blood-v2-mini strong{
 margin-top:4px;color:#eef1f8;font-weight:400;font-size:13px
}
body.b2t-blood-upload-ui #bloodUploadLive.blood-upload-live{
 box-sizing:border-box;width:100%;max-width:none;margin:0;min-width:0;
 display:grid;
 grid-template-columns:minmax(0,1.53fr) minmax(245px,.83fr);
 grid-template-areas:
  "head process"
  "drop process"
  "selected process"
  "actions process"
  "state process"
  "error error"
  "review review";
 align-items:start;gap:12px 24px;
 padding:24px 26px!important;
 border:1px solid transparent;border-radius:20px;
 background:
  radial-gradient(ellipse at 95% 2%,#67309425,transparent 60%) padding-box,
  linear-gradient(140deg,#101722,#0c121b) padding-box,
  linear-gradient(120deg,#ba7636,#50617c,#8d5cbb) border-box;
}
body.b2t-blood-upload-ui #bloodUploadLive .upload-live-head{
 grid-area:head;min-width:0;display:flex;flex-direction:column;
 align-items:flex-start;justify-content:start;gap:5px;margin:0!important
}
body.b2t-blood-upload-ui #bloodUploadLive .upload-live-head small{
 color:#a5b4c9;font-size:10px;letter-spacing:.15em
}
body.b2t-blood-upload-ui #bloodUploadLive .upload-live-head h3{
 font-size:clamp(19px,2.1vw,24px);font-weight:400;
 line-height:1.4;color:#f0f2f8;margin:5px 0 1px
}
body.b2t-blood-upload-ui #bloodUploadLive .upload-live-head p{
 margin:0;font-size:12px;line-height:1.68;color:#adbacb;max-width:680px
}
body.b2t-blood-upload-ui #bloodUploadLive .pipeline-badge{
 border:1px solid #455975;border-radius:999px;color:#b1c2d8;
 font-size:10px;letter-spacing:0;margin-top:4px;padding:5px 9px
}
body.b2t-blood-upload-ui #bloodUploadLive .lab-drop{
 grid-area:drop;box-sizing:border-box;width:100%;min-height:148px!important;height:auto!important;
 border-radius:15px;border:1px dashed #63728a;
 background:radial-gradient(ellipse at 50% 0%,#d6447930,transparent 75%),#0c1320;
 padding:15px 16px!important;
 display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px
}
body.b2t-blood-upload-ui #bloodUploadLive .lab-drop:hover,
body.b2t-blood-upload-ui #bloodUploadLive .lab-drop.dragover{
 border-color:#eb658d;background:#231322
}
body.b2t-blood-upload-ui #bloodUploadLive .lab-drop-icon{
 display:grid;place-items:center;flex:none;
 width:42px;height:42px;border-radius:50%;
 margin:0 0 3px;font-size:24px;color:#ff6b97;
 border:1px solid #8e4763;background:#261721
}
body.b2t-blood-upload-ui #bloodUploadLive .lab-drop b{
 font-size:15px;font-weight:400;color:#f4f5f7
}
body.b2t-blood-upload-ui #bloodUploadLive .lab-drop small{
 font-size:11px;line-height:1.5;color:#9dabbd;letter-spacing:0
}
body.b2t-blood-upload-ui #bloodUploadLive .blood-upload-process{
 grid-area:process;box-sizing:border-box;min-width:0;height:100%;
 border-left:1px solid #55617a67;padding:3px 0 5px 23px
}
body.b2t-blood-upload-ui #bloodUploadLive .blood-upload-process h4{
 font-size:18px;font-weight:400;line-height:1.5;color:#f0f1f7;margin:0 0 18px
}
body.b2t-blood-upload-ui #bloodUploadLive .blood-upload-process ol{
 list-style:none;padding:0;margin:0;display:grid;gap:17px
}
body.b2t-blood-upload-ui #bloodUploadLive .blood-upload-process li{
 display:grid;grid-template-columns:36px minmax(0,1fr);
 gap:12px;align-items:start;position:relative;min-height:57px
}
body.b2t-blood-upload-ui #bloodUploadLive .blood-upload-process li:not(:last-child):after{
 content:"";position:absolute;left:17px;top:39px;bottom:-17px;width:1px;background:#4b5068
}
body.b2t-blood-upload-ui #bloodUploadLive .process-num{
 display:grid;place-items:center;box-sizing:border-box;
 width:36px;height:36px;border:1px solid #ef4f79;border-radius:50%;
 background:#281b29;color:#ff95b2;font-size:15px
}
body.b2t-blood-upload-ui #bloodUploadLive .blood-upload-process li:nth-child(2) .process-num{
 border-color:#db9a42;background:#2d221a;color:#ffc174
}
body.b2t-blood-upload-ui #bloodUploadLive .blood-upload-process li:nth-child(3) .process-num{
 border-color:#a272e4;background:#281d36;color:#c9a6fc
}
body.b2t-blood-upload-ui #bloodUploadLive .blood-upload-process strong{
 display:block;font-size:14px;font-weight:400;color:#edf0f6;margin:2px 0 6px
}
body.b2t-blood-upload-ui #bloodUploadLive .blood-upload-process p{
 font-size:11px;line-height:1.64;color:#a7b3c4;margin:0
}
body.b2t-blood-upload-ui #bloodUploadLive .lab-selected{
 grid-area:selected;margin:0;min-width:0;grid-template-columns:repeat(2,minmax(0,1fr))
}
body.b2t-blood-upload-ui #bloodUploadLive .lab-selected[hidden],
body.b2t-blood-upload-ui #bloodUploadLive [hidden]{display:none!important}
body.b2t-blood-upload-ui #bloodUploadLive .lab-actions{
 grid-area:actions;align-self:center;min-width:0;gap:9px;margin:1px 0 0!important
}
body.b2t-blood-upload-ui #bloodUploadLive .lab-actions .btn{
 box-sizing:border-box;min-height:40px;padding:9px 13px;
 border:1px solid #49586f;border-radius:11px;
 background:#151d2a;color:#e4eaf6;font-size:12px;font-weight:400
}
body.b2t-blood-upload-ui #bloodUploadLive .lab-actions #labUploadBtn:not(:disabled){
 background:linear-gradient(110deg,#ed4a70,#b33f8a);border-color:#fb7e9c;color:#fff;
 box-shadow:0 4px 17px #bd325b2b
}
body.b2t-blood-upload-ui #bloodUploadLive .lab-actions #labUploadBtn:disabled{
 opacity:.46;cursor:not-allowed
}
body.b2t-blood-upload-ui #bloodUploadLive .lab-state{
 grid-area:state;font-size:11px;line-height:1.6;color:#a5b0c1;
 min-width:0;margin:0!important;overflow-wrap:anywhere
}
body.b2t-blood-upload-ui #bloodUploadLive .lab-error{grid-area:error;min-width:0}
body.b2t-blood-upload-ui #bloodUploadLive .lab-review{grid-area:review;min-width:0}
body.b2t-blood-upload-ui .blood-v2 .disclaimer{
 font-size:10px;line-height:1.65;color:#778497;margin:1px 0 0
}
@media(max-width:940px){
 body.b2t-blood-upload-ui .blood-v2-summary{
  grid-template-columns:minmax(0,1fr) minmax(260px,.7fr);gap:15px;padding:20px
 }
 body.b2t-blood-upload-ui #bloodUploadLive.blood-upload-live{
  grid-template-columns:minmax(0,1fr) minmax(220px,.86fr);gap:12px 17px;padding:20px!important
 }
 body.b2t-blood-upload-ui #bloodUploadLive .blood-upload-process{padding-left:17px}
}
@media(max-width:760px){
 body.b2t-blood-upload-ui .app-head{flex-direction:column;align-items:flex-start;gap:12px}
 body.b2t-blood-upload-ui .head-metrics{width:100%;justify-content:flex-start}
 body.b2t-blood-upload-ui .metric-chip{flex:1;min-width:0}
 body.b2t-blood-upload-ui .blood-v2-summary{
  display:block;min-height:0;padding:18px 16px;border-radius:17px
 }
 body.b2t-blood-upload-ui .blood-v2-copy h2{font-size:21px}
 body.b2t-blood-upload-ui .blood-v2-states{
  border-left:0;border-top:1px solid #56647a52;padding:13px 0 0;margin-top:16px
 }
 body.b2t-blood-upload-ui #bloodUploadLive.blood-upload-live{
  display:flex;flex-direction:column;gap:13px;
  padding:18px 15px!important;border-radius:17px
 }
 body.b2t-blood-upload-ui #bloodUploadLive .upload-live-head{order:0}
 body.b2t-blood-upload-ui #bloodUploadLive .lab-drop{order:1;min-height:118px!important;width:100%}
 body.b2t-blood-upload-ui #bloodUploadLive .lab-selected{order:2;width:100%;grid-template-columns:1fr}
 body.b2t-blood-upload-ui #bloodUploadLive .lab-actions{order:3;width:100%;gap:7px}
 body.b2t-blood-upload-ui #bloodUploadLive .lab-state{order:4}
 body.b2t-blood-upload-ui #bloodUploadLive .blood-upload-process{
  order:5;width:100%;height:auto;border-left:0;
  border-top:1px solid #55647a61;padding:15px 0 1px
 }
 body.b2t-blood-upload-ui #bloodUploadLive .blood-upload-process h4{font-size:16px}
 body.b2t-blood-upload-ui #bloodUploadLive .blood-upload-process ol{gap:11px}
 body.b2t-blood-upload-ui #bloodUploadLive .lab-error{order:6}
 body.b2t-blood-upload-ui #bloodUploadLive .lab-review{order:7}
}
@media(prefers-reduced-motion:reduce){
 body.b2t-blood-upload-ui #bloodUploadLive .lab-drop{transition:none}
}


/* B2T ABBOTT LIBRE | unified upload page component */
body.b2t-blood-upload-ui #bloodLibreBox.blood-libre-entry{
 display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:22px;align-items:start;
 box-sizing:border-box;min-width:0;padding:22px 25px;border:1px solid transparent;border-radius:20px;
 background:linear-gradient(125deg,#151923,#0b1420) padding-box,linear-gradient(115deg,#ae753c,#77638e,#3986be) border-box;
}
body.b2t-blood-upload-ui .blood-libre-copy{min-width:0}
body.b2t-blood-upload-ui .blood-libre-copy small{color:#eeb06f;font-size:10px;letter-spacing:.15em}
body.b2t-blood-upload-ui .blood-libre-copy h3{margin:12px 0 9px;color:#f5f6fb;font-size:21px;font-weight:400;line-height:1.4}
body.b2t-blood-upload-ui .blood-libre-copy p{margin:0;color:#a9b7cb;font-size:13px;line-height:1.75}
body.b2t-blood-upload-ui #bloodLibreForm{min-width:0}
body.b2t-blood-upload-ui .blood-libre-drop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;gap:6px;text-align:center;min-height:128px;padding:14px;width:100%;border:1px dashed #a48662;border-radius:14px;background:#0c1420;cursor:pointer}
body.b2t-blood-upload-ui .blood-libre-drop:hover{border-color:#efa85c;background:#201a20}
body.b2t-blood-upload-ui .blood-libre-drop>span{display:grid;place-items:center;font-size:22px;color:#e3a15f;width:36px;height:36px;border-radius:50%;border:1px solid #926a45}
body.b2t-blood-upload-ui .blood-libre-drop strong{font-size:14px;font-weight:400;color:#eef0f6}
body.b2t-blood-upload-ui .blood-libre-drop small{font-size:11px;line-height:1.5;color:#9dabc0}
body.b2t-blood-upload-ui #bloodLibreFile{position:absolute;width:1px;height:1px;opacity:0}
body.b2t-blood-upload-ui .blood-libre-actions{display:flex;gap:9px;flex-wrap:wrap;margin:9px 0}
body.b2t-blood-upload-ui .blood-libre-actions .btn{font-size:12px;min-height:38px;padding:8px 13px}
body.b2t-blood-upload-ui #bloodLibreSend:not(:disabled),body.b2t-blood-upload-ui #bloodLibreConfirm:not(:disabled){background:linear-gradient(115deg,#b67839,#945383);border-color:#de9d69;color:#fff}
body.b2t-blood-upload-ui #bloodLibreSelected,body.b2t-blood-upload-ui #bloodLibreStatus{font-size:11px;color:#aebbcf;line-height:1.65;margin:8px 0;overflow-wrap:anywhere}
body.b2t-blood-upload-ui #bloodLibreReview{border-top:1px solid #344153;margin-top:12px;padding-top:12px}
body.b2t-blood-upload-ui #bloodLibreReview h4{font-size:16px;font-weight:400;margin:0 0 10px}
body.b2t-blood-upload-ui #bloodLibreItems .libre-review-row{display:flex;gap:10px;padding:9px;margin:6px 0;border:1px solid #354255;border-radius:9px;color:#e4eaf4;font-size:12px;line-height:1.5}
body.b2t-blood-upload-ui #bloodLibreItems input{accent-color:#bb834c}
body.b2t-blood-upload-ui #bloodLibreReview[hidden]{display:none!important}
@media(max-width:760px){body.b2t-blood-upload-ui #bloodLibreBox.blood-libre-entry{grid-template-columns:minmax(0,1fr);gap:14px;padding:16px;border-radius:16px}body.b2t-blood-upload-ui .blood-libre-copy h3{font-size:19px}body.b2t-blood-upload-ui .blood-libre-drop{min-height:115px}}



body.b2t-blood-upload-ui .blood-source-tabs{
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;
}
body.b2t-blood-upload-ui .blood-source-tabs button{
 cursor:pointer;text-align:left;min-height:52px;border:1px solid #455369;
 border-radius:12px;padding:11px 17px;background:#111825;
 color:#c5cfde;font-size:14px;font-weight:400;
}
body.b2t-blood-upload-ui .blood-source-tabs button:hover{border-color:#a381ad;background:#1d2331}
body.b2t-blood-upload-ui .blood-source-tabs button[aria-selected="true"]{
 color:#fff;background:linear-gradient(105deg,#351e32,#1a2131);
 border-color:#d677a5;
}
body.b2t-blood-upload-ui .blood-source-tabs button:focus-visible{outline:2px solid #e5a5c2;outline-offset:2px}
body.b2t-blood-upload-ui #bloodLabPane[hidden],
body.b2t-blood-upload-ui #bloodLibrePane[hidden]{display:none!important}
body.b2t-blood-upload-ui #bloodLabPane,body.b2t-blood-upload-ui #bloodLibrePane{min-width:0}
@media(max-width:600px){body.b2t-blood-upload-ui .blood-source-tabs{gap:7px}body.b2t-blood-upload-ui .blood-source-tabs button{font-size:12px;min-height:46px;padding:9px 11px}}
