/* ════════════════════════════════════════════════════════════════════════════
   LOAD WORKSPACE (Redesign, Phase 5 step 1) — header, tabs, banners, Overview
   Uses the theme tokens from style.css so light and dark both work.
   ════════════════════════════════════════════════════════════════════════════ */
#ws{display:none;}
body.focus-mode.ws-on #ws{display:block;flex:1 1 100%;min-width:0;height:100%;overflow-y:auto;background:var(--bg);color:var(--text);font-family:var(--font);padding:14px 22px 28px;font-size:13px;}
body.focus-mode.ws-on .layout > .map-area,
body.focus-mode.ws-on .layout > .workspace-area,
body.focus-mode.ws-on .layout > .detail{display:none !important;}
body.ws-on #board-back-btn,body.ws-on #open-map-load-btn{display:none !important;}

#ws .ws-i{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:middle;}
#ws button{font-family:inherit;}
#ws .ws-blue{color:var(--blue);} #ws .ws-muted{color:var(--text3);} #ws .ws-dim{color:var(--text3);}
#ws small{font-size:12px;color:var(--text3);}

/* crumb */
.ws-crumb{display:flex;align-items:center;gap:10px;color:var(--text3);margin-bottom:12px;font-size:12.5px;}
.ws-back{display:inline-flex;align-items:center;gap:6px;background:none;border:0;padding:4px 6px 4px 0;color:var(--text);font-weight:600;font-size:13px;cursor:pointer;border-radius:6px;}
.ws-back:hover{color:var(--blue);}
.ws-back .ws-i{width:16px;height:16px;}
.ws-sep{opacity:.6;}
.ws-nav{margin-left:auto;display:flex;align-items:center;gap:6px;}
.ws-count{margin-right:4px;}
.ws-sq{width:30px;height:30px;border:1px solid var(--border);border-radius:8px;background:var(--surface);display:grid;place-items:center;color:var(--text2);cursor:pointer;padding:0;}
.ws-sq:hover{border-color:var(--blue);color:var(--blue);}
.ws-sq .ws-i{width:16px;height:16px;}

/* cards */
.ws-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);}
.ws-hdr{padding:16px 22px 0;}
.ws-r1{display:flex;align-items:center;flex-wrap:wrap;row-gap:12px;}
.ws-blk{padding:0 20px;border-left:1px solid var(--border);min-width:0;}
.ws-blk:first-child{padding-left:0;border-left:0;}
.ws-lb{font-size:12px;color:var(--text3);margin-bottom:5px;display:flex;align-items:center;gap:4px;}
.ws-idrow{display:flex;align-items:center;gap:8px;}
.ws-big{font-size:21px;font-weight:700;letter-spacing:-.01em;white-space:nowrap;color:var(--text);}
.ws-big.ws-mid{font-weight:600;}
.ws-pres{display:flex;}
.ws-av{width:24px;height:24px;border-radius:50%;background:#7c3aed;color:#fff;font-style:normal;font-weight:600;font-size:11px;display:grid;place-items:center;border:2px solid var(--surface);margin-left:-4px;cursor:default;}
.ws-av.editing{background:#db2777;}
.ws-cust{display:inline-flex;align-items:center;gap:7px;background:var(--blue-light);color:var(--blue);font-weight:600;padding:4px 12px;border-radius:999px;font-size:13px;white-space:nowrap;}
.ws-cust img{height:16px;max-width:48px;object-fit:contain;border-radius:3px;background:#fff;}
.ws-route{display:flex;align-items:center;gap:14px;}
.ws-pt{display:flex;gap:7px;align-items:flex-start;}
.ws-pt b{display:block;font-size:14px;font-weight:600;white-space:nowrap;}
.ws-pt small{display:block;white-space:nowrap;}
.ws-arr{width:16px !important;}
.ws-carrier{margin-left:auto;}
.ws-metric{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-width:0;}
.ws-carrier .ws-metric{align-items:flex-start;flex-wrap:nowrap;}
.ws-carrier small{display:block;margin-top:2px;}
.ws-v{font-size:14.5px;font-weight:600;color:var(--text);}
.ws-link{color:var(--blue);text-decoration:none;}
.ws-link:hover{text-decoration:underline;}

.ws-tiles{display:grid;grid-template-columns:1.1fr 1.25fr 1.25fr 1.4fr;gap:12px;margin-top:16px;}
.ws-tile{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:10px 14px;min-width:0;}
.ws-tile small{white-space:nowrap;}
.ws-mini{background:none;border:0;padding:0 2px;color:var(--text3);cursor:pointer;display:inline-flex;}
.ws-mini:hover{color:var(--blue);}
.ws-mini .ws-i{width:13px;height:13px;}
.ws-posedit{display:flex;gap:6px;align-items:center;}
.ws-input{font-family:inherit;font-size:13px;color:var(--text);background:var(--surface);border:1px solid var(--border2);border-radius:8px;padding:6px 10px;min-width:0;flex:1;outline:none;}
.ws-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-light);}

/* tone helpers */
.ws-chip{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;padding:4px 11px;border-radius:999px;white-space:nowrap;}
.ws-chip .ws-i{width:15px;height:15px;}
.ws-chip-muted{background:var(--surface2);color:var(--text2);border:1px solid var(--border);font-size:11.5px;padding:2px 9px;}
.ws-t-ok{background:var(--green-light);color:var(--green);}
.ws-t-warn{background:var(--amber-light);color:var(--amber);}
.ws-t-bad{background:var(--red-light);color:var(--red);}
.ws-t-blue{background:var(--blue-light);color:var(--blue);}
.ws-t-muted{background:var(--surface2);color:var(--text2);}
#ws .ws-t-ok-text{color:var(--green);} #ws .ws-t-warn-text{color:var(--amber);} #ws .ws-t-bad-text{color:var(--red);} #ws .ws-t-muted-text{color:var(--text3);}
#ws small.ws-t-ok-text,#ws small.ws-t-bad-text,#ws small.ws-t-warn-text{font-weight:600;}
.ws-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none;}
.ws-dot.ws-t-ok{background:var(--green);} .ws-dot.ws-t-warn{background:var(--amber);} .ws-dot.ws-t-bad{background:var(--red);} .ws-dot.ws-t-blue{background:var(--blue);} .ws-dot.ws-t-muted{background:var(--text3);}

