
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=DM+Sans:wght@300;400;500;600&display=swap');
:root {
  /* ── Arctic night base ── */
  --bg:#020810; --s1:#060d18; --s2:#0b1422; --s3:#101c2e;
  --b1:#162038; --b2:#1e2e4a; --b3:#2a3f62;

  /* ── Aurora primary: teal-green ── */
  --amber:#00e5b0; --amberL:rgba(0,229,176,.10); --amberB:rgba(0,229,176,.30);

  /* ── Aurora secondary: violet ── */
  --blue:#7c6bff; --blueL:rgba(124,107,255,.10); --blueB:rgba(124,107,255,.28);

  /* ── Aurora accent: bright green ── */
  --green:#39ffa0; --greenL:rgba(57,255,160,.08); --greenB:rgba(57,255,160,.26);

  /* ── Status: red stays red ── */
  --red:#ff4d6a; --redL:rgba(255,77,106,.10); --redB:rgba(255,77,106,.28);

  /* ── Aurora magenta ── */
  --purple:#d46cff; --purpleL:rgba(212,108,255,.10);

  /* ── Aurora cyan ── */
  --teal:#00ffe1; --tealL:rgba(0,255,225,.08);

  /* ── Aurora deep rose ── */
  --orange:#ff6eb4;

  /* ── Text ── */
  --t1:#d8f0ec; --t2:#6a9e9a; --t3:#2e5c5a; --t4:#162e2c;

  /* ── Task grid ── */
  --tg-cols:220px 110px 80px 96px 96px 96px 150px 160px 120px 80px;

  --mono:'IBM Plex Mono',monospace; --sans:'DM Sans',sans-serif;
  --r:5px; --r2:8px; --r3:12px;

  /* ── Aurora glow effects ── */
  --glow-green:0 0 24px rgba(57,255,160,.18),0 0 60px rgba(57,255,160,.08);
  --glow-violet:0 0 24px rgba(124,107,255,.18),0 0 60px rgba(124,107,255,.08);
  --glow-teal:0 0 20px rgba(0,255,225,.15);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden}
body{font-family:var(--sans);background:var(--bg);color:var(--t1);font-size:13px;line-height:1.5}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--b2);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--b3)}

/* ── TOPBAR ── */
.topbar{height:48px;background:var(--s1);border-bottom:1px solid var(--b1);display:flex;align-items:center;padding:0 16px;gap:4px;flex-shrink:0}
.logo{font-family:var(--mono);font-size:16px;font-weight:600;color:var(--amber);letter-spacing:1px;margin-right:16px;padding-right:16px;border-right:1px solid var(--b1)}
.logo span{color:var(--t1)}
.tab{padding:6px 12px;font-size:11px;font-family:var(--mono);letter-spacing:.5px;color:var(--t3);cursor:pointer;border-radius:var(--r);transition:all .15s;border:1px solid transparent}
.tab:hover{color:var(--t2);background:var(--s2)}
.tab.active{color:var(--amber);background:var(--amberL);border-color:var(--amberB)}
.topbar-r{margin-left:auto;display:flex;gap:8px;align-items:center}

/* ── LAYOUT ── */
.app{display:flex;height:calc(100vh - 48px);overflow:hidden}
.sidebar{width:220px;flex-shrink:0;background:var(--s1);border-right:1px solid var(--b1);display:flex;flex-direction:column;overflow:hidden}
.sidebar-inner{flex:1;overflow-y:auto;padding:12px 0}
.main{flex:1;overflow:hidden;display:flex;flex-direction:column}
.view{display:none;flex:1;overflow:auto;padding:16px}
.view.active{display:block}

