/* Madden Workflow Schedule Calendar / Planner styles
   Frontend Modularization Phase 7.1
   Behavior-preserving extraction from public/index.html. */

/* Extracted from <style id="planner-v1-mockup-styles"> */
#calendarPage{padding:4px 8px 12px!important;background:#f4f6f9!important;}
#calendarPage> :not(.planner-v1-shell){display:none!important;}
.planner-v1-shell{display:flex;flex-direction:column;gap:9px;font-family:Inter,Segoe UI,Arial,sans-serif;color:#132033;}
.planner-topbar{display:flex;justify-content:space-between;gap:12px;align-items:end;flex-wrap:wrap;}
.planner-filter-group,.planner-nav-group{display:flex;gap:8px;align-items:end;flex-wrap:wrap;}
.planner-topbar label{font-size:10px;color:#5f6c7b;display:flex;flex-direction:column;gap:3px;}
.planner-topbar select,.planner-topbar input,.planner-topbar button{height:36px;border:1px solid #d9e0e8;background:#fff;border-radius:9px;padding:0 12px;font-weight:600;color:#142033;}
.planner-search-label input{width:220px}.planner-nav-group button.is-active,.route-actions .is-active{background:#a9381d;color:#fff;border-color:#a9381d}.planner-week-label{min-width:190px}.planner-icon-btn{width:36px;padding:0!important}.planner-kpis{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.planner-kpis article{background:#fff;border:1px solid #dce3eb;border-radius:10px;padding:11px 12px;min-height:74px;position:relative}.planner-kpis span{display:block;text-transform:uppercase;font-size:10px;font-weight:700;color:#576579;letter-spacing:.03em}.planner-kpis strong{display:block;font-size:24px;margin-top:4px}.planner-kpis small{font-size:10px;color:#16934b}.planner-kpis em{position:absolute;right:10px;top:32px;font-style:normal;font-size:12px}.planner-kpis .danger strong,.planner-kpis .danger small{color:#d92732}.planner-kpis .pm strong,.planner-kpis .pm small{color:#7d3bd4}.planner-progress{height:5px;background:#e9edf2;border-radius:99px;margin-top:7px}.planner-progress i{display:block;height:100%;background:#32ad5a;border-radius:99px}.planner-main-grid{display:grid;grid-template-columns:205px minmax(0,1fr) 250px;gap:8px;min-height:520px}.planner-tech-rail,.planner-week-grid,.planner-ready-queue,.planner-route-workspace{background:#fff;border:1px solid #dce3eb;border-radius:10px;overflow:hidden}.planner-panel-title{display:flex;justify-content:space-between;padding:12px;border-bottom:1px solid #e5eaf0;text-transform:uppercase;font-size:11px}.planner-tech-rail>input{margin:8px;width:calc(100% - 16px);height:30px;border:1px solid #dce3eb;border-radius:7px;padding:0 8px}.planner-tech-list{max-height:438px;overflow:auto}.planner-tech{min-height:51px}.planner-tech{display:grid;grid-template-columns:8px 34px 1fr;gap:7px;align-items:center;padding:8px;border-top:1px solid #eef1f5}.planner-tech:first-child{border-top:0}.planner-tech .status{width:7px;height:7px;border-radius:50%}.status.green{background:#21a657}.status.amber{background:#ff9f1a}.status.blue{background:#24a4c4}.status.pink{background:#ec4d9c}.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#0f2d58;color:#fff;font-size:11px;font-weight:700}.planner-tech b{font-size:11px;display:block}.planner-tech small{display:block;font-size:9px;color:#667588}.capacity{height:4px;background:#e8edf2;border-radius:99px;margin:5px 0}.capacity i{display:block;height:100%;background:#38b262;border-radius:99px}.planner-manage-btn{margin:8px;width:calc(100% - 16px);height:32px;border:1px solid #dce3eb;background:#fff;border-radius:8px}.planner-days-head{display:grid;grid-template-columns:repeat(7,1fr);height:42px;border-bottom:1px solid #e5eaf0}.planner-days-head div{display:grid;place-items:center;font-size:11px;font-weight:700;border-right:1px solid #eef1f5}.planner-days-head div.selected{background:#0e2c55;color:#fff}.planner-day-columns{display:grid;grid-template-columns:repeat(7,1fr);min-height:475px}.planner-day-columns>div{padding:7px;border-right:1px solid #edf1f5}.job{border:1px solid #dce4ed;border-left:3px solid #2d7be5;border-radius:7px;padding:7px;margin-bottom:7px;background:#f8fbff;min-height:58px}.job b,.job span,.job small{display:block}.job b{font-size:9px}.job span{font-size:10px;font-weight:700;margin:3px 0}.job small{font-size:8px;color:#657488}.job.red{border-left-color:#e53935;background:#fff7f7}.job.amber{border-left-color:#f29a1a;background:#fffaf2}.job.green{border-left-color:#35a85a;background:#f5fff7}.job.purple{border-left-color:#8051c7;background:#fbf8ff}.job.empty{border-style:dashed;background:#fafafa;color:#7a59bb}.planner-ready-queue{display:flex;flex-direction:column}.planner-ready-queue h4{margin:0;padding:8px 10px;font-size:10px;text-transform:uppercase;display:flex;justify-content:space-between}.queue-red{color:#c82931;background:#fff0f1}.queue-amber{color:#c97800;background:#fff6e8}.queue-blue{color:#2669b5;background:#eef6ff}.queue-purple{color:#7a3cc6;background:#f4edff}.planner-ready-queue article{position:relative;padding:8px 10px 8px 13px;border-bottom:1px solid #edf1f5}.planner-ready-queue article b,.planner-ready-queue article small{display:block}.planner-ready-queue article b{font-size:10px}.planner-ready-queue article small{font-size:9px;color:#667588;margin-top:3px}.planner-ready-queue article em{position:absolute;right:8px;top:8px;font-size:8px;font-style:normal;border:1px solid #e1e6ec;border-radius:99px;padding:2px 5px}.planner-create-btn{margin:auto 9px 9px;height:34px;border:0;border-radius:8px;background:#a9381d;color:white;font-weight:700}.planner-route-workspace{display:grid;grid-template-columns:1.35fr 1.2fr .72fr;min-height:250px}.route-list{padding:10px}.route-tech-head{display:flex;gap:9px;align-items:center;justify-content:space-between;flex-wrap:wrap}.route-tech-head b{display:block;font-size:12px}.route-tech-head small{font-size:9px;color:#667588}.route-tech-main{display:flex;gap:9px;align-items:center}.route-capacity-strip{display:grid;grid-template-columns:auto 150px auto;gap:8px;align-items:center;margin-top:10px;padding:8px 10px;border:1px solid #dce3eb;border-radius:8px;background:#f8fbff}.route-capacity-strip b{font-size:10px}.route-capacity-track{height:8px;background:#e8edf2;border-radius:99px;overflow:hidden}.route-capacity-track i{display:block;height:100%;width:80%;background:#f0a21b;border-radius:99px}.route-capacity-value{font-size:10px;font-weight:700;color:#9b6500}.route-remaining{font-size:9px;color:#667588;grid-column:1/-1}.route-remaining strong{color:#0f2d58}.route-list table{width:100%;border-collapse:collapse;margin-top:8px;font-size:9px}.route-list th,.route-list td{text-align:left;padding:5px;border-bottom:1px solid #edf1f5}.route-actions{display:flex;gap:6px;margin-top:8px}.route-actions button,.route-summary button{height:30px;border:1px solid #dce3eb;background:#fff;border-radius:7px;padding:0 10px;font-weight:600}.route-map-mock{position:relative;background:linear-gradient(135deg,#dfeef6,#edf3dc);overflow:hidden}.route-map-mock:not(.planner-real-map-shell) svg{width:100%;height:100%}.route-map-mock circle{fill:#0e2c55;stroke:#fff;stroke-width:3}.route-map-label{position:absolute;top:8px;left:8px;background:#fff;padding:4px 7px;border-radius:5px;font-size:9px;font-weight:700}.route-summary{padding:12px;border-left:1px solid #e5eaf0}.route-summary dl{margin:8px 0}.route-summary dl div{display:flex;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px solid #edf1f5;font-size:9px}.route-summary dd{font-weight:700}.route-summary .good{color:#16934b}.route-summary button{width:100%;margin-top:6px}.planner-sample-note{text-align:right;font-size:9px;color:#7c8998}.legacy-calendar-open #calendarPage>.planner-v1-shell{display:none!important}.legacy-calendar-open #calendarPage> :not(.planner-v1-shell){display:block!important}@media(max-width:1200px){.planner-main-grid{grid-template-columns:180px minmax(600px,1fr) 220px;overflow:auto}.planner-kpis{grid-template-columns:repeat(4,1fr)}.planner-route-workspace{grid-template-columns:1fr 1fr}.route-summary{grid-column:1/-1}}

/* Extracted from <style id="planner-mockup-1-3-polish"> */
/* Planner 1.3 — visual polish only. Structure, sizing and legacy logic remain unchanged. */
#calendarPage > .planner-v1-shell{
  --planner-navy:#0f2d58;
  --planner-muted:#667588;
  --planner-line:#dce3eb;
  --planner-soft:#f7f9fc;
}

/* Technician rail */
#calendarPage .planner-tech-list{padding:2px 5px 5px;}
#calendarPage .planner-tech{
  grid-template-columns:8px 42px minmax(0,1fr);
  gap:9px;
  min-height:66px;
  margin:4px 0;
  padding:8px 7px;
  border:1px solid transparent;
  border-radius:9px;
  transition:border-color .15s ease,background .15s ease,transform .15s ease;
}
#calendarPage .planner-tech:hover{
  border-color:#cfd9e5;
  background:#f8fbff;
  transform:translateY(-1px);
}
#calendarPage .planner-tech .avatar{
  width:40px;
  height:40px;
  font-size:12px;
  box-shadow:0 2px 6px rgba(15,45,88,.18);
}
#calendarPage .planner-tech b{
  font-size:11.5px;
  line-height:1.2;
  color:#10213a;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#calendarPage .planner-tech small{
  font-size:9px;
  line-height:1.25;
}
#calendarPage .planner-tech .capacity{
  height:6px;
  margin:6px 0 4px;
  box-shadow:inset 0 0 0 1px rgba(15,45,88,.03);
}
#calendarPage .planner-tech:nth-child(1) .capacity i,
#calendarPage .planner-tech:nth-child(3) .capacity i,
#calendarPage .planner-tech:nth-child(5) .capacity i,
#calendarPage .planner-tech:nth-child(9) .capacity i{background:#f0a21b;}
#calendarPage .planner-tech:nth-child(3) .capacity i{background:#df4b45;}