/* tabs + buttons */
.ws-tabbar{display:flex;align-items:center;gap:12px;margin-top:8px;flex-wrap:wrap;}
.ws-tabs{display:flex;overflow-x:auto;scrollbar-width:none;}
.ws-tabs::-webkit-scrollbar{display:none;}
.ws-tab{background:none;border:0;border-bottom:2.5px solid transparent;padding:12px 16px 11px;color:var(--text2);font-weight:500;font-size:13.5px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;}
.ws-tab:hover{color:var(--text);}
.ws-tab.on{color:var(--blue);border-bottom-color:var(--blue);font-weight:600;}
.ws-c{background:var(--surface3,var(--surface2));color:var(--text3);border-radius:999px;padding:0 7px;font-size:11px;font-weight:500;}
.ws-red{background:#e11d48;color:#fff;border-radius:999px;padding:0 7px;font-size:11px;font-weight:600;}
.ws-btns{margin-left:auto;display:flex;gap:8px;align-items:center;padding:6px 0;}
.ws-btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--blue);color:var(--blue);background:var(--surface);border-radius:8px;padding:8px 13px;font-weight:600;font-size:13px;cursor:pointer;white-space:nowrap;line-height:1.2;}
.ws-btn:hover{background:var(--blue-light);}
.ws-btn .ws-i{width:16px;height:16px;}
.ws-btn .ws-caret{width:14px;height:14px;margin-left:-2px;}
.ws-btn-p{background:var(--blue);color:#fff;border-color:var(--blue);}
.ws-btn-p:hover{background:var(--blue-dark);}
.ws-btn-icon{border-color:var(--border2);color:var(--text2);padding:8px 9px;}
.ws-btn-sm{padding:6px 12px;font-size:12.5px;}
.ws-btn-warn{border-color:var(--amber);color:var(--amber);}
.ws-btn-bad{border-color:var(--red);color:var(--red);}
.ws-btn-ok{border-color:var(--green);color:var(--green);}
.ws-btn-blue{border-color:var(--blue);color:var(--blue);}
.ws-dd{position:relative;}
.ws-menu{display:none;position:absolute;top:calc(100% + 6px);left:0;z-index:60;min-width:230px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-md);padding:6px;}
.ws-menu.ws-menu-r{left:auto;right:0;min-width:180px;}
.ws-dd:nth-last-child(2) .ws-menu{left:auto;right:0;}
.ws-menu.open{display:block;}
.ws-menu button{display:flex;align-items:center;gap:9px;width:100%;background:none;border:0;padding:8px 10px;border-radius:7px;color:var(--text);font-size:13px;text-align:left;cursor:pointer;}
.ws-menu button:hover:not([disabled]){background:var(--blue-light);}
.ws-menu button small{margin-left:auto;font-size:11px;}
.ws-menu button .ws-i{width:16px;height:16px;color:var(--text3);}
.ws-menu button.cur{color:var(--text3);cursor:default;}
.ws-menu button.danger{color:var(--red);}
.ws-menu button.danger .ws-i{color:var(--red);}