/* ── SIDEBAR ── */
.sb-sec{padding:0 12px;margin-bottom:4px}
.sb-lbl{font-size:9px;font-family:var(--mono);letter-spacing:1.5px;color:var(--t3);text-transform:uppercase;padding:8px 4px 4px}
.sb-proj{display:flex;align-items:center;gap:8px;padding:7px 8px;cursor:pointer;border-radius:var(--r);transition:all .15s;border:1px solid transparent}
.sb-proj:hover{background:var(--s2)}
.sb-proj.active{background:var(--amberL);border-color:var(--amberB)}
.sb-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.sb-pname{font-size:12px;font-weight:500;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sb-count{font-family:var(--mono);font-size:9px;color:var(--t3);flex-shrink:0}
.sb-add{display:flex;align-items:center;gap:6px;padding:6px 8px;cursor:pointer;color:var(--t3);font-size:11px;border-radius:var(--r);transition:all .15s;margin:4px 12px}
.sb-add:hover{color:var(--amber);background:var(--amberL)}

/* ── BUTTONS ── */
.btn{padding:6px 12px;border:1px solid var(--b1);background:var(--s2);color:var(--t2);font-family:var(--mono);font-size:10px;letter-spacing:.5px;cursor:pointer;border-radius:var(--r);transition:all .15s;white-space:nowrap;display:inline-flex;align-items:center;gap:5px}
.btn:hover{border-color:var(--b2);color:var(--t1)}
.btn.primary{background:var(--amberL);border-color:var(--amberB);color:var(--amber)}
.btn.primary:hover{background:var(--amber);color:#000}
.btn.blue{background:var(--blueL);border-color:var(--blueB);color:var(--blue)}
.btn.blue:hover{background:var(--blue);color:#000}
.btn.green{background:var(--greenL);border-color:var(--greenB);color:var(--green)}
.btn.green:hover{background:var(--green);color:#000}
.btn.red{background:var(--redL);border-color:var(--redB);color:var(--red)}
.btn.sm{padding:3px 8px;font-size:9px}
.btn.icon{padding:4px 6px;font-size:13px}

/* ── CARDS ── */
.card{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r2);padding:14px}
.card-title{font-size:11px;font-family:var(--mono);letter-spacing:1px;color:var(--t3);text-transform:uppercase;margin-bottom:10px}

/* ── BADGES ── */
.badge{display:inline-flex;align-items:center;font-size:9px;font-weight:600;padding:2px 7px;border-radius:99px;white-space:nowrap;font-family:var(--mono);letter-spacing:.3px}
.b-amber{background:var(--amberL);color:var(--amber);border:1px solid var(--amberB)}
.b-blue{background:var(--blueL);color:var(--blue);border:1px solid var(--blueB)}
.b-green{background:var(--greenL);color:var(--green);border:1px solid var(--greenB)}
.b-red{background:var(--redL);color:var(--red);border:1px solid var(--redB)}
.b-purple{background:var(--purpleL);color:var(--purple);border:1px solid rgba(167,139,250,.3)}
.b-teal{background:var(--tealL);color:var(--teal);border:1px solid rgba(34,211,238,.3)}
.b-gray{background:var(--s3);color:var(--t2);border:1px solid var(--b1)}
.b-orange{background:rgba(251,146,60,.1);color:var(--orange);border:1px solid rgba(251,146,60,.3)}
.b-pinned{background:rgba(255,85,102,.08);color:var(--red);border:1px solid rgba(255,85,102,.2);font-size:8px;padding:1px 5px}

/* ── PROGRESS ── */
.prog-wrap{display:flex;align-items:center;gap:6px}
.prog-bg{flex:1;height:4px;background:var(--b1);border-radius:2px;overflow:hidden;min-width:30px}
.prog-fill{height:4px;border-radius:2px;transition:width .4s}
.prog-lbl{font-family:var(--mono);font-size:9px;color:var(--t2);min-width:24px;text-align:right}

/* ── TASK TABLE ── */
.task-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.task-grid{border:1px solid var(--b1);border-radius:var(--r2);overflow-x:auto;background:var(--s1)}
.tg-header{display:grid;background:var(--s2);border-bottom:1px solid var(--b1);padding:0}
.tg-row{display:grid;border-bottom:1px solid var(--b1);min-height:38px;transition:background .1s;cursor:pointer}
.tg-row:last-child{border-bottom:none}
.tg-row:hover{background:var(--s2)}
.tg-row.selected{background:var(--amberL)}
.tg-row.subtask-row{background:rgba(7,9,15,.4)}
.tg-row.subtask-row:hover{background:var(--s2)}
.tg-cell{padding:7px 10px;display:flex;align-items:center;font-size:12px;border-right:1px solid var(--b1)}
.tg-cell:last-child{border-right:none}
.tg-hcell{padding:7px 10px;display:flex;align-items:center;font-size:9px;font-family:var(--mono);letter-spacing:.8px;color:var(--t3);text-transform:uppercase;border-right:1px solid var(--b1)}
.tg-hcell:last-child{border-right:none}
.task-indent{padding-left:28px !important}
.task-name-cell{display:flex;align-items:center;gap:7px;min-width:0}
.task-expand{background:none;border:none;cursor:pointer;color:var(--t3);font-size:11px;padding:0 3px;line-height:1;transition:transform .15s;flex-shrink:0}
.task-expand.open{transform:rotate(90deg)}
.task-title{font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.subtask-title{font-size:11px;color:var(--t2)}
.dep-badge{font-family:var(--mono);font-size:9px;color:var(--t3);background:var(--s3);padding:1px 5px;border-radius:3px;flex-shrink:0}

/* ── SKILL CHIPS on tasks ── */
.skill-alloc{display:flex;flex-wrap:wrap;gap:3px}
.skill-chip{font-family:var(--mono);font-size:9px;padding:1px 5px;border-radius:3px;border:1px solid;white-space:nowrap}

/* ── RESOURCE CHIP ── */
.res-chip{display:flex;align-items:center;gap:4px;font-size:10px;padding:1px 6px;border-radius:99px;border:1px solid var(--b2);background:var(--s3);cursor:default}
.res-avatar{width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:600;font-family:var(--mono);flex-shrink:0}
.res-pin-icon{font-size:9px;color:var(--red);margin-left:2px}

/* ── GANTT ── */
.gantt-wrap{overflow:auto;border:1px solid var(--b1);border-radius:var(--r2);background:var(--s1)}
.g-header{display:flex;background:var(--s2);border-bottom:1px solid var(--b1);position:sticky;top:0;z-index:10}
.g-lbl{width:260px;min-width:260px;padding:7px 10px;font-family:var(--mono);font-size:9px;color:var(--t3);letter-spacing:.8px;border-right:1px solid var(--b1);flex-shrink:0}
.g-periods{display:flex;flex:1}
.g-period{text-align:center;padding:5px 2px;font-family:var(--mono);font-size:8px;color:var(--t3);border-right:1px solid var(--b1);white-space:nowrap;overflow:hidden}
.g-body-row{display:flex;border-bottom:1px solid var(--b1);min-height:34px}
.g-body-row:last-child{border-bottom:none}
.g-body-row:hover{background:rgba(255,255,255,.015)}
.g-name{width:260px;min-width:260px;padding:6px 10px;border-right:1px solid var(--b1);flex-shrink:0;display:flex;align-items:center;gap:6px}
.g-name.sub{padding-left:26px;background:rgba(7,9,15,.3)}
.g-cells{flex:1;position:relative;display:flex;align-items:center}
.g-cell{border-right:1px solid rgba(37,45,64,.5);flex-shrink:0;align-self:stretch}
.g-cell.today-c{background:rgba(74,158,255,.05)}
.g-cell.holiday-c{background:rgba(167,139,250,.05)}
.g-cell.wknd-c{background:rgba(7,9,15,.4)}
.g-bar{position:absolute;height:18px;border-radius:3px;display:flex;align-items:center;padding:0 6px;font-family:var(--mono);font-size:8px;font-weight:600;color:rgba(0,0,0,.85);overflow:hidden;white-space:nowrap;cursor:pointer;z-index:2;transition:filter .1s}
.g-bar:hover{filter:brightness(1.15)}
.g-bar-prog{position:absolute;height:18px;border-radius:3px;opacity:.28;pointer-events:none;z-index:3}
.g-today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--blue);opacity:.6;z-index:5;pointer-events:none}
.g-dep-arrow{position:absolute;z-index:4;pointer-events:none}

/* ── RESOURCE VIEW ── */
.res-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.res-card{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r2);padding:14px;transition:border-color .15s}
.res-card:hover{border-color:var(--b2)}
.res-card-avatar{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;font-family:var(--mono);flex-shrink:0}
.cap-bg{height:5px;background:var(--b1);border-radius:3px;overflow:hidden;margin-top:4px}
.cap-fill{height:5px;border-radius:3px;transition:width .4s}
.vendor-card{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r2);padding:14px;border-left:3px solid var(--orange)}

