.budget-live-controls{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.budget-live-controls [hidden]{display:none}
.budget-toggle{display:flex;align-items:center;gap:.4rem;font-size:.8rem;white-space:nowrap;cursor:pointer}
.budget-toggle input{accent-color:var(--primary-blue);width:1rem;height:1rem}
.budget-explainer{font-size:.72rem;color:var(--text-secondary);line-height:1.5;margin:.7rem 0 1rem}
.budget-line:has([data-live-field]){grid-template-columns:minmax(260px,2fr) minmax(105px,.6fr) minmax(105px,.6fr) auto;align-items:end}
.budget-line label{display:flex;flex-direction:column;gap:.28rem;color:var(--text-secondary);font-size:.67rem}
.budget-line input,.budget-line select,.wbs-unassigned select{width:100%;background:var(--bg-dark);border:1px solid var(--border-color);color:var(--text-primary);border-radius:5px;padding:.42rem;font-size:.74rem;min-width:0}
.live-line-main{display:grid;grid-template-columns:minmax(160px,1.4fr) minmax(130px,.7fr) minmax(150px,1fr);gap:.35rem}
.live-line-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.15rem}
.live-variance{font-size:.65rem;color:var(--text-secondary);width:100%;white-space:nowrap}
.budget-line button:disabled{opacity:.35;cursor:not-allowed}
.wbs-panel{margin-bottom:1rem}
.wbs-total{display:flex;gap:.7rem;flex-wrap:wrap;margin:1rem 0}
.wbs-total>span{background:var(--bg-dark);border:1px solid var(--border-color);padding:.7rem;border-radius:6px;font-size:.74rem;color:var(--text-secondary)}
.wbs-total strong{display:block;color:var(--text-primary);font-size:1.1rem;margin-top:.25rem}
.wbs-phase{margin:.65rem 0;border:1px solid var(--border-color);border-radius:7px;overflow:hidden}
.wbs-phase>header{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;background:var(--bg-dark);padding:.65rem .8rem}
.wbs-phase>header strong{font-size:.8rem}.wbs-phase>header span{font-size:.7rem;color:var(--text-secondary);flex:1}
.wbs-task{display:flex;align-items:center;gap:.6rem;border-top:1px solid var(--border-color);padding:.55rem .8rem;font-size:.75rem}
.wbs-task>div{flex:1;min-width:100px}.wbs-task strong,.wbs-task small{display:block}.wbs-task small{color:var(--text-secondary);margin-top:.2rem}
.wbs-cost{color:var(--text-secondary);font-size:.7rem}
.wbs-unassigned select{width:auto;margin:.4rem .8rem}
@media(max-width:950px){.budget-line:has([data-live-field]){grid-template-columns:1fr 1fr}.live-line-main{grid-column:1/-1}}
@media(max-width:600px){.live-line-main{grid-template-columns:1fr}.wbs-task{flex-wrap:wrap}.wbs-cost{width:100%}}