/* banners */
.ws-banners{margin:14px 0 0;display:flex;flex-direction:column;gap:8px;}
.ws-banner{display:flex;align-items:center;gap:12px;border:1px solid;border-left-width:4px;border-radius:10px;padding:9px 14px;}
.ws-banner > .ws-i{flex:none;}
.ws-bt{flex:1;min-width:0;}
.ws-bt b{font-weight:600;color:var(--text);}
.ws-bt span{color:var(--text2);}
.ws-banner-msg{background:var(--blue-light);border-color:var(--blue-mid);border-left-color:var(--blue);} .ws-banner-msg > .ws-i{color:var(--blue);}
.ws-banner-warn{background:var(--amber-light);border-color:var(--amber-mid);border-left-color:var(--amber);} .ws-banner-warn > .ws-i{color:var(--amber);}
.ws-banner-bad{background:var(--red-light);border-color:var(--red-mid);border-left-color:var(--red);} .ws-banner-bad > .ws-i{color:var(--red);}
.ws-banner-ok{background:var(--green-light);border-color:var(--green-mid);border-left-color:var(--green);} .ws-banner-ok > .ws-i{color:var(--green);}
.ws-more-n{font-size:12px;color:var(--text3);margin-left:8px;}
.ws-later{background:none;border:0;color:var(--text3);font-weight:500;font-size:12.5px;cursor:pointer;padding:4px;}
.ws-later:hover{color:var(--text);}
.ws-linkbtn{background:none;border:0;padding:0;color:var(--blue);font-weight:500;font-size:12.5px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;}
.ws-linkbtn:hover{text-decoration:underline;}
.ws-linkbtn .ws-i{width:14px;height:14px;}
.ws-morelist{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:4px 14px;}
.ws-moreitem{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);font-size:12.5px;}
.ws-moreitem:last-child{border-bottom:0;}
.ws-moreitem span{color:var(--text3);flex:1;}

/* sections */
.ws-sec{padding:16px 22px;margin-top:14px;}
.ws-sh{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;gap:10px;}
.ws-sh h3{font-size:15px;font-weight:600;margin:0;color:var(--text);}
.ws-meta{font-size:12.5px;color:var(--text2);}
.ws-empty{color:var(--text3);padding:14px 0;}