/* ── MODAL ── */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:500;display:none;align-items:flex-start;justify-content:center;padding:20px;overflow-y:auto}
.modal-bg.open{display:flex}
.modal{background:var(--s1);border:1px solid var(--b1);border-top:2px solid var(--amber);border-radius:var(--r2);padding:24px;width:600px;max-width:100%;margin:auto}
.modal.wide{width:740px}
.modal-title{font-size:15px;font-weight:600;margin-bottom:18px}
.modal-sec{font-family:var(--mono);font-size:9px;letter-spacing:1.5px;color:var(--t3);text-transform:uppercase;margin:16px 0 8px;padding-bottom:5px;border-bottom:1px solid var(--b1)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.fg{margin-bottom:10px}
.fl{font-size:10px;font-family:var(--mono);letter-spacing:1px;color:var(--t2);text-transform:uppercase;display:block;margin-bottom:5px}
.fi,.fs,.fta{width:100%;padding:8px 10px;background:var(--bg);border:1px solid var(--b1);color:var(--t1);font-family:var(--sans);font-size:12px;outline:none;border-radius:var(--r);transition:border .15s}
.fi:focus,.fs:focus,.fta:focus{border-color:var(--amber)}
.fs{appearance:none;cursor:pointer}
.fta{resize:vertical;min-height:60px}
.fi[type=number]{font-family:var(--mono)}
.mac{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--b1)}
select option{background:var(--s1)}

/* ── SKILL ALLOC TABLE in modal ── */
.skill-alloc-table{width:100%;border-collapse:collapse}
.skill-alloc-table th{font-size:9px;font-family:var(--mono);letter-spacing:.8px;color:var(--t3);padding:5px 8px;border-bottom:1px solid var(--b1);text-align:left;text-transform:uppercase}
.skill-alloc-table td{padding:5px 8px;border-bottom:1px solid var(--b1);font-size:11px;vertical-align:middle}
.skill-alloc-table tr:last-child td{border-bottom:none}

/* ── VACATION TABLE ── */
.vac-list{display:flex;flex-direction:column;gap:5px}
.vac-item{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--s2);border:1px solid var(--b1);border-radius:var(--r)}

/* ── STATS ROW ── */
.stats-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}
.stat{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r2);padding:12px 14px}
.stat-val{font-family:var(--mono);font-size:24px;font-weight:600;line-height:1;margin-bottom:2px}
.stat-lbl{font-size:10px;color:var(--t2)}
.stat.blue .stat-val{color:var(--blue)}.stat.amber .stat-val{color:var(--amber)}.stat.green .stat-val{color:var(--green)}.stat.red .stat-val{color:var(--red)}

/* ── VENDOR HOURS ── */
.vendor-month-bar{display:flex;gap:3px;flex-wrap:wrap;margin-top:8px}
.vmb-seg{height:18px;border-radius:2px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:8px;font-weight:600;color:rgba(0,0,0,.8);transition:filter .1s}
.vmb-seg:hover{filter:brightness(1.2)}

