/* ============================================================
   Villa Plumbing Field Portal — Feature Rebuild (May 3, 6:14 PM)
   Adds: Home dashboard, PlanHub, Service Center, Lily AI
   Layered ON TOP of the existing portal CSS — does not remove
   existing styling.
   ============================================================ */
html,body{max-width:100%;overflow-x:hidden}

/* ---------- HOME DASHBOARD ---------- */
.home-wrap{display:flex;flex-direction:column;gap:1rem}
.home-greet{
  background:linear-gradient(135deg,var(--navy),var(--navy-md));
  border-radius:16px;padding:1.5rem 1.75rem;color:#fff;
  display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap;
  box-shadow:0 8px 28px rgba(20,19,16,.18);
}
.home-greet-text{flex:1;min-width:240px}
.home-greet h1{
  font-family:'Barlow Condensed',sans-serif;font-size:28px;font-weight:700;
  margin:0 0 4px;letter-spacing:.3px;
}
.home-greet p{margin:0;color:rgba(255,255,255,.72);font-size:13px}
.home-greet-stats{display:flex;gap:14px;flex-wrap:wrap}
.home-greet-stat{
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);
  border-radius:12px;padding:.65rem .9rem;min-width:130px;
}
.home-greet-stat .v{font-family:'Barlow Condensed',sans-serif;font-size:22px;font-weight:700;color:#fff}
.home-greet-stat .l{font-size:10px;color:rgba(255,255,255,.55);text-transform:uppercase;letter-spacing:.5px;font-weight:700}

.home-search-card{
  background:#fff;border-radius:14px;border:1px solid var(--bd-lt);
  padding:1.1rem 1.25rem;
}
.home-card-title{
  font-family:'Barlow Condensed',sans-serif;font-size:14px;font-weight:700;
  color:var(--navy);text-transform:uppercase;letter-spacing:.6px;margin-bottom:.6rem;
  display:flex;align-items:center;gap:8px;
}
.home-search-row{display:flex;gap:8px;align-items:stretch}
.home-search-row .srch{flex:1}
.home-search-row .srch input{
  width:100%;padding:11px 14px 11px 38px;border:1.5px solid var(--bd);
  border-radius:10px;font-size:14px;background:#fff;outline:none
}
.home-search-row .srch input:focus{border-color:var(--teal)}
.home-search-results{
  margin-top:.85rem;border-top:1px solid var(--bd-lt);padding-top:.85rem;
  display:none;
}
.home-search-results.show{display:block}
.home-search-empty{font-size:13px;color:var(--tx-lt);padding:.75rem 0;text-align:center}
.home-search-item{
  display:flex;gap:10px;align-items:flex-start;padding:.6rem .75rem;
  border-radius:10px;cursor:pointer;transition:background .12s;
}
.home-search-item:hover{background:#f5fbfa}
.home-search-ic{font-size:18px;line-height:1.1;flex-shrink:0;width:26px;text-align:center}
.home-search-body{flex:1;min-width:0}
.home-search-body .nm{font-weight:700;color:var(--navy);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.home-search-body .sub{font-size:11px;color:var(--tx-lt);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.home-search-tag{
  background:#eef9f7;color:var(--teal-dk);font-size:10px;font-weight:700;
  padding:2px 7px;border-radius:5px;text-transform:uppercase;letter-spacing:.3px;
  flex-shrink:0;align-self:center;
}

.home-quick-banner{
  background:linear-gradient(135deg,#f4c430,#e9a414);
  border-radius:16px;padding:1.25rem 1.5rem;
  display:flex;align-items:center;gap:1rem;flex-wrap:wrap;cursor:pointer;
  transition:transform .12s, box-shadow .15s;
  box-shadow:0 8px 22px rgba(233,164,20,.28);color:#3a2a00;
}
.home-quick-banner:hover{transform:translateY(-1px);box-shadow:0 12px 30px rgba(233,164,20,.36)}
.home-quick-banner-ic{
  width:50px;height:50px;border-radius:14px;
  background:rgba(255,255,255,.4);display:flex;align-items:center;justify-content:center;
  font-size:26px;flex-shrink:0;
}
.home-quick-banner-text{flex:1;min-width:200px}
.home-quick-banner-text h3{
  font-family:'Barlow Condensed',sans-serif;font-size:22px;font-weight:700;
  margin:0;color:#3a2a00;letter-spacing:.3px;
}
.home-quick-banner-text p{margin:2px 0 0;font-size:13px;color:rgba(58,42,0,.78)}
.home-quick-banner-arrow{font-size:24px;color:#3a2a00;font-weight:700}

.home-actions-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;
}

/* Two-column home split: left 2/3 quick action grid, right 1/3 big-button rail.
   Mobile-first: stack with the rail (3 quick buttons) before the action grid. */
.home-split{
  display:grid;grid-template-columns:1fr;gap:1rem;align-items:start;
}
.home-actions-col{display:flex;flex-direction:column;gap:.6rem;min-width:0;order:2}
.home-rail-col{display:flex;flex-direction:column;gap:.6rem;min-width:0;order:1}
.home-rail-title{display:none}
@media(min-width:900px){
  .home-split{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:1.25rem}
  .home-actions-col{order:0}
  .home-rail-col{order:0;position:sticky;top:1rem}
  .home-rail-title{display:flex}
  /* Compact the three big buttons so they fit comfortably in ~1/3 width.
     Both left and right icons are kept (mirrored) per design; right icon is
     a touch smaller to leave room for the title/sub text. */
  .home-rail-col .home-bigbtn{padding:.85rem .9rem;gap:8px;border-radius:14px}
  .home-rail-col .home-bigbtn-ic{width:42px;height:42px;font-size:22px;border-radius:11px}
  .home-rail-col .home-bigbtn-ic.right{width:36px;height:36px;font-size:20px;border-radius:10px}
  .home-rail-col .home-bigbtn-text{align-items:flex-start;text-align:left}
  .home-rail-col .home-bigbtn-title{font-size:16px;letter-spacing:.3px}
  .home-rail-col .home-bigbtn-sub{font-size:11px;line-height:1.3}
}
.home-action{
  background:#fff;border:1.5px solid var(--bd-lt);border-radius:14px;
  padding:1rem .85rem;text-align:center;cursor:pointer;
  transition:all .14s;display:flex;flex-direction:column;gap:6px;align-items:center;
}
.home-action:hover{border-color:var(--teal);transform:translateY(-2px);box-shadow:0 6px 18px rgba(255,107,0,.14)}
.home-action-ic{
  width:42px;height:42px;border-radius:11px;background:var(--teal-lt);
  display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--teal-dk);
}
.home-action-lbl{
  font-family:'Barlow Condensed',sans-serif;font-size:14px;font-weight:700;
  color:var(--navy);text-transform:uppercase;letter-spacing:.4px;line-height:1.1;
}

/* ---------- LILY / AI ASSISTANT ---------- */
.lily-fab{
  position:fixed;right:22px;bottom:22px;
  width:76px;height:76px;border-radius:50%;
  background:transparent;
  color:#fff;border:none;font-size:26px;cursor:pointer;
  box-shadow:none;
  display:flex;align-items:center;justify-content:center;
  padding:0;overflow:visible;
  z-index:140;transition:transform .15s;
}
.lily-fab:hover{transform:scale(1.08)}
.lily-fab .lily-pulse{
  position:absolute;inset:0;border-radius:50%;border:2px solid rgba(255,107,0,.5);
  animation:lilyPulse 2.4s ease-out infinite;
  pointer-events:none;
}
@keyframes lilyPulse{
  0%{transform:scale(1);opacity:.9}
  100%{transform:scale(1.55);opacity:0}
}
/* TRai button image — fills FAB circle completely */
.lily-fab-astro{
  display:flex;align-items:center;justify-content:center;
  width:100%;height:100%;position:relative;z-index:1;
}
/* FAB image fills the entire button — PNG has transparent bg, no clip needed */
.lily-fab .lily-fab-astro .trai-btn-img,
.lily-fab > .trai-btn-img{
  width:76px !important;height:76px !important;
  border-radius:50%;object-fit:cover;display:block;
  pointer-events:none;
}
/* Home big button TRai image */
.home-bigbtn-ic .trai-btn-img{width:44px;height:44px;border-radius:50%;object-fit:cover;vertical-align:middle;}
/* Modal header TRai image */
.lily-modal-hdr .trai-btn-img{width:28px;height:28px;border-radius:50%;object-fit:cover;vertical-align:middle;}
/* Generic inline TRai usage (daily report hero, doc lily btn, quick actions) */
.trai-btn-img{width:32px;height:32px;border-radius:50%;object-fit:cover;vertical-align:middle;}
.lily-modal{
  position:fixed;right:22px;bottom:96px;width:340px;max-width:calc(100vw - 28px);
  max-height:520px;background:#fff;border-radius:18px;
  box-shadow:0 28px 60px rgba(20,19,16,.32);
  border:1px solid rgba(255,107,0,.22);
  display:none;flex-direction:column;overflow:hidden;z-index:140;
}
.lily-modal.show{display:flex}
.lily-modal-hdr{
  background:linear-gradient(135deg,#0d0d0d,#1a1a2e);color:#fff;
  border-bottom:2px solid #FF6B00;
  padding:1rem 1.1rem;display:flex;align-items:center;gap:10px;
}
.lily-modal-hdr .nm{font-family:'Barlow Condensed',sans-serif;font-size:17px;font-weight:700;flex:1}
.lily-modal-hdr .x{
  background:rgba(255,255,255,.14);border:none;color:#fff;width:28px;height:28px;
  border-radius:8px;cursor:pointer;font-size:16px;
}
.lily-modal-body{flex:1;overflow-y:auto;padding:1rem 1.1rem;background:#fafafd}
.lily-msg{
  background:#fff;border:1px solid #ece5fa;border-radius:12px;
  padding:.75rem .9rem;font-size:13px;color:var(--tx);line-height:1.5;margin-bottom:8px;
}
.lily-msg.you{background:#f3edff;border-color:#e0d3fa}
.lily-suggest{
  display:flex;flex-direction:column;gap:6px;margin-top:.5rem;
}
.lily-suggest button{
  background:#fff;border:1px solid #ece5fa;border-radius:10px;
  padding:.55rem .75rem;font-size:12px;color:var(--navy);cursor:pointer;text-align:left;
}
.lily-suggest button:hover{border-color:#a855f7;background:#faf5ff}
.lily-modal-foot{
  padding:.7rem .9rem;border-top:1px solid var(--bd-lt);display:flex;gap:6px;background:#fff;
  flex-wrap:nowrap;min-width:0;
}
.lily-modal-foot input{
  flex:1;min-width:0;padding:9px 12px;border:1.5px solid var(--bd);border-radius:10px;font-size:13px;outline:none;
}
.lily-modal-foot input:focus{border-color:#a855f7}
.lily-modal-foot button{
  background:#a855f7;color:#fff;border:none;border-radius:10px;
  padding:0 14px;font-weight:700;cursor:pointer;font-size:13px;flex-shrink:0;
}
/* When the composer sits at the top of the legacy modal, the divider
   belongs on the bottom edge instead of the top edge. */
.lily-modal .lily-modal-foot-top{
  border-top:none;border-bottom:1px solid var(--bd-lt);
}
.lily-modal .lily-modal-foot-top .lily-cam-btn{
  flex-shrink:0;display:inline-flex;align-items:center;gap:5px;
  padding:7px 11px;border:1.5px solid var(--bd,#d8e8e5);border-radius:10px;
  background:#fff;color:#D95A00;font-size:12.5px;font-weight:700;cursor:pointer;
}

/* ---------- PLAN HUB ---------- */
.ph-wrap{display:flex;flex-direction:column;gap:1rem}
.ph-hero{
  background:linear-gradient(135deg,var(--navy),var(--navy-md));
  border-radius:14px;padding:1.25rem 1.5rem;color:#fff;
  display:flex;align-items:flex-start;gap:14px;
}
.ph-hero-ic{font-size:30px;flex-shrink:0;line-height:1}
.ph-hero h2{
  font-family:'Barlow Condensed',sans-serif;font-size:20px;font-weight:700;
  margin:0 0 4px;color:#fff;letter-spacing:.3px;
}
.ph-hero p{margin:0;color:rgba(255,255,255,.65);font-size:12.5px;line-height:1.5;max-width:680px}
.ph-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}
.ph-stat{
  background:#fff;border:1px solid var(--bd-lt);border-radius:12px;padding:.85rem 1rem;
}
.ph-stat .v{font-family:'Barlow Condensed',sans-serif;font-size:24px;font-weight:700;color:var(--navy)}
.ph-stat .l{font-size:11px;color:var(--tx-lt);text-transform:uppercase;letter-spacing:.4px;margin-top:2px;font-weight:700}
.ph-stat.teal .v{color:var(--teal)}
.ph-stat.coral .v{color:var(--coral)}
.ph-stat.amber .v{color:#c8860a}

.ph-actions{display:flex;gap:8px;flex-wrap:wrap}
.ph-section{
  background:#fff;border-radius:14px;border:1px solid var(--bd-lt);padding:1.1rem 1.25rem;
}
.ph-section h3{
  font-family:'Barlow Condensed',sans-serif;font-size:15px;font-weight:700;
  color:var(--navy);text-transform:uppercase;letter-spacing:.5px;margin:0 0 .8rem;
  display:flex;align-items:center;gap:8px;
}
.ph-warn{
  background:#fff9e6;border:1px solid #f0d060;border-radius:10px;
  padding:.65rem .85rem;color:#6a4a00;font-size:12.5px;margin-top:.6rem;
}
.ph-drive-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ph-drive-row input{flex:1;min-width:200px;padding:9px 12px;border:1.5px solid var(--bd);border-radius:10px;font-size:13px}

.ph-sheets{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;
}
.ph-sheet{
  background:#f8fbfa;border:1px solid var(--bd-lt);border-radius:10px;
  padding:.6rem .75rem;display:flex;align-items:center;gap:10px;cursor:pointer;
  transition:all .12s;
}
.ph-sheet:hover{border-color:var(--teal);background:#eef9f7}
.ph-sheet .num{
  font-family:'Barlow Condensed',sans-serif;font-weight:700;color:var(--teal-dk);
  background:var(--teal-lt);padding:3px 8px;border-radius:6px;font-size:12px;flex-shrink:0;
}
.ph-sheet .nm{flex:1;min-width:0;font-size:12px;color:var(--navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.ph-sheet.cur .num{background:#dcf5ef;color:#0a5c48}
.ph-sheet.sup{opacity:.55}
.ph-sheet.sup .num{background:#fce8e4;color:#9b2c1a}

.ph-viewer{
  background:#fff;border-radius:14px;border:1px solid var(--bd-lt);overflow:hidden;
}
.ph-viewer-bar{
  background:#f8fbfa;border-bottom:1px solid var(--bd-lt);padding:.8rem 1rem;
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
}
.ph-viewer-title{
  font-family:'Barlow Condensed',sans-serif;font-size:14px;font-weight:700;
  color:var(--navy);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.ph-viewer-stage{
  background:#eef4f3;min-height:380px;display:flex;align-items:center;justify-content:center;padding:1rem;
}
.ph-viewer-stage iframe{width:100%;min-height:540px;border:0;background:#fff;border-radius:10px}
.ph-viewer-stage img{max-width:100%;max-height:540px;object-fit:contain;border-radius:10px;background:#fff}
.ph-fallback{
  width:100%;max-width:520px;background:#fff;border:1.5px dashed var(--bd);
  border-radius:12px;padding:2rem 1.5rem;text-align:center;color:var(--tx-md);
}
.ph-fallback h4{
  font-family:'Barlow Condensed',sans-serif;font-size:18px;font-weight:700;
  color:var(--navy);margin-bottom:.5rem;
}
.ph-fallback p{font-size:13px;color:var(--tx-md);line-height:1.5;margin-bottom:.4rem}
.ph-fallback .mock{
  margin-top:1rem;background:linear-gradient(180deg,#fafafa,#f0f0f0);
  border:1px solid #ddd;border-radius:8px;padding:1.25rem;position:relative;
  font-family:monospace;font-size:11px;color:#888;text-align:left;
}
.ph-fallback .mock::before{
  content:"A0.01 — TITLE SHEET";position:absolute;top:8px;left:10px;
  font-family:'Barlow Condensed',sans-serif;font-weight:700;color:#444;font-size:10px;
}
.ph-fallback .markup{
  position:absolute;top:36px;right:18px;color:#e76f51;font-size:13px;font-weight:700;
  border:2px solid #e76f51;padding:2px 6px;border-radius:4px;transform:rotate(-6deg);
}
.sheet-preview-real{position:relative;width:100%;display:flex;justify-content:center;background:#f1f5f4;border-radius:12px;overflow:hidden}
.sheet-preview-real img{width:100%;max-height:620px;object-fit:contain;background:#fff}
.sheet-preview-tag{position:absolute;left:12px;bottom:12px;background:rgba(20,19,16,.86);color:#fff;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:700;letter-spacing:.3px}

/* ---------- SCHEDULER RECOVERY LAYER ---------- */
.sch-recovered-note{margin:1rem 1.5rem 0;padding:12px 14px;border:1px solid rgba(255,107,0,.22);background:linear-gradient(135deg,#eefbf8,#fff7dc);color:var(--tx);border-radius:14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;box-shadow:0 10px 24px rgba(20,19,16,.06)}
.sch-recovered-note strong{font-family:'Barlow Condensed',sans-serif;font-size:16px;color:var(--navy);letter-spacing:.3px;text-transform:uppercase}
.sch-recovered-note span{font-size:13px;color:var(--tx-md)}
.sch-recovered-snapshot{margin:1rem 1.5rem;background:#fff;border:1px solid var(--bd-lt);border-radius:16px;overflow:hidden;box-shadow:0 16px 34px rgba(20,19,16,.08)}
.snap-head{padding:13px 15px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--bd-lt);background:#f8fbfa}
.snap-head strong{display:block;font-family:'Barlow Condensed',sans-serif;color:var(--navy);font-size:17px;text-transform:uppercase;letter-spacing:.4px}
.snap-head span{font-size:12px;color:var(--tx-md)}
.snap-pills{display:flex;gap:6px;flex-wrap:wrap}
.snap-pills span{background:#e7f7f4;color:var(--teal-dk);border:1px solid #bfe7e0;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;text-transform:uppercase}
.snap-board{display:grid;grid-template-columns:repeat(3,minmax(190px,1fr));gap:10px;padding:12px}
.snap-col{background:#f8fbfa;border:1px solid var(--bd-lt);border-radius:13px;padding:10px;min-height:170px}
.snap-col h4{font-family:'Barlow Condensed',sans-serif;font-size:17px;color:var(--navy);margin-bottom:8px}
.snap-col h4 span{font-family:'Barlow';font-size:12px;color:var(--tx-lt);margin-left:4px}
.snap-card{background:#fff;border-left:4px solid var(--teal);border-radius:11px;padding:10px;margin-bottom:8px;box-shadow:0 8px 18px rgba(20,19,16,.06)}
.snap-card.add{border-left-color:#d99618}.snap-card.muted{border-left-color:#7d91a5}
.snap-card b{display:block;color:var(--navy);font-size:13px}
.snap-card small{display:block;color:var(--tx-md);font-size:11px;margin-top:2px}
.snap-card p{font-size:12px;color:var(--tx-md);margin:7px 0;line-height:1.35}
.snap-card button{border:1px solid var(--bd);background:#fff;color:var(--teal-dk);border-radius:8px;padding:5px 9px;font-size:11px;font-weight:700;cursor:pointer}

/* ---------- SERVICE CENTER ---------- */
.svc-wrap{display:flex;flex-direction:column;gap:1rem}
.svc-hero{
  background:linear-gradient(135deg,#141310,#1A1916 60%,#FF6B00);
  border-radius:16px;padding:1.5rem 1.75rem;color:#fff;
  display:flex;align-items:flex-start;gap:1.25rem;flex-wrap:wrap;
  box-shadow:0 10px 30px rgba(20,19,16,.22);
}
.svc-hero-ic{
  width:56px;height:56px;border-radius:14px;background:rgba(255,255,255,.12);
  display:flex;align-items:center;justify-content:center;font-size:28px;flex-shrink:0;
}
.svc-hero-text{flex:1;min-width:230px}
.svc-hero h2{
  font-family:'Barlow Condensed',sans-serif;font-size:24px;font-weight:700;margin:0 0 4px;color:#fff;
}
.svc-hero p{margin:0;color:rgba(255,255,255,.72);font-size:13px;line-height:1.5;max-width:540px}
.svc-hero-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:.75rem}
.svc-hero-actions .btn{
  background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.2);
}
.svc-hero-actions .btn:hover{background:rgba(255,255,255,.22)}
.svc-hero-actions .btn.primary{background:#e9c46a;color:#3a2a00;border-color:#e9c46a}
.svc-hero-actions .btn.primary:hover{background:#f4d27a}

.svc-cols{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;
}
.svc-col{
  background:#fff;border-radius:14px;border:1px solid var(--bd-lt);overflow:hidden;
}
.svc-col-hdr{
  background:#f8fbfa;border-bottom:1px solid var(--bd-lt);padding:.8rem 1rem;
  display:flex;align-items:center;gap:8px;
}
.svc-col-hdr h3{
  font-family:'Barlow Condensed',sans-serif;font-size:14px;font-weight:700;
  color:var(--navy);text-transform:uppercase;letter-spacing:.5px;flex:1;margin:0;
}
.svc-col-hdr .ct{
  background:var(--teal);color:#fff;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:700;
}
.svc-col-body{padding:.75rem 1rem 1rem;display:flex;flex-direction:column;gap:8px;min-height:120px}
.svc-card{
  background:#f8fbfa;border:1px solid var(--bd-lt);border-radius:10px;
  padding:.65rem .8rem;font-size:12.5px;
}
.svc-card .top{
  display:flex;justify-content:space-between;gap:8px;margin-bottom:3px;
  font-family:'Barlow Condensed',sans-serif;font-size:11.5px;color:var(--tx-lt);
  text-transform:uppercase;letter-spacing:.4px;font-weight:700;
}
.svc-card .nm{font-weight:700;color:var(--navy);font-size:13px;margin-bottom:2px}
.svc-card .desc{color:var(--tx-md);font-size:12px;line-height:1.4}

/* Notification bell */
.notif-bell{
  position:relative;background:rgba(255,255,255,.07);border:none;color:#fff;
  width:34px;height:34px;border-radius:10px;cursor:pointer;font-size:16px;
  display:flex;align-items:center;justify-content:center;
}
.notif-bell:hover{background:rgba(255,255,255,.14)}
.notif-bell .dot{
  position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;
  background:var(--coral);border:1.5px solid var(--navy);
}
.notif-pop{
  position:absolute;right:0;top:calc(100% + 8px);
  width:340px;max-width:calc(100vw - 24px);background:#fff;
  border-radius:14px;box-shadow:0 18px 46px rgba(0,0,0,.24);border:1px solid var(--bd-lt);
  display:none;z-index:400;overflow:hidden;
}
.notif-pop.show{display:block}
.notif-pop-hdr{
  background:#f8fbfa;border-bottom:1px solid var(--bd-lt);padding:.7rem 1rem;
  font-family:'Barlow Condensed',sans-serif;font-weight:700;color:var(--navy);font-size:13px;
  text-transform:uppercase;letter-spacing:.4px;
}
.notif-pop-list{max-height:400px;overflow-y:auto}
.notif-item{
  padding:.7rem 1rem;border-bottom:1px solid var(--bd-lt);font-size:12.5px;
  display:flex;gap:9px;align-items:flex-start;cursor:pointer;
}
.notif-item:last-child{border-bottom:none}
.notif-item:hover{background:#f5fbfa}
.notif-tag{
  background:var(--coral);color:#fff;font-size:9px;font-weight:700;padding:2px 6px;
  border-radius:4px;text-transform:uppercase;letter-spacing:.3px;flex-shrink:0;
}
.notif-tag.ok{background:var(--teal)}
.notif-text{flex:1;min-width:0}
.notif-text .nm{font-weight:700;color:var(--navy)}
.notif-text .meta{color:var(--tx-lt);font-size:11px;margin-top:1px}


/* ---------- LARGE HOME BUTTONS ---------- */
.home-bigbtns{display:flex;flex-direction:column;gap:12px}
.home-bigbtn{
  width:100%;display:flex;align-items:center;gap:14px;
  border:none;border-radius:18px;padding:1.2rem 1.5rem;
  cursor:pointer;font-family:'Barlow',sans-serif;
  transition:transform .12s,box-shadow .15s;
  text-align:center;color:#fff;
}
.home-bigbtn:hover{transform:translateY(-1px)}
.home-bigbtn-schedule{
  background:linear-gradient(135deg,#f4c430,#e9a414);color:#3a2a00;
  box-shadow:0 8px 22px rgba(233,164,20,.28);
}
.home-bigbtn-schedule:hover{box-shadow:0 12px 30px rgba(233,164,20,.36)}
.home-bigbtn-reminder{
  background:linear-gradient(135deg,#e63946,#c1121f);color:#fff;
  box-shadow:0 8px 22px rgba(193,18,31,.32);
}
.home-bigbtn-reminder:hover{box-shadow:0 12px 30px rgba(193,18,31,.4)}
.home-bigbtn-lily{
  background:linear-gradient(135deg,#7e3af2,#a855f7);color:#fff;
  box-shadow:0 8px 22px rgba(126,58,242,.32);
}
.home-bigbtn-lily:hover{box-shadow:0 12px 30px rgba(126,58,242,.42)}
.home-bigbtn-ic{
  width:60px;height:60px;border-radius:16px;
  background:rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;
  font-size:32px;flex-shrink:0;line-height:1;
}
.home-bigbtn-text{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-width:0}
.home-bigbtn-title{
  font-family:'Barlow Condensed',sans-serif;font-size:24px;font-weight:700;
  letter-spacing:.4px;line-height:1.1;
}
.home-bigbtn-sub{
  font-size:12.5px;opacity:.85;margin-top:3px;line-height:1.3;
}

/* Green quick-action buttons */
.home-action.green{
  background:linear-gradient(180deg,#FF6B00,#D95A00);
  border-color:#D95A00;color:#fff;
}
.home-action.green:hover{
  border-color:#D95A00;background:linear-gradient(180deg,#34b3a3,#239084);
  box-shadow:0 8px 20px rgba(255,107,0,.3);
}
.home-action.green .home-action-ic{
  background:rgba(255,255,255,.22);color:#fff;
}
.home-action.green .home-action-lbl{color:#fff}

/* Lily — purple space buddy SVG sizing.
   The SVG carries .lily-icon and lives inside whatever wrapper it is dropped in.
   We size it from the wrapper context so the same markup looks right at FAB,
   big-button, quick-action, and modal-header sizes. */
.lily-icon{width:100%;height:100%;display:block}
/* FAB launcher: fill the inner span */
.lily-fab-astro{
  width:38px;height:38px;line-height:1;display:inline-flex;
  align-items:center;justify-content:center;position:relative;z-index:1;
}
.lily-fab-astro .lily-icon{width:100%;height:100%}
/* Big home button slot — replaces emoji at 60x60 (and 46x46 on mobile) */
.home-bigbtn-ic .lily-icon{width:80%;height:80%}
/* Quick action 42x42 slot */
.home-action-ic .lily-icon{width:90%;height:90%}
/* Lily modal header — small inline "Lily" badge before the title */
.lily-modal-hdr .nm .lily-icon{
  width:22px;height:22px;display:inline-block;vertical-align:-5px;margin-right:6px;
}

/* ---------- MY DAY BUTTON (Home) — slim single-bar ---------- */
.home-bigbtn-myday{
  background:linear-gradient(135deg,#141310 0%,#143c5e 45%,#D95A00 85%,#FF6B00 100%);
  color:#fff;box-shadow:0 8px 22px rgba(20,19,16,.32);
  border:1px solid rgba(255,255,255,.10);
  position:relative;overflow:hidden;
  padding:.65rem 1rem;gap:12px;
  align-items:center;flex-wrap:nowrap;
  min-height:0;
}
.home-bigbtn-myday:hover{box-shadow:0 12px 30px rgba(20,19,16,.44);transform:translateY(-1px)}
.myday-shine{
  pointer-events:none;position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.18) 0%,rgba(255,255,255,.04) 42%,rgba(255,255,255,0) 60%);
  border-radius:inherit;
}
.home-bigbtn-myday::after{
  content:"";position:absolute;top:0;bottom:0;left:-40%;width:35%;
  background:linear-gradient(115deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.18) 50%,rgba(255,255,255,0) 100%);
  transform:skewX(-18deg);transition:left .55s ease;pointer-events:none;
}
.home-bigbtn-myday:hover::after{left:120%}
.myday-bar-ic{
  width:34px;height:34px;border-radius:10px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:18px;line-height:1;
  background:rgba(233,196,106,.22);
  border:1px solid rgba(255,255,255,.18);
  position:relative;z-index:1;
}
.myday-bar-title{
  font-family:'Barlow Condensed',sans-serif;font-size:20px;font-weight:700;
  letter-spacing:.6px;line-height:1;flex:1 1 auto;min-width:0;text-align:left;
  text-shadow:0 1px 1px rgba(0,0,0,.25);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  position:relative;z-index:1;
}
.myday-bar-chev{
  font-family:'Barlow Condensed',sans-serif;font-size:26px;font-weight:700;
  line-height:1;opacity:.75;flex-shrink:0;
  position:relative;z-index:1;
}
.myday-bar-date{
  display:inline-flex;align-items:center;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.18);
  color:#fff;border-radius:999px;
  padding:3px 10px;
  font-family:'Barlow Condensed',sans-serif;
  font-size:13px;font-weight:600;letter-spacing:.4px;
  line-height:1.4;white-space:nowrap;flex-shrink:0;
  position:relative;z-index:1;
  text-shadow:0 1px 1px rgba(0,0,0,.2);
}
.myday-bar-date-short{display:none}
.myday-badges{
  display:inline-flex;gap:6px;flex-wrap:nowrap;align-items:center;
  position:relative;z-index:1;
}
.myday-badge{
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.24);
  color:#fff;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:700;
  letter-spacing:.3px;line-height:1.5;white-space:nowrap;
}
.myday-badge.over{background:#c1121f;border-color:#e63946;color:#fff}
.myday-badge.amber{background:#d99618;border-color:#e9c46a;color:#241500}
.myday-badge.teal{background:#D95A00;border-color:#FF6B00;color:#fff}

/* ---------- MY DAY PANEL ---------- */
.myday-livebar{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;
  background:#141310;color:#fff;border-radius:14px;padding:10px 14px;
  border:1px solid #1d3550;
}
.myday-livebar-left{display:flex;align-items:center;gap:10px;font-size:13px}
.myday-livebar-left strong{font-family:'Barlow Condensed',sans-serif;font-size:14px;letter-spacing:.4px;text-transform:uppercase;color:#7ce3d6}
.myday-livebar-sub{color:rgba(255,255,255,.74);font-size:12px}
.myday-livebar-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.myday-livebar-meta{font-size:11.5px;color:rgba(255,255,255,.78);background:rgba(255,255,255,.06);padding:4px 9px;border-radius:999px}
.myday-livebar-pulse{
  width:10px;height:10px;border-radius:50%;background:#7ce3d6;
  box-shadow:0 0 0 0 rgba(124,227,214,.55);
  animation: myday-pulse 1.5s infinite;
}
@keyframes myday-pulse{
  0%{box-shadow:0 0 0 0 rgba(124,227,214,.55)}
  70%{box-shadow:0 0 0 12px rgba(124,227,214,0)}
  100%{box-shadow:0 0 0 0 rgba(124,227,214,0)}
}

.myday-panel{max-width:880px}
.myday-item.approval-card{
  align-items:flex-start;background:#fffdf6;border:1px solid #f0d99a;border-radius:10px;padding:10px 12px;margin:6px 0;
}
.myday-item.approval-card .myday-item-body{flex:1}
.myday-appr-details{
  margin-top:8px;font-size:12px;color:#33485e;display:grid;gap:4px;
  background:#fff;border:1px dashed #d8e8e5;border-radius:8px;padding:8px 10px;
}
.myday-appr-row{display:grid;grid-template-columns:110px 1fr;gap:8px;align-items:start}
.myday-appr-row b{color:#141310;font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.4px}
.myday-appr-preview{
  font-family:'Courier New',monospace;background:#f4f7f6;border:1px solid #d8e8e5;
  border-radius:6px;padding:6px 8px;font-size:11.5px;color:#1a2e2b;display:inline-block;
}
.myday-appr-att{
  display:inline-block;margin:2px 4px 0 0;background:#eef9f7;color:#0e7c7b;
  border:1px solid #FFD4B0;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;
}
.myday-appr-att[data-kind="img"]{background:#fff7e6;color:#a35d00;border-color:#f0d99a}
.myday-appr-att[data-kind="eml"]{background:#eef4ff;color:#1A1916;border-color:#c4d4e6}
.myday-appr-person{
  display:inline-block;margin:2px 4px 0 0;background:#f4f7f6;color:#33485e;
  border:1px solid #d8e8e5;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;
}
.pill.type{background:#FFF0E5;color:#0e7c7b;border-color:#FFD4B0}
.myday-summary{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;
  margin-bottom:1rem;
}
.myday-stat{
  background:#f8fbfa;border:1px solid var(--bd-lt);border-radius:10px;
  padding:.55rem .7rem;text-align:left;
}
.myday-stat .v{font-family:'Barlow Condensed',sans-serif;font-size:22px;font-weight:700;color:var(--navy);line-height:1}
.myday-stat .l{font-size:10px;color:var(--tx-lt);text-transform:uppercase;letter-spacing:.4px;font-weight:700;margin-top:3px}
.myday-stat.over .v{color:#c1121f}
.myday-stat.amber .v{color:#c8860a}
.myday-stat.teal .v{color:var(--teal)}

.myday-group{
  background:#fff;border:1px solid var(--bd-lt);border-radius:12px;
  margin-bottom:.85rem;overflow:hidden;
}
.myday-group-hdr{
  display:flex;align-items:center;gap:8px;
  background:#f8fbfa;border-bottom:1px solid var(--bd-lt);
  padding:.65rem .85rem;
}
.myday-group-hdr .ic{font-size:16px;line-height:1}
.myday-group-hdr h4{
  font-family:'Barlow Condensed',sans-serif;font-size:14px;font-weight:700;
  color:var(--navy);text-transform:uppercase;letter-spacing:.5px;flex:1;margin:0;
}
.myday-group-hdr .ct{
  background:var(--teal);color:#fff;padding:2px 9px;border-radius:10px;
  font-size:11px;font-weight:700;font-family:'Barlow Condensed',sans-serif;
}
.myday-group.overdue .myday-group-hdr{background:#fff0ef;border-bottom-color:#f4c4c0}
.myday-group.overdue .myday-group-hdr .ct{background:#c1121f}
.myday-group.amber .myday-group-hdr{background:#fff7e6;border-bottom-color:#f0d99a}
.myday-group.amber .myday-group-hdr .ct{background:#d99618}
.myday-group-body{padding:.5rem .65rem .65rem}
.myday-group-empty{
  padding:.85rem;text-align:center;color:var(--tx-lt);font-size:12.5px;font-style:italic;
}

.myday-item{
  display:flex;gap:10px;align-items:flex-start;
  background:#fff;border:1px solid var(--bd-lt);border-radius:10px;
  padding:.6rem .75rem;margin-top:6px;
  transition:border-color .12s, opacity .15s;
}
.myday-item:first-child{margin-top:2px}
.myday-item.done{opacity:.5}
.myday-item.done .myday-item-nm{text-decoration:line-through}
.myday-item.snoozed{opacity:.55;background:#f8fbfa}
.myday-item-ic{
  width:30px;height:30px;border-radius:8px;background:var(--teal-lt);color:var(--teal-dk);
  display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;
}
.myday-item.overdue .myday-item-ic{background:#fdecea;color:#c1121f}
.myday-item.amber .myday-item-ic{background:#fff4dc;color:#8a5c00}
.myday-item-body{flex:1;min-width:0}
.myday-item-nm{
  font-weight:700;color:var(--navy);font-size:13px;line-height:1.3;
}
.myday-item-meta{
  font-size:11.5px;color:var(--tx-md);margin-top:3px;display:flex;gap:8px;flex-wrap:wrap;
  align-items:center;
}
.myday-item-meta .pill{
  background:#eef9f7;color:var(--teal-dk);border-radius:5px;padding:1px 7px;
  font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;
}
.myday-item-meta .pill.over{background:#fdecea;color:#9b1c1c}
.myday-item-meta .pill.due{background:#fff4dc;color:#8a5c00}
.myday-item-meta .proj{color:var(--tx-md);font-weight:600}
.myday-item-actions{display:flex;gap:5px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}
.myday-act{
  border:1px solid var(--bd);background:#fff;color:var(--tx);
  border-radius:7px;padding:4px 9px;font-size:11px;font-weight:700;cursor:pointer;
  font-family:'Barlow',sans-serif;transition:all .12s;line-height:1.3;
}
.myday-act:hover{border-color:var(--teal);color:var(--teal)}
.myday-act.primary{background:var(--teal);border-color:var(--teal);color:#fff}
.myday-act.primary:hover{background:var(--teal-dk);border-color:var(--teal-dk);color:#fff}
.myday-act.warn{color:#9b1c1c;border-color:#f0c0bc}
.myday-act.warn:hover{background:#fdecea;color:#c1121f;border-color:#c1121f}

@media(max-width:680px){
  .myday-item{flex-wrap:wrap}
  .myday-item-actions{width:100%;justify-content:flex-start;margin-top:4px}
  .myday-summary{grid-template-columns:repeat(2,1fr)}
  .myday-badges{justify-content:flex-end}
}
@media(max-width:480px){
  .home-bigbtn-myday .myday-bar-chev{display:none}
  .home-bigbtn-myday .myday-badge.amber,
  .home-bigbtn-myday .myday-badge.teal{display:none}
  .home-bigbtn-myday .myday-bar-date-full{display:none}
  .home-bigbtn-myday .myday-bar-date-short{display:inline}
  .home-bigbtn-myday .myday-bar-title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .home-bigbtn-myday .myday-bar-date{font-size:12px;padding:2px 8px}
}

/* ---------- Shared simple modal (Trash, Customers, Permissions) ---------- */
.vmodal-overlay{
  position:fixed;inset:0;background:rgba(20,19,16,.65);
  display:none;align-items:flex-start;justify-content:center;
  z-index:250;padding:2.5rem 1rem;overflow-y:auto;backdrop-filter:blur(4px);
}
.vmodal-overlay.show{display:flex}
.vmodal{
  background:#fff;border-radius:18px;width:100%;max-width:780px;
  overflow:hidden;box-shadow:0 32px 80px rgba(0,0,0,.35);
  display:flex;flex-direction:column;max-height:calc(100vh - 5rem);
}
.vmodal-hdr{
  background:linear-gradient(135deg,var(--navy),var(--navy-md));
  padding:1.1rem 1.4rem;display:flex;align-items:center;gap:12px;color:#fff;
}
.vmodal-hdr h3{
  font-family:'Barlow Condensed',sans-serif;font-size:20px;font-weight:700;
  flex:1;color:#fff;margin:0;
}
.vmodal-x{
  background:rgba(255,255,255,.14);border:none;color:#fff;width:30px;height:30px;
  border-radius:8px;cursor:pointer;font-size:14px;
}
.vmodal-x:hover{background:rgba(255,255,255,.24)}
.vmodal-sub{
  background:#f8fbfa;border-bottom:1px solid var(--bd-lt);
  padding:.8rem 1.4rem;font-size:13px;color:var(--tx-md);line-height:1.5;
}
.vmodal-body{
  padding:1rem 1.25rem;overflow-y:auto;flex:1;
}
.vmodal-foot{
  padding:.85rem 1.25rem;border-top:1px solid var(--bd-lt);
  display:flex;justify-content:flex-end;gap:8px;background:#fafcfc;
}

/* Trash items */
.trash-item{
  display:flex;align-items:center;gap:12px;padding:.7rem .85rem;
  border:1px solid var(--bd-lt);border-radius:10px;margin-bottom:8px;background:#f8fbfa;
}
.trash-info{flex:1;min-width:0}
.trash-nm{font-weight:700;color:var(--navy);font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trash-meta{font-size:11px;color:var(--tx-lt);margin-top:2px}
.trash-actions{display:flex;gap:6px;flex-shrink:0}
.trash-actions .fbtn[disabled]{opacity:.45;cursor:not-allowed}

/* Customers */
.cust-row{
  display:flex;align-items:center;gap:12px;padding:.65rem .8rem;
  border:1px solid var(--bd-lt);border-radius:10px;margin-bottom:6px;background:#fff;
}
.cust-ic{font-size:22px;flex-shrink:0}
.cust-info{flex:1;min-width:0}
.cust-nm{font-weight:700;color:var(--navy);font-size:13.5px}
.cust-meta{font-size:11.5px;color:var(--tx-lt);margin-top:2px}

/* Permissions table */
.perm-table{width:100%;border-collapse:collapse;font-size:12.5px}
.perm-table th{
  background:#f8fbfa;border-bottom:1.5px solid var(--bd);padding:8px 10px;
  font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.4px;
  color:var(--tx-md);font-size:11px;text-align:left;
}
.perm-table td{
  padding:8px 10px;border-bottom:1px solid var(--bd-lt);vertical-align:top;
}
.perm-table td.ctr{text-align:center}
.perm-key{font-size:10px;color:var(--tx-lt);font-family:monospace;margin-top:2px}

/* responsive */
@media(max-width:680px){
  .nav{max-width:100vw;overflow-x:auto;padding-left:.75rem;padding-right:.75rem}
  .ntabs{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;max-width:100%}
  .main{padding:.75rem;max-width:100vw;overflow:hidden}
  .home-greet{padding:1.1rem 1.25rem}
  .home-greet h1{font-size:22px}
  .home-greet-stat{min-width:0;flex:1}
  .ph-stats{grid-template-columns:repeat(2,1fr)}
  .lily-modal{right:10px;left:10px;width:auto;bottom:90px}
  .snap-board{grid-template-columns:1fr;max-width:100%}
  .snap-head{align-items:flex-start;flex-direction:column}
  .sch-recovered-note{margin:.75rem .75rem 0}
  .sch-recovered-snapshot{margin:.75rem}
  .home-bigbtn{padding:1rem 1.1rem;gap:10px}
  .home-bigbtn-ic{width:46px;height:46px;font-size:24px;border-radius:12px}
  .home-bigbtn-ic.right{width:38px;height:38px;font-size:20px;border-radius:10px}
  .home-bigbtn-title{font-size:18px}
  .home-bigbtn-sub{font-size:11px}
  .home-bigbtn-myday{padding:.55rem .8rem;gap:10px}
  .home-bigbtn-myday .myday-bar-ic{width:30px;height:30px;font-size:16px;border-radius:9px}
  .home-bigbtn-myday .myday-bar-title{font-size:17px;letter-spacing:.4px}
  .home-bigbtn-myday .myday-badge{font-size:10.5px;padding:1px 7px}
  .home-bigbtn-myday .myday-bar-chev{font-size:22px}
  .vmodal{max-width:calc(100vw - 1rem)}
  .perm-table{font-size:11px}
}

/* ---------- Top-right global nav search ---------- */
.nav-search{
  position:relative;
  display:flex;align-items:center;justify-content:flex-end;
  flex:1 1 auto;
  min-width:0;
}
.nav-search-toggle{
  display:none;
  width:36px;height:36px;border-radius:999px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  color:#fff;font-size:15px;cursor:pointer;
  align-items:center;justify-content:center;
}
.nav-search-toggle:hover{background:rgba(255,255,255,.16)}
.nav-search-box{
  position:relative;
  display:flex;align-items:center;
  width:280px;max-width:32vw;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  padding:0 10px 0 34px;
  height:36px;
  transition:background .15s, border-color .15s, width .2s;
}
.nav-search-box:focus-within{
  background:rgba(255,255,255,.18);
  border-color:rgba(233,196,106,.55);
}
.nav-search-ic{
  position:absolute;left:11px;top:50%;transform:translateY(-50%);
  font-size:13px;color:rgba(255,255,255,.7);pointer-events:none;
}
.nav-search-box input{
  flex:1;min-width:0;
  background:transparent;border:0;outline:none;
  color:#fff;font-family:'Barlow',sans-serif;font-size:13px;font-weight:500;
  padding:0;
}
.nav-search-box input::placeholder{color:rgba(255,255,255,.55)}
.nav-search-clear{
  display:none;background:transparent;border:0;color:rgba(255,255,255,.6);
  cursor:pointer;font-size:12px;padding:2px 4px;border-radius:4px;
}
.nav-search-clear:hover{color:#fff;background:rgba(255,255,255,.12)}
.nav-search-box.has-value .nav-search-clear{display:inline-flex;align-items:center}
.nav-search-results{
  position:absolute;top:calc(100% + 8px);right:0;
  width:min(420px,90vw);
  max-height:min(60vh,520px);overflow-y:auto;
  background:#fff;border:1px solid var(--bd-lt);
  border-radius:14px;
  box-shadow:0 18px 46px rgba(0,0,0,.24);
  padding:6px;display:none;z-index:300;
}
.nav-search-results.show{display:block}
.nav-search-empty{font-size:13px;color:var(--tx-lt);padding:1rem .75rem;text-align:center}
.nav-search-item{
  display:flex;gap:10px;align-items:flex-start;
  padding:.55rem .7rem;border-radius:10px;cursor:pointer;
  transition:background .12s;
}
.nav-search-item:hover,.nav-search-item.active{background:#f5fbfa}
.nav-search-ic-cell{font-size:18px;flex-shrink:0;width:26px;text-align:center;line-height:1.1}
.nav-search-body{flex:1;min-width:0}
.nav-search-body .nm{font-weight:700;color:var(--navy);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav-search-body .sub{font-size:11px;color:var(--tx-lt);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav-search-tag{
  background:#eef9f7;color:var(--teal-dk);font-size:10px;font-weight:700;
  padding:2px 7px;border-radius:5px;text-transform:uppercase;letter-spacing:.3px;
  flex-shrink:0;align-self:center;
}

@media(max-width:880px){
  .nav-search-box{width:200px}
}
@media(max-width:680px){
  /* On mobile we hide the top-right search entirely; the dedicated
     full-width mobile search row below the nav takes over. */
  .nav-search{display:none !important}
}

/* ---------- Mobile-only full-width search row ---------- */
/* Default (desktop): hidden. The full-width row only appears on small screens. */
.nav-search-mobile{display:none}
@media(max-width:680px){
  .nav-search-mobile{
    position:relative;
    display:flex;align-items:center;
    gap:8px;
    padding:8px 12px;
    background:var(--navy,#141310);
    border-top:1px solid rgba(255,255,255,.08);
    border-bottom:1px solid rgba(255,255,255,.08);
    box-sizing:border-box;
    width:100%;
    max-width:100vw;
    overflow:visible;
  }
  .nav-search-mobile-ic{
    position:absolute;left:22px;top:50%;transform:translateY(-50%);
    font-size:14px;color:rgba(255,255,255,.7);pointer-events:none;
  }
  .nav-search-mobile input{
    flex:1;min-width:0;
    background:rgba(255,255,255,.1);
    border:1px solid rgba(255,255,255,.16);
    border-radius:999px;
    height:36px;
    padding:0 36px 0 34px;
    color:#fff;font-family:'Barlow',sans-serif;font-size:13px;font-weight:500;
    outline:none;
    box-sizing:border-box;
  }
  .nav-search-mobile input:focus{
    background:rgba(255,255,255,.18);
    border-color:rgba(233,196,106,.55);
  }
  .nav-search-mobile input::placeholder{color:rgba(255,255,255,.55)}
  .nav-search-mobile-clear{
    position:absolute;right:18px;top:50%;transform:translateY(-50%);
    display:none;background:transparent;border:0;color:rgba(255,255,255,.7);
    cursor:pointer;font-size:13px;padding:4px 6px;border-radius:6px;
  }
  .nav-search-mobile-clear:hover{color:#fff;background:rgba(255,255,255,.12)}
  .nav-search-mobile.has-value .nav-search-mobile-clear{display:inline-flex;align-items:center;justify-content:center}
  .nav-search-mobile-results{
    position:absolute;top:calc(100% - 1px);left:8px;right:8px;
    max-height:min(60vh,520px);overflow-y:auto;
    background:#fff;border:1px solid var(--bd-lt);
    border-radius:12px;
    box-shadow:0 18px 46px rgba(0,0,0,.28);
    padding:6px;display:none;z-index:301;
  }
  .nav-search-mobile-results.show{display:block}
}

/* ============================================================
   VILLA SHELL — display layer for full-page + 3/4 overlay views
   Rule: pages opened from anywhere render as full-page views with
   a clear Back/Close. The three Home shortcuts (Quick Scheduling
   Request, Quick Reminder, Lily's AI Studio) open as 3/4 overlay
   sheets so the Home dashboard remains visible behind them.
   ============================================================ */

/* Shared overlay base */
.vs-overlay{
  position:fixed;top:0;right:0;bottom:0;left:0;
  display:none;align-items:stretch;justify-content:center;
  z-index:260;background:rgba(20,19,16,.55);
  backdrop-filter:blur(3px);
  padding:0;
}
.vs-overlay.show{display:flex}

/* ---- Full-page overlay (default for opened pages) ---- */
.vs-overlay.vs-full{padding:0;align-items:stretch}
.vs-overlay.vs-full .vs-panel{
  width:100%;height:100%;max-width:100%;max-height:100%;
  border-radius:0;background:var(--bg);
  display:flex;flex-direction:column;overflow:hidden;
}

/* ---- 3/4 window overlay (Home quick shortcuts only) ---- */
.vs-overlay.vs-quarter{
  align-items:center;justify-content:center;padding:1.25rem;
}
.vs-overlay.vs-quarter .vs-panel{
  width:75vw;height:75vh;max-width:1200px;max-height:840px;
  border-radius:18px;background:#fff;
  box-shadow:0 32px 80px rgba(0,0,0,.45);
  display:flex;flex-direction:column;overflow:hidden;
}

/* Back/close bar shared by both wrappers */
.vs-bar{
  background:linear-gradient(135deg,var(--navy),var(--navy-md));
  color:#fff;padding:.65rem 1rem;
  display:flex;align-items:center;gap:10px;flex-shrink:0;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.vs-bar h3{
  font-family:'Barlow Condensed',sans-serif;font-size:18px;font-weight:700;
  flex:1;color:#fff;margin:0;line-height:1.2;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  display:flex;align-items:center;gap:8px;
}
.vs-bar-ic{
  display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;flex:0 0 26px;
}
.vs-bar-ic .lily-icon{width:100%;height:100%;display:block}
.vs-bar-tx{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.vs-back, .vs-close{
  background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.18);
  border-radius:8px;padding:6px 12px;font-size:12.5px;font-weight:700;
  font-family:'Barlow Condensed',sans-serif;letter-spacing:.4px;
  cursor:pointer;display:inline-flex;align-items:center;gap:6px;
  text-transform:uppercase;
}
.vs-back:hover, .vs-close:hover{background:rgba(255,255,255,.22)}
.vs-close{background:rgba(231,111,81,.85);border-color:rgba(231,111,81,1)}
.vs-close:hover{background:rgba(231,111,81,1)}

.vs-body{
  flex:1;overflow-y:auto;overflow-x:hidden;padding:1.25rem 1.5rem;
  background:var(--bg);
}
.vs-overlay.vs-quarter .vs-body{background:#fff}

/* Inline back-bar for embedded full-pages (PlanHub / Service / Scheduler) */
.vs-pagebar{
  display:flex;align-items:center;gap:10px;
  background:#fff;border:1px solid var(--bd-lt);border-radius:12px;
  padding:.55rem .75rem;margin-bottom:1rem;
  box-shadow:0 2px 6px rgba(20,19,16,.04);
}
.vs-pagebar .vs-pagebar-title{
  font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:14px;
  color:var(--navy);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  text-transform:uppercase;letter-spacing:.4px;
}
.vs-pagebar button{
  background:var(--white);color:var(--tx);
  border:1.5px solid var(--bd);border-radius:8px;
  padding:6px 12px;font-size:12px;font-weight:700;
  font-family:'Barlow',sans-serif;cursor:pointer;
  display:inline-flex;align-items:center;gap:6px;
}
.vs-pagebar button:hover{border-color:var(--teal);color:var(--teal)}

/* Mobile: 3/4 overlay drops to a near-full sheet but still feels like a sheet */
@media(max-width:680px){
  .vs-overlay.vs-quarter{padding:0;align-items:flex-end}
  .vs-overlay.vs-quarter .vs-panel{
    width:100vw;height:92vh;max-width:100vw;
    border-radius:18px 18px 0 0;
  }
  .vs-overlay.vs-full .vs-panel{height:100vh}
  .vs-body{padding:1rem}
  .vs-bar{padding:.55rem .75rem}
  .vs-bar h3{font-size:16px}
}

/* Quick Reminder form inside 3/4 overlay */
.vs-form{display:flex;flex-direction:column;gap:.85rem;max-width:560px;margin:0 auto}
.vs-form label{font-size:11px;font-weight:700;color:var(--tx-md);text-transform:uppercase;letter-spacing:.5px}
.vs-form textarea, .vs-form input, .vs-form select{
  width:100%;padding:10px 12px;border:1.5px solid var(--bd);border-radius:10px;
  font-size:14px;font-family:'Barlow',sans-serif;color:var(--tx);background:#fff;outline:none;
}
.vs-form textarea{min-height:120px;resize:vertical}
.vs-form textarea:focus, .vs-form input:focus, .vs-form select:focus{border-color:var(--teal)}
.vs-form-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:.5rem}
.vs-form .vs-hint{font-size:12px;color:var(--tx-lt);line-height:1.5}


/* ---------------------------------------------------------
   "Create Documents with Lily" full-page view (.dlt-*)
   Rendered inside VillaShell.openFull, so it sits on the
   standard full-page surface with a Back/Close bar above.
   --------------------------------------------------------- */
.dlt-wrap{max-width:1100px;margin:0 auto;padding:.25rem 0 1.5rem}
.dlt-hero{
  display:flex;align-items:center;gap:14px;margin:.25rem 0 1.1rem;
  background:linear-gradient(135deg,#efe7ff,#f8f4ff);
  border:1px solid #e3d6f7;border-radius:16px;padding:1rem 1.15rem;
}
.dlt-hero-ic{
  width:54px;height:54px;border-radius:14px;background:#fff;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  box-shadow:0 4px 14px rgba(102,71,176,.18);
}
.dlt-hero-ic svg{width:38px;height:38px}
.dlt-hero-text h2{
  font-family:'Barlow Condensed',sans-serif;font-size:24px;font-weight:700;
  color:var(--navy);margin:0 0 4px;letter-spacing:.3px;
}
.dlt-hero-text p{margin:0;font-size:14px;color:var(--tx-md);line-height:1.5;max-width:760px}

.dlt-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:14px;
}
.dlt-card{
  display:flex;gap:12px;align-items:flex-start;text-align:left;
  background:#fff;border:1px solid var(--bd-lt);border-radius:14px;
  padding:1rem 1.05rem;cursor:pointer;font-family:'Barlow',sans-serif;
  color:var(--tx);transition:all .15s;width:100%;
}
.dlt-card:hover{
  border-color:var(--teal);transform:translateY(-2px);
  box-shadow:0 10px 26px rgba(255,107,0,.15);
}
.dlt-icon{
  width:40px;height:40px;border-radius:10px;background:#eef9f7;
  display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;
}
.dlt-body{flex:1;min-width:0}
.dlt-title{
  font-family:'Barlow Condensed',sans-serif;font-size:18px;font-weight:700;
  color:var(--navy);margin-bottom:4px;letter-spacing:.2px;
}
.dlt-blurb{font-size:13px;color:var(--tx-md);line-height:1.5;margin-bottom:8px}
.dlt-cta{
  font-size:12px;font-weight:700;color:var(--teal-dk);
  text-transform:uppercase;letter-spacing:.5px;
}
.dlt-foot{
  margin:1.25rem auto 0;max-width:760px;text-align:center;
  font-size:12.5px;color:var(--tx-md);line-height:1.55;
}

@media(max-width:640px){
  .dlt-hero{flex-direction:column;align-items:flex-start;gap:10px;padding:.85rem .95rem}
  .dlt-hero-text h2{font-size:21px}
  .dlt-grid{grid-template-columns:1fr;gap:10px}
}

/* ============================================================
   SCHEDULING WORKFLOW LAYER — drag/drop, time off, notifs,
   conflict drawer, locked badge, viewer extras.
   ============================================================ */

/* Sub-tab styling */
.swf-stab.on{background:var(--teal);border-color:var(--teal);color:#fff}

/* Drag/drop visuals */
.sch-card[draggable="true"]{cursor:grab}
.sch-card[draggable="true"]:active{cursor:grabbing}
.swf-dragging{opacity:.45;outline:2px dashed var(--teal-dk)}
.swf-drop-target{outline:2px dashed var(--teal);background:linear-gradient(0deg,rgba(255,107,0,.06),rgba(255,107,0,.06))}
.swf-locked-card{box-shadow:inset 3px 0 0 #6b7280;}
.swf-conflict-card{box-shadow:inset 3px 0 0 var(--coral);}
.swf-card-extras{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}
.swf-badge-locked{background:#e8eaee;color:#3f4853}
.swf-badge-conflict{background:#fce8e4;color:#9b2c1a}
.swf-badge-notified{background:#dcf5ef;color:#0a5c48}

/* Unscheduled strip */
.swf-unsched-strip{margin:1rem 1.5rem;padding:.75rem 1rem;background:var(--white);border:1px solid var(--bd);border-radius:12px;}
.swf-unsched-hd{font-size:13px;color:var(--tx-md);margin-bottom:6px}
.swf-unsched-list{display:flex;flex-wrap:wrap;gap:6px}
.swf-unsched-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:#fff7d6;border:1px solid #f0d060;font-size:12px;color:#5a3a00}
.swf-unsched-pill.swf-off-pill{background:#e8eaee;border-color:#cfd4db;color:#3f4853}
.swf-mini-btn{padding:3px 8px;font-size:11px;border-radius:7px;border:1px solid var(--bd);background:#fff;color:var(--tx);cursor:pointer}
.swf-mini-btn:hover{border-color:var(--teal);color:var(--teal)}

/* Conflict drawer */
.swf-conflict-drawer{margin:1rem 1.5rem;padding:.875rem 1rem;background:#fff5f2;border:1.5px solid var(--coral);border-radius:12px;}
.swf-conflict-drawer h4{font-family:'Barlow Condensed',sans-serif;color:var(--coral);font-size:16px;margin-bottom:.5rem}
.swf-conflict-item{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:.4rem .25rem;border-bottom:1px dashed #f7c4b8;flex-wrap:wrap}
.swf-conflict-item:last-child{border-bottom:none}
.swf-conflict-actions{display:flex;gap:6px;align-items:center}
.swf-hard-block{background:var(--coral);color:#fff;font-size:10px;font-weight:700;letter-spacing:.4px;padding:2px 7px;border-radius:5px;text-transform:uppercase}

/* Worker profiles */
.swf-worker-card{background:var(--white);border:1px solid var(--bd-lt);border-radius:12px;padding:.875rem 1rem;margin-bottom:.75rem}
.swf-worker-hdr{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap}
.swf-worker-name{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:18px;color:var(--navy)}
.swf-worker-meta{font-size:12px;color:var(--tx-lt);margin-top:2px}
.swf-worker-actions{display:flex;gap:6px;flex-wrap:wrap}
.swf-worker-bal{display:flex;gap:8px;flex-wrap:wrap;margin-top:.625rem}
.swf-bal{background:#f8fbfa;border:1px solid var(--bd-lt);border-radius:8px;padding:.4rem .625rem;font-size:12px;color:var(--tx-md);min-width:110px;}
.swf-bal-vac{background:#eef5ff;border-color:#b8c7f5}
.swf-bal-sick{background:#fff5f2;border-color:#f7c4b8}
.swf-bal-furlough{background:#f5eefb;border-color:#d8b8e8}
.swf-worker-upcoming{margin-top:.5rem;font-size:12px;color:var(--tx-md);display:flex;flex-wrap:wrap;gap:6px;align-items:center}

/* Time off entries */
.swf-toff-card{display:flex;justify-content:space-between;gap:10px;background:var(--white);border:1px solid var(--bd-lt);border-left:4px solid var(--teal);border-radius:10px;padding:.75rem 1rem;margin-bottom:.5rem;flex-wrap:wrap}
.swf-toff-card.swf-toff-vacation{border-left-color:#4a7af5}
.swf-toff-card.swf-toff-sick{border-left-color:var(--coral)}
.swf-toff-card.swf-toff-furlough{border-left-color:#9c5fd1}
.swf-toff-name{color:var(--navy)}
.swf-toff-meta{font-size:12px;color:var(--tx-lt);margin-top:3px}
.swf-toff-reason{font-size:12px;font-style:italic;color:var(--tx-md);margin-top:4px}
.swf-toff-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.swf-toff-pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;background:#eef5ff;color:#2a4a9a}
.swf-toff-pill.swf-toff-sick{background:#fce8e4;color:#9b2c1a}
.swf-toff-pill.swf-toff-furlough{background:#f5eefb;color:#5b3a7a}
.swf-toff-pill em{font-style:normal;font-weight:700;text-transform:uppercase;font-size:9px;letter-spacing:.4px;margin-left:4px}
.swf-toff-status-chip{display:inline-block;padding:1px 7px;border-radius:5px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}
.swf-status-pending{background:#fff4dc;color:#7a5000}
.swf-status-approved{background:#dcf5ef;color:#0a5c48}
.swf-status-denied{background:#fce8e4;color:#9b2c1a}
.swf-status-sim{background:#e4ecff;color:#2a4a9a}

/* Policy banner */
.swf-policy{background:#fff9e6;border:1px solid #f0d060;border-radius:10px;padding:.625rem .875rem;font-size:13px;color:#5a3a00;margin-bottom:.75rem}
.swf-locked{background:#f8fbfa;border:1px dashed var(--bd);padding:1.25rem;border-radius:12px;text-align:center;color:var(--tx-md)}
.swf-empty{text-align:center;padding:1.5rem;color:var(--tx-lt);font-size:13px}
.swf-mut{color:var(--tx-lt);font-size:12px}
.swf-h3{font-family:'Barlow Condensed',sans-serif;font-size:16px;font-weight:700;color:var(--navy);margin-bottom:.5rem}
.swf-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:760px){ .swf-grid-2{grid-template-columns:1fr} }
.swf-list{background:var(--white);border:1px solid var(--bd-lt);border-radius:10px;max-height:340px;overflow:auto}
.swf-notif-row,.swf-ar-row,.swf-audit-row{display:grid;grid-template-columns:120px 1fr auto;gap:8px;padding:.5rem .75rem;border-bottom:1px solid var(--bd-lt);font-size:12px;align-items:center}
.swf-ar-row{grid-template-columns:1fr}
.swf-audit-row{grid-template-columns:130px 110px 1fr 1fr}
.swf-notif-row:last-child,.swf-ar-row:last-child,.swf-audit-row:last-child{border-bottom:none}
.swf-notif-meta,.swf-audit-ts{font-family:'Barlow Condensed',sans-serif;color:var(--tx-lt)}
.swf-audit-who{color:var(--tx-md);font-weight:600}
.swf-audit-action{color:var(--navy)}
.swf-audit-target{color:var(--tx-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.swf-notif-sub{color:var(--tx-lt)}
.swf-ar-meta{color:var(--tx-lt);font-size:11px}
.swf-ar-scope{color:var(--tx-md);margin-top:3px;font-style:italic}

/* Channel chips */
.swf-chan-chip{display:inline-block;padding:1px 7px;border-radius:5px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;margin-right:6px}
.swf-chan-in-app{background:#dcf5ef;color:#0a5c48}
.swf-chan-sms{background:#fff4dc;color:#7a5000}
.swf-chan-calendar{background:#e4ecff;color:#2a4a9a}

/* Hint text */
.swf-hint{font-size:11px;color:var(--tx-lt);margin-top:6px;line-height:1.45}

/* Viewer */
.swf-viewer-head{background:linear-gradient(135deg,var(--teal-dk),var(--teal));}
.swf-viewer-body{padding:1.25rem 1.5rem}
.swf-viewer-grid{display:grid;grid-template-columns:1fr 1fr;gap:.875rem .75rem;margin-bottom:.875rem}
@media(max-width:560px){ .swf-viewer-grid{grid-template-columns:1fr} }
.swf-viewer-grid > div{font-size:13px;color:var(--tx-md)}
.swf-viewer-grid label{display:block;margin-bottom:2px}
.swf-viewer-conflicts{background:#fff5f2;border:1.5px solid var(--coral);border-radius:10px;padding:.625rem .875rem;color:#9b2c1a;font-size:13px;margin-bottom:.875rem}
.swf-viewer-conflicts ul{margin:.25rem 0 0 1.1rem}
.swf-viewer-quick{display:flex;flex-wrap:wrap;gap:14px;background:#f8fbfa;border:1px solid var(--bd-lt);border-radius:10px;padding:.625rem .875rem;margin-bottom:.875rem}
.swf-toggle{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--tx);cursor:pointer}
.swf-toggle input{width:16px;height:16px;accent-color:var(--teal)}
.swf-viewer-extend{background:#fff9e6;border:1px solid #f0d060;border-radius:10px;padding:.75rem .875rem}

/* Dialog override: viewer is a small modal */
.swf-viewer-head + .swf-viewer-body{max-height:60vh;overflow-y:auto}

/* Mobile no horizontal overflow safety */
@media(max-width:480px){
  .swf-unsched-strip,.swf-conflict-drawer{margin-left:.75rem;margin-right:.75rem}
}

/* =====================================================================
   v2 — Crew templates, individual chips, durations, event types,
        split/pull, ack tracking, nightly reminders
   ===================================================================== */
.swf-composer{background:#f8fbfa;border:1px solid var(--bd-lt);border-radius:12px;padding:.75rem .875rem;margin:.5rem 0 .75rem;display:flex;flex-direction:column;gap:.625rem}
.swf-composer-row{display:flex;flex-direction:column;gap:6px;min-width:0}
.swf-composer-row .flbl{margin-bottom:0}
.swf-evt-row,.swf-tpl-row,.swf-dur-row,.swf-chips-host,.swf-ind-row{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.swf-ind-row{align-items:center}
.swf-ind-row .fse{flex:1;min-width:160px}
.swf-tpl-btn,.swf-evt-btn,.swf-dur-btn{padding:5px 10px;border:1px solid var(--bd);border-radius:999px;background:#fff;font-size:12px;color:var(--tx);cursor:pointer;font-family:inherit;white-space:nowrap}
.swf-tpl-btn:hover,.swf-evt-btn:hover,.swf-dur-btn:hover{border-color:var(--teal);color:var(--teal)}
.swf-tpl-btn.on,.swf-evt-btn.on,.swf-dur-btn.on{background:var(--teal);border-color:var(--teal);color:#fff}
.swf-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 8px 4px 10px;border-radius:999px;font-size:12px;line-height:1.2;border:1px solid var(--bd);background:#fff;max-width:100%}
.swf-chip-crew{background:#eef5ff;border-color:#b8c7f5;color:#1a3a8a}
.swf-chip-ind{background:#fff7d6;border-color:#f0d060;color:#5a3a00}
.swf-chip-sub{color:var(--tx-md);font-size:11px;margin-left:4px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.swf-chip-x{border:none;background:transparent;cursor:pointer;color:inherit;font-size:14px;line-height:1;padding:0 2px;opacity:.6}
.swf-chip-x:hover{opacity:1}

/* Viewer extras */
.swf-viewer-extras-v2{display:flex;flex-direction:column;gap:.75rem;margin-top:.75rem}
.swf-viewer-summary{display:flex;flex-wrap:wrap;gap:6px}
.swf-summary-pill{background:#eef5ff;color:#1a3a8a;border:1px solid #b8c7f5;border-radius:999px;padding:3px 10px;font-size:12px}
.swf-acks{background:#fff;border:1px solid var(--bd-lt);border-radius:10px;padding:.625rem .875rem}
.swf-ack-list{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.swf-ack-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;font-size:13px}
.swf-ack-name{color:var(--navy);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.swf-ack-chip{display:inline-block;padding:2px 8px;border-radius:5px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}
.swf-ack-pending{background:#fff4dc;color:#7a5000}
.swf-ack-confirmed{background:#dcf5ef;color:#0a5c48}
.swf-ack-question{background:#e4ecff;color:#2a4a9a}
.swf-ack-cant{background:#fce8e4;color:#9b2c1a}
.swf-ack-sel{font-size:12px;padding:3px 6px;max-width:160px}

/* Split/Pull */
.swf-split-box{background:#fff;border:1px dashed var(--coral);border-radius:10px;padding:.625rem .875rem;color:var(--tx)}
.swf-split-pickers{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}
.swf-split-pick{font-size:13px;display:flex;align-items:center;gap:5px;background:#f8fbfa;border:1px solid var(--bd-lt);border-radius:8px;padding:3px 9px;cursor:pointer}
.swf-split-pick input{accent-color:var(--coral)}

/* Nightly */
.swf-nightly-meta{font-size:12px;color:var(--tx-md);padding:.5rem .75rem;border-bottom:1px solid var(--bd-lt)}
.swf-nightly-row{display:grid;grid-template-columns:1.4fr .8fr 1.4fr auto;gap:8px;padding:.5rem .75rem;border-bottom:1px solid var(--bd-lt);align-items:center;font-size:13px}
.swf-nightly-row:last-child{border-bottom:none}
.swf-nightly-name{color:var(--navy)}
.swf-nightly-time{color:var(--tx-md);font-family:'Barlow Condensed',sans-serif}
.swf-nightly-channels{display:flex;flex-wrap:wrap;gap:4px}
.swf-nightly-hist-row{display:grid;grid-template-columns:160px 1fr auto auto;gap:8px;padding:.4rem .75rem;border-bottom:1px solid var(--bd-lt);font-size:12px;align-items:center}
.swf-nightly-hist-row:last-child{border-bottom:none}

/* Mobile */
@media(max-width:560px){
  .swf-ack-row{grid-template-columns:1fr auto;row-gap:4px}
  .swf-ack-sel{grid-column:1/-1;max-width:none}
  .swf-nightly-row{grid-template-columns:1fr;}
  .swf-nightly-hist-row{grid-template-columns:1fr 1fr}
  .swf-tpl-btn,.swf-evt-btn,.swf-dur-btn{font-size:11px;padding:4px 8px}
  .swf-chip-sub{max-width:140px}
}
@media(max-width:380px){
  .swf-chip-sub{display:none}
}

/* ============================================================
   SCHEDULING WORKFLOW V3 — additive styles
   ============================================================ */
.swf3-stab{background:rgba(255,107,0,.08);border-color:rgba(255,107,0,.35);color:var(--teal-dk)}
.swf3-stab.on{background:var(--teal);border-color:var(--teal);color:#fff}

/* Settings panel */
.swf3-set-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.swf3-set-sec{background:#fff;border:1px solid var(--bd-lt);border-radius:12px;padding:14px}
.swf3-set-sec h4{font-family:'Barlow Condensed',sans-serif;font-size:15px;font-weight:700;color:var(--navy);margin-bottom:10px;letter-spacing:.3px;text-transform:uppercase}
.swf3-tog{display:flex;align-items:flex-start;gap:9px;padding:8px 4px;cursor:pointer;border-bottom:1px dashed var(--bd-lt)}
.swf3-tog:last-child{border-bottom:0}
.swf3-tog input[type=checkbox]{margin-top:3px;flex-shrink:0;accent-color:var(--teal)}
.swf3-tog-lbl{display:flex;flex-direction:column;font-size:13px;color:var(--tx)}
.swf3-tog-lbl b{font-weight:700;color:var(--navy)}
.swf3-tog-hint{font-size:11px;color:var(--tx-lt);margin-top:1px;line-height:1.4}
.swf3-tog-sm{padding:5px 4px}
.swf3-tog-sm .swf3-tog-lbl{font-size:12px}
.swf3-tog-row{display:flex;flex-wrap:wrap;gap:6px 14px}

/* Form extras */
.swf3-form-extras{margin-top:1rem;border-top:1px solid var(--bd-lt);padding-top:1rem}
.swf3-section{background:#f9fcfb;border:1px solid var(--bd-lt);border-radius:10px;padding:12px 14px;margin-bottom:10px}
.swf3-section h4{font-family:'Barlow Condensed',sans-serif;font-size:14px;font-weight:700;color:var(--navy);margin-bottom:8px;letter-spacing:.3px;text-transform:uppercase}

/* Weather preview */
.swf3-wx-preview{background:#fff;border:1px solid var(--bd-lt);border-radius:8px;padding:8px 10px;margin:6px 0;font-size:13px}
.swf3-wx-row{display:flex;gap:18px;flex-wrap:wrap}

/* 10-day forecast */
.swf3-fc-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.swf3-fc-card{background:#f9fcfb;border:1px solid var(--bd-lt);border-radius:10px;padding:10px;text-align:center}
.swf3-fc-day{font-size:11px;color:var(--tx-lt);font-weight:700;text-transform:uppercase;letter-spacing:.3px}
.swf3-fc-icon{font-size:26px;margin:4px 0}
.swf3-fc-cond{font-size:12px;color:var(--tx);font-weight:600}
.swf3-fc-temps{font-size:13px;margin-top:4px}
.swf3-fc-rain{font-size:11px;color:var(--tx-md);margin-top:2px}

/* Daily print/text */
.swf3-day-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.swf3-day-card{background:#fff;border:1px solid var(--bd-lt);border-radius:10px;padding:10px 12px;margin-bottom:10px}
.swf3-day-hd{font-family:'Barlow Condensed',sans-serif;font-weight:700;color:var(--navy);font-size:15px;margin-bottom:6px;border-bottom:1px solid var(--bd-lt);padding-bottom:4px}
.swf3-day-line{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;padding:3px 0;line-height:1.5}
.swf3-day-time{font-weight:700;color:var(--teal-dk);min-width:120px}
.swf3-day-proj{font-weight:600;color:var(--navy)}
.swf3-day-meta{color:var(--tx-md);flex:1;min-width:200px}

/* Unscheduled buckets */
.swf3-buck-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.swf3-buck{background:#fff;border:1px solid var(--bd-lt);border-radius:10px;padding:10px}
.swf3-buck-hd{font-family:'Barlow Condensed',sans-serif;font-weight:700;color:var(--navy);font-size:14px;margin-bottom:6px;border-bottom:1px solid var(--bd-lt);padding-bottom:4px}
.swf3-buck-hd span{color:var(--tx-lt);font-weight:600}
.swf3-buck-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;padding:4px 0;border-bottom:1px dashed var(--bd-lt)}
.swf3-buck-row:last-child{border-bottom:0}
.swf3-buck-avail{border-color:rgba(255,107,0,.35);background:#f3fbf9}
.swf3-buck-sb{border-color:rgba(233,196,106,.4);background:#fff8e8}
.swf3-buck-off{background:#f4f4f4}
.swf3-buck-sick{border-color:rgba(231,111,81,.35);background:#fff2ed}
.swf3-buck-fur{background:#f8f4ec}
.swf3-mini{padding:4px 10px;font-size:11px}
.swf3-mini-empty{padding:6px 0;font-size:11px;color:var(--tx-lt)}

/* Request queue / AR / audit rows */
.swf3-q-row,.swf3-ar-row{background:#fff;border:1px solid var(--bd-lt);border-radius:10px;padding:10px 12px;margin-bottom:8px;display:flex;flex-direction:column;gap:4px}
.swf3-q-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:13px}
.swf3-q-bill{font-size:12px;color:var(--tx-md)}
.swf3-audit-row{display:grid;grid-template-columns:170px 130px 1fr 1fr;gap:8px;font-size:12px;padding:4px 6px;border-bottom:1px dashed var(--bd-lt)}

/* Viewer extras pills */
.swf3-viewer-extras{margin-top:.75rem;border-top:1px dashed var(--bd-lt);padding-top:.75rem}
.swf3-pill-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.swf3-pill{display:inline-block;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:600;background:#eef9f7;color:var(--teal-dk);border:1px solid rgba(255,107,0,.25)}
.swf3-pill-dep{background:#fff8e8;color:#8a6a13;border-color:#e9c46a}
.swf3-pill-mat{background:#eef4f9;color:#2a5d8f;border-color:#b6cde2}
.swf3-pill-bill{background:#e6f7ee;color:#1d7a4e;border-color:#86c9a4}
.swf3-pill-nobill{background:#fdecec;color:#a52828;border-color:#e9a4a4}
.swf3-pill-review{background:#fff4e0;color:#8a5b13;border-color:#e9c490}
.swf3-pill-lock{background:#f0eaff;color:#4b2f9b;border-color:#c7b9f1}
.swf3-pill-wx{background:#e9f5fb;color:#0d5276;border-color:#b3d9ec}
.swf3-warn{background:#fff4e0;border:1px solid #e9c490;color:#8a5b13;padding:6px 10px;border-radius:8px;font-size:12px;margin:6px 0}
.swf3-fnotes{background:#fff;border:1px solid var(--bd-lt);border-radius:8px;padding:8px 10px;font-size:13px;margin:4px 0}

/* Lily night-before per-assignment preview */
.swf3-night-wrap{margin-top:.5rem}
.swf3-night-card{background:#fff;border:1px solid var(--bd-lt);border-radius:10px;padding:10px 12px;margin-bottom:10px}
.swf3-night-hd{font-family:'Barlow Condensed',sans-serif;font-weight:700;color:var(--navy);margin-bottom:4px}
.swf3-night-msg{font-size:12px;color:var(--tx-md);margin-bottom:6px}
.swf3-night-quote{background:#f3fbf9;border-left:3px solid var(--teal);padding:6px 10px;border-radius:6px;margin-top:4px;font-style:italic;color:var(--tx)}
.swf3-night-channels{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0}
.swf3-night-channels .swf-chan-chip{padding:2px 8px;border-radius:999px;font-size:10px;background:#eef9f7;color:var(--teal-dk);border:1px solid rgba(255,107,0,.2);text-transform:uppercase;letter-spacing:.3px}
.swf3-night-acks{display:flex;flex-wrap:wrap;gap:4px}

/* Mobile */
@media(max-width:780px){
  .swf3-set-grid{grid-template-columns:1fr}
  .swf3-day-cols{grid-template-columns:1fr}
  .swf3-fc-grid{grid-template-columns:repeat(2,1fr)}
  .swf3-audit-row{grid-template-columns:1fr;gap:2px}
  .swf3-pill-row{gap:4px}
}

/* ============================================================
   DOCUMENT WORKFLOWS — expanded Lily docs page, starter panel,
   admin configurator (drag/drop, role visibility, enable toggle)
   ============================================================ */

/* Hero actions slot (admin button on the right of the Lily docs hero) */
.dlt-hero{flex-wrap:wrap}
.dlt-hero-actions{margin-left:auto;display:flex;gap:8px}
.dlt-admin-btn{white-space:nowrap}

/* Category filter chips */
.dlt-filterbar{
  display:flex;flex-wrap:wrap;gap:6px;margin:0 0 1rem;
  padding:6px 8px;border:1px solid var(--bd-lt);border-radius:12px;background:#fbfaff;
}
.dlt-fchip{
  padding:6px 12px;border-radius:999px;border:1px solid var(--bd-lt);background:#fff;
  font-family:'Barlow',sans-serif;font-size:12px;font-weight:700;letter-spacing:.3px;
  color:var(--tx-md);cursor:pointer;transition:all .12s;
}
.dlt-fchip:hover{border-color:var(--teal);color:var(--teal-dk)}
.dlt-fchip.on{background:var(--navy);border-color:var(--navy);color:#fff}

.dlt-cat-tag{
  display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;
  color:var(--teal-dk);background:#eef9f7;border:1px solid rgba(255,107,0,.18);
  padding:2px 7px;border-radius:999px;margin-bottom:6px;
}
.dlt-empty{
  border:1px dashed var(--bd-lt);background:#fbfaff;border-radius:12px;
  padding:1rem;text-align:center;color:var(--tx-md);margin-bottom:1rem;font-size:13px;
}

/* Starter panel */
.dlt-starter{max-width:880px;margin:0 auto;padding:.25rem 0 1.5rem;display:flex;flex-direction:column;gap:1rem}
.dlt-starter-hdr{
  display:flex;gap:14px;align-items:flex-start;
  background:linear-gradient(135deg,#efe7ff,#f8f4ff);
  border:1px solid #e3d6f7;border-radius:16px;padding:1rem 1.15rem;
}
.dlt-starter-ic{
  width:54px;height:54px;border-radius:14px;background:#fff;
  display:flex;align-items:center;justify-content:center;font-size:28px;flex-shrink:0;
  box-shadow:0 4px 14px rgba(102,71,176,.18);
}
.dlt-starter-hdr h3{
  font-family:'Barlow Condensed',sans-serif;font-size:22px;font-weight:700;
  color:var(--navy);margin:0 0 6px;letter-spacing:.3px;
}
.dlt-starter-hdr p{margin:.4rem 0 0;font-size:13.5px;color:var(--tx-md);line-height:1.5}
.dlt-starter-meta{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}
.dlt-starter-meta .pill{
  font-size:11px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;
  background:#fff;color:var(--navy);border:1px solid var(--bd-lt);padding:2px 8px;border-radius:999px;
}
.dlt-starter-form,.dlt-starter-skill{
  background:#fff;border:1px solid var(--bd-lt);border-radius:14px;padding:1rem 1.15rem;
}
.dlt-starter-form h4,.dlt-starter-skill h4{
  font-family:'Barlow Condensed',sans-serif;font-size:16px;font-weight:700;
  color:var(--navy);margin:0 0 4px;letter-spacing:.3px;text-transform:uppercase;
}
.dlt-starter-hint{margin:0 0 .75rem;font-size:12.5px;color:var(--tx-md);line-height:1.5}
.dlf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.6rem .8rem}
.dlf-row{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--tx)}
.dlf-row > span{font-weight:700;color:var(--navy);font-size:12px;letter-spacing:.2px}
.dlf-row input[type="text"],.dlf-row textarea,.dlf-row input[type="file"]{
  width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--bd-lt);
  font-size:13.5px;font-family:'Barlow',sans-serif;color:var(--tx);background:#fff;outline:none;
}
.dlf-row textarea{min-height:60px;resize:vertical}
.dlf-row input:focus,.dlf-row textarea:focus{border-color:var(--teal)}
.dlf-billable{flex-direction:row;align-items:center;gap:8px;margin-top:.5rem}
.dlf-billable > span{font-weight:600;color:var(--tx);font-size:13px;letter-spacing:0}
.dlt-starter-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:.85rem}
.dlt-steps{margin:.4rem 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}
.dlt-steps li{font-size:13px;color:var(--tx-md);background:#fbfaff;border:1px solid var(--bd-lt);padding:6px 10px;border-radius:8px}

/* Generated draft preview card */
.dlt-draft-slot{min-height:0}
.dlt-draft-card{
  border:1px solid #e3d6f7;background:#fff;border-radius:14px;overflow:hidden;
  box-shadow:0 6px 20px rgba(102,71,176,.10);
}
.dlt-draft-hdr{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px;
  padding:.65rem .9rem;background:linear-gradient(135deg,#efe7ff,#f8f4ff);
  border-bottom:1px solid #e3d6f7;
}
.dlt-draft-badge{
  font-family:'Barlow Condensed',sans-serif;font-weight:700;color:#5b21b6;
  letter-spacing:.4px;text-transform:uppercase;font-size:13px;
}
.dlt-draft-stamp{font-size:11.5px;color:var(--tx-md);text-transform:uppercase;letter-spacing:.3px}
.dlt-draft-body{padding:.85rem 1rem;display:flex;flex-direction:column;gap:6px}
.dlt-draft-line{font-size:13px;color:var(--tx);line-height:1.5}
.dlt-draft-line.dim{color:var(--tx-md);font-style:italic}
.dlt-draft-narrative{margin-top:6px;padding:8px 10px;background:#fbfaff;border:1px dashed #d9c8f5;border-radius:8px;font-size:13px;color:var(--tx-md);line-height:1.55}
.dlt-draft-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;padding:.65rem .9rem;border-top:1px solid var(--bd-lt);background:#fbfaff}

/* ---- Admin configurator (.dwf-*) ---- */
.dwf-wrap{max-width:1100px;margin:0 auto;padding:.25rem 0 1.5rem;display:flex;flex-direction:column;gap:1rem}
.dwf-hero{
  display:flex;gap:14px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;
  background:linear-gradient(135deg,#eef9f7,#f4fbf9);
  border:1px solid rgba(255,107,0,.2);border-radius:16px;padding:1rem 1.15rem;
}
.dwf-hero h2{
  font-family:'Barlow Condensed',sans-serif;font-size:24px;font-weight:700;
  color:var(--navy);margin:0 0 4px;letter-spacing:.3px;
}
.dwf-hero p{margin:0;font-size:13.5px;color:var(--tx-md);line-height:1.55;max-width:760px}
.dwf-hero-stats{display:flex;gap:8px}
.dwf-stat{
  background:#fff;border:1px solid var(--bd-lt);border-radius:12px;padding:8px 14px;text-align:center;min-width:80px;
}
.dwf-stat strong{display:block;font-family:'Barlow Condensed',sans-serif;font-size:22px;color:var(--navy)}
.dwf-stat span{font-size:11px;color:var(--tx-md);text-transform:uppercase;letter-spacing:.4px}

.dwf-toolbar{
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;
  padding:.65rem .85rem;background:#fff;border:1px solid var(--bd-lt);border-radius:12px;
}
.dwf-rolepick{font-size:13px;color:var(--tx-md);display:flex;align-items:center;gap:6px}
.dwf-rolepick select{
  padding:6px 10px;border-radius:8px;border:1px solid var(--bd-lt);
  font-family:'Barlow',sans-serif;font-size:13px;color:var(--tx);background:#fff;
}
.dwf-bulk{display:flex;flex-wrap:wrap;gap:6px}
.dwf-tip{margin:0 .25rem;font-size:12.5px;color:var(--tx-md);font-style:italic}

.dwf-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.dwf-row{
  display:grid;grid-template-columns:auto auto 1fr auto;gap:10px;align-items:start;
  background:#fff;border:1px solid var(--bd-lt);border-radius:12px;padding:.7rem .85rem;
  cursor:grab;transition:border-color .12s, box-shadow .12s, transform .12s;
}
.dwf-row:hover{border-color:var(--teal);box-shadow:0 4px 14px rgba(255,107,0,.08)}
.dwf-row.dragging{opacity:.55;transform:scale(.99)}
.dwf-row.drop-above{box-shadow:inset 0 3px 0 0 var(--teal)}
.dwf-row.drop-below{box-shadow:inset 0 -3px 0 0 var(--teal)}
.dwf-grip{
  font-size:18px;color:var(--tx-lt);user-select:none;line-height:1;padding-top:4px;letter-spacing:-2px;
}
.dwf-icon{
  width:38px;height:38px;border-radius:10px;background:#eef9f7;
  display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;
}
.dwf-main{min-width:0;display:flex;flex-direction:column;gap:4px}
.dwf-title{
  font-family:'Barlow Condensed',sans-serif;font-size:17px;font-weight:700;
  color:var(--navy);letter-spacing:.2px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;
}
.dwf-cat{
  font-family:'Barlow',sans-serif;font-size:10.5px;font-weight:700;letter-spacing:.4px;
  text-transform:uppercase;color:var(--teal-dk);background:#eef9f7;
  border:1px solid rgba(255,107,0,.18);padding:1px 7px;border-radius:999px;
}
.dwf-blurb{font-size:12.5px;color:var(--tx-md);line-height:1.5}
.dwf-roles{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:2px}
.dwf-rolechk{font-size:12px;color:var(--tx);display:flex;align-items:center;gap:4px}
.dwf-actions{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.dwf-toggle{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;
  color:var(--tx-md);text-transform:uppercase;letter-spacing:.3px}
.dwf-arrows{display:flex;gap:4px}
.dwf-arrow{
  width:26px;height:24px;border-radius:6px;border:1px solid var(--bd-lt);background:#fff;
  font-size:10px;cursor:pointer;color:var(--tx-md);
}
.dwf-arrow:hover{border-color:var(--teal);color:var(--teal-dk)}

@media(max-width:780px){
  .dwf-row{grid-template-columns:auto auto 1fr;}
  .dwf-actions{grid-column:1 / -1;flex-direction:row;justify-content:space-between;align-items:center}
  .dwf-hero{flex-direction:column;align-items:flex-start}
  .dwf-hero-stats{align-self:stretch;justify-content:flex-start}
  .dlt-hero-actions{margin-left:0}
  .dlt-starter-hdr{flex-direction:column}
  .dlt-starter-actions{justify-content:stretch}
  .dlt-starter-actions .btn{flex:1}
}

/* ============================================================
   Feature expansions: Suppliers, Purchase Request email,
   Live Punch List, Photo-to-Daily-Report
   ============================================================ */

/* Shared chip / hero patterns */
.vsup-wrap{padding:1.25rem 1.5rem;max-width:1100px;margin:0 auto}
.vsup-hero{display:flex;align-items:flex-start;gap:14px;margin-bottom:1rem;flex-wrap:wrap}
.vsup-hero-ic{width:46px;height:46px;background:rgba(255,107,0,.15);border-radius:12px;
  display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.vsup-hero-text{flex:1;min-width:220px}
.vsup-hero-text h2{font-family:'Barlow Condensed',sans-serif;font-size:24px;color:var(--navy);margin-bottom:4px;font-weight:700}
.vsup-hero-text p{font-size:13px;color:var(--tx-md);line-height:1.4}
.vsup-hero-actions{display:flex;gap:8px;align-items:center;margin-left:auto;flex-wrap:wrap}

.vsup-tablewrap{background:#fff;border:1px solid var(--bd-lt);border-radius:12px;overflow:auto}
.vsup-table{width:100%;border-collapse:collapse;font-size:13px;min-width:640px}
.vsup-table thead th{background:#f8fbfa;text-align:left;padding:10px 14px;
  font-family:'Barlow Condensed',sans-serif;font-size:11px;color:var(--tx-lt);
  text-transform:uppercase;letter-spacing:.6px;border-bottom:1.5px solid var(--bd)}
.vsup-table tbody td{padding:10px 14px;border-bottom:1px solid var(--bd-lt);vertical-align:top}
.vsup-table tbody tr:last-child td{border-bottom:none}
.vsup-name{font-weight:700;color:var(--navy)}
.vsup-sub{color:var(--tx-lt);font-size:12px;margin-top:2px}
.vsup-notes{color:var(--tx-md);max-width:320px;font-size:12px}
.vsup-actions{white-space:nowrap}
.vsup-empty{padding:1.5rem;text-align:center;color:var(--tx-lt);font-style:italic}
.vsup-foot{font-size:12px;color:var(--tx-lt);margin-top:.875rem;text-align:center;font-style:italic}

.vsup-chip{display:inline-block;padding:2px 9px;border-radius:999px;
  background:#eef9f7;color:var(--teal-dk);font-size:11px;font-weight:700;
  margin:2px 3px 2px 0;text-transform:none;letter-spacing:0;font-family:'Barlow',sans-serif}
.vsup-chip-amber{background:#fff4dc;color:#8a5c00}

.vsup-edit{padding:1.25rem 1.5rem;max-width:760px;margin:0 auto}
.vsup-edit-hdr{display:flex;align-items:flex-start;gap:14px;margin-bottom:1rem}
.vsup-edit-hdr h3{font-family:'Barlow Condensed',sans-serif;font-size:20px;color:var(--navy);margin-bottom:2px}
.vsup-edit-hdr p{font-size:13px;color:var(--tx-md)}
.vsup-form{background:#fff;border:1px solid var(--bd-lt);border-radius:12px;padding:1.1rem 1.2rem}
.vsup-row{display:flex;flex-direction:column;gap:5px;margin-bottom:.85rem}
.vsup-row > span{font-size:11px;font-weight:700;color:var(--tx-md);
  text-transform:uppercase;letter-spacing:.5px}
.vsup-row > span em{color:var(--coral);font-style:normal}
.vsup-row input,.vsup-row select,.vsup-row textarea{
  width:100%;padding:9px 12px;border:1.5px solid var(--bd);border-radius:10px;
  font-size:14px;font-family:'Barlow',sans-serif;color:var(--tx);background:#fff;outline:none}
.vsup-row input:focus,.vsup-row select:focus,.vsup-row textarea:focus{border-color:var(--teal)}
.vsup-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.vsup-catgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px}
.vsup-catchk{display:flex;align-items:center;gap:6px;background:#f8fbfa;border:1px solid var(--bd-lt);
  border-radius:9px;padding:6px 9px;font-size:12px;color:var(--tx-md);cursor:pointer}
.vsup-catchk input{width:auto}
.vsup-form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:.5rem}

/* Purchase Request starter */
.vpr-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.vpr-fullwidth{grid-column:1/-1}
.vpr-h{font-family:'Barlow Condensed',sans-serif;font-size:14px;color:var(--tx-lt);
  text-transform:uppercase;letter-spacing:.5px;margin:1.1rem 0 .35rem}
.vpr-mtable{border:1px solid var(--bd-lt);border-radius:10px;overflow:hidden;background:#fff}
.vpr-mtable-hdr,.vpr-mrow{display:grid;grid-template-columns:80px 1fr 1fr 36px;gap:6px;padding:6px 8px;align-items:center}
.vpr-mtable-hdr{background:#f8fbfa;font-size:11px;color:var(--tx-lt);
  font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.5px;
  border-bottom:1px solid var(--bd-lt)}
.vpr-mtable-body{display:flex;flex-direction:column}
.vpr-mrow{border-bottom:1px solid var(--bd-lt)}
.vpr-mrow:last-child{border-bottom:none}
.vpr-mrow input{width:100%;border:1px solid var(--bd-lt);border-radius:7px;
  padding:6px 8px;font:inherit;color:var(--tx);background:#fff}
.vpr-mrow input:focus{outline:none;border-color:var(--teal)}
.vpr-mrow-x{background:transparent;border:none;color:var(--coral);font-size:14px;cursor:pointer;line-height:1}
.vpr-mtable-foot{padding:8px;text-align:right;border-top:1px solid var(--bd-lt);background:#fafcfc}
.vpr-sup-preview{margin-top:.4rem}
.vpr-sup-card{background:#eef9f7;border:1px solid #FFD4B0;border-radius:10px;padding:10px 12px}
.vpr-sup-name{font-weight:700;color:var(--navy);font-size:14px}
.vpr-sup-line{font-size:12px;color:var(--tx-md);margin-top:2px}
.vpr-sup-cats{font-size:11px;color:var(--teal-dk);margin-top:4px}
.vpr-sup-notes{font-size:12px;color:var(--tx-md);margin-top:4px;font-style:italic}
.vpr-draft .vpr-email{background:#fdfdff;border:1px solid var(--bd-lt);border-radius:10px;padding:1rem;margin:.5rem 0}
.vpr-email-hdr{font-size:12px;color:var(--tx-md);border-bottom:1px solid var(--bd-lt);
  padding-bottom:.5rem;margin-bottom:.6rem;display:flex;flex-direction:column;gap:3px}
.vpr-email-body{font-family:'Barlow',sans-serif;font-size:13px;color:var(--tx);line-height:1.5;white-space:pre-line}

/* Live Punch List */
.vpl-wrap{padding:1.25rem 1.5rem;max-width:1100px;margin:0 auto}
.vpl-hero{display:flex;align-items:flex-start;gap:14px;margin-bottom:1rem;flex-wrap:wrap}
.vpl-hero-ic{width:46px;height:46px;background:rgba(255,107,0,.15);border-radius:12px;
  display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.vpl-hero-text{flex:1;min-width:220px}
.vpl-hero-text h2{font-family:'Barlow Condensed',sans-serif;font-size:24px;color:var(--navy);font-weight:700}
.vpl-hero-text p{font-size:13px;color:var(--tx-md);margin-top:2px}
.vpl-hero-actions{margin-left:auto}
.vpl-controls{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;
  background:#fff;border:1px solid var(--bd-lt);border-radius:12px;padding:.8rem .9rem;margin-bottom:1rem;align-items:end}
.vpl-ctrl{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:700;color:var(--tx-md);text-transform:uppercase;letter-spacing:.5px}
.vpl-ctrl select{padding:8px 10px;border:1.5px solid var(--bd);border-radius:9px;
  font:inherit;color:var(--tx);font-weight:500;text-transform:none;letter-spacing:0;background:#fff}

/* Live Punch List — searchable project picker (replaces plain <select>
   for project/job selectors on mobile/field workflow forms). */
.vpl-pp{position:relative;display:flex;flex-direction:column;gap:5px}
.vpl-pp-label{font-size:11px;font-weight:700;color:var(--tx-md);text-transform:uppercase;letter-spacing:.5px}
.vpl-pp-field{position:relative;display:flex;align-items:center;background:#fff}
.vpl-pp-ic{position:absolute;left:10px;font-size:14px;color:var(--tx-lt);pointer-events:none}
.vpl-pp-input{
  width:100%;padding:11px 32px 11px 32px;border:1.5px solid var(--bd);border-radius:10px;
  font:inherit;color:var(--tx);background:#fff;outline:none;font-weight:500;
  min-height:44px;
}
.vpl-pp-input:focus{border-color:var(--teal)}
.vpl-pp-clear{
  position:absolute;right:6px;top:50%;transform:translateY(-50%);
  background:transparent;border:0;font-size:14px;color:var(--tx-lt);cursor:pointer;
  padding:6px 8px;min-width:32px;min-height:32px;border-radius:6px;
}
.vpl-pp-clear:hover{color:var(--coral);background:#fdecea}
.vpl-pp-selected-sub{font-size:11.5px;color:var(--tx-lt);font-weight:500;text-transform:none;letter-spacing:0;padding-left:2px}
.vpl-pp-list{
  display:none;position:absolute;left:0;right:0;top:calc(100% + 4px);
  max-height:280px;overflow-y:auto;background:#fff;border:1px solid var(--bd);border-radius:10px;
  box-shadow:0 12px 32px rgba(20,19,16,.18);z-index:200;padding:6px;
}
.vpl-pp-list.is-open{display:block}
.vpl-pp-item{
  display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;
  padding:10px 12px;background:transparent;border:0;text-align:left;border-radius:8px;cursor:pointer;
  font-family:'Barlow',sans-serif;min-height:44px;
}
.vpl-pp-item:hover, .vpl-pp-item:focus{background:#eef9f7;outline:none}
.vpl-pp-item.is-selected{background:#eef9f7;border:1px solid var(--teal)}
.vpl-pp-item-nm{font-size:14px;color:var(--navy);font-weight:700}
.vpl-pp-item-sub{font-size:11.5px;color:var(--tx-lt);font-weight:500}
.vpl-pp-empty{padding:1rem;color:var(--tx-lt);font-size:13px;text-align:center;font-style:italic}
.vpl-phases{display:flex;flex-direction:column;gap:.85rem}
.vpl-phase{background:#fff;border:1px solid var(--bd-lt);border-radius:12px;overflow:hidden}
.vpl-phase-hdr{display:flex;align-items:center;justify-content:space-between;
  background:linear-gradient(180deg,#f8fbfa,#fff);padding:.7rem 1rem;border-bottom:1px solid var(--bd-lt);flex-wrap:wrap;gap:8px}
.vpl-phase-name{font-family:'Barlow Condensed',sans-serif;font-size:18px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:.5px}
.vpl-phase-stats{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.vpl-stat{font-size:11px;color:var(--tx-lt);font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.vpl-stat-done{color:var(--teal-dk)}
.vpl-phase-items{padding:.5rem .65rem;display:flex;flex-direction:column;gap:6px}
.vpli{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;
  background:#f8fbfa;border:1px solid var(--bd-lt);border-radius:10px;padding:8px 10px}
.vpli.vpli-done{opacity:.62;text-decoration:line-through;background:#eef4f3}
.vpli-chk input{width:18px;height:18px;cursor:pointer}
.vpli-text{font-weight:600;color:var(--navy);font-size:14px}
.vpli-meta{display:flex;flex-wrap:wrap;gap:6px;font-size:11px;color:var(--tx-md);margin-top:3px}
.vpli-prio{display:inline-block;padding:1px 8px;border-radius:999px;
  background:#eef9f7;color:var(--teal-dk);font-weight:700;text-transform:uppercase;letter-spacing:.4px}
.vpli-prio-low{background:#eaf2ff;color:#1458a0}
.vpli-prio-high{background:#fff4dc;color:#8a5c00}
.vpli-prio-urgent{background:#ffe6e1;color:#a02b14}
.vpli-actions{display:flex;gap:5px}
.vpli-empty{font-size:12px;color:var(--tx-lt);font-style:italic;padding:.4rem .5rem}
.vpl-phase-add{display:flex;gap:8px;padding:.55rem .9rem;border-top:1px solid var(--bd-lt);background:#fafcfc;flex-wrap:wrap}
.vpl-phase-add input{flex:1;min-width:200px;padding:8px 10px;border:1.5px solid var(--bd);border-radius:9px;font:inherit}
.vpl-phase-add input:focus{outline:none;border-color:var(--teal)}
.vpl-empty{padding:2rem;text-align:center;color:var(--tx-lt);font-style:italic;background:#fff;border:1px dashed var(--bd);border-radius:12px}
.vpl-foot{font-size:12px;color:var(--tx-lt);margin-top:1rem;text-align:center;font-style:italic}

.vpl-edit{padding:1.25rem 1.5rem;max-width:680px;margin:0 auto}
.vpl-edit-hdr h3{font-family:'Barlow Condensed',sans-serif;font-size:20px;color:var(--navy);margin-bottom:.6rem}
.vpl-form{background:#fff;border:1px solid var(--bd-lt);border-radius:12px;padding:1.1rem 1.2rem}
.vpl-form-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.vpl-default-row{flex-direction:row;align-items:center;gap:8px}
.vpl-default-row span{text-transform:none;letter-spacing:0;font-weight:600;font-size:13px;color:var(--tx)}
.vpl-tpl-list{display:flex;flex-direction:column;gap:8px}
.vpl-tpl-row{display:grid;grid-template-columns:200px 1fr auto;gap:10px;align-items:center;
  background:#fff;border:1px solid var(--bd-lt);border-radius:10px;padding:.65rem .9rem}
.vpl-tpl-name{font-weight:600;color:var(--navy)}
.vpl-tpl-phases{display:flex;flex-wrap:wrap;gap:4px}
.vpl-tpl-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}

/* Photo → Daily Report */
.vpd-wrap{padding:1.25rem 1.5rem;max-width:980px;margin:0 auto}
.vpd-hero{display:flex;align-items:flex-start;gap:14px;margin-bottom:1rem;flex-wrap:wrap}
.vpd-hero-ic{width:46px;height:46px;background:rgba(255,107,0,.15);border-radius:12px;
  display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.vpd-hero-text{flex:1;min-width:220px}
.vpd-hero-text h2{font-family:'Barlow Condensed',sans-serif;font-size:24px;color:var(--navy);font-weight:700}
.vpd-hero-text p{font-size:13px;color:var(--tx-md);margin-top:2px}
.vpd-reminder{display:flex;flex-direction:column;gap:4px;background:#fff4dc;border:1px solid #f0d060;border-radius:10px;padding:.5rem .75rem;font-size:12px;color:#6a4a00;max-width:280px}
.vpd-reminder-chip{font-weight:700}
.vpd-reminder-sub{font-size:11px;color:#8a6a14}
.vpd-uploadbox{position:relative;border:2px dashed var(--bd);border-radius:12px;padding:1.4rem;
  background:var(--bg);text-align:center;cursor:pointer;transition:all .15s;margin-top:.4rem}
.vpd-uploadbox:hover{border-color:var(--teal);background:var(--teal-lt)}
.vpd-uploadbox input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}
.vpd-upload-ic{font-size:30px;margin-bottom:.4rem}
.vpd-filelist{display:flex;flex-direction:column;gap:5px;margin-top:.5rem}
.vpd-fileitem{background:#f8fbfa;border:1px solid var(--bd-lt);border-radius:8px;padding:7px 10px;font-size:12.5px;color:var(--navy);font-weight:600}
.vpd-photogrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-top:.5rem}
.vpd-photo-tile{background:#f8fbfa;border:1px solid var(--bd-lt);border-radius:10px;
  padding:.75rem;text-align:center;font-size:11px;color:var(--tx-md);font-weight:600}
.vpd-photo-tile div{margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Mobile */
@media (max-width:780px){
  .vsup-wrap, .vpl-wrap, .vpd-wrap{padding:1rem .9rem}
  .vsup-hero-actions{margin-left:0;width:100%;justify-content:flex-start}
  .vsup-row2{grid-template-columns:1fr}
  .vsup-table{min-width:0}
  .vsup-table thead{display:none}
  .vsup-table, .vsup-table tbody, .vsup-table tr, .vsup-table td{display:block;width:100%}
  .vsup-table tr{padding:.6rem .85rem;border-bottom:1px solid var(--bd-lt)}
  .vsup-table td{border:none;padding:3px 0}
  .vsup-table td:before{content:attr(data-label);font-size:10px;color:var(--tx-lt);
    text-transform:uppercase;letter-spacing:.5px;display:block;margin-bottom:1px}
  .vpr-grid{grid-template-columns:1fr}
  .vpr-mtable-hdr, .vpr-mrow{grid-template-columns:60px 1fr 32px}
  .vpr-mtable-hdr span:nth-child(3),
  .vpr-mrow input[data-fld="spec"]{display:none}
  .vpl-controls{grid-template-columns:1fr}
  .vpl-form-row2{grid-template-columns:1fr}
  .vpl-tpl-row{grid-template-columns:1fr}
  .vpl-tpl-actions{justify-content:flex-start}
  .vpd-hero-actions, .vpd-reminder{margin-left:0;width:100%;max-width:none}
  .vpli{grid-template-columns:auto 1fr;row-gap:6px}
  .vpli-actions{grid-column:1/-1;justify-content:flex-end}
}

/* ============================================================
   Quick Scheduling Request + Quick Reminder enhancements
   - Live search input/results (qs-ls-*)
   - Recipient checkbox grids (qs-chk, qs-chk-grid, qs-fs)
   - Turnover type hint (qs-typehelp)
   ============================================================ */
.qs-ls{position:relative;display:flex;flex-direction:column;gap:5px;width:100%}
.qs-ls-input-wrap{position:relative;display:flex;align-items:center}
.qs-ls-ic{position:absolute;left:10px;font-size:14px;color:var(--tx-lt);pointer-events:none}
.qs-ls-input{
  width:100%;padding:10px 32px 10px 32px;border:1.5px solid var(--bd);border-radius:10px;
  font-size:14px;font-family:'Barlow',sans-serif;color:var(--tx);background:#fff;outline:none;
}
.qs-ls-input:focus{border-color:var(--teal)}
.qs-ls-clear{
  position:absolute;right:6px;top:50%;transform:translateY(-50%);
  background:transparent;border:0;font-size:14px;color:var(--tx-lt);cursor:pointer;padding:4px 6px;
}
.qs-ls-clear:hover{color:var(--coral)}
.qs-ls-results{
  display:none;position:absolute;left:0;right:0;top:calc(100% + 4px);
  max-height:240px;overflow-y:auto;background:#fff;border:1px solid var(--bd);border-radius:10px;
  box-shadow:0 12px 32px rgba(20,19,16,.18);z-index:200;padding:6px;
}
.qs-ls-results.show{display:block}
.qs-ls-item{
  display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;
  padding:8px 10px;background:transparent;border:0;text-align:left;border-radius:8px;cursor:pointer;
  font-family:'Barlow',sans-serif;
}
.qs-ls-item:hover{background:#eef9f7}
.qs-ls-item-nm{font-size:13px;color:var(--navy);font-weight:700}
.qs-ls-item-sub{font-size:11.5px;color:var(--tx-lt)}
.qs-ls-empty{padding:.7rem;color:var(--tx-lt);font-size:12.5px;text-align:center}

.qs-fs{
  border:1px solid var(--bd-lt);border-radius:12px;padding:.55rem .85rem .7rem;
  background:#fafcff;
}
.qs-fs > legend{
  font-size:11px;font-weight:700;color:var(--navy);
  text-transform:uppercase;letter-spacing:.5px;padding:0 6px;
}
.qs-chk-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 10px;margin-top:4px;
}
.qs-chk{
  display:flex;align-items:flex-start;gap:8px;cursor:pointer;
  font-size:13px;color:var(--tx);font-weight:500;line-height:1.35;
  padding:5px 4px;border-radius:8px;
}
.qs-chk:hover{background:#eef9f7}
.qs-chk input[type="checkbox"]{
  margin-top:2px;width:16px;height:16px;accent-color:var(--teal);flex-shrink:0;
}
.qs-chk strong{color:var(--navy);font-weight:700}
.qs-chk-solo{
  border:1px dashed var(--bd-lt);background:#fffbe9;padding:8px 10px;border-radius:10px;
}
#vsQrJobBlock.disabled{opacity:.45;pointer-events:none}
.qs-typehelp{
  display:none;font-size:12px;color:var(--navy-md);background:#eef6ff;
  border:1px solid #cfe1f5;border-radius:8px;padding:6px 10px;margin:6px 0 0;line-height:1.5;
}
.qs-typehelp.show{display:block}

/* PR116 — Quick Scheduler job-type chips */
.qs-jobtype-chips{
  display:flex;gap:6px;flex-wrap:wrap;margin:4px 0 2px;
}
.qs-jobtype-chip{
  background:#fff;border:1px solid #c5d2db;border-radius:999px;
  padding:6px 14px;cursor:pointer;font-weight:600;color:#34495e;
  font-family:Barlow,sans-serif;font-size:13px;
}
.qs-jobtype-chip:hover{background:#f0f5f8}
.qs-jobtype-chip.on{background:#141310;color:#fff;border-color:#141310}