/* Weekly work-order cards */
#calendarPage .job{
  position:relative;
  min-height:66px;
  padding:8px 8px 18px 9px;
  border-radius:8px;
  box-shadow:0 1px 2px rgba(18,32,51,.05);
  transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;
}
#calendarPage .job:hover{
  transform:translateY(-1px);
  box-shadow:0 4px 10px rgba(18,32,51,.10);
}
#calendarPage .job b{
  font-size:10.5px;
  line-height:1.2;
  color:#15243a;
}
#calendarPage .job span{
  margin-top:5px;
  font-size:10px;
  line-height:1.25;
}
#calendarPage .job small{
  position:absolute;
  left:9px;
  bottom:6px;
  font-size:8.5px;
  font-weight:700;
  color:#657488;
}
#calendarPage .job b::before{
  content:'◷';
  margin-right:4px;
  color:#6a788a;
  font-size:9px;
}
#calendarPage .job.empty b::before{content:'＋';}

/* Ready queue */
#calendarPage .planner-ready-queue h4{
  min-height:29px;
  align-items:center;
  letter-spacing:.035em;
  border-top:1px solid rgba(0,0,0,.025);
}
#calendarPage .planner-ready-queue h4 span{
  display:inline-grid;
  place-items:center;
  min-width:20px;
  height:20px;
  padding:0 6px;
  border-radius:99px;
  background:rgba(255,255,255,.8);
  color:currentColor;
  font-size:9px;
}
#calendarPage .planner-ready-queue article{
  min-height:52px;
  padding:9px 48px 9px 13px;
  transition:background .15s ease,transform .15s ease;
}
#calendarPage .planner-ready-queue article:hover{
  background:#f8fbff;
  transform:translateX(1px);
}
#calendarPage .planner-ready-queue article b{
  font-size:10.5px;
  line-height:1.25;
  color:#17263c;
}
#calendarPage .planner-ready-queue article small{
  font-size:9px;
  line-height:1.25;
}
#calendarPage .planner-ready-queue article em{
  top:9px;
  right:8px;
  min-width:34px;
  text-align:center;
  font-weight:700;
  background:#fff;
}
#calendarPage .queue-red + article em,
#calendarPage .queue-red + article + article em,
#calendarPage .queue-red + article + article + article em{
  color:#c82931;border-color:#f0b8bd;background:#fff5f6;
}
#calendarPage .queue-amber + article em,
#calendarPage .queue-amber + article + article em{
  color:#a96600;border-color:#f0ce91;background:#fff9ed;
}
#calendarPage .queue-blue + article em,
#calendarPage .queue-blue + article + article em{
  color:#2669b5;border-color:#bad5f2;background:#f3f8ff;
}

