
#jp-schedule{--bg:#0e1217; --bg2:#11161d; --panel:#151b24; --panel2:#1a212c;
  --brand:#2f9aa6; --blue:#5b8def; --blue-m:#6f9bef; --teal:#46c0d0;
  --amber:#e0a23b; --green:#3fb27f; --money:#48c78e; --red:#e0566f; --purple:#9b6dff;
  --text:#eef2f7; --text2:#a7b2c0; --text3:#6b7787;
  --border:rgba(255,255,255,.085); --border-2:rgba(255,255,255,.16);
  --r-sm:8px; --r:12px;
  --c-earth:#c0855c; --c-rough:#5b8def; --c-struct:#4aa6cc; --c-shell:#3fb27f;
  --c-deck:#7f8da3; --c-equip:#9b6dff; --c-finish:#e07b9a; --c-insp:#e0a23b;}
#jp-schedule{font-family:var(--font-ui);color:var(--text);font-size:14px;line-height:1.45;background:transparent;text-align:left}
#jp-schedule:not([hidden]){display:flex;flex-direction:column;height:100%;min-height:0}
#jp-schedule *{box-sizing:border-box}#jp-schedule .wrap{max-width:1280px;margin:0 auto;padding:18px 22px 12px;height:100vh;display:flex;flex-direction:column;overflow:hidden}#jp-schedule h1, #jp-schedule h2, #jp-schedule h3{font-family:"Fraunces",Georgia,serif;font-weight:600;margin:0}#jp-schedule .ic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}#jp-schedule .ic.sm{width:13px;height:13px}#jp-schedule .ic.lg{width:20px;height:20px}#jp-schedule .head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:10px;flex-shrink:0}#jp-schedule .brand{display:flex;align-items:center;gap:13px}#jp-schedule .logo{width:42px;height:42px;border-radius:11px;background:linear-gradient(150deg,var(--brand),#1f6f78);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 6px 18px rgba(47,154,166,.3)}#jp-schedule .logo .ic{width:23px;height:23px;stroke-width:2.1}#jp-schedule .htitle{font-size:25px;letter-spacing:-.4px;line-height:1.05}#jp-schedule .hsub{color:var(--text3);font-size:12.5px;margin-top:3px}#jp-schedule .pill{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--amber);background:rgba(224,162,59,.12);border:1px solid rgba(224,162,59,.4);border-radius:20px;padding:3px 9px;vertical-align:3px;margin-left:10px}#jp-schedule .ctrls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--border);border-radius:var(--r);padding:12px 14px;margin-bottom:10px;flex-shrink:0}#jp-schedule .field{display:flex;align-items:center;gap:8px}#jp-schedule .field label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text3)}#jp-schedule input[type=date]{background:rgba(0,0,0,.22);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-family:inherit;font-size:13px;padding:7px 10px;outline:none;color-scheme:dark}#jp-schedule input[type=date]:focus{border-color:var(--blue-m)}#jp-schedule .btn{display:inline-flex;align-items:center;gap:7px;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--text2);background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:var(--r-sm);padding:7px 12px;cursor:pointer;transition:all .13s}#jp-schedule .btn:hover{color:var(--text);border-color:var(--border-2);background:rgba(255,255,255,.07)}#jp-schedule .btn.rain:hover{color:#bcd8ff;border-color:rgba(91,141,239,.5);background:rgba(91,141,239,.12)}#jp-schedule .spacer{flex:1}
/* The 10-day forecast is a FULL-WIDTH band across the controls banner (Ryan: "10 day forecast
   needs to take up more of the banner"): it wraps onto its own row (flex-basis 100%) and the ten
   days spread edge-to-edge (each fc-day flex:1), noticeably larger than the old right-aligned strip. */