/* ── DEPT SKILL COLORS ── */
.sc-BA{background:rgba(167,139,250,.12);color:#a78bfa;border-color:rgba(167,139,250,.3)}
.sc-Dev{background:rgba(61,214,140,.1);color:#3dd68c;border-color:rgba(61,214,140,.28)}
.sc-Admin{background:rgba(232,160,32,.1);color:#e8a020;border-color:rgba(232,160,32,.28)}
.sc-QA{background:rgba(255,85,102,.1);color:#ff5566;border-color:rgba(255,85,102,.28)}
.sc-Biz{background:rgba(251,146,60,.1);color:#fb923c;border-color:rgba(251,146,60,.28)}
.sc-DevOps{background:rgba(74,158,255,.1);color:#4a9eff;border-color:rgba(74,158,255,.28)}
.sc-PM{background:rgba(34,211,238,.1);color:#22d3ee;border-color:rgba(34,211,238,.28)}
.sc-Vendor{background:rgba(251,146,60,.08);color:#fb923c;border-color:rgba(251,146,60,.25)}

/* ── EMPTY STATE ── */
.empty{padding:48px 24px;text-align:center;color:var(--t3)}
.empty-icon{font-size:32px;margin-bottom:12px;opacity:.5}
.empty-txt{font-size:13px}

/* ── ALLOCATION VIEW ── */
.alloc-person-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--b1)}
.alloc-person-row:last-child{border-bottom:none}
.alloc-task-list{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}
.alloc-task-item{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--t2)}
.alloc-task-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.overload{border-color:rgba(255,85,102,.35)!important;background:rgba(255,85,102,.04)!important}

/* ── VENDOR POOL ── */
.vendor-pool-bar{height:12px;background:var(--b1);border-radius:6px;overflow:hidden;margin-top:6px}
.vendor-pool-fill{height:12px;border-radius:6px;transition:width .4s;background:var(--orange)}

/* ── INLINE EDIT ── */
.editable{cursor:pointer;border-bottom:1px dashed transparent;transition:border-color .1s}
.editable:hover{border-bottom-color:var(--t3)}

/* ── LOGIN SCREEN ── */
#login-screen{position:fixed;inset:0;background:#020810;display:flex;align-items:center;justify-content:center;z-index:2000;overflow:hidden}
#login-canvas{position:absolute;inset:0;width:100%;height:100%}
.lbox{
  position:relative;z-index:2;
  background:rgba(6,13,24,0.82);
  border:1px solid rgba(0,229,176,.22);
  border-top:2px solid var(--amber);
  border-radius:var(--r2);
  padding:44px 40px;width:400px;
  backdrop-filter:blur(12px);
  box-shadow:0 0 60px rgba(0,229,176,.08),0 0 120px rgba(124,107,255,.06),inset 0 1px 0 rgba(0,229,176,.1);
}
.lbrand{font-family:var(--mono);font-size:24px;font-weight:600;color:var(--amber);letter-spacing:2px;margin-bottom:3px;text-shadow:0 0 20px rgba(0,229,176,.4)}
.lbrand span{color:var(--t1)}
.lsub{font-size:10px;color:var(--t3);font-family:var(--mono);letter-spacing:2px;margin-bottom:32px;text-transform:uppercase}
.llbl{font-size:10px;font-family:var(--mono);letter-spacing:1px;color:var(--t2);text-transform:uppercase;display:block;margin-bottom:5px}
.linp{width:100%;padding:10px 12px;background:rgba(2,8,16,.7);border:1px solid var(--b1);color:var(--t1);font-family:var(--mono);font-size:13px;outline:none;border-radius:var(--r);transition:border .2s,box-shadow .2s;margin-bottom:14px}
.linp:focus{border-color:var(--amber);box-shadow:0 0 12px rgba(0,229,176,.15)}
.lbtn{width:100%;padding:12px;background:linear-gradient(135deg,var(--amber),rgba(0,200,140,.8));border:none;color:#001a14;font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:2px;cursor:pointer;border-radius:var(--r);transition:all .2s;box-shadow:0 0 20px rgba(0,229,176,.2)}
.lbtn:hover{box-shadow:0 0 32px rgba(0,229,176,.4);transform:translateY(-1px)}
.lerr{color:var(--red);font-family:var(--mono);font-size:11px;margin-top:10px;display:none}
.lhint{color:var(--t3);font-family:var(--mono);font-size:9px;margin-top:14px;line-height:1.8}

/* ── USER CHIP IN TOPBAR ── */
.user-chip{display:flex;align-items:center;gap:7px;padding:4px 10px;background:var(--s2);border:1px solid var(--b1);border-radius:var(--r);cursor:pointer;transition:border-color .15s}
.user-chip:hover{border-color:var(--b2)}
.user-avatar{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;font-family:var(--mono)}
.role-badge-admin{background:rgba(232,160,32,.12);color:var(--amber);border:1px solid var(--amberB)}
.role-badge-pm{background:rgba(74,158,255,.12);color:var(--blue);border:1px solid var(--blueB)}
.role-badge-user{background:rgba(61,214,140,.1);color:var(--green);border:1px solid var(--greenB)}

/* ── USER MANAGEMENT VIEW ── */
.um-table{width:100%;border-collapse:collapse}
.um-table th{font-size:9px;font-family:var(--mono);letter-spacing:.8px;color:var(--t3);padding:7px 10px;border-bottom:1px solid var(--b1);text-align:left;text-transform:uppercase;background:var(--s2)}
.um-table td{padding:9px 10px;border-bottom:1px solid var(--b1);font-size:12px;vertical-align:middle}
.um-table tr:last-child td{border-bottom:none}
.um-table tr:hover td{background:var(--s2)}
.role-pill{display:inline-flex;align-items:center;font-size:10px;font-weight:600;padding:3px 9px;border-radius:99px;font-family:var(--mono)}
.rp-admin{background:rgba(232,160,32,.12);color:var(--amber);border:1px solid var(--amberB)}
.rp-pm{background:rgba(74,158,255,.12);color:var(--blue);border:1px solid var(--blueB)}
.rp-user{background:rgba(61,214,140,.1);color:var(--green);border:1px solid var(--greenB)}

/* ── LOCKED OVERLAY ── */
.locked-overlay{position:absolute;inset:0;background:rgba(7,9,15,.75);display:flex;align-items:center;justify-content:center;border-radius:var(--r2);z-index:10;font-family:var(--mono);font-size:11px;color:var(--t3);pointer-events:all;cursor:not-allowed}

/* ── HOME DASHBOARD ── */
.home-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.home-stat{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r2);padding:14px 16px}
.home-stat .sv{font-family:var(--mono);font-size:28px;font-weight:600;line-height:1;margin-bottom:3px}
.home-stat .sl{font-size:10px;color:var(--t2);font-family:var(--mono);letter-spacing:.5px}
.home-stat.blue .sv{color:var(--blue)}.home-stat.amber .sv{color:var(--amber)}
.home-stat.green .sv{color:var(--green)}.home-stat.red .sv{color:var(--red)}.home-stat.purple .sv{color:var(--purple)}
.home-row{display:grid;gap:14px;margin-bottom:16px}
.home-row-2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.home-row-3{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr)}
.task-item{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--b1);font-size:11px}
.task-item:last-child{border-bottom:none}
.task-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.proj-summary-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--b1)}
.proj-summary-row:last-child{border-bottom:none}
.mini-gantt-bar{height:6px;border-radius:3px;transition:width .4s}
.mini-gantt-bg{flex:1;height:6px;background:var(--b1);border-radius:3px;overflow:hidden;min-width:60px}
.alloc-mini-bar{height:4px;background:var(--b1);border-radius:2px;overflow:hidden;margin-top:3px}
.alloc-mini-fill{height:4px;border-radius:2px}
.section-hdr{font-family:var(--mono);font-size:9px;letter-spacing:1.5px;color:var(--t3);text-transform:uppercase;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--b1)}