/* Selected technician / capacity workspace */
#calendarPage .route-tech-head{
  padding-bottom:2px;
}
#calendarPage .route-tech-head .avatar{
  width:40px;
  height:40px;
  font-size:12px;
}
#calendarPage .route-tech-head b{font-size:12.5px;}
#calendarPage .route-tech-head small{display:block;margin-top:3px;font-size:9.5px;}
#calendarPage .route-capacity-strip{
  grid-template-columns:110px minmax(120px,1fr) auto;
  gap:9px 11px;
  padding:10px 11px;
  background:linear-gradient(180deg,#fbfdff,#f3f7fc);
  border-color:#ccd8e6;
  box-shadow:0 2px 8px rgba(15,45,88,.06);
}
#calendarPage .route-capacity-strip b{
  font-size:10.5px;
  color:#10213a;
}
#calendarPage .route-capacity-track{
  height:10px;
  box-shadow:inset 0 0 0 1px rgba(15,45,88,.05);
}
#calendarPage .route-capacity-value{
  padding:4px 8px;
  border:1px solid #e5be68;
  border-radius:99px;
  background:#fff8e7;
  font-size:9.5px;
  white-space:nowrap;
}
#calendarPage .route-remaining{
  grid-column:1/-1;
  display:flex;
  justify-content:space-between;
  padding-top:6px;
  border-top:1px solid #e1e8f0;
  font-size:9.5px;
}
#calendarPage .route-remaining strong{
  font-size:12px;
}