/* milestones */
.ws-ms{display:flex;margin:18px 0 6px;overflow-x:auto;scrollbar-width:thin;}
.ws-st{flex:1;min-width:120px;text-align:center;position:relative;padding:0 6px;}
.ws-dot2{width:26px;height:26px;border-radius:50%;margin:0 auto 9px;display:grid;place-items:center;position:relative;z-index:1;background:var(--text3);color:#fff;opacity:.55;}
.ws-dot2 .ws-i{width:15px;height:15px;stroke-width:3;}
.ws-st.d .ws-dot2{background:var(--green);opacity:1;}
.ws-st.cur .ws-dot2{background:var(--surface);border:3px solid var(--blue);box-shadow:0 0 0 4px var(--blue-light);opacity:1;}
.ws-st.cur .ws-dot2::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--blue);}
.ws-st.cur.late .ws-dot2{border-color:var(--red);box-shadow:0 0 0 4px var(--red-light);}
.ws-st.cur.late .ws-dot2::after{background:var(--red);}
.ws-st.stop .ws-dot2{width:18px;height:18px;margin:4px auto 13px;background:var(--surface);border:2px solid var(--border2);opacity:1;}
.ws-st::after{content:"";position:absolute;top:12px;left:50%;width:100%;height:2px;background:var(--border2);}
.ws-st.d::after{background:var(--green);}
.ws-st:last-child::after{display:none;}
.ws-st b{display:block;font-weight:600;font-size:13.5px;color:var(--text);}
.ws-st.cur b{color:var(--blue);}
.ws-st span{display:block;color:var(--text2);font-size:12px;line-height:1.55;}
.ws-st.cur span{color:var(--blue);}
.ws-stops{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border);}
.ws-stop{display:flex;gap:12px;min-width:0;}
.ws-ico{width:36px;height:36px;border-radius:9px;display:grid;place-items:center;flex:none;}
.ws-ico-g{background:var(--green-light);color:var(--green);} .ws-ico-b{background:var(--blue-light);color:var(--blue);}
.ws-stop b{display:block;font-weight:600;margin:1px 0 2px;color:var(--text);}
.ws-stop p{margin:0;color:var(--text2);font-size:12.5px;line-height:1.5;}
.ws-pinnote{display:flex;gap:10px;align-items:center;background:#fffbea;border:1px solid #f3e3a1;border-radius:10px;padding:9px 14px;margin-top:12px;font-size:12.5px;color:#5c4a12;}
.ws-pinnote .ws-i{color:#b08900;width:16px;height:16px;}
.ws-pinnote b{font-weight:600;}
.ws-pinnote > span{flex:1;white-space:pre-wrap;}
.ws-pinnote.editing{align-items:flex-start;}
.ws-pinnote textarea{resize:vertical;}
.ws-pin-btns{display:flex;flex-direction:column;gap:6px;}
.ws-pin-edit{color:#8a7a3c;}
body:not(.theme-light) .ws-pinnote{background:rgba(234,179,8,.08);border-color:rgba(234,179,8,.28);color:#f3e3a1;}

/* updates + documents */
.ws-row2{display:grid;grid-template-columns:1.9fr 1fr;gap:14px;}
.ws-row2 .ws-sec{margin-top:14px;}
.ws-upd{display:grid;grid-template-columns:16px 130px 1fr auto;align-items:center;gap:0 6px;padding:8px 0;border-bottom:1px solid var(--border);font-size:12.5px;}
.ws-ud{width:9px;height:9px;border-radius:50%;background:var(--text3);opacity:.6;}
.ws-ud.on{background:var(--blue);opacity:1;}
.ws-tm{color:var(--text2);}
.ws-ux{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ws-who{color:var(--text3);font-size:11.5px;padding-left:10px;}
.ws-log{display:flex;gap:8px;align-items:center;border:1px solid var(--border2);border-radius:10px;padding:6px 6px 6px 12px;margin-top:12px;background:var(--surface);}
.ws-log:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-light);}
.ws-log-in{flex:1;min-width:0;border:0;outline:none;background:transparent;font-family:inherit;font-size:13px;color:var(--text);padding:6px 0;}
.ws-log-loc{flex:0 0 150px;border-left:1px solid var(--border);padding-left:10px;}
.ws-sel{border:1px solid var(--border);border-radius:7px;padding:5px 8px;color:var(--text2);font-size:12px;background:var(--surface2);font-family:inherit;display:inline-flex;align-items:center;gap:4px;cursor:pointer;}
.ws-sel .ws-i{width:13px;height:13px;}
.ws-doc{display:flex;align-items:center;gap:10px;padding:10px 6px;border-bottom:1px solid var(--border);border-radius:6px;}
.ws-doc b{font-weight:600;flex:1;color:var(--text);}
.ws-doc.ws-click{cursor:pointer;}
.ws-doc.ws-click:hover{background:var(--blue-light);}
.ws-dst{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:500;}
.ws-dst .ws-i{width:16px;height:16px;}
.ws-dst small{margin-left:4px;font-weight:400;}
.ws-drophint{display:flex;gap:7px;align-items:center;justify-content:center;border:1px dashed var(--border2);border-radius:10px;padding:9px;margin-top:12px;color:var(--text3);font-size:12px;}
.ws-drophint .ws-i{width:15px;height:15px;}

/* ── Fit the whole Overview on one screen (1440×900 and up; 1366×768 with one banner) ── */
body.focus-mode.ws-on #ws{padding:10px 20px 14px;}
.ws-crumb{margin-bottom:8px;font-size:12px;}
.ws-sq{width:26px;height:26px;}
.ws-hdr{padding:12px 18px 0;}
.ws-lb{font-size:11.5px;margin-bottom:3px;}
.ws-big{font-size:19px;}
.ws-pt b{font-size:13.5px;}
.ws-v{font-size:14px;}
.ws-tiles{margin-top:10px;gap:10px;}
.ws-tile{padding:7px 12px;}
.ws-tile .ws-lb{margin-bottom:2px;}
.ws-chip{padding:2px 10px;font-size:12px;}
.ws-tabbar{margin-top:2px;}
.ws-tab{padding:10px 14px 9px;}
.ws-btns{padding:5px 0;}
.ws-btn{padding:7px 12px;}
.ws-banners{margin-top:10px;gap:6px;}
.ws-banner{padding:6px 12px;min-height:38px;}
.ws-banner .ws-btn-sm{padding:4px 11px;}
.ws-bt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ws-sec{padding:12px 18px;margin-top:10px;}
.ws-row2 .ws-sec{margin-top:10px;}
.ws-row2{gap:10px;}
.ws-sh{margin-bottom:2px;}
.ws-sh h3{font-size:14.5px;}
.ws-sh-r{display:flex;align-items:center;gap:14px;}
.ws-ms{margin:10px 0 2px;}
.ws-dot2{width:24px;height:24px;margin-bottom:6px;}
.ws-st::after{top:11px;}
.ws-st.stop .ws-dot2{margin:3px auto 9px;}
.ws-st b{font-size:13px;}
.ws-st span{font-size:11.5px;line-height:1.45;}
.ws-stops{margin-top:10px;padding-top:10px;gap:14px;}
.ws-stop{align-items:center;gap:10px;}
.ws-stop-t{min-width:0;flex:1;}
.ws-stop .ws-lb{margin-bottom:1px;}
.ws-stop-l{display:flex;gap:8px;align-items:baseline;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12.5px;}
.ws-stop-l b{display:inline;margin:0;flex:none;}
.ws-stop-l span{color:var(--text2);overflow:hidden;text-overflow:ellipsis;}
.ws-ico{width:32px;height:32px;border-radius:8px;}
.ws-ico .ws-i{width:16px;height:16px;}
.ws-pinnote{margin-top:10px;padding:6px 12px;}
.ws-pin-txt{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ws-pinnote.editing .ws-pin-txt{white-space:normal;}
.ws-sepdot{font-style:normal;margin:0 8px;opacity:.6;}
.ws-upd{padding:6px 0;}
.ws-log{margin-top:8px;padding:4px 4px 4px 12px;}
.ws-log-in{padding:5px 0;}
.ws-doc{padding:7px 6px;}
.ws-drophint{margin-top:8px;padding:6px;}
.ws-row2 .ws-upd:nth-child(n+6){display:none;}
@media (min-height:1000px) and (min-width:901px){ .ws-row2 .ws-upd:nth-child(n+6){display:grid;} }

@media (max-height:820px) and (min-width:901px){
  body.focus-mode.ws-on #ws{padding-top:6px;padding-bottom:8px;}
  .ws-crumb{margin-bottom:4px;}
  .ws-hdr{padding-top:8px;}
  .ws-r1 .ws-lb{margin-bottom:1px;}
  .ws-tiles{margin-top:8px;}
  .ws-tile{padding:5px 12px;}
  .ws-tab{padding:8px 12px 7px;}
  .ws-btns{padding:4px 0;}
  .ws-btn{padding:6px 11px;}
  .ws-banners{margin-top:8px;gap:5px;}
  .ws-banner{min-height:34px;padding:4px 12px;}
  .ws-sec{padding:10px 16px;margin-top:8px;}
  .ws-row2 .ws-sec{margin-top:8px;}
  .ws-ms{margin-top:6px;}
  .ws-st span + span{display:none;}
  .ws-stops{margin-top:8px;padding-top:8px;}
  .ws-pinnote{margin-top:8px;padding:4px 12px;}
  .ws-upd{padding:5px 0;}
  .ws-row2 .ws-upd:nth-child(n+5){display:none;}
  .ws-doc{padding:5px 6px;}
  .ws-drophint{display:none;}
}

/* ── Messages tab ── */
.ws-mt{display:grid;grid-template-columns:1fr 320px;gap:10px;margin-top:10px;}
.ws-chat{display:flex;flex-direction:column;padding:12px 18px 14px;height:calc(100vh - 56px - var(--ws-head-h,300px) - 36px);min-height:380px;}
.ws-appst{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text3);}
.ws-appst i{width:8px;height:8px;border-radius:50%;background:var(--text3);opacity:.6;}
.ws-appst.on{color:var(--green);} .ws-appst.on i{background:var(--green);opacity:1;}
.ws-appwarn{display:flex;align-items:center;gap:10px;background:var(--amber-light);border:1px solid var(--amber-mid);border-radius:10px;padding:8px 12px;margin:6px 0 2px;font-size:12.5px;color:var(--text2);}
.ws-appwarn > .ws-i{color:var(--amber);}
.ws-appwarn span{flex:1;} .ws-appwarn b{color:var(--text);font-weight:600;}
.ws-thread{flex:1;min-height:0;overflow-y:auto;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin-top:8px;display:flex;flex-direction:column;gap:10px;}
.ws-thread > :first-child{margin-top:auto;}
.ws-day{align-self:center;font-size:11px;color:var(--text3);background:var(--surface3,var(--surface));border:1px solid var(--border);border-radius:999px;padding:1px 10px;}
.ws-m{max-width:66%;}
.ws-m .ws-bb{padding:9px 13px;border-radius:14px;font-size:13px;line-height:1.45;white-space:pre-wrap;word-wrap:break-word;}
.ws-m > span{display:block;font-size:11px;color:var(--text3);margin:3px 4px 0;}
.ws-m.d .ws-bb{background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:4px;color:var(--text);}
.ws-m.me{align-self:flex-end;text-align:right;}
.ws-m.me .ws-bb{background:var(--blue);color:#fff;border-bottom-right-radius:4px;text-align:left;}
.ws-m.sys{align-self:center;max-width:90%;text-align:center;font-size:12px;color:var(--text3);}
.ws-thread-empty{margin:auto;text-align:center;color:var(--text3);display:flex;flex-direction:column;align-items:center;gap:4px;}
.ws-thread-empty .ws-i{width:28px;height:28px;opacity:.6;}
.ws-thread-empty b{color:var(--text2);font-weight:600;}
.ws-compose{border:1px solid var(--border2);border-radius:12px;margin-top:10px;padding:8px 10px;background:var(--surface);}
.ws-compose:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-light);}
.ws-compose textarea{width:100%;border:0;outline:none;resize:none;background:transparent;font-family:inherit;font-size:13px;color:var(--text);min-height:38px;}
.ws-compose-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.ws-qr{border:1px solid var(--border);border-radius:999px;padding:4px 11px;background:var(--surface2);color:var(--text2);font-size:12px;cursor:pointer;}
.ws-qr:hover{border-color:var(--blue);color:var(--blue);}
.ws-send{margin-left:auto;}
.ws-side{display:flex;flex-direction:column;gap:10px;}
.ws-side .ws-sec{margin-top:0;}
.ws-prof{display:flex;gap:12px;align-items:center;padding-bottom:10px;border-bottom:1px solid var(--border);margin-bottom:10px;}
.ws-prof b{display:block;font-size:14px;color:var(--text);}
.ws-pav{width:42px;height:42px;border-radius:50%;background:var(--blue-light);color:var(--blue);font-weight:700;display:grid;place-items:center;flex:none;}
.ws-kv{display:grid;grid-template-columns:auto 1fr;gap:7px 12px;font-size:12.5px;margin:0;}
.ws-kv dt{color:var(--text3);} .ws-kv dd{margin:0;text-align:right;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;}
.ws-acts{display:flex;flex-direction:column;gap:8px;margin-top:6px;}
.ws-acts .ws-btn{justify-content:flex-start;}
@media (max-width:1100px){ .ws-mt{grid-template-columns:1fr;} .ws-chat{height:auto;min-height:0;} .ws-thread{max-height:55vh;min-height:260px;} }

/* ── Documents tab ── */
.ws-dt{display:grid;grid-template-columns:1fr 320px;gap:10px;margin-top:10px;align-items:start;}
.ws-dsum{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.ws-ds{font-size:12.5px;font-weight:600;padding:5px 12px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--text2);}
.ws-ds-ok{background:var(--green-light);border-color:var(--green-mid);color:var(--green);}
.ws-ds-pending{background:var(--amber-light);border-color:var(--amber-mid);color:var(--amber);}
.ws-ds-bad,.ws-ds-missing{background:var(--red-light);border-color:var(--red-mid);color:var(--red);}
.ws-dgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.ws-dcard{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--border2);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow);}
.ws-dcard.ws-d-ok{border-left-color:var(--green);} .ws-dcard.ws-d-pending{border-left-color:var(--amber);} .ws-dcard.ws-d-bad{border-left-color:var(--red);}
.ws-dhead{display:flex;align-items:center;gap:8px;}
.ws-dhead b{font-weight:600;font-size:13.5px;color:var(--text);flex:1;min-width:0;}
.ws-dhead .ws-chip{font-size:11.5px;padding:2px 9px;}
.ws-files{display:flex;flex-direction:column;gap:4px;}
.ws-file{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:5px 8px;background:var(--surface2);border-radius:8px;}
.ws-file .ws-i{width:15px;height:15px;}
.ws-file-n{font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1;}
.ws-file small{white-space:nowrap;}
.ws-file .ws-btn-sm{padding:3px 10px;}
.ws-dempty{font-size:12.5px;color:var(--text3);padding:10px;border:1px dashed var(--border2);border-radius:8px;text-align:center;}
.ws-review{font-size:12px;color:var(--text2);background:var(--surface2);border-radius:8px;padding:6px 10px;}
.ws-review.bad{background:var(--red-light);color:var(--red);}
.ws-review div{margin-top:2px;}
.ws-dact{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:auto;}
.ws-dact .ws-btn-sm{padding:5px 11px;}
.ws-del{color:var(--text3);margin-left:auto;} .ws-del:hover{color:var(--red);}
.ws-effect{flex-basis:100%;font-size:11.5px;}
.ws-up-sel{width:100%;margin:4px 0 10px;}
.ws-drop{border:2px dashed var(--border2);border-radius:12px;padding:22px 12px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--text3);cursor:pointer;}
.ws-drop:hover,.ws-drop.drag-over{border-color:var(--blue);background:var(--blue-light);color:var(--blue);}
.ws-drop .ws-i{width:26px;height:26px;}
.ws-drop b{color:var(--text);font-weight:600;}
.ws-drop span{font-size:11.5px;}
.ws-dhist .ws-dh{grid-template-columns:110px 1fr;align-items:start;}
.ws-dhist .ws-dh .ws-ux{white-space:normal;}
@media (max-width:1280px){ .ws-dgrid{grid-template-columns:1fr;} }
@media (max-width:1100px){ .ws-dt{grid-template-columns:1fr;} }