#jp-schedule .forecast{flex:1 1 100%;display:flex;align-items:stretch;gap:6px;flex-wrap:nowrap;margin-top:7px;padding-top:11px;border-top:1px solid var(--border)}#jp-schedule .fc-lbl{flex:0 0 auto;align-self:center;font-size:10px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--text3);margin-right:8px}#jp-schedule .fc-day{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border-radius:9px;background:rgba(255,255,255,.03);border:1px solid var(--border)}#jp-schedule .fc-day.rain{background:rgba(91,141,239,.1);border-color:rgba(91,141,239,.3)}#jp-schedule .fc-dow{font-size:10px;font-weight:800;color:var(--text3);text-transform:uppercase;letter-spacing:.3px}#jp-schedule .fc-ic{width:22px;height:22px;margin:2px 0}#jp-schedule .fc-ic.sun{color:#e8b84b}#jp-schedule .fc-ic.cloud{color:#9aa6b5}#jp-schedule .fc-ic.rain{color:#6f9bef}#jp-schedule .fc-hi{font-size:13.5px;font-weight:700;color:var(--text2);font-variant-numeric:tabular-nums}#jp-schedule .toggle{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--text2);cursor:pointer;user-select:none;padding:6px 8px;border-radius:var(--r-sm)}#jp-schedule .toggle:hover{color:var(--text)}#jp-schedule .sw{width:34px;height:19px;border-radius:11px;background:rgba(255,255,255,.14);position:relative;transition:background .15s;flex-shrink:0}#jp-schedule .sw::after{content:"";position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:#fff;transition:transform .15s}#jp-schedule .toggle.on .sw{background:var(--brand)}#jp-schedule .toggle.on .sw::after{transform:translateX(15px)}#jp-schedule .summary{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:12px;margin-bottom:10px;flex-shrink:0}#jp-schedule .kpi{background:var(--panel);border:1px solid var(--border);border-radius:var(--r);padding:13px 16px}#jp-schedule .kpi .lab{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text3);margin-bottom:6px;display:flex;align-items:center;gap:6px}#jp-schedule .kpi .big{font-family:"Fraunces",serif;font-size:21px;font-weight:600;letter-spacing:-.3px;line-height:1.1}#jp-schedule .kpi .sub{font-size:11.5px;color:var(--text3);margin-top:3px}#jp-schedule .kpi.feature{background:linear-gradient(150deg,rgba(47,154,166,.14),rgba(47,154,166,.03))}#jp-schedule .badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:3px 9px;border-radius:20px;margin-top:7px}#jp-schedule .badge.ok{color:#8fe3bf;background:rgba(63,178,127,.14);border:1px solid rgba(63,178,127,.4)}#jp-schedule .badge.warn{color:#f0c887;background:rgba(224,162,59,.14);border:1px solid rgba(224,162,59,.4)}#jp-schedule .legend{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:11.5px;color:var(--text2);margin-bottom:8px;padding:0 2px;flex-shrink:0}#jp-schedule .lg{display:inline-flex;align-items:center;gap:7px}#jp-schedule .dot{width:11px;height:11px;border-radius:3px;flex-shrink:0}#jp-schedule .dot.gate{transform:rotate(45deg);border-radius:2px;width:9px;height:9px;background:var(--c-insp)}#jp-schedule .dot.cure{background:repeating-linear-gradient(45deg,rgba(255,255,255,.3),rgba(255,255,255,.3) 2px,transparent 2px,transparent 5px);border:1px solid var(--border-2)}#jp-schedule .dot.home{background:var(--purple);border-radius:50%}#jp-schedule .split{display:grid;grid-template-columns:392px 1fr;gap:16px;align-items:stretch;grid-template-rows:minmax(0,1fr);flex:1;min-height:0}#jp-schedule .panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;min-height:0}#jp-schedule .phead{display:flex;align-items:center;justify-content:space-between;padding:12px 15px;border-bottom:1px solid var(--border);background:var(--bg2);flex-shrink:0}#jp-schedule .phead .pt{font-size:12.5px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--text2);display:flex;align-items:center;gap:8px}#jp-schedule .phead .pc{font-size:11px;color:var(--text3);font-weight:600}#jp-schedule .plist{flex:1;min-height:0;overflow-y:auto}#jp-schedule .prow{border-bottom:1px solid var(--border);position:relative;transition:background .12s}#jp-schedule .prow-head{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;user-select:none}#jp-schedule .prow-head:hover{background:rgba(255,255,255,.02)}#jp-schedule .chev{width:15px;height:15px;color:var(--text3);transition:transform .15s;flex-shrink:0}#jp-schedule .chev.open{transform:rotate(90deg)}#jp-schedule .prow-body{padding:0 14px 12px 40px}#jp-schedule .prow-body.hidden{display:none}#jp-schedule .wdelay{display:inline-flex;align-items:center;gap:5px}#jp-schedule .wnum{width:44px;background:rgba(0,0,0,.22);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:inherit;font-size:11.5px;font-weight:700;padding:3px 5px;outline:none;text-align:center}#jp-schedule .wnum:focus{border-color:var(--blue-m)}#jp-schedule .wlbl{font-size:11px;color:var(--text3);font-weight:600}#jp-schedule .kpi .big.phase{font-family:"Hanken Grotesk",sans-serif;font-size:15.5px;font-weight:700;line-height:1.2;letter-spacing:0}#jp-schedule .prow:last-child{border-bottom:none}#jp-schedule .prow:hover, #jp-schedule .prow.hot{background:rgba(91,141,239,.08)}#jp-schedule .prow::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent;transition:background .12s}#jp-schedule .prow.hot::before{background:var(--rc,var(--blue-m))}#jp-schedule .pnum{width:26px;height:26px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:#08121a;margin-top:1px}#jp-schedule .pnum.gate{color:#3a2706;background:linear-gradient(150deg,#eab74f,var(--c-insp))}#jp-schedule .pmain{flex:1;min-width:0}#jp-schedule .pn{font-size:13.5px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:7px;flex-wrap:wrap}#jp-schedule .pmeta{font-size:11.5px;color:var(--text3);margin-top:2px;font-variant-numeric:tabular-nums}#jp-schedule .pmeta b{color:var(--text2);font-weight:700}#jp-schedule .ptags{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}#jp-schedule .chip{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;padding:2px 8px;border-radius:20px;white-space:nowrap}#jp-schedule .chip.insp{color:#f0c887;background:rgba(224,162,59,.14);border:1px solid rgba(224,162,59,.38)}#jp-schedule .chip.home{color:#d3bcff;background:rgba(155,109,255,.14);border:1px solid rgba(155,109,255,.36)}#jp-schedule .chip.cure{color:var(--text2);background:rgba(255,255,255,.05);border:1px solid var(--border)}#jp-schedule .chip.st{border:1px solid var(--border)}#jp-schedule .chip.st.notscheduled{color:var(--text3);background:rgba(255,255,255,.04);border:1px dashed var(--border-2)}#jp-schedule .chip.st.scheduled{color:#bcd2ff;background:rgba(91,141,239,.16);border-color:rgba(91,141,239,.45)}#jp-schedule .chip.st.prog{color:#f0c887;background:rgba(224,162,59,.18);border-color:rgba(224,162,59,.5)}#jp-schedule .chip.st.delay{color:#f3a3b1;background:rgba(224,86,111,.18);border-color:rgba(224,86,111,.5)}#jp-schedule .chip.st.done{color:#8fe3bf;background:rgba(63,178,127,.18);border-color:rgba(63,178,127,.5)}#jp-schedule .pctrl{display:flex;align-items:center;gap:7px;margin-top:9px;flex-wrap:wrap}#jp-schedule .stepper{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:7px;overflow:hidden}#jp-schedule .stepper button{width:23px;height:24px;border:none;background:rgba(255,255,255,.04);color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center}#jp-schedule .stepper button:hover{background:rgba(255,255,255,.1);color:var(--text)}#jp-schedule .stepper span{min-width:30px;text-align:center;font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums}#jp-schedule .sel{background:rgba(0,0,0,.22);border:1px solid var(--border);border-radius:7px;color:var(--text2);font-family:inherit;font-size:11.5px;font-weight:600;padding:4px 7px;outline:none;cursor:pointer;max-width:150px}#jp-schedule .sel:focus{border-color:var(--blue-m)}#jp-schedule .linkbtn{background:none;border:1px solid var(--border);color:var(--text3);font-family:inherit;font-size:11px;font-weight:700;cursor:pointer;padding:4px 9px;border-radius:7px;display:inline-flex;align-items:center;gap:5px}#jp-schedule .linkbtn:hover{color:var(--blue-m);border-color:rgba(91,141,239,.4);background:rgba(91,141,239,.08)}#jp-schedule .linkbtn.ok:hover{color:var(--green);border-color:rgba(63,178,127,.4);background:rgba(63,178,127,.08)}#jp-schedule .linkbtn.warn:hover{color:var(--amber);border-color:rgba(224,162,59,.4);background:rgba(224,162,59,.08)}#jp-schedule .calwrap{padding:14px 16px 18px;flex:1;min-height:0;display:flex;flex-direction:column}#jp-schedule .calhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;flex-shrink:0}#jp-schedule .calhead .cm{font-family:"Fraunces",serif;font-size:18px;font-weight:600}#jp-schedule .calhead .ck{font-size:11.5px;color:var(--text3);display:flex;gap:14px}#jp-schedule .dow{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:5px;flex-shrink:0}#jp-schedule .dow span{text-align:center;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text3);padding:2px 0}#jp-schedule #js-calendar{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column}#jp-schedule .week{display:grid;grid-template-columns:repeat(7,1fr);position:relative;flex:1;min-height:64px}#jp-schedule .cell{position:relative;min-height:64px;border:1px solid var(--border);background:rgba(255,255,255,.012);padding:4px 6px}#jp-schedule .cell.wknd{background:rgba(255,255,255,.03)}#jp-schedule .cell.out{opacity:.3}#jp-schedule .cell.today{box-shadow:0 0 0 2px var(--red) inset;z-index:2}#jp-schedule .cell .dn{font-size:11.5px;font-weight:700;color:var(--text2);text-align:right;font-variant-numeric:tabular-nums}#jp-schedule .cell.today .dn{color:var(--red)}#jp-schedule .cell .mo{float:left;font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--text3);margin-top:1px}#jp-schedule .lane{position:absolute;left:0;right:0;top:25px;height:30px;pointer-events:none}#jp-schedule .cbar{position:absolute;top:2px;height:23px;border-radius:6px;display:flex;align-items:center;padding:0 7px;font-size:10.5px;font-weight:700;color:#08121a;white-space:nowrap;overflow:hidden;box-shadow:0 2px 7px rgba(0,0,0,.3);pointer-events:auto;transition:filter .12s,box-shadow .12s}#jp-schedule .cbar:hover, #jp-schedule .cbar.hot{filter:brightness(1.1);box-shadow:0 3px 12px rgba(0,0,0,.45);z-index:5}#jp-schedule .cbar.cont-l{border-top-left-radius:0;border-bottom-left-radius:0}#jp-schedule .cbar.cont-r{border-top-right-radius:0;border-bottom-right-radius:0}#jp-schedule .cbar.done{opacity:.5}#jp-schedule .cbar.delay{outline:2px solid var(--red);outline-offset:-1px}#jp-schedule .cbar.prog::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,rgba(255,255,255,.2),rgba(255,255,255,.2) 5px,transparent 5px,transparent 10px)}#jp-schedule .cbar .hf{width:13px;height:13px;border-radius:50%;background:var(--purple);display:inline-flex;align-items:center;justify-content:center;margin-left:5px;flex-shrink:0;box-shadow:0 0 0 1.5px rgba(0,0,0,.25)}#jp-schedule .cbar .hf .ic{width:8px;height:8px;stroke:#fff;stroke-width:2.6}#jp-schedule .ccure{position:absolute;top:5px;height:17px;border-radius:5px;background:repeating-linear-gradient(45deg,rgba(255,255,255,.16),rgba(255,255,255,.16) 3px,transparent 3px,transparent 7px);border:1px dashed var(--border-2);display:flex;align-items:center;padding:0 6px;font-size:9px;font-weight:700;color:var(--text3);white-space:nowrap;overflow:hidden;pointer-events:auto}#jp-schedule .cgate{position:absolute;top:2px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;pointer-events:auto}#jp-schedule .cgate .gm{width:24px;height:24px;border-radius:7px;background:linear-gradient(150deg,#eab74f,var(--c-insp));display:flex;align-items:center;justify-content:center;color:#3a2706;transform:rotate(45deg);box-shadow:0 2px 7px rgba(224,162,59,.4);transition:filter .12s}#jp-schedule .cgate.hot .gm{filter:brightness(1.14)}#jp-schedule .cgate .gm .ic{transform:rotate(-45deg);width:13px;height:13px;stroke-width:2.4}#jp-schedule .cgate.pass .gm{background:linear-gradient(150deg,#5fd6a3,var(--green));color:#06251a}#jp-schedule .cgate.fail .gm{background:linear-gradient(150deg,#ef7d92,var(--red));color:#fff}#jp-schedule .cbar{cursor:grab}#jp-schedule .cgate{cursor:grab}#jp-schedule.cli .cbar, #jp-schedule.cli .cgate{cursor:default}#jp-schedule .cbar.pinned{box-shadow:0 0 0 2px var(--amber),0 2px 7px rgba(0,0,0,.35)}#jp-schedule .cgate.pinned .gm{box-shadow:0 0 0 2px var(--amber),0 2px 7px rgba(224,162,59,.4)}#jp-schedule .pinico{display:inline-flex;width:13px;height:13px;border-radius:3px;background:rgba(0,0,0,.3);align-items:center;justify-content:center;margin-right:5px;flex-shrink:0}#jp-schedule .pinico .ic{width:9px;height:9px;stroke:#ffe1a8;stroke-width:2.5}#jp-schedule .cbar.conflict{outline:2px solid var(--red);outline-offset:-1px;background-image:repeating-linear-gradient(45deg,rgba(224,86,111,.5),rgba(224,86,111,.5) 5px,transparent 5px,transparent 10px)}#jp-schedule .cgate.conflict .gm{box-shadow:0 0 0 2px var(--red)}#jp-schedule .dragging{opacity:.9;z-index:9!important;cursor:grabbing}#jp-schedule .drag-tip{position:fixed;background:#11161d;border:1px solid var(--border-2);border-radius:7px;padding:4px 9px;font-size:11.5px;font-weight:700;color:var(--text);pointer-events:none;z-index:60;white-space:nowrap;box-shadow:0 6px 20px rgba(0,0,0,.5)}#jp-schedule .chip.pin{color:#f0c887;background:rgba(224,162,59,.16);border:1px solid rgba(224,162,59,.45)}#jp-schedule .chip.conflict{color:#f3a3b1;background:rgba(224,86,111,.16);border:1px solid rgba(224,86,111,.5)}#jp-schedule .linkbtn.pinned{color:var(--amber);border-color:rgba(224,162,59,.5);background:rgba(224,162,59,.1)}#jp-schedule .pindate{background:rgba(0,0,0,.22);border:1px solid rgba(224,162,59,.4);border-radius:7px;color:#f0c887;font-family:inherit;font-size:11px;font-weight:700;padding:3px 6px;outline:none;color-scheme:dark}#jp-schedule .swatch{width:26px;height:26px;border:1px solid var(--border-2);border-radius:8px;padding:0;background:none;cursor:pointer;flex-shrink:0;margin-top:1px}#jp-schedule .swatch::-webkit-color-swatch-wrapper{padding:0}#jp-schedule .swatch::-webkit-color-swatch{border:none;border-radius:7px}#jp-schedule .swatch::-moz-color-swatch{border:none;border-radius:7px}#jp-schedule .nameinput{background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text);font-family:inherit;font-size:13.5px;font-weight:700;padding:2px 6px;flex:1;min-width:130px;max-width:260px}#jp-schedule .nameinput:hover{border-color:var(--border)}#jp-schedule .nameinput:focus{border-color:var(--blue-m);background:rgba(0,0,0,.22);outline:none}#jp-schedule .setdate{background:rgba(0,0,0,.22);border:1px solid var(--border);border-radius:7px;color:var(--text2);font-family:inherit;font-size:11px;font-weight:600;padding:4px 6px;outline:none;color-scheme:dark}#jp-schedule .setdate:focus{border-color:var(--blue-m)}#jp-schedule .setdate.set{border-color:rgba(63,178,127,.45);color:#9fe7c4}#jp-schedule .delbtn{margin-left:auto;width:26px;height:26px;border:1px solid var(--border);border-radius:7px;background:rgba(255,255,255,.03);color:var(--text3);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}#jp-schedule .delbtn:hover{color:var(--red);border-color:rgba(224,86,111,.45);background:rgba(224,86,111,.1)}#jp-schedule .addbar{display:flex;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border);background:var(--bg2);flex-shrink:0}#jp-schedule .addbtn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-family:inherit;font-size:12.5px;font-weight:700;color:var(--text2);background:rgba(255,255,255,.04);border:1px dashed var(--border-2);border-radius:var(--r-sm);padding:9px;cursor:pointer;transition:all .13s}#jp-schedule .addbtn:hover{color:var(--text);border-color:var(--blue-m);background:rgba(91,141,239,.08)}#jp-schedule .chip.unsched{color:var(--text3);background:rgba(255,255,255,.04);border:1px dashed var(--border-2)}#jp-schedule .cal-empty{display:flex;align-items:center;gap:10px;justify-content:center;text-align:center;color:var(--text3);font-size:12.5px;font-weight:600;padding:14px;margin-bottom:10px;border:1px dashed var(--border-2);border-radius:var(--r);background:rgba(255,255,255,.015);flex-shrink:0}#jp-schedule .cal-empty .ic{color:var(--text3);width:18px;height:18px}#jp-schedule .row-ro-swatch{display:none;width:26px;height:26px;border-radius:8px;border:1px solid var(--border-2);flex-shrink:0;margin-top:1px}#jp-schedule .pn-ro{display:none;font-size:13.5px;font-weight:700;color:var(--text);padding:2px 6px;flex:1}#jp-schedule.cli .row-ro-swatch{display:inline-block}#jp-schedule.cli .pn-ro{display:block}#jp-schedule .cbanner{display:none;align-items:center;gap:10px;background:linear-gradient(150deg,rgba(63,178,127,.14),rgba(63,178,127,.03));border:1px solid rgba(63,178,127,.36);border-radius:var(--r);padding:11px 15px;margin-bottom:10px;color:#9fe7c4;font-size:12.5px;font-weight:600;flex-shrink:0}#jp-schedule.cli .cbanner{display:flex}#jp-schedule.cli .admin-only{display:none!important}#jp-schedule .toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:#11161d;border:1px solid var(--border-2);border-radius:10px;padding:11px 16px;font-size:13px;font-weight:600;color:var(--text);box-shadow:0 12px 40px rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:all .25s;z-index:50;display:flex;align-items:center;gap:9px}#jp-schedule .toast.show{opacity:1;transform:translateX(-50%) translateY(0)}#jp-schedule .toast .ic{color:var(--blue-m)}#jp-schedule .foot{margin-top:8px;text-align:center;color:var(--text3);font-size:11px;line-height:1.4;flex-shrink:0}
#jp-schedule .irec{margin:8px 0 2px;padding:8px 11px;border-radius:9px;font-size:12px;color:var(--text2);border:1px solid var(--border);border-left:3px solid var(--green);background:rgba(63,178,127,.07)}
#jp-schedule .irec.bad{border-left-color:var(--red);background:rgba(224,86,111,.07)}
#jp-schedule .irec b{color:#8fe3bf;font-size:11px;letter-spacing:.4px}
#jp-schedule .irec.bad b{color:#f3a3b1}
#jp-schedule .irec .irn{margin-top:4px;color:var(--text2);font-size:11.5px;line-height:1.45}
#jp-schedule .irec .irat{display:block;margin-top:4px;color:var(--text3);font-size:10px}
#jp-schedule .irec-form{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px;padding:10px;border:1px dashed var(--border-2);border-radius:9px;background:rgba(255,255,255,.02)}
#jp-schedule .irec-form input{background:rgba(0,0,0,.22);border:1px solid var(--border);border-radius:7px;color:var(--text);font-family:inherit;font-size:11.5px;padding:5px 8px;outline:none;flex:1;min-width:120px;color-scheme:dark}
#jp-schedule .irec-form input:focus{border-color:var(--blue-m)}
#jp-schedule .irec-form .irf-wide{flex-basis:100%}
#jp-schedule .irec-form .irf-btns{display:flex;gap:7px;flex-basis:100%}