/* Bottom workspace balance */
#calendarPage .planner-route-workspace{
  grid-template-columns:1.08fr 1.34fr .9fr;
}
#calendarPage .route-list{
  padding:11px;
}
#calendarPage .route-list table{
  font-size:9.5px;
}
#calendarPage .route-list th{
  color:#59687b;
  text-transform:uppercase;
  font-size:8px;
  letter-spacing:.035em;
}
#calendarPage .route-list td{
  padding:6px 5px;
}
#calendarPage .route-map-mock{
  border-left:1px solid #e5eaf0;
  border-right:1px solid #e5eaf0;
}
#calendarPage .route-map-label{
  padding:5px 9px;
  box-shadow:0 2px 6px rgba(18,32,51,.12);
}
#calendarPage .route-summary{
  padding:13px 14px;
}
#calendarPage .route-summary>b{
  display:block;
  font-size:12px;
  margin-bottom:4px;
}
#calendarPage .route-summary dl div{
  padding:8px 0;
  font-size:9.5px;
}
#calendarPage .route-summary button{
  min-height:34px;
  margin-top:8px;
  background:#f8fbff;
}
#calendarPage .route-actions button,
#calendarPage .route-summary button,
#calendarPage .planner-manage-btn,
#calendarPage .planner-create-btn{
  transition:transform .15s ease,box-shadow .15s ease,background .15s ease;
}
#calendarPage .route-actions button:hover,
#calendarPage .route-summary button:hover,
#calendarPage .planner-manage-btn:hover,
#calendarPage .planner-create-btn:hover{
  transform:translateY(-1px);
  box-shadow:0 3px 8px rgba(18,32,51,.10);
}

@media(max-width:1200px){
  #calendarPage .planner-route-workspace{grid-template-columns:1fr 1fr;}
  #calendarPage .route-summary{grid-column:1/-1;}
}

/* Extracted from <style id="planner-mockup-1-4-polish"> */
/* Planner 1.4 — visual polish only. Locked structure and mock data remain unchanged. */

/* Slightly more usable planner space without changing the page structure. */
#calendarPage > .planner-v1-shell .planner-main-grid{min-height:390px;}
#calendarPage > .planner-v1-shell .planner-route-workspace{
  grid-template-columns:minmax(390px,1.12fr) minmax(430px,1.32fr) minmax(250px,.8fr);
}

/* Technician cards: clearer identity and workload. */
#calendarPage .planner-tech{
  grid-template-columns:8px 46px minmax(0,1fr);
  min-height:72px;
  padding:9px 8px;
}
#calendarPage .planner-tech .avatar{
  width:44px;height:44px;font-size:13px;
  border:2px solid rgba(255,255,255,.85);
}
#calendarPage .planner-tech b{font-size:12px;letter-spacing:-.01em;}
#calendarPage .planner-tech small:first-of-type{margin-top:2px;color:#748197;}
#calendarPage .planner-tech .capacity{height:7px;margin:7px 0 5px;}
#calendarPage .planner-tech .capacity + small{
  font-size:9.2px;font-weight:600;color:#526176;
}