/* ── Tracking tab: header on top, the existing map on the left, this panel on the right ── */
#ws-trk{display:none;}
body.focus-mode.ws-on.ws-tab-tracking .layout{display:grid !important;grid-template-columns:minmax(0,1fr) 360px;grid-template-rows:auto minmax(0,1fr);}
body.focus-mode.ws-on.ws-tab-tracking #ws{grid-column:1 / -1;grid-row:1;height:auto;overflow:visible;padding-bottom:10px;}
body.focus-mode.ws-on.ws-tab-tracking #ws-body{display:none;}
body.focus-mode.ws-on.ws-tab-tracking .layout > .map-area{display:flex !important;grid-column:1;grid-row:2;height:auto !important;min-height:0;margin:0 0 14px 20px;border-radius:12px;overflow:hidden;border:1px solid var(--border);flex:none !important;max-width:none !important;}
body.focus-mode.ws-on.ws-tab-tracking #map-collapse-btn{display:none !important;}
body.focus-mode.ws-on.ws-tab-tracking #ws-trk{display:block;grid-column:2;grid-row:2;overflow-y:auto;min-height:0;padding:0 20px 14px 10px;background:var(--bg);font-family:var(--font);color:var(--text);font-size:13px;}
body.focus-mode.ws-on.ws-tab-tracking .layout > .workspace-area,
body.focus-mode.ws-on.ws-tab-tracking .layout > .detail,
body.focus-mode.ws-on.ws-tab-tracking .layout > .sidebar{display:none !important;}
.ws-trk-in{display:flex;flex-direction:column;gap:10px;}
.ws-trk-in .ws-sec{margin-top:0;}
#ws-trk .ws-i{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:middle;}
#ws-trk small{font-size:12px;color:var(--text3);}
#ws-trk .ws-t-ok-text{color:var(--green);} #ws-trk .ws-t-warn-text{color:var(--amber);} #ws-trk .ws-t-bad-text{color:var(--red);}
.ws-acts-2{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:12px;}
.ws-acts-2 .ws-btn{justify-content:center;padding:6px 8px;font-size:12px;}
.ws-acts-2 .ws-btn .ws-i{width:14px;height:14px;}
.ws-ac{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--text2);padding:8px 10px;border-radius:10px;background:var(--surface2);}
.ws-ac b{display:block;color:var(--text);font-weight:600;margin-bottom:2px;}
.ws-ac .ws-i{color:var(--green);margin-top:1px;}
.ws-ac.warn{background:var(--amber-light);} .ws-ac.warn .ws-i{color:var(--amber);}
.ws-ac.bad{background:var(--red-light);} .ws-ac.bad .ws-i{color:var(--red);}
.ws-ac-h{margin-top:8px;font-size:12px;color:var(--text2);display:flex;flex-direction:column;gap:4px;}
.ws-ac-h span{color:var(--text3);margin-right:8px;}
.ws-lhs{display:flex;flex-direction:column;}
.ws-lh{display:flex;gap:10px;align-items:flex-start;padding:7px 0;border-bottom:1px solid var(--border);}
.ws-lh:last-child{border-bottom:0;}
.ws-lh .ws-ud{margin-top:5px;flex:none;}
.ws-lh b{display:block;font-weight:500;font-size:12.5px;color:var(--text);}
.ws-maphint{display:none;}
@media (max-width:900px){
  body.focus-mode.ws-on.ws-tab-tracking .layout{display:flex !important;flex-direction:column;overflow-y:auto;}
  body.focus-mode.ws-on.ws-tab-tracking #ws-trk{padding:0 12px 90px;overflow:visible;}
  body.focus-mode.ws-on.ws-tab-tracking .layout > .map-area{display:none !important;}
  .ws-maphint{display:block;text-align:center;color:var(--text3);font-size:12px;}
}