/* ── AI AGENT PANEL ── */
.ai-panel{position:fixed;bottom:20px;right:20px;z-index:800;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.ai-fab{width:48px;height:48px;border-radius:50%;background:var(--amber);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;transition:all .2s;box-shadow:0 4px 20px rgba(232,160,32,.3)}
.ai-fab:hover{transform:scale(1.08)}
.ai-fab.active{background:var(--blue)}
.ai-chat{width:400px;background:var(--s1);border:1px solid var(--b1);border-radius:var(--r2);overflow:hidden;display:none;flex-direction:column;max-height:520px;box-shadow:0 8px 40px rgba(0,0,0,.5)}
.ai-chat.open{display:flex}
.ai-chat-hdr{background:var(--s2);padding:12px 14px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--b1);flex-shrink:0}
.ai-chat-hdr-title{font-size:12px;font-weight:600;flex:1}
.ai-chat-hdr-sub{font-size:10px;color:var(--t2);font-family:var(--mono)}
.ai-chat-body{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;min-height:200px}
.ai-msg{padding:8px 11px;border-radius:var(--r2);font-size:11px;line-height:1.6;max-width:90%}
.ai-msg.assistant{background:var(--s2);color:var(--t1);align-self:flex-start;border:1px solid var(--b1)}
.ai-msg.user{background:var(--amberL);color:var(--amber);align-self:flex-end;border:1px solid var(--amberB)}
.ai-msg.system{background:rgba(74,158,255,.08);color:var(--blue);align-self:center;font-size:10px;font-family:var(--mono);border:1px solid var(--blueB)}
.ai-msg pre{white-space:pre-wrap;font-family:var(--mono);font-size:10px;margin-top:6px;background:var(--bg);padding:8px;border-radius:var(--r);border:1px solid var(--b1)}
.ai-chat-input{border-top:1px solid var(--b1);padding:10px;display:flex;gap:7px;flex-shrink:0}
.ai-chat-input textarea{flex:1;background:var(--bg);border:1px solid var(--b1);color:var(--t1);font-family:var(--sans);font-size:12px;padding:7px 9px;border-radius:var(--r);outline:none;resize:none;min-height:38px;max-height:100px;line-height:1.5}
.ai-chat-input textarea:focus{border-color:var(--amber)}
.ai-thinking{display:flex;gap:4px;align-items:center;padding:8px 11px}
.ai-thinking span{width:6px;height:6px;border-radius:50%;background:var(--t3);animation:bounce .9s infinite}
.ai-thinking span:nth-child(2){animation-delay:.2s}.ai-thinking span:nth-child(3){animation-delay:.4s}
@keyframes bounce{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-6px)}}
.ai-suggestion-chips{display:flex;flex-wrap:wrap;gap:5px;padding:6px 12px;border-top:1px solid var(--b1)}
.ai-chip{font-size:10px;padding:3px 9px;border:1px solid var(--b1);border-radius:99px;cursor:pointer;color:var(--t2);transition:all .15s;background:var(--s2)}
.ai-chip:hover{border-color:var(--amber);color:var(--amber)}
.api-key-bar{background:var(--s2);border-bottom:1px solid var(--b1);padding:7px 12px;display:flex;gap:7px;align-items:center;font-size:10px;color:var(--t2)}
.api-key-bar input{flex:1;padding:4px 8px;background:var(--bg);border:1px solid var(--b1);color:var(--t1);font-family:var(--mono);font-size:11px;outline:none;border-radius:var(--r)}
.api-key-bar input:focus{border-color:var(--amber)}

/* ── REFORECAST ── */
.reforecast-history{display:flex;flex-direction:column;gap:5px;max-height:180px;overflow-y:auto}
.rfh-item{display:flex;align-items:flex-start;gap:8px;padding:7px 10px;background:var(--s2);border:1px solid var(--b1);border-radius:var(--r);font-size:11px}
.rfh-dot{width:8px;height:8px;border-radius:50%;background:var(--amber);margin-top:3px;flex-shrink:0}
.rfh-dot.original{background:var(--green)}.rfh-dot.current{background:var(--blue)}
.rfh-meta{font-family:var(--mono);font-size:9px;color:var(--t3)}

/* ── REQUIREMENTS ── */
.req-card{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r2);padding:14px;margin-bottom:12px;transition:border-color .15s;cursor:pointer}
.req-card:hover{border-color:var(--b2)}
.req-section{background:var(--s2);border:1px solid var(--b1);border-radius:var(--r);padding:12px;margin-bottom:10px}
.req-section-title{font-family:var(--mono);font-size:9px;letter-spacing:1.5px;color:var(--t3);text-transform:uppercase;margin-bottom:8px}
.sign-off-row{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--b1);font-size:11px}
.sign-off-row:last-child{border-bottom:none}
.sign-check{width:16px;height:16px;border:1px solid var(--b2);border-radius:3px;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--green)}
.sign-check.signed{background:var(--greenL);border-color:var(--greenB)}
.ai-suggestion-item{background:var(--s2);border:1px solid var(--blueB);border-radius:var(--r);padding:10px 12px;margin-bottom:8px;font-size:11px}
.ai-suggestion-item .ai-sug-hdr{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-weight:600}
.ai-suggestion-actions{display:flex;gap:6px;margin-top:8px}

/* ── PROJECT CARD PICKER in task modal ── */
.proj-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;margin-bottom:4px}
.proj-card-opt{border:2px solid var(--b1);border-radius:var(--r2);padding:10px 12px;cursor:pointer;transition:all .15s;position:relative;background:var(--s2)}
.proj-card-opt:hover{border-color:var(--b2);background:var(--s3)}
.proj-card-opt.selected{background:var(--amberL);border-color:var(--amber)}
.proj-card-opt .pc-dot{width:10px;height:10px;border-radius:50%;margin-bottom:6px}
.proj-card-opt .pc-name{font-size:11px;font-weight:600;line-height:1.3;margin-bottom:3px}
.proj-card-opt .pc-meta{font-size:9px;color:var(--t3);font-family:var(--mono)}
.proj-card-opt .pc-check{position:absolute;top:6px;right:6px;color:var(--amber);font-size:12px;display:none}
.proj-card-opt.selected .pc-check{display:block}
/* ── Task modal project bar showing currently selected ── */
.task-proj-bar{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--s2);border:1px solid var(--b1);border-radius:var(--r);margin-bottom:8px;font-size:12px}