/* Work-order cards: time, service, customer and hours each have a distinct role. */
#calendarPage .job{
  min-height:78px;
  padding:8px 9px 22px 10px;
  overflow:hidden;
}
#calendarPage .job-time{
  display:block;
  font-size:10.5px;
  line-height:1.1;
  font-weight:800;
  color:#33445b;
  margin-bottom:5px;
}
#calendarPage .job-time::before{content:'◷';margin-right:5px;color:#738198;font-size:9px;}
#calendarPage .job-title{
  display:block;
  font-size:11.5px;
  line-height:1.15;
  font-weight:800;
  color:#10213a;
}
#calendarPage .job-customer{
  display:block;
  margin-top:4px;
  font-size:9.5px;
  line-height:1.2;
  font-weight:600;
  color:#59697d;
}
#calendarPage .job-hours{
  position:absolute;
  right:8px;
  bottom:6px;
  left:auto;
  padding:2px 6px;
  border-radius:99px;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(20,40,70,.09);
  font-size:8.5px;
  font-weight:800;
  color:#4d5d72;
}
#calendarPage .job.empty .job-time::before{content:'＋';}
#calendarPage .job.empty .job-title{color:#7452ba;}

/* Ready queue: stronger grouping and a cleaner dispatch-inbox feel. */
#calendarPage .planner-ready-queue h4{
  padding:8px 11px;
  font-size:10.2px;
  font-weight:800;
  letter-spacing:.045em;
}
#calendarPage .planner-ready-queue article{
  min-height:58px;
  padding:10px 50px 10px 14px;
  border-left:3px solid transparent;
}
#calendarPage .queue-red + article,
#calendarPage .queue-red + article + article,
#calendarPage .queue-red + article + article + article{border-left-color:#df3e46;}
#calendarPage .queue-amber + article,
#calendarPage .queue-amber + article + article{border-left-color:#e49a18;}
#calendarPage .queue-blue + article,
#calendarPage .queue-blue + article + article{border-left-color:#2e79ca;}
#calendarPage .queue-purple + article,
#calendarPage .queue-purple + article + article{border-left-color:#8653cc;}
#calendarPage .planner-ready-queue article b{font-size:10.7px;}
#calendarPage .planner-ready-queue article small{margin-top:5px;font-size:9.2px;}
#calendarPage .planner-ready-queue article em{top:10px;padding:3px 7px;}

/* Capacity load becomes a deliberate operational status card. */
#calendarPage .route-capacity-strip{
  grid-template-columns:120px minmax(145px,1fr) auto;
  padding:11px 12px;
  border-radius:10px;
  background:#f7faff;
  box-shadow:0 3px 12px rgba(15,45,88,.07);
}
#calendarPage .route-capacity-strip b{font-size:11px;}
#calendarPage .route-capacity-track{height:11px;background:#e4eaf1;}
#calendarPage .route-capacity-value{
  font-size:10px;
  padding:5px 9px;
  border-color:#dfb14f;
  background:#fff7df;
}
#calendarPage .route-remaining{
  align-items:center;
  font-size:9.8px;
}
#calendarPage .route-remaining strong{
  font-size:14px;
  padding:3px 8px;
  border-radius:7px;
  background:#eaf2ff;
}

/* Route workspace: cleaner table and roomier map/summary. */
#calendarPage .route-list{padding:12px;}
#calendarPage .route-list table{margin-top:10px;}
#calendarPage .route-list tbody tr:hover{background:#f5f8fc;}
#calendarPage .route-list th{padding:6px 5px;}
#calendarPage .route-list td{padding:7px 5px;}
#calendarPage .route-actions{margin-top:10px;}
#calendarPage .route-actions button{min-height:32px;}
#calendarPage .route-map-mock svg{padding:10px;box-sizing:border-box;}
#calendarPage .route-summary{padding:15px 16px;}
#calendarPage .route-summary>b{font-size:13px;}
#calendarPage .route-summary dl div{padding:9px 0;font-size:9.8px;}
#calendarPage .route-summary dd{font-size:10px;}

@media(max-width:1200px){
  #calendarPage > .planner-v1-shell .planner-route-workspace{grid-template-columns:1fr 1fr;}
  #calendarPage .route-summary{grid-column:1/-1;}
}

/* Extracted from <style id="planner-rc2-viewport-layout-engine"> */
/*
  Schedule Planner RC2 — consolidated viewport layout engine.
  Replaces the older fixed/flex height layers with one predictable grid.
  Visual/sample UI only; legacy scheduling logic remains untouched.
*/
#calendarPage:has(> .planner-v1-shell){
  overflow:hidden !important;
}
#calendarPage > .planner-v1-shell{
  --planner-navy:#0f2d58;
  --planner-muted:#667588;
  --planner-line:#dce3eb;
  --planner-soft:#f7f9fc;
  box-sizing:border-box !important;
  display:grid !important;
  grid-template-rows:
    auto
    auto
    minmax(390px,2.125fr)
    minmax(210px,1fr)
    auto !important;
  gap:6px !important;
  height:calc(100dvh - 16px) !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:hidden !important;
  padding-bottom:2px !important;
}

