:root{--bg:#0b0f17;--panel:#121a27;--panel2:#0f1622;--muted:#8ea0b8;--text:#e9f0ff;--line:#243246;--line2:#1b2636;--accent:#6ea8ff;--nameColW:220px;--rowH:92px;--headerH:66px;--startMin:360;--endMin:1080;--pxPerMin:2}.board{grid-template-columns:var(--nameColW)1fr;grid-template-rows:var(--headerH)1fr;border-top:1px solid #ffffff0f;height:calc(100vh - 74px);display:grid}.boardHeaderLeft{z-index:2;background:#121a27d9;border-right:1px solid #ffffff12;justify-content:space-between;align-items:center;padding:14px;display:flex;position:sticky;top:0;left:0}.boardHeaderRight{z-index:1;background:#121a27b8;border-bottom:1px solid #ffffff12;position:sticky;top:0;overflow:auto}.timeline{width:var(--timelineW);height:var(--headerH);align-items:flex-end;padding:10px 0;display:flex;position:relative}.tick{background:#ffffff0f;width:1px;position:absolute;top:0;bottom:0}.tickLabel{color:#e9f0ffbf;font-size:12px;position:absolute;bottom:10px;transform:translate(-50%)}.boardBodyLeft{z-index:1;background:#0f1622e6;border-right:1px solid #ffffff12;position:sticky;left:0;overflow:auto}.boardBodyRight{background:#0f1622b8;overflow:auto}.nameRow{height:var(--rowH);color:#e9f0ffe6;border-bottom:1px solid #ffffff0f;align-items:center;padding:0 14px;font-size:13px;display:flex}.grid{width:var(--timelineW);position:relative;overflow:visible}.gridRow{height:var(--rowH);background:linear-gradient(90deg,#ffffff09 1px,transparent 1px)0 0/calc(30*var(--pxPerMin)*1px)100%;border-bottom:1px solid #ffffff0f;position:relative;overflow:visible}.gridRow:before{content:"";background:linear-gradient(90deg,#ffffff14 1px,transparent 1px)0 0/calc(60*var(--pxPerMin)*1px)100%;opacity:.35;pointer-events:none;position:absolute;inset:0}.taskCard{height:calc(var(--rowH) - 28px);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border:1px solid #ffffff1f;border-radius:14px;flex-direction:column;justify-content:space-between;padding:10px 12px;display:flex;position:absolute;top:14px;overflow:hidden;box-shadow:0 10px 22px #00000040}.taskCard.prod{background:linear-gradient(135deg,#6ea8ff59,#6ea8ff24);border-color:#6ea8ff61}.taskCard.adhoc{background:linear-gradient(135deg,#ffb0204d,#ffb0201f);border-color:#ffb02059}.taskCard:active{cursor:grabbing}.taskCard.dragging{outline:2px solid #e9f0ff40;box-shadow:0 16px 36px #0006}.taskCard.conflict{outline:2px solid #ffb020b3;box-shadow:0 14px 30px #ffb0201a,0 12px 26px #00000059}.taskCard.conflict:after{content:"⚠";color:#e9f0fff2;pointer-events:none;background:#ffb0202e;border:1px solid #ffb02059;border-radius:999px;padding:6px 7px;font-size:12px;line-height:1;position:absolute;top:8px;right:10px}.taskTop{justify-content:space-between;align-items:flex-start;gap:10px;min-width:0;display:flex}.taskTitle{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:13px;line-height:1.15;overflow:hidden}.taskSub{color:#e9f0ffc7;white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:12px;overflow:hidden}.taskPill{color:#e9f0ffe6;white-space:nowrap;background:#0000002e;border:1px solid #ffffff1f;border-radius:999px;flex:none;padding:5px 8px;font-size:11px}.taskFoot{color:#e9f0ffcc;justify-content:space-between;align-items:center;gap:10px;font-size:11px;display:flex}.taskId{opacity:.8;white-space:nowrap}.taskMeta{color:#8ea0b8f2;margin-top:6px;font-size:12px}.nowLine{pointer-events:none;z-index:5;border-left:2px solid #ff4d4dd9;width:0;position:absolute;top:0;bottom:0}.nowTag{color:#e9f0fff2;pointer-events:none;z-index:6;background:#ff4d4d29;border:1px solid #ff4d4d52;border-radius:999px;padding:5px 8px;font-size:11px;position:absolute;top:8px;transform:translate(-50%)}
.modalBackdrop{z-index:100;background:#0000008c;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.modal{background:linear-gradient(#121a27fa,#0c121cfa);border:1px solid #ffffff1a;border-radius:18px;width:min(720px,100%);overflow:hidden;box-shadow:0 10px 30px #00000059}.modalHead{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.modalHead h3{margin:0;font-size:14px}.modalBody{padding:16px}.modalFoot{border-top:1px solid #ffffff14;justify-content:flex-end;gap:10px;padding:14px 16px;display:flex}.modalClose{color:#e9f0ffbf;cursor:pointer;background:0 0;border:none;margin-left:auto;font-size:20px;line-height:1}