/* ═══════════════════════════════════════════
   MOBILE OPTIMISATIONS  (≤768px)
═══════════════════════════════════════════ */
@media(max-width:768px){
  /* ── Topbar: hide text tabs, show hamburger ── */
  .topbar{padding:0 10px;gap:0;height:52px}
  .tab{display:none!important}
  .logo{font-size:14px;margin-right:8px;padding-right:8px}
  #btn-add-project,#btn-auto-alloc{display:none!important}
  #btn-add-task{padding:5px 10px;font-size:10px}
  .user-chip span:not(.badge){display:none}
  #mob-menu-btn{display:flex!important}

  /* ── Hide desktop sidebar ── */
  .sidebar{display:none}

  /* ── App fills full width ── */
  .app{height:calc(100vh - 52px - 56px)} /* topbar + bottom nav */
  .view{padding:12px}

  /* ── Bottom navigation bar ── */
  #bottom-nav{display:flex!important}

  /* ── Home grid: 2-col on mobile ── */
  .home-grid{grid-template-columns:repeat(2,1fr)!important;gap:8px}
  .home-row-3,.home-row-2{grid-template-columns:1fr!important}

  /* ── Stats row: 2 col ── */
  .stats-row{grid-template-columns:repeat(2,1fr)!important}

  /* ── Task grid: card-based on mobile ── */
  .task-grid{overflow-x:visible!important}
  #tg-header{display:none!important}
  .tg-row{
    display:flex!important;
    flex-direction:column!important;
    gap:6px!important;
    padding:12px!important;
    border-bottom:1px solid var(--b1)!important;
    min-height:unset!important;
    grid-template-columns:unset!important;
    min-width:unset!important;
  }
  .tg-cell{
    padding:0!important;
    border-right:none!important;
    font-size:12px!important;
    display:flex!important;
    align-items:center!important;
    flex-wrap:wrap!important;
    gap:5px!important;
  }
  .tg-cell:empty,.tg-cell:only-child{display:none!important}
  .task-name-cell{gap:6px}
  .task-indent{padding-left:20px!important}
  .skill-alloc{flex-wrap:wrap}

  /* ── Resources: 1 col ── */
  .res-grid{grid-template-columns:1fr!important}

  /* ── Modals: full screen ── */
  .modal-bg{padding:0!important;align-items:flex-end!important}
  .modal,.modal.wide{
    width:100%!important;max-width:100%!important;
    border-radius:var(--r2) var(--r2) 0 0!important;
    max-height:calc(92vh - 56px)!important;overflow-y:auto!important;
    padding:20px 16px 24px!important;
    margin:0!important;
  }
  .form-row,.form-row-3{grid-template-columns:1fr!important}
  /* Sticky action buttons above bottom nav */
  .mac{
    flex-wrap:wrap;gap:8px;
    position:sticky!important;
    bottom:0!important;
    background:var(--s1)!important;
    padding:12px 0 4px!important;
    margin-top:12px!important;
    border-top:1px solid var(--b1)!important;
    z-index:10!important;
  }

  /* ── AI panel: full bottom sheet ── */
  .ai-panel{bottom:64px;right:8px;left:8px;align-items:stretch}
  .ai-chat{width:100%!important;max-height:70vh!important;border-radius:var(--r2)!important}

  /* ── Project meta panel: stack ── */
  #proj-meta-panel [style*="grid"]{display:block!important}
  #proj-meta-panel [style*="grid-template"]{grid-template-columns:1fr 1fr!important}

  /* ── Gantt: show label only, scroll bars ── */
  .g-lbl,.g-name{width:120px!important;min-width:120px!important;font-size:10px!important}
  .g-period{font-size:7px!important}

  /* ── Req view ── */
  #req-detail [style*="grid-template-columns:minmax"]{display:block!important}

  /* ── Task toolbar: wrap ── */
  .task-toolbar{flex-wrap:wrap;gap:6px}
  .task-toolbar select{width:100px!important}

  /* ── Sign-off rows ── */
  .sign-off-row{flex-wrap:wrap}

  /* ── Proj card grid in task modal ── */
  .proj-card-grid{grid-template-columns:repeat(2,1fr)!important}

  /* ── Make taps feel native ── */
  .btn,.tab,.sb-proj,.req-card,.res-card,.proj-card-opt{
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
  }
  input,select,textarea{font-size:16px!important} /* prevent iOS zoom */
  .fi,.fs,.fta,.linp{font-size:16px!important}
}

/* Tablet: 769-1024 */
@media(min-width:769px) and (max-width:1024px){
  .sidebar{width:180px}
  .home-grid{grid-template-columns:repeat(4,1fr)}
  .home-row-3{grid-template-columns:1fr 1fr!important}
  .tab{padding:5px 8px;font-size:10px}
  .ai-chat{width:340px}
  .modal{width:90vw}
  .modal.wide{width:95vw}
}

/* ── Bottom nav ── */
#bottom-nav{
  display:none;position:fixed;bottom:0;left:0;right:0;height:56px;
  background:var(--s1);border-top:1px solid var(--b1);
  z-index:700;align-items:stretch;
}
.bnav-item{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:3px;cursor:pointer;color:var(--t3);font-size:8px;font-family:var(--mono);
  letter-spacing:.5px;text-transform:uppercase;padding:6px 2px;
  border:none;background:none;-webkit-tap-highlight-color:transparent;
  transition:color .15s;
}
.bnav-item .bnav-icon{font-size:18px;line-height:1}
.bnav-item.active{color:var(--amber)}
.bnav-item.active .bnav-icon{filter:drop-shadow(0 0 4px rgba(232,160,32,.6))}