/* Compact controls and KPI strip. */
#calendarPage .planner-topbar{
  min-height:30px !important;
  align-items:center !important;
}
#calendarPage .planner-filter-group,
#calendarPage .planner-nav-group{gap:6px !important;}
#calendarPage .planner-topbar label{
  gap:2px !important;
  font-size:8.5px !important;
}
#calendarPage .planner-topbar select,
#calendarPage .planner-topbar input,
#calendarPage .planner-topbar button{
  height:30px !important;
  min-height:30px !important;
  border-radius:7px !important;
  padding:0 10px !important;
  font-size:10px !important;
}
#calendarPage .planner-icon-btn{width:30px !important;padding:0 !important;}
#calendarPage .planner-search-label input{width:205px !important;}
#calendarPage .planner-week-label{min-width:174px !important;}
#calendarPage .planner-kpis{gap:6px !important;min-height:0 !important;}
#calendarPage .planner-kpis article{
  min-height:52px !important;
  padding:6px 9px !important;
  border-radius:8px !important;
}
#calendarPage .planner-kpis span{font-size:8px !important;}
#calendarPage .planner-kpis strong{
  font-size:18px !important;
  line-height:1 !important;
  margin-top:2px !important;
}
#calendarPage .planner-kpis small{font-size:8px !important;}
#calendarPage .planner-kpis em{
  right:8px !important;
  top:22px !important;
  font-size:9px !important;
}
#calendarPage .planner-progress{height:4px !important;margin-top:4px !important;}

/* Weekly planning row: fills its grid track and scrolls internally. */
#calendarPage > .planner-v1-shell .planner-main-grid{
  display:grid !important;
  grid-template-columns:218px minmax(0,1fr) 270px !important;
  gap:6px !important;
  min-height:0 !important;
  height:100% !important;
  overflow:hidden !important;
}
#calendarPage .planner-tech-rail,
#calendarPage .planner-week-grid,
#calendarPage .planner-ready-queue{
  height:100% !important;
  min-height:0 !important;
}
#calendarPage .planner-tech-rail{
  display:flex !important;
  flex-direction:column !important;
}
#calendarPage .planner-panel-title{padding:9px 10px !important;font-size:9.5px !important;}
#calendarPage .planner-tech-rail>input{
  margin:6px !important;
  width:calc(100% - 12px) !important;
  height:28px !important;
}
#calendarPage .planner-tech-list{
  flex:1 1 auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:auto !important;
}
#calendarPage .planner-tech{
  min-height:68px !important;
  padding:7px 8px !important;
  grid-template-columns:8px 44px minmax(0,1fr) !important;
}
#calendarPage .planner-tech .avatar{width:42px !important;height:42px !important;}
#calendarPage .planner-tech b{font-size:11.5px !important;}
#calendarPage .planner-tech .capacity{margin:5px 0 4px !important;height:6px !important;}
#calendarPage .planner-manage-btn{
  flex:0 0 30px !important;
  margin:6px !important;
  width:calc(100% - 12px) !important;
  height:30px !important;
}
#calendarPage .planner-week-grid{
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
}
#calendarPage .planner-days-head{flex:0 0 36px !important;height:36px !important;}
#calendarPage .planner-days-head div{font-size:10px !important;}
#calendarPage .planner-day-columns{
  flex:1 1 auto !important;
  min-height:0 !important;
  height:auto !important;
  overflow:auto !important;
}
#calendarPage .planner-day-columns>div{padding:6px !important;}
#calendarPage .job{min-height:80px !important;margin-bottom:6px !important;}
#calendarPage .planner-ready-queue{
  display:flex !important;
  flex-direction:column !important;
  overflow:auto !important;
}
#calendarPage .planner-ready-queue h4{padding:7px 10px !important;}
#calendarPage .planner-ready-queue article{
  min-height:60px !important;
  padding:9px 48px 9px 13px !important;
}
#calendarPage .planner-create-btn{
  flex:0 0 32px !important;
  margin:6px !important;
  height:32px !important;
}