/* ── Activity tab ── */
.ws-at{display:grid;grid-template-columns:1fr 320px;gap:10px;margin-top:10px;align-items:start;}
.ws-atl{margin-top:0;}
.ws-act-q{max-width:320px;flex:1;padding:6px 10px;}
.ws-fchips{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 6px;}
.ws-fchip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--surface2);color:var(--text2);border-radius:999px;padding:4px 11px;font-size:12.5px;cursor:pointer;font-family:inherit;}
.ws-fchip b{font-weight:600;color:var(--text3);font-size:11.5px;}
.ws-fchip:hover:not([disabled]){border-color:var(--blue);color:var(--blue);}
.ws-fchip.on{background:var(--blue);border-color:var(--blue);color:#fff;} .ws-fchip.on b{color:rgba(255,255,255,.8);}
.ws-fchip[disabled]{opacity:.45;cursor:default;}
.ws-alist{display:flex;flex-direction:column;}
.ws-aday{font-size:11.5px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.05em;padding:12px 0 4px;border-bottom:1px solid var(--border);}
.ws-arow{display:grid;grid-template-columns:14px 72px 1fr auto 82px;align-items:center;gap:0 8px;padding:7px 0;border-bottom:1px solid var(--border);font-size:12.5px;}
.ws-atm{color:var(--text2);}
.ws-atx{color:var(--text);word-break:break-word;}
.ws-acat{font-size:11px;color:var(--text3);background:var(--surface2);border-radius:999px;padding:1px 8px;white-space:nowrap;}
.ws-arow .ws-who{text-align:right;}
.ws-al{width:100%;margin:3px 0 10px;flex:none;}
textarea.ws-al{resize:vertical;}
.ws-al-btn{width:100%;justify-content:center;}
.ws-al-hint{display:block;text-align:center;margin-top:6px;}
@media (max-width:1100px){ .ws-at{grid-template-columns:1fr;} }
@media (max-width:900px){ .ws-arow{grid-template-columns:12px 64px 1fr;} .ws-arow .ws-acat,.ws-arow .ws-who{display:none;} .ws-act-q{max-width:none;} .ws-sh{flex-wrap:wrap;} }

/* ── narrower screens ── */
@media (max-width:1500px){
  .ws-tab{padding:12px 11px 11px;}
  .ws-btn{padding:8px 11px;}
  .ws-btns .ws-dd:first-child .ws-btn > .ws-i:first-child,.ws-btns > .ws-btn > .ws-i{display:none;}
  .ws-blk{padding:0 16px;}
}
@media (max-width:1280px){
  .ws-tiles{grid-template-columns:1fr 1fr;}
  .ws-carrier{margin-left:0;}
  .ws-row2{grid-template-columns:1fr;}
}
@media (max-width:900px){
  body.focus-mode.ws-on #ws{padding:10px 12px 90px;}
  .ws-hdr{padding:12px 14px 0;}
  .ws-blk{padding:0 12px;}
  .ws-route{flex-wrap:wrap;}
  .ws-route,.ws-carrier{border-left:0;padding-left:0;flex:1 1 100%;}
  .ws-tiles{grid-template-columns:1fr 1fr;gap:8px;}
  .ws-tile small{white-space:normal;}
  .ws-btns{margin-left:0;flex-wrap:wrap;width:100%;}
  .ws-tabbar{gap:0;}
  .ws-stops{grid-template-columns:1fr;}
  .ws-sec{padding:14px;}
  .ws-upd{grid-template-columns:14px 92px 1fr;}
  .ws-who{display:none;}
  .ws-log{flex-wrap:wrap;}
  .ws-log-in{flex:1 1 100%;}
  .ws-nav .ws-count{display:none;}
  .ws-banner{flex-wrap:wrap;}
  body.ws-on .layout > .detail{order:2;}
  body.ws-on.ws-tab-messages .layout > .detail,body.ws-on.ws-tab-activity .layout > .detail{order:1;}
  .ws-menu{position:fixed;left:12px !important;right:12px !important;top:auto;bottom:80px;min-width:0;}
}
body:not(.theme-light) #ws .ws-btn-p,body:not(.theme-light) #ws-trk .ws-btn-p{background:var(--blue-dark);border-color:var(--blue-dark);}

/* Position box suggestions (geoSuggest sets position:fixed inline; theme it here) */
.ws-pos-sugg{min-width:280px !important;background:var(--surface) !important;border:1px solid var(--border) !important;box-shadow:0 12px 28px rgba(15,23,42,.18) !important;border-radius:10px !important;}
.ws-pos-sugg > div{color:var(--text) !important;border-color:var(--border) !important;}
.ws-pos-sugg > div:hover,.ws-pos-sugg > div.on{background:var(--blue-light, rgba(0,102,204,.1)) !important;color:var(--blue) !important;}

/* ── Multi-stop: overview stop list + grouped stop paperwork ── */
#ws .ws-stopscard .ws-srow{display:grid;grid-template-columns:26px minmax(0,1.6fr) auto auto auto;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--border);}
#ws .ws-stopscard .ws-srow:first-of-type{border-top:0;}
#ws .ws-snum{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--surface2,#eef2f7);color:var(--text2,#3b4a5e);font-size:12px;font-weight:700;flex:none;}
#ws .ws-snum.on{background:#0066cc;color:#fff;}
#ws .ws-st-main{min-width:0;}
#ws .ws-st-main b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#ws .ws-st-main small{display:block;color:var(--text3);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#ws .ws-st-docs{display:flex;gap:4px;flex-wrap:wrap;}
#ws .ws-st-acts{display:flex;gap:6px;align-items:center;justify-content:flex-end;}
#ws .ws-stopprog{margin-left:6px;}
#ws .ws-dgh{display:flex;align-items:center;gap:8px;margin:16px 0 8px;font-size:13.5px;font-weight:700;color:var(--text);}
#ws .ws-dgh small{font-weight:500;color:var(--text3);font-size:12px;}
@media (max-width:900px){ #ws .ws-stopscard .ws-srow{grid-template-columns:26px minmax(0,1fr);} #ws .ws-st-state,#ws .ws-st-docs,#ws .ws-st-acts{grid-column:2;justify-content:flex-start;} }

/* LET Driver access: per-load "Allow web page" switch */
#ws-trk .ws-webswitch,#ws .ws-webswitch{display:flex;gap:10px;align-items:flex-start;margin-top:12px;padding-top:12px;border-top:1px solid var(--border);cursor:pointer}
.ws-webswitch input{width:18px;height:18px;margin-top:2px;accent-color:var(--blue);flex:none}
.ws-webswitch b{display:block;font-size:13px;color:var(--text)}
.ws-webswitch small{display:block;font-size:12px;color:var(--text3);margin-top:2px;line-height:1.4}