/* ── Mobile drawer overlay for sidebar ── */
#mob-drawer{
  display:none;position:fixed;inset:0;z-index:900;
}
#mob-drawer.open{display:block}
#mob-drawer-backdrop{
  position:absolute;inset:0;background:rgba(0,0,0,.6);
}
#mob-drawer-panel{
  position:absolute;left:0;top:0;bottom:0;width:260px;
  background:var(--s1);border-right:1px solid var(--b1);
  overflow-y:auto;padding:16px 0;transform:translateX(-100%);
  transition:transform .25s ease;
}
#mob-drawer.open #mob-drawer-panel{transform:translateX(0)}
#mob-menu-btn{
  display:none;width:36px;height:36px;border:1px solid var(--b1);
  background:var(--s2);border-radius:var(--r);cursor:pointer;
  align-items:center;justify-content:center;font-size:16px;color:var(--t2);
  flex-shrink:0;margin-right:4px;
}

/* ── Requirements project filter ── */
#req-proj-filter-bar .btn.active{background:var(--amberL);border-color:var(--amberB);color:var(--amber)}
.req-proj-group-hdr{display:flex;align-items:center;gap:8px;padding:8px 0 6px;margin-bottom:6px;border-bottom:1px solid var(--b1)}
.req-proj-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.req-proj-name{font-size:11px;font-weight:600;font-family:var(--mono);letter-spacing:.5px}
.req-proj-count{font-size:9px;color:var(--t3);font-family:var(--mono)}
.req-card-proj-tag{display:inline-flex;align-items:center;gap:4px;font-size:9px;font-family:var(--mono);padding:2px 6px;border-radius:3px;border:1px solid var(--b1);background:var(--s2);color:var(--t3)}

/* ── Allocation scope modal ── */
#m-alloc-scope label:has(input:checked){border-color:var(--green)!important}
#scope-opt-project:has(input:checked){border-color:var(--blue)!important}
#scope-opt-tag:has(input:checked){border-color:var(--purple)!important}
.alloc-tag-chip{padding:4px 10px;border-radius:99px;border:2px solid var(--b1);background:var(--s3);font-size:10px;font-family:var(--mono);cursor:pointer;transition:all .15s;color:var(--t2);-webkit-tap-highlight-color:transparent}
.alloc-tag-chip.selected{background:var(--purpleL);border-color:rgba(167,139,250,.4);color:var(--purple)}
/* ── Allocation view toolbar ── */
.alloc-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.alloc-scope-badge{display:flex;align-items:center;gap:6px;padding:5px 10px;background:var(--greenL);border:1px solid var(--greenB);border-radius:var(--r);font-size:10px;font-family:var(--mono);color:var(--green)}

/* ═══════════════════════════════════════
   NORTHERN LIGHTS IN-APP THEMING
═══════════════════════════════════════ */

/* Topbar aurora glow */
.topbar{background:rgba(6,13,24,.95)!important;border-bottom:1px solid rgba(0,229,176,.12)!important;backdrop-filter:blur(8px)}
.logo{text-shadow:0 0 16px rgba(0,229,176,.4)}

/* Tab active aurora glow */
.tab.active{
  color:var(--amber)!important;
  background:rgba(0,229,176,.08)!important;
  border-color:rgba(0,229,176,.25)!important;
  box-shadow:0 0 12px rgba(0,229,176,.1);
}

/* Sidebar aurora accent */
.sidebar{background:rgba(6,13,24,.98)!important;border-right:1px solid rgba(0,229,176,.08)!important}
.sb-proj.active{
  background:rgba(0,229,176,.07)!important;
  border-color:rgba(0,229,176,.2)!important;
  box-shadow:inset 2px 0 0 var(--amber);
}

/* Cards — subtle aurora shimmer border */
.card{
  background:var(--s1)!important;
  border:1px solid rgba(0,229,176,.08)!important;
  position:relative;overflow:hidden;
}
.card::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(0,229,176,.02) 0%,transparent 50%,rgba(124,107,255,.02) 100%);
  pointer-events:none;
}

/* Stat tiles — aurora tint */
.stat.blue .stat-val{color:var(--blue)!important;text-shadow:0 0 16px rgba(124,107,255,.3)}
.stat.green .stat-val{color:var(--green)!important;text-shadow:0 0 16px rgba(57,255,160,.3)}
.stat.amber .stat-val{color:var(--amber)!important;text-shadow:0 0 16px rgba(0,229,176,.3)}
.stat.red .stat-val{color:var(--red)!important}

/* Home stat tiles — aurora gradient on hover */
.home-stat{transition:border-color .2s,box-shadow .2s}
.home-stat:hover{border-color:rgba(0,229,176,.2)!important;box-shadow:0 0 24px rgba(0,229,176,.06)}

/* Primary button — aurora gradient */
.btn.primary{
  background:linear-gradient(135deg,rgba(0,229,176,.15),rgba(124,107,255,.1))!important;
  border-color:rgba(0,229,176,.3)!important;
  color:var(--amber)!important;
}
.btn.primary:hover{
  background:linear-gradient(135deg,var(--amber),rgba(0,200,140,.8))!important;
  color:#001a14!important;
  box-shadow:0 0 20px rgba(0,229,176,.25);
}