/* Route workspace: fills its proportional grid track. */
#calendarPage > .planner-v1-shell .planner-route-workspace{
  display:grid !important;
  grid-template-columns:minmax(420px,2.25fr) minmax(330px,1.75fr) minmax(220px,1fr) !important;
  min-height:0 !important;
  height:100% !important;
  max-height:none !important;
  overflow:hidden !important;
}
#calendarPage .route-list,
#calendarPage .route-map-mock,
#calendarPage .route-summary{
  min-height:0 !important;
  height:100% !important;
}
#calendarPage .route-list{padding:10px !important;overflow:auto !important;}
#calendarPage .route-tech-head b{font-size:12px !important;}
#calendarPage .route-capacity-strip{
  grid-template-columns:105px minmax(130px,1fr) auto !important;
  padding:8px 10px !important;
  margin-top:7px !important;
}
#calendarPage .route-capacity-track{height:9px !important;}
#calendarPage .route-list table{margin-top:7px !important;font-size:9px !important;}
#calendarPage .route-list th,
#calendarPage .route-list td{padding:5px 4px !important;}
#calendarPage .route-actions{margin-top:7px !important;}
#calendarPage .route-map-mock svg{padding:4px !important;}
#calendarPage .route-summary{padding:12px 13px !important;overflow:auto !important;}
#calendarPage .route-summary dl div{padding:7px 0 !important;}
#calendarPage .planner-sample-note{min-height:0 !important;line-height:12px !important;}

/* Shorter desktop windows retain the same model with safer minimums. */
@media(max-height:820px){
  #calendarPage > .planner-v1-shell{
    grid-template-rows:auto auto minmax(330px,2.2fr) minmax(190px,1fr) auto !important;
    height:calc(100dvh - 12px) !important;
  }
  #calendarPage .planner-kpis article{min-height:48px !important;padding:5px 8px !important;}
  #calendarPage .planner-kpis strong{font-size:17px !important;}
  #calendarPage .job{min-height:72px !important;}
}
@media(max-width:1280px){
  #calendarPage > .planner-v1-shell .planner-main-grid{
    grid-template-columns:200px minmax(650px,1fr) 245px !important;
    overflow:auto !important;
  }
  #calendarPage > .planner-v1-shell .planner-route-workspace{
    grid-template-columns:minmax(390px,2.25fr) minmax(320px,1.75fr) minmax(210px,1fr) !important;
    overflow:auto !important;
  }
}

/*
  Schedule Planner RC3 — planner proportion lock.
  Weekly planner receives approximately 68% of flexible height;
  route workspace receives approximately 32%. Bottom columns use 45/35/20.
*/

