/* schedboard.css — Phase B drag-and-drop board.
   Lives inside the Scheduling frame screen as the "Board" tab. Phase A's
   scheduling.css is untouched. */

#sb-root{--sbcol:34px;--sblabel:230px;--sbrow:34px;--sbcrew:48px}
.sb-wrap{display:flex;height:calc(100vh - 190px);min-height:420px;
  border:1px solid #2b2b2b;border-radius:10px;overflow:hidden;background:#111113}

/* palette */
.sb-side{width:250px;min-width:250px;border-right:1px solid #2b2b2b;background:#1a1a1c;
  overflow-y:auto;padding:10px}
.sb-side h4{font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:#999;
  margin:12px 0 5px}
.sb-side h4:first-child{margin-top:0}
.sb-hint{font-size:11px;color:#666;margin:2px 0 7px;line-height:1.35}
.sb-chip{display:flex;align-items:center;gap:7px;border:1px solid #3a3a3a;border-radius:8px;
  padding:5px 8px;margin-bottom:5px;background:#202024;cursor:grab;user-select:none}
.sb-chip:active{cursor:grabbing}
.sb-chip.dragging{opacity:.4}
.sb-chip .sw{width:10px;height:10px;border-radius:3px;flex:none}
.sb-chip .cd{font-weight:600;font-size:11px;color:#ddd;flex:none}
.sb-chip .nm{font-size:11px;color:#999;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sb-chip .av{width:22px;height:22px;border-radius:50%;background:#2a3a52;color:#cfe0f7;
  font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;flex:none}
.sb-chip>span.g{flex:1;min-width:0}
.sb-chip .rl{font-size:10px;color:#666}
.sb-chip .mt{display:block;height:5px;border-radius:3px;background:#2a2a2e;margin-top:3px;overflow:hidden}
.sb-chip .mt>i{display:block;height:100%;background:#4a8f5c}
.sb-chip .mt.warn>i{background:#d9a53a}
.sb-chip .mt.over>i{background:#c0392b}
.sb-chip .hh{font-size:9px;color:#777}
.sb-chip .hh.over{color:#e57373}
.sb-chip.off{border-color:#6d5a19}

/* board */
.sb-main{flex:1;display:flex;flex-direction:column;min-width:0}
.sb-bar{display:flex;align-items:center;gap:7px;padding:6px 10px;border-bottom:1px solid #2b2b2b;
  background:#161618;flex-wrap:wrap}
.sb-bar .rng{font-size:12px;color:#999}
.sb-bar .sp{flex:1}
.sb-board{flex:1;overflow:auto;position:relative}
.sb-grid{min-width:max-content;position:relative}

.sb-hdr{position:sticky;top:0;z-index:30;background:#161618;border-bottom:1px solid #3a3a3a;display:flex}
.sb-hdr .lb{width:var(--sblabel);min-width:var(--sblabel);position:sticky;left:0;z-index:31;
  background:#161618;border-right:1px solid #3a3a3a;display:flex;align-items:center;
  padding-left:8px;font-size:11px;color:#aaa}
.sb-mon{display:flex;height:18px}
.sb-mon>div{font-size:10px;color:#999;padding-left:5px;border-left:1px solid #333;
  white-space:nowrap;overflow:hidden}
.sb-dow{display:flex;height:32px}
.sb-dc{width:var(--sbcol);min-width:var(--sbcol);text-align:center;font-size:10px;color:#999;
  border-left:1px solid #262626;padding-top:2px}
.sb-dc .n{display:block;font-size:12px;color:#ccc}
.sb-dc.off{background:#0d0d0e;color:#555}
.sb-dc.off .n{color:#5a5a5a}
.sb-dc.hol{background:#241d0e;color:#9a8646}
.sb-dc.hol .n{color:#b9a05a}
.sb-dc.today{background:rgba(240,166,60,.14);color:#f0a63c;font-weight:700}
.sb-dc.today .n{color:#f0a63c}

.sb-lane{display:flex;border-bottom:1px solid #232323;min-height:var(--sbrow)}
.sb-lane.proj{background:#17171a;border-bottom-color:#2c2c2c}
.sb-lane.crew{min-height:var(--sbcrew)}
.sb-lane.zone{background:#141416}
.sb-lane.sect{min-height:22px;background:#141416}
.sb-lane .lb{width:var(--sblabel);min-width:var(--sblabel);position:sticky;left:0;z-index:20;
  background:#17171a;border-right:1px solid #3a3a3a;padding:4px 8px;display:flex;
  align-items:center;gap:6px}
.sb-lane.crew .lb,.sb-lane.oo .lb{background:#131315;padding-left:20px}
.sb-lane.zone .lb,.sb-lane.sect .lb{background:#141416;color:#666;font-size:11px}
.sb-lane.sect .lb{font-size:10px;text-transform:uppercase;letter-spacing:.7px;color:#7a7a7a}
.sb-lane .lb .t{overflow:hidden;flex:1;min-width:0}
.sb-lane .lb .t b{font-size:12px;color:#eee;display:block;font-weight:600;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sb-lane .lb .t s{font-size:10px;color:#666;text-decoration:none;display:block;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sb-lane .lb .x{border:0;background:transparent;color:#555;cursor:pointer;font-size:14px;
  line-height:1;padding:2px 4px}
.sb-lane .lb .x:hover{color:#e57373}
.sb-cap{font-size:9px;border-radius:8px;padding:0 5px;border:1px solid #3a3a3a;color:#999;
  white-space:nowrap;flex:none}
.sb-cap.over{border-color:#c0392b;color:#f0a0a0}
.sb-cap.warn{border-color:#8a6f22;color:#e8cf94}
.sb-cap.none{border-style:dashed;color:#666}

.sb-track{position:relative;display:flex;flex:none}
.sb-cell{width:var(--sbcol);min-width:var(--sbcol);border-left:1px solid #202020}
.sb-cell.off{background:#0d0d0e}
.sb-cell.hol{background:#1d1810}
.sb-cell.today{background:rgba(240,166,60,.05)}
.sb-cell.ok{background:rgba(240,166,60,.22);outline:1px solid #f0a63c;outline-offset:-1px}
.sb-cell.bad{background:rgba(192,57,43,.25)}

.sb-bar2{position:absolute;top:4px;height:calc(var(--sbrow) - 9px);border-radius:6px;display:flex;
  align-items:center;padding:0 8px;font-size:11px;font-weight:600;color:#0f0f0f;cursor:grab;
  user-select:none;overflow:hidden;white-space:nowrap;box-shadow:0 1px 0 rgba(0,0,0,.4)}
.sb-bar2:active{cursor:grabbing}
.sb-bar2.cw{background:#2c4166;color:#dbe9ff;box-shadow:inset 0 0 0 1px #3d5a8c}
.sb-bar2 .h{position:absolute;top:0;bottom:0;width:9px;cursor:ew-resize}
.sb-bar2 .h.r{right:0;border-right:3px solid rgba(0,0,0,.35)}
.sb-bar2 .h.l{left:0;border-left:3px solid rgba(0,0,0,.35)}
.sb-bar2 .mt2{font-weight:400;opacity:.75;margin-left:6px}
.sb-mask{position:absolute;top:0;bottom:0;pointer-events:none;
  background:repeating-linear-gradient(135deg,rgba(0,0,0,.42) 0 4px,rgba(0,0,0,.12) 4px 8px)}

.sb-pto{position:absolute;top:4px;height:calc(var(--sbrow) - 9px);border-radius:5px;
  background:repeating-linear-gradient(135deg,#5c4a16 0 5px,#4a3b11 5px 10px);
  border:1px solid #6d5a19;color:#f0e6bf;font-size:10px;display:flex;align-items:center;
  justify-content:center;pointer-events:none;overflow:hidden}
.sb-cf{position:absolute;top:1px;height:calc(var(--sbrow) - 3px);border-radius:5px;
  background:repeating-linear-gradient(135deg,rgba(192,57,43,.55) 0 5px,rgba(192,57,43,.25) 5px 10px);
  border:1px solid #c0392b;cursor:pointer;z-index:6;display:flex;align-items:center;
  justify-content:center;font-size:11px;color:#ffdede}
.sb-cf.ackd{background:repeating-linear-gradient(135deg,rgba(217,165,58,.4) 0 5px,rgba(217,165,58,.15) 5px 10px);
  border-color:#8a6f22;color:#f0e6bf}

.sb-mtr{position:absolute;bottom:3px;height:13px;border-radius:3px;background:#232326;
  border:1px solid #2e2e32;overflow:hidden;display:flex;align-items:center;cursor:help}
.sb-mtr .f{position:absolute;left:0;top:0;bottom:0;background:#3c6b48}
.sb-mtr .rc{position:absolute;left:0;top:0;bottom:0;
  background:repeating-linear-gradient(135deg,rgba(255,255,255,.16) 0 3px,transparent 3px 6px)}
.sb-mtr .cl{position:absolute;top:-1px;bottom:-1px;width:2px;background:#e8e8e8;opacity:.55}
.sb-mtr .tx{position:relative;z-index:2;font-size:9px;color:#cfe0d5;padding-left:5px;
  white-space:nowrap;font-variant-numeric:tabular-nums}
.sb-mtr.warn .f{background:#8a6a20}.sb-mtr.warn .tx{color:#f2e2b6}
.sb-mtr.over .f{background:#8e3226}.sb-mtr.over{border-color:#c0392b}.sb-mtr.over .tx{color:#ffdada}
.sb-mtr.nocap .f{background:#33415c}.sb-mtr.nocap .tx{color:#c3d2ea}

.sb-legend{display:flex;gap:13px;flex-wrap:wrap;font-size:11px;color:#666;padding:5px 10px;
  border-top:1px solid #2b2b2b;background:#141416}
.sb-legend i{display:inline-block;width:11px;height:11px;border-radius:3px;vertical-align:-1px;
  margin-right:4px}
.sb-panel{border-top:1px solid #2b2b2b;background:#1a1a1c;max-height:150px;overflow-y:auto;
  padding:7px 10px}
.sb-row{display:flex;align-items:center;gap:10px;border:1px solid #333;border-radius:8px;
  padding:5px 9px;margin-bottom:5px;background:#191919;font-size:12px}
.sb-row.bad{border-color:#6b2a2a;background:#1e1314}
.sb-row.ackd{border-color:#6d5a19;background:#1d1a10}
.sb-row .g{flex:1}
.sb-row .w{color:#f0b0b0}
.sb-row .a{color:#d9a53a;font-size:11px}
.sb-empty{color:#666;font-size:12px;padding:6px 0}

/* alt+drag duplicate */
.sb-ghost{position:fixed;z-index:955;pointer-events:none;background:#1d2a3f;
  border:1px dashed #5a7ba8;color:#cfe0f7;font-size:11px;font-weight:600;
  padding:3px 9px;border-radius:6px;white-space:nowrap;opacity:.85}
.sb-ghost.ok{background:#1e3a26;border-color:#4a8f5c;color:#cdf0d2;border-style:solid}
.sb-track.dup-ok{outline:2px dashed #4a8f5c;outline-offset:-2px;
  background:rgba(74,143,92,.10)}

.sb-tip{position:fixed;z-index:950;background:#000;border:1px solid #f0a63c;color:#f0a63c;
  font-size:11px;padding:3px 8px;border-radius:6px;pointer-events:none;white-space:nowrap}
.sb-toast{position:fixed;left:50%;transform:translateX(-50%);bottom:24px;z-index:960;
  background:#2a1214;border:1px solid #c0392b;color:#ffdede;border-radius:10px;padding:10px 15px;
  font-size:12px;max-width:min(680px,92vw);box-shadow:0 6px 24px rgba(0,0,0,.6);line-height:1.45}
.sb-toast.warn{background:#231d0e;border-color:#8a6f22;color:#f2e2b6}
.sb-toast.ok{background:#12210f;border-color:#2c7a3f;color:#cdf0d2}
.sb-toast b{color:#fff}
.sb-toast .k{display:block;font-size:11px;color:#d8a2a2;margin-top:3px}
.sb-toast.warn .k{color:#cbb87e}.sb-toast.ok .k{color:#9fd4a8}