/* Green button — aurora green */
.btn.green{background:rgba(57,255,160,.08)!important;border-color:rgba(57,255,160,.25)!important;color:var(--green)!important}
.btn.green:hover{background:var(--green)!important;color:#001a14!important;box-shadow:0 0 16px rgba(57,255,160,.3)}

/* Modal aurora top border */
.modal{border-top:2px solid var(--amber)!important;box-shadow:0 0 60px rgba(0,229,176,.06),0 20px 60px rgba(0,0,0,.6)}

/* AI fab — aurora glow */
.ai-fab{background:linear-gradient(135deg,var(--amber),rgba(124,107,255,.8))!important;box-shadow:0 0 20px rgba(0,229,176,.3),0 0 40px rgba(124,107,255,.15)!important}
.ai-fab.active{background:linear-gradient(135deg,var(--blue),var(--purple))!important}

/* AI chat — aurora border */
.ai-chat{border:1px solid rgba(0,229,176,.15)!important;box-shadow:0 0 40px rgba(0,229,176,.08),0 8px 40px rgba(0,0,0,.6)!important}
.ai-chat-hdr{background:linear-gradient(135deg,rgba(0,229,176,.06),rgba(124,107,255,.06))!important}

/* Progress bars — aurora gradient */
.prog-fill,.cap-fill{background:linear-gradient(90deg,var(--green),var(--teal))!important}

/* Task row phase indicator */
.tg-row:has([style*="isPhase"]){border-left:2px solid var(--amber)}

/* Req cards — aurora tint on hover */
.req-card:hover{border-color:rgba(0,229,176,.2)!important;box-shadow:0 0 20px rgba(0,229,176,.05)}

/* Gantt today line — aurora */
.g-today-line{background:linear-gradient(180deg,var(--green),var(--teal))!important;box-shadow:0 0 8px rgba(57,255,160,.4)}

/* Aurora shimmer keyframe — used for special elements */
@keyframes aurora-shimmer{
  0%,100%{opacity:.6;filter:hue-rotate(0deg)}
  50%{opacity:1;filter:hue-rotate(20deg)}
}
@keyframes aurora-pulse{
  0%,100%{box-shadow:0 0 16px rgba(0,229,176,.15)}
  50%{box-shadow:0 0 32px rgba(0,229,176,.3),0 0 60px rgba(124,107,255,.1)}
}

/* Overloaded resource row — red aurora */
.overload{
  border:1px solid rgba(255,77,106,.3)!important;
  background:rgba(255,77,106,.04)!important;
  box-shadow:inset 2px 0 0 var(--red);
}

/* Section headers — aurora teal */
.section-hdr,.card-title{color:var(--teal)!important;letter-spacing:1.5px}

/* Vendor card — aurora orange/magenta */
.vendor-card{border-left:3px solid var(--orange)!important;background:linear-gradient(135deg,rgba(255,110,180,.03),transparent)!important}

/* Skill chips — aurora by skill */
.sc-BA{background:rgba(212,108,255,.1)!important;color:var(--purple)!important;border-color:rgba(212,108,255,.25)!important}
.sc-Dev{background:rgba(57,255,160,.08)!important;color:var(--green)!important;border-color:rgba(57,255,160,.22)!important}
.sc-QA{background:rgba(255,77,106,.08)!important;color:var(--red)!important;border-color:rgba(255,77,106,.22)!important}
.sc-DevOps{background:rgba(124,107,255,.08)!important;color:var(--blue)!important;border-color:rgba(124,107,255,.22)!important}
.sc-PM{background:rgba(0,255,225,.07)!important;color:var(--teal)!important;border-color:rgba(0,255,225,.2)!important}
.sc-Admin{background:rgba(0,229,176,.08)!important;color:var(--amber)!important;border-color:rgba(0,229,176,.22)!important}
.sc-Biz{background:rgba(255,110,180,.08)!important;color:var(--orange)!important;border-color:rgba(255,110,180,.22)!important}

/* Allocation scope badge */
.alloc-scope-badge{background:rgba(0,229,176,.08)!important;border-color:rgba(0,229,176,.25)!important;color:var(--amber)!important}

/* Sidebar aurora project dots pulse on active */
.sb-proj.active .sb-dot{box-shadow:0 0 8px currentColor}

/* Bottom nav aurora */
#bottom-nav{background:rgba(6,13,24,.95)!important;border-top:1px solid rgba(0,229,176,.1)!important;backdrop-filter:blur(8px)}
.bnav-item.active{color:var(--amber)!important}
.bnav-item.active .bnav-icon{text-shadow:0 0 12px rgba(0,229,176,.5)}

/* Drawer aurora */
#mob-drawer-panel{background:rgba(6,13,24,.98)!important;border-right:1px solid rgba(0,229,176,.1)!important}

.bnav-drawer-item{
  display:block;width:100%;text-align:left;padding:10px 12px;
  background:none;border:none;color:var(--t1);font-size:13px;
  cursor:pointer;border-radius:var(--r);transition:background .1s;
  -webkit-tap-highlight-color:transparent;
}
.bnav-drawer-item:hover,.bnav-drawer-item:active{background:var(--s2)}

/* ── Requirements project filter ── */
#req-proj-filter-bar .btn.active{background:var(--amberL);border-color:var(--amberB);color:var(--amber)}
.req-proj-group-hdr{display:flex;align-items:center;gap:8px;padding:8px 0 6px;margin-bottom:6px;border-bottom:1px solid var(--b1)}
.req-proj-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.req-proj-name{font-size:11px;font-weight:600;font-family:var(--mono);letter-spacing:.5px}
.req-proj-count{font-size:9px;color:var(--t3);font-family:var(--mono)}
.req-card-proj-tag{display:inline-flex;align-items:center;gap:4px;font-size:9px;font-family:var(--mono);padding:2px 6px;border-radius:3px;border:1px solid var(--b1);background:var(--s2);color:var(--t3)}

/* ── Allocation scope modal ── */
#m-alloc-scope label:has(input:checked){border-color:var(--green)!important}
#scope-opt-project:has(input:checked){border-color:var(--blue)!important}
#scope-opt-tag:has(input:checked){border-color:var(--purple)!important}
.alloc-tag-chip{padding:4px 10px;border-radius:99px;border:2px solid var(--b1);background:var(--s3);font-size:10px;font-family:var(--mono);cursor:pointer;transition:all .15s;color:var(--t2);-webkit-tap-highlight-color:transparent}
.alloc-tag-chip.selected{background:var(--purpleL);border-color:rgba(167,139,250,.4);color:var(--purple)}
/* ── Allocation view toolbar ── */
.alloc-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.alloc-scope-badge{display:flex;align-items:center;gap:6px;padding:5px 10px;background:var(--greenL);border:1px solid var(--greenB);border-radius:var(--r);font-size:10px;font-family:var(--mono);color:var(--green)}