/* Extracted from <style id="plannerRc9ReadyQueueReplacement"> */
/* RC9: isolated Ready Queue component. Uses unique class names to avoid legacy queue rules. */
#calendarPage .rq9-queue{padding:6px!important;background:#f6f8fb!important;display:block!important;}
#calendarPage .rq9-section{--rq:#64748b;--rqbg:#f8fafc;margin:0 0 7px!important;border:1px solid #dfe6ee!important;border-radius:8px!important;background:#fff!important;overflow:hidden!important;}
#calendarPage .rq9-section:last-child{margin-bottom:0!important;}
#calendarPage .rq9-emergency{--rq:#d92d36;--rqbg:#fff0f1;}
#calendarPage .rq9-high{--rq:#d17a00;--rqbg:#fff6e8;}
#calendarPage .rq9-normal{--rq:#2874c6;--rqbg:#eef6ff;}
#calendarPage .rq9-pm{--rq:#7a3cc6;--rqbg:#f4edff;}
#calendarPage .rq9-header{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:6px!important;min-height:26px!important;padding:4px 7px!important;margin:0!important;background:var(--rqbg)!important;color:var(--rq)!important;border:0!important;border-bottom:1px solid color-mix(in srgb,var(--rq) 14%, transparent)!important;box-sizing:border-box!important;}
#calendarPage .rq9-header-left{display:flex!important;align-items:center!important;gap:5px!important;min-width:0!important;}
#calendarPage .rq9-icon{display:grid!important;place-items:center!important;width:15px!important;height:15px!important;min-width:15px!important;border-radius:5px!important;background:#fff!important;font-size:7px!important;line-height:1!important;font-weight:900!important;color:var(--rq)!important;}
#calendarPage .rq9-icon-pm{font-size:5px!important;letter-spacing:-.02em!important;}
#calendarPage .rq9-title{display:block!important;font-size:8px!important;line-height:1!important;font-weight:900!important;letter-spacing:.035em!important;text-transform:uppercase!important;white-space:nowrap!important;color:var(--rq)!important;}
#calendarPage .rq9-count{display:grid!important;place-items:center!important;min-width:22px!important;height:16px!important;padding:0 5px!important;border-radius:999px!important;background:#fff!important;font-size:8px!important;line-height:1!important;font-weight:900!important;color:var(--rq)!important;}
#calendarPage .rq9-items{display:block!important;background:#fff!important;}
#calendarPage .rq9-item{position:relative!important;display:block!important;padding:7px 9px 7px 11px!important;margin:0!important;border:0!important;border-left:3px solid var(--rq)!important;border-bottom:1px solid #edf1f5!important;border-radius:0!important;background:#fff!important;box-sizing:border-box!important;}
#calendarPage .rq9-item:last-child{border-bottom:0!important;}
#calendarPage .rq9-item-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:7px!important;margin:0 0 2px!important;}
#calendarPage .rq9-type{display:block!important;font-size:8px!important;line-height:1.1!important;font-weight:900!important;text-transform:uppercase!important;color:#142033!important;}
#calendarPage .rq9-priority{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:36px!important;height:15px!important;padding:0 6px!important;border:1px solid color-mix(in srgb,var(--rq) 34%, #dfe6ee)!important;border-radius:999px!important;background:#fff!important;color:#26364d!important;font-size:7px!important;line-height:1!important;font-weight:800!important;}
#calendarPage .rq9-item>strong{display:block!important;margin:0!important;font-size:9px!important;line-height:1.2!important;font-weight:800!important;color:#13243a!important;}
#calendarPage .rq9-item>small{display:block!important;margin:2px 0 0!important;font-size:7px!important;line-height:1.2!important;color:#68788d!important;}
#calendarPage .rq9-meta{display:flex!important;align-items:center!important;gap:5px!important;margin-top:4px!important;}
#calendarPage .rq9-meta span{display:inline-flex!important;align-items:center!important;min-height:14px!important;padding:0 5px!important;border:1px solid #dce4ed!important;border-radius:999px!important;background:#f9fbfd!important;font-size:7px!important;line-height:1!important;color:#31445d!important;}
#calendarPage .rq9-wo-number{display:block!important;min-width:0!important;font-size:9px!important;line-height:1.15!important;font-weight:900!important;color:#0f2d58!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
#calendarPage .rq9-item>.rq9-type{display:block!important;margin-top:3px!important;font-size:8px!important;line-height:1.1!important;font-weight:900!important;text-transform:uppercase!important;color:var(--rq)!important;}
#calendarPage .rq9-problem{display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:3!important;overflow:hidden!important;margin:4px 0 0!important;font-size:8.5px!important;line-height:1.28!important;font-weight:650!important;color:#24364d!important;}
#calendarPage .rq9-location{display:block!important;margin-top:4px!important;font-size:7.5px!important;line-height:1.15!important;color:#68788d!important;}

/* Extracted from <style id="planner-assignment-stabilization-v11"> */
#calendarPage .planner-live-job[draggable="true"]{cursor:grab;}
#calendarPage .planner-live-job[draggable="true"]:active{cursor:grabbing;}
#calendarPage .planner-dragging{opacity:.48;transform:scale(.985);}
#calendarPage .planner-day-dropzone.planner-drop-active{background:#eef6ff;box-shadow:inset 0 0 0 2px #2d7be5;}

/* Extracted from <style id="plannerReadyQueueReadabilityFix"> */
/* Ready Queue readability: stronger city hierarchy and reachable final cards. */
#calendarPage > .planner-v1-shell .planner-ready-queue{
  display:flex!important;
  flex-direction:column!important;
  min-height:0!important;
  overflow:hidden!important;
}
#calendarPage > .planner-v1-shell .planner-queue-scroll{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  padding:6px 6px 64px!important;
  scroll-padding-bottom:64px!important;
  overscroll-behavior:contain;
  scrollbar-width:thin;
}
#calendarPage > .planner-v1-shell .planner-create-btn{
  flex:0 0 32px!important;
  margin:6px!important;
  height:32px!important;
}
#calendarPage > .planner-v1-shell .rq9-section:last-child{
  margin-bottom:10px!important;
}
#calendarPage > .planner-v1-shell .rq9-item>.rq9-type{
  margin-top:3px!important;
  font-size:6.75px!important;
  line-height:1.05!important;
  letter-spacing:.055em!important;
  font-weight:850!important;
  opacity:.76;
}
#calendarPage > .planner-v1-shell .rq9-location{
  display:block!important;
  margin-top:5px!important;
  font-size:10px!important;
  line-height:1.2!important;
  font-weight:850!important;
  color:#17385f!important;
}
#calendarPage > .planner-v1-shell .rq9-problem{
  margin-top:4px!important;
  font-size:8.7px!important;
  line-height:1.3!important;
}
