/* ── Assignment Stepper ── */

.stepper-wrap{display:flex;justify-content:center;margin:14px 0 8px;}
.stepper{display:flex;align-items:flex-start;gap:0;max-width:500px;width:100%;}

.step{display:flex;flex-direction:column;align-items:center;position:relative;flex:1;}
.step:not(:last-child)::after{content:'';position:absolute;top:16px;left:calc(50% + 17px);right:calc(-50% + 17px);height:1.5px;background:#D0D8DC;z-index:0;transition:background 0.3s;}
.step.done:not(:last-child)::after{background:#2A9D8F;}
.step.paused-line:not(:last-child)::after{background:#E9950A;}

.step-ball{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:500;position:relative;z-index:1;flex-shrink:0;transition:all 0.2s;border:2px solid #D0D8DC;background:#fff;color:#B0BEC5;cursor:pointer;user-select:none;}
.step-ball:hover:not(.active):not(.paused){border-color:#1B6E8C;color:#1B6E8C;transform:scale(1.08);}
.step-ball.done{background:#2A9D8F;color:#fff;border-color:#2A9D8F;}
.step-ball.done:hover{filter:brightness(0.92);transform:scale(1.08);}
.step-ball.active{background:#1B6E8C;color:#fff;border-color:#1B6E8C;box-shadow:0 0 0 4px #E8F3F7;cursor:default;}
.step-ball.paused{background:#E9950A;color:#fff;border-color:#E9950A;box-shadow:0 0 0 4px #FEF3DC;cursor:pointer;}
.step-ball.paused:hover{filter:brightness(0.92);}

.step-label{font-size:10px;margin-top:5px;color:#7A9AAA;text-align:center;line-height:1.3;white-space:nowrap;}
.step-label.done{color:#2A9D8F;}
.step-label.active{color:#1B6E8C;font-weight:500;}
.step-label.paused{color:#E9950A;font-weight:500;}

/* Pause ball — hidden by default, shown when paused */
.step-pause{display:none;flex-direction:column;align-items:center;position:relative;flex:0 0 auto;width:50px;}
.step-pause.visible{display:flex;}
.step-pause::before{content:'';position:absolute;top:16px;right:calc(50% + 17px);width:24px;height:1.5px;background:#E9950A;z-index:0;}
.step-pause::after{content:'';position:absolute;top:16px;left:calc(50% + 17px);width:24px;height:1.5px;background:#D0D8DC;z-index:0;}

/* ── Status Row ── */
.status-wrap{display:flex;justify-content:center;margin-top:2px;margin-bottom:16px;}
.status-box{border-radius:0 4px 4px 0;padding:2px 7px;display:flex;align-items:center;gap:6px;transition:all 0.2s;max-width:500px;width:100%;}
.status-box.normal{background:#F9FAFB;border:0.5px solid #D0D8DC;border-left:2px solid #1B6E8C;}
.status-box.paused-box{background:#FFFDF5;border:0.5px solid #E9950A;border-left:2px solid #E9950A;}
.status-box.closed-box{background:#F0FAF8;border:0.5px solid #A8DDD5;border-left:2px solid #2A9D8F;}

.status-content{flex:1;}
.status-note{border:none;background:transparent;font-size:10px;color:#4A6572;width:100%;outline:none;font-family:inherit;padding:0;line-height:1.4;}
.status-note::placeholder{color:#C8D0D4;}
.status-note.paused-text{color:#9A6200;font-weight:500;}

.status-actions{display:flex;gap:4px;flex-shrink:0;align-items:center;}

.pause-btn{padding:1px 6px;border-radius:4px;font-size:10px;cursor:pointer;border:0.5px solid #D0D8DC;background:transparent;color:#C8D0D4;display:flex;align-items:center;gap:2px;transition:all 0.15s;line-height:1.4;white-space:nowrap;}
.pause-btn:hover{border-color:#F09595;color:#A02020;background:#FFF5F5;}

.restart-btn{padding:1px 7px;border-radius:4px;font-size:10px;font-weight:500;cursor:pointer;border:none;background:#1B6E8C;color:#fff;display:flex;align-items:center;gap:2px;line-height:1.4;}
.restart-btn:hover{background:#155669;}

.sign-btn{padding:1px 7px;border-radius:4px;font-size:10px;font-weight:500;cursor:pointer;border:none;background:#1B6E8C;color:#fff;line-height:1.4;white-space:nowrap;}
.sign-btn:hover{background:#155669;}

/* ── Report link (header) ── */
.sa-report-link{font-size:11px;color:#1B6E8C;background:none;border:none;text-decoration:none;cursor:pointer;padding:0;}
.sa-report-link:hover{text-decoration:underline;color:#1B6E8C;}

/* ── Ball 1 planning states ── */
.step-ball.dashed-amber{background:#FEF3DC;color:#9A6200;border:2px dashed #E9950A;}
.step-ball.dashed-blue{background:#E8F3F7;color:#1B6E8C;border:2px dashed #1B6E8C;}
.step-ball.dashed-amber-border{background:transparent;color:#E9950A;border:2px dashed #E9950A;}

/* ── Handover delivered-without-sig ── */
.step-ball.delivered{background:#FEF3DC;color:#9A6200;border:2px dashed #E9950A;}
.step.delivered:not(:last-child)::after{background:#E9950A;}

/* ── Label variants ── */
.step-label.unassigned{color:#9A6200;font-weight:500;}
.step-label.partial{color:#1B6E8C;font-weight:500;}
.step-label.delivered{color:#9A6200;font-weight:500;}

/* ── Handover skipped ── */
.step-ball.skipped{background:#F1EFE8;color:#B0BEC5;border:2px dashed #D0D8DC;cursor:default;}
.step-ball.skipped:hover{transform:none;border-color:#D0D8DC;color:#B0BEC5;}
.step.skipped:not(:last-child)::after{background:#D0D8DC;}
.step-label.skipped{color:#B0BEC5;font-weight:500;}

/* ── Close ball next-clickable (dashed amber while handover active) ── */
.step-ball.next-clickable{background:transparent;color:#E9950A;border:2px dashed #E9950A;cursor:pointer;}
.step-ball.next-clickable:hover{background:#FEF3DC;transform:scale(1.08);}
.step-label.next-clickable{color:#9A6200;}

/* ── Skip-handover confirmation tooltip ── */
.skip-confirm{position:absolute;top:42px;left:50%;transform:translateX(-50%);background:#fff;border:0.5px solid #D0D8DC;border-radius:8px;padding:10px 12px;box-shadow:0 4px 12px rgba(0,0,0,0.1);z-index:10;white-space:nowrap;text-align:center;}
.skip-confirm::before{content:'';position:absolute;top:-5px;left:50%;transform:translateX(-50%) rotate(45deg);width:8px;height:8px;background:#fff;border-left:0.5px solid #D0D8DC;border-top:0.5px solid #D0D8DC;}
.skip-confirm p{margin:0 0 8px;font-size:11px;color:#1A2E35;font-weight:500;}
.skip-confirm-btns{display:flex;gap:6px;justify-content:center;}
.skip-confirm-btns button{padding:4px 10px;border-radius:6px;font-size:11px;cursor:pointer;}
.skip-confirm-btns .btn-skip-yes{border:none;background:#1B6E8C;color:#fff;font-weight:500;}
.skip-confirm-btns .btn-skip-yes:hover{background:#155669;}
.skip-confirm-btns .btn-skip-cancel{border:0.5px solid #D0D8DC;background:transparent;color:#4A6572;}
.skip-confirm-btns .btn-skip-cancel:hover{background:#F4F6F7;}

/* ── Returning (field service) ── */
.step-ball.returning{background:#185FA5;color:#fff;border:2px solid #185FA5;box-shadow:0 0 0 4px #E6F1FB;cursor:default;}
.step-ball.returning:hover{transform:none;}
.step.returning-line:not(:last-child)::after{background:#B5D4F4;}
.step-label.returning{color:#185FA5;font-weight:500;}
.status-box.returning-box{background:#F5F9FE;border:0.5px solid #85B7EB;border-left:2px solid #185FA5;}
.status-note.returning-text{color:#185FA5;font-weight:500;}
.returning-btn{padding:1px 8px;border-radius:4px;font-size:10px;cursor:pointer;border:0.5px solid #85B7EB;background:transparent;color:#185FA5;display:flex;align-items:center;gap:2px;transition:all 0.15s;line-height:1.4;white-space:nowrap;}
.returning-btn:hover{background:#E6F1FB;}
.resume-btn{font-size:11px;font-weight:500;color:#1B6E8C;background:none;border:none;cursor:pointer;white-space:nowrap;padding:0;}
.resume-btn:hover{text-decoration:underline;}

/* ── Reopen (from terminal states) ── */
.reopen-btn{padding:1px 7px;border-radius:4px;font-size:10px;font-weight:500;cursor:pointer;border:0.5px solid #D0D8DC;background:transparent;color:#4A6572;display:flex;align-items:center;gap:2px;transition:all 0.15s;line-height:1.4;white-space:nowrap;}
.reopen-btn:hover{border-color:#1B6E8C;color:#1B6E8C;background:#E8F3F7;}

/* ── Locked (paused) ── */
.step-ball.locked{opacity:0.4;cursor:not-allowed;}
.step-ball.locked:hover{border-color:#D0D8DC;color:#B0BEC5;transform:none;}

/* ── Cancelled ── */
.step-ball.cancelled{opacity:0.3;cursor:default;}
.step-ball.cancelled:hover{transform:none;}
.step-label.cancelled{opacity:0.3;}
.status-box.cancelled-box{background:#FFF5F5;border:0.5px solid #F09595;border-left:2px solid #D64045;}

/* ── Third Party (amber) ── */
.step-ball.thirdparty{background:#FEF3DC;color:#9A6200;border:2px solid #E9950A;box-shadow:0 0 0 4px #FEF3DC;cursor:default;}
.step-ball.thirdparty:hover{transform:none;}
.step-label.thirdparty{color:#9A6200;font-weight:500;}

.stepper-hint{font-size:10px;color:#D0D8DC;margin-top:5px;text-align:center;}