@media (max-width:1180px){#jp-schedule .fc-lbl{display:none}}
@media (max-width:980px){#jp-schedule .wrap{height:auto;overflow:visible}#jp-schedule .split{grid-template-columns:1fr;grid-template-rows:auto auto;flex:none}#jp-schedule .summary{grid-template-columns:1fr 1fr}#jp-schedule .split>.panel{height:auto;min-height:0}#jp-schedule .plist{max-height:460px}#jp-schedule #js-calendar{overflow:visible}#jp-schedule .week{flex:none}}
#jp-schedule .wrap{max-width:none!important;margin:0!important;padding:2px 0 0 0!important}
@media (min-width:981px){#jp-schedule .wrap{height:100%!important;min-height:0!important;overflow:hidden!important;display:flex!important;flex-direction:column!important}}
@media (max-width:980px){#jp-schedule:not([hidden]){height:auto!important;min-height:0}}
/* ── Panel headers: identical level bars so the count + month line up exactly ── */
#jp-schedule .phead{height:46px;padding:0 16px}
#jp-schedule .calwrap{padding-top:0}
#jp-schedule .calhead{height:46px;padding:0 16px;margin:0 -16px;border-bottom:1px solid var(--border);background:var(--bg2)}
#jp-schedule .calhead .cm{font-size:16px}
/* calendar view navigation (◀ / Today / ▶) */
#jp-schedule .calnav{display:inline-flex;align-items:center;gap:4px}
#jp-schedule .calnavbtn{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 8px;border:1px solid var(--border);border-radius:7px;background:rgba(255,255,255,.04);color:var(--text2);font-family:inherit;font-size:14px;font-weight:700;line-height:1;cursor:pointer;transition:color .12s,border-color .12s,background .12s}
#jp-schedule .calnavbtn:hover{color:var(--text);border-color:var(--border-2);background:rgba(255,255,255,.08)}
#jp-schedule .calnavbtn.calnav-today{font-size:11px;letter-spacing:.02em;text-transform:uppercase}
#jp-schedule .dow{margin-top:14px}
/* Summary tiles share the list|calendar seam: Scheduled tile = list width (392px), gap = split gap (16px) */
@media (min-width:981px){#jp-schedule .summary{grid-template-columns:392px 1fr 1fr 1fr;gap:16px}}
/* Small-LAPTOP fit (Ryan, 2026-08-19: "calendar only shows about one week and I have to
   scroll — same for the schedule tool to the left"). On a short viewport the fixed chrome
   (header, controls, KPI row, legend) was eating the month: everything above the split
   compacts and the day cells shrink, so 4-6 week rows land on screen — and the phase list
   panel gets the exact same extra height (the split stretches both). Tall screens keep
   their roomier measurements. */
@media (min-width:981px) and (max-height:820px){
  #jp-schedule .head{margin-bottom:5px}
  #jp-schedule .hsub{display:none}
  #jp-schedule .logo{width:30px;height:30px;border-radius:8px}
  #jp-schedule .logo .ic{width:17px;height:17px}
  #jp-schedule .htitle{font-size:19px}
  #jp-schedule .ctrls{padding:6px 10px;margin-bottom:6px}
  /* stays full-width, just shorter, so the forecast band doesn't eat the calendar's rows */
  #jp-schedule .forecast{margin-top:4px;padding-top:6px}
  #jp-schedule .fc-day{padding:4px 4px;gap:1px}
  #jp-schedule .fc-ic{width:16px;height:16px;margin:1px 0}
  #jp-schedule .fc-dow{font-size:9px}
  #jp-schedule .fc-hi{font-size:12px}
  #jp-schedule .summary{margin-bottom:6px}
  #jp-schedule .kpi{padding:6px 12px}
  #jp-schedule .kpi .lab{margin-bottom:2px}
  #jp-schedule .kpi .big{font-size:15px}
  #jp-schedule .kpi .big.phase{font-size:13px}
  #jp-schedule .kpi .sub{font-size:10.5px;margin-top:1px}
  #jp-schedule .kpi .badge{margin-top:3px;padding:2px 7px;font-size:10px}
  #jp-schedule .legend{margin-bottom:4px;font-size:11px}
  #jp-schedule .phead{height:38px}
  #jp-schedule .calhead{height:38px}
  #jp-schedule .dow{margin-top:8px}
  #jp-schedule .addbar{padding:7px 12px}
  #jp-schedule .addbtn{padding:6px}
  #jp-schedule .prow-head{padding:7px 12px}
  #jp-schedule .calwrap{padding-bottom:10px}
  #jp-schedule .week{min-height:46px}
  #jp-schedule .cell{min-height:46px;padding:2px 5px}
  #jp-schedule .cell .dn{font-size:10.5px}
  #jp-schedule .lane{top:18px;height:26px}
}


/* PHONE: the 10-day forecast band cannot spread 10 chips across ~360px, so it SCROLLS sideways
   inside itself instead of pushing past the screen edge (Ryan, 2026-09-16 forecast-band CI fix —
   the mobile census exempts a horizontal scroller's contents). The desktop full-width band is
   unchanged; this only engages at phone width. */
@media (max-width:640px){
  #jp-schedule .forecast{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
  #jp-schedule .fc-lbl{flex:0 0 auto;position:sticky;left:0;background:var(--panel);z-index:1;padding-right:4px}
  #jp-schedule .fc-day{flex:0 0 46px}
}
